@usine/agents 0.3.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 (114) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +100 -30
  3. package/dist/child-host/child-host.d.ts +90 -0
  4. package/dist/child-host/child-host.d.ts.map +1 -0
  5. package/dist/child-host/child-host.js +119 -0
  6. package/dist/child-host/child-host.js.map +1 -0
  7. package/dist/child-host/command.d.ts +22 -0
  8. package/dist/child-host/command.d.ts.map +1 -0
  9. package/dist/child-host/command.js +43 -0
  10. package/dist/child-host/command.js.map +1 -0
  11. package/dist/openai-prices.d.ts +8 -0
  12. package/dist/openai-prices.d.ts.map +1 -0
  13. package/dist/openai-prices.js +28 -0
  14. package/dist/openai-prices.js.map +1 -0
  15. package/dist/pi/authentication.d.ts +11 -2
  16. package/dist/pi/authentication.d.ts.map +1 -1
  17. package/dist/pi/authentication.js +15 -2
  18. package/dist/pi/authentication.js.map +1 -1
  19. package/dist/pi/children.d.ts +1 -4
  20. package/dist/pi/children.d.ts.map +1 -1
  21. package/dist/pi/children.js +1 -4
  22. package/dist/pi/children.js.map +1 -1
  23. package/dist/pi/claude/claude.d.ts +10 -0
  24. package/dist/pi/claude/claude.d.ts.map +1 -0
  25. package/dist/pi/claude/claude.js +610 -0
  26. package/dist/pi/claude/claude.js.map +1 -0
  27. package/dist/pi/claude/codec.d.ts +67 -0
  28. package/dist/pi/claude/codec.d.ts.map +1 -0
  29. package/dist/pi/claude/codec.js +140 -0
  30. package/dist/pi/claude/codec.js.map +1 -0
  31. package/dist/pi/{claude.d.ts → claude/sdk.d.ts} +11 -10
  32. package/dist/pi/claude/sdk.d.ts.map +1 -0
  33. package/dist/pi/claude/sdk.js +63 -0
  34. package/dist/pi/claude/sdk.js.map +1 -0
  35. package/dist/pi/codex/account.d.ts +11 -5
  36. package/dist/pi/codex/account.d.ts.map +1 -1
  37. package/dist/pi/codex/account.js +23 -6
  38. package/dist/pi/codex/account.js.map +1 -1
  39. package/dist/pi/codex/app-server.d.ts +19 -7
  40. package/dist/pi/codex/app-server.d.ts.map +1 -1
  41. package/dist/pi/codex/app-server.js +41 -36
  42. package/dist/pi/codex/app-server.js.map +1 -1
  43. package/dist/pi/codex/codec.d.ts +10 -84
  44. package/dist/pi/codex/codec.d.ts.map +1 -1
  45. package/dist/pi/codex/codec.js +18 -80
  46. package/dist/pi/codex/codec.js.map +1 -1
  47. package/dist/pi/codex/codex.d.ts +0 -1
  48. package/dist/pi/codex/codex.d.ts.map +1 -1
  49. package/dist/pi/codex/codex.js +89 -18
  50. package/dist/pi/codex/codex.js.map +1 -1
  51. package/dist/pi/conversation.d.ts +33 -12
  52. package/dist/pi/conversation.d.ts.map +1 -1
  53. package/dist/pi/conversation.js +58 -18
  54. package/dist/pi/conversation.js.map +1 -1
  55. package/dist/pi/pi.d.ts +1 -4
  56. package/dist/pi/pi.d.ts.map +1 -1
  57. package/dist/pi/pi.js +29 -175
  58. package/dist/pi/pi.js.map +1 -1
  59. package/dist/pi/sdk.d.ts +18 -15
  60. package/dist/pi/sdk.d.ts.map +1 -1
  61. package/dist/pi/sdk.js +45 -55
  62. package/dist/pi/sdk.js.map +1 -1
  63. package/dist/pi/session.d.ts +13 -14
  64. package/dist/pi/session.d.ts.map +1 -1
  65. package/dist/pi/session.js +63 -24
  66. package/dist/pi/session.js.map +1 -1
  67. package/dist/pi/turns.d.ts +7 -7
  68. package/dist/pi/turns.d.ts.map +1 -1
  69. package/dist/pi/turns.js +22 -9
  70. package/dist/pi/turns.js.map +1 -1
  71. package/dist/pi/usage.d.ts +36 -22
  72. package/dist/pi/usage.d.ts.map +1 -1
  73. package/dist/pi/usage.js +79 -33
  74. package/dist/pi/usage.js.map +1 -1
  75. package/dist/preflight/command.d.ts +16 -4
  76. package/dist/preflight/command.d.ts.map +1 -1
  77. package/dist/preflight/command.js +29 -27
  78. package/dist/preflight/command.js.map +1 -1
  79. package/dist/preflight/preflight.d.ts +19 -7
  80. package/dist/preflight/preflight.d.ts.map +1 -1
  81. package/dist/preflight/preflight.js +73 -32
  82. package/dist/preflight/preflight.js.map +1 -1
  83. package/dist/prompt.d.ts +12 -9
  84. package/dist/prompt.d.ts.map +1 -1
  85. package/dist/prompt.js +33 -4
  86. package/dist/prompt.js.map +1 -1
  87. package/dist/protocol/codex.d.ts +122 -7
  88. package/dist/protocol/codex.d.ts.map +1 -1
  89. package/dist/protocol/codex.js +109 -1
  90. package/dist/protocol/codex.js.map +1 -1
  91. package/dist/protocol/count.d.ts +4 -0
  92. package/dist/protocol/count.d.ts.map +1 -0
  93. package/dist/protocol/count.js +4 -0
  94. package/dist/protocol/count.js.map +1 -0
  95. package/dist/runtime.d.ts +110 -55
  96. package/dist/runtime.d.ts.map +1 -1
  97. package/dist/runtime.js +114 -27
  98. package/dist/runtime.js.map +1 -1
  99. package/package.json +35 -19
  100. package/dist/pi/claude.d.ts.map +0 -1
  101. package/dist/pi/claude.js +0 -302
  102. package/dist/pi/claude.js.map +0 -1
  103. package/dist/pi/live.d.ts +0 -4
  104. package/dist/pi/live.d.ts.map +0 -1
  105. package/dist/pi/live.js +0 -11
  106. package/dist/pi/live.js.map +0 -1
  107. package/dist/pi/subagents.d.ts +0 -29
  108. package/dist/pi/subagents.d.ts.map +0 -1
  109. package/dist/pi/subagents.js +0 -120
  110. package/dist/pi/subagents.js.map +0 -1
  111. package/dist/pi/thinking.d.ts +0 -8
  112. package/dist/pi/thinking.d.ts.map +0 -1
  113. package/dist/pi/thinking.js +0 -15
  114. package/dist/pi/thinking.js.map +0 -1
