@zhixuan92/multi-model-agent-core 3.0.0 → 3.1.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.
Files changed (100) hide show
  1. package/README.md +24 -21
  2. package/dist/batch-registry.d.ts +15 -2
  3. package/dist/batch-registry.d.ts.map +1 -1
  4. package/dist/batch-registry.js +18 -1
  5. package/dist/batch-registry.js.map +1 -1
  6. package/dist/config/load.d.ts +12 -2
  7. package/dist/config/load.d.ts.map +1 -1
  8. package/dist/config/load.js +24 -16
  9. package/dist/config/load.js.map +1 -1
  10. package/dist/config/schema.d.ts +3 -0
  11. package/dist/config/schema.d.ts.map +1 -1
  12. package/dist/config/schema.js +4 -0
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/diagnostics/disconnect-log.d.ts +45 -0
  15. package/dist/diagnostics/disconnect-log.d.ts.map +1 -1
  16. package/dist/diagnostics/disconnect-log.js +96 -2
  17. package/dist/diagnostics/disconnect-log.js.map +1 -1
  18. package/dist/executors/audit.d.ts.map +1 -1
  19. package/dist/executors/audit.js +12 -4
  20. package/dist/executors/audit.js.map +1 -1
  21. package/dist/executors/debug.d.ts.map +1 -1
  22. package/dist/executors/debug.js +7 -2
  23. package/dist/executors/debug.js.map +1 -1
  24. package/dist/executors/delegate.d.ts.map +1 -1
  25. package/dist/executors/delegate.js +18 -4
  26. package/dist/executors/delegate.js.map +1 -1
  27. package/dist/executors/execute-plan.d.ts.map +1 -1
  28. package/dist/executors/execute-plan.js +12 -4
  29. package/dist/executors/execute-plan.js.map +1 -1
  30. package/dist/executors/retry.d.ts.map +1 -1
  31. package/dist/executors/retry.js +8 -1
  32. package/dist/executors/retry.js.map +1 -1
  33. package/dist/executors/review.d.ts.map +1 -1
  34. package/dist/executors/review.js +12 -4
  35. package/dist/executors/review.js.map +1 -1
  36. package/dist/executors/types.d.ts +20 -5
  37. package/dist/executors/types.d.ts.map +1 -1
  38. package/dist/executors/verify.d.ts.map +1 -1
  39. package/dist/executors/verify.js +12 -4
  40. package/dist/executors/verify.js.map +1 -1
  41. package/dist/heartbeat.d.ts +50 -0
  42. package/dist/heartbeat.d.ts.map +1 -1
  43. package/dist/heartbeat.js +48 -0
  44. package/dist/heartbeat.js.map +1 -1
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/reporting/compose-running-headline.d.ts +16 -0
  50. package/dist/reporting/compose-running-headline.d.ts.map +1 -0
  51. package/dist/reporting/compose-running-headline.js +29 -0
  52. package/dist/reporting/compose-running-headline.js.map +1 -0
  53. package/dist/reporting/compose-terminal-headline.d.ts +8 -0
  54. package/dist/reporting/compose-terminal-headline.d.ts.map +1 -0
  55. package/dist/reporting/compose-terminal-headline.js +10 -0
  56. package/dist/reporting/compose-terminal-headline.js.map +1 -0
  57. package/dist/reporting/not-applicable.d.ts +9 -0
  58. package/dist/reporting/not-applicable.d.ts.map +1 -0
  59. package/dist/reporting/not-applicable.js +12 -0
  60. package/dist/reporting/not-applicable.js.map +1 -0
  61. package/dist/run-tasks.d.ts +20 -0
  62. package/dist/run-tasks.d.ts.map +1 -1
  63. package/dist/run-tasks.js +78 -3
  64. package/dist/run-tasks.js.map +1 -1
  65. package/dist/tool-schemas/audit.d.ts +28 -3
  66. package/dist/tool-schemas/audit.d.ts.map +1 -1
  67. package/dist/tool-schemas/audit.js +2 -7
  68. package/dist/tool-schemas/audit.js.map +1 -1
  69. package/dist/tool-schemas/debug.d.ts +28 -3
  70. package/dist/tool-schemas/debug.d.ts.map +1 -1
  71. package/dist/tool-schemas/debug.js +2 -7
  72. package/dist/tool-schemas/debug.js.map +1 -1
  73. package/dist/tool-schemas/delegate.d.ts +28 -3
  74. package/dist/tool-schemas/delegate.d.ts.map +1 -1
  75. package/dist/tool-schemas/delegate.js +2 -7
  76. package/dist/tool-schemas/delegate.js.map +1 -1
  77. package/dist/tool-schemas/execute-plan.d.ts +28 -3
  78. package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
  79. package/dist/tool-schemas/execute-plan.js +2 -7
  80. package/dist/tool-schemas/execute-plan.js.map +1 -1
  81. package/dist/tool-schemas/retry.d.ts +28 -3
  82. package/dist/tool-schemas/retry.d.ts.map +1 -1
  83. package/dist/tool-schemas/retry.js +2 -7
  84. package/dist/tool-schemas/retry.js.map +1 -1
  85. package/dist/tool-schemas/review.d.ts +28 -3
  86. package/dist/tool-schemas/review.d.ts.map +1 -1
  87. package/dist/tool-schemas/review.js +2 -7
  88. package/dist/tool-schemas/review.js.map +1 -1
  89. package/dist/tool-schemas/shared-output.d.ts +41 -0
  90. package/dist/tool-schemas/shared-output.d.ts.map +1 -0
  91. package/dist/tool-schemas/shared-output.js +25 -0
  92. package/dist/tool-schemas/shared-output.js.map +1 -0
  93. package/dist/tool-schemas/verify.d.ts +28 -3
  94. package/dist/tool-schemas/verify.d.ts.map +1 -1
  95. package/dist/tool-schemas/verify.js +2 -7
  96. package/dist/tool-schemas/verify.js.map +1 -1
  97. package/dist/types.d.ts +2 -0
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/types.js.map +1 -1
  100. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @zhixuan92/multi-model-agent-core
