@botiverse/oar 0.70.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -137,7 +137,7 @@ Community runtimes are contributed and maintained outside the core team (each ma
|
|
|
137
137
|
configuration and `SessionOptions.model`. When resuming an old Azure session,
|
|
138
138
|
explicitly pass `model: "azure/<model>"`; without it, Pi can retain the
|
|
139
139
|
conversation while selecting a different default model. The opening `model`
|
|
140
|
-
event and `Session.model()` report the effective selection. OAR's `^1.
|
|
140
|
+
event and `Session.model()` report the effective selection. OAR's `^1.4.0`
|
|
141
141
|
dependency range includes this upstream update. See the
|
|
142
142
|
[migration evidence and limits](https://github.com/botiverse/oar/blob/main/experiments/runtime-version-checks/2026-10-05.md).
|
|
143
143
|
|
|
@@ -343,7 +343,11 @@ TypeScript hosts: keep `skipLibCheck` on. With `skipLibCheck: false` and `module
|
|
|
343
343
|
|
|
344
344
|
## Host-owned durable sessions
|
|
345
345
|
|
|
346
|
-
Install the optional native peers in the host: `npm install @earendil-works/pi-durable@~1.
|
|
346
|
+
Install the optional native peers in the host: `npm install @earendil-works/pi-durable@~1.4.0 @earendil-works/chord@~1.4.0`.
|
|
347
|
+
Upgrade both together. Native 1.4.0 migrates SQLite storage to schema 2,
|
|
348
|
+
which cannot be reopened by 1.3.0 or earlier; see the
|
|
349
|
+
[host upgrade notes](https://github.com/botiverse/oar/blob/main/docs/runtimes/pi-durable.md#native-objects-and-calling-interface)
|
|
350
|
+
for storage and extension API changes.
|
|
347
351
|
The factory lives only in `@botiverse/oar/pi-durable`, usable in Node and browsers.
|
|
348
352
|
The root and browser core entries load without these peers.
|
|
349
353
|
|
|
@@ -351,7 +355,7 @@ The root and browser core entries load without these peers.
|
|
|
351
355
|
import { viewOf } from "@botiverse/oar/browser";
|
|
352
356
|
import { createPiDurableRuntime } from "@botiverse/oar/pi-durable";
|
|
353
357
|
|
|
354
|
-
// Use the same Models instance
|
|
358
|
+
// Use the same Models instance or () => Models supplier passed to Harness.open.
|
|
355
359
|
const runtime = createPiDurableRuntime({ harness, models });
|
|
356
360
|
const session = await runtime.session({ kind: "available", via: "bundled" }, {
|
|
357
361
|
cwd: "/workspace", model: "provider/model",
|
|
@@ -360,7 +364,7 @@ session.rawEvents(() => render(viewOf(session.records())));
|
|
|
360
364
|
await session.prompt("Hello", { inputId: crypto.randomUUID() });
|
|
361
365
|
```
|
|
362
366
|
|
|
363
|
-
The host owns its Pi Durable 1.
|
|
367
|
+
The host owns its Pi Durable 1.4.0 Harness, providers, credentials, extensions
|
|
364
368
|
and storage. `resume: session.id` attaches to that storage's conversation and
|
|
365
369
|
resumes unfinished work. Queue and input-id deduplication are native and
|
|
366
370
|
durable. `dispose()` detaches the observer; it does not stop work or close the
|
|
@@ -4,9 +4,9 @@ import { type Runtime } from "../../contracts/runtime.js";
|
|
|
4
4
|
export interface PiDurableRuntimeOptions {
|
|
5
5
|
/** An already-open host-owned Harness. OAR never closes it or its storage. */
|
|
6
6
|
readonly harness: Harness;
|
|
7
|
-
/** The same
|
|
8
|
-
readonly models: Models;
|
|
7
|
+
/** The same catalog or supplier passed to Harness.open. Resolved at each listing and session open, including resume; native Harness exposes no getter, so OAR cannot verify identity. */
|
|
8
|
+
readonly models: Models | (() => Models);
|
|
9
9
|
}
|
|
10
|
-
/** Pi Durable
|
|
10
|
+
/** Pi Durable conversations over host-owned storage, providers, extensions and execution environment. */
|
|
11
11
|
export declare function createPiDurableRuntime({ harness, models }: PiDurableRuntimeOptions): Runtime;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi-durable/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAMzE,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi-durable/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAMzE,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yLAAyL;IACzL,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CAC1C;AAED,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAe5F"}
|
|
@@ -4,19 +4,20 @@ import { runtimeBrands } from "../../brands.js";
|
|
|
4
4
|
import { projectPiModels } from "../pi/model-projection.js";
|
|
5
5
|
import { piDurableRefusedSessionOptions } from "./options.js";
|
|
6
6
|
import { piDurableSession } from "./session.js";
|
|
7
|
-
/** Pi Durable
|
|
7
|
+
/** Pi Durable conversations over host-owned storage, providers, extensions and execution environment. */
|
|
8
8
|
export function createPiDurableRuntime({ harness, models }) {
|
|
9
|
+
const currentModels = typeof models === "function" ? models : () => models;
|
|
9
10
|
const runtime = defineRuntime({
|
|
10
11
|
id: "pi-durable",
|
|
11
12
|
brand: runtimeBrands["pi-durable"],
|
|
12
13
|
refusedSessionOptions: piDurableRefusedSessionOptions,
|
|
13
14
|
installation: async () => { await Promise.resolve(); return { kind: "available", via: "bundled" }; },
|
|
14
|
-
listModels: async () => { await Promise.resolve(); return { kind: "ok", models: projectPiModels(
|
|
15
|
+
listModels: async () => { await Promise.resolve(); return { kind: "ok", models: projectPiModels(currentModels().getModels(), getSupportedThinkingLevels) }; },
|
|
15
16
|
session: async (installation, options) => {
|
|
16
17
|
if (installation.via !== "bundled") {
|
|
17
18
|
throw new Error("pi-durable requires the host's bundled Harness");
|
|
18
19
|
}
|
|
19
|
-
const session = await piDurableSession(harness,
|
|
20
|
+
const session = await piDurableSession(harness, currentModels(), options);
|
|
20
21
|
return session;
|
|
21
22
|
},
|
|
22
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi-durable/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAgB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi-durable/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAgB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,yGAAyG;AACzG,MAAM,UAAU,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAA2B;IACjF,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAW,EAAE,CAAC,MAAM,CAAC;IACnF,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC;QAClC,qBAAqB,EAAE,8BAA8B;QACrD,YAAY,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACpG,UAAU,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7J,OAAO,EAAE,KAAK,EAAE,YAAmC,EAAE,OAAuB,EAAE,EAAE;YAC9E,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAAC,CAAC;YAC1G,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1E,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/oar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -76,16 +76,16 @@
|
|
|
76
76
|
"license": "Apache-2.0",
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"@agentclientprotocol/sdk": "^1.4.0",
|
|
79
|
-
"@earendil-works/pi-ai": "^1.
|
|
80
|
-
"@earendil-works/pi-coding-agent": "^1.
|
|
79
|
+
"@earendil-works/pi-ai": "^1.4.0",
|
|
80
|
+
"@earendil-works/pi-coding-agent": "^1.4.0",
|
|
81
81
|
"cross-spawn": "^7.0.6",
|
|
82
82
|
"undici": "8.10.2",
|
|
83
83
|
"which": "^2.0.2"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"@cursor/sdk": "1.0.40",
|
|
87
|
-
"@earendil-works/pi-durable": "~1.
|
|
88
|
-
"@earendil-works/chord": "~1.
|
|
87
|
+
"@earendil-works/pi-durable": "~1.4.0",
|
|
88
|
+
"@earendil-works/chord": "~1.4.0"
|
|
89
89
|
},
|
|
90
90
|
"peerDependenciesMeta": {
|
|
91
91
|
"@cursor/sdk": {
|
|
@@ -102,8 +102,8 @@
|
|
|
102
102
|
"@cursor/sdk": "1.0.40",
|
|
103
103
|
"@types/cross-spawn": "^6.0.6",
|
|
104
104
|
"@types/which": "^2.0.2",
|
|
105
|
-
"@earendil-works/pi-durable": "1.
|
|
106
|
-
"@earendil-works/chord": "1.
|
|
105
|
+
"@earendil-works/pi-durable": "1.4.0",
|
|
106
|
+
"@earendil-works/chord": "1.4.0"
|
|
107
107
|
},
|
|
108
108
|
"scripts": {
|
|
109
109
|
"build": "tsc -p tsconfig.build.json",
|