@usine/agents 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -29
- package/dist/child-host/child-host.d.ts +60 -0
- package/dist/child-host/child-host.d.ts.map +1 -0
- package/dist/child-host/child-host.js +84 -0
- package/dist/child-host/child-host.js.map +1 -0
- package/dist/child-host/command.d.ts +11 -0
- package/dist/child-host/command.d.ts.map +1 -0
- package/dist/child-host/command.js +26 -0
- package/dist/child-host/command.js.map +1 -0
- package/dist/pi/authentication.d.ts +11 -2
- package/dist/pi/authentication.d.ts.map +1 -1
- package/dist/pi/authentication.js +15 -2
- package/dist/pi/authentication.js.map +1 -1
- package/dist/pi/children.d.ts +1 -4
- package/dist/pi/children.d.ts.map +1 -1
- package/dist/pi/children.js +1 -4
- package/dist/pi/children.js.map +1 -1
- package/dist/pi/claude.d.ts +8 -9
- package/dist/pi/claude.d.ts.map +1 -1
- package/dist/pi/claude.js +413 -39
- package/dist/pi/claude.js.map +1 -1
- package/dist/pi/codex/account.d.ts +3 -3
- package/dist/pi/codex/account.d.ts.map +1 -1
- package/dist/pi/codex/account.js +5 -5
- package/dist/pi/codex/account.js.map +1 -1
- package/dist/pi/codex/app-server.d.ts +19 -7
- package/dist/pi/codex/app-server.d.ts.map +1 -1
- package/dist/pi/codex/app-server.js +41 -36
- package/dist/pi/codex/app-server.js.map +1 -1
- package/dist/pi/codex/codec.d.ts +118 -0
- package/dist/pi/codex/codec.d.ts.map +1 -0
- package/dist/pi/codex/codec.js +137 -0
- package/dist/pi/codex/codec.js.map +1 -0
- package/dist/pi/codex/codex.d.ts +0 -1
- package/dist/pi/codex/codex.d.ts.map +1 -1
- package/dist/pi/codex/codex.js +169 -133
- package/dist/pi/codex/codex.js.map +1 -1
- package/dist/pi/conversation.d.ts +43 -0
- package/dist/pi/conversation.d.ts.map +1 -0
- package/dist/pi/conversation.js +129 -0
- package/dist/pi/conversation.js.map +1 -0
- package/dist/pi/pi.d.ts +1 -4
- package/dist/pi/pi.d.ts.map +1 -1
- package/dist/pi/pi.js +38 -201
- package/dist/pi/pi.js.map +1 -1
- package/dist/pi/sdk.d.ts +11 -15
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +35 -53
- package/dist/pi/sdk.js.map +1 -1
- package/dist/pi/session.d.ts +13 -14
- package/dist/pi/session.d.ts.map +1 -1
- package/dist/pi/session.js +68 -16
- package/dist/pi/session.js.map +1 -1
- package/dist/pi/turns.d.ts +28 -0
- package/dist/pi/turns.d.ts.map +1 -0
- package/dist/pi/turns.js +67 -0
- package/dist/pi/turns.js.map +1 -0
- package/dist/pi/usage.d.ts +39 -0
- package/dist/pi/usage.d.ts.map +1 -0
- package/dist/pi/usage.js +96 -0
- package/dist/pi/usage.js.map +1 -0
- package/dist/preflight/command.d.ts +16 -3
- package/dist/preflight/command.d.ts.map +1 -1
- package/dist/preflight/command.js +30 -17
- package/dist/preflight/command.js.map +1 -1
- package/dist/preflight/preflight.d.ts +10 -5
- package/dist/preflight/preflight.d.ts.map +1 -1
- package/dist/preflight/preflight.js +52 -25
- package/dist/preflight/preflight.js.map +1 -1
- package/dist/prompt.d.ts +12 -9
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +33 -4
- package/dist/prompt.js.map +1 -1
- package/dist/protocol/codex.d.ts +4 -7
- package/dist/protocol/codex.d.ts.map +1 -1
- package/dist/protocol/codex.js +1 -1
- package/dist/protocol/codex.js.map +1 -1
- package/dist/runtime.d.ts +101 -40
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +108 -27
- package/dist/runtime.js.map +1 -1
- package/package.json +22 -10
- package/dist/pi/live.d.ts +0 -4
- package/dist/pi/live.d.ts.map +0 -1
- package/dist/pi/live.js +0 -11
- package/dist/pi/live.js.map +0 -1
- package/dist/pi/subagents.d.ts +0 -27
- package/dist/pi/subagents.d.ts.map +0 -1
- package/dist/pi/subagents.js +0 -113
- package/dist/pi/subagents.js.map +0 -1
- package/dist/pi/thinking.d.ts +0 -8
- package/dist/pi/thinking.d.ts.map +0 -1
- package/dist/pi/thinking.js +0 -15
- package/dist/pi/thinking.js.map +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { ChildSession, SessionIdle, SessionResumed } from "@usine/core/agent/session";
|
|
2
|
+
import { InterventionState } from "@usine/core/attempt/channel";
|
|
3
|
+
import { Deferred, Effect, Option, Semaphore } from "effect";
|
|
4
|
+
import { SessionOperationError } from "../runtime.js";
|
|
5
|
+
/**
|
|
6
|
+
* Keeps an idle child addressable while on Hold, and keeps an interrupted session waiting until
|
|
7
|
+
* guidance arrives. Queued operator messages are reported as read when the harness reads them or the
|
|
8
|
+
* turn ends, and as unread if the scope closes first.
|
|
9
|
+
*/
|
|
10
|
+
export const sessionConversation = Effect.fn("SessionConversation.make")(function* (options) {
|
|
11
|
+
const { session, channel } = options;
|
|
12
|
+
const mutex = yield* Semaphore.make(1);
|
|
13
|
+
let held = false;
|
|
14
|
+
let paused = false;
|
|
15
|
+
let idle = Option.none();
|
|
16
|
+
let closing = false;
|
|
17
|
+
let resume = yield* Deferred.make();
|
|
18
|
+
const queued = [];
|
|
19
|
+
/** Reports the oldest `count` queued messages as read, with the current session state. */
|
|
20
|
+
const deliver = (count) => Effect.suspend(() => {
|
|
21
|
+
const read = queued.splice(0, Math.max(0, count));
|
|
22
|
+
if (read.length === 0)
|
|
23
|
+
return Effect.void;
|
|
24
|
+
const state = new InterventionState({ held, paused });
|
|
25
|
+
return Effect.logInfo("The session read queued operator messages", {
|
|
26
|
+
sessionId: session.id,
|
|
27
|
+
read: read.length,
|
|
28
|
+
stillQueued: queued.length,
|
|
29
|
+
}).pipe(Effect.andThen(Effect.forEach(read, ({ onDelivery }) => onDelivery(Option.some(state)), {
|
|
30
|
+
discard: true,
|
|
31
|
+
})));
|
|
32
|
+
});
|
|
33
|
+
yield* Effect.addFinalizer(() => Effect.suspend(() => {
|
|
34
|
+
const unread = queued.splice(0);
|
|
35
|
+
if (unread.length === 0)
|
|
36
|
+
return Effect.void;
|
|
37
|
+
return Effect.logWarning("The session stopped before it read queued operator messages", {
|
|
38
|
+
sessionId: session.id,
|
|
39
|
+
unread: unread.length,
|
|
40
|
+
}).pipe(Effect.andThen(Effect.forEach(unread, ({ onDelivery }) => onDelivery(Option.none()), {
|
|
41
|
+
discard: true,
|
|
42
|
+
})));
|
|
43
|
+
}));
|
|
44
|
+
const finish = Effect.fn("SessionConversation.finish")(function* (message) {
|
|
45
|
+
yield* Effect.annotateCurrentSpan({ sessionId: session.id });
|
|
46
|
+
if (yield* channel.isTerminal)
|
|
47
|
+
return;
|
|
48
|
+
// A completed turn has read every message queued into it; an interrupted turn may drop them.
|
|
49
|
+
if (!paused)
|
|
50
|
+
yield* deliver(queued.length);
|
|
51
|
+
if (held || paused) {
|
|
52
|
+
idle = Option.some(message);
|
|
53
|
+
yield* channel.emit(new SessionIdle({ session }));
|
|
54
|
+
yield* Effect.logInfo("Session is idle under operator supervision", {
|
|
55
|
+
sessionId: session.id,
|
|
56
|
+
held,
|
|
57
|
+
paused,
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
closing = true;
|
|
62
|
+
yield* options.beforeFinish.pipe(Effect.tapError(channel.fail));
|
|
63
|
+
yield* channel.finish(session, message);
|
|
64
|
+
});
|
|
65
|
+
const intervene = Effect.fn("SessionConversation.intervene")(function* (action, onDelivery) {
|
|
66
|
+
yield* Effect.annotateCurrentSpan({ sessionId: session.id, action: action._tag });
|
|
67
|
+
if (yield* channel.isTerminal) {
|
|
68
|
+
return yield* new SessionOperationError({
|
|
69
|
+
operation: "steer",
|
|
70
|
+
sessionId: Option.some(session.id),
|
|
71
|
+
message: "This session has already returned",
|
|
72
|
+
cause: new Error("session closed"),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
let taken = "read";
|
|
76
|
+
if (action._tag === "Release") {
|
|
77
|
+
held = false;
|
|
78
|
+
if (Option.isSome(idle) && !paused)
|
|
79
|
+
yield* finish(idle.value);
|
|
80
|
+
}
|
|
81
|
+
else if (action._tag === "Interrupt") {
|
|
82
|
+
if (!paused) {
|
|
83
|
+
paused = true;
|
|
84
|
+
yield* options.pause.pipe(Effect.onError(() => Effect.sync(() => {
|
|
85
|
+
paused = false;
|
|
86
|
+
})));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const stopped = Option.isSome(idle) || paused;
|
|
91
|
+
const activity = Option.isSome(idle) ? "idle" : "running";
|
|
92
|
+
// Completion takes the same lock, so an accepted message sets the Hold before a running turn
|
|
93
|
+
// can return; a rejected message changes no state.
|
|
94
|
+
taken = yield* options.send(action.message, activity);
|
|
95
|
+
if (action._tag === "OperatorMessage")
|
|
96
|
+
held = true;
|
|
97
|
+
paused = false;
|
|
98
|
+
idle = Option.none();
|
|
99
|
+
yield* Deferred.succeed(resume, undefined);
|
|
100
|
+
resume = yield* Deferred.make();
|
|
101
|
+
if (taken === "queued")
|
|
102
|
+
queued.push({ message: action.message, onDelivery });
|
|
103
|
+
if (stopped)
|
|
104
|
+
yield* channel.emit(new SessionResumed({ session }));
|
|
105
|
+
}
|
|
106
|
+
yield* Effect.logInfo("Session intervention applied", {
|
|
107
|
+
sessionId: session.id,
|
|
108
|
+
action: action._tag,
|
|
109
|
+
held,
|
|
110
|
+
paused,
|
|
111
|
+
queued: taken === "queued",
|
|
112
|
+
});
|
|
113
|
+
return new InterventionState({ held, paused, queued: taken === "queued" });
|
|
114
|
+
}, mutex.withPermits(1));
|
|
115
|
+
return {
|
|
116
|
+
finish: (message) => mutex.withPermits(1)(finish(message)),
|
|
117
|
+
intervene,
|
|
118
|
+
/**
|
|
119
|
+
* Reports queued operator messages as read; `count` receives the queued messages oldest first and
|
|
120
|
+
* returns how many of the oldest were read.
|
|
121
|
+
*/
|
|
122
|
+
read: (count) => mutex.withPermits(1)(Effect.suspend(() => deliver(count(queued.map(({ message }) => message))))),
|
|
123
|
+
/** Waits until the session is not paused; harness hooks run it before each tool call or model request. */
|
|
124
|
+
awaitUnpaused: Effect.suspend(() => (paused ? Deferred.await(resume) : Effect.void)),
|
|
125
|
+
isPaused: Effect.sync(() => paused),
|
|
126
|
+
isClosing: Effect.sync(() => closing),
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/pi/conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/pi/pi.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { Layer } from "effect";
|
|
2
|
-
import {
|
|
2
|
+
import { PiChildBackend } from "../runtime.ts";
|
|
3
3
|
import { PiSdk } from "./sdk.ts";
|
|
4
4
|
export { PiSdk, piSdkLive, type PiSession, type PiSessionEvent, type PiStartOptions, type PiStartResult, } from "./sdk.ts";
|
|
5
|
-
/** Provides the coordinating Pi parent; supply the child backend that will perform its delegated coding work. */
|
|
6
|
-
export declare const piParentLayer: Layer.Layer<AgentRuntime, never, ChildBackend | PiSdk>;
|
|
7
|
-
/** Provides Pi coding sessions for tasks delegated by a parent. */
|
|
8
5
|
export declare const piChildBackendLayer: Layer.Layer<PiChildBackend, never, PiSdk>;
|
|
9
6
|
//# sourceMappingURL=pi.d.ts.map
|
package/dist/pi/pi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/pi/pi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/pi/pi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,EAAkB,MAAM,QAAQ,CAAC;AACjE,OAAO,EAGL,cAAc,EAMf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAkC,MAAM,UAAU,CAAC;AAGjE,OAAO,EACL,KAAK,EACL,SAAS,EACT,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAsKlB,eAAO,MAAM,mBAAmB,2CAA4C,CAAC"}
|
package/dist/pi/pi.js
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
import { BrainSpec
|
|
2
|
-
import {
|
|
3
|
-
import { Deferred, Effect,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { lastPiMessageText, sessionChannel, subscribePiSession } from "./session.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";
|
|
5
|
+
import { sessionChannel, subscribePiSession } from "./session.js";
|
|
7
6
|
import { PiSdk, usePiStart } from "./sdk.js";
|
|
8
|
-
import {
|
|
7
|
+
import { piPauseGate, piTurns } from "./turns.js";
|
|
9
8
|
export { PiSdk, piSdkLive, } from "./sdk.js";
|
|
10
|
-
const parentError = (operation, request, message, cause) => new SessionOperationError({
|
|
11
|
-
operation,
|
|
12
|
-
sessionId: Option.some(AgentSessionId.make(`parent:${request.spec.attemptId}`)),
|
|
13
|
-
message,
|
|
14
|
-
cause,
|
|
15
|
-
});
|
|
16
9
|
const childError = (operation, request, message, cause) => new SessionOperationError({
|
|
17
10
|
operation,
|
|
18
11
|
sessionId: Option.some(request.session.id),
|
|
19
12
|
message,
|
|
20
13
|
cause,
|
|
21
14
|
});
|
|
22
|
-
const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (
|
|
23
|
-
yield* Effect.logError(
|
|
15
|
+
const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (started) {
|
|
16
|
+
yield* Effect.logError("Pi child rejected an unsupported effort", {
|
|
24
17
|
effort: started.effort,
|
|
25
18
|
model: started.model,
|
|
26
19
|
supported: started.supported,
|
|
@@ -29,7 +22,7 @@ const unsupportedEffort = Effect.fn("Pi.unsupportedEffort")(function* (role, sta
|
|
|
29
22
|
harness: "pi",
|
|
30
23
|
model: started.model,
|
|
31
24
|
effort: started.effort,
|
|
32
|
-
message: `Pi model ${started.model}
|
|
25
|
+
message: `Pi model "${started.model}" doesn't support effort ${started.effort}. Supported efforts: ${started.supported.join(", ")}`,
|
|
33
26
|
});
|
|
34
27
|
});
|
|
35
28
|
const makePiChild = Effect.gen(function* () {
|
|
@@ -43,14 +36,24 @@ const makePiChild = Effect.gen(function* () {
|
|
|
43
36
|
parentSessionId: request.session.parentId,
|
|
44
37
|
sessionId: request.session.id,
|
|
45
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
|
+
}
|
|
46
48
|
yield* Effect.logInfo("Launching Pi child session");
|
|
49
|
+
const gate = yield* piPauseGate;
|
|
47
50
|
return yield* usePiStart((signal) => sdk.start({
|
|
48
51
|
cwd: request.cwd,
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
environment: Option.some(request.environment),
|
|
53
|
+
extensions: [gate.extension],
|
|
54
|
+
model: request.session.brain.model,
|
|
51
55
|
signal,
|
|
52
56
|
thinkingLevel: request.session.brain.effort,
|
|
53
|
-
toolMode: "repository",
|
|
54
57
|
}), (cause) => childError("launch", request, "Pi child session failed to start", cause), (acquired) => Effect.gen(function* () {
|
|
55
58
|
const started = acquired.result;
|
|
56
59
|
if (started._tag === "UnknownModel") {
|
|
@@ -60,11 +63,11 @@ const makePiChild = Effect.gen(function* () {
|
|
|
60
63
|
return yield* new UnknownModelError({
|
|
61
64
|
harness: "pi",
|
|
62
65
|
model: request.session.brain.model,
|
|
63
|
-
message: `Pi
|
|
66
|
+
message: `Pi has no model "${request.session.brain.model}"`,
|
|
64
67
|
});
|
|
65
68
|
}
|
|
66
69
|
if (started._tag === "UnsupportedEffort") {
|
|
67
|
-
return yield* unsupportedEffort(
|
|
70
|
+
return yield* unsupportedEffort(started);
|
|
68
71
|
}
|
|
69
72
|
if (started._tag === "AuthenticationUnavailable") {
|
|
70
73
|
yield* Effect.logError("Pi child has no credential for its model", {
|
|
@@ -75,7 +78,7 @@ const makePiChild = Effect.gen(function* () {
|
|
|
75
78
|
harness: "pi",
|
|
76
79
|
model: started.model,
|
|
77
80
|
pool: "apiKeys",
|
|
78
|
-
message: `Pi child model ${started.model} must use an API key`,
|
|
81
|
+
message: `Pi child model "${started.model}" must use an API key`,
|
|
79
82
|
});
|
|
80
83
|
}
|
|
81
84
|
if (started._tag === "UnsupportedAuthentication") {
|
|
@@ -88,7 +91,7 @@ const makePiChild = Effect.gen(function* () {
|
|
|
88
91
|
harness: "pi",
|
|
89
92
|
model: started.model,
|
|
90
93
|
pool: "apiKeys",
|
|
91
|
-
message: `Pi child model ${started.model} must use an API key`,
|
|
94
|
+
message: `Pi child model "${started.model}" must use an API key`,
|
|
92
95
|
});
|
|
93
96
|
}
|
|
94
97
|
if (started.pool !== "apiKeys") {
|
|
@@ -101,7 +104,7 @@ const makePiChild = Effect.gen(function* () {
|
|
|
101
104
|
harness: "pi",
|
|
102
105
|
model: started.model,
|
|
103
106
|
pool: "apiKeys",
|
|
104
|
-
message: `Pi child model ${started.model} must use an API key`,
|
|
107
|
+
message: `Pi child model "${started.model}" must use an API key`,
|
|
105
108
|
});
|
|
106
109
|
}
|
|
107
110
|
const session = new ChildSession({
|
|
@@ -113,6 +116,7 @@ const makePiChild = Effect.gen(function* () {
|
|
|
113
116
|
model: started.model,
|
|
114
117
|
effort: request.session.brain.effort,
|
|
115
118
|
}),
|
|
119
|
+
gatewayCredential: request.session.gatewayCredential,
|
|
116
120
|
});
|
|
117
121
|
const channel = yield* sessionChannel({
|
|
118
122
|
label: "Pi child session",
|
|
@@ -120,192 +124,25 @@ const makePiChild = Effect.gen(function* () {
|
|
|
120
124
|
});
|
|
121
125
|
yield* channel.emit(new SessionStarted({ session }));
|
|
122
126
|
const subscription = yield* subscribePiSession(started.session, session, channel);
|
|
123
|
-
// After setup succeeds, the ambient scope closes both the subscription and the SDK session.
|
|
124
127
|
yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
|
|
125
|
-
yield*
|
|
126
|
-
try: () => started.session.prompt(request.prompt),
|
|
127
|
-
catch: (cause) => childError("stream", request, "Pi child session failed", cause),
|
|
128
|
-
}).pipe(Effect.flatMap(() => channel.finish(session, subscription.lastText() ??
|
|
129
|
-
lastPiMessageText(started.session.messages) ??
|
|
130
|
-
"Pi child session completed")), Effect.catch((error) => channel.fail(error)), Effect.forkScoped);
|
|
131
|
-
const steer = Effect.fn("PiChildBackend.steer")((message) => Effect.logDebug("Steering Pi child session", {
|
|
132
|
-
sessionId: session.id,
|
|
133
|
-
}).pipe(Effect.andThen(Effect.tryPromise({
|
|
134
|
-
try: () => started.session.steer(message),
|
|
135
|
-
catch: (cause) => childError("steer", request, "Could not steer Pi child", cause),
|
|
136
|
-
}))));
|
|
137
|
-
const interrupt = Effect.logInfo("Interrupting Pi child session", {
|
|
138
|
-
sessionId: session.id,
|
|
139
|
-
}).pipe(Effect.andThen(Effect.tryPromise({
|
|
140
|
-
try: () => started.session.abort(),
|
|
141
|
-
catch: (cause) => childError("interrupt", request, "Could not interrupt Pi child", cause),
|
|
142
|
-
})));
|
|
143
|
-
return {
|
|
128
|
+
const controls = yield* piTurns({
|
|
144
129
|
session,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
});
|
|
152
|
-
return PiChildBackend.of({ launch });
|
|
153
|
-
});
|
|
154
|
-
const makePiParent = Effect.gen(function* () {
|
|
155
|
-
const children = yield* ChildBackend;
|
|
156
|
-
const sdk = yield* PiSdk;
|
|
157
|
-
const launch = Effect.fn("PiParentRuntime.launch")(function* (request) {
|
|
158
|
-
const parentId = AgentSessionId.make(`parent:${request.spec.attemptId}`);
|
|
159
|
-
yield* Effect.annotateCurrentSpan({
|
|
160
|
-
agent: request.spec.agent.name,
|
|
161
|
-
attemptId: request.spec.attemptId,
|
|
162
|
-
effort: request.spec.agent.brain.effort,
|
|
163
|
-
parentEffort: request.spec.parentEffort,
|
|
164
|
-
parentModel: Option.getOrUndefined(request.spec.parentModel),
|
|
165
|
-
repository: request.spec.repository,
|
|
166
|
-
sessionId: parentId,
|
|
167
|
-
});
|
|
168
|
-
yield* Effect.logInfo("Launching Pi parent session");
|
|
169
|
-
const channel = yield* sessionChannel({
|
|
170
|
-
label: "Pi parent session",
|
|
171
|
-
sessionId: parentId,
|
|
172
|
-
});
|
|
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.
|
|
178
|
-
const scope = yield* Effect.scope;
|
|
179
|
-
const context = yield* Effect.context();
|
|
180
|
-
const runChild = (program) => Effect.runPromise(program.pipe(Effect.provideContext(context), Effect.forkIn(scope), Effect.flatMap(Fiber.join)));
|
|
181
|
-
return yield* usePiStart((signal) => sdk.start({
|
|
182
|
-
cwd: request.cwd,
|
|
183
|
-
extensions: [
|
|
184
|
-
subagentsExtension({
|
|
185
|
-
agent: request.spec.agent,
|
|
186
|
-
backend: children,
|
|
187
|
-
cwd: request.cwd,
|
|
188
|
-
emit: channel.emit,
|
|
189
|
-
maxChildren: request.spec.maxChildren,
|
|
190
|
-
onBudgetExceeded: (error) => Deferred.succeed(childBudgetExceeded, error).pipe(Effect.asVoid),
|
|
191
|
-
parentId,
|
|
192
|
-
run: runChild,
|
|
193
|
-
}),
|
|
194
|
-
],
|
|
195
|
-
model: request.spec.parentModel,
|
|
196
|
-
signal,
|
|
197
|
-
thinkingLevel: request.spec.parentEffort,
|
|
198
|
-
toolMode: "orchestration",
|
|
199
|
-
}), (cause) => parentError("launch", request, "Pi parent session failed to start", cause), (acquired) => Effect.gen(function* () {
|
|
200
|
-
const started = acquired.result;
|
|
201
|
-
if (started._tag === "UnknownModel") {
|
|
202
|
-
const model = Option.getOrElse(request.spec.parentModel, () => ModelId.make("unknown"));
|
|
203
|
-
yield* Effect.logError("Pi parent rejected an unknown model", {
|
|
204
|
-
model,
|
|
205
|
-
});
|
|
206
|
-
return yield* new UnknownModelError({
|
|
207
|
-
harness: "pi",
|
|
208
|
-
model,
|
|
209
|
-
message: `Pi does not expose model ${model}`,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
if (started._tag === "UnsupportedEffort") {
|
|
213
|
-
return yield* unsupportedEffort("parent", started);
|
|
214
|
-
}
|
|
215
|
-
if (started._tag === "AuthenticationUnavailable") {
|
|
216
|
-
yield* Effect.logError("Pi parent has no credential for its model", {
|
|
217
|
-
model: started.model,
|
|
218
|
-
requiredPool: started.requiredPool,
|
|
219
|
-
});
|
|
220
|
-
return yield* new PoolUnavailableError({
|
|
221
|
-
harness: "pi",
|
|
222
|
-
model: started.model,
|
|
223
|
-
pool: started.requiredPool,
|
|
224
|
-
message: `Pi parent model ${started.model} requires a credential from the ${started.requiredPool} pool`,
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
if (started._tag === "UnsupportedAuthentication") {
|
|
228
|
-
yield* Effect.logError("Pi parent model has unsupported OAuth authentication", {
|
|
229
|
-
model: started.model,
|
|
230
|
-
requiredPool: started.requiredPool,
|
|
231
|
-
subscription: started.authentication.subscription,
|
|
232
|
-
});
|
|
233
|
-
return yield* new PoolUnavailableError({
|
|
234
|
-
harness: "pi",
|
|
235
|
-
model: started.model,
|
|
236
|
-
pool: started.requiredPool,
|
|
237
|
-
message: `Pi parent model ${started.model} requires a credential from the ${started.requiredPool} pool`,
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
yield* Effect.annotateCurrentSpan({ parentPool: started.pool });
|
|
241
|
-
yield* Effect.logInfo("Pi parent session authenticated", {
|
|
242
|
-
model: started.model,
|
|
243
|
-
pool: started.pool,
|
|
130
|
+
sdk: started.session,
|
|
131
|
+
channel,
|
|
132
|
+
gate,
|
|
133
|
+
prompt: request.prompt,
|
|
134
|
+
lastText: subscription.lastText,
|
|
135
|
+
error: (operation, cause) => childError(operation, request, `Pi child ${operation} failed`, cause),
|
|
244
136
|
});
|
|
245
|
-
const parent = new ParentSession({
|
|
246
|
-
id: parentId,
|
|
247
|
-
agent: request.spec.agent.name,
|
|
248
|
-
brain: new BrainSpec({
|
|
249
|
-
harness: "pi",
|
|
250
|
-
model: started.model,
|
|
251
|
-
effort: request.spec.parentEffort,
|
|
252
|
-
}),
|
|
253
|
-
});
|
|
254
|
-
yield* channel.emit(new SessionStarted({ session: parent }));
|
|
255
|
-
const subscription = yield* subscribePiSession(started.session, parent, channel);
|
|
256
|
-
// After setup succeeds, the ambient scope closes both the subscription and the SDK session.
|
|
257
|
-
yield* Effect.addFinalizer(() => Effect.sync(subscription.unsubscribe).pipe(Effect.andThen(Effect.sync(acquired.dispose))));
|
|
258
|
-
const prompt = assemblePrompt({
|
|
259
|
-
repository: request.spec.repository,
|
|
260
|
-
payload: request.spec.payload,
|
|
261
|
-
agent: request.spec.agent.name,
|
|
262
|
-
persona: request.spec.agent.persona,
|
|
263
|
-
task: request.spec.task,
|
|
264
|
-
});
|
|
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({
|
|
281
|
-
try: () => started.session.prompt(prompt),
|
|
282
|
-
catch: (cause) => parentError("stream", request, "Pi parent session failed", cause),
|
|
283
|
-
}).pipe(Effect.flatMap(() => channel.finish(parent, subscription.lastText() ??
|
|
284
|
-
lastPiMessageText(started.session.messages) ??
|
|
285
|
-
"Pi parent session completed"))), budgetFailure).pipe(Effect.catch((error) => channel.fail(error)));
|
|
286
|
-
yield* Effect.forkScoped(run);
|
|
287
|
-
const steer = Effect.fn("PiParentRuntime.steer")((message) => Effect.logDebug("Steering Pi parent session", {
|
|
288
|
-
sessionId: parentId,
|
|
289
|
-
}).pipe(Effect.andThen(Effect.tryPromise({
|
|
290
|
-
try: () => started.session.steer(message),
|
|
291
|
-
catch: (cause) => parentError("steer", request, "Could not steer Pi", cause),
|
|
292
|
-
}))));
|
|
293
|
-
const interrupt = Effect.logInfo("Interrupting Pi parent session", {
|
|
294
|
-
sessionId: parentId,
|
|
295
|
-
}).pipe(Effect.andThen(abort));
|
|
296
137
|
return {
|
|
297
|
-
session
|
|
138
|
+
session,
|
|
298
139
|
events: Stream.fromQueue(channel.events),
|
|
299
|
-
|
|
140
|
+
...controls,
|
|
300
141
|
result: Deferred.await(channel.result),
|
|
301
|
-
steer,
|
|
302
142
|
};
|
|
303
143
|
}));
|
|
304
144
|
});
|
|
305
|
-
return
|
|
145
|
+
return PiChildBackend.of({ launch });
|
|
306
146
|
});
|
|
307
|
-
/** Provides the coordinating Pi parent; supply the child backend that will perform its delegated coding work. */
|
|
308
|
-
export const piParentLayer = Layer.effect(AgentRuntime, makePiParent);
|
|
309
|
-
/** Provides Pi coding sessions for tasks delegated by a parent. */
|
|
310
147
|
export const piChildBackendLayer = Layer.effect(PiChildBackend, makePiChild);
|
|
311
148
|
//# 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 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:
|
|
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
|
} | {
|
|
@@ -45,26 +44,23 @@ export type PiStartResult = {
|
|
|
45
44
|
readonly pool: PiPool;
|
|
46
45
|
readonly session: PiSession;
|
|
47
46
|
};
|
|
48
|
-
/**
|
|
49
|
-
export declare const
|
|
50
|
-
readonly noTools: "builtin";
|
|
51
|
-
};
|
|
47
|
+
/** Returns a bash tool whose commands run with exactly `environment`; Pi's `PI_*` variables are not added. */
|
|
48
|
+
export declare const environmentBashTool: (cwd: string, environment: Readonly<Record<string, string>>) => ToolDefinition;
|
|
52
49
|
declare const PiSdk_base: Context.ServiceClass<PiSdk, "@usine/agents/pi/PiSdk", {
|
|
53
50
|
readonly start: (options: PiStartOptions) => Promise<PiStartResult>;
|
|
54
51
|
}>;
|
|
55
|
-
/**
|
|
52
|
+
/** The service that starts a Pi session with the selected model and its repository tools. */
|
|
56
53
|
export declare class PiSdk extends PiSdk_base {
|
|
57
54
|
}
|
|
58
55
|
export declare const piSdkLive: Layer.Layer<PiSdk, never, never>;
|
|
59
56
|
export interface AcquiredPiStart {
|
|
60
57
|
readonly result: PiStartResult;
|
|
61
|
-
/**
|
|
58
|
+
/** Disposes the session; idempotent, because both failed setup and the enclosing scope can call it. */
|
|
62
59
|
readonly dispose: () => void;
|
|
63
60
|
}
|
|
64
61
|
/**
|
|
65
|
-
* Runs SDK startup so an interruption cannot leak a session
|
|
66
|
-
*
|
|
67
|
-
* one already handed to `use` is disposed by `onExit`.
|
|
62
|
+
* Runs SDK startup so an interruption cannot leak a session: a result that arrives after the
|
|
63
|
+
* interruption is disposed when its Promise settles, and one passed to `use` is disposed on exit.
|
|
68
64
|
*/
|
|
69
65
|
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
66
|
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":"
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAQlB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,MAAM,EAIZ,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,OAAO,CAC7B,UAAU,CAAC,OAAO,kBAAkB,CAAC,CACtC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjC,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC9E,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gHAAgH;IAChH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEN,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,QACzB,MAAM,eACE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC5C,cAKF,CAAC;;oBAKkB,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC;;AAHvE,6FAA6F;AAC7F,qBAAa,KAAM,SAAQ,UAGE;CAAG;AAEhC,eAAO,MAAM,SAAS,kCA8EpB,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,uGAAuG;IACvG,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAC7B,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,WAC7C,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,OACzB,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CA+CzB,CAAC"}
|