@introspection-ai/recipes 0.13.0 → 0.14.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 (222) hide show
  1. package/README.md +45 -58
  2. package/dist/{agent-tool.d.ts → agents.d.ts} +4 -1
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/{agent-tool.js → agents.js} +1 -1
  5. package/dist/agents.js.map +1 -0
  6. package/dist/api/extensions.d.ts +3 -0
  7. package/dist/api/extensions.d.ts.map +1 -0
  8. package/dist/api/extensions.js +2 -0
  9. package/dist/api/extensions.js.map +1 -0
  10. package/dist/api/mcp.d.ts +4 -0
  11. package/dist/api/mcp.d.ts.map +1 -0
  12. package/dist/api/mcp.js +2 -0
  13. package/dist/api/mcp.js.map +1 -0
  14. package/dist/api/session.d.ts +3 -0
  15. package/dist/api/session.d.ts.map +1 -0
  16. package/dist/api/session.js +2 -0
  17. package/dist/api/session.js.map +1 -0
  18. package/dist/child-agent.d.ts +5 -4
  19. package/dist/child-agent.d.ts.map +1 -1
  20. package/dist/child-agent.js +26 -117
  21. package/dist/child-agent.js.map +1 -1
  22. package/dist/child-session.d.ts +23 -0
  23. package/dist/child-session.d.ts.map +1 -0
  24. package/dist/child-session.js +48 -0
  25. package/dist/child-session.js.map +1 -0
  26. package/dist/extensions.d.ts +29 -0
  27. package/dist/extensions.d.ts.map +1 -0
  28. package/dist/extensions.js +119 -0
  29. package/dist/extensions.js.map +1 -0
  30. package/dist/index.d.ts +4 -13
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -13
  33. package/dist/index.js.map +1 -1
  34. package/dist/inspect.d.ts +38 -5
  35. package/dist/inspect.d.ts.map +1 -1
  36. package/dist/inspect.js +92 -41
  37. package/dist/inspect.js.map +1 -1
  38. package/dist/interactions.d.ts +18 -2
  39. package/dist/interactions.d.ts.map +1 -1
  40. package/dist/interactions.js +41 -10
  41. package/dist/interactions.js.map +1 -1
  42. package/dist/mcp-catalog.d.ts +1 -0
  43. package/dist/mcp-catalog.d.ts.map +1 -1
  44. package/dist/mcp-catalog.js +14 -6
  45. package/dist/mcp-catalog.js.map +1 -1
  46. package/dist/mcp-chunks/auth-command-ZLGYIEUY.js +273 -0
  47. package/dist/mcp-chunks/call-arguments-LU3W6D3K.js +13 -0
  48. package/dist/mcp-chunks/call-command-LKTKSYTH.js +612 -0
  49. package/dist/mcp-chunks/chunk-2U4BSDC4.js +3951 -0
  50. package/dist/mcp-chunks/chunk-2XL7MG7R.js +272 -0
  51. package/dist/mcp-chunks/chunk-3BJA27PY.js +2321 -0
  52. package/dist/mcp-chunks/chunk-4SQKWYFF.js +15 -0
  53. package/dist/mcp-chunks/chunk-5QOSCSQB.js +290 -0
  54. package/dist/mcp-chunks/chunk-6W5QFASN.js +77 -0
  55. package/dist/mcp-chunks/chunk-6XCZGU3G.js +1004 -0
  56. package/dist/mcp-chunks/chunk-7FHEBT5G.js +149 -0
  57. package/dist/mcp-chunks/chunk-7KA2VJVZ.js +114 -0
  58. package/dist/mcp-chunks/chunk-7UDVSOOF.js +138 -0
  59. package/dist/mcp-chunks/chunk-BNV3TPE4.js +66 -0
  60. package/dist/mcp-chunks/chunk-BTLAWHTA.js +129 -0
  61. package/dist/mcp-chunks/chunk-BV56DXPW.js +13 -0
  62. package/dist/mcp-chunks/chunk-BWHIA4PC.js +90 -0
  63. package/dist/mcp-chunks/chunk-BZIQOWE6.js +267 -0
  64. package/dist/mcp-chunks/chunk-D3MRAZ6H.js +16140 -0
  65. package/dist/mcp-chunks/chunk-DHBE7UBH.js +750 -0
  66. package/dist/mcp-chunks/chunk-E22DYOW5.js +251 -0
  67. package/dist/mcp-chunks/chunk-ECIVB7P4.js +139 -0
  68. package/dist/mcp-chunks/chunk-HKRJ6O36.js +1076 -0
  69. package/dist/mcp-chunks/chunk-IABRYROW.js +44 -0
  70. package/dist/mcp-chunks/chunk-J6LYIZXN.js +45 -0
  71. package/dist/mcp-chunks/chunk-L7NTQVYN.js +161 -0
  72. package/dist/mcp-chunks/chunk-LEZSACDE.js +141 -0
  73. package/dist/mcp-chunks/chunk-LKIBAYKU.js +208 -0
  74. package/dist/mcp-chunks/chunk-LNH5LAJD.js +152 -0
  75. package/dist/mcp-chunks/chunk-LQQEYD76.js +124 -0
  76. package/dist/mcp-chunks/chunk-LRKZP7DJ.js +47 -0
  77. package/dist/mcp-chunks/chunk-LS7PMWSR.js +109 -0
  78. package/dist/mcp-chunks/chunk-M3TPODXI.js +95 -0
  79. package/dist/mcp-chunks/chunk-MZ2NARG7.js +400 -0
  80. package/dist/mcp-chunks/chunk-N46NEFAF.js +45 -0
  81. package/dist/mcp-chunks/chunk-NNOEGEUZ.js +17273 -0
  82. package/dist/mcp-chunks/chunk-NRAJX5E4.js +69 -0
  83. package/dist/mcp-chunks/chunk-P3PSC54P.js +869 -0
  84. package/dist/mcp-chunks/chunk-PIIYJR44.js +6341 -0
  85. package/dist/mcp-chunks/chunk-PWYFKGKG.js +385 -0
  86. package/dist/mcp-chunks/chunk-SJCCBNZ4.js +45 -0
  87. package/dist/mcp-chunks/chunk-TATVT5IT.js +194 -0
  88. package/dist/mcp-chunks/chunk-TEUKFFQL.js +29 -0
  89. package/dist/mcp-chunks/chunk-UKYNQGNE.js +150 -0
  90. package/dist/mcp-chunks/chunk-UNKB4SBV.js +37 -0
  91. package/dist/mcp-chunks/chunk-WD6BOD24.js +138 -0
  92. package/dist/mcp-chunks/chunk-WQJZMCJN.js +73 -0
  93. package/dist/mcp-chunks/chunk-XANPGTLI.js +364 -0
  94. package/dist/mcp-chunks/chunk-XQK2JSW4.js +35 -0
  95. package/dist/mcp-chunks/chunk-YHQUTU6L.js +571 -0
  96. package/dist/mcp-chunks/chunk-YVZKMV5H.js +57 -0
  97. package/dist/mcp-chunks/cli-UV4QJZZM.js +929 -0
  98. package/dist/mcp-chunks/client-S7RQUG5U.js +13 -0
  99. package/dist/mcp-chunks/config-command-NLAGKID5.js +1101 -0
  100. package/dist/mcp-chunks/daemon-command-U242Z6VY.js +26 -0
  101. package/dist/mcp-chunks/dist-LK3SHAMX.js +6478 -0
  102. package/dist/mcp-chunks/emit-ts-command-VBXVXO6V.js +386 -0
  103. package/dist/mcp-chunks/generate-cli-runner-6CAZZA3P.js +1426 -0
  104. package/dist/mcp-chunks/inspect-cli-command-3ZORTOR7.js +111 -0
  105. package/dist/mcp-chunks/launch-YKRXHXJI.js +10 -0
  106. package/dist/mcp-chunks/lifecycle-XVKRHPH3.js +16 -0
  107. package/dist/mcp-chunks/list-command-2MEGGNFQ.js +4190 -0
  108. package/dist/mcp-chunks/output-utils-NKESLAJ6.js +12 -0
  109. package/dist/mcp-chunks/prompt-B1Yc1NPt-VGOTWJMN.js +918 -0
  110. package/dist/mcp-chunks/record-command-YXHTTTT5.js +17 -0
  111. package/dist/mcp-chunks/replay-command-25HJ6AQU.js +85 -0
  112. package/dist/mcp-chunks/resource-command-OO4NYF5C.js +97 -0
  113. package/dist/mcp-chunks/result-utils-MOHHLNM7.js +15 -0
  114. package/dist/mcp-chunks/runtime-5WJ3G25Y.js +33 -0
  115. package/dist/mcp-chunks/runtime-wrapper-RPWDIDBF.js +10 -0
  116. package/dist/mcp-chunks/serve-command-DHXJZMMN.js +3302 -0
  117. package/dist/mcp-chunks/timeouts-W2XWCCXR.js +18 -0
  118. package/dist/mcp-chunks/vault-command-PIYIUEZL.js +154 -0
  119. package/dist/mcp-daemon-client.d.ts +6 -1
  120. package/dist/mcp-daemon-client.d.ts.map +1 -1
  121. package/dist/mcp-daemon-client.js +119 -2
  122. package/dist/mcp-daemon-client.js.map +1 -1
  123. package/dist/mcp-daemon-protocol.d.ts +18 -1
  124. package/dist/mcp-daemon-protocol.d.ts.map +1 -1
  125. package/dist/mcp-daemon-protocol.js +31 -0
  126. package/dist/mcp-daemon-protocol.js.map +1 -1
  127. package/dist/mcp-daemon.js +169 -76602
  128. package/dist/mcp-daemon.js.map +1 -1
  129. package/dist/mcp-policy.d.ts +11 -0
  130. package/dist/mcp-policy.d.ts.map +1 -0
  131. package/dist/mcp-policy.js +27 -0
  132. package/dist/mcp-policy.js.map +1 -0
  133. package/dist/mcp-run-worker.js +38 -76540
  134. package/dist/mcp-tools.d.ts +39 -0
  135. package/dist/mcp-tools.d.ts.map +1 -0
  136. package/dist/mcp-tools.js +493 -0
  137. package/dist/mcp-tools.js.map +1 -0
  138. package/dist/mcp.d.ts +21 -9
  139. package/dist/mcp.d.ts.map +1 -1
  140. package/dist/mcp.js +101 -31
  141. package/dist/mcp.js.map +1 -1
  142. package/dist/model-binding.d.ts +39 -0
  143. package/dist/model-binding.d.ts.map +1 -0
  144. package/dist/model-binding.js +103 -0
  145. package/dist/model-binding.js.map +1 -0
  146. package/dist/pi-extension.d.ts +2 -22
  147. package/dist/pi-extension.d.ts.map +1 -1
  148. package/dist/pi-extension.js +296 -71
  149. package/dist/pi-extension.js.map +1 -1
  150. package/dist/recipe/resolve.d.ts +43 -20
  151. package/dist/recipe/resolve.d.ts.map +1 -1
  152. package/dist/recipe/resolve.js +215 -70
  153. package/dist/recipe/resolve.js.map +1 -1
  154. package/dist/recipe-agent.d.ts +24 -27
  155. package/dist/recipe-agent.d.ts.map +1 -1
  156. package/dist/recipe-agent.js +278 -230
  157. package/dist/recipe-agent.js.map +1 -1
  158. package/dist/recipe-check.d.ts +17 -0
  159. package/dist/recipe-check.d.ts.map +1 -0
  160. package/dist/recipe-check.js +258 -0
  161. package/dist/recipe-check.js.map +1 -0
  162. package/dist/recipe-extensions.d.ts.map +1 -1
  163. package/dist/recipe-extensions.js +0 -3
  164. package/dist/recipe-extensions.js.map +1 -1
  165. package/dist/recipe-model.d.ts +3 -1
  166. package/dist/recipe-model.d.ts.map +1 -1
  167. package/dist/recipe-model.js +15 -12
  168. package/dist/recipe-model.js.map +1 -1
  169. package/dist/recipe-package.d.ts +6 -28
  170. package/dist/recipe-package.d.ts.map +1 -1
  171. package/dist/recipe-package.js +248 -191
  172. package/dist/recipe-package.js.map +1 -1
  173. package/dist/recipe-skills.d.ts.map +1 -1
  174. package/dist/recipe-skills.js +42 -29
  175. package/dist/recipe-skills.js.map +1 -1
  176. package/dist/run-controller.d.ts +10 -9
  177. package/dist/run-controller.d.ts.map +1 -1
  178. package/dist/run-controller.js +28 -21
  179. package/dist/run-controller.js.map +1 -1
  180. package/dist/session.d.ts +40 -53
  181. package/dist/session.d.ts.map +1 -1
  182. package/dist/session.js +312 -173
  183. package/dist/session.js.map +1 -1
  184. package/dist/test-utils.d.ts +7 -7
  185. package/dist/test-utils.d.ts.map +1 -1
  186. package/dist/test-utils.js +32 -15
  187. package/dist/test-utils.js.map +1 -1
  188. package/docs/agent-composition.md +41 -35
  189. package/docs/host-api.md +201 -0
  190. package/docs/index.md +8 -14
  191. package/docs/interactions.md +12 -11
  192. package/docs/mcp-auth.md +6 -6
  193. package/docs/mcp-configuration.md +72 -24
  194. package/docs/pi-extension.md +39 -11
  195. package/docs/recipe-flow.md +9 -9
  196. package/docs/recipe-format.md +90 -41
  197. package/package.json +23 -17
  198. package/vendor/mcp-client/darwin-arm64/mcp-client +0 -0
  199. package/vendor/mcp-client/darwin-x64/mcp-client +0 -0
  200. package/vendor/mcp-client/linux-arm64/mcp-client +0 -0
  201. package/vendor/recipe-check/darwin-arm64/recipe-check +0 -0
  202. package/vendor/recipe-check/darwin-x64/recipe-check +0 -0
  203. package/vendor/recipe-check/linux-arm64/recipe-check +0 -0
  204. package/vendor/recipe-check/linux-x64/recipe-check +0 -0
  205. package/vendor/recipe-check/linux-x64-musl/recipe-check +0 -0
  206. package/vendor/recipe-check/win32-x64/recipe-check.exe +0 -0
  207. package/dist/agent-tool.d.ts.map +0 -1
  208. package/dist/agent-tool.js.map +0 -1
  209. package/dist/run.d.ts +0 -28
  210. package/dist/run.d.ts.map +0 -1
  211. package/dist/run.js +0 -84
  212. package/dist/run.js.map +0 -1
  213. package/dist/testing.d.ts +0 -25
  214. package/dist/testing.d.ts.map +0 -1
  215. package/dist/testing.js +0 -96
  216. package/dist/testing.js.map +0 -1
  217. package/docs/deployment-configuration.md +0 -65
  218. package/docs/migration.md +0 -70
  219. package/docs/python-bindings-release.md +0 -47
  220. package/docs/recipe-evals.md +0 -70
  221. package/docs/recipe-judges.md +0 -152
  222. package/docs/runtime-library.md +0 -171
