@zhixuan92/multi-model-agent-core 4.7.12 → 4.7.13

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 (157) hide show
  1. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  2. package/dist/lifecycle/perform-implementation.js +13 -10
  3. package/dist/lifecycle/perform-implementation.js.map +1 -1
  4. package/dist/lifecycle/read-only-subtype-spec.d.ts +1 -1
  5. package/dist/lifecycle/read-only-subtype-spec.d.ts.map +1 -1
  6. package/dist/lifecycle/{parallel-criteria-routes.d.ts → read-route-criteria.d.ts} +2 -2
  7. package/dist/lifecycle/read-route-criteria.d.ts.map +1 -0
  8. package/dist/lifecycle/{parallel-criteria-routes.js → read-route-criteria.js} +2 -2
  9. package/dist/lifecycle/read-route-criteria.js.map +1 -0
  10. package/dist/lifecycle/research-pre-loop.d.ts.map +1 -1
  11. package/dist/lifecycle/research-pre-loop.js +0 -1
  12. package/dist/lifecycle/research-pre-loop.js.map +1 -1
  13. package/dist/lifecycle/task-runner.d.ts +0 -1
  14. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  15. package/dist/lifecycle/task-runner.js +0 -1
  16. package/dist/lifecycle/task-runner.js.map +1 -1
  17. package/dist/reporting/findings-headline.d.ts +12 -0
  18. package/dist/reporting/findings-headline.d.ts.map +1 -0
  19. package/dist/reporting/findings-headline.js +40 -0
  20. package/dist/reporting/findings-headline.js.map +1 -0
  21. package/dist/reporting/report-parser-slots/no-structured-report.d.ts +10 -0
  22. package/dist/reporting/report-parser-slots/no-structured-report.d.ts.map +1 -0
  23. package/dist/reporting/report-parser-slots/no-structured-report.js +13 -0
  24. package/dist/reporting/report-parser-slots/no-structured-report.js.map +1 -0
  25. package/dist/tools/audit/implementer-criteria.d.ts +0 -11
  26. package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
  27. package/dist/tools/audit/implementer-criteria.js +0 -22
  28. package/dist/tools/audit/implementer-criteria.js.map +1 -1
  29. package/dist/tools/audit/skill-audit-criteria.d.ts +1 -1
  30. package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -1
  31. package/dist/tools/audit/spec-audit-criteria.d.ts +1 -1
  32. package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -1
  33. package/dist/tools/audit/subtypes.js +1 -1
  34. package/dist/tools/audit/subtypes.js.map +1 -1
  35. package/dist/tools/audit/tool-config.d.ts +1 -2
  36. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  37. package/dist/tools/audit/tool-config.js +11 -87
  38. package/dist/tools/audit/tool-config.js.map +1 -1
  39. package/dist/tools/debug/implementer-criteria.d.ts +0 -10
  40. package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
  41. package/dist/tools/debug/implementer-criteria.js +0 -23
  42. package/dist/tools/debug/implementer-criteria.js.map +1 -1
  43. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  44. package/dist/tools/debug/tool-config.js +10 -71
  45. package/dist/tools/debug/tool-config.js.map +1 -1
  46. package/dist/tools/delegate/brief-slot.d.ts +1 -0
  47. package/dist/tools/delegate/brief-slot.d.ts.map +1 -1
  48. package/dist/tools/delegate/brief-slot.js +5 -2
  49. package/dist/tools/delegate/brief-slot.js.map +1 -1
  50. package/dist/tools/delegate/schema.d.ts +2 -2
  51. package/dist/tools/delegate/schema.js +1 -1
  52. package/dist/tools/delegate/schema.js.map +1 -1
  53. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  54. package/dist/tools/delegate/tool-config.js +1 -0
  55. package/dist/tools/delegate/tool-config.js.map +1 -1
  56. package/dist/tools/execute-plan/barrel.d.ts +2 -0
  57. package/dist/tools/execute-plan/barrel.d.ts.map +1 -0
  58. package/dist/tools/execute-plan/barrel.js +7 -0
  59. package/dist/tools/execute-plan/barrel.js.map +1 -0
  60. package/dist/tools/execute-plan/tool-config.d.ts +48 -0
  61. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  62. package/dist/tools/execute-plan/tool-config.js +4 -0
  63. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  64. package/dist/tools/index.d.ts +1 -2
  65. package/dist/tools/index.d.ts.map +1 -1
  66. package/dist/tools/index.js +7 -7
  67. package/dist/tools/index.js.map +1 -1
  68. package/dist/tools/investigate/brief-slot.d.ts +3 -19
  69. package/dist/tools/investigate/brief-slot.d.ts.map +1 -1
  70. package/dist/tools/investigate/brief-slot.js +0 -60
  71. package/dist/tools/investigate/brief-slot.js.map +1 -1
  72. package/dist/tools/investigate/implementer-criteria.d.ts +0 -11
  73. package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
  74. package/dist/tools/investigate/implementer-criteria.js +0 -23
  75. package/dist/tools/investigate/implementer-criteria.js.map +1 -1
  76. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  77. package/dist/tools/investigate/tool-config.js +2 -6
  78. package/dist/tools/investigate/tool-config.js.map +1 -1
  79. package/dist/tools/{parallel-criteria-prompt.d.ts → read-route-prompt.d.ts} +1 -1
  80. package/dist/tools/read-route-prompt.d.ts.map +1 -0
  81. package/dist/tools/{parallel-criteria-prompt.js → read-route-prompt.js} +1 -1
  82. package/dist/tools/read-route-prompt.js.map +1 -0
  83. package/dist/tools/research/brief-slot.d.ts +4 -1
  84. package/dist/tools/research/brief-slot.d.ts.map +1 -1
  85. package/dist/tools/research/brief-slot.js +1 -31
  86. package/dist/tools/research/brief-slot.js.map +1 -1
  87. package/dist/tools/research/tool-config.js +2 -2
  88. package/dist/tools/research/tool-config.js.map +1 -1
  89. package/dist/tools/research/two-turn-driver.d.ts +0 -4
  90. package/dist/tools/research/two-turn-driver.d.ts.map +1 -1
  91. package/dist/tools/research/two-turn-driver.js.map +1 -1
  92. package/dist/tools/retry/tool-config.js +4 -4
  93. package/dist/tools/retry/tool-config.js.map +1 -1
  94. package/dist/tools/review/implementer-criteria.d.ts +0 -12
  95. package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
  96. package/dist/tools/review/implementer-criteria.js +0 -23
  97. package/dist/tools/review/implementer-criteria.js.map +1 -1
  98. package/dist/tools/review/subtypes.js +1 -1
  99. package/dist/tools/review/subtypes.js.map +1 -1
  100. package/dist/tools/review/tool-config.d.ts.map +1 -1
  101. package/dist/tools/review/tool-config.js +11 -80
  102. package/dist/tools/review/tool-config.js.map +1 -1
  103. package/dist/types/task-spec.d.ts +12 -10
  104. package/dist/types/task-spec.d.ts.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +0 -1
  107. package/dist/lifecycle/parallel-criteria-routes.js.map +0 -1
  108. package/dist/lifecycle/plan-extraction.d.ts +0 -2
  109. package/dist/lifecycle/plan-extraction.d.ts.map +0 -1
  110. package/dist/lifecycle/plan-extraction.js +0 -44
  111. package/dist/lifecycle/plan-extraction.js.map +0 -1
  112. package/dist/reporting/headline-templates/audit.d.ts +0 -3
  113. package/dist/reporting/headline-templates/audit.d.ts.map +0 -1
  114. package/dist/reporting/headline-templates/audit.js +0 -37
  115. package/dist/reporting/headline-templates/audit.js.map +0 -1
  116. package/dist/reporting/headline-templates/debug.d.ts +0 -25
  117. package/dist/reporting/headline-templates/debug.d.ts.map +0 -1
  118. package/dist/reporting/headline-templates/debug.js +0 -42
  119. package/dist/reporting/headline-templates/debug.js.map +0 -1
  120. package/dist/reporting/headline-templates/retry.d.ts +0 -3
  121. package/dist/reporting/headline-templates/retry.d.ts.map +0 -1
  122. package/dist/reporting/headline-templates/retry.js +0 -9
  123. package/dist/reporting/headline-templates/retry.js.map +0 -1
  124. package/dist/reporting/headline-templates/review.d.ts +0 -3
  125. package/dist/reporting/headline-templates/review.d.ts.map +0 -1
  126. package/dist/reporting/headline-templates/review.js +0 -38
  127. package/dist/reporting/headline-templates/review.js.map +0 -1
  128. package/dist/reporting/report-parser-slots/audit-report.d.ts +0 -13
  129. package/dist/reporting/report-parser-slots/audit-report.d.ts.map +0 -1
  130. package/dist/reporting/report-parser-slots/audit-report.js +0 -9
  131. package/dist/reporting/report-parser-slots/audit-report.js.map +0 -1
  132. package/dist/reporting/report-parser-slots/retry-report.d.ts +0 -8
  133. package/dist/reporting/report-parser-slots/retry-report.d.ts.map +0 -1
  134. package/dist/reporting/report-parser-slots/retry-report.js +0 -9
  135. package/dist/reporting/report-parser-slots/retry-report.js.map +0 -1
  136. package/dist/reporting/report-parser-slots/review-report.d.ts +0 -14
  137. package/dist/reporting/report-parser-slots/review-report.d.ts.map +0 -1
  138. package/dist/reporting/report-parser-slots/review-report.js +0 -9
  139. package/dist/reporting/report-parser-slots/review-report.js.map +0 -1
  140. package/dist/tools/audit/plan-audit-verdict.d.ts +0 -15
  141. package/dist/tools/audit/plan-audit-verdict.d.ts.map +0 -1
  142. package/dist/tools/audit/plan-audit-verdict.js +0 -44
  143. package/dist/tools/audit/plan-audit-verdict.js.map +0 -1
  144. package/dist/tools/execute-plan/draft-id.d.ts +0 -12
  145. package/dist/tools/execute-plan/draft-id.d.ts.map +0 -1
  146. package/dist/tools/execute-plan/draft-id.js +0 -46
  147. package/dist/tools/execute-plan/draft-id.js.map +0 -1
  148. package/dist/tools/execute-plan/schema.d.ts +0 -65
  149. package/dist/tools/execute-plan/schema.d.ts.map +0 -1
  150. package/dist/tools/execute-plan/schema.js +0 -32
  151. package/dist/tools/execute-plan/schema.js.map +0 -1
  152. package/dist/tools/parallel-criteria-prompt.d.ts.map +0 -1
  153. package/dist/tools/parallel-criteria-prompt.js.map +0 -1
  154. package/dist/tools/shared/severity-ladder.d.ts +0 -2
  155. package/dist/tools/shared/severity-ladder.d.ts.map +0 -1
  156. package/dist/tools/shared/severity-ladder.js +0 -9
  157. package/dist/tools/shared/severity-ladder.js.map +0 -1
