feat(client): add runtime-neutral session client

Split harness shutdown initiation from settlement so callbacks can request shutdown without deadlocking active work.
This commit is contained in:
Christian Klotz
2026-07-31 12:19:19 +03:00
parent e6fb3ec68f
commit 33bc0a7b83
24 changed files with 1441 additions and 16 deletions
+2
View File
@@ -1,3 +1,4 @@
import { PiClient } from "@earendil-works/pi-client";
import { createAssistantMessageEventStream, Type } from "@earendil-works/pi-ai";
import { complete, getModel, getProviders, streamSimple } from "@earendil-works/pi-ai/compat";
import {
@@ -59,6 +60,7 @@ console.log(
new FileError("not_found", "missing").code,
toError("boom").message,
typeof streamProxy,
typeof PiClient,
PROTOCOL_VERSION,
decodeCbor(encodeCbor({ browser: true })),
);
+1
View File
@@ -10,6 +10,7 @@ const packages = [
{ directory: "packages/tui", name: "@earendil-works/pi-tui" },
{ directory: "packages/agent", name: "@earendil-works/pi-agent-core" },
{ directory: "packages/protocol", name: "@earendil-works/pi-protocol" },
{ directory: "packages/client", name: "@earendil-works/pi-client" },
{ directory: "packages/storage/sqlite-node", name: "@earendil-works/pi-storage-sqlite-node" },
{ directory: "packages/coding-agent", name: "@earendil-works/pi-coding-agent" },
];
+1
View File
@@ -8,6 +8,7 @@ const packages = [
{ directory: "packages/ai", name: "@earendil-works/pi-ai" },
{ directory: "packages/agent", name: "@earendil-works/pi-agent-core" },
{ directory: "packages/protocol", name: "@earendil-works/pi-protocol" },
{ directory: "packages/client", name: "@earendil-works/pi-client" },
{ directory: "packages/storage/sqlite-node", name: "@earendil-works/pi-storage-sqlite-node" },
{ directory: "packages/tui", name: "@earendil-works/pi-tui" },
{ directory: "packages/coding-agent", name: "@earendil-works/pi-coding-agent" },