@zihanw/pi-forge 0.4.0 → 0.5.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 (341) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/README.md +11 -11
  3. package/README.zh-CN.md +4 -6
  4. package/SUBAGENT_ADAPTER_CONTRACT.md +3 -1
  5. package/dist/agent-profile.d.ts +21 -42
  6. package/dist/agent-profile.d.ts.map +1 -1
  7. package/dist/agent-profile.js +82 -194
  8. package/dist/agent-profile.js.map +1 -1
  9. package/dist/catalog.d.ts +27 -0
  10. package/dist/catalog.d.ts.map +1 -0
  11. package/dist/catalog.js +59 -0
  12. package/dist/catalog.js.map +1 -0
  13. package/dist/codecs/agent-profile.d.ts +53 -0
  14. package/dist/codecs/agent-profile.d.ts.map +1 -0
  15. package/dist/codecs/agent-profile.js +176 -0
  16. package/dist/codecs/agent-profile.js.map +1 -0
  17. package/dist/codecs/index.d.ts +5 -0
  18. package/dist/codecs/index.d.ts.map +1 -0
  19. package/dist/codecs/index.js +3 -0
  20. package/dist/codecs/index.js.map +1 -0
  21. package/dist/codecs/prompt-stack.d.ts +18 -0
  22. package/dist/codecs/prompt-stack.d.ts.map +1 -0
  23. package/dist/codecs/prompt-stack.js +479 -0
  24. package/dist/codecs/prompt-stack.js.map +1 -0
  25. package/dist/compile-cycle.d.ts +18 -0
  26. package/dist/compile-cycle.d.ts.map +1 -0
  27. package/dist/compile-cycle.js +13 -0
  28. package/dist/compile-cycle.js.map +1 -0
  29. package/dist/compiler.d.ts +10 -4
  30. package/dist/compiler.d.ts.map +1 -1
  31. package/dist/compiler.js +53 -19
  32. package/dist/compiler.js.map +1 -1
  33. package/dist/extension-registry.d.ts.map +1 -1
  34. package/dist/extension-registry.js +5 -2
  35. package/dist/extension-registry.js.map +1 -1
  36. package/dist/forge-config.d.ts +2 -81
  37. package/dist/forge-config.d.ts.map +1 -1
  38. package/dist/forge-config.js +5 -280
  39. package/dist/forge-config.js.map +1 -1
  40. package/dist/forge-v1/analyzer.d.ts +3 -0
  41. package/dist/forge-v1/analyzer.d.ts.map +1 -0
  42. package/dist/forge-v1/analyzer.js +50 -0
  43. package/dist/forge-v1/analyzer.js.map +1 -0
  44. package/dist/forge-v1/index.d.ts +6 -0
  45. package/dist/forge-v1/index.d.ts.map +1 -0
  46. package/dist/forge-v1/index.js +13 -0
  47. package/dist/forge-v1/index.js.map +1 -0
  48. package/dist/forge-v1/parser.d.ts +3 -0
  49. package/dist/forge-v1/parser.d.ts.map +1 -0
  50. package/dist/forge-v1/parser.js +186 -0
  51. package/dist/forge-v1/parser.js.map +1 -0
  52. package/dist/forge-v1/renderer.d.ts +9 -0
  53. package/dist/forge-v1/renderer.d.ts.map +1 -0
  54. package/dist/forge-v1/renderer.js +181 -0
  55. package/dist/forge-v1/renderer.js.map +1 -0
  56. package/dist/forge-v1/types.d.ts +87 -0
  57. package/dist/forge-v1/types.d.ts.map +1 -0
  58. package/dist/forge-v1/types.js +4 -0
  59. package/dist/forge-v1/types.js.map +1 -0
  60. package/dist/index.d.ts +12 -9
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +49 -59
  63. package/dist/index.js.map +1 -1
  64. package/dist/lifecycle.d.ts +7 -5
  65. package/dist/lifecycle.d.ts.map +1 -1
  66. package/dist/lifecycle.js +44 -110
  67. package/dist/lifecycle.js.map +1 -1
  68. package/dist/loader.d.ts +16 -3
  69. package/dist/loader.d.ts.map +1 -1
  70. package/dist/loader.js +42 -440
  71. package/dist/loader.js.map +1 -1
  72. package/dist/macro-engine.d.ts +9 -14
  73. package/dist/macro-engine.d.ts.map +1 -1
  74. package/dist/macro-engine.js +5 -238
  75. package/dist/macro-engine.js.map +1 -1
  76. package/dist/payload-command.d.ts +6 -6
  77. package/dist/payload-command.d.ts.map +1 -1
  78. package/dist/payload-command.js.map +1 -1
  79. package/dist/payload-state.d.ts +16 -0
  80. package/dist/payload-state.d.ts.map +1 -0
  81. package/dist/payload-state.js +14 -0
  82. package/dist/payload-state.js.map +1 -0
  83. package/dist/preset-command.d.ts +4 -4
  84. package/dist/preset-command.d.ts.map +1 -1
  85. package/dist/preset-command.js +55 -98
  86. package/dist/preset-command.js.map +1 -1
  87. package/dist/preview.d.ts +4 -4
  88. package/dist/preview.d.ts.map +1 -1
  89. package/dist/preview.js +17 -8
  90. package/dist/preview.js.map +1 -1
  91. package/dist/profile-command.d.ts +2 -2
  92. package/dist/profile-command.d.ts.map +1 -1
  93. package/dist/profile-command.js +52 -26
  94. package/dist/profile-command.js.map +1 -1
  95. package/dist/profile-service.d.ts +5 -2
  96. package/dist/profile-service.d.ts.map +1 -1
  97. package/dist/profile-service.js +63 -42
  98. package/dist/profile-service.js.map +1 -1
  99. package/dist/prompt-analysis.d.ts +24 -0
  100. package/dist/prompt-analysis.d.ts.map +1 -0
  101. package/dist/prompt-analysis.js +84 -0
  102. package/dist/prompt-analysis.js.map +1 -0
  103. package/dist/prompt-runtime.d.ts +19 -0
  104. package/dist/prompt-runtime.d.ts.map +1 -0
  105. package/dist/prompt-runtime.js +30 -0
  106. package/dist/prompt-runtime.js.map +1 -0
  107. package/dist/regex.js +6 -12
  108. package/dist/regex.js.map +1 -1
  109. package/dist/render-helpers.d.ts +2 -10
  110. package/dist/render-helpers.d.ts.map +1 -1
  111. package/dist/render-helpers.js +3 -53
  112. package/dist/render-helpers.js.map +1 -1
  113. package/dist/repositories/agent-profile.d.ts +36 -0
  114. package/dist/repositories/agent-profile.d.ts.map +1 -0
  115. package/dist/repositories/agent-profile.js +153 -0
  116. package/dist/repositories/agent-profile.js.map +1 -0
  117. package/dist/repositories/index.d.ts +3 -0
  118. package/dist/repositories/index.d.ts.map +1 -0
  119. package/dist/repositories/index.js +3 -0
  120. package/dist/repositories/index.js.map +1 -0
  121. package/dist/repositories/prompt-stack.d.ts +57 -0
  122. package/dist/repositories/prompt-stack.d.ts.map +1 -0
  123. package/dist/repositories/prompt-stack.js +175 -0
  124. package/dist/repositories/prompt-stack.js.map +1 -0
  125. package/dist/resource-identity.d.ts +33 -0
  126. package/dist/resource-identity.d.ts.map +1 -0
  127. package/dist/resource-identity.js +56 -0
  128. package/dist/resource-identity.js.map +1 -0
  129. package/dist/runtime/profile-runtime.d.ts +2 -2
  130. package/dist/runtime/profile-runtime.d.ts.map +1 -1
  131. package/dist/runtime/profile-runtime.js +18 -10
  132. package/dist/runtime/profile-runtime.js.map +1 -1
  133. package/dist/runtime/prompt-stack-runtime.d.ts +5 -4
  134. package/dist/runtime/prompt-stack-runtime.d.ts.map +1 -1
  135. package/dist/runtime/prompt-stack-runtime.js +47 -52
  136. package/dist/runtime/prompt-stack-runtime.js.map +1 -1
  137. package/dist/runtime/tool-policy-runtime.d.ts +2 -2
  138. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  139. package/dist/runtime/tool-policy-runtime.js +3 -3
  140. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  141. package/dist/session-adapter.d.ts +17 -0
  142. package/dist/session-adapter.d.ts.map +1 -0
  143. package/dist/session-adapter.js +57 -0
  144. package/dist/session-adapter.js.map +1 -0
  145. package/dist/slot-renderers.d.ts +16 -3
  146. package/dist/slot-renderers.d.ts.map +1 -1
  147. package/dist/slot-renderers.js +15 -63
  148. package/dist/slot-renderers.js.map +1 -1
  149. package/dist/stack-migration.d.ts +6 -0
  150. package/dist/stack-migration.d.ts.map +1 -1
  151. package/dist/stack-migration.js +49 -52
  152. package/dist/stack-migration.js.map +1 -1
  153. package/dist/storage.d.ts +10 -0
  154. package/dist/storage.d.ts.map +1 -1
  155. package/dist/storage.js +45 -10
  156. package/dist/storage.js.map +1 -1
  157. package/dist/subagent/fingerprints.d.ts +24 -0
  158. package/dist/subagent/fingerprints.d.ts.map +1 -0
  159. package/dist/subagent/fingerprints.js +81 -0
  160. package/dist/subagent/fingerprints.js.map +1 -0
  161. package/dist/subagent/host-port.d.ts +296 -0
  162. package/dist/subagent/host-port.d.ts.map +1 -0
  163. package/dist/subagent/host-port.js +560 -0
  164. package/dist/subagent/host-port.js.map +1 -0
  165. package/dist/subagent/index.d.ts +10 -10
  166. package/dist/subagent/index.d.ts.map +1 -1
  167. package/dist/subagent/index.js +9 -10
  168. package/dist/subagent/index.js.map +1 -1
  169. package/dist/subagent-host.d.ts +99 -18
  170. package/dist/subagent-host.d.ts.map +1 -1
  171. package/dist/subagent-host.js +185 -162
  172. package/dist/subagent-host.js.map +1 -1
  173. package/dist/template-render.d.ts +18 -0
  174. package/dist/template-render.d.ts.map +1 -0
  175. package/dist/template-render.js +232 -0
  176. package/dist/template-render.js.map +1 -0
  177. package/dist/types.d.ts +43 -27
  178. package/dist/types.d.ts.map +1 -1
  179. package/dist/types.js.map +1 -1
  180. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  181. package/dist/web-editor/client-script.generated.js +1 -1
  182. package/dist/web-editor/client-script.generated.js.map +1 -1
  183. package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
  184. package/dist/web-editor/client-styles.generated.js +1 -1
  185. package/dist/web-editor/client-styles.generated.js.map +1 -1
  186. package/dist/web-editor/server.d.ts.map +1 -1
  187. package/dist/web-editor/server.js +32 -72
  188. package/dist/web-editor/server.js.map +1 -1
  189. package/dist/web-editor/styles.d.ts.map +1 -1
  190. package/dist/web-editor/styles.js +13 -0
  191. package/dist/web-editor/styles.js.map +1 -1
  192. package/dist/web-editor/types.d.ts +10 -37
  193. package/dist/web-editor/types.d.ts.map +1 -1
  194. package/dist/web-host.d.ts +4 -2
  195. package/dist/web-host.d.ts.map +1 -1
  196. package/dist/web-host.js +110 -138
  197. package/dist/web-host.js.map +1 -1
  198. package/dist/workspace.d.ts +74 -0
  199. package/dist/workspace.d.ts.map +1 -0
  200. package/dist/workspace.js +351 -0
  201. package/dist/workspace.js.map +1 -0
  202. package/docs/README.md +6 -4
  203. package/docs/concepts/agent-profiles.md +2 -2
  204. package/docs/concepts/prompt-stacks.md +12 -7
  205. package/docs/design/README.md +21 -3
  206. package/docs/design/architecture-0.5.md +211 -0
  207. package/docs/design/archive/0.5-full-proposal/0.5-consumer-audit.md +62 -0
  208. package/docs/design/archive/0.5-full-proposal/0.5-inventory.md +208 -0
  209. package/docs/design/archive/0.5-full-proposal/0.5-phase0-decision-drafts.md +237 -0
  210. package/docs/design/archive/0.5-full-proposal/README.md +12 -0
  211. package/docs/design/archive/0.5-full-proposal/architecture-0.5.md +423 -0
  212. package/docs/design/archive/0.5-full-proposal/host-discovery-spike.md +103 -0
  213. package/docs/design/archive/0.5-full-proposal/template-language-spike.md +156 -0
  214. package/docs/design/context-diff-plan.md +72 -0
  215. package/docs/design/decision-template.md +33 -0
  216. package/docs/design/roadmap-0.4-archive.md +1 -1
  217. package/docs/design/subagents/interface-design.md +1 -1
  218. package/docs/development/architecture-rules.md +148 -0
  219. package/docs/development/roadmap.md +39 -13
  220. package/docs/development/scoped-global-profiles-stacks.md +325 -0
  221. package/docs/development/setup.md +6 -4
  222. package/docs/getting-started.md +9 -6
  223. package/docs/guides/custom-macros-and-slots.md +8 -7
  224. package/docs/guides/debugging.md +1 -1
  225. package/docs/guides/delegation.md +25 -21
  226. package/docs/guides/migrating-to-0.5.md +107 -0
  227. package/docs/guides/use-cases.md +7 -11
  228. package/docs/guides/web-editor.md +7 -11
  229. package/docs/reference/commands.md +4 -3
  230. package/docs/reference/configuration.md +18 -17
  231. package/docs/reference/features.md +34 -79
  232. package/docs/reference/macros-and-slots.md +70 -49
  233. package/docs/reference/public-api.md +64 -17
  234. package/docs/reference/stack-schema.md +14 -9
  235. package/docs/reference/subagent-host-port.md +49 -0
  236. package/docs/zh-CN/README.md +3 -3
  237. package/docs/zh-CN/concepts/agent-profiles.md +4 -2
  238. package/docs/zh-CN/concepts/prompt-stacks.md +9 -7
  239. package/docs/zh-CN/getting-started.md +10 -7
  240. package/docs/zh-CN/guides/delegation.md +11 -13
  241. package/docs/zh-CN/guides/migrating-to-0.5.md +92 -0
  242. package/docs/zh-CN/guides/web-editor.md +7 -7
  243. package/docs/zh-CN/reference/commands.md +6 -3
  244. package/examples/custom-system-status-extension/README.md +3 -3
  245. package/examples/custom-system-status-extension/index.ts +2 -1
  246. package/examples/custom-system-status-extension/prompt-stack.json +4 -3
  247. package/examples/default-prompt-stack.json +9 -4
  248. package/examples/image-reader-prompt-stack.json +16 -26
  249. package/examples/reviewer-prompt-stack.json +13 -24
  250. package/package.json +101 -120
  251. package/dist/runtime/subagent-runtime.d.ts +0 -45
  252. package/dist/runtime/subagent-runtime.d.ts.map +0 -1
  253. package/dist/runtime/subagent-runtime.js +0 -335
  254. package/dist/runtime/subagent-runtime.js.map +0 -1
  255. package/dist/runtime-state.d.ts +0 -30
  256. package/dist/runtime-state.d.ts.map +0 -1
  257. package/dist/runtime-state.js +0 -17
  258. package/dist/runtime-state.js.map +0 -1
  259. package/dist/sillytavern-importer/items.d.ts +0 -3
  260. package/dist/sillytavern-importer/items.d.ts.map +0 -1
  261. package/dist/sillytavern-importer/items.js +0 -88
  262. package/dist/sillytavern-importer/items.js.map +0 -1
  263. package/dist/sillytavern-importer/macros.d.ts +0 -15
  264. package/dist/sillytavern-importer/macros.d.ts.map +0 -1
  265. package/dist/sillytavern-importer/macros.js +0 -141
  266. package/dist/sillytavern-importer/macros.js.map +0 -1
  267. package/dist/sillytavern-importer/prompt-order.d.ts +0 -6
  268. package/dist/sillytavern-importer/prompt-order.d.ts.map +0 -1
  269. package/dist/sillytavern-importer/prompt-order.js +0 -38
  270. package/dist/sillytavern-importer/prompt-order.js.map +0 -1
  271. package/dist/sillytavern-importer/regex.d.ts +0 -3
  272. package/dist/sillytavern-importer/regex.d.ts.map +0 -1
  273. package/dist/sillytavern-importer/regex.js +0 -275
  274. package/dist/sillytavern-importer/regex.js.map +0 -1
  275. package/dist/sillytavern-importer/report.d.ts +0 -21
  276. package/dist/sillytavern-importer/report.d.ts.map +0 -1
  277. package/dist/sillytavern-importer/report.js +0 -166
  278. package/dist/sillytavern-importer/report.js.map +0 -1
  279. package/dist/sillytavern-importer/types.d.ts +0 -106
  280. package/dist/sillytavern-importer/types.d.ts.map +0 -1
  281. package/dist/sillytavern-importer/types.js +0 -2
  282. package/dist/sillytavern-importer/types.js.map +0 -1
  283. package/dist/sillytavern-importer.d.ts +0 -5
  284. package/dist/sillytavern-importer.d.ts.map +0 -1
  285. package/dist/sillytavern-importer.js +0 -117
  286. package/dist/sillytavern-importer.js.map +0 -1
  287. package/dist/subagent/canonical.d.ts +0 -22
  288. package/dist/subagent/canonical.d.ts.map +0 -1
  289. package/dist/subagent/canonical.js +0 -24
  290. package/dist/subagent/canonical.js.map +0 -1
  291. package/dist/subagent/context.d.ts +0 -8
  292. package/dist/subagent/context.d.ts.map +0 -1
  293. package/dist/subagent/context.js +0 -125
  294. package/dist/subagent/context.js.map +0 -1
  295. package/dist/subagent/contract.d.ts +0 -10
  296. package/dist/subagent/contract.d.ts.map +0 -1
  297. package/dist/subagent/contract.js +0 -10
  298. package/dist/subagent/contract.js.map +0 -1
  299. package/dist/subagent/plan.d.ts +0 -18
  300. package/dist/subagent/plan.d.ts.map +0 -1
  301. package/dist/subagent/plan.js +0 -157
  302. package/dist/subagent/plan.js.map +0 -1
  303. package/dist/subagent/preflight.d.ts +0 -4
  304. package/dist/subagent/preflight.d.ts.map +0 -1
  305. package/dist/subagent/preflight.js +0 -108
  306. package/dist/subagent/preflight.js.map +0 -1
  307. package/dist/subagent/request.d.ts +0 -4
  308. package/dist/subagent/request.d.ts.map +0 -1
  309. package/dist/subagent/request.js +0 -122
  310. package/dist/subagent/request.js.map +0 -1
  311. package/dist/subagent/response.d.ts +0 -8
  312. package/dist/subagent/response.d.ts.map +0 -1
  313. package/dist/subagent/response.js +0 -155
  314. package/dist/subagent/response.js.map +0 -1
  315. package/dist/subagent/tools.d.ts +0 -4
  316. package/dist/subagent/tools.d.ts.map +0 -1
  317. package/dist/subagent/tools.js +0 -42
  318. package/dist/subagent/tools.js.map +0 -1
  319. package/dist/subagent/types.d.ts +0 -268
  320. package/dist/subagent/types.d.ts.map +0 -1
  321. package/dist/subagent/types.js +0 -3
  322. package/dist/subagent/types.js.map +0 -1
  323. package/dist/subagent/validation.d.ts +0 -35
  324. package/dist/subagent/validation.d.ts.map +0 -1
  325. package/dist/subagent/validation.js +0 -314
  326. package/dist/subagent/validation.js.map +0 -1
  327. package/dist/subagent-command.d.ts +0 -4
  328. package/dist/subagent-command.d.ts.map +0 -1
  329. package/dist/subagent-command.js +0 -246
  330. package/dist/subagent-command.js.map +0 -1
  331. package/dist/subagent-profile-tool.d.ts +0 -49
  332. package/dist/subagent-profile-tool.d.ts.map +0 -1
  333. package/dist/subagent-profile-tool.js +0 -124
  334. package/dist/subagent-profile-tool.js.map +0 -1
  335. package/dist/subagent-tool.d.ts +0 -53
  336. package/dist/subagent-tool.d.ts.map +0 -1
  337. package/dist/subagent-tool.js +0 -456
  338. package/dist/subagent-tool.js.map +0 -1
  339. package/docs/guides/sillytavern-import.md +0 -47
  340. package/docs/reference/subagent-adapter.md +0 -204
  341. package/examples/sillytavern-dm-writer-prompt-stack.json +0 -190
