@rivet-dev/pi 0.5.0 → 0.5.1
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/dist/actions.d.ts +188 -77
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +276 -101
- package/dist/actions.js.map +1 -1
- package/dist/actor-config.d.ts +1 -2
- package/dist/actor-config.d.ts.map +1 -1
- package/dist/actor-config.js +1 -2
- package/dist/actor-config.js.map +1 -1
- package/dist/actor-sqlite.d.ts.map +1 -0
- package/dist/actor-sqlite.js.map +1 -0
- package/dist/actor.d.ts +21 -17
- package/dist/actor.d.ts.map +1 -1
- package/dist/actor.js +62 -34
- package/dist/actor.js.map +1 -1
- package/dist/credentials.d.ts +3 -4
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +11 -39
- package/dist/credentials.js.map +1 -1
- package/dist/drain.d.ts +1 -1
- package/dist/drain.js +1 -1
- package/dist/durable.d.ts +24 -0
- package/dist/durable.d.ts.map +1 -0
- package/dist/durable.js +5 -0
- package/dist/durable.js.map +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +4 -35
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +0 -70
- package/dist/models.js.map +1 -1
- package/dist/runtime.d.ts +84 -81
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +394 -406
- package/dist/runtime.js.map +1 -1
- package/dist/storage.d.ts +27 -45
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +28 -99
- package/dist/storage.js.map +1 -1
- package/dist/tracing.d.ts +4 -9
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +4 -40
- package/dist/tracing.js.map +1 -1
- package/dist/{durable/watches.d.ts → watches.d.ts} +1 -1
- package/dist/watches.d.ts.map +1 -0
- package/dist/{durable/watches.js → watches.js} +1 -1
- package/dist/watches.js.map +1 -0
- package/package.json +10 -18
- package/dist/durable/actions.d.ts +0 -192
- package/dist/durable/actions.d.ts.map +0 -1
- package/dist/durable/actions.js +0 -289
- package/dist/durable/actions.js.map +0 -1
- package/dist/durable/actor-sqlite.d.ts.map +0 -1
- package/dist/durable/actor-sqlite.js.map +0 -1
- package/dist/durable/actor.d.ts +0 -36
- package/dist/durable/actor.d.ts.map +0 -1
- package/dist/durable/actor.js +0 -107
- package/dist/durable/actor.js.map +0 -1
- package/dist/durable/env.d.ts +0 -13
- package/dist/durable/env.d.ts.map +0 -1
- package/dist/durable/env.js +0 -178
- package/dist/durable/env.js.map +0 -1
- package/dist/durable/errors.d.ts.map +0 -1
- package/dist/durable/errors.js.map +0 -1
- package/dist/durable/index.d.ts +0 -5
- package/dist/durable/index.d.ts.map +0 -1
- package/dist/durable/index.js +0 -2
- package/dist/durable/index.js.map +0 -1
- package/dist/durable/runtime.d.ts +0 -92
- package/dist/durable/runtime.d.ts.map +0 -1
- package/dist/durable/runtime.js +0 -435
- package/dist/durable/runtime.js.map +0 -1
- package/dist/durable/storage.d.ts +0 -31
- package/dist/durable/storage.d.ts.map +0 -1
- package/dist/durable/storage.js +0 -53
- package/dist/durable/storage.js.map +0 -1
- package/dist/durable/watches.d.ts.map +0 -1
- package/dist/durable/watches.js.map +0 -1
- package/dist/sandbox.d.ts +0 -27
- package/dist/sandbox.d.ts.map +0 -1
- package/dist/sandbox.js +0 -224
- package/dist/sandbox.js.map +0 -1
- /package/dist/{durable/actor-sqlite.d.ts → actor-sqlite.d.ts} +0 -0
- /package/dist/{durable/actor-sqlite.js → actor-sqlite.js} +0 -0
- /package/dist/{durable/errors.d.ts → errors.d.ts} +0 -0
- /package/dist/{durable/errors.js → errors.js} +0 -0
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import type { Agent, AgentChange, ConversationAbortOptions, ConversationId, ConversationOwnership, ConversationView, Cursor, EntryId, EntryQuery, JsonObject, SnapshotEvent, SubmissionDraft, SubmissionId, TaskGraph, TaskId, UserInput } from "@earendil-works/pi-durable";
|
|
2
|
-
import type { PiContext } from "../runtime.js";
|
|
3
|
-
import { type PiDurableOptions } from "./runtime.js";
|
|
4
|
-
/** `AgentChange` as it crosses the wire: extensions and tools by name. */
|
|
5
|
-
export type PiAgentChange = Omit<AgentChange, "extensions" | "tools"> & {
|
|
6
|
-
readonly extensions?: readonly string[] | {
|
|
7
|
-
readonly add?: readonly string[];
|
|
8
|
-
readonly remove?: readonly string[];
|
|
9
|
-
} | null;
|
|
10
|
-
readonly tools?: readonly string[] | {
|
|
11
|
-
readonly remove: readonly string[];
|
|
12
|
-
} | null;
|
|
13
|
-
};
|
|
14
|
-
/** A conversation's resolved agent with extensions, tools, and sections by name. */
|
|
15
|
-
export interface PiAgentInfo {
|
|
16
|
-
model: Agent["model"];
|
|
17
|
-
thinkingLevel: Agent["thinkingLevel"];
|
|
18
|
-
extensions: string[];
|
|
19
|
-
tools: string[];
|
|
20
|
-
sections: string[];
|
|
21
|
-
instructions: Agent["instructions"];
|
|
22
|
-
cwd: Agent["cwd"];
|
|
23
|
-
}
|
|
24
|
-
/** Options for `harness.createConversation` and `conversation.fork`, with the agent change by name. */
|
|
25
|
-
export interface PiCreateConversationOptions {
|
|
26
|
-
ownership: ConversationOwnership;
|
|
27
|
-
agent?: PiAgentChange;
|
|
28
|
-
}
|
|
29
|
-
/** Options for `prompt`. */
|
|
30
|
-
export interface PiDurablePromptOptions {
|
|
31
|
-
/** Defaults to the root conversation. */
|
|
32
|
-
conversationId?: number;
|
|
33
|
-
/** Deduplicates retries: a second prompt with the same id returns the first one's submission. */
|
|
34
|
-
requestId?: string;
|
|
35
|
-
whenBusy?: "steer" | "followUp" | "reject";
|
|
36
|
-
}
|
|
37
|
-
/** How a `prompt` settled. `unanswered` carries Pi's reason, such as a model error. */
|
|
38
|
-
export type PiDurablePromptResult = {
|
|
39
|
-
status: "done";
|
|
40
|
-
/** The answer's text. */
|
|
41
|
-
text: string | undefined;
|
|
42
|
-
submissionId: SubmissionId;
|
|
43
|
-
} | {
|
|
44
|
-
status: "unanswered";
|
|
45
|
-
reason: string;
|
|
46
|
-
submissionId: SubmissionId;
|
|
47
|
-
};
|
|
48
|
-
/** The built-in actions of a `piDurable()` actor, as clients call them. */
|
|
49
|
-
export type PiDurableActions = ReturnType<typeof createPiDurableActions>;
|
|
50
|
-
/**
|
|
51
|
-
* The `piDurable()` actions: Pi Durable's `Harness`, `Conversation`, and
|
|
52
|
-
* `Submission` methods under `harness`, `conversation`, and `submission`, with
|
|
53
|
-
* the same names. Ids replace objects, and conversation methods take the
|
|
54
|
-
* conversation id first. `prompt` is the one convenience action.
|
|
55
|
-
*/
|
|
56
|
-
export declare function createPiDurableActions(options: PiDurableOptions): {
|
|
57
|
-
harness: {
|
|
58
|
-
root: (c: PiContext, rootOptions?: {
|
|
59
|
-
agent?: PiAgentChange;
|
|
60
|
-
}) => Promise<{
|
|
61
|
-
id: ConversationId;
|
|
62
|
-
}>;
|
|
63
|
-
conversation: (c: PiContext, id: number) => Promise<import("@earendil-works/pi-durable").ConversationRecord | undefined>;
|
|
64
|
-
createConversation: (c: PiContext, create: PiCreateConversationOptions) => Promise<{
|
|
65
|
-
id: ConversationId;
|
|
66
|
-
}>;
|
|
67
|
-
submission: (c: PiContext, id: number) => Promise<import("@earendil-works/pi-durable").SubmissionRecord | undefined>;
|
|
68
|
-
abortSubmission: (c: PiContext, id: number, conversationId?: number) => Promise<"aborted" | "already_placed" | "settled">;
|
|
69
|
-
getTask: (c: PiContext, id: number) => Promise<import("@earendil-works/pi-durable").TaskRecord<import("@earendil-works/chord").JsonValue, import("@earendil-works/chord").JsonValue, unknown> | undefined>;
|
|
70
|
-
abortTask: (c: PiContext, id: number) => Promise<"terminal" | "marked">;
|
|
71
|
-
waitForTask: (c: PiContext, id: number) => Promise<import("@earendil-works/pi-durable").SettledTask<unknown>>;
|
|
72
|
-
waitForIdle: (c: PiContext) => Promise<void>;
|
|
73
|
-
inspect: (c: PiContext) => Promise<{
|
|
74
|
-
tasks: import("@earendil-works/pi-durable").TaskInspection[];
|
|
75
|
-
scheduling: "paused" | "running" | "closing";
|
|
76
|
-
submissions: readonly import("@earendil-works/pi-durable").SubmissionRecord[];
|
|
77
|
-
}>;
|
|
78
|
-
usage: (c: PiContext) => Promise<import("@earendil-works/pi-durable").UsageState>;
|
|
79
|
-
taskGraph: (c: PiContext) => Promise<TaskGraph>;
|
|
80
|
-
snapshot: (c: PiContext, kind: string, conversationId: number) => Promise<Readonly<any> | undefined>;
|
|
81
|
-
/** The task graph; then `pi.taskGraph` frames to this connection. */
|
|
82
|
-
watchTaskGraph: (c: PiContext) => Promise<{
|
|
83
|
-
value: TaskGraph;
|
|
84
|
-
}>;
|
|
85
|
-
unwatchTaskGraph: (c: PiContext) => Promise<void>;
|
|
86
|
-
/**
|
|
87
|
-
* The document's value; then `pi.doc` frames to this connection. A
|
|
88
|
-
* document that does not exist yet has value `undefined`, and its
|
|
89
|
-
* first frame arrives when a commit creates it.
|
|
90
|
-
*/
|
|
91
|
-
watchDoc: (c: PiContext, kind: string, conversationId: number) => Promise<{
|
|
92
|
-
value: JsonObject | null | undefined;
|
|
93
|
-
}>;
|
|
94
|
-
unwatchDoc: (c: PiContext, kind: string, conversationId: number) => Promise<void>;
|
|
95
|
-
};
|
|
96
|
-
conversation: {
|
|
97
|
-
agent: (c: PiContext, conversationId: number) => Promise<PiAgentInfo>;
|
|
98
|
-
configure: (c: PiContext, conversationId: number, change: PiAgentChange) => Promise<void>;
|
|
99
|
-
submit: (c: PiContext, conversationId: number, draft: SubmissionDraft) => Promise<import("@earendil-works/pi-durable").SubmissionRecord>;
|
|
100
|
-
reset: (c: PiContext, conversationId: number, handoff?: string) => Promise<void>;
|
|
101
|
-
compact: (c: PiContext, conversationId: number, instructions?: string) => Promise<TaskId<import("@earendil-works/pi-durable").CompactionResult>>;
|
|
102
|
-
context: (c: PiContext, conversationId: number) => Promise<import("@earendil-works/pi-durable").ContextView>;
|
|
103
|
-
entries: (c: PiContext, conversationId: number, query: Omit<EntryQuery, "conversationId">, limit: number, cursor?: Cursor) => Promise<import("@earendil-works/pi-durable").Page<import("@earendil-works/pi-durable").EntryRecord, Readonly<Record<string, import("@earendil-works/chord").JsonValue>>>>;
|
|
104
|
-
fork: (c: PiContext, conversationId: number, at: number, fork: PiCreateConversationOptions) => Promise<{
|
|
105
|
-
id: ConversationId;
|
|
106
|
-
}>;
|
|
107
|
-
abort: (c: PiContext, conversationId: number, abortOptions?: ConversationAbortOptions) => Promise<void>;
|
|
108
|
-
waitForIdle: (c: PiContext, conversationId: number) => Promise<void>;
|
|
109
|
-
/** The structural view; then `pi.view` frames with Chord operations to this connection. */
|
|
110
|
-
watch: (c: PiContext, conversationId: number) => Promise<{
|
|
111
|
-
value: ConversationView;
|
|
112
|
-
}>;
|
|
113
|
-
unwatch: (c: PiContext, conversationId: number) => Promise<void>;
|
|
114
|
-
/** A snapshot, partial answer included; then `pi.events` batches to this connection. Nothing is replayed. */
|
|
115
|
-
watchEvents: (c: PiContext, conversationId: number) => Promise<{
|
|
116
|
-
snapshot: SnapshotEvent;
|
|
117
|
-
}>;
|
|
118
|
-
unwatchEvents: (c: PiContext, conversationId: number) => Promise<void>;
|
|
119
|
-
};
|
|
120
|
-
submission: {
|
|
121
|
-
status: (c: PiContext, id: number) => Promise<import("@earendil-works/pi-durable").SubmissionRecord>;
|
|
122
|
-
wait: (c: PiContext, id: number) => Promise<({
|
|
123
|
-
readonly id: SubmissionId;
|
|
124
|
-
readonly conversationId: ConversationId;
|
|
125
|
-
readonly requestId?: string;
|
|
126
|
-
} & {
|
|
127
|
-
readonly type: "input";
|
|
128
|
-
} & {
|
|
129
|
-
readonly status: "done";
|
|
130
|
-
readonly entry: EntryId;
|
|
131
|
-
readonly answer: EntryId;
|
|
132
|
-
readonly reason?: never;
|
|
133
|
-
readonly detail?: never;
|
|
134
|
-
} & {
|
|
135
|
-
readonly status: "done" | "unanswered";
|
|
136
|
-
}) | ({
|
|
137
|
-
readonly id: SubmissionId;
|
|
138
|
-
readonly conversationId: ConversationId;
|
|
139
|
-
readonly requestId?: string;
|
|
140
|
-
} & {
|
|
141
|
-
readonly type: "input";
|
|
142
|
-
} & {
|
|
143
|
-
readonly status: "unanswered";
|
|
144
|
-
readonly entry?: EntryId;
|
|
145
|
-
readonly answer?: never;
|
|
146
|
-
readonly reason: string;
|
|
147
|
-
readonly detail?: import("@earendil-works/chord").JsonValue;
|
|
148
|
-
} & {
|
|
149
|
-
readonly status: "done" | "unanswered";
|
|
150
|
-
}) | ({
|
|
151
|
-
readonly id: SubmissionId;
|
|
152
|
-
readonly conversationId: ConversationId;
|
|
153
|
-
readonly requestId?: string;
|
|
154
|
-
} & {
|
|
155
|
-
readonly type: "write";
|
|
156
|
-
} & {
|
|
157
|
-
readonly status: "done";
|
|
158
|
-
readonly entry: EntryId;
|
|
159
|
-
readonly answer?: never;
|
|
160
|
-
readonly reason?: never;
|
|
161
|
-
readonly detail?: never;
|
|
162
|
-
} & {
|
|
163
|
-
readonly status: "done" | "unanswered";
|
|
164
|
-
}) | ({
|
|
165
|
-
readonly id: SubmissionId;
|
|
166
|
-
readonly conversationId: ConversationId;
|
|
167
|
-
readonly requestId?: string;
|
|
168
|
-
} & {
|
|
169
|
-
readonly type: "write";
|
|
170
|
-
} & {
|
|
171
|
-
readonly status: "unanswered";
|
|
172
|
-
readonly entry?: never;
|
|
173
|
-
readonly answer?: never;
|
|
174
|
-
readonly reason: string;
|
|
175
|
-
readonly detail?: import("@earendil-works/chord").JsonValue;
|
|
176
|
-
} & {
|
|
177
|
-
readonly status: "done" | "unanswered";
|
|
178
|
-
})>;
|
|
179
|
-
abort: (c: PiContext, id: number) => Promise<"aborted" | "already_placed" | "settled">;
|
|
180
|
-
};
|
|
181
|
-
/**
|
|
182
|
-
* Submits user input, waits for the run to settle, and returns the
|
|
183
|
-
* answer's text. A model error does not reject: the status is
|
|
184
|
-
* `unanswered` with Pi's reason.
|
|
185
|
-
*/
|
|
186
|
-
prompt: (c: PiContext, content: UserInput, promptOptions?: PiDurablePromptOptions) => Promise<PiDurablePromptResult>;
|
|
187
|
-
pi: {
|
|
188
|
-
/** Scheduled at the end of a long wait. Opening the harness resumes the waiting work. */
|
|
189
|
-
wake: (c: PiContext) => Promise<void>;
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/durable/actions.ts"],"names":[],"mappings":"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"}
|
package/dist/durable/actions.js
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import { UserError } from "rivetkit";
|
|
2
|
-
import { assertModelAllowed } from "../models.js";
|
|
3
|
-
import { traceDurableRun } from "../tracing.js";
|
|
4
|
-
import { documentsByKind, piDurableRuntime, withHarness, } from "./runtime.js";
|
|
5
|
-
import { unwatch, watch } from "./watches.js";
|
|
6
|
-
/**
|
|
7
|
-
* The `piDurable()` actions: Pi Durable's `Harness`, `Conversation`, and
|
|
8
|
-
* `Submission` methods under `harness`, `conversation`, and `submission`, with
|
|
9
|
-
* the same names. Ids replace objects, and conversation methods take the
|
|
10
|
-
* conversation id first. `prompt` is the one convenience action.
|
|
11
|
-
*/
|
|
12
|
-
export function createPiDurableActions(options) {
|
|
13
|
-
const documents = documentsByKind(options);
|
|
14
|
-
const run = (c, body) => withHarness(c, options, body);
|
|
15
|
-
const agentChange = (change) => change === undefined ? undefined : resolveAgentChange(options, change);
|
|
16
|
-
/**
|
|
17
|
-
* Starts a watch for the calling connection. Frames go to that connection
|
|
18
|
-
* only. `T` is the starting value `start` in `watches.ts` returns for the
|
|
19
|
-
* kind in `spec`; each action below names it.
|
|
20
|
-
*/
|
|
21
|
-
const watchFor = (c, spec) => run(c, async (harness, context) => {
|
|
22
|
-
const connId = connectionId(c);
|
|
23
|
-
const runtime = piDurableRuntime(c);
|
|
24
|
-
return (await watch(runtime.actor ?? c, runtime.watches, harness, documents, connId, spec, () => requireWatchTarget(harness, spec, context)));
|
|
25
|
-
});
|
|
26
|
-
const unwatchFor = (c, spec) => run(c, async () => {
|
|
27
|
-
const runtime = piDurableRuntime(c);
|
|
28
|
-
await unwatch(runtime.actor ?? c, runtime.watches, connectionId(c), spec);
|
|
29
|
-
});
|
|
30
|
-
const requireWatchTarget = async (harness, spec, context) => {
|
|
31
|
-
if (spec.kind === "doc")
|
|
32
|
-
requireDocument(spec.docKind);
|
|
33
|
-
if (spec.kind !== "taskGraph")
|
|
34
|
-
await requireConversation(harness, spec.conversationId, context);
|
|
35
|
-
};
|
|
36
|
-
const requireDocument = (kind) => {
|
|
37
|
-
const doc = documents.get(kind);
|
|
38
|
-
if (!doc) {
|
|
39
|
-
throw new UserError(`Document ${kind} is not listed in piDurable({ documents }).`);
|
|
40
|
-
}
|
|
41
|
-
return doc;
|
|
42
|
-
};
|
|
43
|
-
// Ids arrive as plain numbers and are cast to Pi's branded id types. Pi's
|
|
44
|
-
// lookups check that each one exists, and a missing one is a `UserError`.
|
|
45
|
-
return {
|
|
46
|
-
harness: {
|
|
47
|
-
root: (c, rootOptions) => run(c, async (harness, context) => ({
|
|
48
|
-
id: (await harness.root(context, {
|
|
49
|
-
agent: agentChange(rootOptions?.agent),
|
|
50
|
-
})).id,
|
|
51
|
-
})),
|
|
52
|
-
conversation: (c, id) => run(c, (harness, context) => harness.commit((tx) => tx.conversation(id), context)),
|
|
53
|
-
createConversation: (c, create) => run(c, async (harness, context) => ({
|
|
54
|
-
id: (await harness.createConversation({ ownership: create.ownership, agent: agentChange(create.agent) }, context)).id,
|
|
55
|
-
})),
|
|
56
|
-
submission: (c, id) => run(c, async (harness, context) => (await harness.submission(id, context))?.status(context)),
|
|
57
|
-
abortSubmission: (c, id, conversationId) => run(c, async (harness, context) => {
|
|
58
|
-
const result = await harness.abortSubmission(id, context, conversationId);
|
|
59
|
-
if (result === "not_found")
|
|
60
|
-
throw submissionNotFound(id);
|
|
61
|
-
return result;
|
|
62
|
-
}),
|
|
63
|
-
getTask: (c, id) => run(c, (harness, context) => harness.getTask(id, context)),
|
|
64
|
-
abortTask: (c, id) => run(c, async (harness, context) => {
|
|
65
|
-
await requireTask(harness, id, context);
|
|
66
|
-
return harness.abortTask(id, context);
|
|
67
|
-
}),
|
|
68
|
-
waitForTask: (c, id) => run(c, async (harness, context) => {
|
|
69
|
-
await requireTask(harness, id, context);
|
|
70
|
-
return harness.waitForTask(id, context);
|
|
71
|
-
}),
|
|
72
|
-
waitForIdle: (c) => run(c, (harness, context) => harness.waitForIdle(context)),
|
|
73
|
-
inspect: (c) => run(c, async (harness, context) => {
|
|
74
|
-
const inspection = await harness.inspect(context);
|
|
75
|
-
return {
|
|
76
|
-
...inspection,
|
|
77
|
-
// A migration failure carries an Error, which does not cross the wire.
|
|
78
|
-
tasks: inspection.tasks.map((task) => task.state.kind === "blocked" && task.state.error !== undefined
|
|
79
|
-
? {
|
|
80
|
-
...task,
|
|
81
|
-
state: {
|
|
82
|
-
...task.state,
|
|
83
|
-
error: errorMessage(task.state.error),
|
|
84
|
-
},
|
|
85
|
-
}
|
|
86
|
-
: task),
|
|
87
|
-
};
|
|
88
|
-
}),
|
|
89
|
-
usage: (c) => run(c, (harness, context) => harness.usage(context)),
|
|
90
|
-
taskGraph: (c) => run(c, async (harness, context) => {
|
|
91
|
-
const graph = await harness.taskGraph(context);
|
|
92
|
-
try {
|
|
93
|
-
return graph.value;
|
|
94
|
-
}
|
|
95
|
-
finally {
|
|
96
|
-
graph.dispose();
|
|
97
|
-
}
|
|
98
|
-
}),
|
|
99
|
-
snapshot: (c, kind, conversationId) => run(c, async (harness, context) => harness.snapshot(requireDocument(kind), conversationId, context)),
|
|
100
|
-
/** The task graph; then `pi.taskGraph` frames to this connection. */
|
|
101
|
-
watchTaskGraph: (c) => watchFor(c, { kind: "taskGraph" }),
|
|
102
|
-
unwatchTaskGraph: (c) => unwatchFor(c, { kind: "taskGraph" }),
|
|
103
|
-
/**
|
|
104
|
-
* The document's value; then `pi.doc` frames to this connection. A
|
|
105
|
-
* document that does not exist yet has value `undefined`, and its
|
|
106
|
-
* first frame arrives when a commit creates it.
|
|
107
|
-
*/
|
|
108
|
-
watchDoc: (c, kind, conversationId) => watchFor(c, {
|
|
109
|
-
kind: "doc",
|
|
110
|
-
docKind: kind,
|
|
111
|
-
conversationId,
|
|
112
|
-
}),
|
|
113
|
-
unwatchDoc: (c, kind, conversationId) => unwatchFor(c, { kind: "doc", docKind: kind, conversationId }),
|
|
114
|
-
},
|
|
115
|
-
conversation: {
|
|
116
|
-
agent: (c, conversationId) => run(c, async (harness, context) => agentInfo(await (await requireConversation(harness, conversationId, context)).agent(context))),
|
|
117
|
-
configure: (c, conversationId, change) => run(c, async (harness, context) => {
|
|
118
|
-
const resolved = resolveAgentChange(options, change);
|
|
119
|
-
await (await requireConversation(harness, conversationId, context)).configure(resolved, context);
|
|
120
|
-
}),
|
|
121
|
-
submit: (c, conversationId, draft) => run(c, async (harness, context) => (await (await requireConversation(harness, conversationId, context)).submit(draft, context)).status(context)),
|
|
122
|
-
reset: (c, conversationId, handoff) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).reset(handoff, context)),
|
|
123
|
-
compact: (c, conversationId, instructions) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).compact(instructions, context)),
|
|
124
|
-
context: (c, conversationId) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).context(context)),
|
|
125
|
-
entries: (c, conversationId, query, limit, cursor) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).entries(query, limit, cursor, context)),
|
|
126
|
-
fork: (c, conversationId, at, fork) => run(c, async (harness, context) => {
|
|
127
|
-
const conversation = await requireConversation(harness, conversationId, context);
|
|
128
|
-
const forked = await conversation.fork(at, { ownership: fork.ownership, agent: agentChange(fork.agent) }, context);
|
|
129
|
-
return { id: forked.id };
|
|
130
|
-
}),
|
|
131
|
-
abort: (c, conversationId, abortOptions) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).abort(context, abortOptions)),
|
|
132
|
-
waitForIdle: (c, conversationId) => run(c, async (harness, context) => (await requireConversation(harness, conversationId, context)).waitForIdle(context)),
|
|
133
|
-
/** The structural view; then `pi.view` frames with Chord operations to this connection. */
|
|
134
|
-
watch: (c, conversationId) => watchFor(c, {
|
|
135
|
-
kind: "view",
|
|
136
|
-
conversationId,
|
|
137
|
-
}),
|
|
138
|
-
unwatch: (c, conversationId) => unwatchFor(c, { kind: "view", conversationId }),
|
|
139
|
-
/** A snapshot, partial answer included; then `pi.events` batches to this connection. Nothing is replayed. */
|
|
140
|
-
watchEvents: (c, conversationId) => watchFor(c, {
|
|
141
|
-
kind: "events",
|
|
142
|
-
conversationId,
|
|
143
|
-
}),
|
|
144
|
-
unwatchEvents: (c, conversationId) => unwatchFor(c, { kind: "events", conversationId }),
|
|
145
|
-
},
|
|
146
|
-
submission: {
|
|
147
|
-
status: (c, id) => run(c, async (harness, context) => (await requireSubmission(harness, id, context)).status(context)),
|
|
148
|
-
wait: (c, id) => run(c, async (harness, context) => (await requireSubmission(harness, id, context)).wait(context)),
|
|
149
|
-
abort: (c, id) => run(c, async (harness, context) => (await requireSubmission(harness, id, context)).abort(context)),
|
|
150
|
-
},
|
|
151
|
-
/**
|
|
152
|
-
* Submits user input, waits for the run to settle, and returns the
|
|
153
|
-
* answer's text. A model error does not reject: the status is
|
|
154
|
-
* `unanswered` with Pi's reason.
|
|
155
|
-
*/
|
|
156
|
-
prompt: (c, content, promptOptions) => run(c, async (harness, context) => {
|
|
157
|
-
const conversation = promptOptions?.conversationId === undefined
|
|
158
|
-
? await harness.root(context)
|
|
159
|
-
: await requireConversation(harness, promptOptions.conversationId, context);
|
|
160
|
-
const submission = await conversation.submit({
|
|
161
|
-
type: "input",
|
|
162
|
-
content,
|
|
163
|
-
requestId: promptOptions?.requestId,
|
|
164
|
-
whenBusy: promptOptions?.whenBusy,
|
|
165
|
-
}, context);
|
|
166
|
-
const model = (await conversation.agent(context)).model;
|
|
167
|
-
const settled = await traceDurableRun(c.actorId, conversation.id, model && `${model.provider}/${model.modelId}`, () => submission.wait(context));
|
|
168
|
-
if (settled.status === "unanswered") {
|
|
169
|
-
return {
|
|
170
|
-
status: settled.status,
|
|
171
|
-
reason: settled.reason,
|
|
172
|
-
submissionId: submission.id,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
return {
|
|
176
|
-
status: settled.status,
|
|
177
|
-
text: settled.type === "input"
|
|
178
|
-
? await answerText(conversation, settled.answer, context)
|
|
179
|
-
: undefined,
|
|
180
|
-
submissionId: submission.id,
|
|
181
|
-
};
|
|
182
|
-
}),
|
|
183
|
-
pi: {
|
|
184
|
-
/** Scheduled at the end of a long wait. Opening the harness resumes the waiting work. */
|
|
185
|
-
wake: (c) => run(c, async () => { }),
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* The calling connection, which receives the watch's frames. A stateless call
|
|
191
|
-
* gets the starting value, and its watch ends with the request. Only a call
|
|
192
|
-
* with no connection at all, such as a scheduled action, cannot watch.
|
|
193
|
-
*/
|
|
194
|
-
function connectionId(c) {
|
|
195
|
-
const conn = c.conn;
|
|
196
|
-
if (!conn) {
|
|
197
|
-
throw new UserError("Watching needs a calling connection. Call it from a client handle, and use connect() to receive frames.");
|
|
198
|
-
}
|
|
199
|
-
return conn.id;
|
|
200
|
-
}
|
|
201
|
-
async function requireConversation(harness, id, context) {
|
|
202
|
-
const conversation = await harness.conversation(id, context);
|
|
203
|
-
if (!conversation) {
|
|
204
|
-
throw new UserError(`Conversation ${id} does not exist.`);
|
|
205
|
-
}
|
|
206
|
-
return conversation;
|
|
207
|
-
}
|
|
208
|
-
async function requireSubmission(harness, id, context) {
|
|
209
|
-
const submission = await harness.submission(id, context);
|
|
210
|
-
if (!submission)
|
|
211
|
-
throw submissionNotFound(id);
|
|
212
|
-
return submission;
|
|
213
|
-
}
|
|
214
|
-
function submissionNotFound(id) {
|
|
215
|
-
return new UserError(`Submission ${id} does not exist.`);
|
|
216
|
-
}
|
|
217
|
-
async function requireTask(harness, id, context) {
|
|
218
|
-
if (!(await harness.getTask(id, context))) {
|
|
219
|
-
throw new UserError(`Task ${id} does not exist.`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Resolves extension and tool names against the installed registry. A model
|
|
224
|
-
* outside `scopedModels`, or other than `model` when `scopedModels` is unset,
|
|
225
|
-
* is rejected.
|
|
226
|
-
*/
|
|
227
|
-
function resolveAgentChange(options, change) {
|
|
228
|
-
const snapshot = options.registry.snapshot();
|
|
229
|
-
const extension = (name) => {
|
|
230
|
-
const found = snapshot.extension(name);
|
|
231
|
-
if (!found)
|
|
232
|
-
throw new UserError(`Extension ${name} is not installed.`);
|
|
233
|
-
return found;
|
|
234
|
-
};
|
|
235
|
-
const tool = (name) => {
|
|
236
|
-
const found = snapshot.tools().find((entry) => entry.tool.name === name);
|
|
237
|
-
if (!found)
|
|
238
|
-
throw new UserError(`Tool ${name} is not installed.`);
|
|
239
|
-
return found.tool;
|
|
240
|
-
};
|
|
241
|
-
if (change.model) {
|
|
242
|
-
assertModelAllowed(options, change.model.provider, change.model.modelId);
|
|
243
|
-
}
|
|
244
|
-
const { extensions, tools, ...rest } = change;
|
|
245
|
-
return {
|
|
246
|
-
...rest,
|
|
247
|
-
extensions: extensions === undefined || extensions === null
|
|
248
|
-
? extensions
|
|
249
|
-
: isNameList(extensions)
|
|
250
|
-
? extensions.map(extension)
|
|
251
|
-
: {
|
|
252
|
-
add: extensions.add?.map(extension),
|
|
253
|
-
remove: extensions.remove?.map(extension),
|
|
254
|
-
},
|
|
255
|
-
tools: tools === undefined || tools === null
|
|
256
|
-
? tools
|
|
257
|
-
: isNameList(tools)
|
|
258
|
-
? tools.map(tool)
|
|
259
|
-
: { remove: tools.remove.map(tool) },
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
function isNameList(value) {
|
|
263
|
-
return Array.isArray(value);
|
|
264
|
-
}
|
|
265
|
-
function agentInfo(agent) {
|
|
266
|
-
return {
|
|
267
|
-
model: agent.model,
|
|
268
|
-
thinkingLevel: agent.thinkingLevel,
|
|
269
|
-
extensions: agent.extensions.map((extension) => extension.name),
|
|
270
|
-
tools: agent.tools.map((tool) => tool.name),
|
|
271
|
-
sections: agent.sections.map((section) => section.key),
|
|
272
|
-
instructions: agent.instructions,
|
|
273
|
-
cwd: agent.cwd,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
/** The text blocks of the answer entry, which holds the assistant message. */
|
|
277
|
-
async function answerText(conversation, answer, context) {
|
|
278
|
-
const page = await conversation.entries({ minEntryId: answer, maxEntryId: answer }, 1, undefined, context);
|
|
279
|
-
const message = page.items[0]?.model?.[0];
|
|
280
|
-
if (message?.role !== "assistant")
|
|
281
|
-
return undefined;
|
|
282
|
-
return message.content
|
|
283
|
-
.map((block) => (block.type === "text" ? block.text : ""))
|
|
284
|
-
.join("");
|
|
285
|
-
}
|
|
286
|
-
function errorMessage(error) {
|
|
287
|
-
return error instanceof Error ? error.message : String(error);
|
|
288
|
-
}
|
|
289
|
-
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/durable/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor-sqlite.d.ts","sourceRoot":"","sources":["../../src/durable/actor-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EAGd,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,CASzD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor-sqlite.js","sourceRoot":"","sources":["../../src/durable/actor-sqlite.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAa;IACxC,OAAO;QACN,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE;YACzD,IAAI,EAAE,YAAY;SAClB,CAAC;QACH,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACrB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,EAA8B;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnB,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE;YAC7B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,EAAE,KAAK,EAAoB,GAAW,EAAE,GAAG,MAAqB,EAAE,EAAE,CACrE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,GAAG,EAAE,KAAK,EAAoB,GAAW,EAAE,GAAG,MAAqB,EAAE,EAAE,CACtE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAQ;KAC1C,CAAC;AACH,CAAC"}
|
package/dist/durable/actor.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Harness } from "@earendil-works/pi-durable";
|
|
2
|
-
import { type EventSchemaConfig, type QueueSchemaConfig, type Type } from "rivetkit";
|
|
3
|
-
import type { PiActorDefinition, UserActions, UserActorConfig } from "../actor-types.js";
|
|
4
|
-
import { type PiDurableActions } from "./actions.js";
|
|
5
|
-
import { type PiDurableOptions } from "./runtime.js";
|
|
6
|
-
import { type PiDocFrame, type PiEventsFrame, type PiTaskGraphFrame, type PiViewFrame } from "./watches.js";
|
|
7
|
-
/** Watch frames, sent only to the connection that asked. See `PiWatchEvents`. */
|
|
8
|
-
export type PiDurableEvents = {
|
|
9
|
-
"pi.events": Type<PiEventsFrame>;
|
|
10
|
-
"pi.view": Type<PiViewFrame>;
|
|
11
|
-
"pi.taskGraph": Type<PiTaskGraphFrame>;
|
|
12
|
-
"pi.doc": Type<PiDocFrame>;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* `c.pi`: the actor's Pi Durable harness, in the app's own actions and hooks.
|
|
16
|
-
* Reading it throws when Pi Durable cannot open, such as after a rollback to
|
|
17
|
-
* an older schema. In `onSleep` and `onDestroy` it is set only when Pi Durable
|
|
18
|
-
* is already open in this actor generation.
|
|
19
|
-
*/
|
|
20
|
-
export interface PiDurableAccess {
|
|
21
|
-
readonly pi: Harness;
|
|
22
|
-
}
|
|
23
|
-
/** The app's own actions, which get `c.pi`. Nested objects become dotted action names. */
|
|
24
|
-
export type PiDurableUserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents extends EventSchemaConfig, TQueues extends QueueSchemaConfig> = UserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues, PiDurableAccess>;
|
|
25
|
-
/** Ordinary actor config plus the Pi Durable options. The app's actions and lifecycle hooks get `c.pi`. */
|
|
26
|
-
export type PiDurableActorConfigInput<TState = undefined, TConnParams = undefined, TConnState = undefined, TVars = undefined, TInput = undefined, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>, TUserActions extends PiDurableUserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues> = Record<never, never>> = UserActorConfig<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues, TUserActions, PiDurableOptions, PiDurableAccess>;
|
|
27
|
-
/**
|
|
28
|
-
* Defines a Rivet Actor that owns one Pi Durable harness.
|
|
29
|
-
*
|
|
30
|
-
* Pi Durable stores conversations, tasks, and documents in the actor's SQLite
|
|
31
|
-
* database. Runs survive sleep, deploys, and crashes, and resume when the
|
|
32
|
-
* actor wakes. The actions match Pi Durable's API one to one. The app's own
|
|
33
|
-
* actions and lifecycle hooks get the harness as `c.pi`.
|
|
34
|
-
*/
|
|
35
|
-
export declare function piDurable<TState, TConnParams, TConnState, TVars, TInput, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>, TUserActions extends PiDurableUserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues> = PiDurableUserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues>>(config: PiDurableActorConfigInput<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues, TUserActions>): PiActorDefinition<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues, TUserActions, PiDurableEvents, PiDurableActions>;
|
|
36
|
-
//# sourceMappingURL=actor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/durable/actor.ts"],"names":[],"mappings":"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"}
|