@pi-harness/pi-harness 0.1.90 → 0.1.91
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/apps/web/dist/assets/{index-BHsP1uCF.js → index-Dg7qqI2I.js} +1 -1
- package/apps/web/dist/index.html +1 -1
- package/apps/web/package.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/index.js +11 -0
- package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
- package/node_modules/@pi-harness/api-gateway/package.json +1 -1
- package/node_modules/@pi-harness/cli/package.json +1 -1
- package/node_modules/@pi-harness/host-webserver/package.json +1 -1
- package/node_modules/@pi-harness/web-app/package.json +1 -1
- package/package.json +6 -6
- package/packages/api-gateway/dist/index.d.ts.map +1 -1
- package/packages/api-gateway/dist/index.js +11 -0
- package/packages/api-gateway/dist/index.js.map +1 -1
- package/packages/api-gateway/package.json +1 -1
- package/packages/api-gateway/src/index.ts +9 -0
- package/packages/api-gateway/test/index.test.ts +33 -0
- package/packages/bundle-web-app/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/host-webserver/package.json +1 -1
|
@@ -3805,6 +3805,39 @@ describe("API gateway plugin", () => {
|
|
|
3805
3805
|
await expect(stat(target)).rejects.toMatchObject({ code: "ENOENT" });
|
|
3806
3806
|
});
|
|
3807
3807
|
|
|
3808
|
+
test("exports an empty active session by persisting its in-memory header", async () => {
|
|
3809
|
+
const context = new Context();
|
|
3810
|
+
contexts.push(context);
|
|
3811
|
+
const directory = await mkdtemp(join(tmpdir(), "pi-harness-api-empty-session-export-"));
|
|
3812
|
+
temporaryDirectories.push(directory);
|
|
3813
|
+
const sessionDir = join(directory, "sessions");
|
|
3814
|
+
await mkdir(sessionDir);
|
|
3815
|
+
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
3816
|
+
const manager = SessionManager.create("/tmp", sessionDir);
|
|
3817
|
+
const target = manager.getSessionFile();
|
|
3818
|
+
if (!target) throw new Error("Expected a new session path");
|
|
3819
|
+
const session = {
|
|
3820
|
+
sessionId: manager.getSessionId(),
|
|
3821
|
+
get sessionFile() {
|
|
3822
|
+
return manager.getSessionFile();
|
|
3823
|
+
},
|
|
3824
|
+
messages: [],
|
|
3825
|
+
isStreaming: false,
|
|
3826
|
+
sessionManager: manager,
|
|
3827
|
+
subscribe: () => () => {},
|
|
3828
|
+
};
|
|
3829
|
+
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
3830
|
+
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
3831
|
+
context.provide("piHarnessLaunch", { cwd: "/tmp", agentDir: "/tmp/agent", args: [], requestExit() {} });
|
|
3832
|
+
await context.plugin(apiPlugin);
|
|
3833
|
+
|
|
3834
|
+
const response = await fetch(context.webServer.url + "/api/session/export");
|
|
3835
|
+
expect(response.status).toBe(200);
|
|
3836
|
+
expect(response.headers.get("content-type")).toContain("application/x-ndjson");
|
|
3837
|
+
expect(await response.text()).toContain('"type":"session"');
|
|
3838
|
+
await expect(stat(target)).resolves.toBeDefined();
|
|
3839
|
+
});
|
|
3840
|
+
|
|
3808
3841
|
test("keeps batch deletion going past a failing session and persists the metadata it did remove", async () => {
|
|
3809
3842
|
const context = new Context();
|
|
3810
3843
|
contexts.push(context);
|