@zhixuan92/multi-model-agent-core 4.7.1 → 4.7.3

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 (206) hide show
  1. package/README.md +8 -6
  2. package/dist/bounded-execution/progress-events-subscriber.d.ts +3 -3
  3. package/dist/bounded-execution/progress-events-subscriber.d.ts.map +1 -1
  4. package/dist/bounded-execution/progress-events-subscriber.js +14 -4
  5. package/dist/bounded-execution/progress-events-subscriber.js.map +1 -1
  6. package/dist/bounded-execution/stall-watchdog.d.ts +4 -2
  7. package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -1
  8. package/dist/bounded-execution/stall-watchdog.js +55 -31
  9. package/dist/bounded-execution/stall-watchdog.js.map +1 -1
  10. package/dist/config/schema.d.ts +0 -1
  11. package/dist/config/schema.d.ts.map +1 -1
  12. package/dist/config/schema.js +0 -1
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/events/envelope-bus.d.ts +22 -0
  15. package/dist/events/envelope-bus.d.ts.map +1 -0
  16. package/dist/events/envelope-bus.js +35 -0
  17. package/dist/events/envelope-bus.js.map +1 -0
  18. package/dist/events/log-writer.d.ts +24 -0
  19. package/dist/events/log-writer.d.ts.map +1 -0
  20. package/dist/events/log-writer.js +52 -0
  21. package/dist/events/log-writer.js.map +1 -0
  22. package/dist/events/plain-log-entry.d.ts +45 -0
  23. package/dist/events/plain-log-entry.d.ts.map +1 -0
  24. package/dist/events/plain-log-entry.js +45 -0
  25. package/dist/events/plain-log-entry.js.map +1 -0
  26. package/dist/events/stderr-log-subscriber.d.ts +16 -0
  27. package/dist/events/stderr-log-subscriber.d.ts.map +1 -0
  28. package/dist/events/stderr-log-subscriber.js +50 -0
  29. package/dist/events/stderr-log-subscriber.js.map +1 -0
  30. package/dist/events/task-envelope.d.ts +174 -0
  31. package/dist/events/task-envelope.d.ts.map +1 -0
  32. package/dist/events/task-envelope.js +165 -0
  33. package/dist/events/task-envelope.js.map +1 -0
  34. package/dist/events/telemetry-uploader.d.ts +24 -0
  35. package/dist/events/telemetry-uploader.d.ts.map +1 -0
  36. package/dist/events/telemetry-uploader.js +31 -0
  37. package/dist/events/telemetry-uploader.js.map +1 -0
  38. package/dist/events/to-wire-record.d.ts +42 -0
  39. package/dist/events/to-wire-record.d.ts.map +1 -0
  40. package/dist/events/to-wire-record.js +230 -0
  41. package/dist/events/to-wire-record.js.map +1 -0
  42. package/dist/events/{telemetry-types.d.ts → wire-schema.d.ts} +23 -36
  43. package/dist/events/wire-schema.d.ts.map +1 -0
  44. package/dist/events/{telemetry-types.js → wire-schema.js} +2 -9
  45. package/dist/events/wire-schema.js.map +1 -0
  46. package/dist/identity/{auth-token-store.d.ts → claude-oauth.d.ts} +1 -24
  47. package/dist/identity/claude-oauth.d.ts.map +1 -0
  48. package/dist/identity/claude-oauth.js +71 -0
  49. package/dist/identity/claude-oauth.js.map +1 -0
  50. package/dist/index.d.ts +9 -10
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +5 -7
  53. package/dist/index.js.map +1 -1
  54. package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -1
  55. package/dist/lifecycle/handlers/annotate-stage.js +11 -5
  56. package/dist/lifecycle/handlers/annotate-stage.js.map +1 -1
  57. package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -1
  58. package/dist/lifecycle/handlers/review-stage.js +6 -1
  59. package/dist/lifecycle/handlers/review-stage.js.map +1 -1
  60. package/dist/lifecycle/handlers/rework-stage.js +2 -2
  61. package/dist/lifecycle/handlers/rework-stage.js.map +1 -1
  62. package/dist/lifecycle/handlers/terminal-handlers.d.ts +5 -4
  63. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  64. package/dist/lifecycle/handlers/terminal-handlers.js +39 -71
  65. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  66. package/dist/lifecycle/lifecycle-context.d.ts +11 -8
  67. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  68. package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
  69. package/dist/lifecycle/lifecycle-driver.js +169 -9
  70. package/dist/lifecycle/lifecycle-driver.js.map +1 -1
  71. package/dist/lifecycle/perform-implementation.js +2 -2
  72. package/dist/lifecycle/perform-implementation.js.map +1 -1
  73. package/dist/lifecycle/stage-plan-types.d.ts +7 -2
  74. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  75. package/dist/lifecycle/task-completion-summary.js +1 -1
  76. package/dist/lifecycle/task-completion-summary.js.map +1 -1
  77. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  78. package/dist/lifecycle/task-executor.js +1 -2
  79. package/dist/lifecycle/task-executor.js.map +1 -1
  80. package/dist/lifecycle/task-runner.d.ts +11 -10
  81. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  82. package/dist/lifecycle/task-runner.js +3 -4
  83. package/dist/lifecycle/task-runner.js.map +1 -1
  84. package/dist/providers/claude-session.d.ts +1 -0
  85. package/dist/providers/claude-session.d.ts.map +1 -1
  86. package/dist/providers/claude-session.js +29 -27
  87. package/dist/providers/claude-session.js.map +1 -1
  88. package/dist/providers/claude.js +1 -1
  89. package/dist/providers/claude.js.map +1 -1
  90. package/dist/providers/codex-cli-session.d.ts +4 -2
  91. package/dist/providers/codex-cli-session.d.ts.map +1 -1
  92. package/dist/providers/codex-cli-session.js +47 -46
  93. package/dist/providers/codex-cli-session.js.map +1 -1
  94. package/dist/providers/runner-types.d.ts +3 -3
  95. package/dist/providers/runner-types.d.ts.map +1 -1
  96. package/dist/reporting/structured-report.d.ts +3 -3
  97. package/dist/stores/batch-registry.d.ts +37 -29
  98. package/dist/stores/batch-registry.d.ts.map +1 -1
  99. package/dist/stores/batch-registry.js +18 -23
  100. package/dist/stores/batch-registry.js.map +1 -1
  101. package/dist/tools/audit/schema.d.ts +1 -1
  102. package/dist/tools/review/schema.d.ts +1 -1
  103. package/dist/transport/http-listener.d.ts +1 -1
  104. package/dist/types/config.d.ts +0 -1
  105. package/dist/types/config.d.ts.map +1 -1
  106. package/dist/types/enums.d.ts +16 -16
  107. package/dist/types/run-result.d.ts +3 -0
  108. package/dist/types/run-result.d.ts.map +1 -1
  109. package/package.json +25 -29
  110. package/dist/events/caller-response-channel.d.ts +0 -17
  111. package/dist/events/caller-response-channel.d.ts.map +0 -1
  112. package/dist/events/caller-response-channel.js +0 -10
  113. package/dist/events/caller-response-channel.js.map +0 -1
  114. package/dist/events/clamp.d.ts +0 -13
  115. package/dist/events/clamp.d.ts.map +0 -1
  116. package/dist/events/clamp.js +0 -24
  117. package/dist/events/clamp.js.map +0 -1
  118. package/dist/events/cloud-events.d.ts +0 -108
  119. package/dist/events/cloud-events.d.ts.map +0 -1
  120. package/dist/events/cloud-events.js +0 -58
  121. package/dist/events/cloud-events.js.map +0 -1
  122. package/dist/events/concern-classifier.d.ts +0 -9
  123. package/dist/events/concern-classifier.d.ts.map +0 -1
  124. package/dist/events/concern-classifier.js +0 -26
  125. package/dist/events/concern-classifier.js.map +0 -1
  126. package/dist/events/diagnostics-types.d.ts +0 -65
  127. package/dist/events/diagnostics-types.d.ts.map +0 -1
  128. package/dist/events/diagnostics-types.js +0 -2
  129. package/dist/events/diagnostics-types.js.map +0 -1
  130. package/dist/events/event-base.d.ts +0 -14
  131. package/dist/events/event-base.d.ts.map +0 -1
  132. package/dist/events/event-base.js +0 -24
  133. package/dist/events/event-base.js.map +0 -1
  134. package/dist/events/event-builder.d.ts +0 -55
  135. package/dist/events/event-builder.d.ts.map +0 -1
  136. package/dist/events/event-builder.js +0 -557
  137. package/dist/events/event-builder.js.map +0 -1
  138. package/dist/events/event-emitter.d.ts +0 -31
  139. package/dist/events/event-emitter.d.ts.map +0 -1
  140. package/dist/events/event-emitter.js +0 -63
  141. package/dist/events/event-emitter.js.map +0 -1
  142. package/dist/events/http-server-log.d.ts +0 -63
  143. package/dist/events/http-server-log.d.ts.map +0 -1
  144. package/dist/events/http-server-log.js +0 -188
  145. package/dist/events/http-server-log.js.map +0 -1
  146. package/dist/events/index.d.ts +0 -6
  147. package/dist/events/index.d.ts.map +0 -1
  148. package/dist/events/index.js +0 -7
  149. package/dist/events/index.js.map +0 -1
  150. package/dist/events/local-log-sink.d.ts +0 -10
  151. package/dist/events/local-log-sink.d.ts.map +0 -1
  152. package/dist/events/local-log-sink.js +0 -11
  153. package/dist/events/local-log-sink.js.map +0 -1
  154. package/dist/events/normalize.d.ts +0 -18
  155. package/dist/events/normalize.d.ts.map +0 -1
  156. package/dist/events/normalize.js +0 -18
  157. package/dist/events/normalize.js.map +0 -1
  158. package/dist/events/observability-events.d.ts +0 -1324
  159. package/dist/events/observability-events.d.ts.map +0 -1
  160. package/dist/events/observability-events.js +0 -446
  161. package/dist/events/observability-events.js.map +0 -1
  162. package/dist/events/privacy-filter.d.ts +0 -2
  163. package/dist/events/privacy-filter.d.ts.map +0 -1
  164. package/dist/events/privacy-filter.js +0 -10
  165. package/dist/events/privacy-filter.js.map +0 -1
  166. package/dist/events/request-spill.d.ts +0 -16
  167. package/dist/events/request-spill.d.ts.map +0 -1
  168. package/dist/events/request-spill.js +0 -23
  169. package/dist/events/request-spill.js.map +0 -1
  170. package/dist/events/telemetry-channel.d.ts +0 -9
  171. package/dist/events/telemetry-channel.d.ts.map +0 -1
  172. package/dist/events/telemetry-channel.js +0 -16
  173. package/dist/events/telemetry-channel.js.map +0 -1
  174. package/dist/events/telemetry-sink.d.ts +0 -12
  175. package/dist/events/telemetry-sink.d.ts.map +0 -1
  176. package/dist/events/telemetry-sink.js +0 -24
  177. package/dist/events/telemetry-sink.js.map +0 -1
  178. package/dist/events/telemetry-types.d.ts.map +0 -1
  179. package/dist/events/telemetry-types.js.map +0 -1
  180. package/dist/events/verbose-line.d.ts +0 -13
  181. package/dist/events/verbose-line.d.ts.map +0 -1
  182. package/dist/events/verbose-line.js +0 -99
  183. package/dist/events/verbose-line.js.map +0 -1
  184. package/dist/events/verbose-log-channel.d.ts +0 -29
  185. package/dist/events/verbose-log-channel.d.ts.map +0 -1
  186. package/dist/events/verbose-log-channel.js +0 -63
  187. package/dist/events/verbose-log-channel.js.map +0 -1
  188. package/dist/identity/auth-token-store.d.ts.map +0 -1
  189. package/dist/identity/auth-token-store.js +0 -136
  190. package/dist/identity/auth-token-store.js.map +0 -1
  191. package/dist/identity/cwd-validator.d.ts +0 -6
  192. package/dist/identity/cwd-validator.d.ts.map +0 -1
  193. package/dist/identity/cwd-validator.js +0 -28
  194. package/dist/identity/cwd-validator.js.map +0 -1
  195. package/dist/identity/host-allowlist.d.ts +0 -6
  196. package/dist/identity/host-allowlist.d.ts.map +0 -1
  197. package/dist/identity/host-allowlist.js +0 -11
  198. package/dist/identity/host-allowlist.js.map +0 -1
  199. package/dist/identity/index.d.ts +0 -6
  200. package/dist/identity/index.d.ts.map +0 -1
  201. package/dist/identity/index.js +0 -7
  202. package/dist/identity/index.js.map +0 -1
  203. package/dist/identity/ssrf-guard.d.ts +0 -4
  204. package/dist/identity/ssrf-guard.d.ts.map +0 -1
  205. package/dist/identity/ssrf-guard.js +0 -19
  206. package/dist/identity/ssrf-guard.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-types.d.ts","sourceRoot":"","sources":["../../src/events/telemetry-types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-types.js","sourceRoot":"","sources":["../../src/events/telemetry-types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- type Primitive = string | number | boolean | null;
