@namzu/sdk 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +463 -0
  2. package/README.md +2 -2
  3. package/dist/agents/__tests__/run-agent-forwarding.test.d.ts +2 -0
  4. package/dist/agents/__tests__/run-agent-forwarding.test.d.ts.map +1 -0
  5. package/dist/agents/__tests__/run-agent-forwarding.test.js +76 -0
  6. package/dist/agents/__tests__/run-agent-forwarding.test.js.map +1 -0
  7. package/dist/agents/__tests__/run-completed-stop-reason.test.d.ts +2 -0
  8. package/dist/agents/__tests__/run-completed-stop-reason.test.d.ts.map +1 -0
  9. package/dist/agents/__tests__/run-completed-stop-reason.test.js +50 -0
  10. package/dist/agents/__tests__/run-completed-stop-reason.test.js.map +1 -0
  11. package/dist/agents/index.d.ts +1 -0
  12. package/dist/agents/index.d.ts.map +1 -1
  13. package/dist/agents/index.js +4 -0
  14. package/dist/agents/index.js.map +1 -1
  15. package/dist/agents/runAgent.d.ts +34 -0
  16. package/dist/agents/runAgent.d.ts.map +1 -1
  17. package/dist/agents/runAgent.js +5 -3
  18. package/dist/agents/runAgent.js.map +1 -1
  19. package/dist/config/runtime.d.ts +30 -30
  20. package/dist/constants/tools/__tests__/dangerous-patterns.test.d.ts +2 -0
  21. package/dist/constants/tools/__tests__/dangerous-patterns.test.d.ts.map +1 -0
  22. package/dist/constants/tools/__tests__/dangerous-patterns.test.js +54 -0
  23. package/dist/constants/tools/__tests__/dangerous-patterns.test.js.map +1 -0
  24. package/dist/constants/tools/index.d.ts.map +1 -1
  25. package/dist/constants/tools/index.js +28 -1
  26. package/dist/constants/tools/index.js.map +1 -1
  27. package/dist/contracts/a2a.d.ts +44 -44
  28. package/dist/directory/__tests__/derive.test.d.ts +2 -0
  29. package/dist/directory/__tests__/derive.test.d.ts.map +1 -0
  30. package/dist/directory/__tests__/derive.test.js +111 -0
  31. package/dist/directory/__tests__/derive.test.js.map +1 -0
  32. package/dist/directory/__tests__/load-diagnostics.test.d.ts +2 -0
  33. package/dist/directory/__tests__/load-diagnostics.test.d.ts.map +1 -0
  34. package/dist/directory/__tests__/load-diagnostics.test.js +106 -0
  35. package/dist/directory/__tests__/load-diagnostics.test.js.map +1 -0
  36. package/dist/directory/__tests__/load-directory.test.d.ts +2 -0
  37. package/dist/directory/__tests__/load-directory.test.d.ts.map +1 -0
  38. package/dist/directory/__tests__/load-directory.test.js +196 -0
  39. package/dist/directory/__tests__/load-directory.test.js.map +1 -0
  40. package/dist/directory/__tests__/subagents.test.d.ts +2 -0
  41. package/dist/directory/__tests__/subagents.test.d.ts.map +1 -0
  42. package/dist/directory/__tests__/subagents.test.js +117 -0
  43. package/dist/directory/__tests__/subagents.test.js.map +1 -0
  44. package/dist/directory/__tests__/supervisor-budget.test.d.ts +2 -0
  45. package/dist/directory/__tests__/supervisor-budget.test.d.ts.map +1 -0
  46. package/dist/directory/__tests__/supervisor-budget.test.js +97 -0
  47. package/dist/directory/__tests__/supervisor-budget.test.js.map +1 -0
  48. package/dist/directory/derive-supervisor.d.ts +58 -0
  49. package/dist/directory/derive-supervisor.d.ts.map +1 -0
  50. package/dist/directory/derive-supervisor.js +88 -0
  51. package/dist/directory/derive-supervisor.js.map +1 -0
  52. package/dist/directory/derive.d.ts +12 -0
  53. package/dist/directory/derive.d.ts.map +1 -0
  54. package/dist/directory/derive.js +58 -0
  55. package/dist/directory/derive.js.map +1 -0
  56. package/dist/directory/index.d.ts +7 -0
  57. package/dist/directory/index.d.ts.map +1 -0
  58. package/dist/directory/index.js +5 -0
  59. package/dist/directory/index.js.map +1 -0
  60. package/dist/directory/load.d.ts +14 -0
  61. package/dist/directory/load.d.ts.map +1 -0
  62. package/dist/directory/load.js +488 -0
  63. package/dist/directory/load.js.map +1 -0
  64. package/dist/directory/scan.d.ts +36 -0
  65. package/dist/directory/scan.d.ts.map +1 -0
  66. package/dist/directory/scan.js +136 -0
  67. package/dist/directory/scan.js.map +1 -0
  68. package/dist/directory/types.d.ts +215 -0
  69. package/dist/directory/types.d.ts.map +1 -0
  70. package/dist/directory/types.js +8 -0
  71. package/dist/directory/types.js.map +1 -0
  72. package/dist/plugin/__tests__/path-containment.test.d.ts +2 -0
  73. package/dist/plugin/__tests__/path-containment.test.d.ts.map +1 -0
  74. package/dist/plugin/__tests__/path-containment.test.js +91 -0
  75. package/dist/plugin/__tests__/path-containment.test.js.map +1 -0
  76. package/dist/plugin/lifecycle.d.ts.map +1 -1
  77. package/dist/plugin/lifecycle.js +3 -3
  78. package/dist/plugin/lifecycle.js.map +1 -1
  79. package/dist/plugin/loader.d.ts.map +1 -1
  80. package/dist/plugin/loader.js +12 -2
  81. package/dist/plugin/loader.js.map +1 -1
  82. package/dist/provider/__tests__/model-version.test.d.ts +2 -0
  83. package/dist/provider/__tests__/model-version.test.d.ts.map +1 -0
  84. package/dist/provider/__tests__/model-version.test.js +80 -0
  85. package/dist/provider/__tests__/model-version.test.js.map +1 -0
  86. package/dist/provider/__tests__/strict-schema.test.d.ts +2 -0
  87. package/dist/provider/__tests__/strict-schema.test.d.ts.map +1 -0
  88. package/dist/provider/__tests__/strict-schema.test.js +109 -0
  89. package/dist/provider/__tests__/strict-schema.test.js.map +1 -0
  90. package/dist/provider/__tests__/typed-error-classification.test.d.ts +2 -0
  91. package/dist/provider/__tests__/typed-error-classification.test.d.ts.map +1 -0
  92. package/dist/provider/__tests__/typed-error-classification.test.js +123 -0
  93. package/dist/provider/__tests__/typed-error-classification.test.js.map +1 -0
  94. package/dist/provider/model-version.d.ts +60 -0
  95. package/dist/provider/model-version.d.ts.map +1 -0
  96. package/dist/provider/model-version.js +64 -0
  97. package/dist/provider/model-version.js.map +1 -0
  98. package/dist/provider/retry.d.ts.map +1 -1
  99. package/dist/provider/retry.js +23 -7
  100. package/dist/provider/retry.js.map +1 -1
  101. package/dist/provider/strict-schema.d.ts +49 -0
  102. package/dist/provider/strict-schema.d.ts.map +1 -0
  103. package/dist/provider/strict-schema.js +112 -0
  104. package/dist/provider/strict-schema.js.map +1 -0
  105. package/dist/public-runtime.d.ts +6 -1
  106. package/dist/public-runtime.d.ts.map +1 -1
  107. package/dist/public-runtime.js +21 -1
  108. package/dist/public-runtime.js.map +1 -1
  109. package/dist/public-tools.d.ts +1 -0
  110. package/dist/public-tools.d.ts.map +1 -1
  111. package/dist/public-tools.js +4 -0
  112. package/dist/public-tools.js.map +1 -1
  113. package/dist/public-types.d.ts +2 -0
  114. package/dist/public-types.d.ts.map +1 -1
  115. package/dist/registry/tool/__tests__/strict-registration.test.d.ts +2 -0
  116. package/dist/registry/tool/__tests__/strict-registration.test.d.ts.map +1 -0
  117. package/dist/registry/tool/__tests__/strict-registration.test.js +82 -0
  118. package/dist/registry/tool/__tests__/strict-registration.test.js.map +1 -0
  119. package/dist/registry/tool/execute.d.ts.map +1 -1
  120. package/dist/registry/tool/execute.js +16 -0
  121. package/dist/registry/tool/execute.js.map +1 -1
  122. package/dist/runtime/query/__tests__/stream-recovery.test.js +5 -0
  123. package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -1
  124. package/dist/runtime/query/result.d.ts.map +1 -1
  125. package/dist/runtime/query/result.js +5 -0
  126. package/dist/runtime/query/result.js.map +1 -1
  127. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js +7 -1
  128. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js.map +1 -1
  129. package/dist/tools/builtins/__tests__/edit.test.js +1 -1
  130. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  131. package/dist/tools/builtins/edit.d.ts.map +1 -1
  132. package/dist/tools/builtins/edit.js +20 -2
  133. package/dist/tools/builtins/edit.js.map +1 -1
  134. package/dist/types/plugin/index.d.ts +4 -4
  135. package/dist/types/provider/errors.d.ts +0 -17
  136. package/dist/types/provider/errors.d.ts.map +1 -1
  137. package/dist/types/provider/errors.js +60 -0
  138. package/dist/types/provider/errors.js.map +1 -1
  139. package/dist/types/run/events.d.ts +17 -2
  140. package/dist/types/run/events.d.ts.map +1 -1
  141. package/dist/types/run/events.js.map +1 -1
  142. package/dist/types/verification/index.d.ts +6 -6
  143. package/package.json +1 -1
  144. package/src/agents/__tests__/run-agent-forwarding.test.ts +85 -0
  145. package/src/agents/__tests__/run-completed-stop-reason.test.ts +59 -0
  146. package/src/agents/index.ts +8 -0
  147. package/src/agents/runAgent.ts +30 -4
  148. package/src/constants/tools/__tests__/dangerous-patterns.test.ts +62 -0
  149. package/src/constants/tools/index.ts +28 -1
  150. package/src/directory/__tests__/derive.test.ts +135 -0
  151. package/src/directory/__tests__/load-diagnostics.test.ts +126 -0
  152. package/src/directory/__tests__/load-directory.test.ts +243 -0
  153. package/src/directory/__tests__/subagents.test.ts +155 -0
  154. package/src/directory/__tests__/supervisor-budget.test.ts +117 -0
  155. package/src/directory/derive-supervisor.ts +149 -0
  156. package/src/directory/derive.ts +70 -0
  157. package/src/directory/index.ts +27 -0
  158. package/src/directory/load.ts +556 -0
  159. package/src/directory/scan.ts +163 -0
  160. package/src/directory/types.ts +254 -0
  161. package/src/plugin/__tests__/path-containment.test.ts +107 -0
  162. package/src/plugin/lifecycle.ts +3 -3
  163. package/src/plugin/loader.ts +12 -2
  164. package/src/provider/__tests__/model-version.test.ts +93 -0
  165. package/src/provider/__tests__/strict-schema.test.ts +133 -0
  166. package/src/provider/__tests__/typed-error-classification.test.ts +143 -0
  167. package/src/provider/model-version.ts +98 -0
  168. package/src/provider/retry.ts +23 -7
  169. package/src/provider/strict-schema.ts +125 -0
  170. package/src/public-runtime.ts +31 -0
  171. package/src/public-tools.ts +4 -0
  172. package/src/public-types.ts +8 -0
  173. package/src/registry/tool/__tests__/strict-registration.test.ts +115 -0
  174. package/src/registry/tool/execute.ts +16 -0
  175. package/src/runtime/query/__tests__/stream-recovery.test.ts +5 -0
  176. package/src/runtime/query/result.ts +5 -0
  177. package/src/tools/builtins/__tests__/edit-insert-reachable.test.ts +8 -2
  178. package/src/tools/builtins/__tests__/edit.test.ts +1 -1
  179. package/src/tools/builtins/edit.ts +20 -2
  180. package/src/types/provider/errors.ts +71 -0
  181. package/src/types/run/events.ts +15 -2
