Publish harness and TUI open-source
initial sync from the monorepo
This commit is contained in:
commit
c68e39f604
2734 changed files with 1437016 additions and 0 deletions
49
crates/codegen/xai-grok-announcements/generate.sh
Executable file
49
crates/codegen/xai-grok-announcements/generate.sh
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Regenerate TypeScript announcement ACP types from this crate's ts-rs derives.
|
||||
#
|
||||
# The Rust structs (RemoteAnnouncement, AnnouncementCta, AnnouncementsRefreshed)
|
||||
# are the single source of truth for the `x.ai/announcements/update` payload.
|
||||
# Pipeline:
|
||||
# 1. cargo test --features ts → ts-rs writes every binding to a temp dir
|
||||
# (TS_RS_EXPORT_DIR; the `ts` feature stays off for normal/Bazel builds)
|
||||
# 2. copy each binding + a "do not edit" header into the desktop consumer's
|
||||
# generated types directory (committed, so the TS app never needs cargo)
|
||||
# 3. format the destination so committed bytes stay house-formatted
|
||||
#
|
||||
# Usage: ./generate.sh (run from this package directory)
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
CRATE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# Desktop consumer lives three levels up from this crate in the workspace tree.
|
||||
REPO_ROOT="$(cd "$CRATE_DIR/../../.." && pwd)"
|
||||
DESKTOP_DIR="$REPO_ROOT/frontend/apps/grok-desktop"
|
||||
DST="$DESKTOP_DIR/src/acp/generated"
|
||||
TMP="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP"' EXIT
|
||||
|
||||
echo "[generate] 1/3 exporting ts-rs bindings (cargo test --features ts) …"
|
||||
(cd "$CRATE_DIR" && TS_RS_EXPORT_DIR="$TMP" cargo test --quiet --features ts)
|
||||
|
||||
# Never clobber the committed bindings unless the export actually produced some.
|
||||
bindings=("$TMP"/*.ts)
|
||||
[[ ${#bindings[@]} -gt 0 ]] || {
|
||||
echo "[generate] no bindings exported — aborting before touching $DST" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "[generate] 2/3 copying ${#bindings[@]} bindings -> $DST"
|
||||
mkdir -p "$DST"
|
||||
rm -f "$DST"/*.ts
|
||||
for f in "${bindings[@]}"; do
|
||||
{
|
||||
echo "// generated — do NOT edit by hand."
|
||||
echo "// Regenerate via generate.sh in the xai-grok-announcements package."
|
||||
cat "$f"
|
||||
} >"$DST/$(basename "$f")"
|
||||
done
|
||||
|
||||
echo "[generate] 3/3 formatting (oxfmt) …"
|
||||
(cd "$DESKTOP_DIR" && pnpm exec oxfmt --write src/acp/generated)
|
||||
echo "[generate] done — ${#bindings[@]} bindings."
|
||||
Loading…
Reference in a new issue