@zhixuan92/multi-model-agent-core 3.10.7 → 3.11.1

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 (159) hide show
  1. package/README.md +3 -3
  2. package/dist/config/schema.d.ts +15 -0
  3. package/dist/config/schema.d.ts.map +1 -1
  4. package/dist/config/schema.js +17 -2
  5. package/dist/config/schema.js.map +1 -1
  6. package/dist/diagnostics/types.d.ts +11 -0
  7. package/dist/diagnostics/types.d.ts.map +1 -1
  8. package/dist/escalation/fallback.d.ts +16 -0
  9. package/dist/escalation/fallback.d.ts.map +1 -1
  10. package/dist/escalation/fallback.js +280 -19
  11. package/dist/escalation/fallback.js.map +1 -1
  12. package/dist/executors/audit.d.ts.map +1 -1
  13. package/dist/executors/audit.js +6 -4
  14. package/dist/executors/audit.js.map +1 -1
  15. package/dist/executors/debug.d.ts.map +1 -1
  16. package/dist/executors/debug.js +5 -3
  17. package/dist/executors/debug.js.map +1 -1
  18. package/dist/executors/delegate.d.ts +12 -0
  19. package/dist/executors/delegate.d.ts.map +1 -1
  20. package/dist/executors/delegate.js +46 -11
  21. package/dist/executors/delegate.js.map +1 -1
  22. package/dist/executors/execute-plan.d.ts.map +1 -1
  23. package/dist/executors/execute-plan.js +6 -4
  24. package/dist/executors/execute-plan.js.map +1 -1
  25. package/dist/executors/retry.d.ts.map +1 -1
  26. package/dist/executors/retry.js +2 -1
  27. package/dist/executors/retry.js.map +1 -1
  28. package/dist/executors/review.d.ts.map +1 -1
  29. package/dist/executors/review.js +2 -1
  30. package/dist/executors/review.js.map +1 -1
  31. package/dist/executors/shared-compute.js +4 -4
  32. package/dist/executors/shared-compute.js.map +1 -1
  33. package/dist/executors/types.d.ts +1 -1
  34. package/dist/executors/types.d.ts.map +1 -1
  35. package/dist/executors/verify.js +2 -2
  36. package/dist/executors/verify.js.map +1 -1
  37. package/dist/heartbeat.d.ts +5 -5
  38. package/dist/heartbeat.d.ts.map +1 -1
  39. package/dist/heartbeat.js +21 -17
  40. package/dist/heartbeat.js.map +1 -1
  41. package/dist/index.d.ts +4 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +5 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/intake/compilers/audit.d.ts.map +1 -1
  46. package/dist/intake/compilers/audit.js +5 -2
  47. package/dist/intake/compilers/audit.js.map +1 -1
  48. package/dist/intake/compilers/debug.d.ts.map +1 -1
  49. package/dist/intake/compilers/debug.js +4 -0
  50. package/dist/intake/compilers/debug.js.map +1 -1
  51. package/dist/intake/compilers/delegate.d.ts +3 -0
  52. package/dist/intake/compilers/delegate.d.ts.map +1 -1
  53. package/dist/intake/compilers/delegate.js +5 -1
  54. package/dist/intake/compilers/delegate.js.map +1 -1
  55. package/dist/intake/compilers/execute-plan.d.ts.map +1 -1
  56. package/dist/intake/compilers/execute-plan.js +5 -0
  57. package/dist/intake/compilers/execute-plan.js.map +1 -1
  58. package/dist/intake/compilers/review.d.ts.map +1 -1
  59. package/dist/intake/compilers/review.js +3 -0
  60. package/dist/intake/compilers/review.js.map +1 -1
  61. package/dist/intake/compilers/verify.d.ts.map +1 -1
  62. package/dist/intake/compilers/verify.js +7 -0
  63. package/dist/intake/compilers/verify.js.map +1 -1
  64. package/dist/intake/force-clarification.d.ts +5 -0
  65. package/dist/intake/force-clarification.d.ts.map +1 -0
  66. package/dist/intake/force-clarification.js +44 -0
  67. package/dist/intake/force-clarification.js.map +1 -0
  68. package/dist/intake/pipeline.d.ts +1 -1
  69. package/dist/intake/pipeline.d.ts.map +1 -1
  70. package/dist/intake/pipeline.js +32 -1
  71. package/dist/intake/pipeline.js.map +1 -1
  72. package/dist/intake/resolve.d.ts.map +1 -1
  73. package/dist/intake/resolve.js +0 -1
  74. package/dist/intake/resolve.js.map +1 -1
  75. package/dist/observability/bus.d.ts.map +1 -1
  76. package/dist/observability/bus.js +20 -0
  77. package/dist/observability/bus.js.map +1 -1
  78. package/dist/observability/events.d.ts +85 -8
  79. package/dist/observability/events.d.ts.map +1 -1
  80. package/dist/observability/events.js +77 -2
  81. package/dist/observability/events.js.map +1 -1
  82. package/dist/provider.d.ts +1 -0
  83. package/dist/provider.d.ts.map +1 -1
  84. package/dist/provider.js +9 -1
  85. package/dist/provider.js.map +1 -1
  86. package/dist/review/diff-review.d.ts +2 -1
  87. package/dist/review/diff-review.d.ts.map +1 -1
  88. package/dist/review/diff-review.js +1 -0
  89. package/dist/review/diff-review.js.map +1 -1
  90. package/dist/review/quality-reviewer.d.ts +2 -2
  91. package/dist/review/quality-reviewer.d.ts.map +1 -1
  92. package/dist/review/quality-reviewer.js +21 -9
  93. package/dist/review/quality-reviewer.js.map +1 -1
  94. package/dist/review/spec-reviewer.d.ts +1 -1
  95. package/dist/review/spec-reviewer.d.ts.map +1 -1
  96. package/dist/review/spec-reviewer.js +3 -1
  97. package/dist/review/spec-reviewer.js.map +1 -1
  98. package/dist/routing/canonical-model-identity.d.ts +9 -0
  99. package/dist/routing/canonical-model-identity.d.ts.map +1 -0
  100. package/dist/routing/canonical-model-identity.js +54 -0
  101. package/dist/routing/canonical-model-identity.js.map +1 -0
  102. package/dist/run-tasks/execute-task.d.ts.map +1 -1
  103. package/dist/run-tasks/execute-task.js +2 -1
  104. package/dist/run-tasks/execute-task.js.map +1 -1
  105. package/dist/run-tasks/index.d.ts.map +1 -1
  106. package/dist/run-tasks/index.js +2 -1
  107. package/dist/run-tasks/index.js.map +1 -1
  108. package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -1
  109. package/dist/run-tasks/reviewed-lifecycle.js +195 -36
  110. package/dist/run-tasks/reviewed-lifecycle.js.map +1 -1
  111. package/dist/runners/base/result-builders.d.ts +13 -2
  112. package/dist/runners/base/result-builders.d.ts.map +1 -1
  113. package/dist/runners/base/result-builders.js +30 -1
  114. package/dist/runners/base/result-builders.js.map +1 -1
  115. package/dist/runners/base/time-check.d.ts +9 -0
  116. package/dist/runners/base/time-check.d.ts.map +1 -0
  117. package/dist/runners/base/time-check.js +18 -0
  118. package/dist/runners/base/time-check.js.map +1 -0
  119. package/dist/runners/base/usage-accumulator.d.ts +9 -0
  120. package/dist/runners/base/usage-accumulator.d.ts.map +1 -0
  121. package/dist/runners/base/usage-accumulator.js +19 -0
  122. package/dist/runners/base/usage-accumulator.js.map +1 -0
  123. package/dist/runners/claude-runner.d.ts.map +1 -1
  124. package/dist/runners/claude-runner.js +141 -180
  125. package/dist/runners/claude-runner.js.map +1 -1
  126. package/dist/runners/codex-runner.d.ts.map +1 -1
  127. package/dist/runners/codex-runner.js +99 -128
  128. package/dist/runners/codex-runner.js.map +1 -1
  129. package/dist/runners/error-classification.d.ts +11 -0
  130. package/dist/runners/error-classification.d.ts.map +1 -1
  131. package/dist/runners/error-classification.js +51 -0
  132. package/dist/runners/error-classification.js.map +1 -1
  133. package/dist/runners/openai-runner.d.ts.map +1 -1
  134. package/dist/runners/openai-runner.js +125 -172
  135. package/dist/runners/openai-runner.js.map +1 -1
  136. package/dist/runners/supervision.d.ts +0 -49
  137. package/dist/runners/supervision.d.ts.map +1 -1
  138. package/dist/runners/supervision.js +0 -67
  139. package/dist/runners/supervision.js.map +1 -1
  140. package/dist/runners/types.d.ts +15 -5
  141. package/dist/runners/types.d.ts.map +1 -1
  142. package/dist/telemetry/concern-classifier.d.ts +1 -1
  143. package/dist/telemetry/concern-classifier.d.ts.map +1 -1
  144. package/dist/telemetry/concern-classifier.js +5 -0
  145. package/dist/telemetry/concern-classifier.js.map +1 -1
  146. package/dist/telemetry/event-builder.d.ts.map +1 -1
  147. package/dist/telemetry/event-builder.js +10 -7
  148. package/dist/telemetry/event-builder.js.map +1 -1
  149. package/dist/telemetry/field-coverage.js +2 -2
  150. package/dist/telemetry/field-coverage.js.map +1 -1
  151. package/dist/telemetry/types.d.ts +142 -94
  152. package/dist/telemetry/types.d.ts.map +1 -1
  153. package/dist/telemetry/types.js +23 -17
  154. package/dist/telemetry/types.js.map +1 -1
  155. package/dist/types.d.ts +7 -2
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +5 -2
  158. package/dist/types.js.map +1 -1
  159. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { createDraftId, escapeFanoutKey, canonicalizePath } from '../draft-id.js';