@@ -6,4 +6,8 @@ export { SupervisorAgent } from './SupervisorAgent.js';
6
6
  export { defineAgent } from './defineAgent.js';
7
7
  export { InvocationLock, ConcurrentInvocationError } from './lock.js';
8
8
  export { runAgent } from './runAgent.js';
9
+ // The budgets the front door applies when a caller names none. Exported so a
10
+ // deriver that builds a config by hand lands on the SAME numbers rather than
11
+ // inventing its own or, as `@namzu/project` did, supplying none at all.
12
+ export { DEFAULT_MAX_ITERATIONS, DEFAULT_TIMEOUT_MS, DEFAULT_TOKEN_BUDGET, } from './runAgent.js';
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,OAAO,EACN,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,eAAe,CAAA"}
@@ -2,7 +2,9 @@ import type { ProjectId, SessionId, TenantId, ThreadId } from '../types/ids/inde
2
2
  import type { Message } from '../types/message/index.js';
3
3
  import type { LLMProvider } from '../types/provider/index.js';
4
4
  import type { Run, RunEventListener } from '../types/run/index.js';
5
+ import type { Skill } from '../types/skills/index.js';
5
6
  import type { ToolRegistryContract } from '../types/tool/index.js';
7
+ import type { VerificationGateConfig } from '../types/verification/index.js';
6
8
  /**
7
9
  * The session a run belongs to.
8
10
  *
@@ -36,6 +38,26 @@ export interface RunAgentOptions extends AgentIdentity {
36
38
  */
