@rivet-dev/pi 0.5.3 → 0.5.5

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 CHANGED
@@ -45,6 +45,10 @@ export type PiPromptResult = {
45
45
  reason: string;
46
46
  submissionId: SubmissionId;
47
47
  };
48
+ /** What `submit` returns: the submission, which `submission.status` and `submission.wait` take. */
49
+ export type PiSubmitResult = {
50
+ submissionId: SubmissionId;
51
+ };
48
52
  /** The built-in actions of a `pi()` actor, as clients call them. */
49
53
  export type PiActions = ReturnType<typeof createPiActions>;
50
54
  /**
@@ -120,6 +124,7 @@ export declare function createPiActions(options: PiOptions): {
120
124
  submission: {
121
125
  status: (c: PiContext, id: SubmissionId) => Promise<import("@earendil-works/pi-durable").SubmissionRecord>;
122
126
  wait: (c: PiContext, id: SubmissionId) => Promise<({
127
+ readonly trace?: import("@earendil-works/pi-telemetry").TelemetryCarrier;
123
128
  readonly id: SubmissionId;
124
129
  readonly conversationId: ConversationId;
125
130
  readonly requestId?: string;
@@ -134,6 +139,7 @@ export declare function createPiActions(options: PiOptions): {
134
139
  } & {
135
140
  readonly status: "done" | "unanswered";
136
141
  }) | ({
142
+ readonly trace?: import("@earendil-works/pi-telemetry").TelemetryCarrier;
137
143
  readonly id: SubmissionId;
138
144
  readonly conversationId: ConversationId;
139
145
  readonly requestId?: string;
@@ -148,6 +154,7 @@ export declare function createPiActions(options: PiOptions): {
148
154
  } & {
149
155
  readonly status: "done" | "unanswered";
150
156
  }) | ({
157
+ readonly trace?: import("@earendil-works/pi-telemetry").TelemetryCarrier;
151
158
  readonly id: SubmissionId;
152
159
  readonly conversationId: ConversationId;
153
160
  readonly requestId?: string;
@@ -162,6 +169,7 @@ export declare function createPiActions(options: PiOptions): {
162
169
  } & {
163
170
  readonly status: "done" | "unanswered";
164
171
  }) | ({
172
+ readonly trace?: import("@earendil-works/pi-telemetry").TelemetryCarrier;
165
173
  readonly id: SubmissionId;
166
174
  readonly conversationId: ConversationId;
167
175
  readonly requestId?: string;
@@ -184,8 +192,14 @@ export declare function createPiActions(options: PiOptions): {
184
192
  * `unanswered` with Pi's reason.
185
193
  */
186
194
  prompt: (c: PiContext, content: UserInput, promptOptions?: PiPromptOptions) => Promise<PiPromptResult>;
195
+ /**
196
+ * Submits user input and returns without waiting for the run. Pair it
197
+ * with `onAnswer` to deliver the answer, such as from a webhook that must
198
+ * respond quickly.
199
+ */
200
+ submit: (c: PiContext, content: UserInput, submitOptions?: PiPromptOptions) => Promise<PiSubmitResult>;
187
201
  pi: {
188
- /** Scheduled at the end of a long wait. Opening the harness resumes the waiting work. */
202
+ /** Scheduled for Pi Durable's earliest sleeping task. Resumes the tasks that are due. */
189
203
  wake: (c: PiContext) => Promise<void>;
190
204
  };
191
205
  };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,KAAK,EACL,WAAW,EAEX,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,UAAU,EAEV,UAAU,EACV,aAAa,EAEb,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEN,KAAK,SAAS,EAId,MAAM,cAAc,CAAC;AAKtB,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG;IACvE,QAAQ,CAAC,UAAU,CAAC,EACjB,SAAS,MAAM,EAAE,GACjB;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GACzE,IAAI,CAAC;IACR,QAAQ,CAAC,KAAK,CAAC,EACZ,SAAS,MAAM,EAAE,GACjB;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GACtC,IAAI,CAAC;CACR,CAAC;AAEF,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CAClB;AAED,uGAAuG;AACvG,MAAM,WAAW,2BAA2B;IAC3C,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC/B,yCAAyC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC3C;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GACvB;IACA,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC1B,GACD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAE,CAAC;AAExE,oEAAoE;AACpE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS;;kBAwDrC,SAAS,gBAAgB;YAAE,KAAK,CAAC,EAAE,aAAa,CAAA;SAAE;;;0BAQ1C,SAAS,MAAM,cAAc;gCAIvB,SAAS,UAAU,2BAA2B;;;wBAStD,SAAS,MAAM,YAAY;6BAKvC,SAAS,MACR,YAAY,mBACC,cAAc;qBAWnB,SAAS,MAAM,MAAM;uBAEnB,SAAS,MAAM,MAAM;yBAKnB,SAAS,MAAM,MAAM;yBAKrB,SAAS;qBAIb,SAAS;;;;;mBAmBX,SAAS;uBAEL,SAAS;sBASV,SAAS,QAAQ,MAAM,kBAAkB,cAAc;QAIrE,qEAAqE;4BACjD,SAAS;mBACV,SAAS;;8BACN,SAAS;QAC/B;;;;WAIG;sBACW,SAAS,QAAQ,MAAM,kBAAkB,cAAc;mBAClD,UAAU,GAAG,IAAI,GAAG,SAAS;;wBAM5C,SAAS,QACN,MAAM,kBACI,cAAc;;;mBAM3B,SAAS,kBACI,cAAc,KAC5B,OAAO,CAAC,WAAW,CAAC;uBASnB,SAAS,kBACI,cAAc,UACtB,aAAa;oBASlB,SAAS,kBACI,cAAc,SACvB,eAAe;mBASZ,SAAS,kBAAkB,cAAc,YAAY,MAAM;qBAQlE,SAAS,kBACI,cAAc,iBACf,MAAM;qBAQT,SAAS,kBAAkB,cAAc;qBAOlD,SAAS,kBACI,cAAc,SACvB,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,SAClC,MAAM,WACJ,MAAM;kBAWZ,SAAS,kBACI,cAAc,MAC1B,OAAO,QACL,2BAA2B;;;mBAgB9B,SAAS,kBACI,cAAc,iBACf,wBAAwB;yBAQvB,SAAS,kBAAkB,cAAc;QAS1D,2FAA2F;mBAChF,SAAS,kBAAkB,cAAc;mBACjC,gBAAgB;;qBAItB,SAAS,kBAAkB,cAAc;QAEtD,6GAA6G;yBAC5F,SAAS,kBAAkB,cAAc;sBACpC,aAAa;;2BAIhB,SAAS,kBAAkB,cAAc;;;oBAKhD,SAAS,MAAM,YAAY;kBAI7B,SAAS,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAK1B,SAAS,MAAM,YAAY;;IAMvC;;;;OAIG;gBAEC,SAAS,WACH,SAAS,kBACF,eAAe;;QA6C/B,yFAAyF;kBAC/E,SAAS;;EAGrB"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