2
- export interface VerboseLineFields {
3
- event: string;
4
- ts: string;
5
- batch?: string;
6
- task?: number;
7
- preview?: string;
8
- [key: string]: Primitive | undefined;
9
- }
10
- export declare function toVerboseFields(fields: Record<string, Primitive | undefined>): Record<string, Primitive | undefined>;
11
- export declare function composeVerboseLine(fields: VerboseLineFields): string;
12
- export {};
13
- //# sourceMappingURL=verbose-line.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verbose-line.d.ts","sourceRoot":"","sources":["../../src/events/verbose-line.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAmDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,CASvC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAiCpE"}
@@ -1,99 +0,0 @@
1
- const BARE_VALUE = /^[A-Za-z0-9_./:+-]+$/;
2
- const KEY_NAME = /^[a-z][a-z0-9_]*$/;
3
- function escapeValue(v) {
4
- if (v === null)
5
- return 'null';
6
- if (typeof v === 'number' || typeof v === 'boolean')
7
- return String(v);
8
- const needsQuote = !BARE_VALUE.test(v);
9
- if (!needsQuote)
10
- return v;
11
- let out = '';
12
- for (const ch of v) {
13
- const code = ch.charCodeAt(0);
14
- if (ch === '\\')
15
- out += '\\\\';
16
- else if (ch === '"')
17
- out += '\\"';
18
- else if (ch === '\n')
19
- out += '\\n';
20
- else if (ch === '\r')
21
- out += '\\r';
22
- else if (ch === '\t')
23
- out += '\\t';
24
- else if (code < 0x20 || code === 0x7f)
25
- out += '\\u' + code.toString(16).padStart(4, '0');
26
- else
27
- out += ch;
28
- }
29
- return `"${out}"`;
30
- }
31
- const STRUCT_KEY_FORBIDS_NEWLINE = (key) => key !== 'preview';
32
- function assertValidKey(key) {
33
- if (!KEY_NAME.test(key)) {
34
- throw new Error(`verbose-line: invalid key name (key=${key})`);
35
- }
36
- }
37
- function assertPrimitiveValue(key, val) {
38
- if (val === undefined)
39
- return;
40
- if (val === null)
41
- return;
42
- const t = typeof val;
43
- if (t !== 'string' && t !== 'number' && t !== 'boolean') {
44
- throw new Error(`verbose-line: non-primitive value (key=${key})`);
45
- }
46
- }
47
- // Keys already emitted on every verbose line as `batch` / `task` by the
48
- // caller. Drop them when forwarding event params so we don't produce
49
- // both `batch=` and `batch_id=` on the same line.
50
- const VERBOSE_DROP_KEYS = new Set(['batchId', 'taskIndex']);
51
- // Convert event-param fields (typed in camelCase per the JSONL DiagnosticLogger
52
- // contract) into the snake_case shape `composeVerboseLine` requires. Used at
53
- // the verbose-stream branch only — the JSONL path keeps camelCase.
54
- export function toVerboseFields(fields) {
55
- const out = {};
56
- for (const [key, value] of Object.entries(fields)) {
57
- if (value === undefined)
58
- continue;
59
- if (VERBOSE_DROP_KEYS.has(key))
60
- continue;
61
- const snake = key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
62
- out[snake] = value;
63
- }
64
- return out;
65
- }
66
- export function composeVerboseLine(fields) {
67
- const { event, ts, ...rest } = fields;
68
- if (!event)
69
- throw new Error('verbose-line: event is required');
70
- if (!ts)
71
- throw new Error('verbose-line: ts is required');
72
- if (/[\n\r]/.test(event) || /[\n\r]/.test(ts)) {
73
- throw new Error('verbose-line: event/ts must not contain newlines');
74
- }
75
- assertValidKey('event');
76
- assertValidKey('ts');
77
- assertPrimitiveValue('event', event);
78
- assertPrimitiveValue('ts', ts);
79
- const orderedKeys = [
80
- 'batch',
81
- 'task',
82
- ...Object.keys(rest).filter((k) => k !== 'batch' && k !== 'task' && k !== 'preview'),
83
- 'preview',
84
- ];
85
- const parts = [`event=${escapeValue(event)}`, `ts=${escapeValue(ts)}`];
86
- for (const key of orderedKeys) {
87
- assertValidKey(key);
88
- const val = rest[key];
89
- assertPrimitiveValue(key, val);
90
- if (val === undefined)
91
- continue;
92
- if (typeof val === 'string' && /[\n\r]/.test(val) && STRUCT_KEY_FORBIDS_NEWLINE(key)) {
93
- throw new Error(`verbose-line: non-preview value contains newline (key=${key})`);
94
- }
95
- parts.push(`${key}=${escapeValue(val)}`);
96
- }
97
- return `[mmagent verbose] ${parts.join(' ')}`;
98
- }
99
- //# sourceMappingURL=verbose-line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verbose-line.js","sourceRoot":"","sources":["../../src/events/verbose-line.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * VerboseLogChannel — bus sink that streams every event to the daemon's
3
- * stderr in the `[mmagent verbose] event=...` snake_case format.
4
- *
5
- * Always registered (4.6.0+): verbose streaming is compulsory. The only
6
- * remaining diagnostics toggle is `diagnostics.log`, which controls
7
- * file persistence via `LocalLogSink`. File = `log`; verbose = always on,
8
- * stderr.
9
- *
10
- * Per v4 spec (horizontal_design.md:332): "writes every event verbatim
11
- * (no filter, no transform, no privacy filter — local audience, full
12
- * detail OK)".
13
- */
14
- /**
15
- * Format a bus event as a single `[mmagent verbose] event=... ts=... key=val`
16
- * line. Primitive values are emitted directly (snake-cased, quoted only when
17
- * they contain whitespace or quotes); nested objects are JSON-encoded inline
18
- * so the line stays grep-able while preserving full structural detail.
19
- */
20
- export declare function formatVerboseLine(event: Record<string, unknown>): string;
21
- export declare class VerboseLogChannel {
22
- private readonly stream;
23
- readonly name = "verbose-log";
24
- constructor(stream?: {
25
- write: (s: string) => boolean;
26
- });
27
- emit(event: Record<string, unknown>): void;
28
- }
29
- //# sourceMappingURL=verbose-log-channel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verbose-log-channel.d.ts","sourceRoot":"","sources":["../../src/events/verbose-log-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAkBxE;AAED,qBAAa,iBAAiB;IAG1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,QAAQ,CAAC,IAAI,iBAAiB;gBAEX,MAAM,GAAE;QAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;KAAmB;IAG7E,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAa3C"}
@@ -1,63 +0,0 @@
1
- /**
2
- * VerboseLogChannel — bus sink that streams every event to the daemon's
3
- * stderr in the `[mmagent verbose] event=...` snake_case format.
4
- *
5
- * Always registered (4.6.0+): verbose streaming is compulsory. The only
6
- * remaining diagnostics toggle is `diagnostics.log`, which controls
7
- * file persistence via `LocalLogSink`. File = `log`; verbose = always on,
8
- * stderr.
9
- *
10
- * Per v4 spec (horizontal_design.md:332): "writes every event verbatim
11
- * (no filter, no transform, no privacy filter — local audience, full
12
- * detail OK)".
13
- */
14
- /**
15
- * Format a bus event as a single `[mmagent verbose] event=... ts=... key=val`
16
- * line. Primitive values are emitted directly (snake-cased, quoted only when
17
- * they contain whitespace or quotes); nested objects are JSON-encoded inline
18
- * so the line stays grep-able while preserving full structural detail.
19
- */
20
- export function formatVerboseLine(event) {
21
- const { event: eventName, ts, ...rest } = event;
22
- const eventStr = typeof eventName === 'string' ? eventName : 'unknown';
23
- const tsStr = typeof ts === 'string' ? ts : new Date().toISOString();
24
- const parts = [`event=${eventStr}`, `ts=${tsStr}`];
25
- for (const [k, v] of Object.entries(rest)) {
26
- if (v === undefined || v === null)
27
- continue;
28
- const snake = k.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();
29
- if (typeof v === 'object') {
30
- parts.push(`${snake}=${JSON.stringify(v)}`);
31
- }
32
- else if (typeof v === 'string' && /[\s"\\]/.test(v)) {
33
- parts.push(`${snake}=${JSON.stringify(v)}`);
34
- }
35
- else {
36
- parts.push(`${snake}=${v}`);
37
- }
38
- }
39
- return `[mmagent verbose] ${parts.join(' ')}`;
40
- }
41
- export class VerboseLogChannel {
42
- stream;
43
- name = 'verbose-log';
44
- constructor(stream = process.stderr) {
45
- this.stream = stream;
46
- }
47
- emit(event) {
48
- let line;
49
- try {
50
- line = formatVerboseLine(event);
51
- }
52
- catch {
53
- line = `[mmagent verbose] _serializeError`;
54
- }
55
- try {
56
- this.stream.write(line + '\n');
57
- }
58
- catch {
59
- // stream write failed — drop the line; this is best-effort observability.
60
- }
61
- }
62
- }
63
- //# sourceMappingURL=verbose-log-channel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verbose-log-channel.js","sourceRoot":"","sources":["../../src/events/verbose-log-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErE,MAAM,KAAK,GAAa,CAAC,SAAS,QAAQ,EAAE,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACrE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,iBAAiB;IAGT;IAFV,IAAI,GAAG,aAAa,CAAC;IAC9B,YACmB,SAA4C,OAAO,CAAC,MAAM;QAA1D,WAAM,GAAN,MAAM,CAAoD;IAC1E,CAAC;IAEJ,IAAI,CAAC,KAA8B;QACjC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,mCAAmC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;IACH,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-token-store.d.ts","sourceRoot":"","sources":["../../src/identity/auth-token-store.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,aAAa,IAAI,UAAU,CAM1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,IAAI,sBAAsB,GAAG,IAAI,CAqC9D;AAED,eAAO,MAAM,WAAW;;;CAAoC,CAAC;AAY7D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8BD,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAgB/C;AAED,eAAO,MAAM,UAAU;;CAAmB,CAAC"}
@@ -1,136 +0,0 @@
1
- // packages/core/src/identity/auth-token-store.ts
2
- // Unified OAuth + API-key store per architecture.md:65.
3
- // Replaces the previous claude-oauth.ts + codex-oauth.ts split.
4
- //
5
- // Each provider's auth flow is namespaced under a const:
6
- // - claudeOAuth.getClaudeAuth() — env var (ANTHROPIC_API_KEY) +
7
- // macOS Keychain fallback for Claude Code subscription tokens
8
- // - codexOAuth.getCodexAuth() — reads ~/.codex/auth.json with chmod warning
9
- import fs from 'fs';
10
- import path from 'path';
11
- import os from 'os';
12
- import { execFileSync } from 'child_process';
13
- export function getClaudeAuth() {
14
- const apiKey = process.env.ANTHROPIC_API_KEY;
15
- return {
16
- apiKey: apiKey || undefined,
17
- useOAuth: !apiKey,
18
- };
19
- }
20
- /**
21
- * Claude Code subscription token retrieval (4.2.3+).
22
- *
23
- * Claude Code stores its OAuth credentials in the macOS Keychain under
24
- * service name `"Claude Code-credentials"`. The stored value is a JSON
25
- * blob: `{"claudeAiOauth": {"accessToken", "refreshToken", "expiresAt",
26
- * "scopes", "subscriptionType", ...}}`.
27
- *
28
- * This is the equivalent of `getCodexAuth()` (which reads
29
- * `~/.codex/auth.json`): when the user has a valid Claude Max
30
- * subscription via Claude Code, mma can dispatch to Anthropic's API
31
- * using the OAuth bearer token instead of requiring an API key in
32
- * config or `ANTHROPIC_API_KEY` env.
33
- *
34
- * Returns null when:
35
- * - Not running on macOS (other platforms not yet supported — Claude
36
- * Code stores credentials differently per platform)
37
- * - The keychain entry doesn't exist (user hasn't logged in to
38
- * Claude Code, or never had a Claude Max subscription)
39
- * - The stored value isn't valid JSON or is missing the access token
40
- * - The access token has already expired (caller should fall back to
41
- * env var or config apiKey)
42
- *
43
- * Token refresh is not implemented in this version; if expiresAt is in
44
- * the past, returns null and the caller falls back. (Most subscription
45
- * tokens are valid for ~1 year, so refresh is rare in practice.)
46
- */
47
- export function getClaudeOAuth() {
48
- if (process.platform !== 'darwin')
49
- return null;
50
- let raw;
51
- try {
52
- raw = execFileSync('security', ['find-generic-password', '-s', 'Claude Code-credentials', '-w'], {
53
- encoding: 'utf8',
54
- stdio: ['ignore', 'pipe', 'ignore'],
55
- }).trim();
56
- }
57
- catch {
58
- return null;
59
- }
60
- if (!raw)
61
- return null;
62
- let parsed;
63
- try {
64
- parsed = JSON.parse(raw);
65
- }
66
- catch {
67
- return null;
68
- }
69
- const wrapper = parsed;
70
- const oauth = wrapper.claudeAiOauth;
71
- if (!oauth || typeof oauth !== 'object')
72
- return null;
73
- const accessToken = typeof oauth['accessToken'] === 'string' ? oauth['accessToken'] : undefined;
74
- if (!accessToken)
75
- return null;
76
- const expiresAt = typeof oauth['expiresAt'] === 'number' ? oauth['expiresAt'] : undefined;
77
- if (expiresAt !== undefined && expiresAt < Date.now())
78
- return null;
79
- return {
80
- accessToken,
81
- ...(typeof oauth['refreshToken'] === 'string' && { refreshToken: oauth['refreshToken'] }),
82
- ...(expiresAt !== undefined && { expiresAt }),
83
- ...(Array.isArray(oauth['scopes']) && { scopes: oauth['scopes'] }),
84
- ...(typeof oauth['subscriptionType'] === 'string' && { subscriptionType: oauth['subscriptionType'] }),
85
- };
86
- }
87
- export const claudeOAuth = { getClaudeAuth, getClaudeOAuth };
88
- // ── Codex ────────────────────────────────────────────────────────────────
89
- const CODEX_AUTH_PATH = () => path.join(os.homedir(), '.codex', 'auth.json');
90
- // Track which paths we have already warned about so getCodexAuth() can be
91
- // called repeatedly (it is, on every sub-agent dispatch) without spamming
92
- // stderr with the same chmod warning.
93
- const warnedPaths = new Set();
94
- function warnIfWorldReadable(authPath) {
95
- // Permission bits are POSIX-only. On Windows, mode bits are not meaningful.
96
- if (process.platform === 'win32')
97
- return;
98
- if (warnedPaths.has(authPath))
99
- return;
100
- try {
101
- const stats = fs.statSync(authPath);
102
- const groupOrOtherReadable = (stats.mode & 0o077) !== 0;
103
- if (groupOrOtherReadable) {
104
- warnedPaths.add(authPath);
105
- const mode = (stats.mode & 0o777).toString(8);
106
- // eslint-disable-next-line no-console
107
- console.warn(`[multi-model-agent] WARNING: ${authPath} has permissions 0${mode} ` +
108
- `and is readable by other users on this system. Run \`chmod 600 ${authPath}\` ` +
109
- `to restrict access to your Codex OAuth token.`);
110
- }
111
- }
112
- catch {
113
- // statSync should not normally fail here (we just confirmed existsSync),
114
- // but if it does there's nothing useful to warn about.
115
- }
116
- }
117
- export function getCodexAuth() {
118
- const authPath = CODEX_AUTH_PATH();
119
- if (!fs.existsSync(authPath))
120
- return null;
121
- warnIfWorldReadable(authPath);
122
- try {
123
- const raw = JSON.parse(fs.readFileSync(authPath, 'utf-8'));
124
- if (!raw.tokens?.access_token || !raw.tokens?.account_id)
125
- return null;
126
- return {
127
- accessToken: raw.tokens.access_token,
128
- accountId: raw.tokens.account_id,
129
- };
130
- }
131
- catch {
132
- return null;
133
- }
134
- }
135
- export const codexOAuth = { getCodexAuth };
136
- //# sourceMappingURL=auth-token-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-token-store.js","sourceRoot":"","sources":["../../src/identity/auth-token-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export declare class CWDValidator {
2
- private cwd;
3
- constructor(cwd: string);
4
- validate(target: string): string;
5
- }
6
- //# sourceMappingURL=cwd-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cwd-validator.d.ts","sourceRoot":"","sources":["../../src/identity/cwd-validator.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAkBjC"}
@@ -1,28 +0,0 @@
1
- import { realpathSync, existsSync } from 'node:fs';
2
- import { resolve, sep, dirname, basename } from 'node:path';
3
- export class CWDValidator {
4
- cwd;
5
- constructor(cwd) {
6
- this.cwd = realpathSync(resolve(cwd));
7
- }
8
- validate(target) {
9
- const absTarget = resolve(this.cwd, target);
10
- // For non-existent targets (e.g. write_file creating a new file),
11
- // resolve the parent's realpath instead so symlink confinement still
12
- // works but we don't ENOENT on the create.
13
- let resolved;
14
- if (existsSync(absTarget)) {
15
- resolved = realpathSync(absTarget);
16
- }
17
- else {
18
- const parent = dirname(absTarget);
19
- const parentReal = existsSync(parent) ? realpathSync(parent) : parent;
20
- resolved = resolve(parentReal, basename(absTarget));
21
- }
22
- if (resolved !== this.cwd && !resolved.startsWith(this.cwd + sep)) {
23
- throw new Error(`path escapes cwd: ${target}`);
24
- }
25
- return resolved;
26
- }
27
- }
28
- //# sourceMappingURL=cwd-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cwd-validator.js","sourceRoot":"","sources":["../../src/identity/cwd-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,OAAO,YAAY;IACf,GAAG,CAAS;IAEpB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5C,kEAAkE;QAClE,qEAAqE;QACrE,2CAA2C;QAC3C,IAAI,QAAgB,CAAC;QACrB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- export declare class HostAllowlist {
2
- private allowed;
3
- constructor(allowed: Set<string>);
4
- check(host: string): void;
5
- }
6
- //# sourceMappingURL=host-allowlist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-allowlist.d.ts","sourceRoot":"","sources":["../../src/identity/host-allowlist.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACZ,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC;IAExC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG1B"}
@@ -1,11 +0,0 @@
1
- export class HostAllowlist {
2
- allowed;
3
- constructor(allowed) {
4
- this.allowed = allowed;
5
- }
6
- check(host) {
7
- if (!this.allowed.has(host))
8
- throw new Error(`host not allowed: ${host}`);
9
- }
10
- }
11
- //# sourceMappingURL=host-allowlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-allowlist.js","sourceRoot":"","sources":["../../src/identity/host-allowlist.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE5C,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- export * from './auth-token-store.js';
2
- export * from './secret-redactor.js';
3
- export * from './cwd-validator.js';
4
- export * from './host-allowlist.js';
5
- export * from './ssrf-guard.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -1,7 +0,0 @@
1
- // identity/index.ts — public surface barrel; per architecture.md:262-275.
2
- export * from './auth-token-store.js';
3
- export * from './secret-redactor.js';
4
- export * from './cwd-validator.js';
5
- export * from './host-allowlist.js';
6
- export * from './ssrf-guard.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare class SSRFGuard {
2
- check(url: string): void;
3
- }
4
- //# sourceMappingURL=ssrf-guard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../src/identity/ssrf-guard.ts"],"names":[],"mappings":"AAWA,qBAAa,SAAS;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAMzB"}
@@ -1,19 +0,0 @@
1
- const PRIVATE_RANGES = [
2
- /^127\./,
3
- /^10\./,
4
- /^192\.168\./,
5
- /^172\.(1[6-9]|2\d|3[01])\./,
6
- /^169\.254\./,
7
- /^::1$/,
8
- /^fc/,
9
- /^fe80:/,
10
- ];
11
- export class SSRFGuard {
12
- check(url) {
13
- const u = new URL(url);
14
- if (PRIVATE_RANGES.some(rx => rx.test(u.hostname))) {
15
- throw new Error(`SSRF: private range ${u.hostname}`);
16
- }
17
- }
18
- }
19
- //# sourceMappingURL=ssrf-guard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssrf-guard.js","sourceRoot":"","sources":["../../src/identity/ssrf-guard.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,OAAO;IACP,aAAa;IACb,4BAA4B;IAC5B,aAAa;IACb,OAAO;IACP,KAAK;IACL,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,SAAS;IACpB,KAAK,CAAC,GAAW;QACf,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF"}