37
39
  model: string;
38
40
  tools?: ToolRegistryContract;
41
+ /**
42
+ * Skills to put in front of the model.
43
+ *
44
+ * The kernel has taken these since it had a prompt builder; this door did
45
+ * not forward them, so a caller who assembled skills — `@namzu/project`
46
+ * reads a whole `skills/` directory — handed them over and got a run that
47
+ * had never heard of them. Silent, because the `drainQuery` call below was
48
+ * cast, and a cast seam reports nothing when a field goes missing.
49
+ */
50
+ skills?: Skill[];
51
+ /**
52
+ * Operator policy for tool calls: which ones need review before they run.
53
+ *
54
+ * Absent means every tool runs unreviewed, which is the right default for a
55
+ * library front door and the wrong one for a host that hands this an agent
56
+ * directory it did not write. The kernel builds a `VerificationGate` from
57
+ * this and consults it on every call; without it there is nothing to
58
+ * consult, so a front-door run is strictly less mediated than a kernel one.
59
+ */
60
+ verificationGate?: VerificationGateConfig;
39
61
  /** Defaults to the current working directory. */
40
62
  workingDirectory?: string;
41
63
  maxIterations?: number;
@@ -59,6 +81,18 @@ export interface RunAgentResult {
59
81
  */
60
82
  readonly identity: Required<AgentIdentity>;
61
83
  }