package/dist/actions.js CHANGED
@@ -1,8 +1,21 @@
1
1
  import { UserError } from "rivetkit";
2
2
  import { assertModelAllowed } from "./models.js";
3
- import { documentsByKind, piRuntime, withHarness, } from "./runtime.js";
3
+ import { documentsByKind, piRuntime, resumeDueSleeps, withHarness, } from "./runtime.js";
4
4
  import { traceRun } from "./tracing.js";
5
5
  import { unwatch, watch } from "./watches.js";
6
+ /** Submits user input to the conversation in `options`, or the root conversation. */
7
+ async function submitInput(harness, content, options, context) {
8
+ const conversation = options?.conversationId === undefined
9
+ ? await harness.root(context)
10
+ : await requireConversation(harness, options.conversationId, context);
11
+ const submission = await conversation.submit({
12
+ type: "input",
13
+ content,
14
+ requestId: options?.requestId,
15
+ whenBusy: options?.whenBusy,
16
+ }, context);
17
+ return { conversation, submission };
18
+ }
6
19
  /**
7
20
  * The `pi()` actions: Pi Durable's `Harness`, `Conversation`, and
8
21
  * `Submission` methods under `harness`, `conversation`, and `submission`, with
@@ -160,15 +173,7 @@ export function createPiActions(options) {
160
173
  * `unanswered` with Pi's reason.
161
174
  */
162
175
  prompt: (c, content, promptOptions) => run(c, async (harness, context, waiting) => {
163
- const conversation = promptOptions?.conversationId === undefined
164
- ? await harness.root(context)
165
- : await requireConversation(harness, promptOptions.conversationId, context);
166
- const submission = await conversation.submit({
167
- type: "input",
168
- content,
169
- requestId: promptOptions?.requestId,
170
- whenBusy: promptOptions?.whenBusy,
171
- }, context);
176
+ const { conversation, submission } = await submitInput(harness, content, promptOptions, context);
172
177
  const model = (await conversation.agent(context)).model;
173
178
  const settled = await traceRun(c.actorId, conversation.id, model && `${model.provider}/${model.modelId}`, () => waiting(() => submission.wait(context)));
174
179
  if (settled.status === "unanswered") {
@@ -186,9 +191,18 @@ export function createPiActions(options) {
186
191
  submissionId: submission.id,
187
192
  };
188
193
  }),
194
+ /**
195
+ * Submits user input and returns without waiting for the run. Pair it
196
+ * with `onAnswer` to deliver the answer, such as from a webhook that must
197
+ * respond quickly.
198
+ */
199
+ submit: (c, content, submitOptions) => run(c, async (harness, context) => {
200
+ const { submission } = await submitInput(harness, content, submitOptions, context);
201
+ return { submissionId: submission.id };
202
+ }),
189
203
  pi: {
190
- /** Scheduled at the end of a long wait. Opening the harness resumes the waiting work. */
191
- wake: (c) => run(c, async () => { }),
204
+ /** Scheduled for Pi Durable's earliest sleeping task. Resumes the tasks that are due. */
205
+ wake: (c) => run(c, () => resumeDueSleeps(c)),
192
206
  },
193
207
  };
194
208
  }
@@ -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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"}
package/dist/actor.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Harness } from "@earendil-works/pi-durable";
2
- import { type EventSchemaConfig, type QueueSchemaConfig, type Type } from "rivetkit";
2
+ import { type ActionContext, type ActorDefinition, type EventSchemaConfig, type QueueSchemaConfig, type Type } from "rivetkit";
3
3
  import { type PiActions } from "./actions.js";
4
4
  import type { PiActorDefinition, UserActions, UserActorConfig } from "./actor-types.js";
5
5
  import { type PiOptions } from "./runtime.js";
