@zhixuan92/multi-model-agent-core 4.7.4 → 4.7.5

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 (186) hide show
  1. package/README.md +6 -6
  2. package/dist/config/schema.d.ts +1 -1
  3. package/dist/events/to-wire-record.d.ts.map +1 -1
  4. package/dist/events/to-wire-record.js +7 -0
  5. package/dist/events/to-wire-record.js.map +1 -1
  6. package/dist/events/wire-schema.d.ts +6 -6
  7. package/dist/index.d.ts +2 -18
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +0 -13
  10. package/dist/index.js.map +1 -1
  11. package/dist/lifecycle/handlers/read-route-implementer.d.ts +5 -0
  12. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -1
  13. package/dist/lifecycle/handlers/read-route-implementer.js +1 -1
  14. package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -1
  15. package/dist/lifecycle/handlers/review-stage.js +11 -1
  16. package/dist/lifecycle/handlers/review-stage.js.map +1 -1
  17. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  18. package/dist/lifecycle/perform-implementation.js +37 -0
  19. package/dist/lifecycle/perform-implementation.js.map +1 -1
  20. package/dist/lifecycle/tool-config-types.d.ts +7 -1
  21. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  22. package/dist/providers/claude-session.d.ts.map +1 -1
  23. package/dist/providers/claude-session.js +36 -2
  24. package/dist/providers/claude-session.js.map +1 -1
  25. package/dist/tools/audit/brief-slot.d.ts +15 -0
  26. package/dist/tools/audit/brief-slot.d.ts.map +1 -0
  27. package/dist/tools/audit/brief-slot.js +69 -0
  28. package/dist/tools/audit/brief-slot.js.map +1 -0
  29. package/dist/tools/audit/tool-config.d.ts +2 -14
  30. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  31. package/dist/tools/audit/tool-config.js +1 -68
  32. package/dist/tools/audit/tool-config.js.map +1 -1
  33. package/dist/{intake/brief-compiler-slots/debug.d.ts → tools/debug/brief-slot.d.ts} +1 -1
  34. package/dist/tools/debug/brief-slot.d.ts.map +1 -0
  35. package/dist/{intake/brief-compiler-slots/debug.js → tools/debug/brief-slot.js} +1 -1
  36. package/dist/tools/debug/brief-slot.js.map +1 -0
  37. package/dist/tools/debug/tool-config.d.ts +1 -1
  38. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  39. package/dist/tools/debug/tool-config.js +1 -1
  40. package/dist/tools/debug/tool-config.js.map +1 -1
  41. package/dist/tools/delegate/brief-slot.d.ts +13 -0
  42. package/dist/tools/delegate/brief-slot.d.ts.map +1 -0
  43. package/dist/{intake/brief-compiler-slots/delegate.js → tools/delegate/brief-slot.js} +12 -3
  44. package/dist/tools/delegate/brief-slot.js.map +1 -0
  45. package/dist/tools/delegate/schema.d.ts +1 -1
  46. package/dist/tools/delegate/tool-config.d.ts +1 -10
  47. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  48. package/dist/tools/delegate/tool-config.js +2 -10
  49. package/dist/tools/delegate/tool-config.js.map +1 -1
  50. package/dist/tools/execute-plan/brief-slot.d.ts +21 -0
  51. package/dist/tools/execute-plan/brief-slot.d.ts.map +1 -0
  52. package/dist/{intake/brief-compiler-slots/execute-plan.js → tools/execute-plan/brief-slot.js} +3 -67
  53. package/dist/tools/execute-plan/brief-slot.js.map +1 -0
  54. package/dist/tools/execute-plan/draft-id.d.ts.map +1 -0
  55. package/dist/tools/execute-plan/draft-id.js.map +1 -0
  56. package/dist/tools/execute-plan/plan-extractor.d.ts.map +1 -0
  57. package/dist/tools/execute-plan/plan-extractor.js.map +1 -0
  58. package/dist/tools/execute-plan/schema.d.ts +1 -1
  59. package/dist/tools/execute-plan/tool-config.d.ts +3 -3
  60. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  61. package/dist/tools/execute-plan/tool-config.js +2 -2
  62. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  63. package/dist/tools/investigate/brief-slot.d.ts +31 -0
  64. package/dist/tools/investigate/brief-slot.d.ts.map +1 -0
  65. package/dist/tools/investigate/brief-slot.js +69 -0
  66. package/dist/tools/investigate/brief-slot.js.map +1 -0
  67. package/dist/tools/investigate/tool-config.d.ts +2 -29
  68. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  69. package/dist/tools/investigate/tool-config.js +2 -62
  70. package/dist/tools/investigate/tool-config.js.map +1 -1
  71. package/dist/tools/research/brief-slot.d.ts +19 -0
  72. package/dist/tools/research/brief-slot.d.ts.map +1 -0
  73. package/dist/tools/research/brief-slot.js +37 -0
  74. package/dist/tools/research/brief-slot.js.map +1 -0
  75. package/dist/tools/research/tool-config.d.ts +2 -14
  76. package/dist/tools/research/tool-config.d.ts.map +1 -1
  77. package/dist/tools/research/tool-config.js +2 -14
  78. package/dist/tools/research/tool-config.js.map +1 -1
  79. package/dist/tools/retry/brief-slot.d.ts +7 -0
  80. package/dist/tools/retry/brief-slot.d.ts.map +1 -0
  81. package/dist/tools/retry/brief-slot.js +2 -0
  82. package/dist/tools/retry/brief-slot.js.map +1 -0
  83. package/dist/tools/retry/tool-config.d.ts +1 -5
  84. package/dist/tools/retry/tool-config.d.ts.map +1 -1
  85. package/dist/tools/retry/tool-config.js +2 -1
  86. package/dist/tools/retry/tool-config.js.map +1 -1
  87. package/dist/{intake/brief-compiler-slots/review.d.ts → tools/review/brief-slot.d.ts} +1 -1
  88. package/dist/tools/review/brief-slot.d.ts.map +1 -0
  89. package/dist/{intake/brief-compiler-slots/review.js → tools/review/brief-slot.js} +1 -1
  90. package/dist/tools/review/brief-slot.js.map +1 -0
  91. package/dist/tools/review/tool-config.d.ts +1 -1
  92. package/dist/tools/review/tool-config.d.ts.map +1 -1
  93. package/dist/tools/review/tool-config.js +1 -1
  94. package/dist/tools/review/tool-config.js.map +1 -1
  95. package/dist/types/brief-quality-policy.d.ts +3 -0
  96. package/dist/types/brief-quality-policy.d.ts.map +1 -0
  97. package/dist/types/brief-quality-policy.js +2 -0
  98. package/dist/types/brief-quality-policy.js.map +1 -0
  99. package/dist/{intake/types.d.ts → types/draft-task.d.ts} +2 -40
  100. package/dist/types/draft-task.d.ts.map +1 -0
  101. package/dist/types/draft-task.js +2 -0
  102. package/dist/types/draft-task.js.map +1 -0
  103. package/dist/types/review-policy.d.ts +2 -0
  104. package/dist/types/review-policy.d.ts.map +1 -0
  105. package/dist/types/review-policy.js +2 -0
  106. package/dist/types/review-policy.js.map +1 -0
  107. package/dist/types/task-spec.d.ts +1 -1
  108. package/dist/types/task-spec.d.ts.map +1 -1
  109. package/package.json +1 -49
  110. package/dist/intake/brief-compiler-slots/debug.d.ts.map +0 -1
  111. package/dist/intake/brief-compiler-slots/debug.js.map +0 -1
  112. package/dist/intake/brief-compiler-slots/delegate.d.ts +0 -23
  113. package/dist/intake/brief-compiler-slots/delegate.d.ts.map +0 -1
  114. package/dist/intake/brief-compiler-slots/delegate.js.map +0 -1
  115. package/dist/intake/brief-compiler-slots/execute-plan.d.ts +0 -49
  116. package/dist/intake/brief-compiler-slots/execute-plan.d.ts.map +0 -1
  117. package/dist/intake/brief-compiler-slots/execute-plan.js.map +0 -1
  118. package/dist/intake/brief-compiler-slots/register-context-block.d.ts +0 -17
  119. package/dist/intake/brief-compiler-slots/register-context-block.d.ts.map +0 -1
  120. package/dist/intake/brief-compiler-slots/register-context-block.js +0 -17
  121. package/dist/intake/brief-compiler-slots/register-context-block.js.map +0 -1
  122. package/dist/intake/brief-compiler-slots/research.d.ts +0 -18
  123. package/dist/intake/brief-compiler-slots/research.d.ts.map +0 -1
  124. package/dist/intake/brief-compiler-slots/research.js +0 -43
  125. package/dist/intake/brief-compiler-slots/research.js.map +0 -1
  126. package/dist/intake/brief-compiler-slots/retry.d.ts +0 -20
  127. package/dist/intake/brief-compiler-slots/retry.d.ts.map +0 -1
  128. package/dist/intake/brief-compiler-slots/retry.js +0 -37
  129. package/dist/intake/brief-compiler-slots/retry.js.map +0 -1
  130. package/dist/intake/brief-compiler-slots/review.d.ts.map +0 -1
  131. package/dist/intake/brief-compiler-slots/review.js.map +0 -1
  132. package/dist/intake/brief-compiler.d.ts +0 -9
  133. package/dist/intake/brief-compiler.d.ts.map +0 -1
  134. package/dist/intake/brief-compiler.js +0 -8
  135. package/dist/intake/brief-compiler.js.map +0 -1
  136. package/dist/intake/classify.d.ts +0 -3
  137. package/dist/intake/classify.d.ts.map +0 -1
  138. package/dist/intake/classify.js +0 -111
  139. package/dist/intake/classify.js.map +0 -1
  140. package/dist/intake/context-overflow-estimator.d.ts +0 -33
  141. package/dist/intake/context-overflow-estimator.d.ts.map +0 -1
  142. package/dist/intake/context-overflow-estimator.js +0 -36
  143. package/dist/intake/context-overflow-estimator.js.map +0 -1
  144. package/dist/intake/draft-id.d.ts.map +0 -1
  145. package/dist/intake/draft-id.js.map +0 -1
  146. package/dist/intake/field-inferer.d.ts +0 -10
  147. package/dist/intake/field-inferer.d.ts.map +0 -1
  148. package/dist/intake/field-inferer.js +0 -57
  149. package/dist/intake/field-inferer.js.map +0 -1
  150. package/dist/intake/host-allowlist-builder.d.ts +0 -25
  151. package/dist/intake/host-allowlist-builder.d.ts.map +0 -1
  152. package/dist/intake/host-allowlist-builder.js +0 -102
  153. package/dist/intake/host-allowlist-builder.js.map +0 -1
  154. package/dist/intake/index.d.ts +0 -5
  155. package/dist/intake/index.d.ts.map +0 -1
  156. package/dist/intake/index.js +0 -6
  157. package/dist/intake/index.js.map +0 -1
  158. package/dist/intake/pipeline.d.ts +0 -5
  159. package/dist/intake/pipeline.d.ts.map +0 -1
  160. package/dist/intake/pipeline.js +0 -110
  161. package/dist/intake/pipeline.js.map +0 -1
  162. package/dist/intake/plan-extractor.d.ts.map +0 -1
  163. package/dist/intake/plan-extractor.js.map +0 -1
  164. package/dist/intake/resolve.d.ts +0 -16
  165. package/dist/intake/resolve.d.ts.map +0 -1
  166. package/dist/intake/resolve.js +0 -37
  167. package/dist/intake/resolve.js.map +0 -1
  168. package/dist/intake/source-schema.d.ts +0 -4
  169. package/dist/intake/source-schema.d.ts.map +0 -1
  170. package/dist/intake/source-schema.js +0 -45
  171. package/dist/intake/source-schema.js.map +0 -1
  172. package/dist/intake/types.d.ts.map +0 -1
  173. package/dist/intake/types.js +0 -2
  174. package/dist/intake/types.js.map +0 -1
  175. package/dist/intake/verify-command-validator.d.ts +0 -6
  176. package/dist/intake/verify-command-validator.d.ts.map +0 -1
  177. package/dist/intake/verify-command-validator.js +0 -47
  178. package/dist/intake/verify-command-validator.js.map +0 -1
  179. package/dist/intake/verify-referenced-blocks.d.ts +0 -5
  180. package/dist/intake/verify-referenced-blocks.d.ts.map +0 -1
  181. package/dist/intake/verify-referenced-blocks.js +0 -9
  182. package/dist/intake/verify-referenced-blocks.js.map +0 -1
  183. /package/dist/{intake → tools/execute-plan}/draft-id.d.ts +0 -0
  184. /package/dist/{intake → tools/execute-plan}/draft-id.js +0 -0
  185. /package/dist/{intake → tools/execute-plan}/plan-extractor.d.ts +0 -0
  186. /package/dist/{intake → tools/execute-plan}/plan-extractor.js +0 -0