2
2
 
3
- **Runtime library for multi-model-agent.** Import it to run multi-provider agent tasks directly from your own Node program — same routing, supervision, and review pipeline, no MCP client needed.
3
+ **Runtime library for multi-model-agent.** Import it to run multi-provider agent tasks directly from your own Node program — same routing, supervision, and review pipeline, without the HTTP server.
4
4
 
5
- > **Just want your AI assistant to delegate work?** Install [`@zhixuan92/multi-model-agent-mcp`](https://www.npmjs.com/package/@zhixuan92/multi-model-agent-mcp) instead — it wraps this library in an MCP server.
5
+ > **Want the standalone service instead?** Install [`@zhixuan92/multi-model-agent`](https://www.npmjs.com/package/@zhixuan92/multi-model-agent) — it wraps this library in a local HTTP daemon with client-installable skills for Claude Code, Gemini CLI, Codex CLI, and Cursor.
6
6
 
7
7
  ## Install
8
8
 
@@ -36,21 +36,25 @@ for (const r of results) {
36
36
  - **Routing engine** — capability filter → agent type → cheapest qualifier
37
37
  - **`runTasks`** — parallel dispatch, returns per-task results with usage, cost, files touched, status, and escalation log
38
38
  - **Reviewed lifecycle** — spec review + quality review by a different agent, auto-commit of file changes, file artifact verification
39
- - **Config schema** — Zod-validated, same contract as the MCP server
39
+ - **Executors** — pure `execute<Tool>(ctx, input)` functions for delegate, audit, review, verify, debug, execute-plan, retry (used by the HTTP server package)
40
+ - **Tool schemas** — Zod-validated input shapes for each tool, exportable via `./tool-schemas/*`
41
+ - **BatchRegistry** — server-wide state machine for pending / awaiting_clarification / complete / failed / expired batches with context-block refcount pinning
40
42
  - **Sandboxed tools** — `readFile`, `writeFile`, `grep`, `glob`, `listFiles`, `runShell` with `cwd-only` confinement
41
43
 
42
44
  ## Subpath exports
43
45
 
44
46
  | Subpath | What |
45
47
  |---|---|
46
- | `./config/schema` | `parseConfig`, `multiModelConfigSchema` |
47
- | `./config/load` | `loadConfigFromFile` |
48
+ | `./config/schema` | `parseConfig`, `multiModelConfigSchema`, `serverConfigSchema` |
49
+ | `./config/load` | `loadConfigFromFile`, `loadAuthToken` |
48
50
  | `./routing/resolve-agent` | `resolveAgent` — resolves agent type to provider |
49
51
  | `./routing/model-profiles` | Model cost/tier profiles |
50
52
  | `./provider` | `createProvider` factory |
51
53
  | `./run-tasks` | `runTasks` parallel dispatcher, `RunTasksOptions` |
52
54
  | `./heartbeat` | `HeartbeatTimer` — periodic progress heartbeat emitter |
53
55
  | `./types` | All shared types |
56
+ | `./executors` | Pure `execute<Tool>(ctx, input)` functions and `ExecutionContext` type |
57
+ | `./tool-schemas` | Zod input/output schemas for each tool |
54
58
  | `./intake/pipeline` | `runIntakePipeline` — compile → infer → classify → resolve |
55
59
  | `./intake/types` | `DraftTask`, `Source`, `IntakeResult`, `ClarificationEntry` |
56
60
  | `./intake/classify` | `classifyDraft` — deterministic classification heuristic |
@@ -62,32 +66,31 @@ for (const r of results) {
62
66
 
63
67
  ## Diagnostic logging
64
68
 
65
- Diagnostic logging is OFF by default.
66
-
67
- It stays disabled when the `diagnostics` block is absent or when `diagnostics.log` is `false` in `~/.multi-model/config.json`.
68
-
69
- Enable it by adding this minimal config:
70
-
71
- ```json
72
- {
73
- "diagnostics": { "log": true }
74
- }
75
- ```
76
-
77
- Optionally set `diagnostics.logDir` to override the default log directory:
69
+ Diagnostic logging and verbose streaming are both OFF by default.
78
70
 
79
71
  ```json
80
72
  {
81
73
  "diagnostics": {
82
- "log": true,
74
+ "log": false,
75
+ "verbose": false,
83
76
  "logDir": "/some/path"
84
77
  }
85
78
  }
86
79
  ```
87
80
 
88
- When `diagnostics.logDir` is omitted, logs default to `~/.multi-model/logs/`.
81
+ Two independent axes:
82
+
83
+ - **`diagnostics.log`** — when `true`, append JSONL records to `mmagent-YYYY-MM-DD.jsonl` under `diagnostics.logDir` (defaults to `~/.multi-model/logs/`).
84
+ - **`diagnostics.verbose`** — when `true`, the server emits per-tool-call, per-LLM-turn, per-stage-transition, and per-batch-lifecycle events. If `log` is also true, they're persisted; otherwise they stream only to the server's stderr.
89
85
 
90
- When enabled, the MCP diagnostic logger appends JSONL records to `mcp-YYYY-MM-DD.jsonl` in append mode.
86
+ CLI equivalents:
87
+
88
+ ```bash
89
+ mmagent serve --verbose # stream events to stderr (no file written)
90
+ mmagent serve --log # persist to JSONL only (no stderr noise)
91
+ mmagent serve --verbose --log # both
92
+ mmagent logs --follow --batch=<id> # tail + filter
93
+ ```
91
94
 
92
95
  Only crash/disconnect diagnostic events are logged: `startup`, `request_start`, `request_complete`, `shutdown`, and `error`. This is a crash-diagnosis log, not a progress feed.
93
96
 
@@ -1,6 +1,6 @@
1
1
  export type BatchState = 'pending' | 'awaiting_clarification' | 'complete' | 'failed' | 'expired';
2
2
  export declare function isTerminal(s: BatchState): boolean;
3
- export interface BatchEntry<Result = unknown> {
3
+ export interface BatchEntryInput<Result = unknown> {
4
4
  batchId: string;
5
5
  projectCwd: string;
6
6
  tool: string;
@@ -19,6 +19,18 @@ export interface BatchEntry<Result = unknown> {
19
19
  blockIds: string[];
20
20
  blocksReleased: boolean;
21
21
  expiredAt?: number;
22
+ runningHeadline?: string;
23
+ tasksTotal?: number;
24
+ tasksStarted?: number;
25
+ tasksCompleted?: number;
26
+ lastHeartbeatAt?: number;
27
+ running?: Array<{
28
+ worker: string;
29
+ turn: number;
30
+ }>;
31
+ }
32
+ export interface BatchEntry<Result = unknown> extends BatchEntryInput<Result> {
33
+ runningHeadline: string;
22
34
  }
23
35
  export interface BatchRegistryOptions {
24
36
  clarificationTimeoutMs?: number;
@@ -39,8 +51,9 @@ export declare class BatchRegistry {
39
51
  private options;
40
52
  private deps;
41
53
  constructor(options?: BatchRegistryOptions, deps?: BatchRegistryDeps);
42
- register(entry: BatchEntry): void;
54
+ register(input: BatchEntryInput): void;
43
55
  get(batchId: string): BatchEntry | undefined;
56
+ updateRunningHeadline(batchId: string, headline: string): void;
44
57
  delete(batchId: string): boolean;
45
58
  size(): number;
46
59
  entries(): IterableIterator<BatchEntry>;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-registry.d.ts","sourceRoot":"","sources":["../src/batch-registry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,wBAAwB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElG,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAEjD;AAED,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,OAAO;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE;QAClB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;CACH;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC5B,YAAY,EAAE,UAAU;gBAAxB,YAAY,EAAE,UAAU;CAI5C;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAiC;IAC5C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAoB;gBAEpB,OAAO,GAAE,oBAAyB,EAAE,IAAI,GAAE,iBAAsB;IAQ5E,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IASjC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI5C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhC,IAAI,IAAI,MAAM;IAId,OAAO,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAIvC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAU7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUrF,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS7D,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAgBtE,4BAA4B,IAAI,IAAI;IAepC,cAAc,IAAI,IAAI;IAuBtB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAU1C,OAAO,CAAC,OAAO;CAShB"}
1
+ {"version":3,"file":"batch-registry.d.ts","sourceRoot":"","sources":["../src/batch-registry.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,10 @@ export class BatchRegistry {
20
20
  };
21
21
  this.deps = deps;
22
22
  }
23
- register(entry) {
23
+ register(input) {
24
+ if (input.runningHeadline === undefined)
25
+ input.runningHeadline = '';
26
+ const entry = input;
24
27
  this.map.set(entry.batchId, entry);
25
28
  if (this.deps.contextBlockStore) {
26
29
  for (const bid of entry.blockIds) {
@@ -31,6 +34,14 @@ export class BatchRegistry {
31
34
  get(batchId) {
32
35
  return this.map.get(batchId);
33
36
  }
37
+ updateRunningHeadline(batchId, headline) {
38
+ const entry = this.map.get(batchId);
39
+ if (!entry)
40
+ return;
41
+ if (isTerminal(entry.state))
42
+ return;
43
+ entry.runningHeadline = headline;
44
+ }
34
45
  delete(batchId) {
35
46
  return this.map.delete(batchId);
36
47
  }
@@ -133,6 +144,12 @@ export class BatchRegistry {
133
144
  return count;
134
145
  }
135
146
  release(entry) {
147
+ entry.runningHeadline = '';
148
+ entry.tasksTotal = undefined;
149
+ entry.tasksStarted = undefined;
150
+ entry.tasksCompleted = undefined;
151
+ entry.lastHeartbeatAt = undefined;
152
+ entry.running = undefined;
136
153
  if (entry.blocksReleased)
137
154
  return;
138
155
  if (this.deps.contextBlockStore) {
@@ -1 +1 @@
1
- {"version":3,"file":"batch-registry.js","sourceRoot":"","sources":["../src/batch-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-registry.js","sourceRoot":"","sources":["../src/batch-registry.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  import type { MultiModelConfig } from '../types.js';
2
2
  /**
3
3
  * Load the auth token for the HTTP server.
4
- * If `MMAGENT_AUTH_TOKEN` is set in the environment, it wins over any file.
5
- * Otherwise reads and returns the file at `opts.tokenFile`.
4
+ *
5
+ * Env var `MMAGENT_AUTH_TOKEN` wins over any file (and bypasses file validation).
6
+ * File contents must be exactly `<token>\n` — no CRLF, no extra whitespace, and
7
+ * the token body must match `[A-Za-z0-9_\-+=/.]+`. Strict validation up front
8
+ * prevents hard-to-diagnose bearer-token mismatches later.
6
9
  */
7
10
  export declare function loadAuthToken(opts: {
8
11
  tokenFile: string;
9
12
  }): string;
13
+ /**
14
+ * Return the names of openai-compatible agents carrying an inline `apiKey`
15
+ * instead of using `apiKeyEnv`. The schema permits both, but plaintext API
16
+ * keys in a config file are a backup/dotfile/git footgun — serve surfaces
17
+ * this once at startup so the operator can react.
18
+ */
19
+ export declare function collectInlineApiKeyOffenders(config: MultiModelConfig): string[];
10
20
  /**
11
21
  * Load and parse a config file by path.
12
22
  * No auto-lookup — callers must provide the path.
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMjE;AA6BD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiBhF"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAW/E;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBhF"}
@@ -1,25 +1,39 @@
1
1
  import fs from 'fs';
2
2
  import { multiModelConfigSchema } from './schema.js';
3
+ const TOKEN_REGEX = /^[A-Za-z0-9_\-+=/.]+$/;
3
4
  /**
4
5
  * Load the auth token for the HTTP server.
5
- * If `MMAGENT_AUTH_TOKEN` is set in the environment, it wins over any file.
6
- * Otherwise reads and returns the file at `opts.tokenFile`.
6
+ *
7
+ * Env var `MMAGENT_AUTH_TOKEN` wins over any file (and bypasses file validation).
8
+ * File contents must be exactly `<token>\n` — no CRLF, no extra whitespace, and
9
+ * the token body must match `[A-Za-z0-9_\-+=/.]+`. Strict validation up front
10
+ * prevents hard-to-diagnose bearer-token mismatches later.
7
11
  */
8
12
  export function loadAuthToken(opts) {
9
13
  const envToken = process.env['MMAGENT_AUTH_TOKEN'];
10
14
  if (envToken && envToken.length > 0) {
11
15
  return envToken;
12
16
  }
13
- return fs.readFileSync(opts.tokenFile, 'utf-8').trim();
17
+ const raw = fs.readFileSync(opts.tokenFile, 'utf-8');
18
+ if (raw.includes('\r\n')) {
19
+ throw new Error(`config error: auth token file has CRLF line ending; use LF only (${opts.tokenFile})`);
20
+ }
21
+ if (!raw.endsWith('\n')) {
22
+ throw new Error(`config error: auth token file must end with exactly one LF (${opts.tokenFile})`);
23
+ }
24
+ const token = raw.slice(0, -1);
25
+ if (!TOKEN_REGEX.test(token)) {
26
+ throw new Error(`config error: auth token file has non-canonical bytes (must match [A-Za-z0-9_\\-+=/.]) (${opts.tokenFile})`);
27
+ }
28
+ return token;
14
29
  }
15
30
  /**
16
- * Warn if any openai-compatible agent in the parsed config carries an
17
- * inline `apiKey` instead of using `apiKeyEnv`. The schema permits both,
18
- * but storing a plaintext API key in a config file that may end up in a
19
- * backup, dotfile repo, or git is a footgun. We surface the issue at load
20
- * time, once, so the operator notices.
31
+ * Return the names of openai-compatible agents carrying an inline `apiKey`
32
+ * instead of using `apiKeyEnv`. The schema permits both, but plaintext API
33
+ * keys in a config file are a backup/dotfile/git footgun serve surfaces
34
+ * this once at startup so the operator can react.
21
35
  */
22
- function warnOnInlineApiKey(config, configPath) {
36
+ export function collectInlineApiKeyOffenders(config) {
23
37
  const offenders = [];
24
38
  for (const [name, agent] of Object.entries(config.agents)) {
25
39
  if (agent.type === 'openai-compatible' &&
@@ -27,12 +41,7 @@ function warnOnInlineApiKey(config, configPath) {
27
41
  offenders.push(name);
28
42
  }
29
43
  }
30
- if (offenders.length > 0) {
31
- // eslint-disable-next-line no-console
32
- console.warn(`[multi-model-agent] WARNING: ${configPath} stores an inline \`apiKey\` for ` +
33
- `agent(s): ${offenders.join(', ')}. Prefer \`apiKeyEnv\` and read the key ` +
34
- `from an environment variable so it never lands in version control.`);
35
- }
44
+ return offenders;
36
45
  }
37
46
  /**
38
47
  * Load and parse a config file by path.
@@ -49,7 +58,6 @@ export async function loadConfigFromFile(path) {
49
58
  try {
50
59
  const raw = JSON.parse(data);
51
60
  const parsed = multiModelConfigSchema.parse(raw);
52
- warnOnInlineApiKey(parsed, path);
53
61
  resolve(parsed);
54
62
  }
55
63
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAA2B;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAwB,EAAE,UAAkB;IACtE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,IACE,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAClC,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ,EAC1D,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,gCAAgC,UAAU,mCAAmC;YAC3E,aAAa,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C;YAC3E,oEAAoE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjD,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAA2B;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oEAAoE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2FAA2F,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IAChI,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAwB;IACnE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,IACE,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAClC,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ,EAC1D,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -18,6 +18,7 @@ export declare const serverConfigSchema: z.ZodObject<{
18
18
  maxContextBlocksPerProject: z.ZodDefault<z.ZodNumber>;
19
19
  shutdownDrainMs: z.ZodDefault<z.ZodNumber>;
20
20
  }, z.core.$strip>>;
21
+ autoUpdateSkills: z.ZodDefault<z.ZodBoolean>;
21
22
  }, z.core.$strip>>;
22
23
  }, z.core.$strict>;
23
24
  export declare const multiModelConfigSchema: z.ZodObject<{
@@ -202,6 +203,7 @@ export declare const multiModelConfigSchema: z.ZodObject<{
202
203
  diagnostics: z.ZodOptional<z.ZodObject<{
203
204
  log: z.ZodDefault<z.ZodBoolean>;
204
205
  logDir: z.ZodOptional<z.ZodString>;
206
+ verbose: z.ZodDefault<z.ZodBoolean>;
205
207
  }, z.core.$strip>>;
206
208
  server: z.ZodDefault<z.ZodObject<{
207
209
  bind: z.ZodDefault<z.ZodString>;
@@ -220,6 +222,7 @@ export declare const multiModelConfigSchema: z.ZodObject<{
220
222
  maxContextBlocksPerProject: z.ZodDefault<z.ZodNumber>;
221
223
  shutdownDrainMs: z.ZodDefault<z.ZodNumber>;
222
224
  }, z.core.$strip>>;
225
+ autoUpdateSkills: z.ZodDefault<z.ZodBoolean>;
223
226
  }, z.core.$strip>>;
224
227
  }, z.core.$strict>;
225
228
  /** Inferred type for the standalone server configuration block. */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AA6GrB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;kBASpB,CAAC;AAEZ,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkBxB,CAAC;AAEZ,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAA;AAEzE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAE1D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AA8GrB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;kBAUpB,CAAC;AAEZ,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoBxB,CAAC;AAEZ,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAA;AAEzE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAE1D"}
@@ -80,6 +80,7 @@ const DEFAULT_SERVER = {
80
80
  port: 7337,
81
81
  auth: DEFAULT_SERVER_AUTH,
82
82
  limits: DEFAULT_SERVER_LIMITS,
83
+ autoUpdateSkills: true,
83
84
  };
84
85
  const serverLimitsSchema = z.object({
85
86
  maxBodyBytes: z.number().int().positive().default(DEFAULT_SERVER_LIMITS.maxBodyBytes),
@@ -100,6 +101,7 @@ export const serverConfigSchema = z.object({
100
101
  tokenFile: z.string().default(DEFAULT_SERVER_AUTH.tokenFile),
101
102
  }).default(() => DEFAULT_SERVER_AUTH),
102
103
  limits: serverLimitsSchema,
104
+ autoUpdateSkills: z.boolean().default(DEFAULT_SERVER.autoUpdateSkills),
103
105
  }).default(() => DEFAULT_SERVER),
104
106
  }).strict();
105
107
  export const multiModelConfigSchema = z.object({
@@ -111,6 +113,7 @@ export const multiModelConfigSchema = z.object({
111
113
  diagnostics: z.object({
112
114
  log: z.boolean().default(false),
113
115
  logDir: z.string().min(1).optional(),
116
+ verbose: z.boolean().default(false),
114
117
  }).optional(),
115
118
  server: z.object({
116
119
  bind: z.string().default(DEFAULT_SERVER.bind),
@@ -119,6 +122,7 @@ export const multiModelConfigSchema = z.object({
119
122
  tokenFile: z.string().default(DEFAULT_SERVER_AUTH.tokenFile),
120
123
  }).default(() => DEFAULT_SERVER_AUTH),
121
124
  limits: serverLimitsSchema,
125
+ autoUpdateSkills: z.boolean().default(DEFAULT_SERVER.autoUpdateSkills),
122
126
  }).default(() => DEFAULT_SERVER),
123
127
  }).strict();
124
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,51 @@ export interface DiagnosticLogger {
51
51
  cwd: string;
52
52
  idleMs: number;
53
53
  }): void;
54
+ taskStarted(params: {
55
+ batchId: string;
56
+ taskIndex: number;
57
+ worker?: string;
58
+ }): void;
59
+ taskHeartbeat(params: {
60
+ batchId: string;
61
+ taskIndex: number;
62
+ elapsedMs: number;
63
+ stage?: string;
64
+ }): void;
65
+ taskPhaseChange(params: {
66
+ batchId: string;
67
+ taskIndex: number;
68
+ fromStage: string;
69
+ toStage: string;
70
+ }): void;
71
+ toolCall(params: {
72
+ batchId: string;
73
+ taskIndex: number;
74
+ tool: string;
75
+ durationMs?: number;
76
+ }): void;
77
+ llmTurn(params: {
78
+ batchId: string;
79
+ taskIndex: number;
80
+ turnIndex: number;
81
+ provider?: string;
82
+ inputTokens?: number;
83
+ outputTokens?: number;
84
+ costUSD?: number | null;
85
+ }): void;
86
+ batchCompleted(params: {
87
+ batchId: string;
88
+ tool: string;
89
+ durationMs: number;
90
+ taskCount: number;
91
+ }): void;
92
+ batchFailed(params: {
93
+ batchId: string;
94
+ tool: string;
95
+ durationMs: number;
96
+ errorCode: string;
97
+ errorMessage: string;
98
+ }): void;
54
99
  }
55
100
  export interface CreateDiagnosticLoggerOptions {
56
101
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"disconnect-log.d.ts","sourceRoot":"","sources":["../../src/diagnostics/disconnect-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disconnect-log.d.ts","sourceRoot":"","sources":["../../src/diagnostics/disconnect-log.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,13 @@ export function createDiagnosticLogger(options) {
66
66
  requestRejected: () => { },
67
67
  projectCreated: () => { },
68
68
  projectEvicted: () => { },
69
+ taskStarted: () => { },
70
+ taskHeartbeat: () => { },
71
+ taskPhaseChange: () => { },
72
+ toolCall: () => { },
73
+ llmTurn: () => { },
74
+ batchCompleted: () => { },
75
+ batchFailed: () => { },
69
76
  };
70
77
  }
71
78
  const processStartTime = now().getTime();
@@ -107,7 +114,7 @@ export function createDiagnosticLogger(options) {
107
114
  catch { /* noop */ }
108
115
  }
109
116
  mkdirSync(logDir, { recursive: true, mode: 0o700 });
110
- const fd = openSync(nodePath.join(logDir, `mcp-${today}.jsonl`), 'a', 0o600);
117
+ const fd = openSync(nodePath.join(logDir, `mmagent-${today}.jsonl`), 'a', 0o600);
111
118
  state.fd = fd;
112
119
  state.fdDate = today;
113
120
  return fd;
@@ -223,7 +230,7 @@ export function createDiagnosticLogger(options) {
223
230
  expectedPath: () => {
224
231
  if (state.inert)
225
232
  return undefined;
226
- return nodePath.join(logDir, `mcp-${formatUtcDate(now())}.jsonl`);
233
+ return nodePath.join(logDir, `mmagent-${formatUtcDate(now())}.jsonl`);
227
234
  },
228
235
  sessionOpen: ({ sessionId, cwd, remoteAddr }) => {
229
236
  if (state.inert)
@@ -290,6 +297,93 @@ export function createDiagnosticLogger(options) {
290
297
  idleMs,
291
298
  });
292
299
  },
300
+ taskStarted: ({ batchId, taskIndex, worker }) => {
301
+ if (state.inert)
302
+ return;
303
+ writeLine({
304
+ event: 'task_started',
305
+ ts: now().toISOString(),
306
+ batchId,
307
+ taskIndex,
308
+ ...(worker !== undefined ? { worker } : {}),
309
+ });
310
+ },
311
+ taskHeartbeat: ({ batchId, taskIndex, elapsedMs, stage }) => {
312
+ if (state.inert)
313
+ return;
314
+ writeLine({
315
+ event: 'task_heartbeat',
316
+ ts: now().toISOString(),
317
+ batchId,
318
+ taskIndex,
319
+ elapsedMs,
320
+ ...(stage !== undefined ? { stage } : {}),
321
+ });
322
+ },
323
+ taskPhaseChange: ({ batchId, taskIndex, fromStage, toStage }) => {
324
+ if (state.inert)
325
+ return;
326
+ writeLine({
327
+ event: 'task_phase_change',
328
+ ts: now().toISOString(),
329
+ batchId,
330
+ taskIndex,
331
+ fromStage,
332
+ toStage,
333
+ });
334
+ },
335
+ toolCall: ({ batchId, taskIndex, tool, durationMs }) => {
336
+ if (state.inert)
337
+ return;
338
+ writeLine({
339
+ event: 'tool_call',
340
+ ts: now().toISOString(),
341
+ batchId,
342
+ taskIndex,
343
+ tool,
344
+ ...(durationMs !== undefined ? { durationMs } : {}),
345
+ });
346
+ },
347
+ llmTurn: ({ batchId, taskIndex, turnIndex, provider, inputTokens, outputTokens, costUSD }) => {
348
+ if (state.inert)
349
+ return;
350
+ writeLine({
351
+ event: 'llm_turn',
352
+ ts: now().toISOString(),
353
+ batchId,
354
+ taskIndex,
355
+ turnIndex,
356
+ ...(provider !== undefined ? { provider } : {}),
357
+ ...(inputTokens !== undefined ? { inputTokens } : {}),
358
+ ...(outputTokens !== undefined ? { outputTokens } : {}),
359
+ ...(costUSD !== undefined && costUSD !== null ? { costUSD } : {}),
360
+ });
361
+ },
362
+ batchCompleted: ({ batchId, tool, durationMs, taskCount }) => {
363
+ if (state.inert)
364
+ return;
365
+ writeLine({
366
+ event: 'batch_completed',
367
+ ts: now().toISOString(),
368
+ batchId,
369
+ tool,
370
+ durationMs,
371
+ taskCount,
372
+ });
373
+ },
374
+ batchFailed: ({ batchId, tool, durationMs, errorCode, errorMessage }) => {
375
+ if (state.inert)
376
+ return;
377
+ writeLine({
378
+ event: 'batch_failed',
379
+ ts: now().toISOString(),
380
+ batchId,
381
+ tool,
382
+ durationMs,
383
+ errorCode,
384
+ errorMessage,
385
+ });
386
+ },
293
387
  };
294
388
  }
295
389
  //# sourceMappingURL=disconnect-log.js.map