package/README.md CHANGED
@@ -12,9 +12,8 @@
12
12
 
13
13
  <div align="center">
14
14
  <a href="https://pi.recipes"><img src="https://img.shields.io/badge/website-pi.recipes-blue" alt="Website"></a>
15
- <a href="https://github.com/introspection-org/pi-recipes/actions/workflows/ci.yml"><img src="https://github.com/introspection-org/pi-recipes/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
15
+ <a href="https://github.com/introspection-org/recipes/actions/workflows/ci.yml"><img src="https://github.com/introspection-org/recipes/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
16
16
  <a href="https://www.npmjs.com/package/@introspection-ai/recipes"><img src="https://img.shields.io/npm/v/@introspection-ai/recipes?label=npm" alt="npm version"></a>
17
- <a href="https://crates.io/crates/pi-recipe-check"><img src="https://img.shields.io/crates/v/pi-recipe-check?label=crates.io" alt="crates.io version"></a>
18
17
  <a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/license-Apache%202.0-green" alt="License"></a>
19
18
  </div>
20
19
 
@@ -23,7 +22,7 @@
23
22
  **Everything that makes your agent yours, in one portable package.**
24
23
 
25
24
  A Recipe keeps a complete Pi agent—its instructions, models, tools, skills,
26
- extensions, subagents, capability policy, and quality definitions—together as
25
+ package-wide executable extensions, subagents, and capability policy together as
27
26
  ordinary source you can inspect, fork, validate, and own.