@@ -1,37 +0,0 @@
1
- export function makeRetrySlot(registry) {
2
- return (input) => {
3
- const original = registry.get(input.batchId);
4
- if (!original)
5
- throw new Error(`unknown batchId for retry: ${input.batchId}`);
6
- const { toolCategory, tasks, terminalBlockIds } = original;
7
- if (!toolCategory || toolCategory === 'assist') {
8
- throw new Error(`retry: original batch '${input.batchId}' has missing or invalid toolCategory ` +
9
- `'${toolCategory}' — refusing to retry with 'assist' (assist is route-level only)`);
10
- }
11
- if (!tasks) {
12
- throw new Error(`retry: original batch '${input.batchId}' has no stored tasks in registry`);
13
- }
14
- return input.retryableFor.map((origIdx, i) => {
15
- const origTask = tasks[origIdx];
16
- if (!origTask) {
17
- throw new Error(`retry: task index ${origIdx} out of range for batch '${input.batchId}' ` +
18
- `(tasks length: ${tasks.length})`);
19
- }
20
- const priorBlock = terminalBlockIds?.get(origIdx);
21
- return {
22
- taskIndex: i,
23
- brief: origTask.brief,
24
- cwd: input.cwd ?? origTask.cwd,
25
- agentType: origTask.agentType,
26
- reviewPolicy: origTask.reviewPolicy,
27
- contextBlockIds: [
28
- ...(origTask.contextBlockIds ?? []),
29
- ...(priorBlock ? [priorBlock] : []),
30
- ],
31
- originalTaskIndex: origIdx,
32
- inheritedToolCategory: toolCategory,
33
- };
34
- });
35
- };
36
- }
37
- //# sourceMappingURL=retry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/intake/brief-compiler-slots/retry.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,aAAa,CAAC,QAAuB;IACnD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;QAC3D,IAAI,CAAC,YAAY,IAAK,YAAuB,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,CAAC,OAAO,wCAAwC;gBAC/E,IAAI,YAAY,kEAAkE,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,qBAAqB,OAAO,4BAA4B,KAAK,CAAC,OAAO,IAAI;oBACzE,kBAAkB,KAAK,CAAC,MAAM,GAAG,CAClC,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO;gBACL,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;gBAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,eAAe,EAAE;oBACf,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;oBACnC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpC;gBACD,iBAAiB,EAAE,OAAO;gBAC1B,qBAAqB,EAAE,YAAY;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/intake/brief-compiler-slots/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,EAAE,CAoB3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/intake/brief-compiler-slots/review.ts"],"names":[],"mappings":"AAWA,SAAS,UAAU,CAAC,KAAyB;IAC3C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAClG,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5E,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,gBAAgB;gBAChB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;aAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3B,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,gBAAgB;QAChB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;KAC7C,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,9 +0,0 @@
1
- export interface BriefSlotFiller<TInput, TBrief> {
2
- (input: TInput): TBrief;
3
- }
4
- export declare class BriefCompiler<TInput, TBrief> {
5
- private slot;
6
- constructor(slot: BriefSlotFiller<TInput, TBrief>);
7
- compile(input: TInput): TBrief;
8
- }
9
- //# sourceMappingURL=brief-compiler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brief-compiler.d.ts","sourceRoot":"","sources":["../../src/intake/brief-compiler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,MAAM,EAAE,MAAM;IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE;AAE5E,qBAAa,aAAa,CAAC,MAAM,EAAE,MAAM;IAC3B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;IACzD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAC/B"}
@@ -1,8 +0,0 @@
1
- export class BriefCompiler {
2
- slot;
3
- constructor(slot) {
4
- this.slot = slot;
5
- }
6
- compile(input) { return this.slot(input); }
7
- }
8
- //# sourceMappingURL=brief-compiler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brief-compiler.js","sourceRoot":"","sources":["../../src/intake/brief-compiler.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,IAAqC;QAArC,SAAI,GAAJ,IAAI,CAAiC;IAAG,CAAC;IAC7D,OAAO,CAAC,KAAa,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC5D"}
@@ -1,3 +0,0 @@
1
- import type { DraftTask, ClassificationResult } from './types.js';
2
- export declare function classifyDraft(draft: DraftTask): ClassificationResult;
3
- //# sourceMappingURL=classify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA2BlE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB,CAsGpE"}
@@ -1,111 +0,0 @@
1
- const PRESET_ROUTES = new Set(['review_code', 'debug_task', 'verify_work', 'audit_document']);
2
- const MIN_PROMPT_WORDS = 4;
3
- const VAGUE_PATTERNS = [
4
- /^please$/i,
5
- /^help$/i,
6
- /^fix it$/i,
7
- /^do it$/i,
8
- /^handle this$/i,
9
- /^(can|could) you/i,
10
- /^(can|could) I/i,
11
- ];
12
- function getUserContentForRoute(draft) {
13
- switch (draft.source.route) {
14
- case 'review_code':
15
- return draft.source.code || draft.source.inlineContent;
16
- case 'audit_document':
17
- return draft.source.document;
18
- case 'verify_work':
19
- return draft.source.work;
20
- default:
21
- return draft.prompt;
22
- }
23
- }
24
- export function classifyDraft(draft) {
25
- const reasons = [];
26
- const promptWords = draft.prompt.trim().split(/\s+/).length;
27
- if (!draft.prompt.trim()) {
28
- if (draft.source.route === 'delegate_tasks') {
29
- return {
30
- draft,
31
- classification: 'unrecoverable',
32
- reasons: ['prompt too vague to form any interpretation — requires a fresh request'],
33
- };
34
- }
35
- }
36
- if (promptWords < 2) {
37
- return {
38
- draft,
39
- classification: 'unrecoverable',
40
- reasons: ['prompt too vague to form any interpretation — requires a fresh request'],
41
- };
42
- }
43
- if (draft.questions?.length) {
44
- reasons.push('draft has open questions from compilation');
45
- return { draft, classification: 'needs_confirmation', reasons };
46
- }
47
- const isConfirmed = draft.confirmed === true;
48
- if (PRESET_ROUTES.has(draft.source.route)) {
49
- const presetReasons = [];
50
- const userContent = getUserContentForRoute(draft);
51
- if (userContent && userContent.trim().split(/\s+/).length < 2) {
52
- presetReasons.push('user-provided content is too vague to act on');
53
- }
54
- if (draft.filePaths?.some(p => p === '/' || p === '.' || p === '*')) {
55
- presetReasons.push('file scope is too broad to be actionable');
56
- }
57
- if (draft.source.route === 'audit_document' && !draft.filePaths?.length) {
58
- if (!('document' in draft.source.originalInput)) {
59
- presetReasons.push('audit has no target — provide filePaths or inline document');
60
- }
61
- }
62
- if (draft.source.route === 'verify_work') {
63
- const checklist = draft.source.checklist ?? [];
64
- const VAGUE_CHECKLIST = /^(check|verify|test|ensure)\s+(everything|all|it|this|that)$/i;
65
- if (checklist.some(item => VAGUE_CHECKLIST.test(item.trim()))) {
66
- presetReasons.push('checklist contains overly generic items that are not actionable');
67
- }
68
- }
69
- if (presetReasons.length > 0) {
70
- return { draft, classification: 'needs_confirmation', reasons: presetReasons };
71
- }
72
- return { draft, classification: 'ready', reasons: [] };
73
- }
74
- if (!isConfirmed) {
75
- for (const pattern of VAGUE_PATTERNS) {
76
- if (pattern.test(draft.prompt.trim())) {
77
- reasons.push('prompt is too vague to form one concrete instruction');
78
- break;
79
- }
80
- }
81
- // Behavior-change detection requires a dangerous *combination* (verb +
82
- // dangerous object/target), not a bare verb. The earlier broad pattern
83
- // (`delete|remove|drop|migrate|deploy|push|publish|send` alone) flagged
84
- // ordinary technical English ("send a request", "publish docs") with no
85
- // real safety win — kept the combination form below to focus on actual
86
- // destructive intent.
87
- const dangerousCombos = [
88
- /\brm\s+-rf?\b/i,
89
- /\bdrop\s+(?:the\s+)?(?:\w+\s+)?(?:table|database|schema|index)\b/i,
90
- /\b(?:delete|truncate)\s+(?:the\s+)?(?:table|database|schema|all|every|everything|users|accounts|files?\b|directory|directories|repo)\b/i,
91
- /\b(?:deploy|publish|release)\s+(?:to\s+)?(?:production|prod|staging|live|main|master)\b/i,
92
- /\b(?:force[-\s]push|push\s+--force)\b/i,
93
- /\bpush\s+(?:to\s+)?(?:main|master|origin\/(?:main|master))\b/i,
94
- /\bmigrate\s+(?:the\s+)?(?:production|prod|live|database|schema)\b/i,
95
- ];
96
- const matchedDangerous = dangerousCombos.some(pat => pat.test(draft.prompt));
97
- if (matchedDangerous && !draft.filePaths?.length) {
98
- reasons.push('behavior-changing task without explicit scope');
99
- }
100
- const securitySensitive = /\b(auth|credential|secret|token|permission|password|key)\b/i;
101
- if (securitySensitive.test(draft.prompt) && !draft.done) {
102
- reasons.push('security-sensitive task without explicit done condition');
103
- }
104
- }
105
- const uniqueReasons = [...new Set(reasons)];
106
- if (uniqueReasons.length > 0) {
107
- return { draft, classification: 'needs_confirmation', reasons: uniqueReasons };
108
- }
109
- return { draft, classification: 'ready', reasons: [] };
110
- }
111
- //# sourceMappingURL=classify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export interface EstimateInputs {
2
- filePaths: string[];
3
- contextBlockLengthsChars: number[];
4
- baseInstructionsTokens: number;
5
- reservedCompletionTokens: number;
6
- }
7
- export declare function estimateContextSize(inputs: EstimateInputs): number;
8
- export interface OverflowCheckInputs {
9
- estimatedTokens: number;
10
- modelCap: number;
11
- tier: 'standard' | 'complex';
12
- model: string;
13
- contributors: Array<{
14
- kind: 'filePath' | 'contextBlock';
15
- path?: string;
16
- id?: string;
17
- estimatedTokens: number;
18
- }>;
19
- }
20
- export interface OverflowEnvelope {
21
- error: 'context_overflow_predicted';
22
- message: string;
23
- details: {
24
- estimatedTokens: number;
25
- modelCap: number;
26
- tier: 'standard' | 'complex';
27
- model: string;
28
- biggestContributors: OverflowCheckInputs['contributors'];
29
- recoveryHints: string[];
30
- };
31
- }
32
- export declare function checkOverflow(inputs: OverflowCheckInputs): OverflowEnvelope | null;
33
- //# sourceMappingURL=context-overflow-estimator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-overflow-estimator.d.ts","sourceRoot":"","sources":["../../src/intake/context-overflow-estimator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAWlE;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjH;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,4BAA4B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,IAAI,CAmBlF"}
@@ -1,36 +0,0 @@
1
- import * as fs from 'node:fs';
2
- export function estimateContextSize(inputs) {
3
- let total = inputs.baseInstructionsTokens + inputs.reservedCompletionTokens;
4
- for (const p of inputs.filePaths) {
5
- try {
6
- total += Math.ceil(fs.statSync(p).size / 3.5);
7
- }
8
- catch { /* missing files contribute 0; A4a's middleware should have already 400'd if cwd was bad */ }
9
- }
10
- for (const len of inputs.contextBlockLengthsChars) {
11
- total += Math.ceil(len / 3.5);
12
- }
13
- return total;
14
- }
15
- export function checkOverflow(inputs) {
16
- if (inputs.estimatedTokens <= inputs.modelCap)
17
- return null;
18
- const sorted = [...inputs.contributors].sort((a, b) => b.estimatedTokens - a.estimatedTokens);
19
- return {
20
- error: 'context_overflow_predicted',
21
- message: `Estimated ${inputs.estimatedTokens.toLocaleString()} tokens for this dispatch; tier='${inputs.tier}' (${inputs.model}) cap is ${inputs.modelCap.toLocaleString()} tokens.`,
22
- details: {
23
- estimatedTokens: inputs.estimatedTokens,
24
- modelCap: inputs.modelCap,
25
- tier: inputs.tier,
26
- model: inputs.model,
27
- biggestContributors: sorted,
28
- recoveryHints: [
29
- 'Split filePaths into smaller batches (e.g., dispatch separately for the largest file).',
30
- 'Trim the largest file (or the largest context block) — these are the inputs the estimator weighs by raw size. Reducing a single dominant input is usually the cheapest fix.',
31
- "Retry with tier='complex' (mma-delegate accepts agentType='complex'; specialized routes are tier-locked) which has a higher context cap.",
32
- ],
33
- },
34
- };
35
- }
36
- //# sourceMappingURL=context-overflow-estimator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-overflow-estimator.js","sourceRoot":"","sources":["../../src/intake/context-overflow-estimator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAS9B,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,IAAI,KAAK,GAAG,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAC5E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAC,2FAA2F,CAAC,CAAC;IACzG,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAClD,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAuBD,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;IAC9F,OAAO;QACL,KAAK,EAAE,4BAA4B;QACnC,OAAO,EAAE,aAAa,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,oCAAoC,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU;QACpL,OAAO,EAAE;YACP,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,mBAAmB,EAAE,MAAM;YAC3B,aAAa,EAAE;gBACb,wFAAwF;gBACxF,6KAA6K;gBAC7K,0IAA0I;aAC3I;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"draft-id.d.ts","sourceRoot":"","sources":["../../src/intake/draft-id.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAOtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,MAAM,CAE3F;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAmBhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"draft-id.js","sourceRoot":"","sources":["../../src/intake/draft-id.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,GAAG,MAAM;IACjF,OAAO,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { AgentType } from '../types.js';
2
- import type { DraftTask, SourceRoute } from './types.js';
3
- export interface BriefDefaults {
4
- agentType?: AgentType;
5
- reviewPolicy?: 'full' | 'quality_only' | 'diff_only' | 'none';
6
- }
7
- export declare const ROUTE_DEFAULTS: Record<SourceRoute, BriefDefaults>;
8
- export declare function inferDefaults(route: SourceRoute): BriefDefaults;
9
- export declare function inferMissingFields(draft: DraftTask): DraftTask;
10
- //# sourceMappingURL=field-inferer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-inferer.d.ts","sourceRoot":"","sources":["../../src/intake/field-inferer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;CAC/D;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,CAQ7D,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAI/D;AAWD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAwC9D"}
@@ -1,57 +0,0 @@
1
- export const ROUTE_DEFAULTS = {
2
- delegate_tasks: { agentType: 'standard', reviewPolicy: 'full' },
3
- execute_plan: { agentType: 'standard', reviewPolicy: 'full' },
4
- audit_document: { agentType: 'complex', reviewPolicy: 'none' },
5
- review_code: { agentType: 'complex', reviewPolicy: 'none' },
6
- verify_work: { agentType: 'complex', reviewPolicy: 'none' },
7
- debug_task: { agentType: 'complex', reviewPolicy: 'none' },
8
- investigate_codebase: { agentType: 'complex', reviewPolicy: 'none' },
9
- };
10
- export function inferDefaults(route) {
11
- const defaults = ROUTE_DEFAULTS[route];
12
- if (!defaults)
13
- throw new Error(`no defaults table entry for route '${route}'`);
14
- return defaults;
15
- }
16
- const FILE_PATH_PATTERN = /\b([\w./\\-]+\.\w{1,5})\b/g;
17
- const KNOWN_EXTENSIONS = new Set([
18
- 'ts', 'tsx', 'js', 'jsx', 'json', 'md', 'yaml', 'yml',
19
- 'toml', 'py', 'rs', 'go', 'java', 'css', 'html', 'sql',
20
- ]);
21
- const ANALYSIS_VERBS = /\b(summarize|describe|explain|list|count|read|review|analyze|check|inspect)\b/i;
22
- const WRITE_VERBS = /\b(fix|change|update|refactor|delete|migrate|implement|add|create|modify)\b/i;
23
- export function inferMissingFields(draft) {
24
- const assumptions = [...(draft.assumptions ?? [])];
25
- let done = draft.done;
26
- let filePaths = draft.filePaths;
27
- const promptWords = draft.prompt.trim().split(/\s+/);
28
- const fileRefs = [...draft.prompt.matchAll(FILE_PATH_PATTERN)]
29
- .filter(m => { const ext = m[1].split('.').pop()?.toLowerCase(); return ext && KNOWN_EXTENSIONS.has(ext); });
30
- const hasSingleScope = (draft.filePaths?.length === 1) || (fileRefs.length <= 1);
31
- const isTrivial = ANALYSIS_VERBS.test(draft.prompt) &&
32
- !WRITE_VERBS.test(draft.prompt) &&
33
- promptWords.length < 100 &&
34
- hasSingleScope;
35
- if (!done && isTrivial) {
36
- done = 'Provide a clear, complete response addressing the request.';
37
- assumptions.push('inferred done condition for analysis-only task');
38
- }
39
- if (!filePaths?.length) {
40
- const matches = [...draft.prompt.matchAll(FILE_PATH_PATTERN)];
41
- const candidates = matches
42
- .map(m => m[1])
43
- .filter(p => {
44
- const ext = p.split('.').pop()?.toLowerCase();
45
- return ext && KNOWN_EXTENSIONS.has(ext);
46
- });
47
- if (candidates.length > 0 && candidates.length <= 3) {
48
- filePaths = [...new Set(candidates)];
49
- assumptions.push('inferred file scope from prompt');
50
- }
51
- }
52
- if (assumptions.length === (draft.assumptions?.length ?? 0)) {
53
- return draft;
54
- }
55
- return { ...draft, done, filePaths, assumptions };
56
- }
57
- //# sourceMappingURL=field-inferer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-inferer.js","sourceRoot":"","sources":["../../src/intake/field-inferer.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export declare function extractURLHosts(strings: readonly string[]): string[];
2
- export interface AllowlistInput {
3
- fetchAllowlistExtra: readonly string[];
4
- userSources: readonly string[];
5
- }
6
- export type AllowlistProvenance = 'extra' | 'user_source';
7
- export type HostAllowlist = ReadonlyMap<string, AllowlistProvenance>;
8
- /**
9
- * Build the per-task fetch allowlist as a provenance-aware map. Per spec
10
- * §6.2 / §7.1 step 8, the private-network opt-in is gated on
11
- * `provenance === 'extra'` — only operator-declared hosts in
12
- * `fetchAllowlistExtra` are eligible, never hosts harvested from
13
- * `userSources`. Build order: userSources first (lower precedence), then
14
- * fetchAllowlistExtra overwrites — so collisions resolve to the operator's
15
- * deliberate intent.
16
- *
17
- * Both sources are validated through canonicalizeHostname; invalid entries
18
- * (IP literals, single-label names, malformed hostnames, overlong hosts)
19
- * are silently skipped. This mirrors ResearchConfigSchema's HostString
20
- * canonicalization as defense-in-depth for callers that have not parsed
21
- * configuration first; silent skipping preserves URL-extraction behavior
22
- * for untrusted userSources while keeping this builder non-throwing.
23
- */
24
- export declare function buildHostAllowlist(input: AllowlistInput): HostAllowlist;
25
- //# sourceMappingURL=host-allowlist-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-allowlist-builder.d.ts","sourceRoot":"","sources":["../../src/intake/host-allowlist-builder.ts"],"names":[],"mappings":"AAyCA,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAsBpE;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAErE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAYvE"}
@@ -1,102 +0,0 @@
1
- import { isIP } from 'node:net';
2
- const URL_REGEX = /\bhttps?:\/\/[^\s'"<>()]+/gi;
3
- const FORBIDDEN_HOST_CHARS = /[\/:@?#]|:\/\//;
4
- const MAX_HOSTNAME_LENGTH = 253;
5
- const TRAILING_URL_PUNCTUATION = /[.,;:!?]+$/;
6
- /**
7
- * Validate and canonicalize a hostname string. Returns the canonical
8
- * (lowercase, IDNA-encoded) form or null if the input is not a valid
9
- * DNS FQDN. Mirrors the HostString rules in config/schema.ts as a
10
- * defense-in-depth layer: even though ResearchConfigSchema already
11
- * validates fetchAllowlistExtra via HostString, this function ensures
12
- * that any caller of buildHostAllowlist — including callers that bypass
13
- * schema parsing — cannot inject non-FQDN entries with "extra" provenance.
14
- */
15
- function canonicalizeHostname(raw) {
16
- const trimmed = raw.trim();
17
- if (trimmed.length === 0 || trimmed.length > MAX_HOSTNAME_LENGTH)
18
- return null;
19
- if (FORBIDDEN_HOST_CHARS.test(trimmed))
20
- return null;
21
- // Strip trailing dot (DNS root label) — example.com. ≡ example.com
22
- const stripped = trimmed.endsWith('.') ? trimmed.slice(0, -1) : trimmed;
23
- if (stripped.length === 0 || stripped.length > MAX_HOSTNAME_LENGTH)
24
- return null;
25
- let canonical;
26
- try {
27
- canonical = new URL(`https://${stripped}`).hostname;
28
- }
29
- catch {
30
- return null;
31
- }
32
- if (canonical.length === 0 || canonical.length > MAX_HOSTNAME_LENGTH)
33
- return null;
34
- if (isIP(canonical) !== 0)
35
- return null;
36
- const labels = canonical.split('.');
37
- if (labels.length < 2)
38
- return null;
39
- for (const label of labels) {
40
- if (label.length === 0 || label.length > 63)
41
- return null;
42
- if (label.startsWith('-') || label.endsWith('-'))
43
- return null;
44
- }
45
- return canonical;
46
- }
47
- export function extractURLHosts(strings) {
48
- const out = [];
49
- const seen = new Set();
50
- for (const s of strings) {
51
- const matches = s.match(URL_REGEX) ?? [];
52
- for (const m of matches) {
53
- try {
54
- const candidate = m.replace(TRAILING_URL_PUNCTUATION, '');
55
- const u = new URL(candidate);
56
- if (!u.hostname)
57
- continue;
58
- const canonical = canonicalizeHostname(u.hostname);
59
- if (canonical === null)
60
- continue;
61
- if (!seen.has(canonical)) {
62
- seen.add(canonical);
63
- out.push(canonical);
64
- }
65
- }
66
- catch {
67
- // malformed URL — silently skip
68
- }
69
- }
70
- }
71
- return out;
72
- }
73
- /**
74
- * Build the per-task fetch allowlist as a provenance-aware map. Per spec
75
- * §6.2 / §7.1 step 8, the private-network opt-in is gated on
76
- * `provenance === 'extra'` — only operator-declared hosts in
77
- * `fetchAllowlistExtra` are eligible, never hosts harvested from
78
- * `userSources`. Build order: userSources first (lower precedence), then
79
- * fetchAllowlistExtra overwrites — so collisions resolve to the operator's
80
- * deliberate intent.
81
- *
82
- * Both sources are validated through canonicalizeHostname; invalid entries
83
- * (IP literals, single-label names, malformed hostnames, overlong hosts)
84
- * are silently skipped. This mirrors ResearchConfigSchema's HostString
85
- * canonicalization as defense-in-depth for callers that have not parsed
86
- * configuration first; silent skipping preserves URL-extraction behavior
87
- * for untrusted userSources while keeping this builder non-throwing.
88
- */
89
- export function buildHostAllowlist(input) {
90
- const map = new Map();
91
- for (const h of extractURLHosts(input.userSources)) {
92
- map.set(h, 'user_source');
93
- }
94
- for (const h of input.fetchAllowlistExtra) {
95
- const canonical = canonicalizeHostname(h);
96
- if (canonical !== null) {
97
- map.set(canonical, 'extra');
98
- }
99
- }
100
- return map;
101
- }
102
- //# sourceMappingURL=host-allowlist-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-allowlist-builder.js","sourceRoot":"","sources":["../../src/intake/host-allowlist-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from './brief-compiler.js';
2
- export * from './plan-extractor.js';
3
- export * from './host-allowlist-builder.js';
4
- export * from './field-inferer.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/intake/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
@@ -1,6 +0,0 @@
1
- // intake/index.ts — public surface barrel; per architecture.md:262-275.
2
- export * from './brief-compiler.js';
3
- export * from './plan-extractor.js';
4
- export * from './host-allowlist-builder.js';
5
- export * from './field-inferer.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intake/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { MultiModelConfig } from '../types.js';
2
- import type { ContextBlockStore } from '../stores/context-block-tool.js';
3
- import type { DraftTask, IntakeResult } from './types.js';
4
- export declare function runIntakePipeline(drafts: DraftTask[], config: MultiModelConfig, contextBlockStore?: ContextBlockStore, _batchId?: string): IntakeResult;
5
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
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,iCAAiC,CAAC;AACzE,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAIb,MAAM,YAAY,CAAC;AAuCpB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CAoFd"}