package/dist/pi/pi.js CHANGED
@@ -1,27 +1,19 @@
1
- import { BrainSpec, ModelId } from "@usine/core/agent/brain";
2
- import { AgentSessionId, ChildSession, ParentSession, SessionStarted, } from "@usine/core/agent/session";
3
- import { Deferred, Effect, Fiber, Layer, Option, Stream } from "effect";
4
- import { assemblePrompt } from "../prompt.js";
5
- import { AgentRuntime, ChildBackend, ChildSessionBudgetExceededError, PiChildBackend, PoolUnavailableError, SessionOperationError, UnknownModelError, UnsupportedEffortError, } from "../runtime.js";
1
+ import { BrainSpec } from "@usine/core/agent/brain";
2
+ import { ChildSession, SessionStarted } from "@usine/core/agent/session";
3
+ import { Deferred, Effect, Layer, Option, Stream } from "effect";
4
+ import { AgentResultError, PiChildBackend, PoolUnavailableError, SessionOperationError, UnknownModelError, UnsupportedEffortError, } from "../runtime.js";
6
5
  import { sessionChannel, subscribePiSession } from "./session.js";
7
6
  import { PiSdk, usePiStart } from "./sdk.js";
8
- import { subagentsExtension } from "./subagents.js";
9
7
  import { piPauseGate, piTurns } from "./turns.js";
10
8
  export { PiSdk, piSdkLive, } from "./sdk.js";
11
- const parentError = (operation, request, message, cause) => new SessionOperationError({
12
- operation,
13
- sessionId: Option.some(AgentSessionId.make(`parent:${request.spec.attemptId}`)),
14
- message,
15
- cause,
16
- });
17
9
  const childError = (operation, request, message, cause) => new SessionOperationError({
18
10
  operation,
19
11
  sessionId: Option.some(request.session.id),
20
12
  message,
21
13
  cause,
22
14
  });
