@chances-ai/cli 18.0.0 → 19.0.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/dist/boot/dispose.d.ts.map +1 -1
- package/dist/boot/dispose.js +5 -4
- package/dist/boot/dispose.js.map +1 -1
- package/dist/commands/serve.d.ts +15 -10
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +23 -15
- package/dist/commands/serve.js.map +1 -1
- package/dist/slash/web.js +1 -1
- package/dist/slash/web.js.map +1 -1
- package/dist/web/assets/{index-DGs1rWta.js → index-BqN7947Z.js} +27 -27
- package/dist/web/assets/{index-DGs1rWta.js.map → index-BqN7947Z.js.map} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispose.d.ts","sourceRoot":"","sources":["../../src/boot/dispose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dispose.d.ts","sourceRoot":"","sources":["../../src/boot/dispose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EnE"}
|
package/dist/boot/dispose.js
CHANGED
|
@@ -18,12 +18,13 @@ export async function disposeRuntime(ctx) {
|
|
|
18
18
|
if (disposed.has(ctx))
|
|
19
19
|
return;
|
|
20
20
|
disposed.add(ctx);
|
|
21
|
-
// (v20) Stop the `/web` relay BEFORE the engine it serves tears down:
|
|
22
|
-
// its
|
|
23
|
-
// browser-driven turn is mid-flight when the shared
|
|
21
|
+
// (v20) Stop the `/web` relay BEFORE the engine it serves tears down: AWAIT
|
|
22
|
+
// its graceful shutdown (the one persistent session settles + flushes its
|
|
23
|
+
// final frames) so no browser-driven turn is mid-flight when the shared
|
|
24
|
+
// runtime goes away (codex M2 SHOULD).
|
|
24
25
|
if (ctx.relay) {
|
|
25
26
|
try {
|
|
26
|
-
ctx.relay.stop();
|
|
27
|
+
await ctx.relay.stop();
|
|
27
28
|
}
|
|
28
29
|
catch (e) {
|
|
29
30
|
ctx.logger.warn(`web relay stop failed: ${e.message}`);
|
package/dist/boot/dispose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../src/boot/dispose.ts"],"names":[],"mappings":"AAEA;;;;+BAI+B;AAC/B,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAc,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAe;IAClD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElB,
|
|
1
|
+
{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../src/boot/dispose.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/serve.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import type { CliCommand } from "./registry.js";
|
|
2
2
|
/**
|
|
3
3
|
* `chances serve` — expose the agent over HTTP/WS for the web + mobile clients
|
|
4
|
-
* (docs/6.1).
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* (docs/6.1/6.2). The relay runs ONE persistent engine session (a `SessionHost`)
|
|
5
|
+
* over the SAME `EngineHost`/`RpcServer` seam `chances rpc` uses
|
|
6
|
+
* (`makeEngineHost`), so the bespoke RPC server is reused UNCHANGED — the relay
|
|
7
|
+
* only adapts the transport (WS ⇆ `ByteSink`/lines) and adds the M2 seq/replay.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
9
|
+
* M2 (docs/6.2): each `/rpc` socket ATTACHES to that one session, replaying the
|
|
10
|
+
* gap since its `?last_event_id=N` cursor, then joining the fan-out. A socket
|
|
11
|
+
* drop is a reconnect, not a session end (the turn survives); multiple sockets
|
|
12
|
+
* may drive (the engine serializes turns via `AGENT_BUSY`) — there is no
|
|
13
|
+
* single-controller 409 anymore.
|
|
14
|
+
*
|
|
15
|
+
* Safety: default-LOOPBACK bind (no `--host`/`0.0.0.0` until auth lands in M4,
|
|
16
|
+
* R1 N1/§7). The shared runtime outlives individual sockets AND the persistent
|
|
17
|
+
* session — per-session shutdown's `host.dispose` is a no-op (`perConnectionHost`);
|
|
18
|
+
* the real teardown is `main()`'s `disposeRuntime` on exit (run exactly once),
|
|
19
|
+
* which is why this command needs the runtime.
|
|
15
20
|
*/
|
|
16
21
|
export declare const serveCommand: CliCommand;
|
|
17
22
|
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,EAAE,UAkD1B,CAAC"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -3,21 +3,26 @@ import { makeEngineHost } from "./rpc.js";
|
|
|
3
3
|
import cliPkg from "../../package.json" with { type: "json" };
|
|
4
4
|
/**
|
|
5
5
|
* `chances serve` — expose the agent over HTTP/WS for the web + mobile clients
|
|
6
|
-
* (docs/6.1).
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* (docs/6.1/6.2). The relay runs ONE persistent engine session (a `SessionHost`)
|
|
7
|
+
* over the SAME `EngineHost`/`RpcServer` seam `chances rpc` uses
|
|
8
|
+
* (`makeEngineHost`), so the bespoke RPC server is reused UNCHANGED — the relay
|
|
9
|
+
* only adapts the transport (WS ⇆ `ByteSink`/lines) and adds the M2 seq/replay.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
11
|
+
* M2 (docs/6.2): each `/rpc` socket ATTACHES to that one session, replaying the
|
|
12
|
+
* gap since its `?last_event_id=N` cursor, then joining the fan-out. A socket
|
|
13
|
+
* drop is a reconnect, not a session end (the turn survives); multiple sockets
|
|
14
|
+
* may drive (the engine serializes turns via `AGENT_BUSY`) — there is no
|
|
15
|
+
* single-controller 409 anymore.
|
|
16
|
+
*
|
|
17
|
+
* Safety: default-LOOPBACK bind (no `--host`/`0.0.0.0` until auth lands in M4,
|
|
18
|
+
* R1 N1/§7). The shared runtime outlives individual sockets AND the persistent
|
|
19
|
+
* session — per-session shutdown's `host.dispose` is a no-op (`perConnectionHost`);
|
|
20
|
+
* the real teardown is `main()`'s `disposeRuntime` on exit (run exactly once),
|
|
21
|
+
* which is why this command needs the runtime.
|
|
17
22
|
*/
|
|
18
23
|
export const serveCommand = {
|
|
19
24
|
name: "serve",
|
|
20
|
-
description: "Serve the agent over HTTP/WS for web/mobile clients (loopback only). GET /health + WS /rpc control loop.",
|
|
25
|
+
description: "Serve the agent over HTTP/WS for web/mobile clients (loopback only). GET /health + WS /rpc control loop (reconnect/replay).",
|
|
21
26
|
async run(ctx, args) {
|
|
22
27
|
if (!ctx)
|
|
23
28
|
throw new Error("serve requires a runtime context");
|
|
@@ -48,12 +53,15 @@ export const serveCommand = {
|
|
|
48
53
|
});
|
|
49
54
|
process.stderr.write(`chances serve: listening on ${relay.url} (loopback) — GET /health, WS ${relay.url.replace("http", "ws")}/rpc${staticDir ? `, SPA from ${staticDir}` : ""}.\n`);
|
|
50
55
|
// Keep the process alive until a termination signal; stopping the relay
|
|
51
|
-
//
|
|
52
|
-
// then `main()`'s finally runs the canonical
|
|
56
|
+
// shuts the persistent session (ends its queue → graceful engine shutdown)
|
|
57
|
+
// and closes any live socket, then `main()`'s finally runs the canonical
|
|
58
|
+
// `disposeRuntime` teardown.
|
|
53
59
|
await new Promise((resolve) => {
|
|
54
60
|
const stop = () => {
|
|
55
|
-
relay
|
|
56
|
-
|
|
61
|
+
// Await the relay's graceful shutdown (the persistent session settles +
|
|
62
|
+
// flushes) BEFORE resolving — `main()`'s `disposeRuntime` runs after,
|
|
63
|
+
// so an in-flight turn isn't torn down mid-flight (codex M2 SHOULD).
|
|
64
|
+
void relay.stop().finally(resolve);
|
|
57
65
|
};
|
|
58
66
|
process.once("SIGINT", stop);
|
|
59
67
|
process.once("SIGTERM", stop);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE9D
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
package/dist/slash/web.js
CHANGED
|
@@ -25,7 +25,7 @@ export function makeWebPlugin(deps, io = realIo) {
|
|
|
25
25
|
if (args[0] === "stop") {
|
|
26
26
|
if (!ctx.relay)
|
|
27
27
|
return "web UI is not running";
|
|
28
|
-
ctx.relay.stop();
|
|
28
|
+
void ctx.relay.stop(); // graceful shutdown in the background; report stopped now
|
|
29
29
|
ctx.relay = undefined;
|
|
30
30
|
return "web UI stopped";
|
|
31
31
|
}
|
package/dist/slash/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/slash/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAkC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAc9D,MAAM,MAAM,GAAU,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAEvE;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAAsB,EAAE,KAAY,MAAM;IACtE,MAAM,OAAO,GAAiB;QAC5B,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,QAAQ;QACtB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAErB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,KAAK;oBAAE,OAAO,uBAAuB,CAAC;gBAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/slash/web.ts"],"names":[],"mappings":"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"}
|