orquesta-agent 0.2.215 → 0.2.217

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,6 +89,40 @@ npx --no esbuild "$ROOT/dist/index.js" \
89
89
  --minify >/dev/null
90
90
  cp "$BIN_DIR/orquesta-agent.mjs" "$PUBLIC_DIR/"
91
91
 
92
+ # ── Prebuilt node-pty binding (for the no-Node /install path) ──────────────────
93
+ # Interactive sessions need @homebridge/node-pty-prebuilt-multiarch, which the
94
+ # standalone binary CANNOT embed (it's --external). The /install script provisions
95
+ # it at install time from this tarball, so a box with NO Node/npm still gets
96
+ # working interactive sessions — the agent's runtime npm self-heal is only a
97
+ # fallback (and can't run on a box without npm, which is exactly the no-Node case
98
+ # standalone binaries exist for). The tarball is tiny (~2.6MB, all platforms; bun
99
+ # loads the matching prebuild by its own N-API ABI at runtime). Keep
100
+ # NODE_PTY_VERSION in sync with src/executor.ts.
101
+ NODE_PTY_PKG="@homebridge/node-pty-prebuilt-multiarch"
102
+ NODE_PTY_VERSION="0.13.1"
103
+ NODE_PTY_TARBALL="node-pty-prebuilt-multiarch-${NODE_PTY_VERSION}.tgz"
104
+ echo " → ${NODE_PTY_TARBALL}"
105
+ NPT_TMP="$(mktemp -d)"
106
+ npm install "${NODE_PTY_PKG}@${NODE_PTY_VERSION}" --no-save --no-audit --no-fund --loglevel=error --prefix "$NPT_TMP" >/dev/null 2>&1
107
+ # Tar with the package dir at the archive root so it extracts straight into
108
+ # <cache>/node_modules/@homebridge/ (matching nativeCacheEntry() in executor.ts).
109
+ tar -czf "$PUBLIC_DIR/$NODE_PTY_TARBALL" -C "$NPT_TMP/node_modules/@homebridge" node-pty-prebuilt-multiarch
110
+ rm -rf "$NPT_TMP"
111
+
112
+ # Windows can't reuse the tarball above: node-pty loads conpty.node/pty.node from
113
+ # build/Release (not prebuilds/), and a Linux `npm install` never fetches the win32
114
+ # binding. So the win32 tarball is built OUT-OF-BAND on a real Windows host (the
115
+ # dockur harness: `npm install` the package, then tar the installed dir incl.
116
+ # build/Release) and committed to git. We only reference it here; if it's missing
117
+ # (e.g. a clean clone before the artifact exists) we omit the manifest entry rather
118
+ # than fail the Linux build, and install.ps1 falls back to runtime npm self-heal.
119
+ NODE_PTY_TARBALL_WIN32="node-pty-prebuilt-multiarch-${NODE_PTY_VERSION}-win32-x64.tgz"
120
+ # Same story for macOS x64: built out-of-band on a real Mac (node-gyp produces
121
+ # build/Release/pty.node, a Mach-O bundle; inert linux prebuilds stripped) and
122
+ # committed to git. macOS arm64 needs an Apple Silicon host to build+verify — not
123
+ # shipped until one is available; arm64 falls back to runtime npm self-heal.
124
+ NODE_PTY_TARBALL_MACOS_X64="node-pty-prebuilt-multiarch-${NODE_PTY_VERSION}-darwin-x64.tgz"
125
+
92
126
  # Regenerate manifest.json
93
127
  echo " → manifest.json"
94
128
  GIT_COMMIT="$(git -C "$ROOT" rev-parse HEAD 2>/dev/null || echo unknown)"
@@ -97,6 +131,29 @@ BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
97
131
  hash_of() { sha256sum "$1" | cut -d' ' -f1; }
98
132
  size_of() { stat -c%s "$1" 2>/dev/null || stat -f%z "$1"; }
99
133
 
134
+ # Build the win32 node-pty manifest entry from the committed prebuilt tarball (see
135
+ # the OUT-OF-BAND note above). Omitted if the artifact is absent.
136
+ NPT_WIN32_JSON=""
137
+ if [ -f "$PUBLIC_DIR/$NODE_PTY_TARBALL_WIN32" ]; then
138
+ echo " → ${NODE_PTY_TARBALL_WIN32} (prebuilt, win32)"
139
+ NPT_WIN32_JSON="$(printf ' "nodePtyWin32": {\n "file": "%s",\n "version": "%s",\n "sha256": "%s",\n "size": %s\n },' \
140
+ "$NODE_PTY_TARBALL_WIN32" "$NODE_PTY_VERSION" \
141
+ "$(hash_of "$PUBLIC_DIR/$NODE_PTY_TARBALL_WIN32")" "$(size_of "$PUBLIC_DIR/$NODE_PTY_TARBALL_WIN32")")"
142
+ else
143
+ echo " → ${NODE_PTY_TARBALL_WIN32} MISSING — omitting nodePtyWin32 (win32 no-Node sessions self-heal via npm)"
144
+ fi
145
+
146
+ # macOS x64 node-pty manifest entry from the committed prebuilt tarball. Omitted if absent.
147
+ NPT_MACOS_X64_JSON=""
148
+ if [ -f "$PUBLIC_DIR/$NODE_PTY_TARBALL_MACOS_X64" ]; then
149
+ echo " → ${NODE_PTY_TARBALL_MACOS_X64} (prebuilt, darwin-x64)"
150
+ NPT_MACOS_X64_JSON="$(printf ' "nodePtyMacosX64": {\n "file": "%s",\n "version": "%s",\n "sha256": "%s",\n "size": %s\n },' \
151
+ "$NODE_PTY_TARBALL_MACOS_X64" "$NODE_PTY_VERSION" \
152
+ "$(hash_of "$PUBLIC_DIR/$NODE_PTY_TARBALL_MACOS_X64")" "$(size_of "$PUBLIC_DIR/$NODE_PTY_TARBALL_MACOS_X64")")"
153
+ else
154
+ echo " → ${NODE_PTY_TARBALL_MACOS_X64} MISSING — omitting nodePtyMacosX64 (macOS-x64 no-Node sessions self-heal via npm)"
155
+ fi
156
+
100
157
  cat > "$PUBLIC_DIR/manifest.json" <<EOF
101
158
  {
102
159
  "version": "${VERSION}",
@@ -134,6 +191,14 @@ cat > "$PUBLIC_DIR/manifest.json" <<EOF
134
191
  "sha256": "$(hash_of "$PUBLIC_DIR/orquesta-agent.mjs")",
135
192
  "size": $(size_of "$PUBLIC_DIR/orquesta-agent.mjs")
136
193
  },
194
+ "nodePty": {
195
+ "file": "${NODE_PTY_TARBALL}",
196
+ "version": "${NODE_PTY_VERSION}",
197
+ "sha256": "$(hash_of "$PUBLIC_DIR/$NODE_PTY_TARBALL")",
198
+ "size": $(size_of "$PUBLIC_DIR/$NODE_PTY_TARBALL")
199
+ },
200
+ ${NPT_WIN32_JSON}
201
+ ${NPT_MACOS_X64_JSON}
137
202
  "npm": {
138
203
  "package": "orquesta-agent@${VERSION}"
139
204
  }