84
+ /**
85
+ * Defaults chosen to be safe rather than generous.
86
+ *
87
+ * A front door exists so a first run works without a decision, and the cost of
88
+ * that convenience is that nobody reads these numbers before their first
89
+ * runaway loop. So: a budget that ends a stuck run in seconds rather than
90
+ * dollars, and an iteration cap that stops a tool-calling loop well before a
91
+ * context window does. Every one is overridable and named on the option.
92
+ */
93
+ export declare const DEFAULT_MAX_ITERATIONS = 16;
94
+ export declare const DEFAULT_TOKEN_BUDGET = 200000;
95
+ export declare const DEFAULT_TIMEOUT_MS = 300000;
62
96
  /**
63
97
  * Run an agent, without assembling a kernel by hand.
64
98
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runAgent.d.ts","sourceRoot":"","sources":["../../src/agents/runAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAQlE;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACrD,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAA;IAErB,kEAAkE;IAClE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;IAE1B,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb,KAAK,CAAC,EAAE,oBAAoB,CAAA;IAE5B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAEnC,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAC1C;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAyChF"}
1
+ {"version":3,"file":"runAgent.d.ts","sourceRoot":"","sources":["../../src/agents/runAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAQ5E;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACrD,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAA;IAErB,kEAAkE;IAClE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;IAE1B,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb,KAAK,CAAC,EAAE,oBAAoB,CAAA;IAE5B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAEhB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IAEzC,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAEnC,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,oBAAoB,SAAU,CAAA;AAC3C,eAAO,MAAM,kBAAkB,SAAU,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA2ChF"}
@@ -10,9 +10,9 @@ import { generateProjectId, generateSessionId, generateTenantId, generateThreadI
10
10
  * dollars, and an iteration cap that stops a tool-calling loop well before a
11
11
  * context window does. Every one is overridable and named on the option.
12
12
  */