23
- const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (role, started) {
24
- yield* Effect.logError(`Pi ${role} rejected an unsupported effort`, {
15
+ const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (started) {
16
+ yield* Effect.logError("Pi child rejected an unsupported effort", {
25
17
  effort: started.effort,
26
18
  model: started.model,
27
19
  supported: started.supported,
@@ -30,7 +22,7 @@ const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (role, sta
30
22
  harness: "pi",
31
23
  model: started.model,
32
24
  effort: started.effort,
33
- message: `Pi model ${started.model} does not support effort ${started.effort}; supported: ${started.supported.join(", ")}`,
25
+ message: `Pi model "${started.model}" doesn't support effort ${started.effort}. Supported efforts: ${started.supported.join(", ")}`,
34
26
  });
35
27
  });
36
28
  const makePiChild = Effect.gen(function* () {
@@ -44,15 +36,24 @@ const makePiChild = Effect.gen(function* () {
44
36
  parentSessionId: request.session.parentId,
45
37
  sessionId: request.session.id,
46
38
  });
39
+ if (request.host._tag === "RemoteShell") {
40
+ yield* Effect.logError("Pi child refused a remote host", {
41
+ destination: request.host.destination,
42
+ });
43
+ return yield* new AgentResultError({
44
+ sessionId: Option.some(request.session.id),
45
+ message: "Pi children run only on local workers: their tools run in the orchestrator process, not on the worker",
46
+ });
47
+ }
47
48
  yield* Effect.logInfo("Launching Pi child session");
48
49
  const gate = yield* piPauseGate;
49
50
  return yield* usePiStart((signal) => sdk.start({
50
51
  cwd: request.cwd,
52
+ environment: Option.some(request.environment),
51
53
  extensions: [gate.extension],
52
- model: Option.some(request.session.brain.model),
54
+ model: request.session.brain.model,
53
55
  signal,
54
56
  thinkingLevel: request.session.brain.effort,
55
- toolMode: "repository",
56
57
  }), (cause) => childError("launch", request, "Pi child session failed to start", cause), (acquired) => Effect.gen(function* () {
57
58
  const started = acquired.result;
58
59
  if (started._tag === "UnknownModel") {
@@ -62,11 +63,11 @@ const makePiChild = Effect.gen(function* () {
62
63
  return yield* new UnknownModelError({
63
64
  harness: "pi",
64
65
  model: request.session.brain.model,
65
- message: `Pi does not expose model ${request.session.brain.model}`,
66
+ message: `Pi has no model "${request.session.brain.model}"`,
66
67
  });
67
68
  }
68
69
  if (started._tag === "UnsupportedEffort") {
69
- return yield* unsupportedEffort("child", started);
70
+ return yield* unsupportedEffort(started);
70
71
  }
71
72
  if (started._tag === "AuthenticationUnavailable") {
72
73
  yield* Effect.logError("Pi child has no credential for its model", {
@@ -77,7 +78,7 @@ const makePiChild = Effect.gen(function* () {
77
78
  harness: "pi",
78
79
  model: started.model,
79
80
  pool: "apiKeys",
80
- message: `Pi child model ${started.model} must use an API key`,
81
+ message: `Pi child model "${started.model}" must use an API key`,
81
82
  });
82
83
  }
83
84
  if (started._tag === "UnsupportedAuthentication") {
@@ -90,7 +91,7 @@ const makePiChild = Effect.gen(function* () {
90
91
  harness: "pi",
91
92
  model: started.model,
92
93
  pool: "apiKeys",
93
- message: `Pi child model ${started.model} must use an API key`,
94
+ message: `Pi child model "${started.model}" must use an API key`,
94
95
  });
95
96
  }
96
97
  if (started.pool !== "apiKeys") {
@@ -103,9 +104,14 @@ const makePiChild = Effect.gen(function* () {
103
104
  harness: "pi",
104
105
  model: started.model,
105
106
  pool: "apiKeys",
106
- message: `Pi child model ${started.model} must use an API key`,
107
+ message: `Pi child model "${started.model}" must use an API key`,
107
108
  });
108
109
  }
110
+ yield* Effect.logDebug("Pi child session started", {
111
+ model: started.model,
112
+ pool: started.pool,
113
+ tools: started.tools,
114
+ });
109
115
  const session = new ChildSession({
110
116
  id: request.session.id,
111
117
  parentId: request.session.parentId,
@@ -115,6 +121,7 @@ const makePiChild = Effect.gen(function* () {
115
121
  model: started.model,
116
122
  effort: request.session.brain.effort,
117
123
  }),
124
+ gatewayCredential: request.session.gatewayCredential,
118
125
  });
119
126
  const channel = yield* sessionChannel({
120
127
  label: "Pi child session",
@@ -122,7 +129,6 @@ const makePiChild = Effect.gen(function* () {
122
129
  });
123
130
  yield* channel.emit(new SessionStarted({ session }));
124
131
  const subscription = yield* subscribePiSession(started.session, session, channel);
125
- // After setup succeeds, the ambient scope closes both the subscription and the SDK session.
126
132
  yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
127
133
  const controls = yield* piTurns({
128
134
  session,
@@ -143,157 +149,5 @@ const makePiChild = Effect.gen(function* () {
143
149
  });
144
150
  return PiChildBackend.of({ launch });
145
151
  });
146
- const makePiParent = Effect.gen(function* () {
147
- const childBackend = yield* ChildBackend;
148
- const sdk = yield* PiSdk;
149
- const launch = Effect.fn("PiParentRuntime.launch")(function* (request, children) {
150
- const parentId = AgentSessionId.make(`parent:${request.spec.attemptId}`);
151
- yield* Effect.annotateCurrentSpan({
152
- agent: request.spec.agent.name,
153
- attemptId: request.spec.attemptId,
154
- effort: request.spec.agent.brain.effort,
155
- parentEffort: request.spec.parentEffort,
156
- parentModel: Option.getOrUndefined(request.spec.parentModel),
157
- repository: request.spec.repository,
158
- sessionId: parentId,
159
- });
160
- yield* Effect.logInfo("Launching Pi parent session");
161
- const gate = yield* piPauseGate;
162
- const channel = yield* sessionChannel({
163
- label: "Pi parent session",
164
- sessionId: parentId,
165
- });
166
- const childBudgetExceeded = yield* Deferred.make();
167
- // Pi calls the tool outside any usine fiber. Child programs still need
168
- // this fiber's services (stderr logging, tracing) and must end with this
169
- // launch scope, so the extension gets a runner instead of the default
170
- // runtime.
171
- const scope = yield* Effect.scope;
172
- const context = yield* Effect.context();
173
- const runChild = (program) => Effect.runPromise(program.pipe(Effect.provideContext(context), Effect.forkIn(scope), Effect.flatMap(Fiber.join)));
174
- return yield* usePiStart((signal) => sdk.start({
175
- cwd: request.cwd,
176
- extensions: [
177
- gate.extension,
178
- subagentsExtension({
179
- agent: request.spec.agent,
180
- backend: childBackend,
181
- cwd: request.cwd,
182
- emit: channel.emit,
183
- maxChildren: request.spec.maxChildren,
184
- onBudgetExceeded: (error) => Deferred.succeed(childBudgetExceeded, error).pipe(Effect.asVoid),
185
- parentId,
186
- register: children.register,
187
- run: runChild,
188
- }),
189
- ],
190
- model: request.spec.parentModel,
191
- signal,
192
- thinkingLevel: request.spec.parentEffort,
193
- toolMode: "orchestration",
194
- }), (cause) => parentError("launch", request, "Pi parent session failed to start", cause), (acquired) => Effect.gen(function* () {
195
- const started = acquired.result;
196
- if (started._tag === "UnknownModel") {
197
- const model = Option.getOrElse(request.spec.parentModel, () => ModelId.make("unknown"));
198
- yield* Effect.logError("Pi parent rejected an unknown model", {
199
- model,
200
- });
201
- return yield* new UnknownModelError({
202
- harness: "pi",
203
- model,
204
- message: `Pi does not expose model ${model}`,
205
- });
206
- }
207
- if (started._tag === "UnsupportedEffort") {
208
- return yield* unsupportedEffort("parent", started);
209
- }
210
- if (started._tag === "AuthenticationUnavailable") {
211
- yield* Effect.logError("Pi parent has no credential for its model", {
212
- model: started.model,
213
- requiredPool: started.requiredPool,
214
- });
215
- return yield* new PoolUnavailableError({
216
- harness: "pi",
217
- model: started.model,
218
- pool: started.requiredPool,
219
- message: `Pi parent model ${started.model} requires a credential from the ${started.requiredPool} pool`,
220
- });
221
- }
222
- if (started._tag === "UnsupportedAuthentication") {
223
- yield* Effect.logError("Pi parent model has unsupported OAuth authentication", {
224
- model: started.model,
225
- requiredPool: started.requiredPool,
226
- subscription: started.authentication.subscription,
227
- });
228
- return yield* new PoolUnavailableError({
229
- harness: "pi",
230
- model: started.model,
231
- pool: started.requiredPool,
232
- message: `Pi parent model ${started.model} requires a credential from the ${started.requiredPool} pool`,
233
- });
234
- }
235
- yield* Effect.annotateCurrentSpan({ parentPool: started.pool });
236
- yield* Effect.logInfo("Pi parent session authenticated", {
237
- model: started.model,
238
- pool: started.pool,
239
- });
240
- const parent = new ParentSession({
241
- id: parentId,
242
- agent: request.spec.agent.name,
243
- brain: new BrainSpec({
244
- harness: "pi",
245
- model: started.model,
246
- effort: request.spec.parentEffort,
247
- }),
248
- });
249
- yield* channel.emit(new SessionStarted({ session: parent }));
250
- const subscription = yield* subscribePiSession(started.session, parent, channel);
251
- // After setup succeeds, the ambient scope closes both the subscription and the SDK session.
252
- yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
253
- const prompt = assemblePrompt({
254
- repository: request.spec.repository,
255
- payload: request.spec.payload,
256
- agent: request.spec.agent.name,
257
- persona: request.spec.agent.persona,
258
- task: request.spec.task,
259
- });
260
- const abort = Effect.tryPromise({
261
- try: () => started.session.abort(),
262
- catch: (cause) => parentError("interrupt", request, "Could not interrupt Pi", cause),
263
- });
264
- // Fail the channel before aborting the SDK: abort settles the
265
- // in-flight prompt, and its fiber must find the result already
266
- // terminal instead of racing it to `channel.finish`.
267
- const budgetFailure = Deferred.await(childBudgetExceeded).pipe(Effect.tap((error) => Effect.logWarning("Stopping Pi parent after its child session budget was exceeded", {
268
- attemptedChildren: error.attemptedChildren,
269
- maxChildren: error.maxChildren,
270
- sessionId: parentId,
271
- })), Effect.flatMap((error) => channel.fail(error)), Effect.andThen(abort.pipe(Effect.catch((error) => Effect.logWarning("Pi parent kept running after its budget failure", {
272
- message: error.message,
273
- sessionId: parentId,
274
- })))));
275
- yield* Effect.forkScoped(budgetFailure);
276
- const controls = yield* piTurns({
277
- session: parent,
278
- sdk: started.session,
279
- channel,
280
- gate,
281
- prompt,
282
- lastText: subscription.lastText,
283
- error: (operation, cause) => parentError(operation, request, `Pi parent ${operation} failed`, cause),
284
- });
285
- return {
286
- session: parent,
287
- events: Stream.fromQueue(channel.events),
288
- ...controls,
289
- result: Deferred.await(channel.result),
290
- };
291
- }));
292
- });
293
- return AgentRuntime.of({ launch });
294
- });
295
- /** Provides the coordinating Pi parent; supply the child backend that will perform its delegated coding work. */
296
- export const piParentLayer = Layer.effect(AgentRuntime, makePiParent);
297
- /** Provides Pi coding sessions for tasks delegated by a parent. */
298
152
  export const piChildBackendLayer = Layer.effect(PiChildBackend, makePiChild);
299
153
  //# sourceMappingURL=pi.js.map
package/dist/pi/pi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/pi/pi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/pi/pi.ts"],"names":[],"mappings":"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"}
package/dist/pi/sdk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { createAgentSession, type AgentSessionEvent, type InlineExtension } from "@earendil-works/pi-coding-agent";
1
+ import { createAgentSession, type AgentSessionEvent, type CreateAgentSessionOptions, type InlineExtension, type ToolDefinition } from "@earendil-works/pi-coding-agent";
2
2
  import { Effort, ModelId } from "@usine/core/agent/brain";
3
3
  import { Context, Effect, Layer, Option } from "effect";
4
4
  import { type PiAuthentication, type PiPool } from "./authentication.ts";
@@ -9,29 +9,28 @@ export interface PiSession {
9
9
  readonly messages: ReadonlyArray<PiMessage>;
10
10
  readonly subscribe: (listener: (event: PiSessionEvent) => void) => () => void;
11
11
  readonly prompt: (prompt: string) => Promise<void>;
12
- readonly steer: (message: string) => Promise<void>;
12
+ readonly steer: (message: string) => Promise<"handled" | "queued" | void>;
13
13
  readonly abort: () => Promise<void>;
14
14
  readonly dispose: () => void;
15
15
  }
16
16
  export interface PiStartOptions {
17
17
  readonly cwd: string;
18
+ /** The complete environment of every command the bash tool runs; `None` inherits this process's environment. */
19
+ readonly environment: Option.Option<Readonly<Record<string, string>>>;
18
20
  readonly extensions: ReadonlyArray<InlineExtension>;
19
- readonly model: Option.Option<ModelId>;
21
+ readonly model: ModelId;
20
22
  readonly signal: AbortSignal;
21
23
  readonly thinkingLevel: Effort;
22
- readonly toolMode: "orchestration" | "repository";
23
24
  }
24
25
  export type PiStartResult = {
25
26
  readonly _tag: "AuthenticationUnavailable";
26
27
  readonly model: ModelId;
27
- readonly requiredPool: PiPool;
28
28
  } | {
29
29
  readonly _tag: "UnsupportedAuthentication";
30
30
  readonly authentication: Extract<PiAuthentication, {
31
31
  readonly _tag: "OAuth";
32
32
  }>;
33
33
  readonly model: ModelId;
34
- readonly requiredPool: PiPool;
35
34
  } | {
36
35
  readonly _tag: "UnknownModel";
37
36
  } | {
@@ -44,27 +43,31 @@ export type PiStartResult = {
44
43
  readonly model: ModelId;
45
44
  readonly pool: PiPool;
46
45
  readonly session: PiSession;
46
+ /** The names of the tools active in `session`. */
47
+ readonly tools: ReadonlyArray<string>;
47
48
  };
48
- /** The parent works only through usine extensions; repository tools belong to the harness children. */
49
- export declare const piParentSessionToolPolicy: {
50
- readonly noTools: "builtin";
51
- };
49
+ /** Returns a bash tool whose commands run with exactly `environment`; Pi's `PI_*` variables are not added. */
50
+ export declare const environmentBashTool: (cwd: string, environment: Readonly<Record<string, string>>) => ToolDefinition;
51
+ /**
52
+ * Returns the session options that give a Pi child exactly Pi's default tools. With `environment`,
53
+ * the bash tool runs its commands with exactly that environment.
54
+ */
55
+ export declare const piChildTools: (cwd: string, environment: Option.Option<Readonly<Record<string, string>>>) => Pick<CreateAgentSessionOptions, "customTools" | "tools">;
52
56
  declare const PiSdk_base: Context.ServiceClass<PiSdk, "@usine/agents/pi/PiSdk", {
53
57
  readonly start: (options: PiStartOptions) => Promise<PiStartResult>;
54
58
  }>;
55
- /** Opens a Pi session with the selected model and the tools allowed for its parent or child role. */
59
+ /** The service that starts a Pi session with the selected model and its repository tools. */
56
60
  export declare class PiSdk extends PiSdk_base {
57
61
  }
58
62
  export declare const piSdkLive: Layer.Layer<PiSdk, never, never>;
59
63
  export interface AcquiredPiStart {
60
64
  readonly result: PiStartResult;
61
- /** Safe to call twice: failed setup and the ambient scope may both request cleanup. */
65
+ /** Disposes the session; idempotent, because both failed setup and the enclosing scope can call it. */
62
66
  readonly dispose: () => void;
63
67
  }
64
68
  /**
65
- * Runs SDK startup so an interruption cannot leak a session. A result that
66
- * loses the race with interruption is disposed in its Promise continuation;
67
- * one already handed to `use` is disposed by `onExit`.
69
+ * Runs SDK startup so an interruption cannot leak a session: a result that arrives after the
70
+ * interruption is disposed when its Promise settles, and one passed to `use` is disposed on exit.
68
71
  */
69
72
  export declare const usePiStart: <A, E, R, E2>(start: (signal: AbortSignal) => Promise<PiStartResult>, onError: (cause: unknown) => E, use: (acquired: AcquiredPiStart) => Effect.Effect<A, E2, R>) => Effect.Effect<A, E | E2, R>;
70
73
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
package/dist/pi/sdk.js CHANGED
@@ -1,35 +1,45 @@
1
- import { createAgentSession, DefaultResourceLoader, getAgentDir, ModelRuntime, SessionManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
1
+ import { getSupportedThinkingLevels } from "@earendil-works/pi-ai";
2
+ import { createAgentSession, createBashToolDefinition, DefaultResourceLoader, defineTool, getAgentDir, ModelRuntime, SessionManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
2
3
  import { Effort, ModelId } from "@usine/core/agent/brain";
3
4
  import { Context, Effect, Exit, Layer, Option } from "effect";
4
- import { requiredPiPool, resolvePiPool, } from "./authentication.js";
5
- import { supportedThinkingLevels } from "./thinking.js";
6
- /** The parent works only through usine extensions; repository tools belong to the harness children. */
7
- export const piParentSessionToolPolicy = { noTools: "builtin" };
8
- /** Opens a Pi session with the selected model and the tools allowed for its parent or child role. */
5
+ import { piAuthentication, resolvePiPool, splitPiModel, } from "./authentication.js";
6
+ /** Returns a bash tool whose commands run with exactly `environment`; Pi's `PI_*` variables are not added. */
7
+ export const environmentBashTool = (cwd, environment) => {
8
+ const exact = (context) => ({ ...context, env: { ...environment } });
9
+ return defineTool(createBashToolDefinition(cwd, { exposeSessionEnvironment: false, spawnHook: exact }));
10
+ };
11
+ /**
12
+ * Pi's default tools, named so that the global `defaultTools` setting can't add a tool whose
13
+ * processes inherit this process's environment, such as `grep` or `find`.
14
+ */
15
+ const piChildToolNames = ["read", "bash", "edit", "write"];
16
+ /**
17
+ * Returns the session options that give a Pi child exactly Pi's default tools. With `environment`,
18
+ * the bash tool runs its commands with exactly that environment.
19
+ */
20
+ export const piChildTools = (cwd, environment) => ({
21
+ tools: [...piChildToolNames],
22
+ // A custom tool replaces the built-in tool of the same name.
23
+ customTools: Option.match(environment, {
24
+ onNone: () => [],
25
+ onSome: (exact) => [environmentBashTool(cwd, exact)],
26
+ }),
27
+ });
28
+ /** The service that starts a Pi session with the selected model and its repository tools. */
9
29
  export class PiSdk extends Context.Service()("@usine/agents/pi/PiSdk") {
10
30
  }
11
- const splitModel = (model) => {
12
- const separator = model.indexOf("/");
13
- return separator <= 0 || separator === model.length - 1
14
- ? undefined
15
- : [model.slice(0, separator), model.slice(separator + 1)];
16
- };
17
31
  export const piSdkLive = Layer.succeed(PiSdk)({
18
32
  start: async (options) => {
19
33
  const modelRuntime = await ModelRuntime.create({ signal: options.signal });
20
- let selected;
21
- if (Option.isSome(options.model)) {
22
- const parts = splitModel(options.model.value);
23
- if (parts === undefined)
24
- return { _tag: "UnknownModel" };
25
- selected = modelRuntime.getModel(parts[0], parts[1]);
26
- if (selected === undefined)
27
- return { _tag: "UnknownModel" };
28
- }
34
+ const parts = splitPiModel(options.model);
35
+ if (parts === undefined)
36
+ return { _tag: "UnknownModel" };
37
+ const selected = modelRuntime.getModel(parts.provider, parts.modelId);
38
+ if (selected === undefined)
39
+ return { _tag: "UnknownModel" };
29
40
  const agentDir = getAgentDir();
30
- // The worktree is repository-controlled input, so its `.pi/` settings,
31
- // SYSTEM.md, extensions, and skills never load. The subagents tool is an
32
- // inline factory, which the loader registers regardless.
41
+ // The worktree is untrusted, so its `.pi/` settings, SYSTEM.md, extensions, and skills are not
42
+ // loaded; inline extension factories, such as the pause gate, still register.
33
43
  const settingsManager = SettingsManager.create(options.cwd, agentDir, {
34
44
  projectTrusted: false,
35
45
  });
@@ -44,53 +54,33 @@ export const piSdkLive = Layer.succeed(PiSdk)({
44
54
  noThemes: true,
45
55
  });
46
56
  await resourceLoader.reload();
47
- const sessionOptions = {
57
+ const { session } = await createAgentSession({
58
+ ...piChildTools(options.cwd, options.environment),
48
59
  cwd: options.cwd,
60
+ model: selected,
49
61
  modelRuntime,
50
62
  resourceLoader,
51
63
  sessionManager: SessionManager.inMemory(options.cwd),
52
64
  settingsManager,
53
65
  thinkingLevel: options.thinkingLevel,
54
- };
55
- const toolScopedSessionOptions = options.toolMode === "orchestration"
56
- ? { ...sessionOptions, ...piParentSessionToolPolicy }
57
- : sessionOptions;
58
- const { session } = selected === undefined
59
- ? await createAgentSession(toolScopedSessionOptions)
60
- : await createAgentSession({ ...toolScopedSessionOptions, model: selected });
66
+ });
61
67
  let ownershipTransferred = false;
62
68
  try {
63
69
  const active = session.model;
64
70
  if (active === undefined)
65
71
  throw new Error("Pi started without an active model");
66
72
  const model = ModelId.make(`${active.provider}/${active.id}`);
67
- const supported = supportedThinkingLevels(active);
73
+ const supported = getSupportedThinkingLevels(active);
68
74
  if (!supported.includes(options.thinkingLevel)) {
69
75
  return { _tag: "UnsupportedEffort", effort: options.thinkingLevel, model, supported };
70
76
  }
71
- const resolvedAuthentication = await modelRuntime.checkAuth(active.provider, {
72
- signal: options.signal,
73
- });
74
- const authentication = resolvedAuthentication?.type === "api_key"
75
- ? { _tag: "ApiKey" }
76
- : resolvedAuthentication?.type === "oauth"
77
- ? {
78
- _tag: "OAuth",
79
- subscription: modelRuntime.getProvider(active.provider)?.auth.oauth?.isSubscription === true,
80
- }
81
- : undefined;
82
- const requiredPool = requiredPiPool(active.provider);
77
+ const authentication = piAuthentication(await modelRuntime.checkAuth(active.provider, { signal: options.signal }), modelRuntime.getProvider(active.provider)?.auth.oauth?.isSubscription === true);
83
78
  const pool = resolvePiPool(active.provider, authentication);
84
79
  if (authentication === undefined) {
85
- return { _tag: "AuthenticationUnavailable", model, requiredPool };
80
+ return { _tag: "AuthenticationUnavailable", model };
86
81
  }
87
82
  if (pool === undefined && authentication._tag === "OAuth") {
88
- return {
89
- _tag: "UnsupportedAuthentication",
90
- authentication,
91
- model,
92
- requiredPool,
93
- };
83
+ return { _tag: "UnsupportedAuthentication", authentication, model };
94
84
  }
95
85
  if (pool === undefined) {
96
86
  throw new Error("Pi could not map a configured API key to a billing pool");
@@ -101,6 +91,7 @@ export const piSdkLive = Layer.succeed(PiSdk)({
101
91
  model,
102
92
  pool,
103
93
  session,
94
+ tools: session.getActiveToolNames(),
104
95
  };
105
96
  }
106
97
  finally {
@@ -110,9 +101,8 @@ export const piSdkLive = Layer.succeed(PiSdk)({
110
101
  },
111
102
  });
112
103
  /**
113
- * Runs SDK startup so an interruption cannot leak a session. A result that
114
- * loses the race with interruption is disposed in its Promise continuation;
115
- * one already handed to `use` is disposed by `onExit`.
104
+ * Runs SDK startup so an interruption cannot leak a session: a result that arrives after the
105
+ * interruption is disposed when its Promise settles, and one passed to `use` is disposed on exit.
116
106
  */
117
107
  export const usePiStart = (start, onError, use) => Effect.suspend(() => {
118
108
  let acquired;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,GAKhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAGL,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAqD7B,8GAA8G;AAC9G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAW,EACX,WAA6C,EAC7B,EAAE;IAClB,MAAM,KAAK,GAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,UAAU,CACf,wBAAwB,CAAC,GAAG,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CACrF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAW,EACX,WAA4D,EACF,EAAE,CAAC,CAAC;IAC9D,KAAK,EAAE,CAAC,GAAG,gBAAgB,CAAC;IAC5B,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;QACrC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;QAChB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACrD,CAAC;CACH,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,OAAO,KAAM,SAAQ,OAAO,CAAC,OAAO,EAGvC,CAAC,wBAAwB,CAAC;CAAG;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,+FAA+F;QAC/F,8EAA8E;QAC9E,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;YACpE,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC;YAC/C,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,kBAAkB,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAC3C,eAAe;YACf,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC;YAC3C,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;YACjD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ;YACf,YAAY;YACZ,cAAc;YACd,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACpD,eAAe;YACf,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;QACH,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/C,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACxF,CAAC;YACD,MAAM,cAAc,GAAG,gBAAgB,CACrC,MAAM,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EACzE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAC/E,CAAC;YACF,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC5D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YACD,oBAAoB,GAAG,IAAI,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK;gBACL,IAAI;gBACJ,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE;aACpC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB;gBAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAQH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAsD,EACtD,OAA8B,EAC9B,GAA2D,EAC9B,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,IAAI,QAAqC,CAAC;IAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACd,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAChB,CAAC,MAAM,EAAE,EAAE;YACT,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,QAAQ,GAAG;gBACT,MAAM;gBACN,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,QAAQ;wBAAE,OAAO;oBACrB,QAAQ,GAAG,IAAI,CAAC;oBAChB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;wBAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1D,CAAC;aACF,CAAC;YACF,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC,CACF;QACH,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CACjB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EACnB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAC7C,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,UAAU,CAAC,iDAAiD,EAAE;gBAC1E,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;aAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,OAAO;YACZ,CAAC,CAAC,MAAM,CAAC,UAAU,CACf,+EAA+E,CAChF;YACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}