28
27
 
29
28
  Run the same Recipe locally, on Introspection, or in another compatible Pi
@@ -32,15 +31,15 @@ and deployment remain the host's responsibility.
32
31
 
33
32
  ## What Recipes is
34
33
 
35
- Recipes has two deliberately small surfaces:
34
+ Recipes combines two deliberately small contracts:
36
35
 
37
36
  1. **The Recipe Format** is the open, Git-native package contract.
38
- 2. **The Recipes runtime library** resolves that package into a live Pi session
39
- without imposing a server, queue, database, or deployment platform.
37
+ 2. **The Host API** resolves that package into a complete live Pi session.
40
38
 
41
39
  [Pi](https://pi.dev/docs/latest) is the minimal agent harness. A Recipe packages
42
40
  the complete configured agent built on that harness. It is more than a prompt
43
- template or a collection of Pi resources, but it is not a hosting framework.
41
+ template or a collection of Pi resources. Recipes runs the agent; the host
42
+ decides where and how that agent operates.
44
43
 
45
44
  ## Package anatomy
46
45
 
@@ -51,7 +50,6 @@ my-recipe/
51
50
  ├── agents/*.yaml # models, tools, skills, subagents, policy
52
51
  ├── skills/**/SKILL.md # reusable domain workflows
53
52
  ├── extensions/*.ts # optional Recipe-owned Pi extensions
54
- ├── judges/*.yaml # optional portable quality definitions
55
53
  └── .pi/mcp.local.example.json # optional binding template
56
54
  ```
57
55
 
@@ -71,7 +69,7 @@ introspection local
71
69
 
72
70
  `introspection init` installs a compatible Pi and Recipes extension when they
73
71
  are missing. `introspection local` launches the selected local Recipe directly
74
- with Pi. It does not require an Introspection login or managed runtime.
72
+ with Pi. It does not require an Introspection login or managed host.
75
73
 
76
74
  To install the extension without the Introspection CLI:
77
75
 
@@ -80,32 +78,25 @@ pi install npm:@introspection-ai/recipes
80
78
  pi --recipe ./path/to/recipe --agent agent
81
79
  ```
82
80
 
83
- ## Embed the runtime
81
+ ## Run in a host
84
82
 
85
- Install the library in a Pi host:
83
+ Install Recipes in a Node.js host:
86
84
 
87
85
  ```bash
88
86
  npm install @introspection-ai/recipes
89
87
  ```
90
88
 
91
- Choose the lowest useful layer:
92
-
93
89
  ```ts
94
- import { resolveRecipe } from "@introspection-ai/recipes/recipe";
95
-
96
- const recipe = resolveRecipe({
97
- recipeDir: "./my-recipe",
90
+ import {
91
+ createAgentSession,
92
+ resolveRecipe,
93
+ } from "@introspection-ai/recipes";
94
+
95
+ const recipe = resolveRecipe({ recipeDir: "./my-recipe" });
96
+ const handle = await createAgentSession({
97
+ recipe,
98
98
  agentName: "agent",
99
- });
100
- ```
101
-
102
- ```ts
103
- import { createRecipeSession } from "@introspection-ai/recipes/session";
104
-
105
- const handle = await createRecipeSession({
106
- recipeDir: "./my-recipe",
107
99
  cwd: "./workspace",
108
- agentName: "agent",
109
100
  credentials,
110
101
  mcpBindings,
111
102
  sessionManager,
@@ -113,67 +104,63 @@ const handle = await createRecipeSession({
113
104
  });
114
105
 
115
106
  await handle.session.prompt("Start the task");
107
+ await handle.session.prompt("/review src/auth.ts");
116
108
  await handle.dispose();
117
109
  ```
118
110
 
119
- ```ts
120
- import { runRecipe } from "@introspection-ai/recipes/run";
111
+ `createAgentSession` is the single host boundary for an inspected Recipe.
112
+ It selects the requested agent from that immutable graph and constructs a
113
+ standard Pi `AgentSession`. The host still owns task
114
+ lifecycle, durable state, auth, networking, isolation, protocol translation,
115
+ and deployment.
121
116
 
122
- const result = await runRecipe({
123
- recipeDir: "./my-recipe",
124
- cwd: "./workspace",
125
- prompt: "Produce the report",
126
- });
127
- ```
128
-
129
- `createRecipeSession` is the primary host boundary. It owns Recipe semantics
130
- and Pi session construction. The host still owns task lifecycle, durable state,
131
- auth, networking, isolation, protocol translation, and deployment.
132
-
133
- See [Runtime library](docs/runtime-library.md) for the complete API boundary and
134
- [host conformance](docs/runtime-library.md#host-conformance) for compatibility
117
+ See [Host API](docs/host-api.md) for the complete boundary and
118
+ [host conformance](docs/host-api.md#host-conformance) for compatibility
135
119
  tests.
136
120
 
137
121
  ## Public exports
138
122
 
139
- - `@introspection-ai/recipes` — core Recipe types and runtime helpers
123
+ - `@introspection-ai/recipes` — the two primary operations:
124
+ `resolveRecipe` and `createAgentSession`
140
125
  - `@introspection-ai/recipes/recipe` — resolve a Recipe into session inputs
141
126
  - `@introspection-ai/recipes/session` — create a live Pi Recipe session
142
- - `@introspection-ai/recipes/run` — execute one Recipe turn
127
+ - `@introspection-ai/recipes/mcp` — MCP declarations, bindings, and selection
143
128
  - `@introspection-ai/recipes/pi-extension` — Pi extension entrypoint
144
- - `@introspection-ai/recipes/pi` — shared subagent tool and controller types
129
+ - `@introspection-ai/recipes/extensions` — session identity and conditional
130
+ Recipe extension helpers
131
+ - `@introspection-ai/recipes/agents` — portable agent-run controller and tool
132
+ contract
145
133
  - `@introspection-ai/recipes/interactions` — portable user-input and approval contract
146
- - `@introspection-ai/recipes/inspect` — derive host requirements
134
+ - `@introspection-ai/recipes/inspect` — inspect resolved inheritance,
135
+ capabilities, package closure, host requirements, and runtime boundaries
147
136
  - `@introspection-ai/recipes/test-utils` — host conformance cases
148
137
 
149
138
  The package intentionally has no `recipes` executable and no generic HTTP
150
139
  server. The `introspection` CLI owns authoring and local operation. Hosting
151
- adapters and deployment cookbooks belong outside this runtime package.
140
+ adapters and deployment cookbooks belong outside this package.
152
141
 
153
142
  ## Validation
154
143
 
155
- The format validator is independently reusable:
144
+ `introspection check` is the supported Recipe validation command:
156
145
 
157
- - [`pi-recipe-check`](https://crates.io/crates/pi-recipe-check) — Rust crate and
158
- standalone validator
159
- - [`pi-recipe-check`](https://pypi.org/project/pi-recipe-check/) — Python
160
- bindings for validating in-memory Recipe snapshots
146
+ ```bash
147
+ introspection check
148
+ ```
161
149
 
162
- The Introspection CLI embeds the same validation engine used by managed
163
- deployments.
150
+ Every `pi --recipe` launch automatically runs the same Recipe Format validator
151
+ before constructing a session. Invalid Recipes stop Pi rather than falling back
152
+ to an unconfigured agent. `introspection check` remains the explicit command
153
+ for manual and CI validation.
164
154
 
165
155
  ## Documentation
166
156
 
157
+ - [Recipe workflow](docs/recipe-flow.md)
167
158
  - [Recipe Format](docs/recipe-format.md)
168
- - [Runtime library](docs/runtime-library.md)
159
+ - [Host API](docs/host-api.md)
169
160
  - [Pi extension](docs/pi-extension.md)
170
161
  - [Agent composition](docs/agent-composition.md)
171
162
  - [Interactions](docs/interactions.md)
172
163
  - [MCP configuration](docs/mcp-configuration.md)
173
- - [Deployment configuration](docs/deployment-configuration.md)
174
- - [Recipe judges](docs/recipe-judges.md)
175
- - [Recipe eval declarations](docs/recipe-evals.md)
176
- - [Migration from `@introspection-ai/pi-recipes`](docs/migration.md)
177
164
 
178
165
  ## Contributing
179
166
 
@@ -1,4 +1,5 @@
1
1
  import { type ToolDefinition } from "@earendil-works/pi-coding-agent";
2
+ /** Portable lifecycle contract for Recipe agent runs. */
2
3
  export type AgentRunStatus = "running" | "completed" | "failed" | "interrupted" | "closed";
3
4
  export interface AgentNestedToolSummary {
4
5
  toolName: string;
@@ -35,8 +36,10 @@ export interface AgentRunController {
35
36
  message(id: string, message: string): Promise<AgentRunSummary>;
36
37
  interrupt(id: string): Promise<AgentRunSummary>;
37
38
  close(id: string): Promise<AgentRunSummary>;
39
+ /** Release every run and resource owned by this session's controller. */
40
+ shutdown(): Promise<void>;
38
41
  }
39
42
  export declare function createAgentTool(controller: AgentRunController, agents: ReadonlyMap<string, unknown>, opts?: {
40
43
  acknowledgeCompletions?(ids: readonly string[]): void;
41
44
  }): ToolDefinition;
42
- //# sourceMappingURL=agent-tool.d.ts.map
45
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGlF,yDAAyD;AACzD,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,WAAW,GACX,QAAQ,GACR,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,KAAK,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/D,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,yEAAyE;IACzE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAyED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,GAAE;IAAE,sBAAsB,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;CAAO,GACnE,cAAc,CAuGhB"}
@@ -156,4 +156,4 @@ export function createAgentTool(controller, agents, opts = {}) {
156
156
  },
157
157
  });
