@usine/agents 0.1.0 → 0.2.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.
- package/README.md +33 -6
- package/dist/pi/authentication.d.ts +4 -4
- package/dist/pi/authentication.d.ts.map +1 -1
- package/dist/pi/authentication.js +2 -2
- package/dist/pi/authentication.js.map +1 -1
- package/dist/pi/children.d.ts +4 -1
- package/dist/pi/children.d.ts.map +1 -1
- package/dist/pi/children.js +4 -1
- package/dist/pi/children.js.map +1 -1
- package/dist/pi/claude.d.ts +6 -2
- package/dist/pi/claude.d.ts.map +1 -1
- package/dist/pi/claude.js +18 -11
- package/dist/pi/claude.js.map +1 -1
- package/dist/pi/codex/account.d.ts +11 -0
- package/dist/pi/codex/account.d.ts.map +1 -0
- package/dist/pi/codex/account.js +43 -0
- package/dist/pi/codex/account.js.map +1 -0
- package/dist/pi/codex/app-server.d.ts +15 -6
- package/dist/pi/codex/app-server.d.ts.map +1 -1
- package/dist/pi/codex/app-server.js +61 -22
- package/dist/pi/codex/app-server.js.map +1 -1
- package/dist/pi/codex/codex.d.ts +2 -0
- package/dist/pi/codex/codex.d.ts.map +1 -1
- package/dist/pi/codex/codex.js +54 -34
- package/dist/pi/codex/codex.js.map +1 -1
- package/dist/pi/live.d.ts +4 -0
- package/dist/pi/live.d.ts.map +1 -0
- package/dist/pi/{index.js → live.js} +2 -9
- package/dist/pi/live.js.map +1 -0
- package/dist/pi/pi.d.ts +3 -1
- package/dist/pi/pi.d.ts.map +1 -1
- package/dist/pi/pi.js +64 -26
- package/dist/pi/pi.js.map +1 -1
- package/dist/pi/sdk.d.ts +18 -13
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +15 -10
- package/dist/pi/sdk.js.map +1 -1
- package/dist/pi/session.d.ts +20 -21
- package/dist/pi/session.d.ts.map +1 -1
- package/dist/pi/session.js +9 -10
- package/dist/pi/session.js.map +1 -1
- package/dist/pi/subagents.d.ts +15 -11
- package/dist/pi/subagents.d.ts.map +1 -1
- package/dist/pi/subagents.js +73 -43
- package/dist/pi/subagents.js.map +1 -1
- package/dist/pi/thinking.d.ts +8 -0
- package/dist/pi/thinking.d.ts.map +1 -0
- package/dist/pi/thinking.js +15 -0
- package/dist/pi/thinking.js.map +1 -0
- package/dist/preflight/command.d.ts +7 -0
- package/dist/preflight/command.d.ts.map +1 -0
- package/dist/preflight/command.js +42 -0
- package/dist/preflight/command.js.map +1 -0
- package/dist/preflight/preflight.d.ts +13 -0
- package/dist/preflight/preflight.d.ts.map +1 -0
- package/dist/preflight/preflight.js +100 -0
- package/dist/preflight/preflight.js.map +1 -0
- package/dist/prompt.d.ts +15 -11
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +14 -11
- package/dist/prompt.js.map +1 -1
- package/dist/protocol/codex.d.ts +20 -6
- package/dist/protocol/codex.d.ts.map +1 -1
- package/dist/protocol/codex.js +7 -1
- package/dist/protocol/codex.js.map +1 -1
- package/dist/runtime.d.ts +42 -24
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +47 -34
- package/dist/runtime.js.map +1 -1
- package/package.json +34 -10
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/dist/pi/index.d.ts +0 -11
- package/dist/pi/index.d.ts.map +0 -1
- package/dist/pi/index.js.map +0 -1
package/dist/pi/pi.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BrainSpec, ModelId } from "@usine/core/agent/brain";
|
|
2
|
+
import { AgentSessionId, ChildSession, ParentSession, SessionStarted, } from "@usine/core/agent/session";
|
|
2
3
|
import { Deferred, Effect, Fiber, Layer, Option, Stream } from "effect";
|
|
3
4
|
import { assemblePrompt } from "../prompt.js";
|
|
4
|
-
import { AgentRuntime, ChildBackend, PiChildBackend, PoolUnavailableError, SessionOperationError, UnknownModelError, } from "../runtime.js";
|
|
5
|
+
import { AgentRuntime, ChildBackend, ChildSessionBudgetExceededError, PiChildBackend, PoolUnavailableError, SessionOperationError, UnknownModelError, UnsupportedEffortError, } from "../runtime.js";
|
|
5
6
|
import { lastPiMessageText, sessionChannel, subscribePiSession } from "./session.js";
|
|
6
7
|
import { PiSdk, usePiStart } from "./sdk.js";
|
|
7
8
|
import { subagentsExtension } from "./subagents.js";
|
|
8
|
-
export { PiSdk,
|
|
9
|
+
export { PiSdk, piSdkLive, } from "./sdk.js";
|
|
9
10
|
const parentError = (operation, request, message, cause) => new SessionOperationError({
|
|
10
11
|
operation,
|
|
11
|
-
sessionId: Option.some(
|
|
12
|
+
sessionId: Option.some(AgentSessionId.make(`parent:${request.spec.attemptId}`)),
|
|
12
13
|
message,
|
|
13
14
|
cause,
|
|
14
15
|
});
|
|
@@ -18,6 +19,19 @@ const childError = (operation, request, message, cause) => new SessionOperationE
|
|
|
18
19
|
message,
|
|
19
20
|
cause,
|
|
20
21
|
});
|
|
22
|
+
const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (role, started) {
|
|
23
|
+
yield* Effect.logError(`Pi ${role} rejected an unsupported effort`, {
|
|
24
|
+
effort: started.effort,
|
|
25
|
+
model: started.model,
|
|
26
|
+
supported: started.supported,
|
|
27
|
+
});
|
|
28
|
+
return yield* new UnsupportedEffortError({
|
|
29
|
+
harness: "pi",
|
|
30
|
+
model: started.model,
|
|
31
|
+
effort: started.effort,
|
|
32
|
+
message: `Pi model ${started.model} does not support effort ${started.effort}; supported: ${started.supported.join(", ")}`,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
21
35
|
const makePiChild = Effect.gen(function* () {
|
|
22
36
|
const sdk = yield* PiSdk;
|
|
23
37
|
const launch = Effect.fn("PiChildBackend.launch")(function* (request) {
|
|
@@ -49,6 +63,9 @@ const makePiChild = Effect.gen(function* () {
|
|
|
49
63
|
message: `Pi does not expose model ${request.session.brain.model}`,
|
|
50
64
|
});
|
|
51
65
|
}
|
|
66
|
+
if (started._tag === "UnsupportedEffort") {
|
|
67
|
+
return yield* unsupportedEffort("child", started);
|
|
68
|
+
}
|
|
52
69
|
if (started._tag === "AuthenticationUnavailable") {
|
|
53
70
|
yield* Effect.logError("Pi child has no credential for its model", {
|
|
54
71
|
model: started.model,
|
|
@@ -87,11 +104,11 @@ const makePiChild = Effect.gen(function* () {
|
|
|
87
104
|
message: `Pi child model ${started.model} must use an API key`,
|
|
88
105
|
});
|
|
89
106
|
}
|
|
90
|
-
const session = new
|
|
107
|
+
const session = new ChildSession({
|
|
91
108
|
id: request.session.id,
|
|
92
109
|
parentId: request.session.parentId,
|
|
93
110
|
agent: request.session.agent,
|
|
94
|
-
brain: new
|
|
111
|
+
brain: new BrainSpec({
|
|
95
112
|
harness: "pi",
|
|
96
113
|
model: started.model,
|
|
97
114
|
effort: request.session.brain.effort,
|
|
@@ -101,9 +118,9 @@ const makePiChild = Effect.gen(function* () {
|
|
|
101
118
|
label: "Pi child session",
|
|
102
119
|
sessionId: session.id,
|
|
103
120
|
});
|
|
104
|
-
yield* channel.emit(new
|
|
121
|
+
yield* channel.emit(new SessionStarted({ session }));
|
|
105
122
|
const subscription = yield* subscribePiSession(started.session, session, channel);
|
|
106
|
-
//
|
|
123
|
+
// After setup succeeds, the ambient scope closes both the subscription and the SDK session.
|
|
107
124
|
yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
|
|
108
125
|
yield* Effect.tryPromise({
|
|
109
126
|
try: () => started.session.prompt(request.prompt),
|
|
@@ -138,11 +155,12 @@ const makePiParent = Effect.gen(function* () {
|
|
|
138
155
|
const children = yield* ChildBackend;
|
|
139
156
|
const sdk = yield* PiSdk;
|
|
140
157
|
const launch = Effect.fn("PiParentRuntime.launch")(function* (request) {
|
|
141
|
-
const parentId =
|
|
158
|
+
const parentId = AgentSessionId.make(`parent:${request.spec.attemptId}`);
|
|
142
159
|
yield* Effect.annotateCurrentSpan({
|
|
143
160
|
agent: request.spec.agent.name,
|
|
144
161
|
attemptId: request.spec.attemptId,
|
|
145
162
|
effort: request.spec.agent.brain.effort,
|
|
163
|
+
parentEffort: request.spec.parentEffort,
|
|
146
164
|
parentModel: Option.getOrUndefined(request.spec.parentModel),
|
|
147
165
|
repository: request.spec.repository,
|
|
148
166
|
sessionId: parentId,
|
|
@@ -152,10 +170,11 @@ const makePiParent = Effect.gen(function* () {
|
|
|
152
170
|
label: "Pi parent session",
|
|
153
171
|
sessionId: parentId,
|
|
154
172
|
});
|
|
155
|
-
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
//
|
|
173
|
+
const childBudgetExceeded = yield* Deferred.make();
|
|
174
|
+
// Pi calls the tool outside any usine fiber. Child programs still need
|
|
175
|
+
// this fiber's services (stderr logging, tracing) and must end with this
|
|
176
|
+
// launch scope, so the extension gets a runner instead of the default
|
|
177
|
+
// runtime.
|
|
159
178
|
const scope = yield* Effect.scope;
|
|
160
179
|
const context = yield* Effect.context();
|
|
161
180
|
const runChild = (program) => Effect.runPromise(program.pipe(Effect.provideContext(context), Effect.forkIn(scope), Effect.flatMap(Fiber.join)));
|
|
@@ -167,18 +186,20 @@ const makePiParent = Effect.gen(function* () {
|
|
|
167
186
|
backend: children,
|
|
168
187
|
cwd: request.cwd,
|
|
169
188
|
emit: channel.emit,
|
|
189
|
+
maxChildren: request.spec.maxChildren,
|
|
190
|
+
onBudgetExceeded: (error) => Deferred.succeed(childBudgetExceeded, error).pipe(Effect.asVoid),
|
|
170
191
|
parentId,
|
|
171
192
|
run: runChild,
|
|
172
193
|
}),
|
|
173
194
|
],
|
|
174
195
|
model: request.spec.parentModel,
|
|
175
196
|
signal,
|
|
176
|
-
thinkingLevel: request.spec.
|
|
197
|
+
thinkingLevel: request.spec.parentEffort,
|
|
177
198
|
toolMode: "orchestration",
|
|
178
199
|
}), (cause) => parentError("launch", request, "Pi parent session failed to start", cause), (acquired) => Effect.gen(function* () {
|
|
179
200
|
const started = acquired.result;
|
|
180
201
|
if (started._tag === "UnknownModel") {
|
|
181
|
-
const model = Option.getOrElse(request.spec.parentModel, () =>
|
|
202
|
+
const model = Option.getOrElse(request.spec.parentModel, () => ModelId.make("unknown"));
|
|
182
203
|
yield* Effect.logError("Pi parent rejected an unknown model", {
|
|
183
204
|
model,
|
|
184
205
|
});
|
|
@@ -188,6 +209,9 @@ const makePiParent = Effect.gen(function* () {
|
|
|
188
209
|
message: `Pi does not expose model ${model}`,
|
|
189
210
|
});
|
|
190
211
|
}
|
|
212
|
+
if (started._tag === "UnsupportedEffort") {
|
|
213
|
+
return yield* unsupportedEffort("parent", started);
|
|
214
|
+
}
|
|
191
215
|
if (started._tag === "AuthenticationUnavailable") {
|
|
192
216
|
yield* Effect.logError("Pi parent has no credential for its model", {
|
|
193
217
|
model: started.model,
|
|
@@ -218,18 +242,18 @@ const makePiParent = Effect.gen(function* () {
|
|
|
218
242
|
model: started.model,
|
|
219
243
|
pool: started.pool,
|
|
220
244
|
});
|
|
221
|
-
const parent = new
|
|
245
|
+
const parent = new ParentSession({
|
|
222
246
|
id: parentId,
|
|
223
247
|
agent: request.spec.agent.name,
|
|
224
|
-
brain: new
|
|
248
|
+
brain: new BrainSpec({
|
|
225
249
|
harness: "pi",
|
|
226
250
|
model: started.model,
|
|
227
|
-
effort: request.spec.
|
|
251
|
+
effort: request.spec.parentEffort,
|
|
228
252
|
}),
|
|
229
253
|
});
|
|
230
|
-
yield* channel.emit(new
|
|
254
|
+
yield* channel.emit(new SessionStarted({ session: parent }));
|
|
231
255
|
const subscription = yield* subscribePiSession(started.session, parent, channel);
|
|
232
|
-
//
|
|
256
|
+
// After setup succeeds, the ambient scope closes both the subscription and the SDK session.
|
|
233
257
|
yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
|
|
234
258
|
const prompt = assemblePrompt({
|
|
235
259
|
repository: request.spec.repository,
|
|
@@ -238,12 +262,27 @@ const makePiParent = Effect.gen(function* () {
|
|
|
238
262
|
persona: request.spec.agent.persona,
|
|
239
263
|
task: request.spec.task,
|
|
240
264
|
});
|
|
241
|
-
const
|
|
265
|
+
const abort = Effect.tryPromise({
|
|
266
|
+
try: () => started.session.abort(),
|
|
267
|
+
catch: (cause) => parentError("interrupt", request, "Could not interrupt Pi", cause),
|
|
268
|
+
});
|
|
269
|
+
// Fail the channel before aborting the SDK: abort settles the
|
|
270
|
+
// in-flight prompt, and its fiber must find the result already
|
|
271
|
+
// terminal instead of racing it to `channel.finish`.
|
|
272
|
+
const budgetFailure = Deferred.await(childBudgetExceeded).pipe(Effect.tap((error) => Effect.logWarning("Stopping Pi parent after its child session budget was exceeded", {
|
|
273
|
+
attemptedChildren: error.attemptedChildren,
|
|
274
|
+
maxChildren: error.maxChildren,
|
|
275
|
+
sessionId: parentId,
|
|
276
|
+
})), Effect.flatMap((error) => channel.fail(error)), Effect.andThen(abort.pipe(Effect.catch((error) => Effect.logWarning("Pi parent kept running after its budget failure", {
|
|
277
|
+
message: error.message,
|
|
278
|
+
sessionId: parentId,
|
|
279
|
+
})))));
|
|
280
|
+
const run = Effect.raceFirst(Effect.tryPromise({
|
|
242
281
|
try: () => started.session.prompt(prompt),
|
|
243
282
|
catch: (cause) => parentError("stream", request, "Pi parent session failed", cause),
|
|
244
283
|
}).pipe(Effect.flatMap(() => channel.finish(parent, subscription.lastText() ??
|
|
245
284
|
lastPiMessageText(started.session.messages) ??
|
|
246
|
-
"Pi parent session completed")), Effect.catch((error) => channel.fail(error)));
|
|
285
|
+
"Pi parent session completed"))), budgetFailure).pipe(Effect.catch((error) => channel.fail(error)));
|
|
247
286
|
yield* Effect.forkScoped(run);
|
|
248
287
|
const steer = Effect.fn("PiParentRuntime.steer")((message) => Effect.logDebug("Steering Pi parent session", {
|
|
249
288
|
sessionId: parentId,
|
|
@@ -253,10 +292,7 @@ const makePiParent = Effect.gen(function* () {
|
|
|
253
292
|
}))));
|
|
254
293
|
const interrupt = Effect.logInfo("Interrupting Pi parent session", {
|
|
255
294
|
sessionId: parentId,
|
|
256
|
-
}).pipe(Effect.andThen(
|
|
257
|
-
try: () => started.session.abort(),
|
|
258
|
-
catch: (cause) => parentError("interrupt", request, "Could not interrupt Pi", cause),
|
|
259
|
-
})));
|
|
295
|
+
}).pipe(Effect.andThen(abort));
|
|
260
296
|
return {
|
|
261
297
|
session: parent,
|
|
262
298
|
events: Stream.fromQueue(channel.events),
|
|
@@ -268,6 +304,8 @@ const makePiParent = Effect.gen(function* () {
|
|
|
268
304
|
});
|
|
269
305
|
return AgentRuntime.of({ launch });
|
|
270
306
|
});
|
|
307
|
+
/** Provides the coordinating Pi parent; supply the child backend that will perform its delegated coding work. */
|
|
271
308
|
export const piParentLayer = Layer.effect(AgentRuntime, makePiParent);
|
|
309
|
+
/** Provides Pi coding sessions for tasks delegated by a parent. */
|
|
272
310
|
export const piChildBackendLayer = Layer.effect(PiChildBackend, makePiChild);
|
|
273
311
|
//# 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,10 +1,10 @@
|
|
|
1
1
|
import { createAgentSession, type AgentSessionEvent, type InlineExtension } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
import {
|
|
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";
|
|
5
5
|
export type PiSessionEvent = AgentSessionEvent;
|
|
6
6
|
export type PiMessage = Awaited<ReturnType<typeof createAgentSession>>["session"]["messages"][number];
|
|
7
|
-
/**
|
|
7
|
+
/** The subset of an in-process Pi session that the adapter uses. */
|
|
8
8
|
export interface PiSession {
|
|
9
9
|
readonly messages: ReadonlyArray<PiMessage>;
|
|
10
10
|
readonly subscribe: (listener: (event: PiSessionEvent) => void) => () => void;
|
|
@@ -16,50 +16,55 @@ export interface PiSession {
|
|
|
16
16
|
export interface PiStartOptions {
|
|
17
17
|
readonly cwd: string;
|
|
18
18
|
readonly extensions: ReadonlyArray<InlineExtension>;
|
|
19
|
-
readonly model: Option.Option<
|
|
19
|
+
readonly model: Option.Option<ModelId>;
|
|
20
20
|
readonly signal: AbortSignal;
|
|
21
|
-
readonly thinkingLevel:
|
|
21
|
+
readonly thinkingLevel: Effort;
|
|
22
22
|
readonly toolMode: "orchestration" | "repository";
|
|
23
23
|
}
|
|
24
24
|
export type PiStartResult = {
|
|
25
25
|
readonly _tag: "AuthenticationUnavailable";
|
|
26
|
-
readonly model:
|
|
26
|
+
readonly model: ModelId;
|
|
27
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
|
-
readonly model:
|
|
33
|
+
readonly model: ModelId;
|
|
34
34
|
readonly requiredPool: PiPool;
|
|
35
35
|
} | {
|
|
36
36
|
readonly _tag: "UnknownModel";
|
|
37
|
+
} | {
|
|
38
|
+
readonly _tag: "UnsupportedEffort";
|
|
39
|
+
readonly effort: Effort;
|
|
40
|
+
readonly model: ModelId;
|
|
41
|
+
readonly supported: ReadonlyArray<Effort>;
|
|
37
42
|
} | {
|
|
38
43
|
readonly _tag: "Started";
|
|
39
|
-
readonly model:
|
|
44
|
+
readonly model: ModelId;
|
|
40
45
|
readonly pool: PiPool;
|
|
41
46
|
readonly session: PiSession;
|
|
42
47
|
};
|
|
43
|
-
/** The parent
|
|
48
|
+
/** The parent works only through usine extensions; repository tools belong to the harness children. */
|
|
44
49
|
export declare const piParentSessionToolPolicy: {
|
|
45
50
|
readonly noTools: "builtin";
|
|
46
51
|
};
|
|
47
52
|
declare const PiSdk_base: Context.ServiceClass<PiSdk, "@usine/agents/pi/PiSdk", {
|
|
48
53
|
readonly start: (options: PiStartOptions) => Promise<PiStartResult>;
|
|
49
54
|
}>;
|
|
50
|
-
/**
|
|
55
|
+
/** Opens a Pi session with the selected model and the tools allowed for its parent or child role. */
|
|
51
56
|
export declare class PiSdk extends PiSdk_base {
|
|
52
57
|
}
|
|
53
58
|
export declare const piSdkLive: Layer.Layer<PiSdk, never, never>;
|
|
54
59
|
export interface AcquiredPiStart {
|
|
55
60
|
readonly result: PiStartResult;
|
|
56
|
-
/**
|
|
61
|
+
/** Safe to call twice: failed setup and the ambient scope may both request cleanup. */
|
|
57
62
|
readonly dispose: () => void;
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
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`.
|
|
63
68
|
*/
|
|
64
69
|
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>;
|
|
65
70
|
export {};
|
package/dist/pi/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAMlB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,
|
|
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,10 +1,11 @@
|
|
|
1
1
|
import { createAgentSession, DefaultResourceLoader, getAgentDir, ModelRuntime, SessionManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
import {
|
|
2
|
+
import { Effort, ModelId } from "@usine/core/agent/brain";
|
|
3
3
|
import { Context, Effect, Exit, Layer, Option } from "effect";
|
|
4
4
|
import { requiredPiPool, resolvePiPool, } from "./authentication.js";
|
|
5
|
-
|
|
5
|
+
import { supportedThinkingLevels } from "./thinking.js";
|
|
6
|
+
/** The parent works only through usine extensions; repository tools belong to the harness children. */
|
|
6
7
|
export const piParentSessionToolPolicy = { noTools: "builtin" };
|
|
7
|
-
/**
|
|
8
|
+
/** Opens a Pi session with the selected model and the tools allowed for its parent or child role. */
|
|
8
9
|
export class PiSdk extends Context.Service()("@usine/agents/pi/PiSdk") {
|
|
9
10
|
}
|
|
10
11
|
const splitModel = (model) => {
|
|
@@ -26,9 +27,9 @@ export const piSdkLive = Layer.succeed(PiSdk)({
|
|
|
26
27
|
return { _tag: "UnknownModel" };
|
|
27
28
|
}
|
|
28
29
|
const agentDir = getAgentDir();
|
|
29
|
-
// The
|
|
30
|
-
//
|
|
31
|
-
//
|
|
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.
|
|
32
33
|
const settingsManager = SettingsManager.create(options.cwd, agentDir, {
|
|
33
34
|
projectTrusted: false,
|
|
34
35
|
});
|
|
@@ -62,7 +63,11 @@ export const piSdkLive = Layer.succeed(PiSdk)({
|
|
|
62
63
|
const active = session.model;
|
|
63
64
|
if (active === undefined)
|
|
64
65
|
throw new Error("Pi started without an active model");
|
|
65
|
-
const model =
|
|
66
|
+
const model = ModelId.make(`${active.provider}/${active.id}`);
|
|
67
|
+
const supported = supportedThinkingLevels(active);
|
|
68
|
+
if (!supported.includes(options.thinkingLevel)) {
|
|
69
|
+
return { _tag: "UnsupportedEffort", effort: options.thinkingLevel, model, supported };
|
|
70
|
+
}
|
|
66
71
|
const resolvedAuthentication = await modelRuntime.checkAuth(active.provider, {
|
|
67
72
|
signal: options.signal,
|
|
68
73
|
});
|
|
@@ -105,9 +110,9 @@ export const piSdkLive = Layer.succeed(PiSdk)({
|
|
|
105
110
|
},
|
|
106
111
|
});
|
|
107
112
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
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`.
|
|
111
116
|
*/
|
|
112
117
|
export const usePiStart = (start, onError, use) => Effect.suspend(() => {
|
|
113
118
|
let acquired;
|
package/dist/pi/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,GAGhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/pi/session.d.ts
CHANGED
|
@@ -1,45 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AgentSession, AgentSessionEvent, AgentSessionId, SessionFinished, TextOutput, ToolFinished, ToolStarted } from "@usine/core/agent/session";
|
|
2
2
|
import { Cause, Deferred, Effect, Queue } from "effect";
|
|
3
3
|
import { type AgentSessionError, SessionResult } from "../runtime.ts";
|
|
4
4
|
import type { PiMessage, PiSession } from "./sdk.ts";
|
|
5
5
|
export interface SessionChannelOptions {
|
|
6
|
-
/**
|
|
6
|
+
/** Adapter name printed in the terminal log lines. */
|
|
7
7
|
readonly label: string;
|
|
8
|
-
readonly sessionId:
|
|
8
|
+
readonly sessionId: AgentSessionId;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Shared session state: one event queue, one result, and a latch so exactly
|
|
12
|
+
* one terminal transition wins. Cleanups registered through `onTerminal` run
|
|
13
|
+
* on that transition.
|
|
14
14
|
*/
|
|
15
15
|
export interface SessionChannel {
|
|
16
|
-
readonly events: Queue.Queue<
|
|
16
|
+
readonly events: Queue.Queue<AgentSessionEvent, AgentSessionError | Cause.Done>;
|
|
17
17
|
readonly result: Deferred.Deferred<SessionResult, AgentSessionError>;
|
|
18
18
|
readonly isTerminal: Effect.Effect<boolean>;
|
|
19
19
|
readonly onTerminal: (cleanup: () => void) => void;
|
|
20
|
-
/**
|
|
21
|
-
readonly emit: (event:
|
|
20
|
+
/** Queues one event; after the terminal transition the event is logged and dropped. */
|
|
21
|
+
readonly emit: (event: AgentSessionEvent) => Effect.Effect<void>;
|
|
22
22
|
readonly fail: (error: AgentSessionError) => Effect.Effect<void>;
|
|
23
|
-
readonly finish: (session:
|
|
23
|
+
readonly finish: (session: AgentSession, message: string) => Effect.Effect<void>;
|
|
24
24
|
}
|
|
25
25
|
export declare const sessionChannel: (options: SessionChannelOptions) => Effect.Effect<{
|
|
26
|
-
events: Queue.Queue<
|
|
27
|
-
result: Deferred.Deferred<SessionResult, import("../runtime.ts").AgentResultError | import("../runtime.ts").PoolUnavailableError | import("../runtime.ts").SessionOperationError | import("../runtime.ts").UnknownModelError | import("../runtime.ts").UnsupportedEffortError>;
|
|
26
|
+
events: Queue.Queue<import("@usine/core/agent/session").PoolRateLimitsUpdated | SessionFinished | import("@usine/core/agent/session").SessionStarted | TextOutput | ToolFinished | ToolStarted, import("../runtime.ts").AgentResultError | import("../runtime.ts").ChildSessionBudgetExceededError | Cause.Done<void> | import("../runtime.ts").PoolUnavailableError | import("../runtime.ts").SessionOperationError | import("../runtime.ts").UnknownModelError | import("../runtime.ts").UnsupportedEffortError>;
|
|
27
|
+
result: Deferred.Deferred<SessionResult, import("../runtime.ts").AgentResultError | import("../runtime.ts").ChildSessionBudgetExceededError | import("../runtime.ts").PoolUnavailableError | import("../runtime.ts").SessionOperationError | import("../runtime.ts").UnknownModelError | import("../runtime.ts").UnsupportedEffortError>;
|
|
28
28
|
isTerminal: Effect.Effect<boolean, never, never>;
|
|
29
29
|
onTerminal: (cleanup: () => void) => void;
|
|
30
|
-
emit: (event:
|
|
31
|
-
fail: (error: import("../runtime.ts").AgentResultError | import("../runtime.ts").PoolUnavailableError | import("../runtime.ts").SessionOperationError | import("../runtime.ts").UnknownModelError | import("../runtime.ts").UnsupportedEffortError) => Effect.Effect<void, never, never>;
|
|
32
|
-
finish: (session:
|
|
30
|
+
emit: (event: AgentSessionEvent) => Effect.Effect<void, never, never>;
|
|
31
|
+
fail: (error: import("../runtime.ts").AgentResultError | import("../runtime.ts").ChildSessionBudgetExceededError | import("../runtime.ts").PoolUnavailableError | import("../runtime.ts").SessionOperationError | import("../runtime.ts").UnknownModelError | import("../runtime.ts").UnsupportedEffortError) => Effect.Effect<void, never, never>;
|
|
32
|
+
finish: (session: import("@usine/core/agent/session").ChildSession | import("@usine/core/agent/session").ParentSession, message: string) => Effect.Effect<void, never, never>;
|
|
33
33
|
}, never, never>;
|
|
34
34
|
export declare const lastPiMessageText: (messages: ReadonlyArray<PiMessage>) => string | undefined;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
* Normalized events reach the queue on the SDK's own tick
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* launch fiber's captured services so a silent wait stays explainable.
|
|
36
|
+
* Subscribes the Pi SDK's synchronous listener to one session channel.
|
|
37
|
+
* Normalized events reach the queue on the SDK's own tick so none can trail
|
|
38
|
+
* the prompt's resolution; operational events with no normalized shape (retry
|
|
39
|
+
* backoffs, compactions) are logged so a silent wait stays explainable.
|
|
41
40
|
*/
|
|
42
|
-
export declare const subscribePiSession: (piSession: PiSession, session:
|
|
41
|
+
export declare const subscribePiSession: (piSession: PiSession, session: AgentSession, channel: SessionChannel) => Effect.Effect<{
|
|
43
42
|
lastText: () => string | undefined;
|
|
44
43
|
unsubscribe: () => void;
|
|
45
44
|
}, never, never>;
|
package/dist/pi/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAkB,MAAM,UAAU,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAChF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACnD,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAClF;AAED,eAAO,MAAM,cAAc;;;;0BAqDD,MAAM,IAAI;kBA1Cb,iBAAiB;;;gBAiDtC,CAAC;AAyCH,eAAO,MAAM,iBAAiB,aAAc,aAAa,CAAC,SAAS,CAAC,KAAG,MAAM,GAAG,SAQ/E,CAAC;AA8BF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,cAClB,SAAS,WACX,YAAY,WACZ,cAAc;;;gBAsDrB,CAAC"}
|
package/dist/pi/session.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AgentSession, AgentSessionEvent, AgentSessionId, SessionFinished, TextOutput, ToolFinished, ToolStarted, } from "@usine/core/agent/session";
|
|
2
2
|
import { Cause, Deferred, Effect, Queue, Ref, Schema } from "effect";
|
|
3
3
|
import { SessionResult } from "../runtime.js";
|
|
4
4
|
export const sessionChannel = Effect.fn("SessionChannel.make")(function* (options) {
|
|
@@ -31,7 +31,7 @@ export const sessionChannel = Effect.fn("SessionChannel.make")(function* (option
|
|
|
31
31
|
const finish = Effect.fn("SessionChannel.finish")(function* (session, message) {
|
|
32
32
|
if (yield* Ref.getAndSet(terminal, true))
|
|
33
33
|
return;
|
|
34
|
-
yield* Queue.offer(events, new
|
|
34
|
+
yield* Queue.offer(events, new SessionFinished({ session }));
|
|
35
35
|
yield* Deferred.succeed(result, new SessionResult({ message }));
|
|
36
36
|
yield* Queue.end(events);
|
|
37
37
|
yield* runCleanups;
|
|
@@ -102,10 +102,10 @@ export const lastPiMessageText = (messages) => {
|
|
|
102
102
|
const sessionEventFrom = (event, session) => {
|
|
103
103
|
if (event.type === "message_end") {
|
|
104
104
|
const text = messageText(event.message);
|
|
105
|
-
return text === undefined ? undefined : new
|
|
105
|
+
return text === undefined ? undefined : new TextOutput({ session, text });
|
|
106
106
|
}
|
|
107
107
|
if (event.type === "tool_execution_start") {
|
|
108
|
-
return new
|
|
108
|
+
return new ToolStarted({
|
|
109
109
|
session,
|
|
110
110
|
callId: event.toolCallId,
|
|
111
111
|
tool: event.toolName,
|
|
@@ -113,7 +113,7 @@ const sessionEventFrom = (event, session) => {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
if (event.type === "tool_execution_end") {
|
|
116
|
-
return new
|
|
116
|
+
return new ToolFinished({
|
|
117
117
|
session,
|
|
118
118
|
callId: event.toolCallId,
|
|
119
119
|
tool: event.toolName,
|
|
@@ -124,11 +124,10 @@ const sessionEventFrom = (event, session) => {
|
|
|
124
124
|
return undefined;
|
|
125
125
|
};
|
|
126
126
|
/**
|
|
127
|
-
*
|
|
128
|
-
* Normalized events reach the queue on the SDK's own tick
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* launch fiber's captured services so a silent wait stays explainable.
|
|
127
|
+
* Subscribes the Pi SDK's synchronous listener to one session channel.
|
|
128
|
+
* Normalized events reach the queue on the SDK's own tick so none can trail
|
|
129
|
+
* the prompt's resolution; operational events with no normalized shape (retry
|
|
130
|
+
* backoffs, compactions) are logged so a silent wait stays explainable.
|
|
132
131
|
*/
|
|
133
132
|
export const subscribePiSession = (piSession, session, channel) => Effect.gen(function* () {
|
|
134
133
|
const context = yield* Effect.context();
|