@zihanw/pi-forge 0.3.2 → 0.4.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 (231) hide show
  1. package/CHANGELOG.md +196 -0
  2. package/PUBLIC_API.md +5 -0
  3. package/README.md +93 -478
  4. package/README.zh-CN.md +88 -461
  5. package/SUBAGENT_ADAPTER_CONTRACT.md +5 -0
  6. package/dist/agent-profile.d.ts +71 -0
  7. package/dist/agent-profile.d.ts.map +1 -0
  8. package/dist/agent-profile.js +303 -0
  9. package/dist/agent-profile.js.map +1 -0
  10. package/dist/forge-config.d.ts +88 -0
  11. package/dist/forge-config.d.ts.map +1 -0
  12. package/dist/forge-config.js +290 -0
  13. package/dist/forge-config.js.map +1 -0
  14. package/dist/forge-extensions.d.ts.map +1 -1
  15. package/dist/forge-extensions.js +19 -3
  16. package/dist/forge-extensions.js.map +1 -1
  17. package/dist/index.d.ts +4 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +97 -358
  20. package/dist/index.js.map +1 -1
  21. package/dist/lifecycle.d.ts +11 -3
  22. package/dist/lifecycle.d.ts.map +1 -1
  23. package/dist/lifecycle.js +90 -4
  24. package/dist/lifecycle.js.map +1 -1
  25. package/dist/loader.d.ts.map +1 -1
  26. package/dist/loader.js +116 -5
  27. package/dist/loader.js.map +1 -1
  28. package/dist/payload-capture.d.ts.map +1 -1
  29. package/dist/payload-capture.js +27 -0
  30. package/dist/payload-capture.js.map +1 -1
  31. package/dist/payload-command.d.ts +3 -3
  32. package/dist/payload-command.d.ts.map +1 -1
  33. package/dist/payload-command.js.map +1 -1
  34. package/dist/preview.d.ts +2 -2
  35. package/dist/preview.d.ts.map +1 -1
  36. package/dist/preview.js +2 -3
  37. package/dist/preview.js.map +1 -1
  38. package/dist/profile-command.d.ts +12 -0
  39. package/dist/profile-command.d.ts.map +1 -0
  40. package/dist/profile-command.js +291 -0
  41. package/dist/profile-command.js.map +1 -0
  42. package/dist/profile-service.d.ts +103 -0
  43. package/dist/profile-service.d.ts.map +1 -0
  44. package/dist/profile-service.js +220 -0
  45. package/dist/profile-service.js.map +1 -0
  46. package/dist/runtime/profile-runtime.d.ts +13 -0
  47. package/dist/runtime/profile-runtime.d.ts.map +1 -0
  48. package/dist/runtime/profile-runtime.js +47 -0
  49. package/dist/runtime/profile-runtime.js.map +1 -0
  50. package/dist/runtime/prompt-stack-runtime.d.ts +22 -0
  51. package/dist/runtime/prompt-stack-runtime.d.ts.map +1 -0
  52. package/dist/runtime/prompt-stack-runtime.js +104 -0
  53. package/dist/runtime/prompt-stack-runtime.js.map +1 -0
  54. package/dist/runtime/subagent-runtime.d.ts +45 -0
  55. package/dist/runtime/subagent-runtime.d.ts.map +1 -0
  56. package/dist/runtime/subagent-runtime.js +335 -0
  57. package/dist/runtime/subagent-runtime.js.map +1 -0
  58. package/dist/runtime/tool-policy-runtime.d.ts +15 -0
  59. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -0
  60. package/dist/runtime/tool-policy-runtime.js +170 -0
  61. package/dist/runtime/tool-policy-runtime.js.map +1 -0
  62. package/dist/runtime/web-editor-runtime.d.ts +9 -0
  63. package/dist/runtime/web-editor-runtime.d.ts.map +1 -0
  64. package/dist/runtime/web-editor-runtime.js +131 -0
  65. package/dist/runtime/web-editor-runtime.js.map +1 -0
  66. package/dist/runtime-state.d.ts +4 -0
  67. package/dist/runtime-state.d.ts.map +1 -1
  68. package/dist/runtime-state.js +2 -0
  69. package/dist/runtime-state.js.map +1 -1
  70. package/dist/storage.d.ts +4 -0
  71. package/dist/storage.d.ts.map +1 -1
  72. package/dist/storage.js +24 -1
  73. package/dist/storage.js.map +1 -1
  74. package/dist/subagent/canonical.d.ts +22 -0
  75. package/dist/subagent/canonical.d.ts.map +1 -0
  76. package/dist/subagent/canonical.js +24 -0
  77. package/dist/subagent/canonical.js.map +1 -0
  78. package/dist/subagent/context.d.ts +8 -0
  79. package/dist/subagent/context.d.ts.map +1 -0
  80. package/dist/subagent/context.js +125 -0
  81. package/dist/subagent/context.js.map +1 -0
  82. package/dist/subagent/contract.d.ts +10 -0
  83. package/dist/subagent/contract.d.ts.map +1 -0
  84. package/dist/subagent/contract.js +10 -0
  85. package/dist/subagent/contract.js.map +1 -0
  86. package/dist/subagent/index.d.ts +14 -0
  87. package/dist/subagent/index.d.ts.map +1 -0
  88. package/dist/subagent/index.js +14 -0
  89. package/dist/subagent/index.js.map +1 -0
  90. package/dist/subagent/plan.d.ts +18 -0
  91. package/dist/subagent/plan.d.ts.map +1 -0
  92. package/dist/subagent/plan.js +157 -0
  93. package/dist/subagent/plan.js.map +1 -0
  94. package/dist/subagent/preflight.d.ts +4 -0
  95. package/dist/subagent/preflight.d.ts.map +1 -0
  96. package/dist/subagent/preflight.js +108 -0
  97. package/dist/subagent/preflight.js.map +1 -0
  98. package/dist/subagent/request.d.ts +4 -0
  99. package/dist/subagent/request.d.ts.map +1 -0
  100. package/dist/subagent/request.js +122 -0
  101. package/dist/subagent/request.js.map +1 -0
  102. package/dist/subagent/response.d.ts +8 -0
  103. package/dist/subagent/response.d.ts.map +1 -0
  104. package/dist/subagent/response.js +155 -0
  105. package/dist/subagent/response.js.map +1 -0
  106. package/dist/subagent/tools.d.ts +4 -0
  107. package/dist/subagent/tools.d.ts.map +1 -0
  108. package/dist/subagent/tools.js +42 -0
  109. package/dist/subagent/tools.js.map +1 -0
  110. package/dist/subagent/types.d.ts +268 -0
  111. package/dist/subagent/types.d.ts.map +1 -0
  112. package/dist/subagent/types.js +3 -0
  113. package/dist/subagent/types.js.map +1 -0
  114. package/dist/subagent/validation.d.ts +35 -0
  115. package/dist/subagent/validation.d.ts.map +1 -0
  116. package/dist/subagent/validation.js +314 -0
  117. package/dist/subagent/validation.js.map +1 -0
  118. package/dist/subagent-command.d.ts +4 -0
  119. package/dist/subagent-command.d.ts.map +1 -0
  120. package/dist/subagent-command.js +246 -0
  121. package/dist/subagent-command.js.map +1 -0
  122. package/dist/subagent-host.d.ts +44 -0
  123. package/dist/subagent-host.d.ts.map +1 -0
  124. package/dist/subagent-host.js +292 -0
  125. package/dist/subagent-host.js.map +1 -0
  126. package/dist/subagent-profile-tool.d.ts +49 -0
  127. package/dist/subagent-profile-tool.d.ts.map +1 -0
  128. package/dist/subagent-profile-tool.js +124 -0
  129. package/dist/subagent-profile-tool.js.map +1 -0
  130. package/dist/subagent-tool.d.ts +53 -0
  131. package/dist/subagent-tool.d.ts.map +1 -0
  132. package/dist/subagent-tool.js +456 -0
  133. package/dist/subagent-tool.js.map +1 -0
  134. package/dist/web-editor/client-script.d.ts +2 -0
  135. package/dist/web-editor/client-script.d.ts.map +1 -0
  136. package/dist/web-editor/client-script.generated.d.ts +2 -0
  137. package/dist/web-editor/client-script.generated.d.ts.map +1 -0
  138. package/dist/web-editor/client-script.generated.js +3 -0
  139. package/dist/web-editor/client-script.generated.js.map +1 -0
  140. package/dist/web-editor/client-script.js +2 -0
  141. package/dist/web-editor/client-script.js.map +1 -0
  142. package/dist/web-editor/client-styles.d.ts +2 -0
  143. package/dist/web-editor/client-styles.d.ts.map +1 -0
  144. package/dist/web-editor/client-styles.generated.d.ts +2 -0
  145. package/dist/web-editor/client-styles.generated.d.ts.map +1 -0
  146. package/dist/web-editor/client-styles.generated.js +3 -0
  147. package/dist/web-editor/client-styles.generated.js.map +1 -0
  148. package/dist/web-editor/client-styles.js +2 -0
  149. package/dist/web-editor/client-styles.js.map +1 -0
  150. package/dist/web-editor/page.d.ts +2 -0
  151. package/dist/web-editor/page.d.ts.map +1 -1
  152. package/dist/web-editor/page.js +14 -3319
  153. package/dist/web-editor/page.js.map +1 -1
  154. package/dist/web-editor/server.d.ts.map +1 -1
  155. package/dist/web-editor/server.js +148 -0
  156. package/dist/web-editor/server.js.map +1 -1
  157. package/dist/web-editor/styles.d.ts +2 -0
  158. package/dist/web-editor/styles.d.ts.map +1 -0
  159. package/dist/web-editor/styles.js +1053 -0
  160. package/dist/web-editor/styles.js.map +1 -0
  161. package/dist/web-editor/types.d.ts +79 -0
  162. package/dist/web-editor/types.d.ts.map +1 -1
  163. package/dist/web-host.d.ts +16 -5
  164. package/dist/web-host.d.ts.map +1 -1
  165. package/dist/web-host.js +307 -0
  166. package/dist/web-host.js.map +1 -1
  167. package/docs/README.md +41 -0
  168. package/docs/concepts/agent-profiles.md +60 -0
  169. package/docs/concepts/prompt-stacks.md +90 -0
  170. package/docs/design/README.md +17 -0
  171. package/docs/design/roadmap-0.4-archive.md +216 -0
  172. package/docs/design/subagents/design-review.md +220 -0
  173. package/docs/design/subagents/interface-design.md +274 -0
  174. package/docs/design/subagents/sdk-spike-findings.md +117 -0
  175. package/docs/development/complexity-review.md +86 -0
  176. package/docs/development/release.md +31 -0
  177. package/docs/development/roadmap.md +42 -0
  178. package/docs/development/setup.md +75 -0
  179. package/docs/getting-started.md +93 -0
  180. package/docs/guides/custom-macros-and-slots.md +68 -0
  181. package/docs/guides/debugging.md +39 -0
  182. package/docs/guides/delegation.md +99 -0
  183. package/docs/guides/sillytavern-import.md +47 -0
  184. package/docs/guides/use-cases.md +65 -0
  185. package/docs/guides/web-editor.md +75 -0
  186. package/docs/reference/commands.md +60 -0
  187. package/docs/reference/configuration.md +64 -0
  188. package/docs/reference/features.md +279 -0
  189. package/docs/reference/macros-and-slots.md +82 -0
  190. package/docs/reference/public-api.md +28 -0
  191. package/docs/reference/stack-schema.md +167 -0
  192. package/docs/reference/subagent-adapter.md +204 -0
  193. package/docs/zh-CN/README.md +37 -0
  194. package/docs/zh-CN/concepts/agent-profiles.md +44 -0
  195. package/docs/zh-CN/concepts/prompt-stacks.md +40 -0
  196. package/docs/zh-CN/getting-started.md +79 -0
  197. package/docs/zh-CN/guides/delegation.md +66 -0
  198. package/docs/zh-CN/guides/web-editor.md +45 -0
  199. package/docs/zh-CN/reference/commands.md +58 -0
  200. package/package.json +55 -13
  201. package/src/compiler.ts +0 -578
  202. package/src/extension-registry.ts +0 -33
  203. package/src/forge-extensions.ts +0 -223
  204. package/src/index.ts +0 -445
  205. package/src/lifecycle.ts +0 -171
  206. package/src/loader.ts +0 -394
  207. package/src/macro-engine.ts +0 -358
  208. package/src/payload-capture.ts +0 -85
  209. package/src/payload-command.ts +0 -138
  210. package/src/policy.ts +0 -42
  211. package/src/preset-command.ts +0 -280
  212. package/src/preview.ts +0 -226
  213. package/src/regex.ts +0 -500
  214. package/src/render-helpers.ts +0 -169
  215. package/src/runtime-state.ts +0 -40
  216. package/src/sillytavern-importer/items.ts +0 -98
  217. package/src/sillytavern-importer/macros.ts +0 -159
  218. package/src/sillytavern-importer/prompt-order.ts +0 -54
  219. package/src/sillytavern-importer/regex.ts +0 -270
  220. package/src/sillytavern-importer/report.ts +0 -202
  221. package/src/sillytavern-importer/types.ts +0 -120
  222. package/src/sillytavern-importer.ts +0 -152
  223. package/src/slot-renderers.ts +0 -414
  224. package/src/stack-migration.ts +0 -159
  225. package/src/storage.ts +0 -45
  226. package/src/types.ts +0 -209
  227. package/src/web-editor/index.ts +0 -2
  228. package/src/web-editor/page.ts +0 -3330
  229. package/src/web-editor/server.ts +0 -294
  230. package/src/web-editor/types.ts +0 -98
  231. package/src/web-host.ts +0 -232
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/subagent/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ import type { ForgeSubagentRuntime } from "./runtime/subagent-runtime.ts";
3
+ export declare function registerForgeSubagentCommand(pi: ExtensionAPI, runtime: ForgeSubagentRuntime, profileIds: () => string[]): void;
4
+ //# sourceMappingURL=subagent-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-command.d.ts","sourceRoot":"","sources":["../src/subagent-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iCAAiC,CAAC;AAQ7F,OAAO,KAAK,EAA4B,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIpG,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,MAAM,EAAE,GAAG,IAAI,CAoG9H"}
@@ -0,0 +1,246 @@
1
+ import { loadForgeSubagentSettings, resolveSubagentBackend, resolveSubagentProfilePolicy, } from "./forge-config.js";
2
+ import { showText } from "./preview.js";
3
+ import { requestForgeSubagentApproval } from "./subagent-tool.js";
4
+ export function registerForgeSubagentCommand(pi, runtime, profileIds) {
5
+ pi.registerCommand("forge-agent", {
6
+ description: "Plan or run a foreground human-approved read-only agent profile",
7
+ getArgumentCompletions: (prefix) => completeForgeAgentArguments(prefix, profileIds(), runtime.backendIds()),
8
+ handler: async (args, ctx) => {
9
+ const parsed = parseForgeAgentArgs(args);
10
+ if (parsed.command === "help") {
11
+ await showText(ctx, "pi-forge agent backend", helpText());
12
+ return;
13
+ }
14
+ const settings = loadForgeSubagentSettings(ctx);
15
+ if (parsed.command === "backends") {
16
+ const resolved = resolveSubagentBackend(settings);
17
+ const descriptors = runtime.descriptors(ctx);
18
+ const loadedProfileIds = profileIds();
19
+ const lines = descriptors.map((descriptor) => [
20
+ `${descriptor.id} @ ${descriptor.version}${descriptor.id === resolved.id ? ` (default: ${backendSourceLabel(resolved)})` : ""}`,
21
+ ` default boundary: shared-user subprocess with read-only model tools`,
22
+ ` prompt runtime: ${descriptor.capabilities.promptRuntimeFidelity}`,
23
+ ` cancellation: ${descriptor.capabilities.cancellation ? "yes" : "no"}`,
24
+ ` remote transport: ${descriptor.capabilities.remoteTransport ? "yes" : "no"}`,
25
+ ].join("\n"));
26
+ if (!descriptors.some((descriptor) => descriptor.id === resolved.id)) {
27
+ lines.push(`Configured default backend "${resolved.id}" (${backendSourceLabel(resolved)}) is not registered.`);
28
+ }
29
+ lines.push(`Configured timeout: ${settings.timeoutMs} ms (${settings.timeoutSource}; best-effort host abort).`);
30
+ const enabledPolicies = loadedProfileIds
31
+ .map((profileId) => resolveSubagentProfilePolicy(settings, profileId))
32
+ .filter((policy) => policy.enabled);
33
+ lines.push(enabledPolicies.length === 0
34
+ ? "Enabled subagent profiles: none. Add subagents.profiles.<id>.enabled: true to the trusted project's .pi/forge/config.json."
35
+ : [
36
+ "Enabled subagent profiles:",
37
+ ...enabledPolicies.map((policy) => ` ${policy.profileId}: backend ${policy.backend.id} (${backendSourceLabel(policy.backend)}${descriptors.some((descriptor) => descriptor.id === policy.backend.id) ? "" : "; not registered"}); timeout ${policy.timeout.milliseconds} ms (${policy.timeout.source}).`),
38
+ ].join("\n"));
39
+ for (const warning of settings.warnings)
40
+ lines.push(`Configuration warning: ${warning}`);
41
+ await showText(ctx, "pi-forge subagent backends", lines.join("\n\n") || "No subagent backends registered.");
42
+ return;
43
+ }
44
+ if (parsed.error) {
45
+ ctx.ui.notify(`pi-forge: ${parsed.error}`, "warning");
46
+ return;
47
+ }
48
+ if (!parsed.profileId || !parsed.task) {
49
+ ctx.ui.notify(`Usage: /forge-agent ${parsed.command} <profile> [--backend <id>] <task>`, "warning");
50
+ return;
51
+ }
52
+ for (const warning of settings.warnings)
53
+ ctx.ui.notify(warning, "warning");
54
+ if (!profileIds().includes(parsed.profileId)) {
55
+ ctx.ui.notify(`pi-forge: unknown agent profile: ${parsed.profileId}`, "error");
56
+ return;
57
+ }
58
+ const policy = resolveSubagentProfilePolicy(settings, parsed.profileId, parsed.backend);
59
+ if (!policy.enabled) {
60
+ ctx.ui.notify(`pi-forge: agent profile "${parsed.profileId}" is not enabled for subagent delegation in subagents.profiles.`, "error");
61
+ return;
62
+ }
63
+ if (parsed.command === "run" && !ctx.hasUI) {
64
+ ctx.ui.notify("pi-forge: subagent execution requires interactive provider-egress confirmation; use /forge-agent plan in non-UI mode.", "error");
65
+ return;
66
+ }
67
+ ctx.ui.setStatus("pi-forge-subagent", ctx.ui.theme.fg("accent", parsed.command === "plan" ? "agent:preparing" : "agent:running"));
68
+ let prepared;
69
+ try {
70
+ const result = await runtime.prepare(parsed.profileId, parsed.task, ctx, {
71
+ backendId: policy.backend.id,
72
+ timeoutMs: policy.timeout.milliseconds,
73
+ });
74
+ if (!result.ok) {
75
+ await showText(ctx, "pi-forge subagent diagnostics", renderDiagnostics(result.diagnostics));
76
+ return;
77
+ }
78
+ prepared = result.prepared;
79
+ if (parsed.command === "plan") {
80
+ await showText(ctx, `pi-forge subagent plan: ${parsed.profileId}`, renderPlan(prepared));
81
+ await runtime.discard(prepared);
82
+ prepared = undefined;
83
+ return;
84
+ }
85
+ const approval = await requestForgeSubagentApproval(prepared, parsed.task, ctx, ctx.signal);
86
+ if (!approval.approved) {
87
+ await runtime.discard(prepared);
88
+ prepared = undefined;
89
+ ctx.ui.notify("pi-forge: subagent run cancelled before provider transport.", "info");
90
+ return;
91
+ }
92
+ const response = await runtime.execute(prepared, ctx, ctx.signal);
93
+ prepared = undefined;
94
+ runtime.takeReport?.(response.runId);
95
+ await showText(ctx, `pi-forge subagent result: ${parsed.profileId}`, renderResponse(response));
96
+ }
97
+ catch (error) {
98
+ if (prepared)
99
+ await runtime.discard(prepared).catch(() => undefined);
100
+ ctx.ui.notify(`pi-forge subagent failed: ${error instanceof Error ? error.message : String(error)}`, "error");
101
+ }
102
+ finally {
103
+ ctx.ui.setStatus("pi-forge-subagent", undefined);
104
+ }
105
+ },
106
+ });
107
+ }
108
+ function parseForgeAgentArgs(args) {
109
+ const trimmed = args.trim();
110
+ if (!trimmed)
111
+ return { command: "help" };
112
+ const firstSpace = trimmed.search(/\s/);
113
+ const command = (firstSpace === -1 ? trimmed : trimmed.slice(0, firstSpace)).toLowerCase();
114
+ const rest = firstSpace === -1 ? "" : trimmed.slice(firstSpace).trim();
115
+ if (command === "backends")
116
+ return { command: "backends" };
117
+ if (command !== "plan" && command !== "run")
118
+ return { command: "help" };
119
+ const positional = [];
120
+ let backend;
121
+ const tokens = rest ? rest.split(/\s+/) : [];
122
+ for (let index = 0; index < tokens.length; index++) {
123
+ const token = tokens[index];
124
+ if (token === "--backend") {
125
+ const value = tokens[index + 1];
126
+ if (!value || value.startsWith("--"))
127
+ return { command, error: "--backend requires a backend id value." };
128
+ backend = value;
129
+ index++;
130
+ continue;
131
+ }
132
+ if (token.startsWith("--backend=")) {
133
+ const value = token.slice("--backend=".length);
134
+ if (!value)
135
+ return { command, error: "--backend requires a backend id value." };
136
+ backend = value;
137
+ continue;
138
+ }
139
+ if (token.startsWith("--"))
140
+ return { command, error: `Unknown option: ${token}` };
141
+ positional.push(token);
142
+ }
143
+ const [profileId, ...taskTokens] = positional;
144
+ return { command, profileId: profileId || undefined, task: taskTokens.join(" ") || undefined, ...(backend ? { backend } : {}) };
145
+ }
146
+ function completeForgeAgentArguments(prefix, profileIds, backendIds) {
147
+ const trimmed = prefix.trimStart();
148
+ if (!trimmed.includes(" ")) {
149
+ return ["backends", "plan", "run"].filter((command) => command.startsWith(trimmed)).map((command) => ({ value: command, label: command }));
150
+ }
151
+ const commandMatch = trimmed.match(/^(plan|run)\s+(.*)$/);
152
+ if (!commandMatch)
153
+ return null;
154
+ const rest = commandMatch[2] ?? "";
155
+ const tokens = rest.split(/\s+/);
156
+ const last = tokens[tokens.length - 1] ?? "";
157
+ const previous = tokens[tokens.length - 2];
158
+ if (previous === "--backend" || previous?.startsWith("--backend=")) {
159
+ const head = trimmed.slice(0, trimmed.length - last.length);
160
+ return backendIds.filter((id) => id.startsWith(last)).map((id) => ({ value: `${head}${id}`, label: id }));
161
+ }
162
+ if (tokens.length === 1) {
163
+ const partial = tokens[0] ?? "";
164
+ return profileIds.filter((id) => id.startsWith(partial)).map((id) => ({ value: `${commandMatch[1]} ${id}`, label: id }));
165
+ }
166
+ if (last.startsWith("-") && "--backend".startsWith(last)) {
167
+ const head = trimmed.slice(0, trimmed.length - last.length);
168
+ return [{ value: `${head}--backend `, label: "--backend" }];
169
+ }
170
+ return null;
171
+ }
172
+ function backendSourceLabel(backend) {
173
+ switch (backend.source) {
174
+ case "explicit": return "per-run override";
175
+ case "project-profile": return "project profile override";
176
+ case "project": return "project config";
177
+ case "global": return "global config";
178
+ default: return "built-in";
179
+ }
180
+ }
181
+ function renderPlan(prepared) {
182
+ const plan = prepared.plan;
183
+ return [
184
+ `Backend: ${plan.backendId}`,
185
+ `Model: ${plan.model.provider}/${plan.model.id}`,
186
+ `Thinking: ${plan.thinkingLevel}`,
187
+ `Profile: ${plan.profile.profile.id}`,
188
+ `Prompt stack: ${plan.profile.promptStack?.id ?? "none"}`,
189
+ `Access: ${plan.access.level}; network ${plan.access.network}; process ${plan.access.process ? "allowed" : "denied"}`,
190
+ `Timeout: ${plan.limits.timeoutMs ? `${plan.limits.timeoutMs.value} ms (${plan.limits.timeoutMs.enforcement})` : "none"}`,
191
+ `Effective tools: ${plan.effectiveToolIds.join(", ") || "none"}`,
192
+ `System prompt: ${plan.systemPrompt.length} chars`,
193
+ `Messages: ${plan.messages.map((message) => `${message.role}${message.protectedTask ? " (protected task)" : ""}`).join(" -> ")}`,
194
+ `Runtime fingerprint: ${plan.promptRuntimeFingerprint}`,
195
+ `Conversation fingerprint: ${plan.conversationFingerprint}`,
196
+ `Execution fingerprint: ${plan.executionFingerprint}`,
197
+ "Provider transport: not started; dry plan discarded.",
198
+ "",
199
+ "Diagnostics:",
200
+ renderDiagnostics(prepared.diagnostics),
201
+ ].join("\n");
202
+ }
203
+ function renderResponse(response) {
204
+ const lines = [
205
+ `Status: ${response.status}`,
206
+ `Backend: ${response.backendId}`,
207
+ `Model: ${response.model.provider}/${response.model.id}`,
208
+ `Duration: ${response.durationMs} ms`,
209
+ `Effective tools: ${response.effectiveToolIds.join(", ") || "none"}`,
210
+ ];
211
+ if (response.status === "failed")
212
+ lines.push(`Error: ${response.error.code}: ${response.error.message}`);
213
+ if (response.status === "cancelled" || response.status === "timed-out")
214
+ lines.push(`Reason: ${response.reason}`);
215
+ if (response.status === "limit-reached")
216
+ lines.push(`Reached limit: ${response.reachedLimit}`);
217
+ if (response.output?.text)
218
+ lines.push("", "Output:", response.output.text);
219
+ return lines.join("\n");
220
+ }
221
+ function renderDiagnostics(diagnostics) {
222
+ if (diagnostics.length === 0)
223
+ return "No diagnostics.";
224
+ return diagnostics.map((diagnostic) => `${diagnostic.level.toUpperCase()} ${diagnostic.code}${diagnostic.path ? ` [${diagnostic.path}]` : ""}: ${diagnostic.message}`).join("\n");
225
+ }
226
+ function helpText() {
227
+ return [
228
+ "Foreground read-only subprocess agent commands:",
229
+ "",
230
+ " /forge-agent backends",
231
+ " /forge-agent plan <profile> [--backend <id>] <task>",
232
+ " /forge-agent run <profile> [--backend <id>] <task>",
233
+ "",
234
+ "plan prepares and validates the exact request without provider transport.",
235
+ "run prepares the exact prompt, asks for human approval, then executes one foreground text task.",
236
+ "The default child exposes read, grep, find, and ls only. It shares the invoking user's OS permissions and is not sandboxed.",
237
+ "",
238
+ "Backend selection: --backend overrides one run. Set subagents.backend in .pi/forge/config.json",
239
+ "(trusted project) or ~/.pi/forge/config.json (global default; project wins). There is no fallback:",
240
+ "if the selected backend is unavailable the run fails before provider transport.",
241
+ "Set subagents.timeoutMs in the same config locations to an integer from 1000 to 3600000.",
242
+ "Profiles are not delegatable by default. Enable and optionally override one with",
243
+ "subagents.profiles.<id>.enabled, backend, and timeoutMs.",
244
+ ].join("\n");
245
+ }
246
+ //# sourceMappingURL=subagent-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-command.js","sourceRoot":"","sources":["../src/subagent-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
+ import type { LoadedAgentProfile } from "./agent-profile.ts";
3
+ import { type AgentProfileSnapshot, type SubagentDependencyKind, type SubagentDiagnostic, type SubagentPromptDependency, type SubagentPreparationInput, type SubagentPreparationOutput } from "./subagent/contract.ts";
4
+ import type { LoadedPromptStack, PromptRuntime, PromptStack } from "./types.ts";
5
+ export interface SubagentPromptRegistration {
6
+ name: string;
7
+ source?: string;
8
+ }
9
+ export interface SubagentPromptRegistrationCatalog {
10
+ macros: SubagentPromptRegistration[];
11
+ slots: SubagentPromptRegistration[];
12
+ }
13
+ export interface SubagentHostResolution {
14
+ profileId: string;
15
+ snapshot?: AgentProfileSnapshot;
16
+ dependencies: SubagentPromptDependency[];
17
+ missingDependencies: Array<{
18
+ kind: SubagentDependencyKind;
19
+ name: string;
20
+ }>;
21
+ diagnostics: SubagentDiagnostic[];
22
+ }
23
+ export declare function currentSubagentPromptRegistrationCatalog(): SubagentPromptRegistrationCatalog;
24
+ export declare function resolveSubagentHostProfile(loaded: LoadedAgentProfile, resources: {
25
+ promptStacks: readonly LoadedPromptStack[];
26
+ registrations?: SubagentPromptRegistrationCatalog;
27
+ }): SubagentHostResolution;
28
+ export declare function prepareSubagentHostPlan(input: SubagentPreparationInput): SubagentPreparationOutput;
29
+ export declare function collectSubagentPromptDependencies(stack: PromptStack, registrations?: SubagentPromptRegistrationCatalog): {
30
+ dependencies: SubagentPromptDependency[];
31
+ missingDependencies: Array<{
32
+ kind: SubagentDependencyKind;
33
+ name: string;
34
+ }>;
35
+ diagnostics: SubagentDiagnostic[];
36
+ };
37
+ export declare function collectMacroCommandNames(text: string): string[];
38
+ export declare function appendProtectedAgentTask(compiledMessages: readonly AgentMessage[], protectedTask: AgentMessage): AgentMessage[];
39
+ export declare function compileProtectedAgentTaskMessages(stack: LoadedPromptStack, runtime: PromptRuntime, originalMessages: readonly AgentMessage[]): {
40
+ messages: AgentMessage[];
41
+ diagnostics: import("./types.ts").PromptStackDiagnostic[];
42
+ };
43
+ export declare function isProtectedAgentTaskPreserved(messages: readonly AgentMessage[], task: AgentMessage): boolean;
44
+ //# sourceMappingURL=subagent-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-host.d.ts","sourceRoot":"","sources":["../src/subagent-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAUlE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAKN,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IACjD,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,EAAE,0BAA0B,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,sBAAsB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAcD,wBAAgB,wCAAwC,IAAI,iCAAiC,CAK5F;AAED,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE;IACV,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,iCAAiC,CAAC;CAClD,GACC,sBAAsB,CAyDxB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,yBAAyB,CA4ClG;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,WAAW,EAClB,aAAa,GAAE,iCAA8E,GAC3F;IACF,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,sBAAsB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAClC,CAyBA;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI/D;AAED,wBAAgB,wBAAwB,CACvC,gBAAgB,EAAE,SAAS,YAAY,EAAE,EACzC,aAAa,EAAE,YAAY,GACzB,YAAY,EAAE,CAGhB;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,SAAS,YAAY,EAAE,GACvC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,YAAY,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAOzF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAM5G"}