2
+ const SCOPE_CONTRACT = `Review the specified files in scope. Cross-reference call sites and types only when needed to validate a finding. Do NOT review code outside the requested scope.`;
2
3
  export function compileReviewCode(input, requestId) {
3
4
  const filePaths = input.filePaths ?? [];
4
5
  if (filePaths.length <= 1 && !input.code && !input.inlineContent) {
@@ -9,6 +10,7 @@ export function compileReviewCode(input, requestId) {
9
10
  if (input.focus?.length)
10
11
  promptParts.push(`Focus areas: ${input.focus.join(', ')}`);
11
12
  promptParts.push('Provide a structured review with findings and recommendations.');
13
+ promptParts.push(SCOPE_CONTRACT);
12
14
  return [{
13
15
  draftId: createDraftId(requestId, 0, nodeId),
14
16
  source: {
@@ -30,6 +32,7 @@ export function compileReviewCode(input, requestId) {
30
32
  if (input.focus?.length)
31
33
  promptParts.push(`Focus areas: ${input.focus.join(', ')}`);
32
34
  promptParts.push('Provide a structured review with findings and recommendations.');
35
+ promptParts.push(SCOPE_CONTRACT);
33
36
  return {
34
37
  draftId: createDraftId(requestId, index, nodeId),
35
38
  source: {
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/intake/compilers/review.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AASlF,MAAM,UAAU,iBAAiB,CAC/B,KAAsB,EACtB,SAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAExC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACjG,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAEnF,OAAO,CAAC;gBACN,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC5C,MAAM,EAAE;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;oBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;iBACH;gBACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,SAAS;gBACT,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAEnF,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;YAChD,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;gBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;aACH;YACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,uBAAuB,EAAE,IAAI;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/intake/compilers/review.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElF,MAAM,cAAc,GAAG,mKAAmK,CAAC;AAS3L,MAAM,UAAU,iBAAiB,CAC/B,KAAsB,EACtB,SAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAExC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACjG,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACnF,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,CAAC;gBACN,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC5C,MAAM,EAAE;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;oBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;iBACH;gBACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,SAAS;gBACT,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACnF,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;YAChD,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;gBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;aACH;YACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,uBAAuB,EAAE,IAAI;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/intake/compilers/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CA0Cb"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/intake/compilers/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAQD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CA4Cb"}
@@ -1,4 +1,9 @@
1
1
  import { createDraftId, escapeFanoutKey, canonicalizePath } from '../draft-id.js';
2
+ const SCOPE_CONTRACT = [
3
+ 'Run the supplied verification command(s) and report.',
4
+ 'Do NOT explore or refactor.',
5
+ 'Read source only when the command output is ambiguous.',
6
+ ].join(' ');
2
7
  export function compileVerifyWork(input, requestId) {
3
8
  const filePaths = input.filePaths ?? [];
4
9
  if (filePaths.length <= 1) {
@@ -10,6 +15,7 @@ export function compileVerifyWork(input, requestId) {
10
15
  if (input.checklist.length)
11
16
  promptParts.push(`\nChecklist:\n${input.checklist.map(c => `- ${c}`).join('\n')}`);
12
17
  promptParts.push('For each checklist item, indicate pass/fail and provide evidence.');
18
+ promptParts.push(SCOPE_CONTRACT);
13
19
  return [{
14
20
  draftId: createDraftId(requestId, 0, 'root'),
15
21
  source: {
@@ -29,6 +35,7 @@ export function compileVerifyWork(input, requestId) {
29
35
  if (input.checklist.length)
30
36
  promptParts.push(`Checklist:\n${input.checklist.map(c => `- ${c}`).join('\n')}`);
31
37
  promptParts.push('For each checklist item, indicate pass/fail and provide evidence.');
38
+ promptParts.push(SCOPE_CONTRACT);
32
39
  return {
33
40
  draftId: createDraftId(requestId, index, nodeId),
34
41
  source: {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/intake/compilers/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQlF,MAAM,UAAU,iBAAiB,CAC/B,KAAsB,EACtB,SAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAExC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/G,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAEtF,OAAO,CAAC;gBACN,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC5C,MAAM,EAAE;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;oBAC3E,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACD;gBACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,SAAS;aACV,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7G,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAEtF,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;YAChD,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;gBAC3E,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;aACD;YACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/intake/compilers/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQlF,MAAM,cAAc,GAAG;IACrB,sDAAsD;IACtD,6BAA6B;IAC7B,wDAAwD;CACzD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,iBAAiB,CAC/B,KAAsB,EACtB,SAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAExC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/G,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACtF,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,CAAC;gBACN,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC5C,MAAM,EAAE;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;oBAC3E,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACD;gBACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,SAAS;aACV,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7G,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACtF,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;YAChD,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAuC;gBAC3E,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;aACD;YACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function __forceClarification(reason: string, batchId?: string): string;
2
+ export declare function __forceClarificationGlobal(reason: string): void;
3
+ export declare function __clearForcedClarification(batchId?: string): void;
4
+ export declare function __consumeForcedClarification(batchId: string): string | null;
5
+ //# sourceMappingURL=force-clarification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force-clarification.d.ts","sourceRoot":"","sources":["../../src/intake/force-clarification.ts"],"names":[],"mappings":"AAQA,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAGjE;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3E"}
@@ -0,0 +1,44 @@
1
+ const _forcedClarifications = new Map();
2
+ const _globalForced = { reason: null };
3
+ function isSeamEnabled() {
4
+ return process.env.NODE_ENV === 'test' && process.env.MMAGENT_TEST_SEAMS === '1';
5
+ }
6
+ export function __forceClarification(reason, batchId) {
7
+ if (!isSeamEnabled())
8
+ return '';
9
+ const id = batchId ?? `forced-${Date.now()}-${Math.random()}`;
10
+ _forcedClarifications.set(id, reason);
11
+ return id;
12
+ }
13
+ export function __forceClarificationGlobal(reason) {
14
+ if (!isSeamEnabled())
15
+ return;
16
+ _globalForced.reason = reason;
17
+ }
18
+ export function __clearForcedClarification(batchId) {
19
+ if (batchId)
20
+ _forcedClarifications.delete(batchId);
21
+ else {
22
+ _forcedClarifications.clear();
23
+ _globalForced.reason = null;
24
+ }
25
+ }
26
+ export function __consumeForcedClarification(batchId) {
27
+ if (!isSeamEnabled())
28
+ return null;
29
+ if (_forcedClarifications.has(batchId)) {
30
+ const reason = _forcedClarifications.get(batchId);
31
+ _forcedClarifications.delete(batchId);
32
+ return reason;
33
+ }
34
+ if (_globalForced.reason !== null) {
35
+ const reason = _globalForced.reason;
36
+ _globalForced.reason = null;
37
+ return reason;
38
+ }
39
+ const envReason = process.env.MMAGENT_FORCED_CLARIFICATION;
40
+ if (envReason)
41
+ return envReason;
42
+ return null;
43
+ }
44
+ //# sourceMappingURL=force-clarification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force-clarification.js","sourceRoot":"","sources":["../../src/intake/force-clarification.ts"],"names":[],"mappings":"AACA,MAAM,qBAAqB,GAA2B,IAAI,GAAG,EAAE,CAAC;AAChE,MAAM,aAAa,GAA8B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAElE,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAgB;IACnE,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,OAAO,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9D,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO;IAC7B,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,IAAI,OAAO;QAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC;QAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACnD,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACpC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC3D,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { MultiModelConfig } from '../types.js';
2
2
  import type { ContextBlockStore } from '../context/context-block-store.js';
3
3
  import type { DraftTask, IntakeResult } from './types.js';
4
- export declare function runIntakePipeline(drafts: DraftTask[], config: MultiModelConfig, contextBlockStore?: ContextBlockStore): IntakeResult;
4
+ export declare function runIntakePipeline(drafts: DraftTask[], config: MultiModelConfig, contextBlockStore?: ContextBlockStore, batchId?: string): IntakeResult;
5
5
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/intake/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAKb,MAAM,YAAY,CAAC;AAuDpB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,YAAY,CA+Dd"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/intake/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAKb,MAAM,YAAY,CAAC;AAwDpB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CA8Fd"}
@@ -1,6 +1,7 @@
1
1
  import { inferMissingFields } from './infer.js';
2
2
  import { classifyDraft } from './classify.js';
3
3
  import { resolveDraft } from './resolve.js';
4
+ import { __consumeForcedClarification } from './force-clarification.js';
4
5
  function expandDraftContextBlocks(draft, store) {
5
6
  if (!draft.contextBlockIds?.length || !store)
6
7
  return draft;
@@ -43,7 +44,37 @@ function sanitizeAssumption(assumption) {
43
44
  }
44
45
  return assumption;
45
46
  }
46
- export function runIntakePipeline(drafts, config, contextBlockStore) {
47
+ export function runIntakePipeline(drafts, config, contextBlockStore, batchId) {
48
+ // Test seam: forced clarification overrides normal classification
49
+ if (batchId) {
50
+ const forcedReason = __consumeForcedClarification(batchId);
51
+ if (forcedReason !== null) {
52
+ const clarifications = drafts.map((draft, i) => ({
53
+ draftId: draft.draftId,
54
+ taskIndex: i,
55
+ proposedDraft: {
56
+ prompt: draft.prompt,
57
+ filePaths: draft.filePaths,
58
+ done: draft.done,
59
+ },
60
+ assumptions: draft.assumptions ?? [],
61
+ questions: [forcedReason],
62
+ reason: forcedReason,
63
+ }));
64
+ return {
65
+ ready: [],
66
+ clarifications,
67
+ hardErrors: [],
68
+ intakeProgress: {
69
+ totalDrafts: drafts.length,
70
+ readyDrafts: 0,
71
+ clarificationDrafts: clarifications.length,
72
+ hardErrorDrafts: 0,
73
+ executedDrafts: 0,
74
+ },
75
+ };
76
+ }
77
+ }
47
78
  const ready = [];
48
79
  const clarifications = [];
49
80
  const hardErrors = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/intake/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/intake/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/intake/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAExE,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAQjE,CAAC;AAEF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,gBAAgB,GACvB,QAAQ,CAwBV"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/intake/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAExE,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAQjE,CAAC;AAEF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,gBAAgB,GACvB,QAAQ,CAuBV"}
@@ -39,7 +39,6 @@ export function resolveDraft(draft, config) {
39
39
  maxCostUSD: config.defaults?.maxCostUSD ?? 10,
40
40
  sandboxPolicy: config.defaults?.sandboxPolicy ?? 'cwd-only',
41
41
  briefQualityPolicy: 'off',
42
- cwd: process.cwd(),
43
42
  skipCompletionHeuristic: draft.skipCompletionHeuristic,
44
43
  };
45
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/intake/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyC;IAC3E,YAAY,EAAE,gOAAgO;CAC/O,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA2C;IACpE,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACnE,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IAClE,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACnE,cAAc,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACtE,YAAY,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE;IAC7D,oBAAoB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;CAC7E,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,KAAgB,EAChB,MAAwB;IAExB,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,IAAI,UAAU,CAAC;IAE3E,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,cAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,OAAO,cAAc,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAEjB,OAAO;QACL,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,SAAmC;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY;QAC9D,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;QACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;QAChE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE;QAC7C,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;QAC3D,kBAAkB,EAAE,KAAK;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/intake/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyC;IAC3E,YAAY,EAAE,gOAAgO;CAC/O,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA2C;IACpE,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACnE,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IAClE,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACnE,cAAc,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;IACtE,YAAY,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE;IAC7D,oBAAoB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;CAC7E,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,KAAgB,EAChB,MAAwB;IAExB,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,IAAI,UAAU,CAAC;IAE3E,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,cAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,OAAO,cAAc,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAEjB,OAAO;QACL,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,SAAmC;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY;QAC9D,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;QACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;QAChE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE;QAC7C,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;QAC3D,kBAAkB,EAAE,KAAK;QACzB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;KACvD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/observability/bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,EAAE,SAAS,EAAE;IAI9B,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAS7B"}
1
+ {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/observability/bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,EAAE,SAAS,EAAE;IAI9B,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CA+B7B"}
@@ -1,9 +1,29 @@
1
+ import { EventSchemas } from './events.js';
1
2
  export class EventBus {
2
3
  sinks;
3
4
  constructor(sinks) {
4
5
  this.sinks = sinks;
5
6
  }
6
7
  emit(event) {
8
+ // Emit-time schema validation in dev/test (§3.11).
9
+ // Validates the full persisted envelope (including the `event`
10
+ // discriminator field), so one schema is authoritative for both
11
+ // emit and ingest.
12
+ //
13
+ // Unknown event names (no entry in EventSchemas) pass through
14
+ // without validation. This is intentional: production code emits
15
+ // non-schema diagnostic events (cost_check, time_check,
16
+ // heartbeat_timer, task_done_summary) that are consumed by verbose
17
+ // logging and JSONL sinks but don't need schema enforcement.
18
+ if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
19
+ const schema = EventSchemas[event.event];
20
+ if (schema) {
21
+ const result = schema.safeParse(event);
22
+ if (!result.success) {
23
+ throw new Error(`emit-time schema violation for ${event.event}: ${JSON.stringify(result.error.format())}`);
24
+ }
25
+ }
26
+ }
7
27
  for (const sink of this.sinks) {
8
28
  try {
9
29
  sink.emit(event);
@@ -1 +1 @@
1
- {"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/observability/bus.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,QAAQ;IACF,KAAK,CAAc;IAEpC,YAAY,KAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,KAAgB;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/observability/bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,MAAM,OAAO,QAAQ;IACF,KAAK,CAAc;IAEpC,YAAY,KAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,KAAgB;QACnB,mDAAmD;QACnD,+DAA+D;QAC/D,gEAAgE;QAChE,mBAAmB;QACnB,EAAE;QACF,8DAA8D;QAC9D,iEAAiE;QACjE,wDAAwD;QACxD,mEAAmE;QACnE,6DAA6D;QAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC9E,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAC1F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -5,10 +5,10 @@ export declare const TaskStartedEvent: z.ZodObject<{
5
5
  taskIndex: z.ZodNumber;
6
6
  event: z.ZodLiteral<"task_started">;
7
7
  route: z.ZodEnum<{
8
+ review: "review";
8
9
  retry: "retry";
9
10
  delegate: "delegate";
10
11
  audit: "audit";
11
- review: "review";
12
12
  verify: "verify";
13
13
  debug: "debug";
14
14
  "execute-plan": "execute-plan";
@@ -93,6 +93,17 @@ export declare const FallbackEvent: z.ZodObject<{
93
93
  unavailable: "unavailable";
94
94
  }>>;
95
95
  violatesSeparation: z.ZodBoolean;
96
+ fallbackSeparationRespected: z.ZodOptional<z.ZodBoolean>;
97
+ assignedIdentity: z.ZodNullable<z.ZodOptional<z.ZodObject<{
98
+ providerType: z.ZodString;
99
+ normalizedEndpoint: z.ZodString;
100
+ modelId: z.ZodString;
101
+ }, z.core.$strip>>>;
102
+ usedIdentity: z.ZodNullable<z.ZodOptional<z.ZodObject<{
103
+ providerType: z.ZodString;
104
+ normalizedEndpoint: z.ZodString;
105
+ modelId: z.ZodString;
106
+ }, z.core.$strip>>>;
96
107
  }, z.core.$strict>;
97
108
  export declare const FallbackUnavailableEvent: z.ZodObject<{
98
109
  ts: z.ZodString;
@@ -237,8 +248,6 @@ export declare const ReadOnlyReviewQualityEvent: z.ZodObject<{
237
248
  }>;
238
249
  iterationIndex: z.ZodNumber;
239
250
  findingsReviewed: z.ZodNumber;
240
- findingsFlagged: z.ZodNumber;
241
- severityCorrections: z.ZodNumber;
242
251
  meanConfidence: z.ZodNullable<z.ZodNumber>;
243
252
  durationMs: z.ZodNumber;
244
253
  costUSD: z.ZodNullable<z.ZodNumber>;
@@ -270,6 +279,27 @@ export declare const StallAbortEvent: z.ZodObject<{
270
279
  idle_ms: z.ZodNumber;
271
280
  threshold_ms: z.ZodNumber;
272
281
  }, z.core.$strict>;
282
+ export declare const TimeCheckEvent: z.ZodObject<{
283
+ ts: z.ZodString;
284
+ batchId: z.ZodString;
285
+ taskIndex: z.ZodNumber;
286
+ event: z.ZodLiteral<"time_check">;
287
+ stage: z.ZodString;
288
+ tripped: z.ZodBoolean;
289
+ wallClockMs: z.ZodNumber;
290
+ timeoutMs: z.ZodNumber;
291
+ }, z.core.$strict>;
292
+ export declare const CostCheckEvent: z.ZodObject<{
293
+ ts: z.ZodString;
294
+ batchId: z.ZodString;
295
+ taskIndex: z.ZodNumber;
296
+ event: z.ZodLiteral<"cost_check">;
297
+ stage: z.ZodString;
298
+ tripped: z.ZodBoolean;
299
+ cost_used_usd: z.ZodNumber;
300
+ cost_cap_usd: z.ZodNumber;
301
+ cost_available: z.ZodBoolean;
302
+ }, z.core.$strict>;
273
303
  export declare const BatchCompletedEvent: z.ZodObject<{
274
304
  ts: z.ZodString;
275
305
  batchId: z.ZodString;
@@ -465,6 +495,8 @@ export declare const TaskCompletedLocalEvent: z.ZodObject<{
465
495
  toolCalls: z.ZodNumber;
466
496
  inputTokens: z.ZodNumber;
467
497
  outputTokens: z.ZodNumber;
498
+ cachedTokens: z.ZodNullable<z.ZodNumber>;
499
+ reasoningTokens: z.ZodNullable<z.ZodNumber>;
468
500
  costUSD: z.ZodNullable<z.ZodNumber>;
469
501
  taskMaxIdleMs: z.ZodNullable<z.ZodNumber>;
470
502
  stallTriggered: z.ZodBoolean;
@@ -507,6 +539,8 @@ export declare const TurnCompleteEvent: z.ZodObject<{
507
539
  turnIndex: z.ZodNumber;
508
540
  inputTokens: z.ZodNumber;
509
541
  outputTokens: z.ZodNumber;
542
+ cachedTokens: z.ZodNullable<z.ZodNumber>;
543
+ reasoningTokens: z.ZodNullable<z.ZodNumber>;
510
544
  costUSD: z.ZodNumber;
511
545
  durationMs: z.ZodNumber;
512
546
  providerType: z.ZodEnum<{
@@ -536,10 +570,10 @@ export declare const TaskCompletedCloudEvent: z.ZodObject<{
536
570
  event: z.ZodLiteral<"task.completed">;
537
571
  ts: z.ZodString;
538
572
  route: z.ZodEnum<{
573
+ review: "review";
539
574
  retry: "retry";
540
575
  delegate: "delegate";
541
576
  audit: "audit";
542
- review: "review";
543
577
  verify: "verify";
544
578
  debug: "debug";
545
579
  "execute-plan": "execute-plan";
@@ -647,10 +681,10 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
647
681
  taskIndex: z.ZodNumber;
648
682
  event: z.ZodLiteral<"task_started">;
649
683
  route: z.ZodEnum<{
684
+ review: "review";
650
685
  retry: "retry";
651
686
  delegate: "delegate";
652
687
  audit: "audit";
653
- review: "review";
654
688
  verify: "verify";
655
689
  debug: "debug";
656
690
  "execute-plan": "execute-plan";
@@ -732,6 +766,17 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
732
766
  unavailable: "unavailable";
733
767
  }>>;
734
768
  violatesSeparation: z.ZodBoolean;
769
+ fallbackSeparationRespected: z.ZodOptional<z.ZodBoolean>;
770
+ assignedIdentity: z.ZodNullable<z.ZodOptional<z.ZodObject<{
771
+ providerType: z.ZodString;
772
+ normalizedEndpoint: z.ZodString;
773
+ modelId: z.ZodString;
774
+ }, z.core.$strip>>>;
775
+ usedIdentity: z.ZodNullable<z.ZodOptional<z.ZodObject<{
776
+ providerType: z.ZodString;
777
+ normalizedEndpoint: z.ZodString;
778
+ modelId: z.ZodString;
779
+ }, z.core.$strip>>>;
735
780
  }, z.core.$strict>, z.ZodObject<{
736
781
  ts: z.ZodString;
737
782
  batchId: z.ZodString;
@@ -869,8 +914,6 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
869
914
  }>;
870
915
  iterationIndex: z.ZodNumber;
871
916
  findingsReviewed: z.ZodNumber;
872
- findingsFlagged: z.ZodNumber;
873
- severityCorrections: z.ZodNumber;
874
917
  meanConfidence: z.ZodNullable<z.ZodNumber>;
875
918
  durationMs: z.ZodNumber;
876
919
  costUSD: z.ZodNullable<z.ZodNumber>;
@@ -899,6 +942,25 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
899
942
  event: z.ZodLiteral<"stall_abort">;
900
943
  idle_ms: z.ZodNumber;
901
944
  threshold_ms: z.ZodNumber;
945
+ }, z.core.$strict>, z.ZodObject<{
946
+ ts: z.ZodString;
947
+ batchId: z.ZodString;
948
+ taskIndex: z.ZodNumber;
949
+ event: z.ZodLiteral<"time_check">;
950
+ stage: z.ZodString;
951
+ tripped: z.ZodBoolean;
952
+ wallClockMs: z.ZodNumber;
953
+ timeoutMs: z.ZodNumber;
954
+ }, z.core.$strict>, z.ZodObject<{
955
+ ts: z.ZodString;
956
+ batchId: z.ZodString;
957
+ taskIndex: z.ZodNumber;
958
+ event: z.ZodLiteral<"cost_check">;
959
+ stage: z.ZodString;
960
+ tripped: z.ZodBoolean;
961
+ cost_used_usd: z.ZodNumber;
962
+ cost_cap_usd: z.ZodNumber;
963
+ cost_available: z.ZodBoolean;
902
964
  }, z.core.$strict>, z.ZodObject<{
903
965
  ts: z.ZodString;
904
966
  batchId: z.ZodString;
@@ -928,6 +990,8 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
928
990
  toolCalls: z.ZodNumber;
929
991
  inputTokens: z.ZodNumber;
930
992
  outputTokens: z.ZodNumber;
993
+ cachedTokens: z.ZodNullable<z.ZodNumber>;
994
+ reasoningTokens: z.ZodNullable<z.ZodNumber>;
931
995
  costUSD: z.ZodNullable<z.ZodNumber>;
932
996
  taskMaxIdleMs: z.ZodNullable<z.ZodNumber>;
933
997
  stallTriggered: z.ZodBoolean;
@@ -967,6 +1031,8 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
967
1031
  turnIndex: z.ZodNumber;
968
1032
  inputTokens: z.ZodNumber;
969
1033
  outputTokens: z.ZodNumber;
1034
+ cachedTokens: z.ZodNullable<z.ZodNumber>;
1035
+ reasoningTokens: z.ZodNullable<z.ZodNumber>;
970
1036
  costUSD: z.ZodNumber;
971
1037
  durationMs: z.ZodNumber;
972
1038
  providerType: z.ZodEnum<{
@@ -993,10 +1059,10 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
993
1059
  event: z.ZodLiteral<"task.completed">;
994
1060
  ts: z.ZodString;
995
1061
  route: z.ZodEnum<{
1062
+ review: "review";
996
1063
  retry: "retry";
997
1064
  delegate: "delegate";
998
1065
  audit: "audit";
999
- review: "review";
1000
1066
  verify: "verify";
1001
1067
  debug: "debug";
1002
1068
  "execute-plan": "execute-plan";
@@ -1098,4 +1164,15 @@ export declare const Event: z.ZodDiscriminatedUnion<[z.ZodObject<{
1098
1164
  export type EventType = z.infer<typeof Event>;
1099
1165
  /** Cloud-bound event discriminator values — used by TelemetrySink to filter. */
1100
1166
  export declare const CLOUD_EVENT_NAMES: Set<"task.completed" | "session.started" | "install.changed" | "skill.installed">;
1167
+ /**
1168
+ * Map from event discriminator to its full-envelope Zod schema.
1169
+ *
1170
+ * Each schema validates the **complete persisted envelope** (including the
1171
+ * `event: <name>` discriminator field), not just the caller-supplied payload.
1172
+ * This makes one schema authoritative for both emit and ingest.
1173
+ *
1174
+ * Used by the telemetry coverage invariant test and by the emit-time
1175
+ * validator (NODE_ENV=test|development).
1176
+ */
1177
+ export declare const EventSchemas: Record<string, z.ZodType>;
1101
1178
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,17 @@ export const FallbackEvent = TaskBase.extend({
83
83
  reason: DiagReasonEnum,
84
84
  triggeringStatus: RunStatusEnum.optional(),
85
85
  violatesSeparation: z.boolean(),
86
+ fallbackSeparationRespected: z.boolean().optional(),
87
+ assignedIdentity: z.object({
88
+ providerType: z.string(),
89
+ normalizedEndpoint: z.string(),
90
+ modelId: z.string(),
91
+ }).optional().nullable(),
92
+ usedIdentity: z.object({
93
+ providerType: z.string(),
94
+ normalizedEndpoint: z.string(),
95
+ modelId: z.string(),
96
+ }).optional().nullable(),
86
97
  }).strict();
87
98
  export const FallbackUnavailableEvent = TaskBase.extend({
88
99
  event: z.literal('fallback_unavailable'),
@@ -134,8 +145,6 @@ export const ReadOnlyReviewQualityEvent = TaskBase.extend({
134
145
  verdict: ReviewVerdictEnum,
135
146
  iterationIndex: z.number().int().min(1),
136
147
  findingsReviewed: z.number().int().min(0),
137
- findingsFlagged: z.number().int().min(0),
138
- severityCorrections: z.number().int().min(0),
139
148
  meanConfidence: z.number().min(0).max(100).nullable(),
140
149
  durationMs: z.number().int().min(0),
141
150
  costUSD: z.number().min(0).nullable(),
@@ -153,6 +162,21 @@ export const StallAbortEvent = TaskBase.extend({
153
162
  idle_ms: z.number().int().min(0),
154
163
  threshold_ms: z.number().int().min(0),
155
164
  }).strict();
165
+ export const TimeCheckEvent = TaskBase.extend({
166
+ event: z.literal('time_check'),
167
+ stage: z.string(),
168
+ tripped: z.boolean(),
169
+ wallClockMs: z.number().int().min(0),
170
+ timeoutMs: z.number().int().min(0),
171
+ }).strict();
172
+ export const CostCheckEvent = TaskBase.extend({
173
+ event: z.literal('cost_check'),
174
+ stage: z.string(),
175
+ tripped: z.boolean(),
176
+ cost_used_usd: z.number().min(0),
177
+ cost_cap_usd: z.number().min(0),
178
+ cost_available: z.boolean(),
179
+ }).strict();
156
180
  export const BatchCompletedEvent = BatchBase.extend({
157
181
  event: z.literal('batch_completed'),
158
182
  tool: z.string(),
@@ -214,6 +238,8 @@ export const TaskCompletedLocalEvent = TaskBase.extend({
214
238
  toolCalls: z.number().int().min(0),
215
239
  inputTokens: z.number().int().min(0),
216
240
  outputTokens: z.number().int().min(0),
241
+ cachedTokens: z.number().int().min(0).nullable(),
242
+ reasoningTokens: z.number().int().min(0).nullable(),
217
243
  costUSD: z.number().min(0).nullable(),
218
244
  // New in v3.9.0
219
245
  taskMaxIdleMs: z.number().int().min(0).nullable(),
@@ -240,6 +266,8 @@ export const TurnCompleteEvent = TaskBase.extend({
240
266
  turnIndex: z.number().int().min(0),
241
267
  inputTokens: z.number().int().min(0),
242
268
  outputTokens: z.number().int().min(0),
269
+ cachedTokens: z.number().int().min(0).nullable(),
270
+ reasoningTokens: z.number().int().min(0).nullable(),
243
271
  costUSD: z.number().min(0),
244
272
  durationMs: z.number().int().min(0),
245
273
  providerType: ProviderTypeEnum,
@@ -327,6 +355,8 @@ export const Event = z.discriminatedUnion('event', [
327
355
  ReadOnlyReviewQualityEvent,
328
356
  ReadOnlyReviewTerminalEvent,
329
357
  StallAbortEvent,
358
+ TimeCheckEvent,
359
+ CostCheckEvent,
330
360
  BatchCompletedEvent,
331
361
  BatchFailedEvent,
332
362
  TaskCompletedLocalEvent,
@@ -349,4 +379,49 @@ export const CLOUD_EVENT_NAMES = new Set([
349
379
  'install.changed',
350
380
  'skill.installed',
351
381
  ]);
382
+ // ---------------------------------------------------------------------------
383
+ // Schema index for coverage invariants and emit-time validation
384
+ // ---------------------------------------------------------------------------
385
+ /**
386
+ * Map from event discriminator to its full-envelope Zod schema.
387
+ *
388
+ * Each schema validates the **complete persisted envelope** (including the
389
+ * `event: <name>` discriminator field), not just the caller-supplied payload.
390
+ * This makes one schema authoritative for both emit and ingest.
391
+ *
392
+ * Used by the telemetry coverage invariant test and by the emit-time
393
+ * validator (NODE_ENV=test|development).
394
+ */
395
+ export const EventSchemas = {
396
+ // Lifecycle
397
+ task_started: TaskStartedEvent,
398
+ stage_change: StageChangeEvent,
399
+ heartbeat: HeartbeatEvent,
400
+ fallback: FallbackEvent,
401
+ fallback_unavailable: FallbackUnavailableEvent,
402
+ escalation: EscalationEvent,
403
+ escalation_unavailable: EscalationUnavailableEvent,
404
+ review_decision: ReviewDecisionEvent,
405
+ verify_step: VerifyStepEvent,
406
+ verify_skipped: VerifySkippedEvent,
407
+ 'read_only_review.quality': ReadOnlyReviewQualityEvent,
408
+ 'read_only_review.terminal': ReadOnlyReviewTerminalEvent,
409
+ stall_abort: StallAbortEvent,
410
+ time_check: TimeCheckEvent,
411
+ cost_check: CostCheckEvent,
412
+ task_completed: TaskCompletedLocalEvent,
413
+ batch_completed: BatchCompletedEvent,
414
+ batch_failed: BatchFailedEvent,
415
+ // Runner internals
416
+ worker_start: WorkerStartEvent,
417
+ turn_start: TurnStartEvent,
418
+ turn_complete: TurnCompleteEvent,
419
+ tool_call: ToolCallEvent,
420
+ text_emission: TextEmissionEvent,
421
+ // Cloud-bound
422
+ 'task.completed': TaskCompletedCloudEvent,
423
+ 'session.started': SessionStartedCloudEvent,
424
+ 'install.changed': InstallChangedCloudEvent,
425
+ 'skill.installed': SkillInstalledCloudEvent,
426
+ };
352
427
  //# sourceMappingURL=events.js.map