@@ -1,335 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { createExecutionRuntime, error, } from "@zihanw/pi-subagent-runtime";
3
- import { PI_READ_ONLY_TOOL_CATALOG, PiSubprocessBackend, } from "@zihanw/pi-subagent-runtime/backends/subprocess";
4
- import { PiRpcBackend, } from "@zihanw/pi-subagent-runtime/backends/rpc";
5
- import { MAX_SUBAGENT_TIMEOUT_MS, MIN_SUBAGENT_TIMEOUT_MS, isValidSubagentTimeoutMs, loadForgeSubagentSettings, resolveSubagentProfilePolicy, } from "../forge-config.js";
6
- import { SUBAGENT_CONTRACT_VERSION, createAgentExecutionPlan, hasSubagentErrors, negotiateSubagentTools, } from "../subagent/contract.js";
7
- import { prepareSubagentHostPlan, resolveSubagentHostProfile } from "../subagent-host.js";
8
- export function createForgeSubagentRuntime(state, options = {}) {
9
- let generation;
10
- const prepared = new Map();
11
- const reports = new Map();
12
- // Backend IDs are fixed at construction; keep them available without an
13
- // extension context for command completions and settings validation.
14
- const backendIds = ["pi-subprocess-readonly", "pi-rpc-readonly"];
15
- function ensure(ctx) {
16
- if (generation && generation.modelRegistry === ctx.modelRegistry && generation.cwd === ctx.cwd)
17
- return generation;
18
- if (generation) {
19
- void generation.runtime.dispose();
20
- for (const backend of generation.backends.values())
21
- void backend.dispose();
22
- }
23
- const runtime = createExecutionRuntime();
24
- const subprocess = new PiSubprocessBackend({
25
- modelRegistry: ctx.modelRegistry,
26
- cwd: ctx.cwd,
27
- ...options.subprocess,
28
- });
29
- const rpc = new PiRpcBackend({
30
- modelRegistry: ctx.modelRegistry,
31
- cwd: ctx.cwd,
32
- ...options.rpc,
33
- });
34
- const backends = new Map([
35
- [subprocess.descriptor.id, subprocess],
36
- [rpc.descriptor.id, rpc],
37
- ]);
38
- for (const backend of backends.values())
39
- runtime.registerBackend(backend);
40
- generation = { runtime, backends, modelRegistry: ctx.modelRegistry, cwd: ctx.cwd };
41
- return generation;
42
- }
43
- function descriptors(ctx) {
44
- return ensure(ctx).runtime.listBackends().map(descriptorForHost);
45
- }
46
- async function prepare(profileId, task, ctx, run) {
47
- const diagnostics = [];
48
- if (!ctx.isProjectTrusted())
49
- return { ok: false, diagnostics: [error("host.trust", "Project is not trusted; subagent profiles remain disabled.")] };
50
- const matches = state.profiles.filter((candidate) => candidate.profile.id === profileId);
51
- if (matches.length !== 1) {
52
- return { ok: false, diagnostics: [error(matches.length === 0 ? "host.profile-missing" : "host.profile-ambiguous", matches.length === 0 ? `Unknown agent profile: ${profileId}` : `Agent profile id is ambiguous: ${profileId}`)] };
53
- }
54
- const policy = resolveSubagentProfilePolicy(loadForgeSubagentSettings(ctx), profileId);
55
- if (!policy.enabled) {
56
- return {
57
- ok: false,
58
- diagnostics: [error("host.profile-disabled", `Agent profile "${profileId}" is not enabled for subagent delegation in subagents.profiles.`)],
59
- };
60
- }
61
- const timeoutMs = run?.timeoutMs ?? policy.timeout.milliseconds;
62
- if (!isValidSubagentTimeoutMs(timeoutMs)) {
63
- return {
64
- ok: false,
65
- diagnostics: [error("host.timeout", `Subagent timeout must be an integer from ${MIN_SUBAGENT_TIMEOUT_MS} to ${MAX_SUBAGENT_TIMEOUT_MS} milliseconds.`)],
66
- };
67
- }
68
- const resolution = resolveSubagentHostProfile(matches[0], { promptStacks: state.stacks });
69
- diagnostics.push(...resolution.diagnostics);
70
- if (!resolution.snapshot || hasSubagentErrors(diagnostics))
71
- return { ok: false, diagnostics };
72
- const snapshot = resolution.snapshot;
73
- const request = {
74
- schemaVersion: SUBAGENT_CONTRACT_VERSION,
75
- requestId: `request:${randomUUID()}`,
76
- profileId,
77
- expectedProfileFingerprint: snapshot.profileFingerprint,
78
- input: { text: task },
79
- access: {
80
- level: "read-only",
81
- workspaces: [{ handle: "project", mode: "read-only" }],
82
- workingDirectory: { workspaceHandle: "project", path: "." },
83
- network: "allow",
84
- executionBoundary: "shared-user",
85
- },
86
- limits: { timeoutMs: { value: timeoutMs, enforcement: "best-effort" } },
87
- resultProjection: { maxChars: 12_000 },
88
- parent: { sessionId: ctx.sessionManager.getSessionId(), depth: 0, maxDepth: 1 },
89
- // The command layer obtains explicit user consent before execution. A dry plan
90
- // never transports data but prepares the exact request that would be executable.
91
- remoteEgressConsent: true,
92
- };
93
- const current = ensure(ctx);
94
- const backendId = run?.backendId ?? options.backendId ?? policy.backend.id;
95
- const backend = current.backends.get(backendId);
96
- if (!backend)
97
- return { ok: false, diagnostics: [error("host.backend", `Backend is not registered: ${backendId}`)] };
98
- const intent = executionIntentFor(request, snapshot);
99
- let hostPreparation;
100
- let handle;
101
- try {
102
- handle = await current.runtime.prepare({
103
- backendId,
104
- intent,
105
- ...(ctx.signal ? { signal: ctx.signal } : {}),
106
- compile: async (promptRuntime, acceptedPreflight) => {
107
- const output = prepareSubagentHostPlan({
108
- request,
109
- snapshot,
110
- preflight: preflightForHost(acceptedPreflight),
111
- runtime: promptRuntime,
112
- });
113
- hostPreparation = output;
114
- return {
115
- systemPrompt: output.systemPrompt,
116
- messages: output.messages.map(portableMessage),
117
- };
118
- },
119
- });
120
- }
121
- catch (prepareError) {
122
- diagnostics.push(error("host.preparation", prepareError instanceof Error ? prepareError.message : String(prepareError)));
123
- return { ok: false, diagnostics };
124
- }
125
- const sealed = handle.snapshot();
126
- diagnostics.push(...sealed.preflight.diagnostics);
127
- if (!hostPreparation) {
128
- await handle.discard();
129
- diagnostics.push(error("host.preparation", "Host compilation did not complete."));
130
- return { ok: false, diagnostics };
131
- }
132
- diagnostics.push(...hostPreparation.diagnostics, ...hostPreparation.toolNegotiation.diagnostics);
133
- const planned = createAgentExecutionPlan({
134
- runId: handle.id,
135
- request,
136
- snapshot,
137
- preflight: preflightForHost(sealed.preflight),
138
- preparation: hostPreparation,
139
- runtime: sealed.promptRuntime,
140
- conversationFingerprint: sealed.conversationFingerprint,
141
- executionFingerprint: sealed.executionFingerprint,
142
- });
143
- diagnostics.push(...planned.diagnostics);
144
- if (!planned.plan || hasSubagentErrors(diagnostics)) {
145
- await handle.discard();
146
- return { ok: false, diagnostics };
147
- }
148
- // The runtime owns the conversation and execution fingerprints; the plan
149
- // constructed above carries the sealed values that approval displays and
150
- // execution binds to. The host never recomputes them.
151
- prepared.set(handle.id, { generation: current, handle, backend });
152
- return { ok: true, prepared: { request, preflight: planned.plan.preflight, plan: planned.plan, diagnostics } };
153
- }
154
- async function discard(preparedRun) {
155
- const record = prepared.get(preparedRun.plan.runId);
156
- if (!record)
157
- return;
158
- prepared.delete(preparedRun.plan.runId);
159
- await record.handle.discard();
160
- }
161
- async function execute(preparedRun, ctx, signal, onUpdate) {
162
- const record = prepared.get(preparedRun.plan.runId);
163
- if (!record)
164
- throw new Error("Subagent prepared run is unknown to this runtime generation.");
165
- const current = ensure(ctx);
166
- if (record.generation !== current)
167
- throw new Error("Subagent prepared run belongs to a previous runtime generation.");
168
- prepared.delete(preparedRun.plan.runId);
169
- const run = current.runtime.execute(record.handle);
170
- reports.set(run.id, { backend: record.backend, preparedRunId: record.handle.id });
171
- if (onUpdate) {
172
- run.subscribe((event) => {
173
- onUpdate({
174
- phase: event.phase,
175
- message: event.message,
176
- ...(event.details === undefined ? {} : { details: event.details }),
177
- });
178
- });
179
- }
180
- let cancelOnAbort;
181
- if (signal) {
182
- cancelOnAbort = () => { void run.cancel(cancelReason(signal)); };
183
- if (signal.aborted)
184
- cancelOnAbort();
185
- else
186
- signal.addEventListener("abort", cancelOnAbort, { once: true });
187
- }
188
- try {
189
- const result = await run.result;
190
- return responseForHost(preparedRun, result);
191
- }
192
- finally {
193
- if (signal && cancelOnAbort) {
194
- signal.removeEventListener("abort", cancelOnAbort);
195
- }
196
- }
197
- }
198
- function takeReport(runId) {
199
- const location = reports.get(runId);
200
- if (!location)
201
- return undefined;
202
- reports.delete(runId);
203
- // Both process backends sanitize retained reports at the source.
204
- return location.backend.takeReport(location.preparedRunId);
205
- }
206
- async function dispose() {
207
- prepared.clear();
208
- reports.clear();
209
- if (!generation)
210
- return;
211
- await generation.runtime.dispose();
212
- await Promise.all([...generation.backends.values()].map((backend) => backend.dispose()));
213
- generation = undefined;
214
- }
215
- return { backendIds: () => [...backendIds], descriptors, prepare, discard, execute, takeReport, dispose };
216
- }
217
- function executionIntentFor(request, snapshot) {
218
- const negotiation = negotiateSubagentTools(forgeToolCatalog(), snapshot.promptStack?.tools, request.access);
219
- return {
220
- model: structuredClone(snapshot.profile.model),
221
- thinkingLevel: snapshot.profile.thinkingLevel,
222
- requestedTools: negotiation.effectiveToolNames,
223
- access: {
224
- level: request.access.level,
225
- executionBoundary: "shared-user",
226
- workspaces: structuredClone(request.access.workspaces),
227
- ...(request.access.workingDirectory ? { workingDirectory: structuredClone(request.access.workingDirectory) } : {}),
228
- network: request.access.network,
229
- ...(request.access.allowProcess === undefined ? {} : { allowProcess: request.access.allowProcess }),
230
- },
231
- limits: structuredClone(request.limits),
232
- provenance: {
233
- profile: snapshot.profileFingerprint,
234
- profileId: snapshot.profile.id,
235
- ...(snapshot.promptStackFingerprint ? { promptStack: snapshot.promptStackFingerprint } : {}),
236
- },
237
- };
238
- }
239
- function forgeToolCatalog() {
240
- return PI_READ_ONLY_TOOL_CATALOG.map((tool) => ({
241
- ...structuredClone(tool),
242
- effects: [...tool.effects],
243
- }));
244
- }
245
- function preflightForHost(preflight) {
246
- return {
247
- status: "accepted",
248
- preflightId: preflight.preflightId,
249
- backend: descriptorForHost(preflight.backend),
250
- model: structuredClone(preflight.model),
251
- thinkingLevel: (preflight.thinkingLevel ?? "medium"),
252
- toolCatalog: structuredClone(preflight.toolCatalog),
253
- access: structuredClone(preflight.access),
254
- limits: structuredClone(preflight.limits),
255
- ...(preflight.promptRuntime ? { promptRuntime: preflight.promptRuntime } : {}),
256
- diagnostics: [...preflight.diagnostics].map((diagnostic) => ({ ...diagnostic })),
257
- };
258
- }
259
- function descriptorForHost(descriptor) {
260
- return {
261
- id: descriptor.id,
262
- version: descriptor.version,
263
- capabilities: {
264
- access: structuredClone(descriptor.capabilities.access),
265
- executionBoundaries: [...descriptor.capabilities.executionBoundaries],
266
- limits: structuredClone(descriptor.capabilities.limits),
267
- cancellation: descriptor.capabilities.cancellation,
268
- mediaMimeTypes: [...descriptor.capabilities.mediaMimeTypes],
269
- traceInspection: false,
270
- artifactRetention: false,
271
- remoteTransport: descriptor.capabilities.remoteTransport,
272
- promptRuntimeFidelity: descriptor.capabilities.promptRuntimeFidelity,
273
- },
274
- };
275
- }
276
- function portableMessage(message) {
277
- return { role: message.role, content: structuredClone(message.content) };
278
- }
279
- function responseForHost(prepared, result) {
280
- const common = {
281
- schemaVersion: SUBAGENT_CONTRACT_VERSION,
282
- requestId: prepared.request.requestId,
283
- runId: result.runId,
284
- backendId: result.backendId,
285
- profileFingerprint: prepared.plan.profile.profileFingerprint,
286
- executionFingerprint: result.executionFingerprint,
287
- model: structuredClone(result.model),
288
- effectiveToolIds: [...result.effectiveToolIds],
289
- enforcement: {
290
- access: structuredClone(result.enforcement.access),
291
- limits: structuredClone(result.enforcement.limits),
292
- },
293
- durationMs: result.durationMs,
294
- artifacts: [],
295
- ...(result.usage ? { usage: structuredClone(result.usage) } : {}),
296
- };
297
- const partialOutput = result.output ? { text: result.output.text, partial: true } : undefined;
298
- switch (result.status) {
299
- case "completed":
300
- return { ...common, status: "completed", output: { text: result.output.text, partial: false } };
301
- case "failed":
302
- return {
303
- ...common,
304
- status: "failed",
305
- error: structuredClone(result.error),
306
- ...(partialOutput ? { output: partialOutput } : {}),
307
- };
308
- case "cancelled":
309
- return {
310
- ...common,
311
- status: "cancelled",
312
- reason: result.reason,
313
- ...(partialOutput ? { output: partialOutput } : {}),
314
- };
315
- case "timed-out":
316
- return {
317
- ...common,
318
- status: "timed-out",
319
- reason: result.reason,
320
- enforcedTimeoutMs: result.enforcedTimeoutMs,
321
- ...(partialOutput ? { output: partialOutput } : {}),
322
- };
323
- case "limit-reached":
324
- return {
325
- ...common,
326
- status: "limit-reached",
327
- reachedLimit: result.reachedLimit,
328
- ...(partialOutput ? { output: partialOutput } : {}),
329
- };
330
- }
331
- }
332
- function cancelReason(signal) {
333
- return typeof signal.reason === "string" && signal.reason ? signal.reason : "Subagent execution cancelled.";
334
- }
335
- //# sourceMappingURL=subagent-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagent-runtime.js","sourceRoot":"","sources":["../../src/runtime/subagent-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { BuildSystemPromptOptions } from "@earendil-works/pi-coding-agent";
2
- import type { AgentProfileProvenance, LoadedAgentProfile } from "./agent-profile.ts";
3
- import type { WebEditorPayloadCapture } from "./web-editor/index.ts";
4
- import type { LoadedPromptStack, PromptStackDiagnostic, PromptVariableStore, PromptVariableValue } from "./types.ts";
5
- export declare const STATE_ENTRY_TYPE = "pi-forge-prompt-stack-state";
6
- export declare const VARIABLE_ENTRY_TYPE = "pi-forge-variable-state";
7
- export declare const PROFILE_ENTRY_TYPE = "pi-forge-agent-profile-state";
8
- export type PayloadDisplayTarget = "editor" | "web";
9
- export interface PiForgeRuntimeState {
10
- stacks: LoadedPromptStack[];
11
- profiles: LoadedAgentProfile[];
12
- active?: LoadedPromptStack;
13
- lastAppliedProfile?: AgentProfileProvenance;
14
- currentSystemPromptOptions?: BuildSystemPromptOptions;
15
- currentLatestUserMessage?: string;
16
- currentVariableStore?: PromptVariableStore;
17
- contextRewritePending: boolean;
18
- sessionVariables: Record<string, PromptVariableValue>;
19
- lastPersistedActiveId?: string;
20
- latestCompileDiagnostics: PromptStackDiagnostic[];
21
- forgeExtensionDiagnostics: PromptStackDiagnostic[];
22
- forgeExtensionPaths: string[];
23
- interceptNextProviderPayload: boolean;
24
- interceptPayloadSavePath?: string;
25
- interceptPayloadDisplayTarget: PayloadDisplayTarget;
26
- payloadCaptureArmedAt?: string;
27
- latestProviderPayloadCapture?: WebEditorPayloadCapture;
28
- }
29
- export declare function createRuntimeState(): PiForgeRuntimeState;
30
- //# sourceMappingURL=runtime-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErH,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAC7D,eAAO,MAAM,kBAAkB,iCAAiC,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,0BAA0B,CAAC,EAAE,wBAAwB,CAAC;IACtD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAC3C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,qBAAqB,EAAE,CAAC;IAClD,yBAAyB,EAAE,qBAAqB,EAAE,CAAC;IACnD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,4BAA4B,EAAE,OAAO,CAAC;IACtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,oBAAoB,CAAC;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4BAA4B,CAAC,EAAE,uBAAuB,CAAC;CACvD;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,CAYxD"}
@@ -1,17 +0,0 @@
1
- export const STATE_ENTRY_TYPE = "pi-forge-prompt-stack-state";
2
- export const VARIABLE_ENTRY_TYPE = "pi-forge-variable-state";
3
- export const PROFILE_ENTRY_TYPE = "pi-forge-agent-profile-state";
4
- export function createRuntimeState() {
5
- return {
6
- stacks: [],
7
- profiles: [],
8
- contextRewritePending: false,
9
- sessionVariables: {},
10
- latestCompileDiagnostics: [],
11
- forgeExtensionDiagnostics: [],
12
- forgeExtensionPaths: [],
13
- interceptNextProviderPayload: false,
14
- interceptPayloadDisplayTarget: "editor",
15
- };
16
- }
17
- //# sourceMappingURL=runtime-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;AAyBjE,MAAM,UAAU,kBAAkB;IACjC,OAAO;QACN,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,qBAAqB,EAAE,KAAK;QAC5B,gBAAgB,EAAE,EAAE;QACpB,wBAAwB,EAAE,EAAE;QAC5B,yBAAyB,EAAE,EAAE;QAC7B,mBAAmB,EAAE,EAAE;QACvB,4BAA4B,EAAE,KAAK;QACnC,6BAA6B,EAAE,QAAQ;KACvC,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { PromptConversionResult, StConversionItem } from "./types.ts";
2
- export declare function convertPromptItems(conversionItems: StConversionItem[]): PromptConversionResult;
3
- //# sourceMappingURL=items.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/sillytavern-importer/items.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAa3E,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,CAqE9F"}
@@ -1,88 +0,0 @@
1
- import { COMMENT_MACRO_RE, TRIM_MACRO_RE } from "./macros.js";
2
- const MARKER_CHAT_HISTORY = "chatHistory";
3
- const MARKER_SKIP = new Set([
4
- "worldInfoBefore",
5
- "worldInfoAfter",
6
- "charDescription",
7
- "charPersonality",
8
- "personaDescription",
9
- "scenario",
10
- "dialogueExamples",
11
- ]);
12
- export function convertPromptItems(conversionItems) {
13
- let nextId = 1;
14
- const items = [];
15
- let usesLastUserMessage = false;
16
- const disabledCount = { marker: 0, empty: 0, orderDisable: 0 };
17
- for (const { def, orderEnabled, orderIndex } of conversionItems) {
18
- const id = String(nextId++);
19
- if (def.marker) {
20
- if (def.identifier === MARKER_CHAT_HISTORY) {
21
- items.push({
22
- kind: "slot",
23
- id,
24
- name: def.name || "Chat History",
25
- enabled: orderEnabled,
26
- slot: "chat-history",
27
- source: { previousId: def.identifier, name: def.name },
28
- });
29
- }
30
- else if (MARKER_SKIP.has(def.identifier)) {
31
- disabledCount.marker++;
32
- }
33
- continue;
34
- }
35
- let content = def.content ?? "";
36
- if (!content.trim()) {
37
- disabledCount.empty++;
38
- continue;
39
- }
40
- content = content.replace(COMMENT_MACRO_RE, "");
41
- content = content.replace(TRIM_MACRO_RE, "");
42
- if (!content.trim()) {
43
- disabledCount.empty++;
44
- continue;
45
- }
46
- if (/\{\{\s*lastUserMessage\b/i.test(content)) {
47
- usesLastUserMessage = true;
48
- }
49
- const role = normalizeRole(def.role);
50
- if (!role) {
51
- disabledCount.empty++;
52
- continue;
53
- }
54
- if (!orderEnabled) {
55
- disabledCount.orderDisable++;
56
- }
57
- items.push({
58
- kind: "block",
59
- id,
60
- name: def.name,
61
- enabled: orderEnabled,
62
- role,
63
- content: cleanContent(content),
64
- source: {
65
- previousId: def.identifier,
66
- previousName: def.name,
67
- orderIndex,
68
- },
69
- });
70
- }
71
- return { items, usesLastUserMessage, disabledCount };
72
- }
73
- function cleanContent(content) {
74
- return content.replace(/\n{3,}/g, "\n\n").trim();
75
- }
76
- function normalizeRole(role) {
77
- if (!role)
78
- return undefined;
79
- const lower = role.trim().toLowerCase();
80
- if (lower === "system")
81
- return "system";
82
- if (lower === "user")
83
- return "user";
84
- if (lower === "assistant")
85
- return "assistant";
86
- return undefined;
87
- }
88
- //# sourceMappingURL=items.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/sillytavern-importer/items.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { StConversionItem } from "./types.ts";
2
- export declare const NATIVE_MACROS: Set<string>;
3
- export declare const MACRO_NEEDS_MIGRATION: Record<string, string>;
4
- export declare const NATIVE_MACRO_NOTES: Record<string, string>;
5
- export declare const COMMENT_MACRO_RE: RegExp;
6
- export declare const TRIM_MACRO_RE: RegExp;
7
- export interface MacroDetection {
8
- detected: Set<string>;
9
- commentsStripped: number;
10
- trimStripped: number;
11
- migrationNeeded: Record<string, number>;
12
- }
13
- export declare function detectMacros(conversionItems: StConversionItem[]): MacroDetection;
14
- export declare function displayMacroName(name: string): string;
15
- //# sourceMappingURL=macros.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"macros.d.ts","sourceRoot":"","sources":["../../src/sillytavern-importer/macros.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,aAAa,aA6BxB,CAAC;AAuBH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+BxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuBrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAA6B,CAAC;AAC3D,eAAO,MAAM,aAAa,QAAyB,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,wBAAgB,YAAY,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAgChF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD"}