run402 4.59.0 → 4.60.0

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.
package/lib/repos.mjs CHANGED
@@ -76,6 +76,7 @@ Lifecycle:
76
76
  Maintenance:
77
77
  run402 repos fsck [--project <id>] [--repo <repo_id>] [--mirror] [--budget <n>] [--no-write] [--human]
78
78
  run402 repos gc [--project <id>] [--repo <repo_id>] [--force-headroom] [--submit --intent-core <path> --verifier-receipt <path> [--wait]]
79
+ run402 repos daemon <status|stop> The resident helper engine (gitvault-persistent-helper) — inspect or retire it; nothing requires either
79
80
  run402 repos access [--project <id>] [--repo <repo_id>] [--human]
80
81
  run402 repos access repair [--project <id>] [--repo <repo_id>] --recipient-state-version <n> --recipient-revocation-version <n>
81
82
  run402 repos access revoke-key <principal_id> [--project <id>] [--repo <repo_id>]
@@ -2207,6 +2208,77 @@ async function recoveryBundle(args) {
2207
2208
 
2208
2209
  // ─── dispatch ───────────────────────────────────────────────────────────────
2209
2210
 
2211
+ /**
2212
+ * `run402 repos daemon <status|stop>` — the resident helper engine
2213
+ * (gitvault-persistent-helper D4). Purely local: a bounded socket probe,
2214
+ * never the network. `status` reports `{running:false}` when no daemon
2215
+ * answers (not an error — the daemon is an accelerator, never a
2216
+ * dependency); `stop` is idempotent the same way.
2217
+ */
2218
+ async function daemonCmd(argv) {
2219
+ const args = normalizeArgv(argv);
2220
+ if (hasHelp(args)) {
2221
+ process.stdout.write("Usage: run402 repos daemon <status|stop>\n");
2222
+ return;
2223
+ }
2224
+ const sub = args[0];
2225
+ if (sub !== "status" && sub !== "stop") {
2226
+ fail({ code: "BAD_USAGE", message: "run402 repos daemon requires <status|stop>", hint: "Run `run402 repos daemon --help` for usage." });
2227
+ }
2228
+ // Lazy imports: this must stay reachable with zero heavy-graph cost, and
2229
+ // repos.mjs is already inside several config-mock test graphs.
2230
+ const { daemonSocketPath } = await import("./daemon-path.mjs");
2231
+ const { connect: netConnect } = await import("node:net");
2232
+ const result = await new Promise((resolve) => {
2233
+ let settled = false;
2234
+ const done = (v) => {
2235
+ if (!settled) {
2236
+ settled = true;
2237
+ resolve(v);
2238
+ }
2239
+ };
2240
+ let socket;
2241
+ try {
2242
+ socket = netConnect(daemonSocketPath());
2243
+ } catch {
2244
+ return done(null);
2245
+ }
2246
+ const timer = setTimeout(() => {
2247
+ socket.destroy();
2248
+ done(null);
2249
+ }, 1000);
2250
+ let data = "";
2251
+ socket.on("data", (c) => {
2252
+ data += c.toString("utf8");
2253
+ const nl = data.indexOf("\n");
2254
+ if (nl !== -1) {
2255
+ clearTimeout(timer);
2256
+ try {
2257
+ done(JSON.parse(data.slice(0, nl)));
2258
+ } catch {
2259
+ done(null);
2260
+ }
2261
+ socket.end();
2262
+ }
2263
+ });
2264
+ socket.once("error", () => {
2265
+ clearTimeout(timer);
2266
+ done(null);
2267
+ });
2268
+ socket.once("connect", () => socket.write(`${JSON.stringify({ t: sub === "stop" ? "stop" : "status" })}\n`));
2269
+ });
2270
+ if (sub === "status") {
2271
+ if (!result || result.t !== "status") {
2272
+ process.stdout.write(`${JSON.stringify({ running: false })}\n`);
2273
+ } else {
2274
+ const { t: _t, ...rest } = result;
2275
+ process.stdout.write(`${JSON.stringify({ running: true, ...rest })}\n`);
2276
+ }
2277
+ } else {
2278
+ process.stdout.write(`${JSON.stringify({ stopped: Boolean(result && result.t === "stopping") })}\n`);
2279
+ }
2280
+ }
2281
+
2210
2282
  export async function run(sub, args) {
2211
2283
  const argv = Array.isArray(args) ? args : [];
2212
2284
  if (!sub || hasHelp([sub, ...argv])) {
@@ -2257,6 +2329,10 @@ export async function run(sub, args) {
2257
2329
  await gc(argv);
2258
2330
  break;
2259
2331
  }
2332
+ case "daemon": {
2333
+ await daemonCmd(argv);
2334
+ break;
2335
+ }
2260
2336
  case "access": {
2261
2337
  await access(argv);
2262
2338
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402",
3
- "version": "4.59.0",
3
+ "version": "4.60.0",
4
4
  "description": "CLI for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- {"version":3,"file":"http-dispatcher.d.ts","sourceRoot":"","sources":["../../src/node/http-dispatcher.ts"],"names":[],"mappings":"AAoCA,OAAO,EAA6C,KAAK,UAAU,EAAuB,MAAM,QAAQ,CAAC;AAMzG;;;;;GAKG;AACH,cAAM,WAAW;;gBAKH,IAAI,EAAE,MAAM;IAIxB,GAAG,IAAI,MAAM,GAAG,SAAS;IAezB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAY3B;AAiCD,0EAA0E;AAC1E,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,CAAC;AAI/C,6GAA6G;AAC7G,wBAAgB,aAAa,IAAI,UAAU,CAsB1C;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAiDD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,UAAU,CAAC,KAGxC,CAAC"}
1
+ {"version":3,"file":"http-dispatcher.d.ts","sourceRoot":"","sources":["../../src/node/http-dispatcher.ts"],"names":[],"mappings":"AAoCA,OAAO,EAA6C,KAAK,UAAU,EAAuB,MAAM,QAAQ,CAAC;AAMzG;;;;;GAKG;AACH,cAAM,WAAW;;gBAKH,IAAI,EAAE,MAAM;IAIxB,GAAG,IAAI,MAAM,GAAG,SAAS;IAezB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAY3B;AAiCD,0EAA0E;AAC1E,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,CAAC;AAI/C,6GAA6G;AAC7G,wBAAgB,aAAa,IAAI,UAAU,CA0B1C;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAiDD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,UAAU,CAAC,KAGxC,CAAC"}
@@ -135,7 +135,11 @@ export function sdkDispatcher() {
135
135
  if (apiOrigin && store && o === apiOrigin && o.startsWith("https:")) {
136
136
  // ONE connection: requests queue on the connecting socket (never a
137
137
  // second dial) and multiplex over h2 where the origin negotiates it.
138
- return new Client(origin, { ...opts, allowH2: true, connect: apiConnector(store) });
138
+ // Keep-alive sits just under the ALB's 60 s idle timeout — the
139
+ // undici default (~4 s) silently re-dialed between a RESIDENT
140
+ // daemon's sessions, observed as ~340 ms median first-op wire where
141
+ // a genuinely warm socket serves at ~150 ms.
142
+ return new Client(origin, { ...opts, allowH2: true, keepAliveTimeout: 55_000, keepAliveMaxTimeout: 55_000, connect: apiConnector(store) });
139
143
  }
140
144
  return new Pool(origin, opts);
141
145
  },
@@ -1 +1 @@
1
- {"version":3,"file":"http-dispatcher.js","sourceRoot":"","sources":["../../src/node/http-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-dispatcher.js","sourceRoot":"","sources":["../../src/node/http-dispatcher.ts"],"names":[],"mappings":"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"}