@@ -20,6 +20,12 @@ export type PiEvents = {
20
20
  export interface PiAccess {
21
21
  readonly pi: Harness;
22
22
  }
23
+ /**
24
+ * The `c` of an actor's actions, for typing a helper function:
25
+ * `function helper(c: PiActionContext<typeof agent>)`. Keeps the actor's types,
26
+ * such as `c.conn.state`, and adds `c.pi`.
27
+ */
28
+ export type PiActionContext<TActor> = TActor extends ActorDefinition<infer TState, infer TConnParams, infer TConnState, infer TVars, infer TInput, infer TDatabase, infer TEvents, infer TQueues, any> ? ActionContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase, TEvents, TQueues> & PiAccess : never;
23
29
  /** The app's own actions, which get `c.pi`. Nested objects become dotted action names. */
24
30
  export type PiUserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents extends EventSchemaConfig, TQueues extends QueueSchemaConfig> = UserActions<TState, TConnParams, TConnState, TVars, TInput, TEvents, TQueues, PiAccess>;
25
31
  /** Ordinary actor config plus the Pi Durable options. The app's actions and lifecycle hooks get `c.pi`. */
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEN,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACT,MAAM,UAAU,CAAC;AAElB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO/D,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAMN,KAAK,SAAS,EAId,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,MAAM,cAAc,CAAC;AAEtB,iFAAiF;AACjF,MAAM,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;CAC3B,CAAC;AASF;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACrB;AAED,0FAA0F;AAC1F,MAAM,MAAM,aAAa,CACxB,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,SAAS,iBAAiB,EACjC,OAAO,SAAS,iBAAiB,IAC9B,WAAW,CACd,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,CACR,CAAC;AAEF,2GAA2G;AAC3G,MAAM,MAAM,kBAAkB,CAC7B,MAAM,GAAG,SAAS,EAClB,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,SAAS,EACtB,KAAK,GAAG,SAAS,EACjB,MAAM,GAAG,SAAS,EAClB,OAAO,SAAS,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxD,OAAO,SAAS,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAChE,eAAe,CAClB,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EACT,QAAQ,CACR,CAAC;AAoBF;;;;;;;GAOG;AACH,wBAAgB,EAAE,CACjB,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,SAAS,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxD,OAAO,SAAS,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAEnE,MAAM,EAAE,kBAAkB,CACzB,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,CACZ,GACC,iBAAiB,CACnB,MAAM,EACN,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,SAAS,CACT,CAmFA"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
package/dist/actor.js CHANGED
@@ -2,7 +2,7 @@ import { actor, event, } from "rivetkit";
2
2
  import { db } from "rivetkit/db";
3
3
  import { createPiActions } from "./actions.js";
4
4
  import { assertNoReservedNames, sharedActorConfig, splitConfig, wrapActions, } from "./actor-config.js";
5
- import { closeHarness, createPiRuntime, openOnWake, PI_RUNTIME, piRuntime, withPiAccess, withUnavailablePi, } from "./runtime.js";
5
+ import { closeHarness, createPiRuntime, openOnWake, PI_RUNTIME, piRuntime, piStopping, withPiAccess, withUnavailablePi, } from "./runtime.js";
6
6
  import { migratePiTables } from "./storage.js";
7
7
  import { unwatchConnection, } from "./watches.js";
8
8
  const piEvents = {
@@ -27,6 +27,7 @@ const piOptionKeys = [
27
27
  "credentials",
28
28
  "sandbox",
29
29
  "documents",
30
+ "onAnswer",
30
31
  ];
31
32
  /**
32
33
  * Defines a Rivet Actor that owns one Pi Durable harness.
@@ -93,6 +94,14 @@ export function pi(config) {
93
94
  },
94
95
  onConnect: withPi(actorConfig.onConnect),
95
96
  onDisconnect: async (c, conn) => {
97
+ // Shutdown runs onDisconnect in the same window as onSleep and
98
+ // onDestroy, in no set order, and those close Pi Durable. So a
99
+ // disconnect during shutdown never uses Pi, and its watches end when
100
+ // the harness closes.
101
+ if (c.abortSignal.aborted || piRuntime(c).status !== "open") {
102
+ await withUnavailablePi(c, piStopping(), () => actorConfig.onDisconnect?.(c, conn));
103
+ return;
104
+ }
96
105
  try {
97
106
  await userOnDisconnect?.(c, conn);
98
107
  }
package/dist/actor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,KAAK,EAEL,KAAK,GAGL,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,WAAW,GACX,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACN,YAAY,EACZ,eAAe,EACf,UAAU,EACV,UAAU,EAGV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAKN,iBAAiB,GACjB,MAAM,cAAc,CAAC;AAUtB,MAAM,QAAQ,GAAa;IAC1B,WAAW,EAAE,KAAK,EAAiB;IACnC,SAAS,EAAE,KAAK,EAAe;IAC/B,cAAc,EAAE,KAAK,EAAoB;IACzC,QAAQ,EAAE,KAAK,EAAc;CAC7B,CAAC;AAqFF,MAAM,YAAY,GAAG;IACpB,UAAU;IACV,QAAQ;IACR,UAAU;IACV,KAAK;IACL,qBAAqB;IACrB,KAAK;IACL,UAAU;IACV,OAAO;IACP,eAAe;IACf,cAAc;IACd,WAAW;IACX,SAAS;IACT,aAAa;IACb,SAAS;IACT,WAAW;IACX,UAAU;CACsC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,EAAE,CAUjB,MASC;IAaD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,CACtD,MAAM,EACN,YAAY,CACZ,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACd,8EAA8E,CAC9E,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3C,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE;QAC1C,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CACd,IAA6D,EAC7D,YAAY,GAAG,IAAI,EAClB,EAAE,CACH,IAAI;QACJ,CAAC,CAAC,CAAY,EAAE,GAAG,IAAW,EAAE,EAAE,CACjC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;YAClD,YAAY;SACZ,CAAC,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE1D,uEAAuE;IACvE,yEAAyE;IACzE,OAAO,KAAK,CAAC;QACZ,GAAG,iBAAiB,CACnB,MAAM,EACN,WAAW,EACX,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,EAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAC7C;YACC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;YAC3C,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC;SAC/C,CACD;QACD,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACtC,MAAM,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE;QACtD,OAAO,EAAE;YACR,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAY,EAAE,MAAM,EAAE,EAAE,CAClE,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAClC;YACD,GAAG,OAAO;SACV;QACD,wEAAwE;QACxE,MAAM,EAAE,KAAK,EAAE,CAAY,EAAE,EAAE;YAC9B,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,gEAAgE;gBAChE,oDAAoD;gBACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;oBACX,GAAG,EAAE,uDAAuD;oBAC5D,KAAK;iBACL,CAAC,CAAC;gBACH,OAAO,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC;gBACJ,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACV,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QACF,CAAC;QACD,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;QACxC,YAAY,EAAE,KAAK,EAAE,CAAY,EAAE,IAAoB,EAAE,EAAE;YAC1D,+DAA+D;YAC/D,+DAA+D;YAC/D,qEAAqE;YACrE,sBAAsB;YACtB,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7D,MAAM,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAC7C,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CACnC,CAAC;gBACF,OAAO;YACR,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACV,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;KACM,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AssistantMessage } from "@earendil-works/pi-ai";
2
+ import { type ConversationId, type HarnessSettings, type RegistryReader } from "@earendil-works/pi-durable";
3
+ import type { PiContext } from "./runtime.js";
4
+ /** A final answer, as `onAnswer` receives it. */
5
+ export interface PiAnswer {
6
+ /** The conversation that answered. The root conversation, unless the app creates others. */
7
+ conversationId: ConversationId;
8
+ /** The answer's text, or `undefined` when it has none. */
9
+ text: string | undefined;
10
+ /** The model's message, with its content blocks and usage. */
11
+ message: AssistantMessage;
12
+ }
13
+ /** Called with the actor's context for every final answer. */
14
+ export type PiOnAnswer = (c: PiContext, answer: PiAnswer) => void | Promise<void>;
15
+ /** The extension that runs `onAnswer`. Conversations that use the default selection get it. */
16
+ export declare const ANSWER_EXTENSION = "rivet-pi-on-answer";
17
+ /**
18
+ * The app's registry and settings plus an extension whose `onYield` hook calls
19
+ * `onAnswer` with this actor's context. A registry's hooks are shared by every
20
+ * actor, so the actor's own view of the registry is the only place that knows
21
+ * which actor answered.
22
+ */
23
+ export declare function withAnswerHook(options: {
24
+ registry: RegistryReader;
25
+ settings?: HarnessSettings;
26
+ }, c: PiContext, onAnswer: PiOnAnswer, report: (error: unknown) => void): {
27
+ registry: RegistryReader;
28
+ settings?: HarnessSettings;
29
+ };
30
+ //# sourceMappingURL=answers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.d.ts","sourceRoot":"","sources":["../src/answers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACN,KAAK,cAAc,EAInB,KAAK,eAAe,EAEpB,KAAK,cAAc,EAEnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,iDAAiD;AACjD,MAAM,WAAW,QAAQ;IACxB,4FAA4F;IAC5F,cAAc,EAAE,cAAc,CAAC;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,gBAAgB,CAAC;CAC1B;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,CACxB,CAAC,EAAE,SAAS,EACZ,MAAM,EAAE,QAAQ,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,EACjE,CAAC,EAAE,SAAS,EACZ,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC9B;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,CA2B1D"}
@@ -0,0 +1,81 @@
1
+ import { defineExtension, GenerationTask, hook, } from "@earendil-works/pi-durable";
2
+ /** The extension that runs `onAnswer`. Conversations that use the default selection get it. */
3
+ export const ANSWER_EXTENSION = "rivet-pi-on-answer";
4
+ /**
5
+ * The app's registry and settings plus an extension whose `onYield` hook calls
6
+ * `onAnswer` with this actor's context. A registry's hooks are shared by every
7
+ * actor, so the actor's own view of the registry is the only place that knows
8
+ * which actor answered.
9
+ */
10
+ export function withAnswerHook(options, c, onAnswer, report) {
11
+ const extension = answerExtension(c, onAnswer, report);
12
+ let cached;
13
+ const registry = {
14
+ snapshot() {
15
+ const base = options.registry.snapshot();
16
+ if (cached?.base !== base) {
17
+ cached = { base, snapshot: withExtension(base, extension) };
18
+ }
19
+ return cached.snapshot;
20
+ },
21
+ subscribe: (listener) => options.registry.subscribe(listener),
22
+ };
23
+ // Without a default selection, every installed extension is selected, this one included.
24
+ const settings = options.settings &&
25
+ new Proxy(options.settings, {
26
+ get(target, property, receiver) {
27
+ if (property !== "extensions") {
28
+ return Reflect.get(target, property, receiver);
29
+ }
30
+ return target.extensions && [...target.extensions, extension];
31
+ },
32
+ });
33
+ return { registry, settings };
34
+ }
35
+ function answerExtension(c, onAnswer, report) {
36
+ return defineExtension({
37
+ name: ANSWER_EXTENSION,
38
+ hooks: [
39
+ hook(GenerationTask, {
40
+ onYield: async (message, api, context) => {
41
+ // A run that resumes after a crash yields the same answer again.
42
+ const key = `${ANSWER_EXTENSION}:${message.responseId ?? message.timestamp}`;
43
+ if (await api.memo(key, context))
44
+ return undefined;
45
+ try {
46
+ await onAnswer(c, {
47
+ conversationId: api.conversationId,
48
+ text: answerText(message),
49
+ message,
50
+ });
51
+ }
52
+ catch (error) {
53
+ // A failed delivery leaves the answer in the conversation.
54
+ report(error);
55
+ return undefined;
56
+ }
57
+ await api.memo(key, true, context);
58
+ return undefined;
59
+ },
60
+ }),
61
+ ],
62
+ });
63
+ }
64
+ function withExtension(base, extension) {
65
+ const installed = [...base.installed(), extension];
66
+ return {
67
+ installed: () => installed,
68
+ extension: (name) => name === extension.name ? extension : base.extension(name),
69
+ tools: () => base.tools(),
70
+ sections: () => base.sections(),
71
+ tasks: () => base.tasks(),
72
+ task: (name) => base.task(name),
73
+ };
74
+ }
75
+ function answerText(message) {
76
+ const text = message.content
77
+ .flatMap((block) => (block.type === "text" ? [block.text] : []))
78
+ .join("");
79
+ return text === "" ? undefined : text;
80
+ }
81
+ //# sourceMappingURL=answers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.js","sourceRoot":"","sources":["../src/answers.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * The error a client receives for a failed Pi Durable call. `ConversationBusy`
3
- * is the one Pi error a caller is meant to handle, so it becomes a
4
- * `UserError` with Pi's error name as the code. Every other error is returned
5
- * as is, and RivetKit reports it to clients as an internal error.
3
+ * becomes a `UserError` with Pi's error name as the code, because a caller can
4
+ * handle it. Storage from a newer Pi Durable schema, such as after a rollback,
5
+ * becomes a `UserError` with the code `pi_schema_too_new`, because no retry
6
+ * can fix it. Every other error is returned as is, and RivetKit reports it to
7
+ * clients as an internal error.
6
8
  */
7
9
  export declare function toClientError(error: unknown): unknown;
8
10
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASrD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkBrD"}
package/dist/errors.js CHANGED
@@ -1,10 +1,14 @@
1
1
  import { ConversationBusy } from "@earendil-works/pi-durable";
2
2
  import { UserError } from "rivetkit";
3
+ /** Pi Durable 1.4 has no typed error for this, so its message is the only signal. */
4
+ const NEWER_SCHEMA = /SQLite schema version (\d+) is newer than supported version (\d+)/;
3
5
  /**
4
6
  * The error a client receives for a failed Pi Durable call. `ConversationBusy`
5
- * is the one Pi error a caller is meant to handle, so it becomes a
6
- * `UserError` with Pi's error name as the code. Every other error is returned
7
- * as is, and RivetKit reports it to clients as an internal error.
7
+ * becomes a `UserError` with Pi's error name as the code, because a caller can
8
+ * handle it. Storage from a newer Pi Durable schema, such as after a rollback,
9
+ * becomes a `UserError` with the code `pi_schema_too_new`, because no retry
10
+ * can fix it. Every other error is returned as is, and RivetKit reports it to
11
+ * clients as an internal error.
8
12
  */
9
13
  export function toClientError(error) {
10
14
  if (error instanceof ConversationBusy) {
@@ -14,6 +18,11 @@ export function toClientError(error) {
14
18
  cause: error,
15
19
  });
16
20
  }
21
+ const newerSchema = error instanceof Error ? NEWER_SCHEMA.exec(error.message) : null;
22
+ if (newerSchema) {
23
+ const [, stored, supported] = newerSchema;
24
+ return new UserError(`This actor's Pi Durable data has schema version ${stored}, and the deployed code supports up to version ${supported}. Deploy a @rivet-dev/pi version that supports it. Pi Durable data can't roll back.`, { code: "pi_schema_too_new", cause: error });
25
+ }
17
26
  return error;
18
27
  }
19
28
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACvC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;YAClD,KAAK,EAAE,KAAK;SACZ,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,qFAAqF;AACrF,MAAM,YAAY,GACjB,mEAAmE,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACvC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;YAClD,KAAK,EAAE,KAAK;SACZ,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC;QAC1C,OAAO,IAAI,SAAS,CACnB,mDAAmD,MAAM,kDAAkD,SAAS,qFAAqF,EACzM,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAC3C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export type { PiActions, PiAgentChange, PiAgentInfo, PiCreateConversationOptions, PiPromptOptions, PiPromptResult, } from "./actions.js";
2
- export { type PiAccess, type PiActorConfigInput, type PiEvents, type PiUserActions, pi, } from "./actor.js";
1
+ export type { PiActions, PiAgentChange, PiAgentInfo, PiCreateConversationOptions, PiPromptOptions, PiPromptResult, PiSubmitResult, } from "./actions.js";
2
+ export { type PiAccess, type PiActionContext, type PiActorConfigInput, type PiEvents, type PiUserActions, pi, } from "./actor.js";
3
+ export type { PiAnswer, PiOnAnswer } from "./answers.js";
3
4
  export type { PiCredentialInfo, PiCredentialSource, PiProviderCredential, } from "./credentials.js";
4
5
  export type { PiModelOptions, PiProviderConfig } from "./models.js";
5
- export type { PiOptions } from "./runtime.js";
6
+ export type { PiDatabaseProvider, PiOptions } from "./runtime.js";
6
7
  export type { PiDocFrame, PiEventsFrame, PiTaskGraphFrame, PiViewFrame, PiWatchEvents, } from "./watches.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,eAAe,EACf,cAAc,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,EAAE,GACF,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,eAAe,EACf,cAAc,EACd,cAAc,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,EAAE,GACF,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,GACb,MAAM,cAAc,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAKN,EAAE,GACF,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAMN,EAAE,GACF,MAAM,YAAY,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -2,8 +2,9 @@ import type { Context } from "@earendil-works/chord";
2
2
  import type { Models, ModelThinkingLevel } from "@earendil-works/pi-ai";
3
3
  import { type ConversationDocToken, Harness, type HarnessOptions, type HarnessSettings, type ModelRef } from "@earendil-works/pi-durable";
4
4
  import type { Sandbox, SandboxProvider } from "@rivet-dev/sandbox-adapter";
5
- import { type ActorContext } from "rivetkit";
5
+ import { type ActorContext, UserError } from "rivetkit";
6
6
  import type { DatabaseProvider, RawAccess } from "rivetkit/db";
7
+ import { type PiOnAnswer } from "./answers.js";
7
8
  import { type PiModelOptions } from "./models.js";
8
9
  import { type ConnectionWatches } from "./watches.js";
9
10
  export type PiDatabaseProvider = DatabaseProvider<RawAccess>;
@@ -52,11 +53,21 @@ export interface PiOptions extends PiModelOptions {
52
53
  sandbox?: SandboxProvider;
53
54
  /** App documents that clients may read by `kind` with `harness.snapshot`. */
54
55
  documents?: readonly ConversationDocToken<any>[];
56
+ /**
57
+ * Called with the actor's context for every final answer, such as to text
58
+ * it to the user. A run that resumes after a crash can call it again for
59
+ * the same answer if it didn't return. A throw goes to `onReport` and
60
+ * leaves the run as it is.
61
+ */
62
+ onAnswer?: PiOnAnswer;
55
63
  }
56
64
  interface OpenHarness {
57
65
  harness: Harness;
58
- stopBusyWatch: () => void;
59
- isBusy: () => Promise<boolean>;
66
+ /** Calls `listener` whenever Pi's wake value changes. Returns a function that stops it. */
67
+ onWakeChange: (listener: () => void) => () => void;
68
+ /** Resumes Pi's due sleeps, for the scheduled `pi.wake`. */
69
+ resumeDue: () => void;
70
+ stopWake: () => void;
60
71
  }
61
72
  /** Per-actor-generation state, stored on `c.vars` under `PI_RUNTIME`. */
62
73
  export interface PiRuntime {
@@ -126,6 +137,10 @@ export declare function parseModelRef(name: string): ModelRef;
126
137
  * sleep, or destroys it on destroy.
127
138
  */
128
139
  export declare function closeHarness(c: PiContext, options: PiOptions, stop: PiStop): Promise<void>;
140
+ /** Resumes Pi's due sleeps when the scheduled `pi.wake` fires. Call it once the harness is open. */
141
+ export declare function resumeDueSleeps(c: PiContext): Promise<void>;
142
+ /** What a shutdown hook gets from `c.pi` once the actor has started to stop. */
143
+ export declare function piStopping(): UserError;
129
144
  /** Runs `body` with a `c.pi` that throws `error` when read. */
130
145
  export declare function withUnavailablePi<T>(c: PiContext, error: unknown, body: () => T | Promise<T>): T | Promise<T>;
131
146
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -4,18 +4,13 @@ import { SqliteStorage } from "@earendil-works/pi-durable/storage/sqlite";
4
4
  import { sandboxEnv } from "@rivet-dev/sandbox-adapter/pi";
5
5
  import { UserError } from "rivetkit";
6
6
  import { actorSqlite } from "./actor-sqlite.js";
7
+ import { ANSWER_EXTENSION, withAnswerHook, } from "./answers.js";
7
8
  import { SourceCredentialStore } from "./credentials.js";
8
9
  import { databaseEnv } from "./database-env.js";
9
10
  import { toClientError } from "./errors.js";
10
11
  import { createActorModelRuntime, emptyCredentialStore, } from "./models.js";
11
12
  import { loadPiSandbox, savePiSandbox } from "./storage.js";
12
13
  import { createConnectionWatches, reattachWatches, stopAllWatches, } from "./watches.js";
13
- /**
14
- * One minute, as in Cloudflare's Pi harness. A retry or poll wait longer than
15
- * this lets the actor sleep, and a scheduled wake reopens Pi Durable at the
16
- * deadline.
17
- */
18
- const LONG_WAIT_MS = 60_000;
19
14
  /** The internal action a scheduled wake calls. */
20
15
  const WAKE_ACTION = "pi.wake";
21
16
  export const PI_RUNTIME = Symbol.for("@rivet-dev/pi/runtime");
@@ -144,10 +139,20 @@ function piClosed(status) {
144
139
  async function openHarness(c, runtime, options, open = { resume: true }) {
145
140
  const storage = await SqliteStorage.open(actorSqlite(c.db));
146
141
  const now = options.now ?? Date.now;
142
+ const { registry, settings } = options.onAnswer
143
+ ? withAnswerHook(options, c, options.onAnswer, (error) => {
144
+ c.log.error({ msg: "pi onAnswer failed", error: String(error) });
145
+ options.onReport?.(error, {
146
+ type: "extension_error",
147
+ extension: ANSWER_EXTENSION,
148
+ });
149
+ })
150
+ : options;
151
+ const wake = wakeActor(c, now);
147
152
  const harness = await Harness.open(storage, {
148
153
  models: options.models ?? (await createModels(c, options)),
149
- registry: options.registry,
150
- settings: options.settings,
154
+ registry,
155
+ settings,
151
156
  env: options.env ??
152
157
  (options.sandbox
153
158
  ? sandboxEnvBuilder(c, runtime, options.sandbox)
@@ -157,21 +162,27 @@ async function openHarness(c, runtime, options, open = { resume: true }) {
157
162
  })),
158
163
  conversationCreated: startingAgent(options),
159
164
  now: options.now,
160
- onReport: (error) => {
161
- // A commit that failed after storage admitted it leaves Pi Durable
162
- // unusable. Background work reports it here, with no action to catch it.
163
- queueMicrotask(() => void recoverHarness(c, runtime, options));
164
- options.onReport?.(error);
165
+ onWake: wake.onWake,
166
+ onReport: (error, info) => {
167
+ // A failed storage call closes the Session. Background work reports it
168
+ // here, with no action to catch it.
169
+ if (info.type === "session_failed") {
170
+ queueMicrotask(() => void recoverHarness(c, runtime, options));
171
+ }
172
+ options.onReport?.(error, info);
165
173
  },
166
174
  }, BACKGROUND_CONTEXT);
175
+ wake.attach(harness);
167
176
  reportBlockedTasks(c, await harness.inspect(BACKGROUND_CONTEXT));
168
177
  if (open.resume)
169
178
  harness.resume();
170
- const isBusy = async () => busyState(await harness.inspect(BACKGROUND_CONTEXT), now(), LONG_WAIT_MS)
171
- .kind === "busy";
172
- const stopBusyWatch = watchBusy(c, harness, now, LONG_WAIT_MS);
173
179
  await reattachWatches(c, runtime.watches, harness, documentsByKind(options));
174
- return { harness, stopBusyWatch, isBusy };
180
+ return {
181
+ harness,
182
+ onWakeChange: wake.subscribe,
183
+ resumeDue: wake.resumeDue,
184
+ stopWake: wake.stop,
185
+ };
175
186
  }
176
187
  /** App documents by `kind`, for clients that name a document. */
177
188
  export function documentsByKind(options) {
@@ -222,7 +233,7 @@ async function recoverHarness(c, runtime, options) {
222
233
  await reopened.catch(() => { });
223
234
  }
224
235
  async function closeOpenHarness(open, watches) {
225
- open.stopBusyWatch();
236
+ open.stopWake();
226
237
  await stopAllWatches(watches);
227
238
  await open.harness.close(BACKGROUND_CONTEXT);
228
239
  }
@@ -297,53 +308,25 @@ function reportBlockedTasks(c, inspection) {
297
308
  }
298
309
  }
299
310
  /**
300
- * Whether live work should keep the actor awake. Tasks that run or are ready
301
- * to run do. A task in a retry or poll wait longer than `longWaitMs` does not;
302
- * the actor sleeps and a scheduled wake reopens it at the deadline. Waiting
303
- * and completing tasks depend on other tasks, which decide. Blocked tasks
304
- * never run, so they never keep the actor awake.
305
- */
306
- function busyState(inspection, now, longWaitMs) {
307
- let until;
308
- for (const task of inspection.tasks) {
309
- switch (task.state.kind) {
310
- case "running":
311
- case "ready": {
312
- const deadline = waitDeadline(task.record.state.checkpoint);
313
- if (deadline === undefined || deadline - now <= longWaitMs)
314
- return { kind: "busy" };
315
- until = Math.min(until ?? deadline, deadline);
316
- break;
317
- }
318
- case "waiting":
319
- case "completing":
320
- case "blocked":
321
- break;
322
- }
323
- }
324
- return until === undefined ? { kind: "idle" } : { kind: "waiting", until };
325
- }
326
- /** The deadline of a task checkpoint in Pi's retry or poll phase. */
327
- function waitDeadline(checkpoint) {
328
- if (typeof checkpoint !== "object" ||
329
- checkpoint === null ||
330
- Array.isArray(checkpoint))
331
- return undefined;
332
- if (checkpoint.phase === "retry" && typeof checkpoint.until === "number")
333
- return checkpoint.until;
334
- if (checkpoint.phase === "poll" && typeof checkpoint.pollAt === "number")
335
- return checkpoint.pollAt;
336
- return undefined;
337
- }
338
- /**
339
- * Keeps the actor awake while Pi Durable has live work, rechecking after
340
- * every commit. Returns a function that stops watching.
311
+ * Keeps the actor awake while Pi Durable can run work, and schedules a wake
312
+ * for its earliest sleeping task, such as a retry backoff. Pi calls `onWake`
313
+ * after open and whenever the value changes. With `onWake`, Pi keeps no timer
314
+ * for sleeps, so the scheduled `pi.wake` action resumes them. While other work
315
+ * is active the actor cannot sleep, so an in-process timer resumes them.
316
+ *
317
+ * Pi runs a sleep only once its time has passed, and reports a wake only when
318
+ * the value changes. So a wake that fires early, even by a millisecond,
319
+ * re-reads the value and schedules again.
341
320
  */
342
- function watchBusy(c, harness, now, longWaitMs) {
321
+ function wakeActor(c, now) {
322
+ const listeners = new Set();
323
+ let harness;
324
+ let latest = { active: false };
343
325
  let release;
344
- let scheduledWakeAt;
345
- let checking = false;
346
- let dirty = false;
326
+ let scheduledAt;
327
+ let scheduling = false;
328
+ let timer;
329
+ let scheduleFailedAt;
347
330
  let stopped = false;
348
331
  const stayAwake = () => {
349
332
  if (release)
@@ -356,64 +339,91 @@ function watchBusy(c, harness, now, longWaitMs) {
356
339
  release?.();
357
340
  release = undefined;
358
341
  };
359
- const check = async () => {
360
- if (checking) {
361
- dirty = true;
342
+ const clearTimer = () => {
343
+ if (timer)
344
+ clearTimeout(timer.handle);
345
+ timer = undefined;
346
+ scheduleFailedAt = undefined;
347
+ };
348
+ const armTimer = (at) => {
349
+ if (timer?.at === at)
350
+ return;
351
+ clearTimer();
352
+ // setTimeout fires at once past 2^31 - 1 ms, so a far sleep re-arms from here.
353
+ const delay = Math.min(Math.max(0, at - now()), 2 ** 31 - 1);
354
+ timer = { at, handle: setTimeout(resumeDue, delay) };
355
+ };
356
+ const apply = () => {
357
+ if (stopped)
358
+ return;
359
+ const { active, at } = latest;
360
+ if (timer?.at !== at)
361
+ clearTimer();
362
+ if (active) {
363
+ stayAwake();
364
+ if (at !== undefined)
365
+ armTimer(at);
362
366
  return;
363
367
  }
364
- checking = true;
365
- try {
366
- do {
367
- dirty = false;
368
- const busy = busyState(await harness.inspect(BACKGROUND_CONTEXT), now(), longWaitMs);
369
- if (stopped)
370
- return;
371
- if (busy.kind === "waiting" && busy.until !== scheduledWakeAt) {
372
- // The actor may sleep through a long wait only once its wake is written.
373
- stayAwake();
374
- try {
375
- await c.schedule.at(busy.until, WAKE_ACTION);
376
- scheduledWakeAt = busy.until;
377
- }
378
- catch (error) {
379
- // Pi's own timer then ends the wait, and its commit checks again.
380
- c.log.warn({
381
- msg: "pi durable could not schedule its wake, so the actor stays awake through the wait",
382
- error,
383
- });
384
- }
385
- if (stopped)
386
- return;
387
- }
388
- const canSleep = busy.kind === "idle" ||
389
- (busy.kind === "waiting" && busy.until === scheduledWakeAt);
390
- if (canSleep)
391
- letGo();
392
- else
393
- stayAwake();
394
- } while (dirty && !stopped);
395
- }
396
- catch (error) {
397
- if (!stopped)
398
- c.log.warn({ msg: "pi durable busy check failed", error });
399
- }
400
- finally {
401
- checking = false;
402
- }
368
+ if (at === undefined || at === scheduledAt)
369
+ return letGo();
370
+ // The actor may sleep only once its wake is written.
371
+ stayAwake();
372
+ if (scheduling || scheduleFailedAt === at)
373
+ return;
374
+ scheduling = true;
375
+ c.schedule
376
+ .at(at, WAKE_ACTION)
377
+ .then(() => {
378
+ scheduledAt = at;
379
+ }, (error) => {
380
+ c.log.warn({
381
+ msg: "pi durable could not schedule its wake, so the actor stays awake until it",
382
+ error,
383
+ });
384
+ armTimer(at);
385
+ scheduleFailedAt = at;
386
+ })
387
+ .finally(() => {
388
+ scheduling = false;
389
+ apply();
390
+ });
391
+ };
392
+ const resumeDue = () => {
393
+ if (stopped || !harness)
394
+ return;
395
+ harness.resume();
396
+ clearTimer();
397
+ scheduledAt = undefined;
398
+ latest = harness.wake();
399
+ apply();
403
400
  };
404
- // Commit listeners must not call Pi Durable, so the check runs after the listener returns.
405
- const unsubscribe = harness.subscribeCommits(() => queueMicrotask(() => void check()));
406
401
  const stop = () => {
407
402
  stopped = true;
408
- unsubscribe();
403
+ clearTimer();
409
404
  letGo();
410
405
  };
411
406
  // Keep-awake only blocks idle sleep. Once shutdown starts it would only delay it.
412
407
  c.abortSignal.addEventListener("abort", stop, { once: true });
413
- void check();
414
- return () => {
415
- c.abortSignal.removeEventListener("abort", stop);
416
- stop();
408
+ return {
409
+ onWake: (wake) => {
410
+ latest = wake;
411
+ apply();
412
+ for (const listener of listeners)
413
+ listener();
414
+ },
415
+ attach: (opened) => {
416
+ harness = opened;
417
+ },
418
+ subscribe: (listener) => {
419
+ listeners.add(listener);
420
+ return () => listeners.delete(listener);
421
+ },
422
+ resumeDue,
423
+ stop: () => {
424
+ c.abortSignal.removeEventListener("abort", stop);
425
+ stop();
426
+ },
417
427
  };
418
428
  }
419
429
  /**
@@ -427,6 +437,8 @@ async function drain(c, runtime, open, drainUntil) {
427
437
  let changed = () => { };
428
438
  let timedOut = false;
429
439
  const unsubscribe = open.harness.subscribeCommits(() => changed());
440
+ // Pi can settle its wake value after the last commit, so its change counts too.
441
+ const unsubscribeWake = open.onWakeChange(() => changed());
430
442
  runtime.callEnded = () => changed();
431
443
  const timer = setTimeout(() => {
432
444
  timedOut = true;
@@ -438,7 +450,7 @@ async function drain(c, runtime, open, drainUntil) {
438
450
  const next = new Promise((resolve) => {
439
451
  changed = resolve;
440
452
  });
441
- if (runtime.calls === 0 && !(await open.isBusy()))
453
+ if (runtime.calls === 0 && !open.harness.wake().active)
442
454
  return;
443
455
  await next;
444
456
  }
@@ -449,6 +461,7 @@ async function drain(c, runtime, open, drainUntil) {
449
461
  finally {
450
462
  clearTimeout(timer);
451
463
  unsubscribe();
464
+ unsubscribeWake();
452
465
  runtime.callEnded = undefined;
453
466
  }
454
467
  }
@@ -484,6 +497,14 @@ export async function closeHarness(c, options, stop) {
484
497
  if (errors.length > 1)
485
498
  throw new AggregateError(errors, "pi durable shutdown failed");
486
499
  }
500
+ /** Resumes Pi's due sleeps when the scheduled `pi.wake` fires. Call it once the harness is open. */
501
+ export async function resumeDueSleeps(c) {
502
+ (await piRuntime(c).harness)?.resumeDue();
503
+ }
504
+ /** What a shutdown hook gets from `c.pi` once the actor has started to stop. */
505
+ export function piStopping() {
506
+ return new UserError("Pi Durable is closed because the actor is stopping.");
507
+ }
487
508
  /** Runs `body` with a `c.pi` that throws `error` when read. */
488
509
  export function withUnavailablePi(c, error, body) {
489
510
  Object.defineProperty(c, "pi", {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/watches.d.ts CHANGED
@@ -59,7 +59,7 @@ type Documents = ReadonlyMap<string, ConversationDocToken<any>>;
59
59
  * Starts a watch for a connection, stored so it comes back after sleep, and
60
60
  * returns the value it starts from. Watching the same thing again restarts
61
61
  * it with a fresh value. `requireTarget` runs in the queue too, so a watch
62
- * and an unwatch sent right after it take effect in the order they arrive.
62
+ * and an unwatch take effect in the order they reach this queue.
63
63
  */
64
64
  export declare function watch(actor: PiContext, watches: ConnectionWatches, harness: Harness, documents: Documents, connId: string, spec: WatchSpec, requireTarget: () => Promise<void>): Promise<unknown>;
65
65
  export declare function unwatch(actor: PiContext, watches: ConnectionWatches, connId: string, spec: WatchSpec): Promise<void>;
package/dist/watches.js CHANGED
@@ -24,7 +24,7 @@ function watchKey(spec) {
24
24
  * Starts a watch for a connection, stored so it comes back after sleep, and
25
25
  * returns the value it starts from. Watching the same thing again restarts
26
26
  * it with a fresh value. `requireTarget` runs in the queue too, so a watch
27
- * and an unwatch sent right after it take effect in the order they arrive.
27
+ * and an unwatch take effect in the order they reach this queue.
28
28
  */
29
29
  export async function watch(actor, watches, harness, documents, connId, spec, requireTarget) {
30
30
  const key = watchKey(spec);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rivet-dev/pi",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "description": "Run the Pi coding agent as a durable Rivet Actor",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -41,22 +41,25 @@
41
41
  "main": "./dist/index.js",
42
42
  "types": "./dist/index.d.ts",
43
43
  "dependencies": {
44
- "@earendil-works/pi-coding-agent": "^1.0.4",
44
+ "@earendil-works/pi-coding-agent": "~1.4.0",
45
45
  "@opentelemetry/api": "^1.1.0",
46
- "@rivet-dev/sandbox-adapter": "0.5.3"
46
+ "@rivet-dev/sandbox-adapter": "0.5.5"
47
47
  },
48
48
  "peerDependencies": {
49
- "@earendil-works/chord": "^1.0.0",
50
- "@earendil-works/pi-durable": "^1.0.0",
51
- "rivetkit": ">=2.3.26 <2.4.0"
49
+ "@earendil-works/chord": "~1.4.0",
50
+ "@earendil-works/pi-ai": "~1.4.0",
51
+ "@earendil-works/pi-durable": "~1.4.0",
52
+ "@earendil-works/pi-telemetry": "~1.4.0",
53
+ "rivetkit": ">=2.3.28 <2.4.0 || ^3.0.0-preview.2"
52
54
  },
53
55
  "devDependencies": {
54
- "@earendil-works/chord": "^1.1.0",
55
- "@earendil-works/pi-ai": "^1.1.0",
56
- "@earendil-works/pi-durable": "^1.1.0",
56
+ "@earendil-works/chord": "1.4.0",
57
+ "@earendil-works/pi-ai": "1.4.0",
58
+ "@earendil-works/pi-durable": "1.4.0",
59
+ "@earendil-works/pi-telemetry": "1.4.0",
57
60
  "@opentelemetry/sdk-trace-node": "2.11.0",
58
61
  "@types/node": "^24.0.0",
59
- "rivetkit": "2.3.26",
62
+ "rivetkit": "3.0.0",
60
63
  "typescript": "^5.9.2",
61
64
  "vitest": "^3.2.4"
62
65
  },