@pi-harness/pi-harness 0.1.35 → 0.1.37
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/de-DKAiZCiT.js +1 -0
- package/apps/web/dist/assets/en-C4OBIACD.js +1 -0
- package/apps/web/dist/assets/es-Bj2z7sXT.js +1 -0
- package/apps/web/dist/assets/fr-C2Iqg8aA.js +1 -0
- package/apps/web/dist/assets/index-B1fEgaLH.js +27 -0
- package/apps/web/dist/assets/index-BvO1Uz-I.css +2 -0
- package/apps/web/dist/assets/ja-QDWzP_6S.js +1 -0
- package/apps/web/dist/assets/ko-CG9vWUNu.js +1 -0
- package/apps/web/dist/assets/pt-BR-BYKT3h_9.js +1 -0
- package/apps/web/dist/assets/ru-myrAE8FL.js +1 -0
- package/apps/web/dist/assets/zh-TW--gZYR1R8.js +1 -0
- package/apps/web/dist/index.html +2 -2
- package/apps/web/package.json +1 -1
- package/apps/web/src/main.ts +3 -4
- package/apps/web/src/style.css +169 -166
- package/apps/web/src/tailwind.css +6 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +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/marketplace-entries/official/agent-teams.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -1
- package/packages/api-gateway/package.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/at-file.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/modlens.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/openpets.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -1
- package/packages/api-gateway/test/index.test.ts +108 -92
- package/packages/bundle-web-app/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/host-webserver/package.json +1 -1
- package/apps/web/dist/assets/index-CZMbiZj6.css +0 -2
- package/apps/web/dist/assets/index-DfoTFIcm.js +0 -26
|
@@ -227,9 +227,7 @@ describe("API gateway plugin", () => {
|
|
|
227
227
|
});
|
|
228
228
|
|
|
229
229
|
test("publishes the persisted UTC cost ledger through its dedicated panel", async () => {
|
|
230
|
-
const costMeterModule =
|
|
231
|
-
default: Parameters<Context["plugin"]>[0];
|
|
232
|
-
};
|
|
230
|
+
const costMeterModule = await import("@pi-harness/plugin-cost-meter");
|
|
233
231
|
const context = new Context();
|
|
234
232
|
contexts.push(context);
|
|
235
233
|
const agentDir = await mkdtemp(join(tmpdir(), "pi-harness-api-cost-meter-"));
|
|
@@ -285,7 +283,7 @@ describe("API gateway plugin", () => {
|
|
|
285
283
|
});
|
|
286
284
|
|
|
287
285
|
test("publishes the bounded dependency report through its dedicated panel", async () => {
|
|
288
|
-
const dependencyCheckerModule = (await import(
|
|
286
|
+
const dependencyCheckerModule = (await import("@pi-harness/plugin-dependency-checker")) as {
|
|
289
287
|
default: Parameters<Context["plugin"]>[0];
|
|
290
288
|
};
|
|
291
289
|
const context = new Context();
|
|
@@ -297,7 +295,14 @@ describe("API gateway plugin", () => {
|
|
|
297
295
|
JSON.stringify({ dependencies: { missing: "^1.0.0" }, devDependencies: { missing: ">=2.0.0" }, optionalDependencies: { optional: "1.0.0" } }),
|
|
298
296
|
);
|
|
299
297
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
300
|
-
const session = {
|
|
298
|
+
const session = {
|
|
299
|
+
sessionId: "dependency-panel-session",
|
|
300
|
+
sessionManager: SessionManager.create(workspace, join(workspace, "sessions")),
|
|
301
|
+
sessionFile: undefined,
|
|
302
|
+
messages: [],
|
|
303
|
+
isStreaming: false,
|
|
304
|
+
subscribe: () => () => {},
|
|
305
|
+
};
|
|
301
306
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
302
307
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
303
308
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir: workspace, args: [], requestExit() {} });
|
|
@@ -338,7 +343,7 @@ describe("API gateway plugin", () => {
|
|
|
338
343
|
});
|
|
339
344
|
|
|
340
345
|
test("publishes the enforced Docker sandbox defaults through its real plugin panel", async () => {
|
|
341
|
-
const dockerSandboxModule = (await import(
|
|
346
|
+
const dockerSandboxModule = (await import("@pi-harness/plugin-docker-sandbox")) as {
|
|
342
347
|
default: Parameters<Context["plugin"]>[0];
|
|
343
348
|
};
|
|
344
349
|
const context = new Context();
|
|
@@ -346,7 +351,14 @@ describe("API gateway plugin", () => {
|
|
|
346
351
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-docker-sandbox-"));
|
|
347
352
|
temporaryDirectories.push(workspace);
|
|
348
353
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
349
|
-
const session = {
|
|
354
|
+
const session = {
|
|
355
|
+
sessionId: "docker-panel-session",
|
|
356
|
+
sessionManager: SessionManager.create(workspace, join(workspace, "sessions")),
|
|
357
|
+
sessionFile: undefined,
|
|
358
|
+
messages: [],
|
|
359
|
+
isStreaming: false,
|
|
360
|
+
subscribe: () => () => {},
|
|
361
|
+
};
|
|
350
362
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
351
363
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
352
364
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir: workspace, args: [], requestExit() {} });
|
|
@@ -386,9 +398,7 @@ describe("API gateway plugin", () => {
|
|
|
386
398
|
});
|
|
387
399
|
|
|
388
400
|
test("publishes aggregated failures through the real Failure Logger panel", async () => {
|
|
389
|
-
const failLoggerModule =
|
|
390
|
-
default: Parameters<Context["plugin"]>[0];
|
|
391
|
-
};
|
|
401
|
+
const failLoggerModule = await import("@pi-harness/plugin-fail-logger");
|
|
392
402
|
const context = new Context();
|
|
393
403
|
contexts.push(context);
|
|
394
404
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -450,9 +460,7 @@ describe("API gateway plugin", () => {
|
|
|
450
460
|
});
|
|
451
461
|
|
|
452
462
|
test("publishes bounded structured cards through the real GenUI panel", async () => {
|
|
453
|
-
const genUiModule =
|
|
454
|
-
default: Parameters<Context["plugin"]>[0];
|
|
455
|
-
};
|
|
463
|
+
const genUiModule = await import("@pi-harness/plugin-genui");
|
|
456
464
|
const context = new Context();
|
|
457
465
|
contexts.push(context);
|
|
458
466
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -507,7 +515,7 @@ describe("API gateway plugin", () => {
|
|
|
507
515
|
});
|
|
508
516
|
|
|
509
517
|
test("publishes captured Git undo capsules through the real plugin panel", async () => {
|
|
510
|
-
const gitTimeCapsuleModule = (await import(
|
|
518
|
+
const gitTimeCapsuleModule = (await import("@pi-harness/plugin-git-time-capsule")) as {
|
|
511
519
|
default: Parameters<Context["plugin"]>[0];
|
|
512
520
|
};
|
|
513
521
|
const context = new Context();
|
|
@@ -522,7 +530,14 @@ describe("API gateway plugin", () => {
|
|
|
522
530
|
await execFile("git", ["-c", "user.name=Pi", "-c", "user.email=pi@example.invalid", "commit", "-qm", "fixture"], { cwd: workspace });
|
|
523
531
|
await writeFile(join(workspace, "tracked.txt"), "after\n", "utf8");
|
|
524
532
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
525
|
-
const session = {
|
|
533
|
+
const session = {
|
|
534
|
+
sessionId: "git-capsule-panel-session",
|
|
535
|
+
sessionManager: SessionManager.create(workspace, join(agentDir, "sessions")),
|
|
536
|
+
sessionFile: undefined,
|
|
537
|
+
messages: [],
|
|
538
|
+
isStreaming: false,
|
|
539
|
+
subscribe: () => () => {},
|
|
540
|
+
};
|
|
526
541
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
527
542
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
528
543
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir, args: [], requestExit() {} });
|
|
@@ -576,9 +591,7 @@ describe("API gateway plugin", () => {
|
|
|
576
591
|
});
|
|
577
592
|
|
|
578
593
|
test("publishes the persisted graph memory through the real plugin panel", async () => {
|
|
579
|
-
const graphMemoryModule =
|
|
580
|
-
default: Parameters<Context["plugin"]>[0];
|
|
581
|
-
};
|
|
594
|
+
const graphMemoryModule = await import("@pi-harness/plugin-graph-memory");
|
|
582
595
|
const context = new Context();
|
|
583
596
|
contexts.push(context);
|
|
584
597
|
const agentDir = await mkdtemp(join(tmpdir(), "pi-harness-api-graph-memory-"));
|
|
@@ -622,7 +635,7 @@ describe("API gateway plugin", () => {
|
|
|
622
635
|
});
|
|
623
636
|
|
|
624
637
|
test("publishes a bounded locale parity report through the real plugin panel", async () => {
|
|
625
|
-
const i18nPairModule = (await import(
|
|
638
|
+
const i18nPairModule = (await import("@pi-harness/plugin-i18n-pair")) as {
|
|
626
639
|
default: Parameters<Context["plugin"]>[0];
|
|
627
640
|
};
|
|
628
641
|
const context = new Context();
|
|
@@ -634,7 +647,14 @@ describe("API gateway plugin", () => {
|
|
|
634
647
|
await writeFile(join(workspace, "locales", "en.json"), JSON.stringify({ actions: { save: "Save", cancel: "Cancel" } }), "utf8");
|
|
635
648
|
await writeFile(join(workspace, "locales", "ja.json"), JSON.stringify({ actions: { save: "保存" }, onlyHere: "追加" }), "utf8");
|
|
636
649
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
637
|
-
const session = {
|
|
650
|
+
const session = {
|
|
651
|
+
sessionId: "i18n-panel-session",
|
|
652
|
+
sessionManager: SessionManager.create(workspace, join(agentDir, "sessions")),
|
|
653
|
+
sessionFile: undefined,
|
|
654
|
+
messages: [],
|
|
655
|
+
isStreaming: false,
|
|
656
|
+
subscribe: () => () => {},
|
|
657
|
+
};
|
|
638
658
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
639
659
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
640
660
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir, args: [], requestExit() {} });
|
|
@@ -677,9 +697,7 @@ describe("API gateway plugin", () => {
|
|
|
677
697
|
});
|
|
678
698
|
|
|
679
699
|
test("publishes bounded Git capsule cleanup activity through the real plugin panel", async () => {
|
|
680
|
-
const cleanerModule =
|
|
681
|
-
default: Parameters<Context["plugin"]>[0];
|
|
682
|
-
};
|
|
700
|
+
const cleanerModule = await import("@pi-harness/plugin-cleaner");
|
|
683
701
|
const context = new Context();
|
|
684
702
|
contexts.push(context);
|
|
685
703
|
const agentDir = await mkdtemp(join(tmpdir(), "pi-harness-api-cleaner-agent-"));
|
|
@@ -725,9 +743,7 @@ describe("API gateway plugin", () => {
|
|
|
725
743
|
});
|
|
726
744
|
|
|
727
745
|
test("publishes a bounded isolated SQLite query through the real plugin panel", async () => {
|
|
728
|
-
const sqlLensModule =
|
|
729
|
-
default: Parameters<Context["plugin"]>[0];
|
|
730
|
-
};
|
|
746
|
+
const sqlLensModule = await import("@pi-harness/plugin-sql-lens");
|
|
731
747
|
const context = new Context();
|
|
732
748
|
contexts.push(context);
|
|
733
749
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-sql-lens-workspace-"));
|
|
@@ -737,7 +753,15 @@ describe("API gateway plugin", () => {
|
|
|
737
753
|
database.exec("CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT); INSERT INTO users VALUES (1, 'Ada')");
|
|
738
754
|
database.close();
|
|
739
755
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
740
|
-
const
|
|
756
|
+
const manager = SessionManager.inMemory(workspace);
|
|
757
|
+
const session = {
|
|
758
|
+
sessionId: manager.getSessionId(),
|
|
759
|
+
sessionManager: manager,
|
|
760
|
+
sessionFile: undefined,
|
|
761
|
+
messages: [],
|
|
762
|
+
isStreaming: false,
|
|
763
|
+
subscribe: () => () => {},
|
|
764
|
+
};
|
|
741
765
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
742
766
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
743
767
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir, args: [], requestExit() {} });
|
|
@@ -763,6 +787,7 @@ describe("API gateway plugin", () => {
|
|
|
763
787
|
status: { state: "completed" },
|
|
764
788
|
timeoutMs: 1_500,
|
|
765
789
|
latest: {
|
|
790
|
+
cwd: workspace,
|
|
766
791
|
database: "data.db",
|
|
767
792
|
columns: ["id", "name"],
|
|
768
793
|
rows: [{ id: 1, name: "Ada" }],
|
|
@@ -777,9 +802,7 @@ describe("API gateway plugin", () => {
|
|
|
777
802
|
});
|
|
778
803
|
|
|
779
804
|
test("publishes bounded MCP inventories and limits through the real plugin panel", async () => {
|
|
780
|
-
const mcpClientModule =
|
|
781
|
-
default: Parameters<Context["plugin"]>[0];
|
|
782
|
-
};
|
|
805
|
+
const mcpClientModule = await import("@pi-harness/plugin-mcp-client");
|
|
783
806
|
const context = new Context();
|
|
784
807
|
contexts.push(context);
|
|
785
808
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-mcp-client-workspace-"));
|
|
@@ -792,7 +815,15 @@ describe("API gateway plugin", () => {
|
|
|
792
815
|
"utf8",
|
|
793
816
|
);
|
|
794
817
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
795
|
-
const
|
|
818
|
+
const manager = SessionManager.inMemory(workspace);
|
|
819
|
+
const session = {
|
|
820
|
+
sessionId: manager.getSessionId(),
|
|
821
|
+
sessionManager: manager,
|
|
822
|
+
sessionFile: undefined,
|
|
823
|
+
messages: [],
|
|
824
|
+
isStreaming: false,
|
|
825
|
+
subscribe: () => () => {},
|
|
826
|
+
};
|
|
796
827
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
797
828
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
798
829
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir, args: [], requestExit() {} });
|
|
@@ -844,9 +875,7 @@ describe("API gateway plugin", () => {
|
|
|
844
875
|
});
|
|
845
876
|
|
|
846
877
|
test("publishes a bounded Browser Fetch preview through the real plugin panel", async () => {
|
|
847
|
-
const browserFetchModule =
|
|
848
|
-
default: Parameters<Context["plugin"]>[0];
|
|
849
|
-
};
|
|
878
|
+
const browserFetchModule = await import("@pi-harness/plugin-browser-fetch");
|
|
850
879
|
const context = new Context();
|
|
851
880
|
contexts.push(context);
|
|
852
881
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-browser-fetch-workspace-"));
|
|
@@ -905,9 +934,7 @@ describe("API gateway plugin", () => {
|
|
|
905
934
|
});
|
|
906
935
|
|
|
907
936
|
test("publishes a bounded Browser Session inventory through the real plugin panel", async () => {
|
|
908
|
-
const browserSessionModule =
|
|
909
|
-
default: Parameters<Context["plugin"]>[0];
|
|
910
|
-
};
|
|
937
|
+
const browserSessionModule = await import("@pi-harness/plugin-browser-session");
|
|
911
938
|
const context = new Context();
|
|
912
939
|
contexts.push(context);
|
|
913
940
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-browser-session-workspace-"));
|
|
@@ -973,9 +1000,7 @@ describe("API gateway plugin", () => {
|
|
|
973
1000
|
});
|
|
974
1001
|
|
|
975
1002
|
test("publishes a bounded Plugin Stars inventory through the real plugin panel", async () => {
|
|
976
|
-
const pluginStarsModule =
|
|
977
|
-
default: Parameters<Context["plugin"]>[0];
|
|
978
|
-
};
|
|
1003
|
+
const pluginStarsModule = await import("@pi-harness/plugin-plugin-stars");
|
|
979
1004
|
const originalFetch = globalThis.fetch;
|
|
980
1005
|
const context = new Context();
|
|
981
1006
|
contexts.push(context);
|
|
@@ -992,7 +1017,7 @@ describe("API gateway plugin", () => {
|
|
|
992
1017
|
const tools = new PiToolRegistry();
|
|
993
1018
|
context.reflect.provide("piPluginUi", registry);
|
|
994
1019
|
context.reflect.provide("piTools", tools);
|
|
995
|
-
await context.plugin(pluginStarsModule.default, { limit: 50 });
|
|
1020
|
+
await context.plugin(pluginStarsModule.default, { limit: 50, sourceUrl: "https://raw.githubusercontent.com/pi-harness/fixture/main/plugins.json" });
|
|
996
1021
|
const plugins = Array.from({ length: 25 }, (_, index) => ({
|
|
997
1022
|
id: String(index + 1),
|
|
998
1023
|
name: `fixture-${index}`,
|
|
@@ -1001,7 +1026,7 @@ describe("API gateway plugin", () => {
|
|
|
1001
1026
|
htmlUrl: `https://github.com/owner/fixture-${index}`,
|
|
1002
1027
|
stars: 25 - index,
|
|
1003
1028
|
updatedAt: "2026-09-05T00:00:00Z",
|
|
1004
|
-
topics: ["
|
|
1029
|
+
topics: ["pi-harness-plugin"],
|
|
1005
1030
|
}));
|
|
1006
1031
|
globalThis.fetch = () => Promise.resolve(Response.json({ source: "fixture", generatedAt: "2026-09-05T00:00:00Z", plugins }));
|
|
1007
1032
|
const search = tools.snapshot().customTools.find((tool) => tool.name === "plugin_stars_search");
|
|
@@ -1035,7 +1060,7 @@ describe("API gateway plugin", () => {
|
|
|
1035
1060
|
});
|
|
1036
1061
|
|
|
1037
1062
|
test("publishes bounded YAML diagnostics through the real plugin panel", async () => {
|
|
1038
|
-
const yamlValidatorModule = (await import(
|
|
1063
|
+
const yamlValidatorModule = (await import("@pi-harness/plugin-yaml-validator")) as {
|
|
1039
1064
|
default: Parameters<Context["plugin"]>[0];
|
|
1040
1065
|
};
|
|
1041
1066
|
const context = new Context();
|
|
@@ -1045,7 +1070,14 @@ describe("API gateway plugin", () => {
|
|
|
1045
1070
|
temporaryDirectories.push(workspace, agentDir);
|
|
1046
1071
|
await writeFile(join(workspace, "invalid.yml"), "duplicate: true\n".repeat(102), "utf8");
|
|
1047
1072
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
1048
|
-
const session = {
|
|
1073
|
+
const session = {
|
|
1074
|
+
sessionId: "yaml-validator-panel-session",
|
|
1075
|
+
sessionManager: { getCwd: () => workspace },
|
|
1076
|
+
sessionFile: undefined,
|
|
1077
|
+
messages: [],
|
|
1078
|
+
isStreaming: false,
|
|
1079
|
+
subscribe: () => () => {},
|
|
1080
|
+
};
|
|
1049
1081
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
1050
1082
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
1051
1083
|
context.provide("piHarnessLaunch", { cwd: workspace, agentDir, args: [], requestExit() {} });
|
|
@@ -1084,9 +1116,7 @@ describe("API gateway plugin", () => {
|
|
|
1084
1116
|
});
|
|
1085
1117
|
|
|
1086
1118
|
test("publishes bounded Plugin Dev reload state through the real plugin panel", async () => {
|
|
1087
|
-
const pluginDevModule =
|
|
1088
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1089
|
-
};
|
|
1119
|
+
const pluginDevModule = await import("@pi-harness/plugin-plugin-dev");
|
|
1090
1120
|
const context = new Context();
|
|
1091
1121
|
contexts.push(context);
|
|
1092
1122
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -1140,26 +1170,33 @@ describe("API gateway plugin", () => {
|
|
|
1140
1170
|
});
|
|
1141
1171
|
|
|
1142
1172
|
test("publishes bounded OpenPets state through the real plugin panel", async () => {
|
|
1143
|
-
const openPetsModule = (await import(
|
|
1173
|
+
const openPetsModule = (await import("@pi-harness/plugin-openpets")) as {
|
|
1144
1174
|
default: Parameters<Context["plugin"]>[0];
|
|
1145
1175
|
};
|
|
1146
1176
|
const context = new Context();
|
|
1147
1177
|
contexts.push(context);
|
|
1148
1178
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
1149
1179
|
const entries: unknown[] = [];
|
|
1150
|
-
const
|
|
1180
|
+
const manager = {
|
|
1181
|
+
getHeader: () => null,
|
|
1182
|
+
getEntries: () => entries,
|
|
1183
|
+
appendCustomEntry: (customType: string, data: unknown) => {
|
|
1184
|
+
entries.push({ type: "custom", customType, data });
|
|
1185
|
+
return String(entries.length);
|
|
1186
|
+
},
|
|
1187
|
+
};
|
|
1188
|
+
const session = {
|
|
1189
|
+
sessionId: "openpets-panel-session",
|
|
1190
|
+
sessionManager: manager,
|
|
1191
|
+
sessionFile: undefined,
|
|
1192
|
+
messages: [],
|
|
1193
|
+
isStreaming: false,
|
|
1194
|
+
subscribe: () => () => {},
|
|
1195
|
+
};
|
|
1151
1196
|
context.provide("piRuntime", { session, prompt: () => Promise.resolve() } as never);
|
|
1152
1197
|
context.provide("piModels", { model: { provider: "test", id: "model" } } as never);
|
|
1153
1198
|
context.provide("piHarnessLaunch", { cwd: "/tmp", agentDir: "/tmp/agent", args: [], requestExit() {} });
|
|
1154
|
-
context.provide("piSession", {
|
|
1155
|
-
manager: {
|
|
1156
|
-
getEntries: () => entries,
|
|
1157
|
-
appendCustomEntry: (customType: string, data: unknown) => {
|
|
1158
|
-
entries.push({ type: "custom", customType, data });
|
|
1159
|
-
return String(entries.length);
|
|
1160
|
-
},
|
|
1161
|
-
},
|
|
1162
|
-
} as never);
|
|
1199
|
+
context.provide("piSession", { manager } as never);
|
|
1163
1200
|
const registry = new PiPluginUiRegistry();
|
|
1164
1201
|
const tools = new PiToolRegistry();
|
|
1165
1202
|
context.reflect.provide("piPluginUi", registry);
|
|
@@ -1195,24 +1232,15 @@ describe("API gateway plugin", () => {
|
|
|
1195
1232
|
});
|
|
1196
1233
|
|
|
1197
1234
|
test("publishes bounded Session Bridge previews through the real plugin panel", async () => {
|
|
1198
|
-
const sessionBridgeModule =
|
|
1199
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1200
|
-
};
|
|
1235
|
+
const sessionBridgeModule = await import("@pi-harness/plugin-session-bridge");
|
|
1201
1236
|
const context = new Context();
|
|
1202
1237
|
contexts.push(context);
|
|
1203
1238
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
1204
|
-
const manager =
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
messages: [{ role: "user", content: [{ type: "text", text: "Keep src/index.ts stable." }] }],
|
|
1208
|
-
}),
|
|
1209
|
-
getSessionId: () => "session-bridge-source",
|
|
1210
|
-
getCwd: () => "/workspace",
|
|
1211
|
-
getEntries: () => [],
|
|
1212
|
-
appendCustomMessageEntry: () => "entry",
|
|
1213
|
-
};
|
|
1239
|
+
const manager = SessionManager.inMemory("/workspace");
|
|
1240
|
+
manager.appendModelChange("fixture", "model");
|
|
1241
|
+
manager.appendMessage({ role: "user", content: [{ type: "text", text: "Keep src/index.ts stable." }], timestamp: Date.now() });
|
|
1214
1242
|
const session = {
|
|
1215
|
-
sessionId:
|
|
1243
|
+
sessionId: manager.getSessionId(),
|
|
1216
1244
|
sessionFile: undefined,
|
|
1217
1245
|
messages: [],
|
|
1218
1246
|
isStreaming: false,
|
|
@@ -1244,7 +1272,7 @@ describe("API gateway plugin", () => {
|
|
|
1244
1272
|
data: {
|
|
1245
1273
|
latest: null,
|
|
1246
1274
|
latestPreview: {
|
|
1247
|
-
source: { sessionId:
|
|
1275
|
+
source: { sessionId: manager.getSessionId(), cwd: "/workspace", model: { provider: "fixture", modelId: "model" } },
|
|
1248
1276
|
preview: { goal: "Keep src/index.ts stable.", decisions: ["Keep src/index.ts stable."], keyFiles: ["src/index.ts"] },
|
|
1249
1277
|
},
|
|
1250
1278
|
currentPreview: { goal: "Keep src/index.ts stable." },
|
|
@@ -1267,9 +1295,7 @@ describe("API gateway plugin", () => {
|
|
|
1267
1295
|
});
|
|
1268
1296
|
|
|
1269
1297
|
test("publishes bounded Skill Guard audits through the real plugin panel", async () => {
|
|
1270
|
-
const skillGuardModule =
|
|
1271
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1272
|
-
};
|
|
1298
|
+
const skillGuardModule = await import("@pi-harness/plugin-skill-guard");
|
|
1273
1299
|
const cwd = await mkdtemp(join(tmpdir(), "pi-harness-api-skill-guard-"));
|
|
1274
1300
|
temporaryDirectories.push(cwd);
|
|
1275
1301
|
const skillPath = join(cwd, "SKILL.md");
|
|
@@ -1338,9 +1364,7 @@ describe("API gateway plugin", () => {
|
|
|
1338
1364
|
}, 15_000);
|
|
1339
1365
|
|
|
1340
1366
|
test("publishes bounded Recall Unread inventory through the real plugin panel", async () => {
|
|
1341
|
-
const recallUnreadModule =
|
|
1342
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1343
|
-
};
|
|
1367
|
+
const recallUnreadModule = await import("@pi-harness/plugin-recall-unread");
|
|
1344
1368
|
const workspace = await mkdtemp(join(tmpdir(), "pi-harness-api-recall-unread-workspace-"));
|
|
1345
1369
|
const sessionDir = await mkdtemp(join(tmpdir(), "pi-harness-api-recall-unread-sessions-"));
|
|
1346
1370
|
temporaryDirectories.push(workspace, sessionDir);
|
|
@@ -1422,9 +1446,7 @@ describe("API gateway plugin", () => {
|
|
|
1422
1446
|
});
|
|
1423
1447
|
|
|
1424
1448
|
test("publishes bounded Context Insights through the real plugin panel", async () => {
|
|
1425
|
-
const contextInsightsModule =
|
|
1426
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1427
|
-
};
|
|
1449
|
+
const contextInsightsModule = await import("@pi-harness/plugin-context");
|
|
1428
1450
|
const context = new Context();
|
|
1429
1451
|
contexts.push(context);
|
|
1430
1452
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -1473,9 +1495,7 @@ describe("API gateway plugin", () => {
|
|
|
1473
1495
|
});
|
|
1474
1496
|
|
|
1475
1497
|
test("publishes cached Token Guard state through the real plugin panel", async () => {
|
|
1476
|
-
const tokenGuardModule =
|
|
1477
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1478
|
-
};
|
|
1498
|
+
const tokenGuardModule = await import("@pi-harness/plugin-token-guard");
|
|
1479
1499
|
const context = new Context();
|
|
1480
1500
|
contexts.push(context);
|
|
1481
1501
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -1522,9 +1542,7 @@ describe("API gateway plugin", () => {
|
|
|
1522
1542
|
});
|
|
1523
1543
|
|
|
1524
1544
|
test("publishes the bounded Context Doctor audit through the real plugin panel", async () => {
|
|
1525
|
-
const contextDoctorModule =
|
|
1526
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1527
|
-
};
|
|
1545
|
+
const contextDoctorModule = await import("@pi-harness/plugin-context-doctor");
|
|
1528
1546
|
const context = new Context();
|
|
1529
1547
|
contexts.push(context);
|
|
1530
1548
|
await context.plugin(webServerPlugin, { host: "127.0.0.1", port: 0 });
|
|
@@ -1589,9 +1607,7 @@ describe("API gateway plugin", () => {
|
|
|
1589
1607
|
});
|
|
1590
1608
|
|
|
1591
1609
|
test("publishes bounded current-branch Turn Rewind candidates through the real plugin panel", async () => {
|
|
1592
|
-
const turnRewindModule =
|
|
1593
|
-
default: Parameters<Context["plugin"]>[0];
|
|
1594
|
-
};
|
|
1610
|
+
const turnRewindModule = await import("@pi-harness/plugin-turn-rewind");
|
|
1595
1611
|
const manager = SessionManager.inMemory("/workspace");
|
|
1596
1612
|
const first = manager.appendMessage({ role: "user", content: [{ type: "text", text: "first turn" }], timestamp: Date.now() });
|
|
1597
1613
|
manager.appendMessage({
|
|
@@ -2950,7 +2966,7 @@ describe("API gateway plugin", () => {
|
|
|
2950
2966
|
} finally {
|
|
2951
2967
|
process.env.PATH = originalPath;
|
|
2952
2968
|
}
|
|
2953
|
-
});
|
|
2969
|
+
}, 30_000);
|
|
2954
2970
|
|
|
2955
2971
|
test("reports a git process killed by the output limit as a server failure rather than a rejected commit", async () => {
|
|
2956
2972
|
const context = new Context();
|