@rivet-dev/pi 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/actions.d.ts +188 -77
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +276 -101
  4. package/dist/actions.js.map +1 -1
  5. package/dist/actor-config.d.ts +1 -2
  6. package/dist/actor-config.d.ts.map +1 -1
  7. package/dist/actor-config.js +1 -2
  8. package/dist/actor-config.js.map +1 -1
  9. package/dist/actor-sqlite.d.ts +16 -0
  10. package/dist/actor-sqlite.d.ts.map +1 -0
  11. package/dist/actor-sqlite.js +52 -0
  12. package/dist/actor-sqlite.js.map +1 -0
  13. package/dist/actor.d.ts +21 -17
  14. package/dist/actor.d.ts.map +1 -1
  15. package/dist/actor.js +62 -34
  16. package/dist/actor.js.map +1 -1
  17. package/dist/credentials.d.ts +5 -5
  18. package/dist/credentials.d.ts.map +1 -1
  19. package/dist/credentials.js +12 -41
  20. package/dist/credentials.js.map +1 -1
  21. package/dist/database-env.d.ts +14 -0
  22. package/dist/database-env.d.ts.map +1 -0
  23. package/dist/database-env.js +173 -0
  24. package/dist/database-env.js.map +1 -0
  25. package/dist/drain.d.ts +1 -1
  26. package/dist/drain.js +1 -1
  27. package/dist/durable.d.ts +24 -0
  28. package/dist/durable.d.ts.map +1 -0
  29. package/dist/durable.js +5 -0
  30. package/dist/durable.js.map +1 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js.map +1 -0
  33. package/dist/index.d.ts +4 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/models.d.ts +4 -35
  37. package/dist/models.d.ts.map +1 -1
  38. package/dist/models.js +0 -70
  39. package/dist/models.js.map +1 -1
  40. package/dist/runtime.d.ts +84 -81
  41. package/dist/runtime.d.ts.map +1 -1
  42. package/dist/runtime.js +399 -406
  43. package/dist/runtime.js.map +1 -1
  44. package/dist/storage.d.ts +29 -45
  45. package/dist/storage.d.ts.map +1 -1
  46. package/dist/storage.js +52 -99
  47. package/dist/storage.js.map +1 -1
  48. package/dist/tracing.d.ts +4 -9
  49. package/dist/tracing.d.ts.map +1 -1
  50. package/dist/tracing.js +4 -40
  51. package/dist/tracing.js.map +1 -1
  52. package/dist/{durable/watches.d.ts → watches.d.ts} +5 -5
  53. package/dist/watches.d.ts.map +1 -0
  54. package/dist/{durable/watches.js → watches.js} +4 -5
  55. package/dist/watches.js.map +1 -0
  56. package/package.json +10 -18
  57. package/dist/durable/actions.d.ts +0 -192
  58. package/dist/durable/actions.d.ts.map +0 -1
  59. package/dist/durable/actions.js +0 -289
  60. package/dist/durable/actions.js.map +0 -1
  61. package/dist/durable/actor-sqlite.d.ts +0 -10
  62. package/dist/durable/actor-sqlite.d.ts.map +0 -1
  63. package/dist/durable/actor-sqlite.js +0 -32
  64. package/dist/durable/actor-sqlite.js.map +0 -1
  65. package/dist/durable/actor.d.ts +0 -36
  66. package/dist/durable/actor.d.ts.map +0 -1
  67. package/dist/durable/actor.js +0 -107
  68. package/dist/durable/actor.js.map +0 -1
  69. package/dist/durable/env.d.ts +0 -13
  70. package/dist/durable/env.d.ts.map +0 -1
  71. package/dist/durable/env.js +0 -178
  72. package/dist/durable/env.js.map +0 -1
  73. package/dist/durable/errors.d.ts.map +0 -1
  74. package/dist/durable/errors.js.map +0 -1
  75. package/dist/durable/index.d.ts +0 -5
  76. package/dist/durable/index.d.ts.map +0 -1
  77. package/dist/durable/index.js +0 -2
  78. package/dist/durable/index.js.map +0 -1
  79. package/dist/durable/runtime.d.ts +0 -92
  80. package/dist/durable/runtime.d.ts.map +0 -1
  81. package/dist/durable/runtime.js +0 -435
  82. package/dist/durable/runtime.js.map +0 -1
  83. package/dist/durable/storage.d.ts +0 -31
  84. package/dist/durable/storage.d.ts.map +0 -1
  85. package/dist/durable/storage.js +0 -53
  86. package/dist/durable/storage.js.map +0 -1
  87. package/dist/durable/watches.d.ts.map +0 -1
  88. package/dist/durable/watches.js.map +0 -1
  89. package/dist/sandbox.d.ts +0 -27
  90. package/dist/sandbox.d.ts.map +0 -1
  91. package/dist/sandbox.js +0 -224
  92. package/dist/sandbox.js.map +0 -1
  93. /package/dist/{durable/errors.d.ts → errors.d.ts} +0 -0
  94. /package/dist/{durable/errors.js → errors.js} +0 -0
