@zihanw/pi-forge 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/CHANGELOG.md +79 -1
  2. package/README.md +12 -11
  3. package/README.zh-CN.md +3 -5
  4. package/SUBAGENT_ADAPTER_CONTRACT.md +3 -1
  5. package/dist/agent-profile.d.ts +18 -62
  6. package/dist/agent-profile.d.ts.map +1 -1
  7. package/dist/agent-profile.js +27 -249
  8. package/dist/agent-profile.js.map +1 -1
  9. package/dist/codecs/agent-profile.d.ts +53 -0
  10. package/dist/codecs/agent-profile.d.ts.map +1 -0
  11. package/dist/codecs/agent-profile.js +176 -0
  12. package/dist/codecs/agent-profile.js.map +1 -0
  13. package/dist/codecs/index.d.ts +5 -0
  14. package/dist/codecs/index.d.ts.map +1 -0
  15. package/dist/codecs/index.js +3 -0
  16. package/dist/codecs/index.js.map +1 -0
  17. package/dist/codecs/prompt-stack.d.ts +18 -0
  18. package/dist/codecs/prompt-stack.d.ts.map +1 -0
  19. package/dist/codecs/prompt-stack.js +479 -0
  20. package/dist/codecs/prompt-stack.js.map +1 -0
  21. package/dist/compile-cycle.d.ts +18 -0
  22. package/dist/compile-cycle.d.ts.map +1 -0
  23. package/dist/compile-cycle.js +13 -0
  24. package/dist/compile-cycle.js.map +1 -0
  25. package/dist/compiler.d.ts +10 -4
  26. package/dist/compiler.d.ts.map +1 -1
  27. package/dist/compiler.js +53 -19
  28. package/dist/compiler.js.map +1 -1
  29. package/dist/context-diff-history.d.ts +61 -0
  30. package/dist/context-diff-history.d.ts.map +1 -0
  31. package/dist/context-diff-history.js +84 -0
  32. package/dist/context-diff-history.js.map +1 -0
  33. package/dist/context-diff-snapshot.d.ts +19 -0
  34. package/dist/context-diff-snapshot.d.ts.map +1 -0
  35. package/dist/context-diff-snapshot.js +146 -0
  36. package/dist/context-diff-snapshot.js.map +1 -0
  37. package/dist/context-diff.d.ts +70 -0
  38. package/dist/context-diff.d.ts.map +1 -0
  39. package/dist/context-diff.js +259 -0
  40. package/dist/context-diff.js.map +1 -0
  41. package/dist/extension-registry.d.ts.map +1 -1
  42. package/dist/extension-registry.js +5 -2
  43. package/dist/extension-registry.js.map +1 -1
  44. package/dist/forge-config.d.ts +0 -105
  45. package/dist/forge-config.d.ts.map +1 -1
  46. package/dist/forge-config.js +1 -313
  47. package/dist/forge-config.js.map +1 -1
  48. package/dist/forge-v1/analyzer.d.ts +3 -0
  49. package/dist/forge-v1/analyzer.d.ts.map +1 -0
  50. package/dist/forge-v1/analyzer.js +50 -0
  51. package/dist/forge-v1/analyzer.js.map +1 -0
  52. package/dist/forge-v1/index.d.ts +6 -0
  53. package/dist/forge-v1/index.d.ts.map +1 -0
  54. package/dist/forge-v1/index.js +13 -0
  55. package/dist/forge-v1/index.js.map +1 -0
  56. package/dist/forge-v1/parser.d.ts +3 -0
  57. package/dist/forge-v1/parser.d.ts.map +1 -0
  58. package/dist/forge-v1/parser.js +186 -0
  59. package/dist/forge-v1/parser.js.map +1 -0
  60. package/dist/forge-v1/renderer.d.ts +9 -0
  61. package/dist/forge-v1/renderer.d.ts.map +1 -0
  62. package/dist/forge-v1/renderer.js +181 -0
  63. package/dist/forge-v1/renderer.js.map +1 -0
  64. package/dist/forge-v1/types.d.ts +87 -0
  65. package/dist/forge-v1/types.d.ts.map +1 -0
  66. package/dist/forge-v1/types.js +4 -0
  67. package/dist/forge-v1/types.js.map +1 -0
  68. package/dist/index.d.ts +12 -12
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +54 -83
  71. package/dist/index.js.map +1 -1
  72. package/dist/lifecycle.d.ts +8 -5
  73. package/dist/lifecycle.d.ts.map +1 -1
  74. package/dist/lifecycle.js +45 -112
  75. package/dist/lifecycle.js.map +1 -1
  76. package/dist/loader.d.ts +5 -8
  77. package/dist/loader.d.ts.map +1 -1
  78. package/dist/loader.js +10 -467
  79. package/dist/loader.js.map +1 -1
  80. package/dist/macro-engine.d.ts +9 -14
  81. package/dist/macro-engine.d.ts.map +1 -1
  82. package/dist/macro-engine.js +5 -238
  83. package/dist/macro-engine.js.map +1 -1
  84. package/dist/payload-capture.d.ts +10 -0
  85. package/dist/payload-capture.d.ts.map +1 -1
  86. package/dist/payload-capture.js +39 -9
  87. package/dist/payload-capture.js.map +1 -1
  88. package/dist/payload-command.d.ts +8 -6
  89. package/dist/payload-command.d.ts.map +1 -1
  90. package/dist/payload-command.js +36 -6
  91. package/dist/payload-command.js.map +1 -1
  92. package/dist/payload-state.d.ts +19 -0
  93. package/dist/payload-state.d.ts.map +1 -0
  94. package/dist/payload-state.js +19 -0
  95. package/dist/payload-state.js.map +1 -0
  96. package/dist/preset-command.d.ts +4 -4
  97. package/dist/preset-command.d.ts.map +1 -1
  98. package/dist/preset-command.js +33 -104
  99. package/dist/preset-command.js.map +1 -1
  100. package/dist/preview.d.ts +4 -4
  101. package/dist/preview.d.ts.map +1 -1
  102. package/dist/preview.js +34 -11
  103. package/dist/preview.js.map +1 -1
  104. package/dist/profile-command.d.ts +2 -2
  105. package/dist/profile-command.d.ts.map +1 -1
  106. package/dist/profile-command.js +15 -14
  107. package/dist/profile-command.js.map +1 -1
  108. package/dist/profile-service.d.ts.map +1 -1
  109. package/dist/profile-service.js +23 -39
  110. package/dist/profile-service.js.map +1 -1
  111. package/dist/prompt-analysis.d.ts +24 -0
  112. package/dist/prompt-analysis.d.ts.map +1 -0
  113. package/dist/prompt-analysis.js +84 -0
  114. package/dist/prompt-analysis.js.map +1 -0
  115. package/dist/prompt-runtime.d.ts +19 -0
  116. package/dist/prompt-runtime.d.ts.map +1 -0
  117. package/dist/prompt-runtime.js +30 -0
  118. package/dist/prompt-runtime.js.map +1 -0
  119. package/dist/regex.js +6 -12
  120. package/dist/regex.js.map +1 -1
  121. package/dist/render-helpers.d.ts +2 -10
  122. package/dist/render-helpers.d.ts.map +1 -1
  123. package/dist/render-helpers.js +3 -53
  124. package/dist/render-helpers.js.map +1 -1
  125. package/dist/repositories/agent-profile.d.ts +36 -0
  126. package/dist/repositories/agent-profile.d.ts.map +1 -0
  127. package/dist/repositories/agent-profile.js +153 -0
  128. package/dist/repositories/agent-profile.js.map +1 -0
  129. package/dist/repositories/index.d.ts +3 -0
  130. package/dist/repositories/index.d.ts.map +1 -0
  131. package/dist/repositories/index.js +3 -0
  132. package/dist/repositories/index.js.map +1 -0
  133. package/dist/repositories/prompt-stack.d.ts +57 -0
  134. package/dist/repositories/prompt-stack.d.ts.map +1 -0
  135. package/dist/repositories/prompt-stack.js +175 -0
  136. package/dist/repositories/prompt-stack.js.map +1 -0
  137. package/dist/runtime/profile-runtime.d.ts +2 -2
  138. package/dist/runtime/profile-runtime.d.ts.map +1 -1
  139. package/dist/runtime/profile-runtime.js +13 -10
  140. package/dist/runtime/profile-runtime.js.map +1 -1
  141. package/dist/runtime/prompt-stack-runtime.d.ts +4 -3
  142. package/dist/runtime/prompt-stack-runtime.d.ts.map +1 -1
  143. package/dist/runtime/prompt-stack-runtime.js +42 -57
  144. package/dist/runtime/prompt-stack-runtime.js.map +1 -1
  145. package/dist/runtime/tool-policy-runtime.d.ts +2 -2
  146. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  147. package/dist/runtime/tool-policy-runtime.js +16 -6
  148. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  149. package/dist/runtime/web-editor-runtime.d.ts +2 -1
  150. package/dist/runtime/web-editor-runtime.d.ts.map +1 -1
  151. package/dist/runtime/web-editor-runtime.js +8 -3
  152. package/dist/runtime/web-editor-runtime.js.map +1 -1
  153. package/dist/session-adapter.d.ts +17 -0
  154. package/dist/session-adapter.d.ts.map +1 -0
  155. package/dist/session-adapter.js +57 -0
  156. package/dist/session-adapter.js.map +1 -0
  157. package/dist/slot-renderers.d.ts +16 -3
  158. package/dist/slot-renderers.d.ts.map +1 -1
  159. package/dist/slot-renderers.js +15 -63
  160. package/dist/slot-renderers.js.map +1 -1
  161. package/dist/stack-migration.d.ts +6 -0
  162. package/dist/stack-migration.d.ts.map +1 -1
  163. package/dist/stack-migration.js +49 -52
  164. package/dist/stack-migration.js.map +1 -1
  165. package/dist/subagent/fingerprints.d.ts +24 -0
  166. package/dist/subagent/fingerprints.d.ts.map +1 -0
  167. package/dist/subagent/fingerprints.js +81 -0
  168. package/dist/subagent/fingerprints.js.map +1 -0
  169. package/dist/subagent/host-port.d.ts +296 -0
  170. package/dist/subagent/host-port.d.ts.map +1 -0
  171. package/dist/subagent/host-port.js +560 -0
  172. package/dist/subagent/host-port.js.map +1 -0
  173. package/dist/subagent/index.d.ts +10 -10
  174. package/dist/subagent/index.d.ts.map +1 -1
  175. package/dist/subagent/index.js +9 -10
  176. package/dist/subagent/index.js.map +1 -1
  177. package/dist/subagent-host.d.ts +99 -18
  178. package/dist/subagent-host.d.ts.map +1 -1
  179. package/dist/subagent-host.js +143 -146
  180. package/dist/subagent-host.js.map +1 -1
  181. package/dist/template-render.d.ts +18 -0
  182. package/dist/template-render.d.ts.map +1 -0
  183. package/dist/template-render.js +232 -0
  184. package/dist/template-render.js.map +1 -0
  185. package/dist/types.d.ts +40 -27
  186. package/dist/types.d.ts.map +1 -1
  187. package/dist/types.js.map +1 -1
  188. package/dist/ui-contribution/contrib-port.d.ts +170 -0
  189. package/dist/ui-contribution/contrib-port.d.ts.map +1 -0
  190. package/dist/ui-contribution/contrib-port.js +640 -0
  191. package/dist/ui-contribution/contrib-port.js.map +1 -0
  192. package/dist/ui-contribution/index.d.ts +3 -0
  193. package/dist/ui-contribution/index.d.ts.map +1 -0
  194. package/dist/ui-contribution/index.js +2 -0
  195. package/dist/ui-contribution/index.js.map +1 -0
  196. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  197. package/dist/web-editor/client-script.generated.js +1 -1
  198. package/dist/web-editor/client-script.generated.js.map +1 -1
  199. package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
  200. package/dist/web-editor/client-styles.generated.js +1 -1
  201. package/dist/web-editor/client-styles.generated.js.map +1 -1
  202. package/dist/web-editor/contrib-service.d.ts +41 -0
  203. package/dist/web-editor/contrib-service.d.ts.map +1 -0
  204. package/dist/web-editor/contrib-service.js +174 -0
  205. package/dist/web-editor/contrib-service.js.map +1 -0
  206. package/dist/web-editor/line-diff.d.ts +28 -0
  207. package/dist/web-editor/line-diff.d.ts.map +1 -0
  208. package/dist/web-editor/line-diff.js +216 -0
  209. package/dist/web-editor/line-diff.js.map +1 -0
  210. package/dist/web-editor/schema-form.d.ts +63 -0
  211. package/dist/web-editor/schema-form.d.ts.map +1 -0
  212. package/dist/web-editor/schema-form.js +213 -0
  213. package/dist/web-editor/schema-form.js.map +1 -0
  214. package/dist/web-editor/server.d.ts.map +1 -1
  215. package/dist/web-editor/server.js +72 -74
  216. package/dist/web-editor/server.js.map +1 -1
  217. package/dist/web-editor/styles.d.ts.map +1 -1
  218. package/dist/web-editor/styles.js +201 -21
  219. package/dist/web-editor/styles.js.map +1 -1
  220. package/dist/web-editor/types.d.ts +12 -35
  221. package/dist/web-editor/types.d.ts.map +1 -1
  222. package/dist/web-host.d.ts +6 -2
  223. package/dist/web-host.d.ts.map +1 -1
  224. package/dist/web-host.js +33 -103
  225. package/dist/web-host.js.map +1 -1
  226. package/dist/workspace.d.ts +74 -0
  227. package/dist/workspace.d.ts.map +1 -0
  228. package/dist/workspace.js +351 -0
  229. package/dist/workspace.js.map +1 -0
  230. package/docs/README.md +7 -4
  231. package/docs/concepts/agent-profiles.md +1 -1
  232. package/docs/concepts/prompt-stacks.md +5 -5
  233. package/docs/design/0.5.1-plan.md +237 -0
  234. package/docs/design/README.md +21 -3
  235. package/docs/design/architecture-0.5.md +222 -0
  236. package/docs/design/archive/0.5-full-proposal/0.5-consumer-audit.md +62 -0
  237. package/docs/design/archive/0.5-full-proposal/0.5-inventory.md +208 -0
  238. package/docs/design/archive/0.5-full-proposal/0.5-phase0-decision-drafts.md +237 -0
  239. package/docs/design/archive/0.5-full-proposal/README.md +12 -0
  240. package/docs/design/archive/0.5-full-proposal/architecture-0.5.md +423 -0
  241. package/docs/design/archive/0.5-full-proposal/host-discovery-spike.md +103 -0
  242. package/docs/design/archive/0.5-full-proposal/template-language-spike.md +156 -0
  243. package/docs/design/context-diff-plan.md +78 -0
  244. package/docs/design/decision-template.md +33 -0
  245. package/docs/design/roadmap-0.4-archive.md +1 -1
  246. package/docs/design/subagents/interface-design.md +1 -1
  247. package/docs/development/architecture-rules.md +148 -0
  248. package/docs/development/release.md +7 -1
  249. package/docs/development/roadmap.md +37 -5
  250. package/docs/development/scoped-global-profiles-stacks.md +1 -1
  251. package/docs/development/setup.md +6 -4
  252. package/docs/getting-started.md +5 -4
  253. package/docs/guides/custom-macros-and-slots.md +8 -7
  254. package/docs/guides/debugging.md +1 -1
  255. package/docs/guides/delegation.md +18 -22
  256. package/docs/guides/migrating-to-0.5.md +107 -0
  257. package/docs/guides/use-cases.md +7 -11
  258. package/docs/guides/web-editor.md +6 -10
  259. package/docs/reference/commands.md +4 -3
  260. package/docs/reference/configuration.md +17 -18
  261. package/docs/reference/features.md +34 -80
  262. package/docs/reference/macros-and-slots.md +70 -49
  263. package/docs/reference/public-api.md +76 -17
  264. package/docs/reference/stack-schema.md +15 -10
  265. package/docs/reference/subagent-host-port.md +49 -0
  266. package/docs/reference/ui-contribution-port.md +51 -0
  267. package/docs/zh-CN/README.md +3 -3
  268. package/docs/zh-CN/concepts/agent-profiles.md +1 -1
  269. package/docs/zh-CN/concepts/prompt-stacks.md +5 -5
  270. package/docs/zh-CN/getting-started.md +3 -2
  271. package/docs/zh-CN/guides/delegation.md +10 -12
  272. package/docs/zh-CN/guides/migrating-to-0.5.md +92 -0
  273. package/docs/zh-CN/guides/web-editor.md +4 -4
  274. package/docs/zh-CN/reference/commands.md +3 -2
  275. package/examples/custom-system-status-extension/README.md +3 -3
  276. package/examples/custom-system-status-extension/index.ts +2 -1
  277. package/examples/custom-system-status-extension/prompt-stack.json +4 -3
  278. package/examples/default-prompt-stack.json +9 -4
  279. package/examples/image-reader-prompt-stack.json +16 -26
  280. package/examples/reviewer-prompt-stack.json +13 -24
  281. package/package.json +106 -120
  282. package/dist/runtime/subagent-runtime.d.ts +0 -45
  283. package/dist/runtime/subagent-runtime.d.ts.map +0 -1
  284. package/dist/runtime/subagent-runtime.js +0 -343
  285. package/dist/runtime/subagent-runtime.js.map +0 -1
  286. package/dist/runtime-state.d.ts +0 -30
  287. package/dist/runtime-state.d.ts.map +0 -1
  288. package/dist/runtime-state.js +0 -17
  289. package/dist/runtime-state.js.map +0 -1
  290. package/dist/sillytavern-importer/items.d.ts +0 -3
  291. package/dist/sillytavern-importer/items.d.ts.map +0 -1
  292. package/dist/sillytavern-importer/items.js +0 -88
  293. package/dist/sillytavern-importer/items.js.map +0 -1
  294. package/dist/sillytavern-importer/macros.d.ts +0 -15
  295. package/dist/sillytavern-importer/macros.d.ts.map +0 -1
  296. package/dist/sillytavern-importer/macros.js +0 -141
  297. package/dist/sillytavern-importer/macros.js.map +0 -1
  298. package/dist/sillytavern-importer/prompt-order.d.ts +0 -6
  299. package/dist/sillytavern-importer/prompt-order.d.ts.map +0 -1
  300. package/dist/sillytavern-importer/prompt-order.js +0 -38
  301. package/dist/sillytavern-importer/prompt-order.js.map +0 -1
  302. package/dist/sillytavern-importer/regex.d.ts +0 -3
  303. package/dist/sillytavern-importer/regex.d.ts.map +0 -1
  304. package/dist/sillytavern-importer/regex.js +0 -275
  305. package/dist/sillytavern-importer/regex.js.map +0 -1
  306. package/dist/sillytavern-importer/report.d.ts +0 -21
  307. package/dist/sillytavern-importer/report.d.ts.map +0 -1
  308. package/dist/sillytavern-importer/report.js +0 -166
  309. package/dist/sillytavern-importer/report.js.map +0 -1
  310. package/dist/sillytavern-importer/types.d.ts +0 -106
  311. package/dist/sillytavern-importer/types.d.ts.map +0 -1
  312. package/dist/sillytavern-importer/types.js +0 -2
  313. package/dist/sillytavern-importer/types.js.map +0 -1
  314. package/dist/sillytavern-importer.d.ts +0 -5
  315. package/dist/sillytavern-importer.d.ts.map +0 -1
  316. package/dist/sillytavern-importer.js +0 -117
  317. package/dist/sillytavern-importer.js.map +0 -1
  318. package/dist/subagent/canonical.d.ts +0 -22
  319. package/dist/subagent/canonical.d.ts.map +0 -1
  320. package/dist/subagent/canonical.js +0 -24
  321. package/dist/subagent/canonical.js.map +0 -1
  322. package/dist/subagent/context.d.ts +0 -8
  323. package/dist/subagent/context.d.ts.map +0 -1
  324. package/dist/subagent/context.js +0 -125
  325. package/dist/subagent/context.js.map +0 -1
  326. package/dist/subagent/contract.d.ts +0 -10
  327. package/dist/subagent/contract.d.ts.map +0 -1
  328. package/dist/subagent/contract.js +0 -10
  329. package/dist/subagent/contract.js.map +0 -1
  330. package/dist/subagent/plan.d.ts +0 -18
  331. package/dist/subagent/plan.d.ts.map +0 -1
  332. package/dist/subagent/plan.js +0 -157
  333. package/dist/subagent/plan.js.map +0 -1
  334. package/dist/subagent/preflight.d.ts +0 -4
  335. package/dist/subagent/preflight.d.ts.map +0 -1
  336. package/dist/subagent/preflight.js +0 -108
  337. package/dist/subagent/preflight.js.map +0 -1
  338. package/dist/subagent/request.d.ts +0 -4
  339. package/dist/subagent/request.d.ts.map +0 -1
  340. package/dist/subagent/request.js +0 -154
  341. package/dist/subagent/request.js.map +0 -1
  342. package/dist/subagent/response.d.ts +0 -8
  343. package/dist/subagent/response.d.ts.map +0 -1
  344. package/dist/subagent/response.js +0 -155
  345. package/dist/subagent/response.js.map +0 -1
  346. package/dist/subagent/tools.d.ts +0 -4
  347. package/dist/subagent/tools.d.ts.map +0 -1
  348. package/dist/subagent/tools.js +0 -42
  349. package/dist/subagent/tools.js.map +0 -1
  350. package/dist/subagent/types.d.ts +0 -272
  351. package/dist/subagent/types.d.ts.map +0 -1
  352. package/dist/subagent/types.js +0 -3
  353. package/dist/subagent/types.js.map +0 -1
  354. package/dist/subagent/validation.d.ts +0 -35
  355. package/dist/subagent/validation.d.ts.map +0 -1
  356. package/dist/subagent/validation.js +0 -314
  357. package/dist/subagent/validation.js.map +0 -1
  358. package/dist/subagent-command.d.ts +0 -5
  359. package/dist/subagent-command.d.ts.map +0 -1
  360. package/dist/subagent-command.js +0 -249
  361. package/dist/subagent-command.js.map +0 -1
  362. package/dist/subagent-profile-tool.d.ts +0 -49
  363. package/dist/subagent-profile-tool.d.ts.map +0 -1
  364. package/dist/subagent-profile-tool.js +0 -125
  365. package/dist/subagent-profile-tool.js.map +0 -1
  366. package/dist/subagent-tool.d.ts +0 -77
  367. package/dist/subagent-tool.d.ts.map +0 -1
  368. package/dist/subagent-tool.js +0 -559
  369. package/dist/subagent-tool.js.map +0 -1
  370. package/docs/guides/sillytavern-import.md +0 -47
  371. package/docs/reference/subagent-adapter.md +0 -204
  372. package/examples/sillytavern-dm-writer-prompt-stack.json +0 -190