158
158
  }
159
- //# sourceMappingURL=agent-tool.js.map
159
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { forAgent, forRecipeSession, getRecipeSessionContext, } from "../extensions.js";
2
+ export type { RecipeExtensionSessionContext } from "../extensions.js";
3
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/api/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { forAgent, forRecipeSession, getRecipeSessionContext, } from "../extensions.js";
2
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/api/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { formatMcpConfigurationDiagnostics, materializeMcpSession, materializeSessionMcpCli, McpBindingError, normalizeMcpServerId, preloadMcpCatalogs, resolveAgentMcpSelections, resolveMcpLocalConfigPath, } from "../mcp.js";
2
+ export type { LocalMcpServer, MaterializedMcpSession, MaterializeMcpSessionOptions, McpConfigurationDiagnostic, McpLocalConfig, McpSessionConfig, McpSessionServer, McpToolCatalogEntry, } from "../mcp.js";
3
+ export type { ScopedMcpToolSelection } from "../mcp-policy.js";
4
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/api/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { formatMcpConfigurationDiagnostics, materializeMcpSession, materializeSessionMcpCli, McpBindingError, normalizeMcpServerId, preloadMcpCatalogs, resolveAgentMcpSelections, resolveMcpLocalConfigPath, } from "../mcp.js";
2
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/api/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createAgentSession, RecipeCredentialError, RecipeMcpEnvironmentInUseError, RecipeModelError, RecipeModelTransportError, } from "../session.js";
2
+ export type { CreateAgentSessionOptions, RecipeSessionHandle, RecipeSessionOtelOptions, } from "../session.js";
3
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createAgentSession, RecipeCredentialError, RecipeMcpEnvironmentInUseError, RecipeModelError, RecipeModelTransportError, } from "../session.js";
2
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
@@ -1,12 +1,13 @@
1
- import { type CredentialStore } from "@earendil-works/pi-ai";
2
- import { type ModelRegistry, ModelRuntime } from "@earendil-works/pi-coding-agent";
1
+ import type { CredentialStore } from "@earendil-works/pi-ai";
2
+ import { type ModelRegistry } from "@earendil-works/pi-coding-agent";
3
+ import { type ResolvedRecipe } from "./recipe/resolve.js";
3
4
  export interface CreateRecipeChildAgentRunnerOptions {
4
- recipeDir: string;
5
+ /** Immutable Recipe graph shared with the root Pi session. */
6
+ recipe: ResolvedRecipe;
5
7
  workspaceDir: string;
6
8
  agentName: string;
7
9
  env?: NodeJS.ProcessEnv;
8
10
  credentials?: CredentialStore;
9
- modelRuntime?: ModelRuntime;
10
11
  modelRegistry?: ModelRegistry;
11
12
  onAssistantMessage?: (text: string, stream: "delta" | "final") => void;
12
13
  onToolEvent?: (event: RecipeChildToolEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"child-agent.d.ts","sourceRoot":"","sources":["../src/child-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,EAGL,KAAK,aAAa,EAClB,YAAY,EAKb,MAAM,iCAAiC,CAAC;AAsBzC,MAAM,WAAW,mCAAmC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC;IACvE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,IAAI,EAAE,mCAAmC,KACtC,sBAAsB,CAAC;AAE5B,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAgGN,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAcxD;AAmMD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,mCAAmC,GACxC,sBAAsB,CAExB"}
1
+ {"version":3,"file":"child-agent.d.ts","sourceRoot":"","sources":["../src/child-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EACL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,mCAAmC;IAClD,8DAA8D;IAC9D,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC;IACvE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,IAAI,EAAE,mCAAmC,KACtC,sBAAsB,CAAC;AAE5B,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAsBN,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAcxD;AAiJD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,mCAAmC,GACxC,sBAAsB,CAExB"}
@@ -1,68 +1,7 @@
1
- import { getEnvApiKey, getModel } from "@earendil-works/pi-ai/compat";
2
- import { InMemoryCredentialStore } from "@earendil-works/pi-ai";
3
- import { createAgentSessionFromServices, createAgentSessionServices, ModelRuntime, SessionManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
4
1
  import { autoResolveInteractions } from "./interactions.js";
5
- import { loadRecipeSystemPrompt, REQUIRED_RECIPE_AGENT_FIELDS, resolveRecipeAgentDefinition, validateResolvedRecipeAgentDefinition, } from "./recipe-agent.js";
6
- import { packageResourcePaths, readPiPackageManifest, } from "./recipe-package.js";
7
- import { resolveAgentSkillPaths } from "./recipe-skills.js";
8
- import { applyRecipeAgentModelConfigToModel, applyRecipeAgentModelConfigToSession, } from "./recipe-model.js";
9
- import { executableRecipeToolNames, } from "./mcp.js";
10
- function parseModelSpec(spec) {
11
- const slash = spec.indexOf("/");
12
- if (slash < 0) {
13
- throw new Error(`Invalid recipe model "${spec}" - expected "<provider>/<model_id>"`);
14
- }
15
- const provider = spec.slice(0, slash);
16
- const modelId = spec.slice(slash + 1);
17
- const lookupProvider = provider === "gemini" ? "google" : provider;
18
- return { provider, modelId, lookupProvider };
19
- }
20
- function modelFromSpec(spec, modelRegistry) {
21
- const { modelId, lookupProvider } = parseModelSpec(spec);
22
- return (modelRegistry?.find(lookupProvider, modelId) ??
23
- getModel(lookupProvider, modelId));
24
- }
25
- async function modelRuntimeForChildAgent(model, opts) {
26
- if (opts.modelRuntime)
27
- return opts.modelRuntime;
28
- const credentials = opts.credentials ?? new InMemoryCredentialStore();
29
- if (!opts.credentials) {
30
- // Resolve the child's API key up front: prefer the host registry (so a
31
- // key configured inside Pi flows to children), then provider env keys.
32
- let apiKey;
33
- let credentialEnv;
34
- if (opts.modelRegistry) {
35
- const auth = await opts.modelRegistry.getApiKeyAndHeaders(model);
36
- if (auth.ok) {
37
- apiKey = auth.apiKey;
38
- credentialEnv = auth.env;
39
- if (auth.headers) {
40
- model.headers = { ...(model.headers ?? {}), ...auth.headers };
41
- }
42
- }
43
- }
44
- const env = opts.env ?? process.env;
45
- apiKey ??=
46
- getEnvApiKey(model.provider) ??
47
- env[`${model.provider.toUpperCase()}_API_KEY`];
48
- if (!apiKey && Object.keys(model.headers ?? {}).length === 0) {
49
- throw new Error(`${model.provider.toUpperCase()}_API_KEY is required when the background agent is not running inside Pi`);
50
- }
51
- await credentials.modify(model.provider, async () => ({
52
- type: "api_key",
53
- ...(apiKey ? { key: apiKey } : {}),
54
- ...(credentialEnv ? { env: credentialEnv } : {}),
55
- }));
56
- }
57
- return ModelRuntime.create({ credentials, modelsPath: null });
58
- }
59
- function applySystemInstructions(base, instructions) {
60
- if (!instructions)
61
- return base;
62
- if (instructions.mode === "replace")
63
- return instructions.content;
64
- return [base, instructions.content].filter(Boolean).join("\n\n");
65
- }
2
+ import { createIsolatedChildSession } from "./child-session.js";
3
+ import { resolveRecipeCredentials, resolveRecipeModel, } from "./model-binding.js";
4
+ import { applyRecipeAgentModelConfigToModel } from "./recipe-model.js";
66
5
  function asRecord(value) {
67
6
  return value && typeof value === "object" && !Array.isArray(value)
68
7
  ? value
@@ -115,7 +54,7 @@ function messageFromEvent(event) {
115
54
  class RecipeChildAgentSessionRunner {
116
55
  opts;
117
56
  session = null;
118
- unsubscribe = null;
57
+ handle = null;
119
58
  assistantStreamedText = false;
120
59
  constructor(opts) {
121
60
  this.opts = opts;
@@ -182,59 +121,30 @@ class RecipeChildAgentSessionRunner {
182
121
  async start() {
183
122
  if (this.session)
184
123
  return;
185
- const { agentName, agent } = resolveRecipeAgentDefinition({
186
- recipeDir: this.opts.recipeDir,
187
- agentName: this.opts.agentName,
188
- });
189
- if (!agent) {
190
- throw new Error(`Agent not found: ${agentName}`);
191
- }
192
- const validationFindings = validateResolvedRecipeAgentDefinition({
193
- recipeDir: this.opts.recipeDir,
194
- agentName,
195
- requireExplicitName: true,
196
- requiredFields: REQUIRED_RECIPE_AGENT_FIELDS,
197
- });
198
- const validationErrors = validationFindings.filter((finding) => finding.severity !== "warning");
199
- if (validationErrors.length > 0) {
200
- throw new Error(validationErrors.map((finding) => finding.message).join("\n"));
201
- }
202
- const modelSpec = agent.model?.name;
203
- if (!modelSpec) {
204
- throw new Error(`Agent "${agentName}" must declare model.name`);
205
- }
206
- const model = applyRecipeAgentModelConfigToModel(modelFromSpec(modelSpec, this.opts.modelRegistry), agent.modelConfig);
207
- const modelRuntime = await modelRuntimeForChildAgent(model, this.opts);
208
- const services = await createAgentSessionServices({
209
- cwd: this.opts.workspaceDir,
210
- agentDir: this.opts.recipeDir,
211
- modelRuntime,
212
- settingsManager: SettingsManager.create(this.opts.workspaceDir, this.opts.recipeDir),
213
- resourceLoaderOptions: {
214
- noSkills: true,
215
- additionalSkillPaths: resolveAgentSkillPaths(this.opts.recipeDir, packageResourcePaths(readPiPackageManifest(this.opts.recipeDir), "skills"), agent.skills),
216
- systemPromptOverride: (base) => applySystemInstructions(loadRecipeSystemPrompt(this.opts.recipeDir) ?? base, agent.systemInstructions),
217
- },
218
- });
219
- // Delegated recipe agents are intentionally one level deep. An agent
220
- // selected as the root session gets the dynamic `agent` tool from the
221
- // extension, while the same definition running as a child never does.
222
- const executableTools = executableRecipeToolNames(agent.tools).filter((tool) => tool !== "agent");
223
- const created = await createAgentSessionFromServices({
224
- services,
225
- sessionManager: SessionManager.inMemory(this.opts.workspaceDir),
124
+ const resolved = this.opts.recipe.selectAgent(this.opts.agentName);
125
+ const model = applyRecipeAgentModelConfigToModel(resolveRecipeModel(resolved.modelSpec, this.opts.modelRegistry), resolved.modelConfig);
126
+ const credentials = await resolveRecipeCredentials({
127
+ provider: model.provider,
128
+ env: this.opts.env ?? process.env,
226
129
  model,
227
- ...(agent.model?.thinkingLevel
228
- ? { thinkingLevel: agent.model.thinkingLevel }
130
+ ...(this.opts.credentials
131
+ ? { credentials: this.opts.credentials }
132
+ : {}),
133
+ ...(this.opts.modelRegistry
134
+ ? { modelRegistry: this.opts.modelRegistry }
229
135
  : {}),
230
- tools: executableTools,
231
136
  });
232
- this.session = created.session;
233
- applyRecipeAgentModelConfigToSession(this.session, agent.modelConfig);
234
- await this.session.bindExtensions({});
235
- this.unsubscribe = this.session.subscribe((event) => {
236
- this.handleSessionEvent(event);
137
+ this.handle = await createIsolatedChildSession({
138
+ recipe: this.opts.recipe,
139
+ agentName: resolved.name,
140
+ cwd: this.opts.workspaceDir,
141
+ env: this.opts.env ?? process.env,
142
+ credentials,
143
+ credentialsResolved: true,
144
+ modelOverride: model,
145
+ onEvent: (event) => this.handleSessionEvent(event),
237
146
  });
147
+ this.session = this.handle.session;
238
148
  }
239
149
  async prompt(prompt) {
240
150
  await this.start();
@@ -256,9 +166,8 @@ class RecipeChildAgentSessionRunner {
256
166
  await this.session?.abort();
257
167
  }
258
168
  async shutdown() {
259
- this.unsubscribe?.();
260
- this.unsubscribe = null;
261
- this.session?.dispose();
169
+ await this.handle?.dispose();
170
+ this.handle = null;
262
171
  this.session = null;
263
172
  }
264
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"child-agent.js","sourceRoot":"","sources":["../src/child-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"child-agent.js","sourceRoot":"","sources":["../src/child-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { CredentialStore, Model } from "@earendil-works/pi-ai";
2
+ import type { AgentSessionEvent } from "@earendil-works/pi-coding-agent";
3
+ import type { ResolvedRecipe } from "./recipe/resolve.js";
4
+ import { type CreateAgentSessionInternalOptions, type RecipeSessionHandle, type RecipeSessionOtelOptions } from "./session.js";
5
+ export interface CreateIsolatedChildSessionOptions {
6
+ recipe: ResolvedRecipe;
7
+ agentName: string;
8
+ cwd: string;
9
+ env: NodeJS.ProcessEnv;
10
+ credentials?: CredentialStore;
11
+ credentialsResolved?: boolean;
12
+ modelOverride?: Model<any>;
13
+ otel?: RecipeSessionOtelOptions;
14
+ onEvent?: (event: AgentSessionEvent) => void;
15
+ sessionFactory?: (options: CreateAgentSessionInternalOptions) => Promise<RecipeSessionHandle>;
16
+ }
17
+ /**
18
+ * Shared child-session primitive used by both the embedded and interactive Pi
19
+ * controllers. It owns the child's private MCP state and always disables
20
+ * recursive delegation.
21
+ */
22
+ export declare function createIsolatedChildSession(opts: CreateIsolatedChildSessionOptions): Promise<RecipeSessionHandle>;
23
+ //# sourceMappingURL=child-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-session.d.ts","sourceRoot":"","sources":["../src/child-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,iCAAiC,KACvC,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,iCAAiC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAkC9B"}
@@ -0,0 +1,48 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { createAgentSessionInternal, } from "./session.js";
5
+ /**
6
+ * Shared child-session primitive used by both the embedded and interactive Pi
7
+ * controllers. It owns the child's private MCP state and always disables
8
+ * recursive delegation.
9
+ */
10
+ export async function createIsolatedChildSession(opts) {
11
+ const mcpRuntimeDir = await mkdtemp(join(tmpdir(), "recipes-child-mcp-"));
12
+ try {
13
+ const handle = await (opts.sessionFactory ?? createAgentSessionInternal)({
14
+ recipe: opts.recipe,
15
+ agentName: opts.agentName,
16
+ cwd: opts.cwd,
17
+ env: { ...opts.env },
18
+ ...(opts.credentials ? { credentials: opts.credentials } : {}),
19
+ ...(opts.credentialsResolved ? { credentialsResolved: true } : {}),
20
+ ...(opts.modelOverride ? { modelOverride: opts.modelOverride } : {}),
21
+ ...(opts.otel ? { otel: opts.otel } : {}),
22
+ ...(opts.onEvent ? { onEvent: opts.onEvent } : {}),
23
+ mcpRuntimeDir,
24
+ runController: null,
25
+ sessionRole: "subagent",
26
+ });
27
+ let disposed = false;
28
+ return {
29
+ ...handle,
30
+ async dispose() {
31
+ if (disposed)
32
+ return;
33
+ disposed = true;
34
+ try {
35
+ await handle.dispose();
36
+ }
37
+ finally {
38
+ await rm(mcpRuntimeDir, { recursive: true, force: true });
39
+ }
40
+ },
41
+ };
42
+ }
43
+ catch (error) {
44
+ await rm(mcpRuntimeDir, { recursive: true, force: true });
45
+ throw error;
46
+ }
47
+ }
48
+ //# sourceMappingURL=child-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-session.js","sourceRoot":"","sources":["../src/child-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EACL,0BAA0B,GAI3B,MAAM,cAAc,CAAC;AAiBtB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAuC;IAEvC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,0BAA0B,CAAC,CAAC;YACvE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACpB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,aAAa;YACb,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO;YACL,GAAG,MAAM;YACT,KAAK,CAAC,OAAO;gBACX,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,CAAC;wBAAS,CAAC;oBACT,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}