package/dist/actions.js CHANGED
@@ -1,114 +1,289 @@
1
- import { availableModels, requireCredential, switchModel, } from "./models.js";
2
- import { ensurePiSession, persistPiState, } from "./runtime.js";
1
+ import { UserError } from "rivetkit";
2
+ import { assertModelAllowed } from "./models.js";
3
+ import { documentsByKind, piRuntime, withHarness, } from "./runtime.js";
3
4
  import { traceRun } from "./tracing.js";
5
+ import { unwatch, watch } from "./watches.js";
6
+ /**
7
+ * The `pi()` 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
+ */
4
12
  export function createPiActions(options) {
5
- /** Runs a read-only session method. */
6
- const read = async (c, callback) => callback(await ensurePiSession(c, options));
7
- /** Runs a session method that may change settings and persists them after. */
8
- const mutate = async (c, callback) => {
9
- const handle = await ensurePiSession(c, options);
10
- let result;
11
- try {
12
- result = await callback(handle);
13
- }
14
- catch (error) {
15
- await persistPiState(c, handle).catch((writeError) => {
16
- c.log.error({
17
- msg: "pi state write failed after an action error",
18
- error: writeError,
19
- });
20
- });
21
- throw error;
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 = piRuntime(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 = piRuntime(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 pi({ documents }).`);
22
40
  }
23
- await persistPiState(c, handle);
24
- return result;
41
+ return doc;
25
42
  };
43
+ // Ids are Pi's branded id types, which clients get from responses. Pi's
44
+ // lookups check that each one exists, and a missing one is a `UserError`.
26
45
  return {
27
- prompt: (c, text, promptOptions) => mutate(c, async (handle) => {
28
- await reloadCredentials(handle);
29
- const { session } = handle;
30
- requireCredential(session);
31
- // The run outlives this action: a timeout, a caller that leaves, or
32
- // a stopping actor never aborts it. Only the abort action does.
33
- await traceRun(session, c.actorId, () => session.prompt(text, promptOptions));
34
- }),
35
- steer: (c, ...args) => mutate(c, ({ session }) => session.steer(...args)),
36
- followUp: (c, ...args) => mutate(c, ({ session }) => session.followUp(...args)),
37
- clearQueue: (c) => mutate(c, ({ session }) => session.clearQueue()),
38
- abort: (c) => mutate(c, ({ session }) => session.abort()),
39
- waitForIdle: (c) => read(c, ({ session }) => session.waitForIdle()),
40
- getAvailableModels: (c) => read(c, async (handle) => {
41
- await reloadCredentials(handle);
42
- return availableModels(options, handle.session);
43
- }),
44
- setModel: (c, provider, modelId) => mutate(c, async (handle) => {
45
- await reloadCredentials(handle);
46
- await switchModel(options, handle.session, provider, modelId);
47
- }),
48
- setThinkingLevel: (c, ...args) => mutate(c, ({ session }) => session.setThinkingLevel(...args)),
49
- cycleThinkingLevel: (c, ...args) => mutate(c, ({ session }) => session.cycleThinkingLevel(...args)),
50
- getAvailableThinkingLevels: (c) => read(c, ({ session }) => session.getAvailableThinkingLevels()),
51
- supportsThinking: (c) => read(c, ({ session }) => session.supportsThinking()),
52
- getActiveToolNames: (c) => read(c, ({ session }) => session.getActiveToolNames()),
53
- getCallableToolNames: (c) => read(c, ({ session }) => session.getCallableToolNames()),
54
- getAllTools: (c) => read(c, ({ session }) => session.getAllTools()),
55
- setActiveToolsByName: (c, ...args) => mutate(c, ({ session }) => session.setActiveToolsByName(...args)),
56
- executeBash: (c, command, bashOptions) => mutate(c, ({ session, bashOperations }) => {
57
- if (!bashOperations) {
58
- throw new Error("executeBash needs a sandbox; this pi() actor has none configured");
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 traceRun(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
+ };
59
174
  }
60
- return session.executeBash(command, undefined, {
61
- ...bashOptions,
62
- operations: bashOperations,
63
- });
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
+ };
64
182
  }),
65
- abortBash: (c) => read(c, ({ session }) => session.abortBash()),
66
- setSteeringMode: (c, ...args) => mutate(c, ({ session }) => session.setSteeringMode(...args)),
67
- setFollowUpMode: (c, ...args) => mutate(c, ({ session }) => session.setFollowUpMode(...args)),
68
- compact: (c, ...args) => mutate(c, ({ session }) => session.compact(...args)),
69
- abortCompaction: (c) => read(c, ({ session }) => session.abortCompaction()),
70
- setAutoCompactionEnabled: (c, ...args) => mutate(c, ({ session }) => session.setAutoCompactionEnabled(...args)),
71
- abortRetry: (c) => read(c, ({ session }) => session.abortRetry()),
72
- setAutoRetryEnabled: (c, ...args) => mutate(c, ({ session }) => session.setAutoRetryEnabled(...args)),
73
- setSessionName: (c, ...args) => mutate(c, ({ session }) => session.setSessionName(...args)),
74
- navigateTree: (c, ...args) => mutate(c, ({ session }) => session.navigateTree(...args)),
75
- getSessionTree: (c) => read(c, ({ session }) => session.sessionManager.getTree()),
76
- getSession: (c) => read(c, ({ session, cwd }) => ({
77
- sessionId: session.sessionId,
78
- sessionName: session.sessionName,
79
- cwd,
80
- model: session.model,
81
- thinkingLevel: session.thinkingLevel,
82
- isStreaming: session.isStreaming,
83
- isIdle: session.isIdle,
84
- isCompacting: session.isCompacting,
85
- isRetrying: session.isRetrying,
86
- isBashRunning: session.isBashRunning,
87
- pendingMessageCount: session.pendingMessageCount,
88
- activeTools: session.getActiveToolNames(),
89
- steeringMode: session.steeringMode,
90
- followUpMode: session.followUpMode,
91
- autoCompactionEnabled: session.autoCompactionEnabled,
92
- autoRetryEnabled: session.autoRetryEnabled,
93
- retryAttempt: session.retryAttempt,
94
- })),
95
- getMessages: (c) => read(c, ({ session }) => session.messages),
96
- getSteeringMessages: (c) => read(c, ({ session }) => [...session.getSteeringMessages()]),
97
- getFollowUpMessages: (c) => read(c, ({ session }) => [...session.getFollowUpMessages()]),
98
- getSessionStats: (c) => read(c, ({ session }) => session.getSessionStats()),
99
- getContextUsage: (c) => read(c, ({ session }) => session.getContextUsage()),
100
- getLastAssistantText: (c) => read(c, ({ session }) => session.getLastAssistantText()),
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
+ },
101
187
  };
102
188
  }
103
189
  /**
104
- * Picks up logins and logouts made since the session opened. An error from the
105
- * application's credential source rejects the action.
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.
106
226
  */
107
- async function reloadCredentials(handle) {
108
- if (!handle.credentials)
109
- return;
110
- handle.credentials.invalidate();
111
- await handle.credentials.list();
112
- await handle.session.modelRuntime.refresh({ allowNetwork: false });
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);
113
288
  }
114
289
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,7 @@ export declare function assertNoReservedNames(owner: string, actorConfig: ActorC
11
11
  event: object;
12
12
  }): void;
13
13
  /**
14
- * The app's actor config with what `pi()` and `piDurable()` add the same way:
15
- * longer action and sleep grace defaults, the runtime slot on the app's vars,
14
+ * The app's actor config with what `pi()` adds: longer action and sleep grace defaults, the runtime slot on the app's vars,
16
15
  * and shutdown hooks that run the app's hook and then close Pi.
17
16
  */
18
17
  export declare function sharedActorConfig(owner: string, actorConfig: ActorConfig, runtime: {
@@ -1 +1 @@
1
- {"version":3,"file":"actor-config.d.ts","sourceRoot":"","sources":["../src/actor-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtD,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,QAAQ,EACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,GACxC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAWjD;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC,IAAI,CAWN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,EAC/C,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACpD,SAAS,EAAE;IACV,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;CACtC;;oBAasB,OAAO,aAAa,OAAO;iBAY9B,SAAS;mBAQP,SAAS;EAQ/B;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB"}
1
+ {"version":3,"file":"actor-config.d.ts","sourceRoot":"","sources":["../src/actor-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtD,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,QAAQ,EACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,GACxC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAWjD;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,EAC/C,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACpD,SAAS,EAAE;IACV,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;CACtC;;oBAasB,OAAO,aAAa,OAAO;iBAY9B,SAAS;mBAQP,SAAS;EAQ/B;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB"}
@@ -28,8 +28,7 @@ export function assertNoReservedNames(owner, actorConfig, builtIns) {
28
28
  }
29
29
  }
30
30
  /**
31
- * The app's actor config with what `pi()` and `piDurable()` add the same way:
32
- * longer action and sleep grace defaults, the runtime slot on the app's vars,
31
+ * The app's actor config with what `pi()` adds: longer action and sleep grace defaults, the runtime slot on the app's vars,
33
32
  * and shutdown hooks that run the app's hook and then close Pi.
34
33
  */
35
34
  export function sharedActorConfig(owner, actorConfig, runtime, close, userHooks) {
@@ -1 +1 @@
1
- {"version":3,"file":"actor-config.js","sourceRoot":"","sources":["../src/actor-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1E,0HAA0H;AAC1H,MAAM,yBAAyB,GAAG,EAAE,GAAG,MAAM,CAAC;AAI9C,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAC1B,MAAc,EACd,IAA0C;IAE1C,MAAM,WAAW,GAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IACD,8EAA8E;IAC9E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAmB,EAAE,CAAC;AACtD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CACpC,KAAa,EACb,WAAwB,EACxB,QAA2C;IAE3C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;QAC5B,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;QAC/B,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;KACpB,EAAE,CAAC;QACZ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,sBAAsB,GAAG,EAAE,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAChC,KAAa,EACb,WAAwB,EACxB,OAA+C,EAC/C,KAAoD,EACpD,SAGC;IAED,6EAA6E;IAC7E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC;IAC9E,MAAM,gBAAgB,GACrB,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,6BAA6B,CAAC;IACnE,OAAO;QACN,GAAG,MAAM;QACT,OAAO,EAAE;YACR,aAAa,EAAE,yBAAyB;YACxC,gBAAgB,EAAE,6BAA6B;YAC/C,GAAG,MAAM,CAAC,OAAO;SACjB;QACD,UAAU,EAAE,KAAK,EAAE,CAAU,EAAE,SAAkB,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,cAAc;gBAC1B,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC;gBACpC,CAAC,CAAC,QAAQ,KAAK,SAAS;oBACvB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACpE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,CAAY,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACnD,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACV,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,CAAY,EAAE,EAAE;YACjC,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACV,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,WAAW,CAC1B,OAAgC,EAChC,GAAwD;IAExD,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI;QACJ,OAAO,MAAM,KAAK,UAAU;YAC3B,CAAC,CAAC,CAAC,CAAU,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC,WAAW,CAAC,MAAiC,EAAE,GAAG,CAAC;KACtD,CAAC,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"actor-config.js","sourceRoot":"","sources":["../src/actor-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type SqliteDatabase } from "@earendil-works/pi-durable/storage/sqlite";
2
+ import type { RawAccess } from "rivetkit/db";
3
+ /**
4
+ * Pi Durable's tables: the ones its migrations create, and `durable_schema`,
5
+ * which its migration runner creates. The actor's database also holds the
6
+ * app's tables, so Pi's tables are stored with a `pi_` prefix.
7
+ */
8
+ export declare const PI_DURABLE_TABLES: readonly string[];
9
+ /**
10
+ * Pi Durable's `SqliteDatabase` over the actor's SQLite database.
11
+ *
12
+ * The actor owns the database, so `close` does nothing. Pi Durable calls it from
13
+ * `storage.close()`, and the actor closes the database itself when it stops.
14
+ */
15
+ export declare function actorSqlite(db: RawAccess): SqliteDatabase;
16
+ //# sourceMappingURL=actor-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor-sqlite.d.ts","sourceRoot":"","sources":["../src/actor-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAU9C,CAAC;AAaF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,CASzD"}
@@ -0,0 +1,52 @@
1
+ import { SQLITE_MIGRATIONS, } from "@earendil-works/pi-durable/storage/sqlite";
2
+ /**
3
+ * Pi Durable's tables: the ones its migrations create, and `durable_schema`,
4
+ * which its migration runner creates. The actor's database also holds the
5
+ * app's tables, so Pi's tables are stored with a `pi_` prefix.
6
+ */
7
+ export const PI_DURABLE_TABLES = [
8
+ "durable_schema",
9
+ ...SQLITE_MIGRATIONS.flatMap((migration) => migration.statements.flatMap((statement) => {
10
+ const table = /^\s*CREATE TABLE (?:IF NOT EXISTS )?(\w+)/i.exec(statement)?.[1];
11
+ return table === undefined ? [] : [table];
12
+ })),
13
+ ];
14
+ /** Pi Durable's SQL names its tables only as table references, so whole words are table names. */
15
+ const PI_TABLE_NAMES = new RegExp(`\\b(${PI_DURABLE_TABLES.join("|")})\\b`, "g");
16
+ /** Pi Durable's SQL with its table names prefixed. */
17
+ function prefixTables(sql) {
18
+ return sql.replace(PI_TABLE_NAMES, "pi_$1");
19
+ }
20
+ /**
21
+ * Pi Durable's `SqliteDatabase` over the actor's SQLite database.
22
+ *
23
+ * The actor owns the database, so `close` does nothing. Pi Durable calls it from
24
+ * `storage.close()`, and the actor closes the database itself when it stops.
25
+ */
26
+ export function actorSqlite(db) {
27
+ return {
28
+ ...actorSqliteExecutor(db),
29
+ transaction: (callback) => db.transaction((tx) => callback(actorSqliteExecutor(tx)), {
30
+ name: "pi-durable",
31
+ }),
32
+ close: async () => { },
33
+ };
34
+ }
35
+ /**
36
+ * Pi Durable's SQL against `pi_` tables. Pi Durable names the row type of each
37
+ * query it sends. SQLite returns plain rows, so `get` and `all` take Pi's word
38
+ * for their shape.
39
+ */
40
+ function actorSqliteExecutor(db) {
41
+ return {
42
+ exec: async (sql) => {
43
+ await db.execute(prefixTables(sql));
44
+ },
45
+ run: async (sql, ...params) => {
46
+ await db.execute(prefixTables(sql), ...params);
47
+ },
48
+ get: async (sql, ...params) => (await db.execute(prefixTables(sql), ...params)).at(0),
49
+ all: async (sql, ...params) => (await db.execute(prefixTables(sql), ...params)),
50
+ };
51
+ }
52
+ //# sourceMappingURL=actor-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor-sqlite.js","sourceRoot":"","sources":["../src/actor-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,GAIjB,MAAM,2CAA2C,CAAC;AAGnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IACnD,gBAAgB;IAChB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1C,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,4CAA4C,CAAC,IAAI,CAC9D,SAAS,CACT,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CACF;CACD,CAAC;AAEF,kGAAkG;AAClG,MAAM,cAAc,GAAG,IAAI,MAAM,CAChC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EACxC,GAAG,CACH,CAAC;AAEF,sDAAsD;AACtD,SAAS,YAAY,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;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;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,EAA8B;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnB,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE;YAC7B,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,GAAG,EAAE,KAAK,EAAoB,GAAW,EAAE,GAAG,MAAqB,EAAE,EAAE,CACrE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,GAAG,EAAE,KAAK,EAAoB,GAAW,EAAE,GAAG,MAAqB,EAAE,EAAE,CACtE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAQ;KACxD,CAAC;AACH,CAAC"}