13
- const DEFAULT_MAX_ITERATIONS = 16;
14
- const DEFAULT_TOKEN_BUDGET = 200_000;
15
- const DEFAULT_TIMEOUT_MS = 300_000;
13
+ export const DEFAULT_MAX_ITERATIONS = 16;
14
+ export const DEFAULT_TOKEN_BUDGET = 200_000;
15
+ export const DEFAULT_TIMEOUT_MS = 300_000;
16
16
  /**
17
17
  * Run an agent, without assembling a kernel by hand.
18
18
  *
@@ -85,6 +85,8 @@ export async function runAgent(options) {
85
85
  agentName: options.name ?? 'Agent',
86
86
  ...(options.instructions ? { systemPrompt: options.instructions } : {}),
87
87
  ...(options.signal ? { signal: options.signal } : {}),
88
+ ...(options.skills ? { skills: options.skills } : {}),
89
+ ...(options.verificationGate ? { verificationGate: options.verificationGate } : {}),
88
90
  ...identity,
89
91
  }, options.listener);
90
92
  return { output: run.result, run, identity };
@@ -1 +1 @@
1
- {"version":3,"file":"runAgent.js","sourceRoot":"","sources":["../../src/agents/runAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAMtD,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,gBAAgB,CAAA;AAuEvB;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,oBAAoB,GAAG,OAAO,CAAA;AACpC,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACtD,MAAM,QAAQ,GAA4B;QACzC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB,EAAE;QACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,gBAAgB,EAAE;QAChD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB,EAAE;QACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,gBAAgB,EAAE;KAChD,CAAA;IAED,MAAM,QAAQ,GACb,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAa,CAAC;QAC/E,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAElB,MAAM,GAAG,GAAG,MAAM,UAAU,CAC3B;QACC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,YAAY,EAAE;QAC1C,QAAQ;QACR,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE;QAC3D,SAAS,EAAE;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;YAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oBAAoB;YACxD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,kBAAkB;YAClD,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF;QACD,iEAAiE;QACjE,iEAAiE;QACjE,gEAAgE;QAChE,oEAAoE;QACpE,6BAA6B;QAC7B,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO;QAChC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO;QAClC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,QAAQ;KACF,EACV,OAAO,CAAC,QAAQ,CAChB,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"runAgent.js","sourceRoot":"","sources":["../../src/agents/runAgent.ts"],"names":[],"mappings":"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"}
@@ -409,6 +409,7 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
409
409
  }>>;
410
410
  }, "strip", z.ZodTypeAny, {
411
411
  timeoutMs: number;
412
+ model: string;
412
413
  compaction: {
413
414
  strategy: "disabled" | "structured" | "sliding-window";
414
415
  triggerThreshold: number;
@@ -431,11 +432,24 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
431
432
  contextWindowTokens?: number | undefined;
432
433
  preserveToolResultsFrom?: string[] | undefined;
433
434
  };
434
- model: string;
435
435
  temperature: number;
436
436
  tokenBudget: number;
437
437
  maxResponseTokens: number;
438
438
  maxIterations: number;
439
+ sandbox?: {
440
+ enabled: boolean;
441
+ provider: "local";
442
+ timeoutMs: number;
443
+ memoryLimitMb: number;
444
+ maxProcesses: number;
445
+ requireIsolation: ("filesystem" | "network" | "process")[];
446
+ } | undefined;
447
+ plugins?: {
448
+ enabled: boolean;
449
+ autoDiscovery: boolean;
450
+ allowedScopes: ("user" | "project")[];
451
+ hookTimeoutMs: number;
452
+ } | undefined;
439
453
  taskRouter?: {
440
454
  default?: string | null | undefined;
441
455
  compaction?: string | null | undefined;
@@ -453,22 +467,23 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
453
467
  breakerFailureThreshold: number;
454
468
  breakerResetTimeoutMs: number;
455
469
  } | undefined;
456
- plugins?: {
457
- enabled: boolean;
458
- autoDiscovery: boolean;
459
- allowedScopes: ("user" | "project")[];
460
- hookTimeoutMs: number;
461
- } | undefined;
462
- sandbox?: {
463
- enabled: boolean;
464
- provider: "local";
465
- timeoutMs: number;
466
- memoryLimitMb: number;
467
- maxProcesses: number;
468
- requireIsolation: ("filesystem" | "network" | "process")[];
469
- } | undefined;
470
470
  }, {
471
471
  timeoutMs?: number | undefined;
472
+ sandbox?: {
473
+ enabled?: boolean | undefined;
474
+ provider?: "local" | undefined;
475
+ timeoutMs?: number | undefined;
476
+ memoryLimitMb?: number | undefined;
477
+ maxProcesses?: number | undefined;
478
+ requireIsolation?: ("filesystem" | "network" | "process")[] | undefined;
479
+ } | undefined;
480
+ plugins?: {
481
+ enabled?: boolean | undefined;
482
+ autoDiscovery?: boolean | undefined;
483
+ allowedScopes?: ("user" | "project")[] | undefined;
484
+ hookTimeoutMs?: number | undefined;
485
+ } | undefined;
486
+ model?: string | undefined;
472
487
  compaction?: {
473
488
  strategy?: "disabled" | "structured" | "sliding-window" | undefined;
474
489
  contextWindowTokens?: number | undefined;
@@ -491,7 +506,6 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
491
506
  maxCharsPerRequirement?: number | undefined;
492
507
  maxCharsPerTask?: number | undefined;
493
508
  } | undefined;
494
- model?: string | undefined;
495
509
  temperature?: number | undefined;
496
510
  tokenBudget?: number | undefined;
497
511
  maxResponseTokens?: number | undefined;
@@ -513,20 +527,6 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
513
527
  breakerFailureThreshold?: number | undefined;
514
528
  breakerResetTimeoutMs?: number | undefined;
515
529
  } | undefined;
516
- plugins?: {
517
- enabled?: boolean | undefined;
518
- autoDiscovery?: boolean | undefined;
519
- allowedScopes?: ("user" | "project")[] | undefined;
520
- hookTimeoutMs?: number | undefined;
521
- } | undefined;
522
- sandbox?: {
523
- enabled?: boolean | undefined;
524
- provider?: "local" | undefined;
525
- timeoutMs?: number | undefined;
526
- memoryLimitMb?: number | undefined;
527
- maxProcesses?: number | undefined;
528
- requireIsolation?: ("filesystem" | "network" | "process")[] | undefined;
529
- } | undefined;
530
530
  }>;
531
531
  export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
532
532
  export declare const RUNTIME_DEFAULTS: Readonly<RuntimeConfig>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dangerous-patterns.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dangerous-patterns.test.d.ts","sourceRoot":"","sources":["../../../../src/constants/tools/__tests__/dangerous-patterns.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { DANGEROUS_PATTERNS } from '../index.js';
3
+ /**
4
+ * `DANGEROUS_PATTERNS` is what `deny_dangerous_patterns` consults, and
5
+ * `namzu run`'s own docstring promises that in a non-interactive run "the
6
+ * safety gate still hard-denies catastrophic commands".
7
+ *
8
+ * The fork-bomb entry could not deny one. It was written `/:(){ :\|:& };:/`,
9
+ * and in a regular expression `()` is an empty capture group rather than two
10
+ * literal parentheses — so the pattern described `:{ :|:& };:`, a string that
11
+ * is not valid shell and that nobody types. The list looked complete in review
12
+ * and had a hole in it that only running the regex reveals.
13
+ *
14
+ * No test named a fork bomb before this one, which is how it survived.
15
+ */
16
+ function denies(command) {
17
+ return DANGEROUS_PATTERNS.some((p) => p.test(command));
18
+ }
19
+ describe('the dangerous-command list denies fork bombs', () => {
20
+ // Spelling varies with whitespace and with the function's name; the bomb
21
+ // does not care, so neither may the pattern.
22
+ it.each([
23
+ ':(){ :|:& };:',
24
+ ':(){:|:&};:',
25
+ ':() { :|:& }; :',
26
+ ':(){ : | : & }; :',
27
+ 'bomb(){ bomb|bomb& }; bomb',
28
+ 'f(){ f|f& };f',
29
+ ])('denies %j', (command) => {
30
+ expect(denies(command)).toBe(true);
31
+ });
32
+ });
33
+ describe('it does not deny ordinary shell', () => {
34
+ // A function containing a pipe and a background job is not a fork bomb.
35
+ // The signature is SELF-reference — the same name on both sides — and a
36
+ // pattern that fired on the general shape would make the gate useless by
37
+ // crying wolf.
38
+ it.each([
39
+ 'build(){ make | tee log & }',
40
+ 'watch(){ tail -f log | grep ERROR & }; watch',
41
+ 'f(){ g|h& };f',
42
+ 'run(){ a|b& }; run',
43
+ 'git log | head -20',
44
+ 'npm test',
45
+ ])('allows %j', (command) => {
46
+ expect(denies(command)).toBe(false);
47
+ });
48
+ });
49
+ describe('the rest of the list still fires', () => {
50
+ it.each(['rm -rf /', 'mkfs.ext4 /dev/sda', 'dd if=/dev/zero of=/dev/sda', 'sudo rm x'])('denies %j', (command) => {
51
+ expect(denies(command)).toBe(true);
52
+ });
53
+ });
54
+ //# sourceMappingURL=dangerous-patterns.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dangerous-patterns.test.js","sourceRoot":"","sources":["../../../../src/constants/tools/__tests__/dangerous-patterns.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;;;;;;;;GAYG;AAEH,SAAS,MAAM,CAAC,OAAe;IAC9B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC7D,yEAAyE;IACzE,6CAA6C;IAC7C,EAAE,CAAC,IAAI,CAAC;QACP,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,4BAA4B;QAC5B,eAAe;KACf,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAChD,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,eAAe;IACf,EAAE,CAAC,IAAI,CAAC;QACP,6BAA6B;QAC7B,8CAA8C;QAC9C,eAAe;QACf,oBAAoB;QACpB,oBAAoB;QACpB,UAAU;KACV,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,WAAW,CAAC,CAAC,CACtF,WAAW,EACX,CAAC,OAAO,EAAE,EAAE;QACX,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC,CACD,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,UAiB9B,CAAA;AAED,eAAO,MAAM,gBAAgB,aAA6C,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAA;AAElD,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,oKAC2H,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,UA4C9B,CAAA;AAED,eAAO,MAAM,gBAAgB,aAA6C,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAA;AAElD,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,oKAC2H,CAAA"}
@@ -17,7 +17,34 @@ export const DANGEROUS_PATTERNS = [
17
17
  /rm\s+-rf\s+\//,
18
18
  /mkfs/,
19
19
  /dd\s+if=/,
20
- /:(){ :\|:& };:/,
20
+ /**
21
+ * Fork bomb.
22
+ *
23
+ * The previous entry was `/:(){ :\|:& };:/`, which could not match one. In
24
+ * a regular expression `()` is an empty capture group, not two literal
25
+ * parentheses, so that pattern described the string `:{ :|:& };:` — which
26
+ * is not valid shell and which nobody would ever type. Probed: it returned
27
+ * false for `:(){ :|:& };:` and every spelling of it, while `run.ts`'s own
28
+ * docstring promised "the safety gate still hard-denies catastrophic
29
+ * commands".
30
+ *
31
+ * Matched on SELF-REFERENCE rather than on one literal spelling: a fork
32
+ * bomb is a function whose own name appears on both sides of a pipe, is
33
+ * backgrounded, and is then invoked. That is what separates it from a
34
+ * function that merely contains a pipe — `watch(){ tail -f log | grep E & }`
35
+ * does not match, and `bomb(){ bomb|bomb& }; bomb` does.
36
+ *
37
+ * EVERY run is bounded, not just the name. The first version bounded the
38
+ * name and left the gaps as `\s*`, and static analysis caught what a hand
39
+ * probe did not: a chain of unbounded runs backtracks polynomially, and
40
+ * this list is matched against SERIALIZED TOOL INPUT — model output, which
41
+ * a prompt injection can shape. A denial of service in the check that
42
+ * exists to prevent one is the wrong way round.
43
+ *
44
+ * `[ \t]` rather than `\s`, because a shell function definition of this
45
+ * shape lives on one line, and the bound is generous for real spacing.
46
+ */
47
+ /([\w.]{1,32}|:)[ \t]{0,8}\([ \t]{0,8}\)[ \t]{0,8}\{[ \t]{0,8}\1[ \t]{0,8}\|[ \t]{0,8}\1[ \t]{0,8}&[ \t]{0,8};?[ \t]{0,8}\}[ \t]{0,8};?[ \t]{0,8}\1/,
21
48
  // Privilege escalation + world-writable chmod on /.
22
49
  /\bsudo\b/,
23
50
  /\bsu\s+-/,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,8DAA8D;AAC9D,gEAAgE;AAChE,gEAAgE;AAChE,4DAA4D;AAC5D,kEAAkE;AAClE,iEAAiE;AACjE,EAAE;AACF,gEAAgE;AAChE,kEAAkE;AAClE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,gDAAgD;IAChD,eAAe;IACf,MAAM;IACN,UAAU;IACV,gBAAgB;IAChB,oDAAoD;IACpD,UAAU;IACV,UAAU;IACV,4BAA4B;IAC5B,wDAAwD;IACxD,qCAAqC;IACrC,qCAAqC;IACrC,+BAA+B;IAC/B,cAAc;IACd,+BAA+B;IAC/B,iBAAiB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAA;AAElD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GACtC,iKAAiK,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,8DAA8D;AAC9D,gEAAgE;AAChE,gEAAgE;AAChE,4DAA4D;AAC5D,kEAAkE;AAClE,iEAAiE;AACjE,EAAE;AACF,gEAAgE;AAChE,kEAAkE;AAClE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,gDAAgD;IAChD,eAAe;IACf,MAAM;IACN,UAAU;IACV;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,oJAAoJ;IACpJ,oDAAoD;IACpD,UAAU;IACV,UAAU;IACV,4BAA4B;IAC5B,wDAAwD;IACxD,qCAAqC;IACrC,qCAAqC;IACrC,+BAA+B;IAC/B,cAAc;IACd,+BAA+B;IAC/B,iBAAiB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAA;AAElD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GACtC,iKAAiK,CAAA"}