@chances-ai/cli 3.3.0 → 3.5.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/create-app.d.ts.map +1 -1
- package/dist/boot/create-app.js +36 -1
- package/dist/boot/create-app.js.map +1 -1
- package/dist/boot/load-runtime.d.ts +28 -1
- package/dist/boot/load-runtime.d.ts.map +1 -1
- package/dist/boot/load-runtime.js +10 -1
- package/dist/boot/load-runtime.js.map +1 -1
- package/dist/entrypoints/cli.d.ts +1 -0
- package/dist/entrypoints/cli.d.ts.map +1 -1
- package/dist/entrypoints/cli.js +32 -7
- package/dist/entrypoints/cli.js.map +1 -1
- package/dist/slash/agents.d.ts +15 -11
- package/dist/slash/agents.d.ts.map +1 -1
- package/dist/slash/agents.js +92 -23
- package/dist/slash/agents.js.map +1 -1
- package/dist/slash/compact.d.ts.map +1 -1
- package/dist/slash/compact.js +45 -3
- package/dist/slash/compact.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../src/boot/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../src/boot/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA6B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;6DAU6D;AAC7D,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,GAAG,WAAW,CAqE/G;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAEjE"}
|
package/dist/boot/create-app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentEngine, createTaskTool } from "@chances-ai/core";
|
|
1
|
+
import { AgentEngine, Compactor, createTaskTool } from "@chances-ai/core";
|
|
2
2
|
import { PermissionGate } from "@chances-ai/tools";
|
|
3
3
|
/** Wires an AgentEngine for a given session and permission resolver. Passes
|
|
4
4
|
* the AppContext's `selection` (mutable model preference) through so a later
|
|
@@ -30,7 +30,34 @@ export function buildEngine(ctx, session, resolver) {
|
|
|
30
30
|
// change vs Subagent v1.
|
|
31
31
|
agents: ctx.agents,
|
|
32
32
|
registry: ctx.registry,
|
|
33
|
+
// 3.4: thread the background-task registry. When undefined (e.g. -p
|
|
34
|
+
// mode), the tool's schema omits `run_in_background` and any caller
|
|
35
|
+
// passing the field gets silent sync degradation (codex Round-1
|
|
36
|
+
// SHOULD-FIX #1 resolution).
|
|
37
|
+
backgroundTasks: ctx.backgroundTasks,
|
|
33
38
|
}));
|
|
39
|
+
// 3.5: auto-compaction. Built per-engine alongside the AgentEngine
|
|
40
|
+
// because (a) the circuit breaker scope is intentionally per-engine
|
|
41
|
+
// (resets on `/resume` — a deliberate "start fresh" action), and
|
|
42
|
+
// (b) the Compactor closes over `session`, which is also per-engine.
|
|
43
|
+
// Gated on `backgroundTasks` presence as the "interactive chat
|
|
44
|
+
// mode" proxy — `-p` one-shot mode has no "next turn" for
|
|
45
|
+
// threshold compaction to land on. Exposed via the new
|
|
46
|
+
// `AgentEngineOptions.compactor` field so subagent engines (which
|
|
47
|
+
// construct their own AgentEngine via `createTaskTool` without
|
|
48
|
+
// touching this factory) never get one.
|
|
49
|
+
const compactor = ctx.backgroundTasks
|
|
50
|
+
? new Compactor({
|
|
51
|
+
session,
|
|
52
|
+
router: ctx.router,
|
|
53
|
+
bus: ctx.bus,
|
|
54
|
+
selection: ctx.selection,
|
|
55
|
+
config: ctx.config.agent?.compaction,
|
|
56
|
+
})
|
|
57
|
+
: undefined;
|
|
58
|
+
// Expose the compactor on AppContext so the `/compact` slash can
|
|
59
|
+
// route through it (manual reason bypasses + resets the breaker).
|
|
60
|
+
ctx.compactor = compactor;
|
|
34
61
|
return new AgentEngine({
|
|
35
62
|
bus: ctx.bus,
|
|
36
63
|
router: ctx.router,
|
|
@@ -42,6 +69,14 @@ export function buildEngine(ctx, session, resolver) {
|
|
|
42
69
|
workspaceRoot: ctx.workspaceRoot,
|
|
43
70
|
selection: ctx.selection,
|
|
44
71
|
maxTurns: ctx.config.agent?.maxTurns,
|
|
72
|
+
// 3.4: pair with the same registry the task tool launched into, so
|
|
73
|
+
// the engine drains pending notifications at the top of every turn.
|
|
74
|
+
backgroundTasks: ctx.backgroundTasks,
|
|
75
|
+
// 3.5: threshold-triggered + Anthropic overflow recovery. Engine
|
|
76
|
+
// calls `shouldCompact` + `compact("threshold")` at runTurn end
|
|
77
|
+
// when present. Subagent engines (via createTaskTool) DO NOT
|
|
78
|
+
// receive a compactor.
|
|
79
|
+
compactor,
|
|
45
80
|
});
|
|
46
81
|
}
|
|
47
82
|
/** Auto-resolver for non-interactive modes: approve only when --yes was passed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/boot/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/boot/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA2B,MAAM,mBAAmB,CAAC;AAI5E;;;;;;;;;;6DAU6D;AAC7D,MAAM,UAAU,WAAW,CAAC,GAAe,EAAE,OAAuB,EAAE,QAA4B;IAChG,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClE,6EAA6E;IAC7E,yEAAyE;IACzE,oEAAoE;IACpE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAChB,cAAc,CAAC;QACb,WAAW,EAAE,GAAG,CAAC,KAAK;QACtB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI;QACJ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ;QACpC,oEAAoE;QACpE,gEAAgE;QAChE,yBAAyB;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,oEAAoE;QACpE,oEAAoE;QACpE,gEAAgE;QAChE,6BAA6B;QAC7B,eAAe,EAAE,GAAG,CAAC,eAAe;KACrC,CAAC,CACH,CAAC;IACF,mEAAmE;IACnE,oEAAoE;IACpE,iEAAiE;IACjE,qEAAqE;IACrE,+DAA+D;IAC/D,0DAA0D;IAC1D,uDAAuD;IACvD,kEAAkE;IAClE,+DAA+D;IAC/D,wCAAwC;IACxC,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe;QACnC,CAAC,CAAC,IAAI,SAAS,CAAC;YACZ,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU;SACrC,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IACd,iEAAiE;IACjE,kEAAkE;IAClE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,OAAO,IAAI,WAAW,CAAC;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ;QACpC,mEAAmE;QACnE,oEAAoE;QACpE,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,iEAAiE;QACjE,gEAAgE;QAChE,6DAA6D;QAC7D,uBAAuB;QACvB,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC;AAC7B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventBus, FeatureFlags, Logger, ModelSelection, type LogLevel } from "@chances-ai/runtime";
|
|
1
|
+
import { AsyncTaskRegistry, EventBus, FeatureFlags, Logger, ModelSelection, type LogLevel } from "@chances-ai/runtime";
|
|
2
2
|
import { AuthStore, type ChancesConfig, type ExternalPluginEntry } from "@chances-ai/config";
|
|
3
3
|
import { ModelRegistry, ModelRouter } from "@chances-ai/ai";
|
|
4
4
|
import { ToolRegistry, type PermissionGate } from "@chances-ai/tools";
|
|
@@ -35,6 +35,15 @@ export interface AppContext {
|
|
|
35
35
|
/** Per-file diagnostics from the same discovery pass. Surfaced by the
|
|
36
36
|
* `/agents` slash command; logged at warn level during boot. */
|
|
37
37
|
agentsSkipped: readonly SkippedAgent[];
|
|
38
|
+
/**
|
|
39
|
+
* (3.4) Background subagent registry. Constructed only for interactive
|
|
40
|
+
* `chat` mode — `-p` one-shot mode leaves it undefined so the `task`
|
|
41
|
+
* tool's schema omits `run_in_background` (a background task launched
|
|
42
|
+
* in `-p` would have nowhere to deliver its notification, since the
|
|
43
|
+
* process exits after the single turn). Owned by the runtime; CLI
|
|
44
|
+
* shutdown calls `backgroundTasks?.dispose()` BEFORE `mcp?.dispose()`.
|
|
45
|
+
*/
|
|
46
|
+
backgroundTasks?: AsyncTaskRegistry;
|
|
38
47
|
/**
|
|
39
48
|
* Live permission gate, populated by `buildEngine` so slash commands
|
|
40
49
|
* (notably `/mcp restart` / `/mcp remove`) can call `gate.invalidate(name)`
|
|
@@ -43,6 +52,16 @@ export interface AppContext {
|
|
|
43
52
|
* paths like `chances stats` never set it).
|
|
44
53
|
*/
|
|
45
54
|
gate?: PermissionGate;
|
|
55
|
+
/**
|
|
56
|
+
* (3.5) Live compactor, populated by `buildEngine` when the engine is
|
|
57
|
+
* built in an interactive context (gated on `backgroundTasks` presence
|
|
58
|
+
* — `-p` one-shot mode skips it because there's no "next turn" for
|
|
59
|
+
* threshold compaction). The `/compact` slash routes through this
|
|
60
|
+
* when set so manual compaction shares circuit breaker + telemetry
|
|
61
|
+
* with the threshold path. Undefined for headless paths and before
|
|
62
|
+
* the engine is built.
|
|
63
|
+
*/
|
|
64
|
+
compactor?: import("@chances-ai/core").Compactor;
|
|
46
65
|
workspaceRoot: string;
|
|
47
66
|
/** Mutable model preference seeded from config; `/model` mutates this so the
|
|
48
67
|
* next turn picks up the choice without rebuilding the engine. Built-in
|
|
@@ -53,6 +72,14 @@ export interface RuntimeOverrides {
|
|
|
53
72
|
provider?: string;
|
|
54
73
|
model?: string;
|
|
55
74
|
logLevel?: LogLevel;
|
|
75
|
+
/**
|
|
76
|
+
* (3.4) When true, construct an `AsyncTaskRegistry` and expose
|
|
77
|
+
* `AppContext.backgroundTasks`. Only the interactive `chat` command
|
|
78
|
+
* sets this — see "When NOT to construct the registry" in
|
|
79
|
+
* `docs/3.4-design.md`. Defaults to false so headless / -p paths stay
|
|
80
|
+
* synchronous-only.
|
|
81
|
+
*/
|
|
82
|
+
enableBackgroundTasks?: boolean;
|
|
56
83
|
}
|
|
57
84
|
/** Builds the shared application context (the wiring all commands depend on). */
|
|
58
85
|
export declare function loadRuntime(overrides?: RuntimeOverrides): Promise<AppContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime.d.ts","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,aAAa,EACb,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAgB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAkB,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IACzB;;;;;OAKG;IACH,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C;oEACgE;IAChE,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB;;uEAEmE;IACnE,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"load-runtime.d.ts","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,aAAa,EACb,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAgB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAkB,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IACzB;;;;;OAKG;IACH,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C;oEACgE;IAChE,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,kBAAkB,EAAE,SAAS,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB;;uEAEmE;IACnE,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,iFAAiF;AACjF,wBAAsB,WAAW,CAAC,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgEvF;AA6ED;;;yBAGyB;AACzB,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
2
|
import { isAbsolute, join, relative, resolve } from "node:path";
|
|
3
3
|
import { pathToFileURL } from "node:url";
|
|
4
|
-
import { EventBus, FeatureFlags, Logger, ModelSelection, } from "@chances-ai/runtime";
|
|
4
|
+
import { AsyncTaskRegistry, EventBus, FeatureFlags, Logger, ModelSelection, } from "@chances-ai/runtime";
|
|
5
5
|
import { AuthStore, loadConfig, } from "@chances-ai/config";
|
|
6
6
|
import { KNOWN_MODELS, ModelRegistry, ModelRouter, buildRegistry, envByProviderFrom, } from "@chances-ai/ai";
|
|
7
7
|
import { ToolRegistry, builtinTools } from "@chances-ai/tools";
|
|
@@ -43,6 +43,14 @@ export async function loadRuntime(overrides = {}) {
|
|
|
43
43
|
logger.warn(`agent file '${s.path}' (${s.reason}): ${s.detail}`);
|
|
44
44
|
}
|
|
45
45
|
const selection = new ModelSelection({ provider: config.provider, model: config.model });
|
|
46
|
+
// 3.4: only the interactive `chat` command requests background tasks;
|
|
47
|
+
// -p / headless modes leave it undefined so the `task` tool's schema
|
|
48
|
+
// omits `run_in_background` entirely. The config's
|
|
49
|
+
// `agent.maxBackgroundTasks` (validated in `mergeAgent`) feeds the
|
|
50
|
+
// registry's per-instance bound.
|
|
51
|
+
const backgroundTasks = overrides.enableBackgroundTasks
|
|
52
|
+
? new AsyncTaskRegistry({ maxConcurrent: config.agent?.maxBackgroundTasks })
|
|
53
|
+
: undefined;
|
|
46
54
|
return {
|
|
47
55
|
bus,
|
|
48
56
|
logger,
|
|
@@ -58,6 +66,7 @@ export async function loadRuntime(overrides = {}) {
|
|
|
58
66
|
mcp,
|
|
59
67
|
agents: discovered.agents,
|
|
60
68
|
agentsSkipped: discovered.skipped,
|
|
69
|
+
backgroundTasks,
|
|
61
70
|
workspaceRoot: config.workspaceRoot,
|
|
62
71
|
selection,
|
|
63
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime.js","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,UAAU,GAGX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAGL,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"load-runtime.js","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare function buildCommandRegistry(): CommandRegistry;
|
|
|
6
6
|
export type LoadRuntimeFn = (overrides: {
|
|
7
7
|
provider?: string;
|
|
8
8
|
model?: string;
|
|
9
|
+
enableBackgroundTasks?: boolean;
|
|
9
10
|
}) => Promise<AppContext>;
|
|
10
11
|
/** `loadRuntimeFn` is an injection seam for tests — see cli.test.tsx. */
|
|
11
12
|
export declare function main(argv?: string[], loadRuntimeFn?: LoadRuntimeFn): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/entrypoints/cli.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAQvE,OAAO,EAAe,SAAS,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA2D1D,oDAAoD;AACpD,wBAAgB,oBAAoB,IAAI,eAAe,CAWtD;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/entrypoints/cli.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAQvE,OAAO,EAAe,SAAS,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA2D1D,oDAAoD;AACpD,wBAAgB,oBAAoB,IAAI,eAAe,CAWtD;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1B,yEAAyE;AACzE,wBAAsB,IAAI,CACxB,IAAI,GAAE,MAAM,EAA0B,EACtC,aAAa,GAAE,aAA2B,GACzC,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED,0EAA0E;AAC1E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/entrypoints/cli.js
CHANGED
|
@@ -79,17 +79,42 @@ export async function main(argv = process.argv.slice(2), loadRuntimeFn = loadRun
|
|
|
79
79
|
if (cmd.needsRuntime === false) {
|
|
80
80
|
return cmd.run(null, cliArgs, registry);
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
// 3.4: only the *interactive* `chat` command needs the background-task
|
|
83
|
+
// registry. Codex Round-2 MUST-FIX #1: the `chat` command itself also
|
|
84
|
+
// routes to one-shot prompt mode when `-p` is supplied (see
|
|
85
|
+
// `apps/cli/src/commands/chat.ts` — `runPrompt` branch). In that case
|
|
86
|
+
// the process exits after the single turn so a background launch
|
|
87
|
+
// would never have a "next turn" to deliver its notification. Gate
|
|
88
|
+
// the registry on `!args.prompt` too.
|
|
89
|
+
const enableBackgroundTasks = cmd.name === "chat" && args.prompt === undefined;
|
|
90
|
+
const ctx = await loadRuntimeFn({
|
|
91
|
+
provider: args.provider,
|
|
92
|
+
model: args.model,
|
|
93
|
+
enableBackgroundTasks,
|
|
94
|
+
});
|
|
83
95
|
try {
|
|
84
96
|
return await cmd.run(ctx, cliArgs, registry);
|
|
85
97
|
}
|
|
86
98
|
finally {
|
|
87
|
-
// Plugins / MCP servers may hold file handles,
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
99
|
+
// Plugins / MCP servers / background tasks may hold file handles,
|
|
100
|
+
// child processes, sockets, or unlinked AbortControllers. Give them
|
|
101
|
+
// a chance to clean up regardless of whether the command succeeded
|
|
102
|
+
// or threw. Dispose errors are logged but don't mask the command's
|
|
103
|
+
// own outcome.
|
|
104
|
+
//
|
|
105
|
+
// Order matters: background tasks dispose FIRST so any in-flight
|
|
106
|
+
// child engine stops driving the bus and gate before MCP servers
|
|
107
|
+
// (which may be serving the child's tools) tear down. MCP teardown
|
|
108
|
+
// then runs BEFORE plugin dispose so its child processes' SIGTERM
|
|
109
|
+
// lands while the bus is still alive to log the result.
|
|
110
|
+
if (ctx.backgroundTasks) {
|
|
111
|
+
try {
|
|
112
|
+
await ctx.backgroundTasks.dispose();
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
ctx.logger.warn(`background tasks dispose failed: ${e.message}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
93
118
|
if (ctx.mcp) {
|
|
94
119
|
try {
|
|
95
120
|
await ctx.mcp.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/entrypoints/cli.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/entrypoints/cli.tsx"],"names":[],"mappings":"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"}
|
package/dist/slash/agents.d.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { type Plugin } from "@chances-ai/plugin-api";
|
|
2
2
|
import type { BuiltinSlashDeps } from "./index.js";
|
|
3
3
|
/**
|
|
4
|
-
* `/agents` — read-only diagnostic for the 3.3 catalog.
|
|
4
|
+
* `/agents` — read-only diagnostic for the 3.3 catalog + 3.4 background tasks.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Three sections, top to bottom:
|
|
7
|
+
* 1. Persona catalog: every agent discovered at boot, source-precedence
|
|
8
|
+
* order (project > user > bundled), with effective tool list, model
|
|
9
|
+
* override, and source path. Unchanged from 3.3.
|
|
10
|
+
* 2. Background tasks: every entry in `AsyncTaskRegistry.list()` —
|
|
11
|
+
* running, completed, failed, cancelled. Shows id, name, status,
|
|
12
|
+
* wall-clock age, and prompt head. Hidden when no registry (e.g. `-p`
|
|
13
|
+
* mode) or when the list is empty (interactive default until the
|
|
14
|
+
* model launches a background).
|
|
15
|
+
* 3. Skipped files: per-file diagnostics from the catalog discovery
|
|
16
|
+
* pass. Same as 3.3.
|
|
10
17
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* `chances agents --json` CLI command rather than baked into the slash
|
|
14
|
-
* contract (codex Round-1 #14). For now `-p --json /agents` emits the
|
|
15
|
-
* plain-text body inside the standard slash result frame.
|
|
18
|
+
* Subcommand: `/agents kill <task-id>` aborts a running background task.
|
|
19
|
+
* `/agents kill --all` aborts every running task.
|
|
16
20
|
*
|
|
17
21
|
* "Project overrides user overrides bundled" is the wording used here —
|
|
18
|
-
* matches the design doc's user-facing language (codex Round-1 #11).
|
|
22
|
+
* matches the design doc's user-facing language (3.3 codex Round-1 #11).
|
|
19
23
|
*/
|
|
20
24
|
export declare function makeAgentsPlugin(deps: BuiltinSlashDeps): Plugin;
|
|
21
25
|
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/slash/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/slash/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAa/D"}
|
package/dist/slash/agents.js
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import { definePlugin } from "@chances-ai/plugin-api";
|
|
2
2
|
/**
|
|
3
|
-
* `/agents` — read-only diagnostic for the 3.3 catalog.
|
|
3
|
+
* `/agents` — read-only diagnostic for the 3.3 catalog + 3.4 background tasks.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Three sections, top to bottom:
|
|
6
|
+
* 1. Persona catalog: every agent discovered at boot, source-precedence
|
|
7
|
+
* order (project > user > bundled), with effective tool list, model
|
|
8
|
+
* override, and source path. Unchanged from 3.3.
|
|
9
|
+
* 2. Background tasks: every entry in `AsyncTaskRegistry.list()` —
|
|
10
|
+
* running, completed, failed, cancelled. Shows id, name, status,
|
|
11
|
+
* wall-clock age, and prompt head. Hidden when no registry (e.g. `-p`
|
|
12
|
+
* mode) or when the list is empty (interactive default until the
|
|
13
|
+
* model launches a background).
|
|
14
|
+
* 3. Skipped files: per-file diagnostics from the catalog discovery
|
|
15
|
+
* pass. Same as 3.3.
|
|
9
16
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* `chances agents --json` CLI command rather than baked into the slash
|
|
13
|
-
* contract (codex Round-1 #14). For now `-p --json /agents` emits the
|
|
14
|
-
* plain-text body inside the standard slash result frame.
|
|
17
|
+
* Subcommand: `/agents kill <task-id>` aborts a running background task.
|
|
18
|
+
* `/agents kill --all` aborts every running task.
|
|
15
19
|
*
|
|
16
20
|
* "Project overrides user overrides bundled" is the wording used here —
|
|
17
|
-
* matches the design doc's user-facing language (codex Round-1 #11).
|
|
21
|
+
* matches the design doc's user-facing language (3.3 codex Round-1 #11).
|
|
18
22
|
*/
|
|
19
23
|
export function makeAgentsPlugin(deps) {
|
|
20
24
|
const command = {
|
|
21
25
|
name: "agents",
|
|
22
|
-
description: "List discovered subagent personas
|
|
23
|
-
run: () =>
|
|
26
|
+
description: "List discovered subagent personas + running background tasks. `kill <id>` aborts a background task.",
|
|
27
|
+
run: (args) => handle(deps, args),
|
|
24
28
|
};
|
|
25
29
|
return definePlugin({
|
|
26
30
|
name: "builtin/agents",
|
|
@@ -29,33 +33,89 @@ export function makeAgentsPlugin(deps) {
|
|
|
29
33
|
},
|
|
30
34
|
});
|
|
31
35
|
}
|
|
36
|
+
function handle(deps, args) {
|
|
37
|
+
// Args come pre-tokenised from the slash dispatcher. `/agents` → [],
|
|
38
|
+
// `/agents kill <id>` → ["kill", "<id>"], `/agents kill --all` → ["kill", "--all"].
|
|
39
|
+
const sub = args[0];
|
|
40
|
+
if (sub === "kill") {
|
|
41
|
+
const target = args[1];
|
|
42
|
+
return handleKill(deps, target);
|
|
43
|
+
}
|
|
44
|
+
if (sub !== undefined) {
|
|
45
|
+
return `Unknown /agents subcommand '${sub}'. Usage: /agents [kill <task-id> | kill --all]`;
|
|
46
|
+
}
|
|
47
|
+
return render(deps);
|
|
48
|
+
}
|
|
49
|
+
function handleKill(deps, target) {
|
|
50
|
+
const registry = deps.ctx.backgroundTasks;
|
|
51
|
+
if (!registry) {
|
|
52
|
+
return "No background-task registry is configured (try this from interactive mode).";
|
|
53
|
+
}
|
|
54
|
+
if (target === undefined) {
|
|
55
|
+
return "Usage: /agents kill <task-id> | /agents kill --all";
|
|
56
|
+
}
|
|
57
|
+
if (target === "--all") {
|
|
58
|
+
const running = registry.list().filter((t) => t.status === "running");
|
|
59
|
+
if (running.length === 0)
|
|
60
|
+
return "No running background tasks.";
|
|
61
|
+
// Fire-and-forget; the registry resolves killAll asynchronously. The
|
|
62
|
+
// user gets immediate feedback that the cancellation was requested.
|
|
63
|
+
void registry.killAll();
|
|
64
|
+
return `Cancellation requested for ${running.length} running background task${running.length === 1 ? "" : "s"}.`;
|
|
65
|
+
}
|
|
66
|
+
const killed = registry.kill(target);
|
|
67
|
+
if (!killed) {
|
|
68
|
+
return `No running task with id '${target}' (already finished, or unknown id).`;
|
|
69
|
+
}
|
|
70
|
+
return `Cancellation requested for ${target}.`;
|
|
71
|
+
}
|
|
32
72
|
function render(deps) {
|
|
73
|
+
const lines = [];
|
|
33
74
|
const agents = deps.ctx.agents;
|
|
34
75
|
const skipped = deps.ctx.agentsSkipped;
|
|
35
|
-
const
|
|
36
|
-
|
|
76
|
+
const bg = deps.ctx.backgroundTasks;
|
|
77
|
+
lines.push("Agent catalog (project overrides user overrides bundled):");
|
|
37
78
|
if (!agents || agents.size === 0) {
|
|
38
|
-
|
|
79
|
+
lines.push(" (no agents configured — drop a .md file in .chances/agents/ to get started)");
|
|
39
80
|
}
|
|
40
81
|
else {
|
|
41
82
|
const sorted = [...agents.values()].sort(byNameThenSource);
|
|
42
83
|
const padTo = Math.max(...sorted.map((a) => a.name.length));
|
|
43
84
|
for (const a of sorted) {
|
|
44
|
-
|
|
85
|
+
lines.push(formatAgentLine(a, padTo));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// 3.4: background-task section. Only render when the registry exists
|
|
89
|
+
// — keeps -p / headless output identical to 3.3 there. When present
|
|
90
|
+
// and empty (interactive launch without bgs yet), show the header so
|
|
91
|
+
// the user knows the channel exists.
|
|
92
|
+
if (bg) {
|
|
93
|
+
const snaps = bg.list();
|
|
94
|
+
const runningCount = snaps.filter((t) => t.status === "running").length;
|
|
95
|
+
lines.push("");
|
|
96
|
+
lines.push(`Background tasks (${runningCount} running, ${snaps.length} total):`);
|
|
97
|
+
if (snaps.length === 0) {
|
|
98
|
+
lines.push(" (none — launch one with the task tool's `run_in_background: true` arg)");
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const padId = Math.max(...snaps.map((s) => s.taskId.length));
|
|
102
|
+
const padName = Math.max(...snaps.map((s) => s.name.length));
|
|
103
|
+
const now = Date.now();
|
|
104
|
+
for (const s of snaps) {
|
|
105
|
+
lines.push(formatBgLine(s, now, padId, padName));
|
|
106
|
+
}
|
|
45
107
|
}
|
|
46
108
|
}
|
|
47
109
|
if (skipped && skipped.length > 0) {
|
|
48
|
-
|
|
49
|
-
|
|
110
|
+
lines.push("");
|
|
111
|
+
lines.push(`Skipped (${skipped.length}):`);
|
|
50
112
|
for (const s of skipped) {
|
|
51
|
-
|
|
113
|
+
lines.push(formatSkippedLine(s));
|
|
52
114
|
}
|
|
53
115
|
}
|
|
54
|
-
return
|
|
116
|
+
return lines.join("\n");
|
|
55
117
|
}
|
|
56
118
|
function byNameThenSource(a, b) {
|
|
57
|
-
// Stable sort: by name (catalogs are name-keyed so collisions across
|
|
58
|
-
// sources are already resolved; this just orders the rendered output).
|
|
59
119
|
return a.name.localeCompare(b.name);
|
|
60
120
|
}
|
|
61
121
|
function formatAgentLine(a, namePad) {
|
|
@@ -71,6 +131,15 @@ function formatTools(tools, disallowed) {
|
|
|
71
131
|
return base;
|
|
72
132
|
return `${base} minus [${disallowed.join(",")}]`;
|
|
73
133
|
}
|
|
134
|
+
function formatBgLine(s, now, padId, padName) {
|
|
135
|
+
const id = s.taskId.padEnd(padId);
|
|
136
|
+
const name = s.name.padEnd(padName);
|
|
137
|
+
const status = s.status.padEnd(9);
|
|
138
|
+
const endedOrNow = s.endedAt ?? now;
|
|
139
|
+
const ageSec = Math.max(0, Math.round((endedOrNow - s.startedAt) / 1000));
|
|
140
|
+
const ageLabel = `${ageSec}s`.padStart(5);
|
|
141
|
+
return ` ${id} ${name} ${status} ${ageLabel} ${s.promptHead}`;
|
|
142
|
+
}
|
|
74
143
|
function formatSkippedLine(s) {
|
|
75
144
|
return ` ${s.path} (${s.reason}): ${s.detail}`;
|
|
76
145
|
}
|
package/dist/slash/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/slash/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/slash/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/slash/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/slash/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4BnD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAsFhE"}
|
package/dist/slash/compact.js
CHANGED
|
@@ -6,10 +6,24 @@ import { summarizeConversation } from "@chances-ai/ai";
|
|
|
6
6
|
* (the design call: "use current model, not a separate cheap one"). The
|
|
7
7
|
* summarized text replaces all but the last 5 turns.
|
|
8
8
|
*
|
|
9
|
+
* (3.5) When `ctx.compactor` is set (built by `buildEngine` for
|
|
10
|
+
* interactive chat mode), this routes through `compactor.compact("manual")`
|
|
11
|
+
* so the call shares circuit-breaker + telemetry + pruning + bus event
|
|
12
|
+
* machinery with the threshold-triggered path. Manual bypasses a
|
|
13
|
+
* tripped breaker AND resets it on success (per codex Round-1
|
|
14
|
+
* SHOULD-FIX #3) — the only way to re-arm auto-compaction mid-session.
|
|
15
|
+
*
|
|
16
|
+
* **Cancellation note (codex Round-1 MUST-FIX #3):** v1 manual `/compact`
|
|
17
|
+
* is uncancellable. `SlashCommand.run(args, ctx)` carries no `AbortSignal`,
|
|
18
|
+
* so we pass a fresh never-fired controller through. Ctrl-C during the
|
|
19
|
+
* LLM call has no effect; the summarization completes naturally or
|
|
20
|
+
* fails naturally. Slash-signal plumbing is a 3.x.later candidate.
|
|
21
|
+
*
|
|
9
22
|
* Failure modes — all surface as user-readable strings, never throws:
|
|
10
23
|
* - 0 turns to compact → no-op message
|
|
11
24
|
* - router refuses → "no model available"
|
|
12
25
|
* - summarizer returns empty / errors → conversation untouched
|
|
26
|
+
* - compactor in-flight → "another compaction is already running"
|
|
13
27
|
*/
|
|
14
28
|
const KEEP_LAST_N = 5;
|
|
15
29
|
export function makeCompactPlugin(deps) {
|
|
@@ -23,6 +37,37 @@ export function makeCompactPlugin(deps) {
|
|
|
23
37
|
if (totalTurns <= KEEP_LAST_N) {
|
|
24
38
|
return `nothing to compact — conversation has ${totalTurns} turn(s), keeping last ${KEEP_LAST_N}`;
|
|
25
39
|
}
|
|
40
|
+
// 3.5 primary path: route through the compactor when present.
|
|
41
|
+
// The fresh AbortController stands in for the missing slash
|
|
42
|
+
// signal (MUST-FIX #3) — never fires, so summarization runs to
|
|
43
|
+
// natural completion.
|
|
44
|
+
if (deps.ctx.compactor) {
|
|
45
|
+
const before = totalTurns;
|
|
46
|
+
const result = await deps.ctx.compactor.compact("manual", new AbortController().signal);
|
|
47
|
+
if (!result.ok) {
|
|
48
|
+
if (result.reason === "in-progress")
|
|
49
|
+
return "another compaction is already running";
|
|
50
|
+
// Codex Round-2 MUST-FIX #1: manual now bypasses `enabled:false`,
|
|
51
|
+
// so the "disabled" reason cannot fire on this path. Same for
|
|
52
|
+
// "circuit-open" — manual bypasses + resets the breaker. Both
|
|
53
|
+
// kept as defensive labels for future-proofing.
|
|
54
|
+
if (result.reason === "circuit-open")
|
|
55
|
+
return "compactor blocked: circuit-open (should not be reachable via manual)";
|
|
56
|
+
if (result.reason === "disabled")
|
|
57
|
+
return "compactor blocked: disabled (should not be reachable via manual)";
|
|
58
|
+
if (result.reason === "cancelled")
|
|
59
|
+
return "compaction cancelled";
|
|
60
|
+
return `compaction failed — conversation untouched. ${result.error ?? result.reason ?? "unknown"}`;
|
|
61
|
+
}
|
|
62
|
+
const after = deps.session.snapshot().turns.length;
|
|
63
|
+
const mode = result.mode ?? "summary";
|
|
64
|
+
const saved = result.savedTokens ?? 0;
|
|
65
|
+
return `compacted ${before} → ${after} turns (${mode}, saved ~${saved} tokens)`;
|
|
66
|
+
}
|
|
67
|
+
// Defensive fallback for callers that build BuiltinSlashDeps
|
|
68
|
+
// without going through buildEngine (e.g. early-init tests).
|
|
69
|
+
// Mirrors the pre-3.5 behaviour so this command is never a
|
|
70
|
+
// hard requirement of the Compactor wiring.
|
|
26
71
|
let route;
|
|
27
72
|
try {
|
|
28
73
|
const choice = deps.ctx.selection.get();
|
|
@@ -43,9 +88,6 @@ export function makeCompactPlugin(deps) {
|
|
|
43
88
|
summary = await summarizeConversation(route.adapter, route.model.id, deps.session.messages(), new AbortController().signal);
|
|
44
89
|
}
|
|
45
90
|
catch (err) {
|
|
46
|
-
// try/catch (rather than a sentinel string) keeps the success path
|
|
47
|
-
// unambiguous — a real LLM summary that happens to start with the
|
|
48
|
-
// sentinel marker would have been mis-classified otherwise.
|
|
49
91
|
const msg = err instanceof Error ? err.message : String(err);
|
|
50
92
|
return `summarization failed — conversation untouched. ${msg}`;
|
|
51
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/slash/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/slash/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,MAAM,UAAU,iBAAiB,CAAC,IAAsB;IACtD,MAAM,OAAO,GAAiB;QAC5B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gDAAgD;QAC7D,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACxD,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,gDAAgD,CAAC;YAC9E,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;gBAC9B,OAAO,yCAAyC,UAAU,0BAA0B,WAAW,EAAE,CAAC;YACpG,CAAC;YAED,8DAA8D;YAC9D,4DAA4D;YAC5D,+DAA+D;YAC/D,sBAAsB;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAC7C,QAAQ,EACR,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa;wBAAE,OAAO,uCAAuC,CAAC;oBACpF,kEAAkE;oBAClE,8DAA8D;oBAC9D,8DAA8D;oBAC9D,gDAAgD;oBAChD,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;wBAAE,OAAO,sEAAsE,CAAC;oBACpH,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;wBAAE,OAAO,kEAAkE,CAAC;oBAC5G,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;wBAAE,OAAO,sBAAsB,CAAC;oBACjE,OAAO,+CAA+C,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACrG,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtC,OAAO,aAAa,MAAM,MAAM,KAAK,WAAW,IAAI,YAAY,KAAK,UAAU,CAAC;YAClF,CAAC;YAED,6DAA6D;YAC7D,6DAA6D;YAC7D,2DAA2D;YAC3D,4CAA4C;YAC5C,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACxC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC3B,cAAc,EAAE,MAAM,CAAC,KAAK;oBAC5B,iBAAiB,EAAE,MAAM,CAAC,QAAQ;oBAClC,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;oBAC3D,OAAO,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxC,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;YAED,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,qBAAqB,CACnC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,KAAK,CAAC,EAAE,EACd,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvB,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,kDAAkD,GAAG,EAAE,CAAC;YACjE,CAAC;YAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,yDAAyD,CAAC;YACnE,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACxD,OAAO,aAAa,WAAW,MAAM,UAAU,gBAAgB,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC1G,CAAC;KACF,CAAC;IACF,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,MAAM,CAAC,GAAG;YACR,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chances-ai/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"chances": "./dist/entrypoints/cli-node.js",
|
|
@@ -14,20 +14,20 @@
|
|
|
14
14
|
"@ai-sdk/google": "^1.2.0",
|
|
15
15
|
"@ai-sdk/openai": "^1.3.0",
|
|
16
16
|
"@ai-sdk/openai-compatible": "^0.2.0",
|
|
17
|
-
"@chances-ai/agents": "3.
|
|
18
|
-
"@chances-ai/ai": "3.
|
|
19
|
-
"@chances-ai/config": "3.
|
|
20
|
-
"@chances-ai/core": "3.
|
|
21
|
-
"@chances-ai/mcp": "3.
|
|
22
|
-
"@chances-ai/memory": "3.
|
|
23
|
-
"@chances-ai/native": "3.
|
|
24
|
-
"@chances-ai/plugin-api": "3.
|
|
25
|
-
"@chances-ai/plugin-logger": "3.
|
|
26
|
-
"@chances-ai/runtime": "3.
|
|
27
|
-
"@chances-ai/session": "3.
|
|
28
|
-
"@chances-ai/telemetry": "3.
|
|
29
|
-
"@chances-ai/tools": "3.
|
|
30
|
-
"@chances-ai/tui": "3.
|
|
17
|
+
"@chances-ai/agents": "3.5.0",
|
|
18
|
+
"@chances-ai/ai": "3.5.0",
|
|
19
|
+
"@chances-ai/config": "3.5.0",
|
|
20
|
+
"@chances-ai/core": "3.5.0",
|
|
21
|
+
"@chances-ai/mcp": "3.5.0",
|
|
22
|
+
"@chances-ai/memory": "3.5.0",
|
|
23
|
+
"@chances-ai/native": "3.5.0",
|
|
24
|
+
"@chances-ai/plugin-api": "3.5.0",
|
|
25
|
+
"@chances-ai/plugin-logger": "3.5.0",
|
|
26
|
+
"@chances-ai/runtime": "3.5.0",
|
|
27
|
+
"@chances-ai/session": "3.5.0",
|
|
28
|
+
"@chances-ai/telemetry": "3.5.0",
|
|
29
|
+
"@chances-ai/tools": "3.5.0",
|
|
30
|
+
"@chances-ai/tui": "3.5.0",
|
|
31
31
|
"ai": "^4.3.0",
|
|
32
32
|
"ink": "^5.0.1",
|
|
33
33
|
"react": "^18.3.1",
|