@rivet-dev/pi 0.5.1 → 0.5.3
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 +27 -27
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +14 -8
- package/dist/actions.js.map +1 -1
- package/dist/actor-sqlite.d.ts +7 -1
- package/dist/actor-sqlite.d.ts.map +1 -1
- package/dist/actor-sqlite.js +26 -6
- package/dist/actor-sqlite.js.map +1 -1
- package/dist/actor-types.d.ts +1 -1
- package/dist/actor-types.d.ts.map +1 -1
- package/dist/actor.d.ts +2 -2
- package/dist/actor.d.ts.map +1 -1
- package/dist/actor.js.map +1 -1
- package/dist/credentials.d.ts +5 -4
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +4 -5
- package/dist/credentials.js.map +1 -1
- package/dist/database-env.d.ts +14 -0
- package/dist/database-env.d.ts.map +1 -0
- package/dist/database-env.js +173 -0
- package/dist/database-env.js.map +1 -0
- package/dist/runtime.d.ts +17 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +62 -21
- package/dist/runtime.js.map +1 -1
- package/dist/storage.d.ts +6 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +25 -1
- package/dist/storage.js.map +1 -1
- package/dist/watches.d.ts +4 -4
- package/dist/watches.d.ts.map +1 -1
- package/dist/watches.js +3 -4
- package/dist/watches.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { posix } from "node:path";
|
|
2
|
+
import { ExecutionError, err, FileError, LineScanner, ok, toError, } from "@earendil-works/pi-durable/env";
|
|
3
|
+
const DEFAULT_CWD = "/workspace";
|
|
4
|
+
/** Bytes per query when a scan walks a whole file. */
|
|
5
|
+
const SCAN_CHUNK_BYTES = 64 * 1024;
|
|
6
|
+
/**
|
|
7
|
+
* Pi Durable's `ExecutionEnv` over files stored in the actor's database, in
|
|
8
|
+
* the `pi_file` table, for Pi's `read`, `write`, and `edit` tools. Directories
|
|
9
|
+
* exist only as the paths of their files. There is no shell, so `exec` fails
|
|
10
|
+
* with `shell_unavailable`, and operations the tools do not use return
|
|
11
|
+
* `not_supported`.
|
|
12
|
+
*/
|
|
13
|
+
export function databaseEnv(db, options) {
|
|
14
|
+
const env = {
|
|
15
|
+
id: options.id,
|
|
16
|
+
cwd: posix.resolve(DEFAULT_CWD, options.cwd ?? DEFAULT_CWD),
|
|
17
|
+
absolutePath: async (path) => ok(posix.resolve(env.cwd, path)),
|
|
18
|
+
joinPath: async (parts) => ok(posix.join(...parts)),
|
|
19
|
+
canonicalPath: async (path) => ok(posix.resolve(env.cwd, path)),
|
|
20
|
+
exists: (path, context) => attempt(path, context, async (resolved) => (await entry(db, resolved)) !== undefined),
|
|
21
|
+
fileInfo: (path, context) => attempt(path, context, async (resolved) => {
|
|
22
|
+
const info = await entry(db, resolved);
|
|
23
|
+
if (!info)
|
|
24
|
+
throw notFound(resolved);
|
|
25
|
+
return info;
|
|
26
|
+
}),
|
|
27
|
+
readTextFile: (path, context) => attempt(path, context, async (resolved) => new TextDecoder().decode(await readFile(db, resolved))),
|
|
28
|
+
readBinaryFile: (path, context) => attempt(path, context, (resolved) => readFile(db, resolved)),
|
|
29
|
+
openBinaryReader: (path, _options, context) => attempt(path, context, async (resolved) => {
|
|
30
|
+
await requireFile(db, resolved);
|
|
31
|
+
return fileReader(db, resolved);
|
|
32
|
+
}),
|
|
33
|
+
writeFile: (path, content, context) => attempt(path, context, async (resolved) => {
|
|
34
|
+
const bytes = typeof content === "string"
|
|
35
|
+
? new TextEncoder().encode(content)
|
|
36
|
+
: content;
|
|
37
|
+
await db.execute(`INSERT INTO pi_file (path, content, mtime_ms) VALUES (?, ?, ?)
|
|
38
|
+
ON CONFLICT (path) DO UPDATE SET
|
|
39
|
+
content = excluded.content,
|
|
40
|
+
mtime_ms = excluded.mtime_ms`, resolved, bytes, Date.now());
|
|
41
|
+
}),
|
|
42
|
+
exec: async () => err(new ExecutionError("shell_unavailable", "There is no shell: files are stored in the actor's database. Give pi() a sandbox to run commands.")),
|
|
43
|
+
openTextLineReader: async (path) => notSupported("openTextLineReader", path),
|
|
44
|
+
readTextLines: async (path) => notSupported("readTextLines", path),
|
|
45
|
+
appendFile: async (path) => notSupported("appendFile", path),
|
|
46
|
+
truncateFile: async (path) => notSupported("truncateFile", path),
|
|
47
|
+
flushFile: async (path) => notSupported("flushFile", path),
|
|
48
|
+
renameFile: async (path) => notSupported("renameFile", path),
|
|
49
|
+
listDir: async (path) => notSupported("listDir", path),
|
|
50
|
+
openDirReader: async (path) => notSupported("openDirReader", path),
|
|
51
|
+
watch: async () => notSupported("watch"),
|
|
52
|
+
createDir: async (path) => notSupported("createDir", path),
|
|
53
|
+
remove: async (path) => notSupported("remove", path),
|
|
54
|
+
createTempDir: async () => notSupported("createTempDir"),
|
|
55
|
+
createTempFile: async () => notSupported("createTempFile"),
|
|
56
|
+
cleanup: async () => { },
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Resolves `path`, runs `operation` unless the run is aborted, and returns a
|
|
60
|
+
* thrown error as a `FileError`.
|
|
61
|
+
*/
|
|
62
|
+
async function attempt(path, context, operation) {
|
|
63
|
+
const resolved = posix.resolve(env.cwd, path);
|
|
64
|
+
if (context.abortSignal?.aborted)
|
|
65
|
+
return err(aborted(resolved));
|
|
66
|
+
try {
|
|
67
|
+
return ok(await operation(resolved));
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (error instanceof FileError)
|
|
71
|
+
return err(error);
|
|
72
|
+
const cause = toError(error);
|
|
73
|
+
return err(new FileError("unknown", cause.message, resolved, cause));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return env;
|
|
77
|
+
}
|
|
78
|
+
/** The file or directory at `path`. A directory exists when a file below it does. */
|
|
79
|
+
async function entry(db, path) {
|
|
80
|
+
const [file] = await db.execute(`SELECT length(content) AS size, mtime_ms FROM pi_file WHERE path = ?`, path);
|
|
81
|
+
if (file) {
|
|
82
|
+
return {
|
|
83
|
+
name: posix.basename(path),
|
|
84
|
+
path,
|
|
85
|
+
kind: "file",
|
|
86
|
+
size: file.size,
|
|
87
|
+
mtimeMs: file.mtime_ms,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const below = path === "/" ? "/" : `${path}/`;
|
|
91
|
+
// Paths below `below` sort from it up to the same prefix ending in the next byte.
|
|
92
|
+
const [child] = await db.execute(`SELECT 1 FROM pi_file WHERE path > ? AND path < ? LIMIT 1`, below, `${below.slice(0, -1)}0`);
|
|
93
|
+
if (!child)
|
|
94
|
+
return undefined;
|
|
95
|
+
return {
|
|
96
|
+
name: posix.basename(path),
|
|
97
|
+
path,
|
|
98
|
+
kind: "directory",
|
|
99
|
+
size: 0,
|
|
100
|
+
mtimeMs: 0,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async function requireFile(db, path) {
|
|
104
|
+
const info = await entry(db, path);
|
|
105
|
+
if (!info)
|
|
106
|
+
throw notFound(path);
|
|
107
|
+
if (info.kind === "directory") {
|
|
108
|
+
throw new FileError("is_directory", `${path} is a directory`, path);
|
|
109
|
+
}
|
|
110
|
+
return info;
|
|
111
|
+
}
|
|
112
|
+
async function readFile(db, path) {
|
|
113
|
+
const [row] = await db.execute(`SELECT content FROM pi_file WHERE path = ?`, path);
|
|
114
|
+
if (row)
|
|
115
|
+
return new Uint8Array(row.content);
|
|
116
|
+
await requireFile(db, path);
|
|
117
|
+
throw notFound(path);
|
|
118
|
+
}
|
|
119
|
+
/** Reads byte ranges of the stored file with SQL, so a large file is never loaded whole. */
|
|
120
|
+
function fileReader(db, path) {
|
|
121
|
+
const range = async (offset, length) => {
|
|
122
|
+
const [row] = await db.execute(`SELECT substr(content, ?, ?) AS chunk FROM pi_file WHERE path = ?`, offset + 1, length, path);
|
|
123
|
+
if (!row)
|
|
124
|
+
throw notFound(path);
|
|
125
|
+
return new Uint8Array(row.chunk ?? new Uint8Array());
|
|
126
|
+
};
|
|
127
|
+
const guarded = async (context, operation) => {
|
|
128
|
+
if (context.abortSignal?.aborted)
|
|
129
|
+
return err(aborted(path));
|
|
130
|
+
try {
|
|
131
|
+
return ok(await operation());
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error instanceof FileError)
|
|
135
|
+
return err(error);
|
|
136
|
+
const cause = toError(error);
|
|
137
|
+
return err(new FileError("unknown", cause.message, path, cause));
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
info: (context) => guarded(context, () => requireFile(db, path)),
|
|
142
|
+
read: (offset, length, context) => guarded(context, () => range(offset, length)),
|
|
143
|
+
scanLines: ({ startLine, endLine }, context) => guarded(context, async () => {
|
|
144
|
+
let scanner;
|
|
145
|
+
try {
|
|
146
|
+
scanner = new LineScanner(startLine, endLine);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
throw new FileError("invalid", "Invalid line range", path);
|
|
150
|
+
}
|
|
151
|
+
for (let offset = 0;; offset += SCAN_CHUNK_BYTES) {
|
|
152
|
+
if (context.abortSignal?.aborted)
|
|
153
|
+
throw aborted(path);
|
|
154
|
+
const chunk = await range(offset, SCAN_CHUNK_BYTES);
|
|
155
|
+
if (chunk.length > 0)
|
|
156
|
+
scanner.push(chunk);
|
|
157
|
+
if (chunk.length < SCAN_CHUNK_BYTES)
|
|
158
|
+
return scanner.finish();
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
close: async () => { },
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function aborted(path) {
|
|
165
|
+
return new FileError("aborted", "aborted", path);
|
|
166
|
+
}
|
|
167
|
+
function notFound(path) {
|
|
168
|
+
return new FileError("not_found", `${path} does not exist`, path);
|
|
169
|
+
}
|
|
170
|
+
function notSupported(operation, path) {
|
|
171
|
+
return err(new FileError("not_supported", `${operation} is not supported for files stored in the database`, path));
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=database-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-env.js","sourceRoot":"","sources":["../src/database-env.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ import { type ConnectionWatches } from "./watches.js";
|
|
|
9
9
|
export type PiDatabaseProvider = DatabaseProvider<RawAccess>;
|
|
10
10
|
/** The actor context shape every Pi helper works against. */
|
|
11
11
|
export type PiContext = ActorContext<any, any, any, any, any, PiDatabaseProvider, any, any>;
|
|
12
|
+
/** Whether Pi Durable is open in this actor generation, or why it closed. */
|
|
13
|
+
export type PiStatus = "open" | "sleeping" | "destroyed";
|
|
12
14
|
/** How an actor generation stops. A sleep drains until `drainUntil`; a destroy stops at once. */
|
|
13
15
|
export type PiStop = {
|
|
14
16
|
reason: "sleep";
|
|
@@ -61,8 +63,8 @@ export interface PiRuntime {
|
|
|
61
63
|
/** The open harness, or the open in progress. */
|
|
62
64
|
harness?: Promise<OpenHarness>;
|
|
63
65
|
sandbox?: Promise<ConnectedSandbox>;
|
|
64
|
-
/**
|
|
65
|
-
|
|
66
|
+
/** Pi Durable is open until the actor starts to sleep or is destroyed. */
|
|
67
|
+
status: PiStatus;
|
|
66
68
|
/**
|
|
67
69
|
* The `onWake` context. Background work (keep-awake, scheduled wakes, the
|
|
68
70
|
* sandbox, reopening) uses it, because an action's context is cancelled
|
|
@@ -71,6 +73,13 @@ export interface PiRuntime {
|
|
|
71
73
|
actor?: PiContext;
|
|
72
74
|
/** Open Pi watches of connections, for this generation. */
|
|
73
75
|
watches: ConnectionWatches;
|
|
76
|
+
/**
|
|
77
|
+
* Calls that are using the harness and are not waiting on a run. A sleep
|
|
78
|
+
* drains them, so it never closes the harness under a call it admitted.
|
|
79
|
+
*/
|
|
80
|
+
calls: number;
|
|
81
|
+
/** Called when a counted call ends. A drain sets it. */
|
|
82
|
+
callEnded?: () => void;
|
|
74
83
|
}
|
|
75
84
|
export declare const PI_RUNTIME: unique symbol;
|
|
76
85
|
export declare function createPiRuntime(): PiRuntime;
|
|
@@ -89,7 +98,12 @@ export declare function openOnWake(c: PiContext, options: PiOptions): Promise<Ha
|
|
|
89
98
|
* actor drains the run. RivetKit's action signal also fires when the actor
|
|
90
99
|
* starts to stop, so it cannot cancel a wait.
|
|
91
100
|
*/
|
|
92
|
-
export declare function withHarness<T>(c: PiContext, options: PiOptions, run: (harness: Harness, context: Context) => Promise<T>): Promise<T>;
|
|
101
|
+
export declare function withHarness<T>(c: PiContext, options: PiOptions, run: (harness: Harness, context: Context, waiting: Waiting) => Promise<T>): Promise<T>;
|
|
102
|
+
/**
|
|
103
|
+
* Runs a wait on a run, such as `submission.wait`, without holding a sleep.
|
|
104
|
+
* While the run is busy, the run itself holds the sleep.
|
|
105
|
+
*/
|
|
106
|
+
export type Waiting = <W>(wait: () => Promise<W>) => Promise<W>;
|
|
93
107
|
/**
|
|
94
108
|
* Runs one of the app's own actions or hooks with the harness on `c.pi`. A
|
|
95
109
|
* failure that left Pi Durable unusable reopens it. The error reaches the
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAEN,KAAK,oBAAoB,EAEzB,OAAO,EAEP,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
|
|
2
2
|
import { AgentDoc, configure, Harness, } from "@earendil-works/pi-durable";
|
|
3
3
|
import { SqliteStorage } from "@earendil-works/pi-durable/storage/sqlite";
|
|
4
|
-
import {
|
|
4
|
+
import { sandboxEnv } from "@rivet-dev/sandbox-adapter/pi";
|
|
5
5
|
import { UserError } from "rivetkit";
|
|
6
6
|
import { actorSqlite } from "./actor-sqlite.js";
|
|
7
7
|
import { SourceCredentialStore } from "./credentials.js";
|
|
8
|
+
import { databaseEnv } from "./database-env.js";
|
|
8
9
|
import { toClientError } from "./errors.js";
|
|
9
10
|
import { createActorModelRuntime, emptyCredentialStore, } from "./models.js";
|
|
10
11
|
import { loadPiSandbox, savePiSandbox } from "./storage.js";
|
|
@@ -19,7 +20,7 @@ const LONG_WAIT_MS = 60_000;
|
|
|
19
20
|
const WAKE_ACTION = "pi.wake";
|
|
20
21
|
export const PI_RUNTIME = Symbol.for("@rivet-dev/pi/runtime");
|
|
21
22
|
export function createPiRuntime() {
|
|
22
|
-
return {
|
|
23
|
+
return { status: "open", watches: createConnectionWatches(), calls: 0 };
|
|
23
24
|
}
|
|
24
25
|
export function piRuntime(c) {
|
|
25
26
|
const runtime = c.vars?.[PI_RUNTIME];
|
|
@@ -40,8 +41,10 @@ export async function openOnWake(c, options) {
|
|
|
40
41
|
/** Returns the actor's Pi Durable harness, opening it from SQLite on first use. */
|
|
41
42
|
async function ensureHarness(c, options, open = { resume: true }) {
|
|
42
43
|
const runtime = piRuntime(c);
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
// Callers check the status first, so a closed generation never reopens Pi Durable.
|
|
45
|
+
if (runtime.status !== "open") {
|
|
46
|
+
throw new Error(`pi durable cannot open after it closed (${runtime.status})`);
|
|
47
|
+
}
|
|
45
48
|
runtime.harness ??= openHarness(runtime.actor ?? c, runtime, options, open).catch((error) => {
|
|
46
49
|
runtime.harness = undefined;
|
|
47
50
|
throw toClientError(error);
|
|
@@ -57,15 +60,36 @@ async function ensureHarness(c, options, open = { resume: true }) {
|
|
|
57
60
|
* starts to stop, so it cannot cancel a wait.
|
|
58
61
|
*/
|
|
59
62
|
export async function withHarness(c, options, run) {
|
|
63
|
+
const runtime = piRuntime(c);
|
|
64
|
+
if (runtime.status !== "open")
|
|
65
|
+
throw piClosed(runtime.status);
|
|
60
66
|
const harness = await ensureHarness(c, options);
|
|
67
|
+
const release = countCall(runtime);
|
|
61
68
|
try {
|
|
62
|
-
return await run(harness, BACKGROUND_CONTEXT)
|
|
69
|
+
return await run(harness, BACKGROUND_CONTEXT, (wait) => {
|
|
70
|
+
release();
|
|
71
|
+
return wait();
|
|
72
|
+
});
|
|
63
73
|
}
|
|
64
74
|
catch (error) {
|
|
65
|
-
const runtime = piRuntime(c);
|
|
66
75
|
await recoverHarness(runtime.actor ?? c, runtime, options);
|
|
67
76
|
throw toClientError(error);
|
|
68
77
|
}
|
|
78
|
+
finally {
|
|
79
|
+
release();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Counts a call until the returned function runs. Calling it again does nothing. */
|
|
83
|
+
function countCall(runtime) {
|
|
84
|
+
runtime.calls += 1;
|
|
85
|
+
let counted = true;
|
|
86
|
+
return () => {
|
|
87
|
+
if (!counted)
|
|
88
|
+
return;
|
|
89
|
+
counted = false;
|
|
90
|
+
runtime.calls -= 1;
|
|
91
|
+
runtime.callEnded?.();
|
|
92
|
+
};
|
|
69
93
|
}
|
|
70
94
|
/**
|
|
71
95
|
* Runs one of the app's own actions or hooks with the harness on `c.pi`. A
|
|
@@ -78,8 +102,9 @@ export async function withHarness(c, options, run) {
|
|
|
78
102
|
export async function withPiAccess(c, options, body, { opensHarness = true } = {}) {
|
|
79
103
|
const runtime = piRuntime(c);
|
|
80
104
|
// Hooks such as onDisconnect still run after Pi Durable closed; only using c.pi fails.
|
|
81
|
-
if (runtime.
|
|
82
|
-
return withUnavailablePi(c,
|
|
105
|
+
if (runtime.status !== "open") {
|
|
106
|
+
return withUnavailablePi(c, piClosed(runtime.status), body);
|
|
107
|
+
}
|
|
83
108
|
if (!opensHarness && !runtime.harness) {
|
|
84
109
|
return withUnavailablePi(c, harnessNotOpen(), body);
|
|
85
110
|
}
|
|
@@ -95,6 +120,7 @@ export async function withPiAccess(c, options, body, { opensHarness = true } = {
|
|
|
95
120
|
return withUnavailablePi(c, error, body);
|
|
96
121
|
}
|
|
97
122
|
Object.defineProperty(c, "pi", { value: harness, configurable: true });
|
|
123
|
+
const release = countCall(runtime);
|
|
98
124
|
try {
|
|
99
125
|
return await body();
|
|
100
126
|
}
|
|
@@ -102,12 +128,18 @@ export async function withPiAccess(c, options, body, { opensHarness = true } = {
|
|
|
102
128
|
await recoverHarness(runtime.actor ?? c, runtime, options);
|
|
103
129
|
throw toClientError(error);
|
|
104
130
|
}
|
|
131
|
+
finally {
|
|
132
|
+
release();
|
|
133
|
+
}
|
|
105
134
|
}
|
|
106
135
|
function harnessNotOpen() {
|
|
107
136
|
return new UserError("Pi Durable is not open in this actor generation, so this shutdown hook cannot use c.pi.");
|
|
108
137
|
}
|
|
109
|
-
|
|
110
|
-
|
|
138
|
+
/** What a call gets once Pi Durable is closed for this generation. */
|
|
139
|
+
function piClosed(status) {
|
|
140
|
+
return new UserError(status === "sleeping"
|
|
141
|
+
? "Pi Durable is closed because the actor is going to sleep."
|
|
142
|
+
: "Pi Durable is closed because the actor was destroyed.");
|
|
111
143
|
}
|
|
112
144
|
async function openHarness(c, runtime, options, open = { resume: true }) {
|
|
113
145
|
const storage = await SqliteStorage.open(actorSqlite(c.db));
|
|
@@ -158,7 +190,7 @@ function isUsable(harness) {
|
|
|
158
190
|
/** Closes and reopens a harness that Pi Durable refuses to use. The reopened harness resumes from storage. */
|
|
159
191
|
async function recoverHarness(c, runtime, options) {
|
|
160
192
|
const current = runtime.harness;
|
|
161
|
-
if (!current || runtime.
|
|
193
|
+
if (!current || runtime.status !== "open")
|
|
162
194
|
return;
|
|
163
195
|
let open;
|
|
164
196
|
try {
|
|
@@ -167,7 +199,9 @@ async function recoverHarness(c, runtime, options) {
|
|
|
167
199
|
catch {
|
|
168
200
|
return;
|
|
169
201
|
}
|
|
170
|
-
if (runtime.harness !== current ||
|
|
202
|
+
if (runtime.harness !== current ||
|
|
203
|
+
runtime.status !== "open" ||
|
|
204
|
+
isUsable(open.harness))
|
|
171
205
|
return;
|
|
172
206
|
c.log.warn({
|
|
173
207
|
msg: "pi durable stopped after a failed commit, reopening it from storage",
|
|
@@ -242,7 +276,11 @@ function sandboxEnvBuilder(c, runtime, provider) {
|
|
|
242
276
|
};
|
|
243
277
|
return async (target) => {
|
|
244
278
|
const root = provider.cwd ?? (await connect()).cwd;
|
|
245
|
-
return sandboxEnv(
|
|
279
|
+
return sandboxEnv(connect, {
|
|
280
|
+
id: `${provider.name}:${c.actorId}`,
|
|
281
|
+
root,
|
|
282
|
+
cwd: target.cwd,
|
|
283
|
+
});
|
|
246
284
|
};
|
|
247
285
|
}
|
|
248
286
|
function reportBlockedTasks(c, inspection) {
|
|
@@ -379,15 +417,17 @@ function watchBusy(c, harness, now, longWaitMs) {
|
|
|
379
417
|
};
|
|
380
418
|
}
|
|
381
419
|
/**
|
|
382
|
-
* Waits until no run is active
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
*
|
|
420
|
+
* Waits until no run is active and no admitted call is using the harness, or
|
|
421
|
+
* until `drainUntil` passes. Idle sleep has no live work, so it waits only for
|
|
422
|
+
* a call that arrived as the sleep started. The deadline ends before
|
|
423
|
+
* RivetKit's, so closing still fits in the grace period. Pi's records are
|
|
424
|
+
* already stored, and the next wake resumes the work.
|
|
386
425
|
*/
|
|
387
|
-
async function drain(c, open, drainUntil) {
|
|
426
|
+
async function drain(c, runtime, open, drainUntil) {
|
|
388
427
|
let changed = () => { };
|
|
389
428
|
let timedOut = false;
|
|
390
429
|
const unsubscribe = open.harness.subscribeCommits(() => changed());
|
|
430
|
+
runtime.callEnded = () => changed();
|
|
391
431
|
const timer = setTimeout(() => {
|
|
392
432
|
timedOut = true;
|
|
393
433
|
changed();
|
|
@@ -398,7 +438,7 @@ async function drain(c, open, drainUntil) {
|
|
|
398
438
|
const next = new Promise((resolve) => {
|
|
399
439
|
changed = resolve;
|
|
400
440
|
});
|
|
401
|
-
if (!(await open.isBusy()))
|
|
441
|
+
if (runtime.calls === 0 && !(await open.isBusy()))
|
|
402
442
|
return;
|
|
403
443
|
await next;
|
|
404
444
|
}
|
|
@@ -409,6 +449,7 @@ async function drain(c, open, drainUntil) {
|
|
|
409
449
|
finally {
|
|
410
450
|
clearTimeout(timer);
|
|
411
451
|
unsubscribe();
|
|
452
|
+
runtime.callEnded = undefined;
|
|
412
453
|
}
|
|
413
454
|
}
|
|
414
455
|
/**
|
|
@@ -427,9 +468,9 @@ export async function closeHarness(c, options, stop) {
|
|
|
427
468
|
catch { }
|
|
428
469
|
// Destroy has no next generation to resume in, so it stops running work at once.
|
|
429
470
|
if (open && stop.reason === "sleep") {
|
|
430
|
-
await drain(c, open, stop.drainUntil).catch((error) => errors.push(error));
|
|
471
|
+
await drain(c, runtime, open, stop.drainUntil).catch((error) => errors.push(error));
|
|
431
472
|
}
|
|
432
|
-
runtime.
|
|
473
|
+
runtime.status = stop.reason === "sleep" ? "sleeping" : "destroyed";
|
|
433
474
|
runtime.harness = undefined;
|
|
434
475
|
if (open) {
|
|
435
476
|
await closeOpenHarness(open, runtime.watches).catch((error) => errors.push(error));
|
package/dist/runtime.js.map
CHANGED
|
@@ -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/storage.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { ConversationId } from "@earendil-works/pi-durable";
|
|
1
2
|
import type { RawAccess } from "rivetkit/db";
|
|
2
3
|
export type PiDatabase = Pick<RawAccess, "execute">;
|
|
3
4
|
/**
|
|
4
5
|
* `pi()`'s own tables. Pi Durable creates its tables in the same database
|
|
5
|
-
* itself. The `pi_durable` names are
|
|
6
|
+
* itself, with the `pi_` prefix `actorSqlite` adds. The `pi_durable` names are
|
|
7
|
+
* stored in actors' databases, so they stay.
|
|
6
8
|
*/
|
|
7
9
|
export declare const migratePiTables: (db: import("rivetkit/unstable/migrations").MigrationDatabase) => Promise<void>;
|
|
8
10
|
/** A watch a connection asked for. Stored so a connection that survives sleep gets its watches back on wake. */
|
|
@@ -13,16 +15,16 @@ export type StoredWatch = {
|
|
|
13
15
|
};
|
|
14
16
|
export type WatchSpec = {
|
|
15
17
|
kind: "events";
|
|
16
|
-
conversationId:
|
|
18
|
+
conversationId: ConversationId;
|
|
17
19
|
} | {
|
|
18
20
|
kind: "view";
|
|
19
|
-
conversationId:
|
|
21
|
+
conversationId: ConversationId;
|
|
20
22
|
} | {
|
|
21
23
|
kind: "taskGraph";
|
|
22
24
|
} | {
|
|
23
25
|
kind: "doc";
|
|
24
26
|
docKind: string;
|
|
25
|
-
conversationId:
|
|
27
|
+
conversationId: ConversationId;
|
|
26
28
|
};
|
|
27
29
|
export declare function saveWatch(db: PiDatabase, watch: StoredWatch): Promise<void>;
|
|
28
30
|
export declare function deleteWatch(db: PiDatabase, connId: string, key: string): Promise<void>;
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,eAAe,iFAoD1B,CAAC;AAEH,gHAAgH;AAChH,MAAM,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpE,wBAAsB,SAAS,CAC9B,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,WAAW,CAChC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxE;AAED,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;CACX;AAED,wBAAsB,aAAa,CAClC,EAAE,EAAE,UAAU,GACZ,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAMpC;AAED,wBAAsB,aAAa,CAClC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
package/dist/storage.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { migrations } from "rivetkit/unstable/migrations";
|
|
2
|
+
import { PI_DURABLE_TABLES } from "./actor-sqlite.js";
|
|
2
3
|
/**
|
|
3
4
|
* `pi()`'s own tables. Pi Durable creates its tables in the same database
|
|
4
|
-
* itself. The `pi_durable` names are
|
|
5
|
+
* itself, with the `pi_` prefix `actorSqlite` adds. The `pi_durable` names are
|
|
6
|
+
* stored in actors' databases, so they stay.
|
|
5
7
|
*/
|
|
6
8
|
export const migratePiTables = migrations({
|
|
7
9
|
tableName: "pi_durable_schema_version",
|
|
@@ -29,6 +31,28 @@ export const migratePiTables = migrations({
|
|
|
29
31
|
) STRICT, WITHOUT ROWID;
|
|
30
32
|
`,
|
|
31
33
|
},
|
|
34
|
+
{
|
|
35
|
+
version: 3,
|
|
36
|
+
// Files of agents without a sandbox. Agents from 0.5.1 created this table on first use.
|
|
37
|
+
sql: `
|
|
38
|
+
CREATE TABLE IF NOT EXISTS pi_file (
|
|
39
|
+
path TEXT PRIMARY KEY,
|
|
40
|
+
content BLOB NOT NULL,
|
|
41
|
+
mtime_ms INTEGER NOT NULL
|
|
42
|
+
) STRICT;
|
|
43
|
+
`,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
version: 4,
|
|
47
|
+
// Pi Durable's tables of agents from 0.5.1 and earlier have no prefix. Renaming them keeps their data.
|
|
48
|
+
up: async (db) => {
|
|
49
|
+
for (const table of PI_DURABLE_TABLES) {
|
|
50
|
+
const [found] = await db.execute("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?", table);
|
|
51
|
+
if (found)
|
|
52
|
+
await db.execute(`ALTER TABLE ${table} RENAME TO pi_${table}`);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
},
|
|
32
56
|
],
|
|
33
57
|
});
|
|
34
58
|
export async function saveWatch(db, watch) {
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACzC,SAAS,EAAE,2BAA2B;IACtC,UAAU,EAAE;QACX;YACC,OAAO,EAAE,CAAC;YACV,2FAA2F;YAC3F,GAAG,EAAE;;;;;;;IAOJ;SACD;QACD;YACC,OAAO,EAAE,CAAC;YACV,GAAG,EAAE;;;;;;;IAOJ;SACD;QACD;YACC,OAAO,EAAE,CAAC;YACV,wFAAwF;YACxF,GAAG,EAAE;;;;;;IAMJ;SACD;QACD;YACC,OAAO,EAAE,CAAC;YACV,uGAAuG;YACvG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBAChB,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAC/B,+DAA+D,EAC/D,KAAK,CACL,CAAC;oBACF,IAAI,KAAK;wBACR,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,KAAK,iBAAiB,KAAK,EAAE,CAAC,CAAC;gBACjE,CAAC;YACF,CAAC;SACD;KACD;CACD,CAAC,CAAC;AAeH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,EAAc,EACd,KAAkB;IAElB,MAAM,EAAE,CAAC,OAAO,CACf;+CAC6C,EAC7C,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,EAAc,EACd,MAAc,EACd,GAAW;IAEX,MAAM,EAAE,CAAC,OAAO,CACf,kEAAkE,EAClE,MAAM,EACN,GAAG,CACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,EAAc,EACd,MAAc;IAEd,MAAM,EAAE,CAAC,OAAO,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAc;IAC/C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAI1B,4DAA4D,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,2DAA2D;QAC3D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAc;KAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,EAAc;IAEd,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAC5B,iEAAiE,CACjE,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,EAAc,EACd,OAAsB;IAEtB,MAAM,EAAE,CAAC,OAAO,CACf;;;;oCAIkC,EAClC,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,EAAE,EACV,IAAI,CAAC,GAAG,EAAE,CACV,CAAC;AACH,CAAC"}
|