@@ -1,10 +1,8 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { reviewBriefSlot } from './brief-slot.js';
3
- import { reviewReportSchema } from '../../reporting/report-parser-slots/review-report.js';
4
- import { reviewHeadlineTemplate } from '../../reporting/headline-templates/review.js';
3
+ import { noStructuredReportSchema } from '../../reporting/report-parser-slots/no-structured-report.js';
4
+ import { makeFindingsHeadlineTemplate } from '../../reporting/findings-headline.js';
5
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
6
- import { SEVERITY_LADDER } from '../shared/severity-ladder.js';
7
- import { REVIEW_PURPOSE_ORIENTATION, EVIDENCE_RULE_REVIEW, SCOPE_RULE_REVIEW, ANNOTATOR_AWARENESS_REVIEW, CODE_REVIEW_FAILURE_MODES, THOROUGHNESS_REMINDER_REVIEW, } from './implementer-criteria.js';
8
6
  export function registerReview(registry) {
9
7
  registry.register({
10
8
  routeName: 'review',
@@ -48,84 +46,15 @@ function resolveReviewDoneCondition(focus, hasContextBlocks) {
48
46
  }
49
47
  return hasContextBlocks ? base + DELTA_REVIEW_SUFFIX : base;
50
48
  }
51
- function buildReviewPrompt(brief) {
52
- const { code, filePaths, focus, hasContextBlocks, filePath } = brief;
53
- const parts = ['Review this code:'];
54
- if (filePath) {
55
- parts.push(`Read and analyze this file:\n- ${filePath}`);
56
- }
57
- else {
58
- if (code)
59
- parts.push(`\`\`\`\n${code}\n\`\`\``);
60
- if (filePaths && filePaths.length > 0) {
61
- parts.push(`Read and analyze these files:\n${filePaths.map(p => `- ${p}`).join('\n')}`);
62
- }
63
- if (focus && focus.length > 0)
64
- parts.push(`Focus areas: ${focus.join(', ')}.`);
65
- }
66
- // Tool sweep #11: emit format spec unconditionally (pre-fix the
67
- // DELTA branch dropped it, breaking annotator parse on delta runs).
68
- if (hasContextBlocks) {
69
- parts.push('A prior review is in the context above. **Omit** addressed findings, **include** still-present ones (mark "unfixed from prior review"), **include** any new findings, and end with a **Fixed** summary.');
70
- }
71
- parts.push(FINDING_FORMAT_INSTRUCTIONS);
72
- return parts.join('\n\n');
73
- }
74
- const FINDING_FORMAT_INSTRUCTIONS = [
75
- // Orientation goes FIRST — the worker needs to know why this review
76
- // exists (pre-merge gate, your verdict is authoritative, missing a
77
- // regression here ships) before reading the format spec / taxonomy /
78
- // evidence rules. Without it, workers do line-by-line proofreading and
79
- // miss cross-file ripples and test gaps.
80
- REVIEW_PURPOSE_ORIENTATION,
81
- '',
82
- 'Produce a narrative code review. Use this EXACT per-finding format — both the structured reviewer and the deterministic fallback extract from this same format:',
83
- '',
84
- '## Finding 1: <one-line title>',
85
- '- Severity: critical | high | medium | low',
86
- '- Location: file:line',
87
- '- Issue: one-paragraph explanation',
88
- '- Suggestion: one-line fix recommendation',
89
- '',
90
- '## Finding 2: <one-line title>',
91
- '- Severity: ...',
92
- '- ...',
93
- '',
94
- 'Rules:',
95
- '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
96
- '- Severity / Location / Issue / Suggestion bullets are on their own lines with the labels exactly as shown.',
97
- '- If you found no issues, say "No findings." in plain prose and emit zero `## Finding N:` blocks.',
98
- '',
99
- SEVERITY_LADDER,
100
- '',
101
- // Code-review failure-mode taxonomy. Without this block, workers
102
- // calibrated on line-by-line proofreading miss the cross-file ripple,
103
- // test gap, and implicit-contract findings that actually block merges.
104
- CODE_REVIEW_FAILURE_MODES,
105
- '',
106
- // Counter-balances the SEVERITY_LADDER's anti-inflation hint and
107
- // includes the cross-file pass with worked example.
108
- THOROUGHNESS_REMINDER_REVIEW,
109
- '',
110
- EVIDENCE_RULE_REVIEW,
111
- '',
112
- SCOPE_RULE_REVIEW,
113
- '',
114
- ANNOTATOR_AWARENESS_REVIEW,
115
- ].join('\n');
116
49
  export const toolConfig = {
117
50
  name: 'review',
118
51
  category: 'read_only',
119
52
  agentType: 'complex',
120
53
  briefSlot: reviewBriefSlot,
121
54
  buildTaskSpec: (brief, ctx) => {
122
- const prompt = buildReviewPrompt(brief);
123
55
  // Propagate filePaths + mainModel onto the TaskSpec so the headline
124
56
  // composer can name the file in clean-review headlines and so the
125
- // wire telemetry carries main_model attribution. Audit does this
126
- // already; review missed it, producing "[ok] review completed"
127
- // (no path) even when filePaths was provided. (Tool sweep #2 — gap surfaced
128
- // by review batch c24353f6 on packages/core/src/reporting/severity.ts.)
57
+ // wire telemetry carries main_model attribution.
129
58
  const filePaths = brief.filePath
130
59
  ? [brief.filePath]
131
60
  : (brief.filePaths && brief.filePaths.length > 0 ? brief.filePaths : undefined);
@@ -137,11 +66,13 @@ export const toolConfig = {
137
66
  }
138
67
  if (brief.focus)
139
68
  targetParts.push(`Focus: ${Array.isArray(brief.focus) ? brief.focus.join(', ') : brief.focus}`);
69
+ // The read-route dispatcher builds the worker prefix from this pure target
70
+ // + FINDING_FORMAT_SHARED + review RouteSemantics; `prompt` mirrors it
71
+ // (required field / telemetry, not the read-route worker input).
72
+ const target = targetParts.join('\n\n');
140
73
  return {
141
- prompt,
142
- // Pure user code/files for the parallel-criteria dispatcher's cached
143
- // prefix; bypasses the legacy ## Finding format spec embedded in `prompt`.
144
- parallelTarget: targetParts.join('\n\n'),
74
+ prompt: target,
75
+ readTarget: target,
145
76
  agentType: 'complex',
146
77
  reviewPolicy: 'none',
147
78
  briefQualityPolicy: 'off',
@@ -156,7 +87,7 @@ export const toolConfig = {
156
87
  autoCommit: false,
157
88
  };
158
89
  },
159
- reportSchema: reviewReportSchema,
160
- headlineTemplate: reviewHeadlineTemplate,
90
+ reportSchema: noStructuredReportSchema,
91
+ headlineTemplate: makeFindingsHeadlineTemplate('review', 'blocking'),
161
92
  };
162
93
  //# sourceMappingURL=tool-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/review/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/review/tool-config.ts"],"names":[],"mappings":"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"}
@@ -35,20 +35,22 @@ export interface TaskSpec {
35
35
  planContext?: string;
36
36
  outputTargets?: string[];
37
37
  /**
38
- * For read-only routes that go through the parallel-criteria dispatcher,
39
- * this is the user's pure question / work / problem text (route-specific
40
- * shape). Used as the "target" content embedded in the cached prefix so
41
- * sub-workers see ONLY the user's request — not the legacy monolithic
42
- * format spec that lives in `prompt`. When absent, the dispatcher falls
43
- * back to `document` then `prompt`. Audit: the inlined document. Review:
44
- * the code snippet + filePaths. Verify: work + checklist. Debug: problem
45
- * statement. Investigate: question.
38
+ * For read-only routes that go through the read-route dispatcher, this is
39
+ * the user's pure question / work / problem text (route-specific shape),
40
+ * set by each route's buildTaskSpec. Used as the "target" content embedded
41
+ * in the cached prefix so sub-workers see ONLY the user's request — not a
42
+ * legacy monolithic format spec. The dispatcher uses this then `document`;
43
+ * there is NO `prompt` fallback (a non-research read route with an empty
44
+ * target throws `read_route_missing_target`). Audit: the inlined document /
45
+ * file targets. Review: the code snippet + filePaths. Debug: problem
46
+ * statement. Investigate: question. Research: the research question (the
47
+ * actual worker input is built from `research`).
46
48
  */
47
- parallelTarget?: string;
49
+ readTarget?: string;
48
50
  /**
49
51
  * v4.4.x: subtype field for read-only tools. Set by each tool's
50
52
  * buildTaskSpec from the input schema's `subtype` field. The lifecycle's
51
- * parallel-criteria dispatcher reads this to look up the per-tool
53
+ * read-route dispatcher reads this to look up the per-tool
52
54
  * SUBTYPES map and select the matching criteria / orientation /
53
55
  * semantics block. Defaults to 'default' when undefined.
54
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"task-spec.d.ts","sourceRoot":"","sources":["../../src/types/task-spec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,oBAAoB,GAAG,QAAQ,CAAC;AAEzH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAA;IAC7D,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAChG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,qBAAqB,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChE,CAAA;CACF"}
1
+ {"version":3,"file":"task-spec.d.ts","sourceRoot":"","sources":["../../src/types/task-spec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,oBAAoB,GAAG,QAAQ,CAAC;AAEzH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAA;IAC7D,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAChG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,qBAAqB,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChE,CAAA;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent-core",
3
- "version": "4.7.12",
3
+ "version": "4.7.13",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Core library for multi-model-agent: provider runners (Claude, Codex, OpenAI-compatible), routing logic, config schema, and tool/sandbox primitives.",
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-criteria-routes.d.ts","sourceRoot":"","sources":["../../src/lifecycle/parallel-criteria-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAExF,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1F;;kBAEkB;AAClB,eAAO,MAAM,qBAAqB,QAmBtB,CAAC;AAEb,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAMlE,CAAC;AAEF,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,WAAW,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,MAAM,CAAC;IACpD,WAAW,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,MAAM,CAAC;IACnD,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,iBAAiB,CAsBnB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAEzE;AAGD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-criteria-routes.js","sourceRoot":"","sources":["../../src/lifecycle/parallel-criteria-routes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAG7B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAsB,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAA2B,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAwB,MAAM,+BAA+B,CAAC;AAIxF;;kBAEkB;AAClB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,8EAA8E;IAC9E,EAAE;IACF,gCAAgC;IAChC,4CAA4C;IAC5C,+CAA+C;IAC/C,gLAAgL;IAChL,iFAAiF;IACjF,EAAE;IACF,6CAA6C;IAC7C,EAAE;IACF,0JAA0J;IAC1J,EAAE;IACF,oIAAoI;IACpI,EAAE;IACF,YAAY;IACZ,0CAA0C;IAC1C,kEAAkE;IAClE,sEAAsE;CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAOb,MAAM,CAAC,MAAM,gBAAgB,GAA0C;IACrE,KAAK,EAAQ,EAAE,UAAU,EAAE,cAA2D,EAAE,cAAc,EAAE,SAAS,EAAE;IACnH,MAAM,EAAO,EAAE,UAAU,EAAE,eAA2D,EAAE,cAAc,EAAE,SAAS,EAAE;IACnH,KAAK,EAAQ,EAAE,UAAU,EAAE,cAA2D,EAAE,cAAc,EAAE,SAAS,EAAE;IACnH,WAAW,EAAE,EAAE,UAAU,EAAE,oBAA2D,EAAE,cAAc,EAAE,SAAS,EAAE;IACnH,QAAQ,EAAK,EAAE,UAAU,EAAE,iBAA2D,EAAE,cAAc,EAAE,SAAS,EAAE;CACpH,CAAC;AAUF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAwB,EACxB,OAA2B;IAE3B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,YAAY,KAAK,qBAAqB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,MAAM,GAAuB;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,qBAAqB;QACpC,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;QACtF,WAAW,EAAE,CAAC,SAAyB,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;QACnG,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,IAAI,gBAAgB,CAAC;AACnC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function extractPlanSection(planFilePaths: string[], taskDescriptor: string, cwd: string | undefined): Promise<string | undefined>;
2
- //# sourceMappingURL=plan-extraction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-extraction.d.ts","sourceRoot":"","sources":["../../src/lifecycle/plan-extraction.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EAAE,EACvB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6C7B"}
@@ -1,44 +0,0 @@
1
- import fs from 'fs/promises';
2
- const PLAN_CONTEXT_MAX_CHARS = 10_000;
3
- export async function extractPlanSection(planFilePaths, taskDescriptor, cwd) {
4
- const basePath = cwd ?? process.cwd();
5
- for (const filePath of planFilePaths) {
6
- try {
7
- const resolved = filePath.startsWith('/') ? filePath : `${basePath}/${filePath}`;
8
- const content = await fs.readFile(resolved, 'utf-8');
9
- const lines = content.split('\n');
10
- let startIndex = -1;
11
- let headingLevel = 0;
12
- for (let i = 0; i < lines.length; i++) {
13
- const match = lines[i].match(/^(#{1,6})\s+(.*)/);
14
- if (match && match[2].trim() === taskDescriptor.trim()) {
15
- startIndex = i;
16
- headingLevel = match[1].length;
17
- break;
18
- }
19
- }
20
- if (startIndex === -1)
21
- continue;
22
- let endIndex = lines.length;
23
- for (let i = startIndex + 1; i < lines.length; i++) {
24
- const match = lines[i].match(/^(#{1,6})\s/);
25
- if (match && match[1].length <= headingLevel) {
26
- endIndex = i;
27
- break;
28
- }
29
- }
30
- let section = lines.slice(startIndex, endIndex).join('\n');
31
- if (section.length > PLAN_CONTEXT_MAX_CHARS) {
32
- section = section.slice(0, PLAN_CONTEXT_MAX_CHARS) + '\n[truncated at 10KB]';
33
- }
34
- return section;
35
- }
36
- catch {
37
- if (process.env.MULTI_MODEL_DEBUG === '1') {
38
- console.error(`[multi-model-agent] plan file not readable: ${filePath}`);
39
- }
40
- }
41
- }
42
- return undefined;
43
- }
44
- //# sourceMappingURL=plan-extraction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-extraction.js","sourceRoot":"","sources":["../../src/lifecycle/plan-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAuB,EACvB,cAAsB,EACtB,GAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAErD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACjD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;oBACvD,UAAU,GAAG,CAAC,CAAC;oBACf,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC/B,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,UAAU,KAAK,CAAC,CAAC;gBAAE,SAAS;YAEhC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;oBAC7C,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBAC5C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAAG,uBAAuB,CAAC;YAC/E,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { HeadlineTemplate } from '../headline-composer.js';
2
- export declare const auditHeadlineTemplate: HeadlineTemplate;
3
- //# sourceMappingURL=audit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/reporting/headline-templates/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,eAAO,MAAM,qBAAqB,EAAE,gBAuCnC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { isNotApplicable } from '../not-applicable.js';
2
- import { countHighOrCritical, parseNarrativeFindings } from '../severity.js';
3
- export const auditHeadlineTemplate = {
4
- compose({ report, status, runResult, task }) {
5
- const r = report;
6
- const reportInapplicable = !r || isNotApplicable(r);
7
- // Source priority for findings (v4.5.2+):
8
- // 1. Structured report's `findings` (rare — only when the worker
9
- // emitted proper JSON matching the audit reportSchema).
10
- // 2. parseNarrativeFindings(runResult.output) — recovers findings
11
- // directly from the implementer's `## Finding N:` output when
12
- // no structured report was emitted. This is the load-bearing
13
- // path for read-route audits (their workers emit narrative,
14
- // not structured JSON).
15
- const reportFindings = !reportInapplicable && Array.isArray(r?.findings) ? r.findings : [];
16
- let findings = reportFindings.length > 0
17
- ? reportFindings
18
- : [];
19
- if (findings.length === 0 && typeof runResult?.output === 'string') {
20
- const narrative = parseNarrativeFindings(runResult.output);
21
- if (narrative.length > 0)
22
- findings = narrative;
23
- }
24
- if (findings.length === 0 && reportInapplicable) {
25
- return `[${status}] audit completed`;
26
- }
27
- const high = countHighOrCritical(findings);
28
- // Document path fallback: when narrative-parse is the active source,
29
- // the structured report's documentPath is absent; pull from the task's
30
- // filePaths instead.
31
- const path = (!reportInapplicable && typeof r?.documentPath === 'string' ? r.documentPath : '')
32
- || task?.filePaths?.[0]
33
- || '';
34
- return `[${status}] audit ${path}: ${findings.length} findings (${high} high)`;
35
- },
36
- };
37
- //# sourceMappingURL=audit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/reporting/headline-templates/audit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;QACzC,MAAM,CAAC,GAAG,MAAiD,CAAC;QAC5D,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QAEpD,0CAA0C;QAC1C,mEAAmE;QACnE,6DAA6D;QAC7D,oEAAoE;QACpE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,6BAA6B;QAC7B,MAAM,cAAc,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,QAAQ,GACV,cAAc,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAE,cAAgD;YACnD,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,GAAG,SAAS,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAChD,OAAO,IAAI,MAAM,mBAAmB,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAE3C,qEAAqE;QACrE,uEAAuE;QACvE,qBAAqB;QACrB,MAAM,IAAI,GACR,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;eAC/E,IAA6C,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;eAC9D,EAAE,CAAC;QAER,OAAO,IAAI,MAAM,WAAW,IAAI,KAAK,QAAQ,CAAC,MAAM,cAAc,IAAI,QAAQ,CAAC;IACjF,CAAC;CACF,CAAC"}
@@ -1,25 +0,0 @@
1
- import type { HeadlineTemplate } from '../headline-composer.js';
2
- /**
3
- * Compose a terminal headline for debug.
4
- *
5
- * Tool sweep #4 rewrite: bring debug into the same shape as audit and
6
- * review/verify so operator-facing logs stay consistent across tools:
7
- *
8
- * [ok] debug <path>: 3 findings (0 high)
9
- * [error] debug: 1 findings (1 high)
10
- * [ok] debug completed
11
- *
12
- * Previously emitted "debug: 1/1 tasks complete" with no status prefix
13
- * and no findings count — operator could not tell ok from error and
14
- * had no signal about how many real findings landed.
15
- *
16
- * Findings source (v4.5.2+): parseNarrativeFindings(runResult.output)
17
- * recovers `## Finding N:` blocks directly from the implementer's
18
- * narrative.
19
- *
20
- * Note: debug's reportSchema.parse is intentionally a thrower (the tool
21
- * doesn't emit a structured report), so `report` is always notApplicable
22
- * here — there's no `report.findings` source to read.
23
- */
24
- export declare const debugHeadlineTemplate: HeadlineTemplate;
25
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/reporting/headline-templates/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAoBnC,CAAC"}
@@ -1,42 +0,0 @@
1
- import { countHighOrCritical, parseNarrativeFindings } from '../severity.js';
2
- /**
3
- * Compose a terminal headline for debug.
4
- *
5
- * Tool sweep #4 rewrite: bring debug into the same shape as audit and
6
- * review/verify so operator-facing logs stay consistent across tools:
7
- *
8
- * [ok] debug <path>: 3 findings (0 high)
9
- * [error] debug: 1 findings (1 high)
10
- * [ok] debug completed
11
- *
12
- * Previously emitted "debug: 1/1 tasks complete" with no status prefix
13
- * and no findings count — operator could not tell ok from error and
14
- * had no signal about how many real findings landed.
15
- *
16
- * Findings source (v4.5.2+): parseNarrativeFindings(runResult.output)
17
- * recovers `## Finding N:` blocks directly from the implementer's
18
- * narrative.
19
- *
20
- * Note: debug's reportSchema.parse is intentionally a thrower (the tool
21
- * doesn't emit a structured report), so `report` is always notApplicable
22
- * here — there's no `report.findings` source to read.
23
- */
24
- export const debugHeadlineTemplate = {
25
- compose({ status, runResult, task }) {
26
- let findings = [];
27
- if (typeof runResult?.output === 'string') {
28
- const narrative = parseNarrativeFindings(runResult.output);
29
- if (narrative.length > 0)
30
- findings = narrative;
31
- }
32
- const path = task?.filePaths?.[0] || '';
33
- if (findings.length === 0 && !path) {
34
- return `[${status}] debug completed`;
35
- }
36
- const high = countHighOrCritical(findings);
37
- return path
38
- ? `[${status}] debug ${path}: ${findings.length} findings (${high} high)`
39
- : `[${status}] debug: ${findings.length} findings (${high} high)`;
40
- },
41
- };
42
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/reporting/headline-templates/debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;QACjC,IAAI,QAAQ,GAAkC,EAAE,CAAC;QACjD,IAAI,OAAO,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,GAAG,SAAS,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GACP,IAA6C,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,MAAM,mBAAmB,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,MAAM,WAAW,IAAI,KAAK,QAAQ,CAAC,MAAM,cAAc,IAAI,QAAQ;YACzE,CAAC,CAAC,IAAI,MAAM,YAAY,QAAQ,CAAC,MAAM,cAAc,IAAI,QAAQ,CAAC;IACtE,CAAC;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { HeadlineTemplate } from '../headline-composer.js';
2
- export declare const retryHeadlineTemplate: HeadlineTemplate;
3
- //# sourceMappingURL=retry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/reporting/headline-templates/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,eAAO,MAAM,qBAAqB,EAAE,gBAOnC,CAAC"}
@@ -1,9 +0,0 @@
1
- export const retryHeadlineTemplate = {
2
- compose() {
3
- // The retry envelope's headline is overwritten by postProcessEnvelope to
4
- // reflect total/completed counts. This default keeps shape uniformity if
5
- // the post-process step is ever skipped.
6
- return 'retry';
7
- },
8
- };
9
- //# sourceMappingURL=retry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/reporting/headline-templates/retry.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,OAAO;QACL,yEAAyE;QACzE,yEAAyE;QACzE,yCAAyC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { HeadlineTemplate } from '../headline-composer.js';
2
- export declare const reviewHeadlineTemplate: HeadlineTemplate;
3
- //# sourceMappingURL=review.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/reporting/headline-templates/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,eAAO,MAAM,sBAAsB,EAAE,gBAuCpC,CAAC"}
@@ -1,38 +0,0 @@
1
- import { isNotApplicable } from '../not-applicable.js';
2
- import { countHighOrCritical, parseNarrativeFindings } from '../severity.js';
3
- export const reviewHeadlineTemplate = {
4
- compose({ report, status, taskBrief, runResult, task }) {
5
- const r = report;
6
- const reportInapplicable = !r || isNotApplicable(r);
7
- // Source priority (v4.5.2+):
8
- // 1. report.findings (structured — when the worker emitted proper JSON
9
- // matching the per-route report schema)
10
- // 2. parseNarrativeFindings(runResult.output) (recover from the
11
- // implementer's `## Finding N:` blocks when no structured report)
12
- const reportFindings = !reportInapplicable && Array.isArray(r?.findings) ? r.findings : [];
13
- let findings = reportFindings.length > 0
14
- ? reportFindings
15
- : [];
16
- if (findings.length === 0 && typeof runResult?.output === 'string') {
17
- const narrative = parseNarrativeFindings(runResult.output);
18
- if (narrative.length > 0)
19
- findings = narrative;
20
- }
21
- const blocking = countHighOrCritical(findings);
22
- const path = (!reportInapplicable && typeof r?.filePath === 'string' ? r.filePath : '')
23
- || task?.filePaths?.[0]
24
- || '';
25
- // Mirror audit's gap-A fix: only collapse to "review completed"
26
- // when we have no path AND no findings. With a path, always emit
27
- // the structured form so a clean review still names the file:
28
- // [ok] review packages/foo.ts: 0 findings (0 blocking)
29
- // Previously this branch fell back to `${taskBrief}` which the
30
- // brief compiler reduces to the route name, producing the
31
- // operator-useless headline "[ok] review: review".
32
- if (findings.length === 0 && !path) {
33
- return `[${status}] review completed`;
34
- }
35
- return `[${status}] review ${path}: ${findings.length} findings (${blocking} blocking)`;
36
- },
37
- };
38
- //# sourceMappingURL=review.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/reporting/headline-templates/review.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QACpD,MAAM,CAAC,GAAG,MAAkD,CAAC;QAC7D,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,yEAAyE;QACzE,6CAA6C;QAC7C,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,cAAc,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,QAAQ,GACV,cAAc,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAE,cAAgD;YACnD,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,GAAG,SAAS,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,GACR,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;eACvE,IAA6C,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;eAC9D,EAAE,CAAC;QAER,gEAAgE;QAChE,iEAAiE;QACjE,8DAA8D;QAC9D,yDAAyD;QACzD,+DAA+D;QAC/D,0DAA0D;QAC1D,mDAAmD;QACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,MAAM,oBAAoB,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,MAAM,YAAY,IAAI,KAAK,QAAQ,CAAC,MAAM,cAAc,QAAQ,YAAY,CAAC;IAC1F,CAAC;CACF,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { ReportSchema } from '../structured-report-parser.js';
2
- export interface AuditReport {
3
- documentPath: string;
4
- findings: Array<{
5
- severity: 'low' | 'medium' | 'high';
6
- category: string;
7
- message: string;
8
- evidenceQuote: string;
9
- annotatorConfidence: number;
10
- }>;
11
- }
12
- export declare const auditReportSchema: ReportSchema<AuditReport>;
13
- //# sourceMappingURL=audit-report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/audit-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAMvD,CAAC"}
@@ -1,9 +0,0 @@
1
- export const auditReportSchema = {
2
- parse(text) {
3
- const m = text.match(/```json\n([\s\S]+?)\n```/);
4
- if (!m)
5
- throw new Error('audit report missing JSON block');
6
- return JSON.parse(m[1]);
7
- },
8
- };
9
- //# sourceMappingURL=audit-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/audit-report.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,KAAK,CAAC,IAAY;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ReportSchema } from '../structured-report-parser.js';
2
- export interface RetryReport {
3
- retriedTaskIndex: number;
4
- originalTaskIndex: number;
5
- inheritedToolCategory: string;
6
- }
7
- export declare const retryReportSchema: ReportSchema<RetryReport>;
8
- //# sourceMappingURL=retry-report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/retry-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAMvD,CAAC"}
@@ -1,9 +0,0 @@
1
- export const retryReportSchema = {
2
- parse(text) {
3
- const m = text.match(/```json\n([\s\S]+?)\n```/);
4
- if (!m)
5
- throw new Error('retry report missing JSON block');
6
- return JSON.parse(m[1]);
7
- },
8
- };
9
- //# sourceMappingURL=retry-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/retry-report.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,KAAK,CAAC,IAAY;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { ReportSchema } from '../structured-report-parser.js';
2
- export interface ReviewReport {
3
- filePath: string;
4
- findings: Array<{
5
- severity: 'low' | 'medium' | 'high';
6
- category: string;
7
- message: string;
8
- lineNumber?: number;
9
- evidenceQuote: string;
10
- annotatorConfidence: number;
11
- }>;
12
- }
13
- export declare const reviewReportSchema: ReportSchema<ReviewReport>;
14
- //# sourceMappingURL=review-report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/review-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,YAAY,CAMzD,CAAC"}
@@ -1,9 +0,0 @@
1
- export const reviewReportSchema = {
2
- parse(text) {
3
- const m = text.match(/```json\n([\s\S]+?)\n```/);
4
- if (!m)
5
- throw new Error('review report missing JSON block');
6
- return JSON.parse(m[1]);
7
- },
8
- };
9
- //# sourceMappingURL=review-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/review-report.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,KAAK,CAAC,IAAY;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC"}
@@ -1,15 +0,0 @@
1
- export type PlanTaskVerdict = 'EXECUTABLE' | 'PARTIAL' | 'BLOCKED';
2
- export interface PlanAuditFinding {
3
- taskId: string;
4
- severity: 'critical' | 'high' | 'medium' | 'low';
5
- }
6
- export declare function derivePlanTaskVerdicts(findings: ReadonlyArray<PlanAuditFinding>): Map<string, PlanTaskVerdict>;
7
- export interface PlanAuditSummary {
8
- text: string;
9
- executable: string[];
10
- partial: string[];
11
- blocked: string[];
12
- nextBlocker: string | null;
13
- }
14
- export declare function composePlanAuditSummary(allTaskIds: ReadonlyArray<string>, verdicts: ReadonlyMap<string, PlanTaskVerdict>): PlanAuditSummary;
15
- //# sourceMappingURL=plan-audit-verdict.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-audit-verdict.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/plan-audit-verdict.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClD;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAa9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,gBAAgB,CAsBlB"}