@@ -1,155 +0,0 @@
1
- import { canonicalSubagentJson } from "./canonical.js";
2
- import { SUBAGENT_CONTRACT_VERSION } from "./types.js";
3
- import { SUBAGENT_LIMIT_NAMES, error, isIsoDate, isNonNegativeFinite, isPositiveInteger, isRecord, isSafeRelativePath, validateAccessReceipt, validateFingerprint, validateLimitReceipt, validateModelReference, validateNamespace, validateOpaqueId, validateUniqueStringArray, validateUsage } from "./validation.js";
4
- export function validateAgentResponse(response, context) {
5
- const diagnostics = [];
6
- if (!isRecord(response))
7
- return [error("response.type", "AgentResponse must be an object.", "$")];
8
- if (!SUBAGENT_RESPONSE_STATUSES.includes(response.status))
9
- diagnostics.push(error("response.status", "Unsupported response status.", "status"));
10
- if (response.schemaVersion !== SUBAGENT_CONTRACT_VERSION)
11
- diagnostics.push(error("response.schema-version", "schemaVersion must be 1.", "schemaVersion"));
12
- for (const id of ["requestId", "runId", "backendId"])
13
- validateOpaqueId(response[id], id, diagnostics);
14
- validateFingerprint(response.profileFingerprint, "profileFingerprint", diagnostics);
15
- validateFingerprint(response.executionFingerprint, "executionFingerprint", diagnostics);
16
- validateModelReference(response.model, "model", diagnostics);
17
- if (!Array.isArray(response.effectiveToolIds))
18
- diagnostics.push(error("response.tools", "effectiveToolIds must be a string array.", "effectiveToolIds"));
19
- else
20
- validateUniqueStringArray(response.effectiveToolIds, "effectiveToolIds", diagnostics);
21
- if (!isNonNegativeFinite(response.durationMs))
22
- diagnostics.push(error("response.duration", "durationMs must be a non-negative finite number.", "durationMs"));
23
- if (!Array.isArray(response.artifacts))
24
- diagnostics.push(error("response.artifacts", "artifacts must be an array.", "artifacts"));
25
- else
26
- response.artifacts.forEach((artifact, index) => diagnostics.push(...validateSubagentArtifactReference(artifact, `artifacts[${index}]`)));
27
- if (response.trace !== undefined) {
28
- diagnostics.push(...validateSubagentTraceReference(response.trace, "trace"));
29
- if (isRecord(response.trace) && response.trace.backendId !== response.backendId)
30
- diagnostics.push(error("response.trace-backend", "Trace backendId must match response backendId.", "trace.backendId"));
31
- }
32
- if (response.usage !== undefined)
33
- validateUsage(response.usage, "usage", diagnostics);
34
- if (!isRecord(response.enforcement))
35
- diagnostics.push(error("response.enforcement", "enforcement must be an object.", "enforcement"));
36
- else {
37
- validateAccessReceipt(response.enforcement.access, "enforcement.access", diagnostics);
38
- validateLimitReceipt(response.enforcement.limits, "enforcement.limits", diagnostics);
39
- }
40
- validateResponseStatusMatrix(response, diagnostics);
41
- if (context?.request && response.requestId !== context.request.requestId)
42
- diagnostics.push(error("response.request-id", "requestId does not match the request.", "requestId"));
43
- if (context?.plan) {
44
- if (response.requestId !== context.plan.requestId)
45
- diagnostics.push(error("response.request-plan-id", "requestId does not match the execution plan.", "requestId"));
46
- if (response.runId !== context.plan.runId)
47
- diagnostics.push(error("response.run-id", "runId does not match the execution plan.", "runId"));
48
- if (response.backendId !== context.plan.backendId)
49
- diagnostics.push(error("response.backend-id", "backendId does not match the execution plan.", "backendId"));
50
- if (response.executionFingerprint !== context.plan.executionFingerprint)
51
- diagnostics.push(error("response.execution-fingerprint", "executionFingerprint does not match the execution plan.", "executionFingerprint"));
52
- if (response.profileFingerprint !== context.plan.profile.profileFingerprint)
53
- diagnostics.push(error("response.profile-fingerprint", "profileFingerprint does not match the execution plan.", "profileFingerprint"));
54
- if (response.status === "timed-out" && response.enforcedTimeoutMs !== context.plan.limits.timeoutMs?.value)
55
- diagnostics.push(error("response.timeout-receipt", "enforcedTimeoutMs does not match the execution plan timeout receipt.", "enforcedTimeoutMs"));
56
- if (response.status === "limit-reached" && !context.plan.limits[response.reachedLimit])
57
- diagnostics.push(error("response.limit-receipt-missing", "reachedLimit has no enforcement receipt in the execution plan.", "reachedLimit"));
58
- if (response.trace !== undefined && !context.plan.preflight.backend.capabilities.traceInspection)
59
- diagnostics.push(error("response.trace-capability", "Backend returned a trace without advertising traceInspection.", "trace"));
60
- if (Array.isArray(response.artifacts) && response.artifacts.length > 0 && !context.plan.preflight.backend.capabilities.artifactRetention)
61
- diagnostics.push(error("response.artifact-capability", "Backend returned artifacts without advertising artifactRetention.", "artifacts"));
62
- try {
63
- if (canonicalSubagentJson(response.model) !== canonicalSubagentJson(context.plan.model))
64
- diagnostics.push(error("response.model-mismatch", "Response model does not match the execution plan.", "model"));
65
- if (Array.isArray(response.effectiveToolIds) && canonicalSubagentJson(response.effectiveToolIds) !== canonicalSubagentJson(context.plan.effectiveToolIds))
66
- diagnostics.push(error("response.tools-mismatch", "effectiveToolIds do not match the execution plan.", "effectiveToolIds"));
67
- if (isRecord(response.enforcement)) {
68
- if (canonicalSubagentJson(response.enforcement.access) !== canonicalSubagentJson(context.plan.access))
69
- diagnostics.push(error("response.access-receipt", "Access enforcement receipt does not match the execution plan.", "enforcement.access"));
70
- if (canonicalSubagentJson(response.enforcement.limits) !== canonicalSubagentJson(context.plan.limits))
71
- diagnostics.push(error("response.limit-receipt", "Limit enforcement receipt does not match the execution plan.", "enforcement.limits"));
72
- }
73
- }
74
- catch (validationError) {
75
- diagnostics.push(error("response.malformed", `Cannot compare malformed response with plan: ${validationError instanceof Error ? validationError.message : String(validationError)}`, "$"));
76
- }
77
- }
78
- return diagnostics;
79
- }
80
- export function validateSubagentArtifactReference(value, path = "artifact") {
81
- const diagnostics = [];
82
- if (!isRecord(value))
83
- return [error("artifact.type", "Artifact reference must be an object.", path)];
84
- validateOpaqueId(value.id, `${path}.id`, diagnostics);
85
- validateNamespace(value.workspaceNamespace, `${path}.workspaceNamespace`, diagnostics);
86
- if (!isSafeRelativePath(value.path))
87
- diagnostics.push(error("artifact.path", "Artifact path must be a normalized relative POSIX path without dot segments.", `${path}.path`));
88
- if (value.authorization !== "read" && value.authorization !== "write")
89
- diagnostics.push(error("artifact.authorization", "authorization must be read or write.", `${path}.authorization`));
90
- if (!SUBAGENT_ARTIFACT_LIFETIMES.includes(value.lifetime))
91
- diagnostics.push(error("artifact.lifetime", "Unsupported artifact lifetime.", `${path}.lifetime`));
92
- if (!SUBAGENT_ARTIFACT_CLEANUP.includes(value.cleanup))
93
- diagnostics.push(error("artifact.cleanup", "Unsupported artifact cleanup owner.", `${path}.cleanup`));
94
- return diagnostics;
95
- }
96
- export function validateSubagentTraceReference(value, path = "trace") {
97
- const diagnostics = [];
98
- if (!isRecord(value))
99
- return [error("trace.type", "Trace reference must be an object.", path)];
100
- validateOpaqueId(value.handle, `${path}.handle`, diagnostics);
101
- validateOpaqueId(value.backendId, `${path}.backendId`, diagnostics);
102
- validateNamespace(value.authorizationScope, `${path}.authorizationScope`, diagnostics);
103
- if (value.expiresAt !== undefined && !isIsoDate(value.expiresAt))
104
- diagnostics.push(error("trace.expiry", "expiresAt must be an ISO date-time string.", `${path}.expiresAt`));
105
- return diagnostics;
106
- }
107
- const SUBAGENT_RESPONSE_STATUSES = ["completed", "failed", "cancelled", "timed-out", "limit-reached"];
108
- const SUBAGENT_ARTIFACT_LIFETIMES = ["run", "session", "persistent"];
109
- const SUBAGENT_ARTIFACT_CLEANUP = ["backend", "host", "user"];
110
- function validateResponseStatusMatrix(response, diagnostics) {
111
- const output = response.output;
112
- if (output !== undefined) {
113
- if (!isRecord(output) || typeof output.text !== "string" || typeof output.partial !== "boolean")
114
- diagnostics.push(error("response.output", "output must contain text and partial.", "output"));
115
- }
116
- if (response.status === "completed") {
117
- if (response.error !== undefined || response.reason !== undefined || response.reachedLimit !== undefined || response.enforcedTimeoutMs !== undefined)
118
- diagnostics.push(error("response.completed-fields", "Completed responses cannot contain terminal error/reason/limit fields.", "status"));
119
- if (isRecord(output) && output.partial !== false)
120
- diagnostics.push(error("response.completed-partial", "Completed output cannot be partial.", "output.partial"));
121
- }
122
- else {
123
- if (isRecord(output) && output.partial !== true)
124
- diagnostics.push(error("response.partial", "Non-completed output must be marked partial.", "output.partial"));
125
- if (response.status === "failed") {
126
- if (!isRecord(response.error) || typeof response.error.code !== "string" || typeof response.error.message !== "string")
127
- diagnostics.push(error("response.failed-error", "Failed responses require a structured error.", "error"));
128
- forbidResponseFields(response, ["reason", "reachedLimit", "enforcedTimeoutMs"], diagnostics);
129
- }
130
- if (response.status === "cancelled") {
131
- if (typeof response.reason !== "string" || !response.reason.trim())
132
- diagnostics.push(error("response.reason", "cancelled responses require a reason.", "reason"));
133
- forbidResponseFields(response, ["error", "reachedLimit", "enforcedTimeoutMs"], diagnostics);
134
- }
135
- if (response.status === "timed-out") {
136
- if (typeof response.reason !== "string" || !response.reason.trim())
137
- diagnostics.push(error("response.reason", "timed-out responses require a reason.", "reason"));
138
- if (!isPositiveInteger(response.enforcedTimeoutMs))
139
- diagnostics.push(error("response.timeout", "Timed-out responses require enforcedTimeoutMs.", "enforcedTimeoutMs"));
140
- forbidResponseFields(response, ["error", "reachedLimit"], diagnostics);
141
- }
142
- if (response.status === "limit-reached") {
143
- if (!SUBAGENT_LIMIT_NAMES.includes(response.reachedLimit))
144
- diagnostics.push(error("response.reached-limit", "limit-reached responses require a valid reachedLimit.", "reachedLimit"));
145
- forbidResponseFields(response, ["error", "reason", "enforcedTimeoutMs"], diagnostics);
146
- }
147
- }
148
- }
149
- function forbidResponseFields(response, fields, diagnostics) {
150
- for (const field of fields) {
151
- if (response[field] !== undefined)
152
- diagnostics.push(error("response.forbidden-field", `${response.status} response cannot contain ${field}.`, field));
153
- }
154
- }
155
- //# sourceMappingURL=response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/subagent/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAA+F,MAAM,YAAY,CAAC;AACpJ,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExT,MAAM,UAAU,qBAAqB,CACpC,QAAiB,EACjB,OAA+D;IAE/D,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,kCAAkC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAe,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzJ,IAAI,QAAQ,CAAC,aAAa,KAAK,yBAAyB;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1J,KAAK,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAU;QAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/G,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACpF,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;IACxF,sBAAsB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,0CAA0C,EAAE,kBAAkB,CAAC,CAAC,CAAC;;QACpJ,yBAAyB,CAAC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC3F,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,kDAAkD,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9J,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,6BAA6B,EAAE,WAAW,CAAC,CAAC,CAAC;;QAC7H,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,QAAQ,EAAE,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9I,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7E,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,gDAAgD,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzM,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACtF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,aAAa,CAAC,CAAC,CAAC;SACjI,CAAC;QACL,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACtF,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,uCAAuC,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/K,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QACnB,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,8CAA8C,EAAE,WAAW,CAAC,CAAC,CAAC;QACpK,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,0CAA0C,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3I,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,8CAA8C,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/J,IAAI,QAAQ,CAAC,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,oBAAoB;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gCAAgC,EAAE,yDAAyD,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACtN,IAAI,QAAQ,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,uDAAuD,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACpN,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,sEAAsE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7P,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAiC,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gCAAgC,EAAE,gEAAgE,EAAE,cAAc,CAAC,CAAC,CAAC;QACzP,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,+DAA+D,EAAE,OAAO,CAAC,CAAC,CAAC;QACjO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,mEAAmE,EAAE,WAAW,CAAC,CAAC,CAAC;QACpR,IAAI,CAAC;YACJ,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,mDAAmD,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1M,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,mDAAmD,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACvR,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,+DAA+D,EAAE,oBAAoB,CAAC,CAAC,CAAC;gBACjP,IAAI,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,8DAA8D,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAChP,CAAC;QACF,CAAC;QAAC,OAAO,eAAe,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,gDAAgD,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5L,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAAc,EAAE,IAAI,GAAG,UAAU;IAClF,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,uCAAuC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrG,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,IAAI,KAAK,EAAE,WAAW,CAAC,CAAC;IACtD,iBAAiB,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACvF,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,8EAA8E,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAC9K,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,sCAAsC,EAAE,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAC1L,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAiB,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;IACvK,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAgB,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;IACvK,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAc,EAAE,IAAI,GAAG,OAAO;IAC5E,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,oCAAoC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/F,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9D,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,YAAY,EAAE,WAAW,CAAC,CAAC;IACpE,iBAAiB,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,4CAA4C,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IAC7K,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,0BAA0B,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAU,CAAC;AAE/G,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAE9E,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEvE,SAAS,4BAA4B,CAAC,QAAiC,EAAE,WAAiC;IACzG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChM,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,wEAAwE,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/R,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,qCAAqC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAClK,CAAC;SAAM,CAAC;QACP,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC/J,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,8CAA8C,EAAE,OAAO,CAAC,CAAC,CAAC;YAClO,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACrC,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClK,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACrC,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,gDAAgD,EAAE,mBAAmB,CAAC,CAAC,CAAC;YACvK,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAiC,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,uDAAuD,EAAE,cAAc,CAAC,CAAC,CAAC;YAC3M,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC;QACvF,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAiC,EAAE,MAAgB,EAAE,WAAiC;IACnH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,QAAQ,CAAC,MAAM,4BAA4B,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACvJ,CAAC;AACF,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { PromptResourcePolicy } from "../types.ts";
2
- import type { SubagentAccessRequest, SubagentBackendTool, SubagentToolNegotiationResult } from "./types.ts";
3
- export declare function negotiateSubagentTools(catalog: readonly SubagentBackendTool[], policy: PromptResourcePolicy | undefined, access: SubagentAccessRequest): SubagentToolNegotiationResult;
4
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/subagent/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAsB,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAGhI,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,MAAM,EAAE,qBAAqB,GAC3B,6BAA6B,CAyB/B"}
@@ -1,42 +0,0 @@
1
- import { applyResourcePolicy, resourcePatternMatches } from "../policy.js";
2
- import { validateToolCatalog } from "./validation.js";
3
- export function negotiateSubagentTools(catalog, policy, access) {
4
- const diagnostics = [];
5
- validateToolCatalog(catalog, diagnostics);
6
- const names = catalog.map((tool) => tool.name);
7
- const stackSelectedToolNames = applyResourcePolicy(names, policy);
8
- const selected = new Set(stackSelectedToolNames);
9
- const effective = catalog.filter((tool) => selected.has(tool.name) && toolAllowedByAccess(tool, access));
10
- const unmatchedAllowPatterns = policy && "allow" in policy
11
- ? (policy.allow ?? []).filter((pattern) => pattern !== "*" && !names.some((name) => resourcePatternMatches(name, pattern)))
12
- : [];
13
- for (const pattern of unmatchedAllowPatterns) {
14
- diagnostics.push({ level: "warning", code: "tools.unmatched-allow", path: "tools.allow", message: `Tool allow pattern matches no backend tools: ${pattern}` });
15
- }
16
- for (const tool of catalog) {
17
- if (selected.has(tool.name) && !effective.includes(tool)) {
18
- diagnostics.push({ level: "info", code: "tools.access-filtered", path: `tools.${tool.name}`, message: `Tool ${tool.name} was removed by request access policy.` });
19
- }
20
- }
21
- return {
22
- effectiveToolIds: effective.map((tool) => tool.id),
23
- effectiveToolNames: effective.map((tool) => tool.name),
24
- stackSelectedToolNames,
25
- unmatchedAllowPatterns,
26
- diagnostics,
27
- };
28
- }
29
- function toolAllowedByAccess(tool, access) {
30
- for (const effect of tool.effects) {
31
- if (effect === "network" && access.network !== "allow")
32
- return false;
33
- if (effect === "process" && access.allowProcess !== true)
34
- return false;
35
- if (effect === "filesystem-read" && access.level === "none")
36
- return false;
37
- if (effect === "filesystem-write" && access.level !== "workspace-write")
38
- return false;
39
- }
40
- return true;
41
- }
42
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/subagent/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CACrC,OAAuC,EACvC,MAAwC,EACxC,MAA6B;IAE7B,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACzG,MAAM,sBAAsB,GAAG,MAAM,IAAI,OAAO,IAAI,MAAM;QACzD,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3H,CAAC,CAAC,EAAE,CAAC;IACN,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gDAAgD,OAAO,EAAE,EAAE,CAAC,CAAC;IAChK,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,wCAAwC,EAAE,CAAC,CAAC;QACpK,CAAC;IACF,CAAC;IACD,OAAO;QACN,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,kBAAkB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,sBAAsB;QACtB,sBAAsB;QACtB,WAAW;KACX,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAyB,EAAE,MAA6B;IACpF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QACrE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACvE,IAAI,MAAM,KAAK,iBAAiB,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1E,IAAI,MAAM,KAAK,kBAAkB,IAAI,MAAM,CAAC,KAAK,KAAK,iBAAiB;YAAE,OAAO,KAAK,CAAC;IACvF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -1,272 +0,0 @@
1
- import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
2
- import type { AgentProfile, AgentProfileModelReference } from "../agent-profile.ts";
3
- import type { PromptStack } from "../types.ts";
4
- import type { AccessCapabilities, AccessLevel, AccessReceipt, AccessRequest, BackendCapabilities, BackendDescriptor, BackendTool, Diagnostic, DiagnosticLevel, EnforcedLimit, Fingerprint, LimitEnforcement, LimitName, LimitReceipt, LimitRequest, LimitRequirement, LimitRequirementLevel, MediaReference, MountMapping, NetworkPolicy, WorkspaceMode, WorkspaceRequest, WorkingDirectoryRequest, PreparedContentPart, PreparedMessage, PreparedMessageRole, PromptRuntime, PromptRuntimeOptions, PromptRuntimeSkill, RunError, RunUsage, ToolEffect, ExecutionBoundary } from "@zihanw/pi-subagent-runtime";
5
- export declare const SUBAGENT_CONTRACT_VERSION: 1;
6
- export type SubagentFingerprint = Fingerprint;
7
- export { FINGERPRINT_PREFIX as SUBAGENT_FINGERPRINT_PREFIX } from "@zihanw/pi-subagent-runtime";
8
- export type SubagentDiagnosticLevel = DiagnosticLevel;
9
- export type SubagentDiagnostic = Diagnostic;
10
- export type SubagentMediaReference = MediaReference;
11
- export type SubagentAccessLevel = AccessLevel;
12
- export type SubagentWorkspaceMode = WorkspaceMode;
13
- export type SubagentNetworkPolicy = NetworkPolicy;
14
- export type SubagentExecutionBoundary = ExecutionBoundary;
15
- export type SubagentWorkspaceRequest = WorkspaceRequest;
16
- export type SubagentWorkingDirectoryRequest = WorkingDirectoryRequest;
17
- export type SubagentAccessRequest = AccessRequest;
18
- export type SubagentLimitName = LimitName;
19
- export type SubagentLimitEnforcementPreference = LimitRequirementLevel;
20
- export type SubagentLimitRequirement = LimitRequirement;
21
- export type SubagentLimitRequest = LimitRequest;
22
- export type SubagentToolEffect = ToolEffect;
23
- export type SubagentBackendTool = BackendTool;
24
- export type SubagentAccessCapabilities = AccessCapabilities;
25
- export type SubagentLimitEnforcement = LimitEnforcement;
26
- export type SubagentMountMapping = MountMapping;
27
- export type SubagentEnforcedLimit = EnforcedLimit;
28
- export type SubagentLimitReceipt = LimitReceipt;
29
- export type SubagentPreparedMessageRole = PreparedMessageRole;
30
- export type SubagentPreparedContentPart = PreparedContentPart;
31
- export type SubagentPromptRuntimeSkill = PromptRuntimeSkill;
32
- export type SubagentPromptRuntimeOptions = PromptRuntimeOptions;
33
- export type SubagentUsage = RunUsage;
34
- export type SubagentError = RunError;
35
- export type SubagentAccessReceipt = AccessReceipt;
36
- export type SubagentPreparationRuntime = PromptRuntime;
37
- export type SubagentBackendCapabilities = BackendCapabilities & {
38
- traceInspection: boolean;
39
- artifactRetention: boolean;
40
- };
41
- export type SubagentBackendDescriptor = Omit<BackendDescriptor, "capabilities"> & {
42
- capabilities: SubagentBackendCapabilities;
43
- };
44
- export type SubagentPreparedMessage = PreparedMessage & {
45
- protectedTask?: boolean;
46
- source?: "selected-context" | "prompt-stack" | "delegated-task";
47
- };
48
- export interface SubagentTaskInput {
49
- text: string;
50
- media?: SubagentMediaReference[];
51
- }
52
- export type SubagentContextItemKind = "summary" | "user-excerpt" | "assistant-excerpt" | "tool-result-excerpt" | "resource-excerpt";
53
- export interface SubagentContextProvenance {
54
- source: string;
55
- reference?: string;
56
- }
57
- export interface SubagentContextItem {
58
- id: string;
59
- kind: SubagentContextItemKind;
60
- text: string;
61
- required?: boolean;
62
- provenance: SubagentContextProvenance;
63
- }
64
- export interface SubagentSelectedContext {
65
- maxBytes: number;
66
- items: SubagentContextItem[];
67
- }
68
- export interface AgentRequest {
69
- schemaVersion: typeof SUBAGENT_CONTRACT_VERSION;
70
- requestId: string;
71
- profileId: string;
72
- expectedProfileFingerprint?: SubagentFingerprint;
73
- input: SubagentTaskInput;
74
- selectedContext?: SubagentSelectedContext;
75
- access: SubagentAccessRequest;
76
- limits: SubagentLimitRequest;
77
- resultProjection: {
78
- maxChars: number;
79
- };
80
- parent: {
81
- runId?: string;
82
- sessionId?: string;
83
- depth: number;
84
- maxDepth: number;
85
- };
86
- remoteEgressConsent: boolean;
87
- }
88
- export type SubagentDependencyKind = "macro" | "slot";
89
- export interface SubagentPromptDependency {
90
- kind: SubagentDependencyKind;
91
- name: string;
92
- identity: string;
93
- source?: string;
94
- }
95
- export interface AgentProfileSnapshot {
96
- schemaVersion: typeof SUBAGENT_CONTRACT_VERSION;
97
- /** Canonical scoped selector of the resolved profile (`project:<id>` or `global:<id>`). */
98
- profileId: string;
99
- profile: AgentProfile;
100
- /** Canonical scoped selector of the resolved prompt stack, or null. */
101
- promptStackId: string | null;
102
- promptStack: PromptStack | null;
103
- dependencies: SubagentPromptDependency[];
104
- profileFingerprint: SubagentFingerprint;
105
- promptStackFingerprint: SubagentFingerprint | null;
106
- }
107
- export interface SubagentToolNegotiationResult {
108
- effectiveToolIds: string[];
109
- effectiveToolNames: string[];
110
- stackSelectedToolNames: string[];
111
- unmatchedAllowPatterns: string[];
112
- diagnostics: SubagentDiagnostic[];
113
- }
114
- export interface SubagentContextBudgetReceipt {
115
- maxBytes: number;
116
- includedBytes: number;
117
- includedItemIds: string[];
118
- omittedItemIds: string[];
119
- }
120
- export interface BackendPreflightAccepted {
121
- status: "accepted";
122
- preflightId: string;
123
- backend: SubagentBackendDescriptor;
124
- model: AgentProfileModelReference;
125
- thinkingLevel: ThinkingLevel;
126
- toolCatalog: SubagentBackendTool[];
127
- access: SubagentAccessReceipt;
128
- limits: SubagentLimitReceipt;
129
- promptRuntime?: SubagentPreparationRuntime;
130
- diagnostics: SubagentDiagnostic[];
131
- }
132
- export interface BackendPreflightRejected {
133
- status: "rejected";
134
- preflightId: string;
135
- backend: SubagentBackendDescriptor;
136
- diagnostics: SubagentDiagnostic[];
137
- }
138
- export type BackendPreflightResult = BackendPreflightAccepted | BackendPreflightRejected;
139
- export interface SubagentPreparationBaseInput {
140
- request: AgentRequest;
141
- snapshot: AgentProfileSnapshot;
142
- preflight: BackendPreflightAccepted;
143
- }
144
- export interface SubagentPreparationInput extends SubagentPreparationBaseInput {
145
- runtime: SubagentPreparationRuntime;
146
- }
147
- export interface SubagentPreparationOutput {
148
- systemPrompt: string;
149
- messages: SubagentPreparedMessage[];
150
- toolNegotiation: SubagentToolNegotiationResult;
151
- contextBudget?: SubagentContextBudgetReceipt;
152
- diagnostics: SubagentDiagnostic[];
153
- }
154
- export interface SubagentPreparationResult {
155
- runtime: SubagentPreparationRuntime;
156
- preparation: SubagentPreparationOutput;
157
- }
158
- export type SubagentHostPlanPreparer = (input: SubagentPreparationInput) => Promise<SubagentPreparationOutput> | SubagentPreparationOutput;
159
- export interface AgentExecutionPlan {
160
- schemaVersion: typeof SUBAGENT_CONTRACT_VERSION;
161
- runId: string;
162
- requestId: string;
163
- backendId: string;
164
- preflightId: string;
165
- preflight: BackendPreflightAccepted;
166
- profile: AgentProfileSnapshot;
167
- model: AgentProfileModelReference;
168
- thinkingLevel: ThinkingLevel;
169
- systemPrompt: string;
170
- messages: SubagentPreparedMessage[];
171
- effectiveToolIds: string[];
172
- access: SubagentAccessReceipt;
173
- limits: SubagentLimitReceipt;
174
- contextBudget?: SubagentContextBudgetReceipt;
175
- resultProjection: AgentRequest["resultProjection"];
176
- promptRuntimeFingerprint: SubagentFingerprint;
177
- /** Runtime-issued fingerprint of the sealed system prompt and ordered messages. */
178
- conversationFingerprint: SubagentFingerprint;
179
- /**
180
- * Runtime-issued fingerprint binding the sealed conversation to the
181
- * accepted backend, preflight, tools, and limits. The host never computes
182
- * this value; it displays and propagates the sealed fingerprint so approval
183
- * and execution stay bound to the exact plan the runtime sealed.
184
- */
185
- executionFingerprint: SubagentFingerprint;
186
- }
187
- export type SubagentArtifactLifetime = "run" | "session" | "persistent";
188
- export type SubagentArtifactAuthorization = "read" | "write";
189
- export interface SubagentArtifactReference {
190
- id: string;
191
- workspaceNamespace: string;
192
- path: string;
193
- authorization: SubagentArtifactAuthorization;
194
- lifetime: SubagentArtifactLifetime;
195
- cleanup: "backend" | "host" | "user";
196
- }
197
- export interface SubagentTraceReference {
198
- handle: string;
199
- backendId: string;
200
- authorizationScope: string;
201
- expiresAt?: string;
202
- }
203
- export interface AgentResponseCommon {
204
- schemaVersion: typeof SUBAGENT_CONTRACT_VERSION;
205
- requestId: string;
206
- runId: string;
207
- backendId: string;
208
- profileFingerprint: SubagentFingerprint;
209
- executionFingerprint: SubagentFingerprint;
210
- model: AgentProfileModelReference;
211
- effectiveToolIds: string[];
212
- enforcement: {
213
- access: SubagentAccessReceipt;
214
- limits: SubagentLimitReceipt;
215
- };
216
- durationMs: number;
217
- artifacts: SubagentArtifactReference[];
218
- trace?: SubagentTraceReference;
219
- usage?: SubagentUsage;
220
- }
221
- export interface AgentResponseCompleted extends AgentResponseCommon {
222
- status: "completed";
223
- output?: {
224
- text: string;
225
- partial: false;
226
- };
227
- }
228
- export interface AgentResponseFailed extends AgentResponseCommon {
229
- status: "failed";
230
- error: SubagentError;
231
- output?: {
232
- text: string;
233
- partial: true;
234
- };
235
- }
236
- export interface AgentResponseCancelled extends AgentResponseCommon {
237
- status: "cancelled";
238
- reason: string;
239
- output?: {
240
- text: string;
241
- partial: true;
242
- };
243
- }
244
- export interface AgentResponseTimedOut extends AgentResponseCommon {
245
- status: "timed-out";
246
- reason: string;
247
- enforcedTimeoutMs: number;
248
- output?: {
249
- text: string;
250
- partial: true;
251
- };
252
- }
253
- export interface AgentResponseLimitReached extends AgentResponseCommon {
254
- status: "limit-reached";
255
- reachedLimit: SubagentLimitName;
256
- output?: {
257
- text: string;
258
- partial: true;
259
- };
260
- }
261
- export type AgentResponse = AgentResponseCompleted | AgentResponseFailed | AgentResponseCancelled | AgentResponseTimedOut | AgentResponseLimitReached;
262
- export interface SubagentContextBudgetResult {
263
- items: SubagentContextItem[];
264
- receipt: SubagentContextBudgetReceipt;
265
- diagnostics: SubagentDiagnostic[];
266
- }
267
- export interface SubagentInitialMessagesResult {
268
- messages: SubagentPreparedMessage[];
269
- contextBudget?: SubagentContextBudgetReceipt;
270
- diagnostics: SubagentDiagnostic[];
271
- }
272
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/subagent/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export const SUBAGENT_CONTRACT_VERSION = 1;
2
- export { FINGERPRINT_PREFIX as SUBAGENT_FINGERPRINT_PREFIX } from "@zihanw/pi-subagent-runtime";
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/subagent/types.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAU,CAAC;AAcpD,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,35 +0,0 @@
1
- import { FINGERPRINT_PATTERN, LIMIT_NAMES, OPAQUE_ID_PATTERN, error, hasErrors, isFingerprint, isRecord, isSafeRelativePath, validateAccessEnforcement } from "@zihanw/pi-subagent-runtime";
2
- import type { SubagentDiagnostic, SubagentPreparationRuntime } from "./types.ts";
3
- export { FINGERPRINT_PATTERN, LIMIT_NAMES as SUBAGENT_LIMIT_NAMES, OPAQUE_ID_PATTERN, error, hasErrors, hasErrors as hasSubagentErrors, isFingerprint, isRecord, isSafeRelativePath, validateAccessEnforcement, };
4
- export declare const NAMESPACE_PATTERN: RegExp;
5
- export declare function validateAccessRequest(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
6
- export declare function validateLimitRequest(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
7
- export declare function validateLimitReceipt(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
8
- export declare function validateBackendDescriptor(value: Record<string, unknown>, path: string, diagnostics: SubagentDiagnostic[]): void;
9
- export declare function validatePreparationRuntime(value: unknown, path: string, diagnostics: SubagentDiagnostic[], expectedFidelity?: SubagentPreparationRuntime["fidelity"]): void;
10
- export declare function validateMediaReference(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
11
- export declare function validateSelectedContext(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): SubagentDiagnostic[];
12
- export declare function validateToolCatalog(value: readonly unknown[], diagnostics: SubagentDiagnostic[]): void;
13
- /**
14
- * Host access-receipt validation. The portable runtime validator intentionally
15
- * checks less: the host additionally enforces mount uniqueness, access-level
16
- * consistency, and the isolation claims a receipt may make for its execution
17
- * boundary, because these cross-checks are the honesty terms of the host
18
- * contract (a shared-user boundary must never claim OS isolation).
19
- */
20
- export declare function validateAccessReceipt(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
21
- export declare function validateAccessCapabilities(value: Record<string, unknown>, path: string, diagnostics: SubagentDiagnostic[]): void;
22
- export declare function validatePreparedMessage(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
23
- export declare function validateContextBudgetReceipt(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
24
- export declare function validateUniqueStringArray(value: readonly unknown[], path: string, diagnostics: SubagentDiagnostic[]): void;
25
- export declare function validateDiagnosticArray(value: readonly unknown[], path: string, diagnostics: SubagentDiagnostic[]): void;
26
- export declare function validateUsage(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
27
- export declare function validateModelReference(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
28
- export declare function validateOpaqueId(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
29
- export declare function validateNamespace(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
30
- export declare function validateFingerprint(value: unknown, path: string, diagnostics: SubagentDiagnostic[]): void;
31
- export declare function isIsoDate(value: unknown): boolean;
32
- export declare function isPositiveInteger(value: unknown): value is number;
33
- export declare function isNonNegativeInteger(value: unknown): value is number;
34
- export declare function isNonNegativeFinite(value: unknown): value is number;
35
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"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"}