@pi-harness/pi-harness 0.1.31 → 0.1.32
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-BqOM0elx.css +2 -0
- package/apps/web/dist/assets/index-x2UhIAWm.js +25 -0
- package/apps/web/dist/index.html +2 -2
- package/apps/web/package.json +1 -1
- package/apps/web/server-dist/bin.js +11 -3
- package/apps/web/server-dist/bin.js.map +1 -1
- package/apps/web/src/server/bin.ts +10 -2
- package/apps/web/src/style.css +27 -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 +28 -7
- package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -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/annotation.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 -9
- 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-fetch.json +1 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.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/context-doctor.json +1 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +1 -7
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-timer.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 +2 -10
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
- 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 +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
- 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 +2 -8
- 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 +2 -8
- 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 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
- 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 -9
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
- 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 -9
- 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 -9
- 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 +2 -9
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
- 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 +2 -10
- 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 -9
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
- 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 -7
- 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 +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +18 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +93 -10
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -1
- package/node_modules/@pi-harness/api-gateway/package.json +1 -1
- package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@pi-harness/cli/dist/main.js +19 -3
- package/node_modules/@pi-harness/cli/dist/main.js.map +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 +28 -7
- package/packages/api-gateway/dist/index.js.map +1 -1
- 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/annotation.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 -9
- 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-fetch.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
- package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.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/context-doctor.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/context.json +1 -7
- package/packages/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/cordis-timer.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 +2 -10
- package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
- package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
- package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +2 -8
- 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 +2 -8
- 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 -8
- package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
- 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 -9
- package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
- package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
- 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 -9
- 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 -9
- 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 +2 -9
- package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
- 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 +2 -10
- 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 -9
- package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
- 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 -7
- 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 +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
- package/packages/api-gateway/dist/marketplace.d.ts +18 -2
- package/packages/api-gateway/dist/marketplace.d.ts.map +1 -1
- package/packages/api-gateway/dist/marketplace.js +93 -10
- package/packages/api-gateway/dist/marketplace.js.map +1 -1
- package/packages/api-gateway/package.json +1 -1
- package/packages/api-gateway/src/index.ts +31 -7
- 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/annotation.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 -9
- 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-fetch.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +1 -9
- package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.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/context-doctor.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/context.json +1 -7
- package/packages/api-gateway/src/marketplace-entries/official/cordis-group.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/cordis-logger-console.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/cordis-timer.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 +2 -10
- package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -9
- package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/genui.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -7
- package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +2 -8
- 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 +2 -8
- 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 -8
- package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +2 -2
- 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 -9
- package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -8
- package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +2 -2
- 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 -9
- 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 -9
- 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 +2 -9
- package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -8
- 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 +2 -10
- 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 -9
- package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -8
- 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 -7
- 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 +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -7
- package/packages/api-gateway/src/marketplace.ts +113 -12
- package/packages/api-gateway/test/index.test.ts +140 -3
- package/packages/api-gateway/test/marketplace-schema.test.ts +12 -0
- package/packages/api-gateway/test/marketplace.test.ts +172 -240
- package/packages/bundle-web-app/package.json +1 -1
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +19 -3
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/cli/src/main.ts +18 -3
- package/packages/cli/test/cli.test.ts +20 -0
- package/packages/host-webserver/package.json +1 -1
- package/apps/web/dist/assets/index-D9ZcvGXi.js +0 -25
- package/apps/web/dist/assets/index-DJsNIiIo.css +0 -2
|
@@ -32,7 +32,8 @@ interface ApiServices {
|
|
|
32
32
|
readonly pluginUi: PiPluginUiRegistry | undefined;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
// The first paint waits for every console endpoint to answer, so the catalogue is sorted from whatever npm statistics are already cached and the misses are warmed in the background instead of held on to.
|
|
36
|
+
const { readCached: readCachedMarketplaceStatistics } = createMarketplaceStatisticsLoader();
|
|
36
37
|
|
|
37
38
|
const RUNTIME_ENTRY_NAME = "@pi-harness/core/plugins/runtime";
|
|
38
39
|
|
|
@@ -43,6 +44,8 @@ const IMPORT_BODY_LIMIT_BYTES = 16 * 1024 * 1024;
|
|
|
43
44
|
// Retained trajectory events are replayed to every SSE client and returned by /api/session, so the array must stay bounded.
|
|
44
45
|
const MAX_RETAINED_EVENTS = 2000;
|
|
45
46
|
const GIT_TIMEOUT_MS = 15_000;
|
|
47
|
+
const PROCESS_FAILURE_TEXT_LIMIT = 400;
|
|
48
|
+
const PROCESS_TIMEOUT_MS = 120_000;
|
|
46
49
|
// Mutating commands run user hooks (pre-commit, lint-staged, test suites) and may stage large trees; killing them part-way leaves index.lock and a half-finished operation behind, so they get a far more generous bound than read-only queries.
|
|
47
50
|
const GIT_MUTATION_TIMEOUT_MS = 120_000;
|
|
48
51
|
|
|
@@ -95,10 +98,14 @@ function jsonSafe(value: unknown, seen = new WeakSet<object>()): unknown {
|
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
|
|
101
|
+
// A plugin that contributes tools only joins on the next start, so the console remembers what it installed until then. That memory is about one particular process, and the console cannot tell a restart from a reconnect on its own, so the identity of this process rides along with the status it already polls.
|
|
102
|
+
const PROCESS_STARTED_AT = new Date(Date.now() - Math.round(process.uptime() * 1000)).toISOString();
|
|
103
|
+
|
|
98
104
|
function createStatus(services: ApiServices, events: readonly AgentSessionEvent[]) {
|
|
99
105
|
const activeModel = services.runtime.session.model ?? services.models.model;
|
|
100
106
|
const cwd = activeCwd(services);
|
|
101
107
|
return {
|
|
108
|
+
processStartedAt: PROCESS_STARTED_AT,
|
|
102
109
|
status: services.runtime.session.isStreaming ? "running" : "ready",
|
|
103
110
|
model: activeModel.provider + "/" + activeModel.id,
|
|
104
111
|
messages: services.runtime.session.messages.length,
|
|
@@ -470,11 +477,28 @@ function registerPluginPanels(context: Context, services: ApiServices): () => vo
|
|
|
470
477
|
return () => disposers.reverse().forEach((dispose) => dispose());
|
|
471
478
|
}
|
|
472
479
|
|
|
480
|
+
// npm ends every failure with the path to a debug log inside its own cache, which the reader of this console has no reason to open and no easy way to reach.
|
|
481
|
+
const PROCESS_FAILURE_NOISE = /^npm (error|ERR!) A complete log of this run can be found in:/u;
|
|
482
|
+
|
|
483
|
+
// npm reports a failure over many lines and the whole text is shown to someone who never typed the command, so the lines are joined up to a character budget and the command itself stays on the cause for diagnostics. Node's own message is never used as the fallback: it reads `Command failed: <the whole command line>`, which is exactly what this is removing.
|
|
484
|
+
function processFailureText(executable: string, stderr: string, error: ExecFileException): string {
|
|
485
|
+
const text = stderr
|
|
486
|
+
.split(/\r?\n/u)
|
|
487
|
+
.map((line) => line.trim())
|
|
488
|
+
.filter((line) => line !== "" && !PROCESS_FAILURE_NOISE.test(line))
|
|
489
|
+
.join(" ");
|
|
490
|
+
if (text === "")
|
|
491
|
+
return error.killed === true
|
|
492
|
+
? `${executable} was stopped after ${PROCESS_TIMEOUT_MS / 1000}s`
|
|
493
|
+
: `${executable} exited with code ${error.code ?? "unknown"} and reported nothing`;
|
|
494
|
+
return text.length <= PROCESS_FAILURE_TEXT_LIMIT ? text : text.slice(0, PROCESS_FAILURE_TEXT_LIMIT) + "…";
|
|
495
|
+
}
|
|
496
|
+
|
|
473
497
|
function runProcess(executable: string, args: readonly string[], cwd: string): Promise<{ stdout: string; stderr: string }> {
|
|
474
498
|
return new Promise((resolveProcess, rejectProcess) => {
|
|
475
|
-
execFile(executable, [...args], { cwd, timeout:
|
|
499
|
+
execFile(executable, [...args], { cwd, timeout: PROCESS_TIMEOUT_MS, maxBuffer: 2 * 1024 * 1024 }, (error, stdout, stderr) => {
|
|
476
500
|
if (error) {
|
|
477
|
-
rejectProcess(new Error(`${executable} ${args.join(" ")}
|
|
501
|
+
rejectProcess(new Error(processFailureText(executable, stderr, error), { cause: { command: `${executable} ${args.join(" ")}`, error } }));
|
|
478
502
|
return;
|
|
479
503
|
}
|
|
480
504
|
resolveProcess({ stdout, stderr });
|
|
@@ -1096,7 +1120,7 @@ export default {
|
|
|
1096
1120
|
});
|
|
1097
1121
|
const disposeMarketplace = services.webServer.register({
|
|
1098
1122
|
path: "/api/marketplace",
|
|
1099
|
-
|
|
1123
|
+
handler(request, response) {
|
|
1100
1124
|
if (request.method !== "GET") {
|
|
1101
1125
|
sendJson(response, 405, { error: "Method not allowed" });
|
|
1102
1126
|
return;
|
|
@@ -1123,10 +1147,10 @@ export default {
|
|
|
1123
1147
|
return;
|
|
1124
1148
|
}
|
|
1125
1149
|
const filtered = searchMarketplace(query, capability, category);
|
|
1150
|
+
const cached = readCachedMarketplaceStatistics(MARKETPLACE_PLUGINS);
|
|
1151
|
+
// Recommendation is only applied once the whole catalogue has been looked up. Scoring a half-warm cache would reorder the grid under the reader's cursor on every poll as the background lookups land, which costs more than the few seconds the first sort is delayed.
|
|
1126
1152
|
const items =
|
|
1127
|
-
sort === "recommended"
|
|
1128
|
-
? sortMarketplaceByRecommendation(attachMarketplaceStatistics(filtered, await loadMarketplaceStatistics(MARKETPLACE_PLUGINS)))
|
|
1129
|
-
: filtered;
|
|
1153
|
+
sort === "recommended" && cached.ready ? sortMarketplaceByRecommendation(attachMarketplaceStatistics(filtered, cached.statistics)) : filtered;
|
|
1130
1154
|
sendJson(response, 200, {
|
|
1131
1155
|
...paginateMarketplace(items, page, pageSize),
|
|
1132
1156
|
capabilities: MARKETPLACE_CAPABILITIES,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "collaboration",
|
|
14
14
|
"label": "会话协作"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
17
17
|
"hooks": ["session lifecycle", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-agent-teams",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "security",
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only"],
|
|
17
17
|
"hooks": ["session events", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-anchored-standard",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "developer",
|
|
14
14
|
"label": "开发工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "runs-commands"],
|
|
17
17
|
"hooks": ["workspace files", "package manifest", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-archify",
|
|
@@ -13,15 +13,7 @@
|
|
|
13
13
|
"id": "context",
|
|
14
14
|
"label": "上下文管理"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"256 KiB strict UTF-8 text attachments",
|
|
18
|
-
"canonical workspace path confinement",
|
|
19
|
-
"no-follow regular-file reads",
|
|
20
|
-
"untrusted context framing",
|
|
21
|
-
"closing-tag neutralization",
|
|
22
|
-
"cancellable sequential execution",
|
|
23
|
-
"descriptor-safe normalized panel"
|
|
24
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "reads-files"],
|
|
25
17
|
"hooks": ["file context tool", "workspace file read", "plugin UI"],
|
|
26
18
|
"profile": {
|
|
27
19
|
"name": "@pi-harness/plugin-at-file",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "security",
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "runs-commands"],
|
|
17
17
|
"hooks": ["argv execution", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-auto-mode",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "developer",
|
|
14
14
|
"label": "开发工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["session-data", "reads-files", "runs-commands"],
|
|
17
17
|
"hooks": ["workspace scan", "read-only Git", "session manager", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-better-sidebar",
|
|
@@ -13,14 +13,7 @@
|
|
|
13
13
|
"id": "web",
|
|
14
14
|
"label": "网页与研究"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"bounded textual HTTP fetch",
|
|
18
|
-
"DNS rebinding protection",
|
|
19
|
-
"per-hop SSRF validation",
|
|
20
|
-
"cancellable request lifecycle",
|
|
21
|
-
"bounded browser preview",
|
|
22
|
-
"validated fail-closed panel reporting"
|
|
23
|
-
],
|
|
16
|
+
"capabilities": ["network-access"],
|
|
24
17
|
"hooks": ["network request", "plugin UI"],
|
|
25
18
|
"profile": {
|
|
26
19
|
"name": "@pi-harness/plugin-browser-fetch",
|
|
@@ -13,14 +13,7 @@
|
|
|
13
13
|
"id": "web",
|
|
14
14
|
"label": "网页与研究"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"loopback-only CDP endpoint",
|
|
18
|
-
"bounded tab discovery",
|
|
19
|
-
"navigation read click and screenshot tools",
|
|
20
|
-
"cancellable request lifecycle",
|
|
21
|
-
"bounded panel previews",
|
|
22
|
-
"validated fail-closed panel reporting"
|
|
23
|
-
],
|
|
16
|
+
"capabilities": ["network-access"],
|
|
24
17
|
"hooks": ["browser session tools", "Chrome DevTools Protocol", "plugin UI"],
|
|
25
18
|
"profile": {
|
|
26
19
|
"name": "@pi-harness/plugin-browser-session",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "multimodal",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "视觉与多模态"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only"],
|
|
17
17
|
"hooks": ["plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-canvas-draw",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only"],
|
|
17
17
|
"hooks": ["project scripts", "Git diff", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-change-verifier",
|
|
@@ -13,15 +13,7 @@
|
|
|
13
13
|
"id": "developer",
|
|
14
14
|
"label": "开发工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"strict configuration and parameters",
|
|
18
|
-
"bounded capsule inventory",
|
|
19
|
-
"display-safe capsule filtering",
|
|
20
|
-
"confirmed retention cleanup",
|
|
21
|
-
"symlink and replacement defenses",
|
|
22
|
-
"cancellable serialized cleanup",
|
|
23
|
-
"fail-closed normalized panel"
|
|
24
|
-
],
|
|
16
|
+
"capabilities": ["reads-files", "writes-files"],
|
|
25
17
|
"hooks": ["capsule cleanup tool", "agent capsule directory", "plugin UI"],
|
|
26
18
|
"profile": {
|
|
27
19
|
"name": "@pi-harness/plugin-cleaner",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["runs-commands"],
|
|
17
17
|
"hooks": ["agent end", "compaction error", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-cli-notifier",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "tools",
|
|
14
14
|
"label": "工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files"],
|
|
17
17
|
"hooks": ["workspace files", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-code2skill",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
17
17
|
"hooks": ["session storage", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-colleague-skill",
|
|
@@ -13,14 +13,7 @@
|
|
|
13
13
|
"id": "observability",
|
|
14
14
|
"label": "可观测性"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"descriptor-safe bounded context audit",
|
|
18
|
-
"pressure oversized uninspectable and tool-error diagnostics",
|
|
19
|
-
"confirmed settled-session compaction",
|
|
20
|
-
"dedicated compaction cancellation",
|
|
21
|
-
"single-flight bounded operation status",
|
|
22
|
-
"cached normalized panel"
|
|
23
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
24
17
|
"hooks": ["context doctor tool", "session messages and usage", "Pi session lifecycle", "manual compaction", "plugin UI"],
|
|
25
18
|
"profile": {
|
|
26
19
|
"name": "@pi-harness/plugin-context-doctor",
|
|
@@ -13,13 +13,7 @@
|
|
|
13
13
|
"id": "context",
|
|
14
14
|
"label": "上下文管理"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"descriptor-safe bounded message composition",
|
|
18
|
-
"resilient context usage inspection",
|
|
19
|
-
"active-session lifecycle counters",
|
|
20
|
-
"cached session-aware panel",
|
|
21
|
-
"bounded normalized browser view"
|
|
22
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
23
17
|
"hooks": ["context inspection tool", "active runtime session", "Pi session lifecycle", "plugin UI"],
|
|
24
18
|
"profile": {
|
|
25
19
|
"name": "@pi-harness/plugin-context",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"source": "official",
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": { "id": "composition", "label": "组合编排" },
|
|
13
|
-
"capabilities": ["
|
|
13
|
+
"capabilities": ["read-only"],
|
|
14
14
|
"hooks": ["loader entry tree"],
|
|
15
15
|
"profile": { "name": "@deepseek-ai/cordis-plugin-group", "group": true, "config": [] }
|
|
16
16
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"source": "official",
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": { "id": "observability", "label": "可观测性" },
|
|
13
|
-
"capabilities": ["
|
|
13
|
+
"capabilities": ["read-only"],
|
|
14
14
|
"hooks": ["Cordis logger exporter", "plugin UI"],
|
|
15
15
|
"profile": { "name": "@deepseek-ai/cordis-plugin-logger-console", "config": { "levels": { "default": 2 }, "maxLength": 8192 } }
|
|
16
16
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"source": "official",
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": { "id": "runtime", "label": "运行时" },
|
|
13
|
-
"capabilities": ["
|
|
13
|
+
"capabilities": ["read-only"],
|
|
14
14
|
"hooks": ["Cordis timer service", "plugin UI"],
|
|
15
15
|
"profile": { "name": "@deepseek-ai/cordis-plugin-timer", "config": {} }
|
|
16
16
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "observability",
|
|
14
14
|
"label": "可观测性"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["session-data", "reads-files", "writes-files"],
|
|
17
17
|
"hooks": ["agent end", "cost report tool", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-cost-meter",
|
|
@@ -11,17 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "developer",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "开发工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"2000-declaration local presence scan",
|
|
18
|
-
"4096-entry workspace-contained virtualenv scan",
|
|
19
|
-
"npm common-intersection conflict detection",
|
|
20
|
-
"bounded Python numeric constraint analysis",
|
|
21
|
-
"unresolved constraint and directive reporting",
|
|
22
|
-
"optional dependency reporting",
|
|
23
|
-
"descriptor-safe normalized panel"
|
|
24
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "reads-files"],
|
|
25
17
|
"hooks": ["dependency check tool", "workspace manifest read", "plugin UI"],
|
|
26
18
|
"profile": {
|
|
27
19
|
"name": "@pi-harness/plugin-dependency-checker",
|
|
@@ -13,15 +13,7 @@
|
|
|
13
13
|
"id": "security",
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"local-only image execution",
|
|
18
|
-
"no-network containers",
|
|
19
|
-
"read-only workspace by default",
|
|
20
|
-
"CPU memory and PID limits",
|
|
21
|
-
"sanitized bounded output",
|
|
22
|
-
"strict panel reporting",
|
|
23
|
-
"cancellation cleanup"
|
|
24
|
-
],
|
|
16
|
+
"capabilities": ["reads-files", "writes-files", "runs-commands"],
|
|
25
17
|
"hooks": ["sandbox execution tool", "Docker CLI", "plugin UI"],
|
|
26
18
|
"profile": {
|
|
27
19
|
"name": "@pi-harness/plugin-docker-sandbox",
|
|
@@ -13,14 +13,7 @@
|
|
|
13
13
|
"id": "observability",
|
|
14
14
|
"label": "可观测性"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"bounded failure aggregation",
|
|
18
|
-
"descriptor-safe event inspection",
|
|
19
|
-
"abort-aware compaction diagnostics",
|
|
20
|
-
"occurrence counting",
|
|
21
|
-
"safe diagnostic summaries",
|
|
22
|
-
"capacity visibility"
|
|
23
|
-
],
|
|
16
|
+
"capabilities": ["read-only"],
|
|
24
17
|
"hooks": ["extension error", "agent end", "compaction end", "plugin UI"],
|
|
25
18
|
"profile": {
|
|
26
19
|
"name": "@pi-harness/plugin-fail-logger",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "interface",
|
|
14
14
|
"label": "界面增强"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only"],
|
|
17
17
|
"hooks": ["GenUI render tool", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-genui",
|
|
@@ -13,14 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"byte-exact validated unstaged diff capture",
|
|
18
|
-
"exclusive no-clobber capsule publication",
|
|
19
|
-
"confirmed deterministic reverse apply",
|
|
20
|
-
"bounded 256-capsule inventory",
|
|
21
|
-
"cancellable serialized Git operations",
|
|
22
|
-
"descriptor-safe normalized panel"
|
|
23
|
-
],
|
|
16
|
+
"capabilities": ["reads-files", "writes-files", "runs-commands"],
|
|
24
17
|
"hooks": ["Git snapshot tool", "Git restore tool", "plugin UI"],
|
|
25
18
|
"profile": {
|
|
26
19
|
"name": "@pi-harness/plugin-git-time-capsule",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "memory",
|
|
14
14
|
"label": "记忆与上下文"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files"],
|
|
17
17
|
"hooks": ["graph memory tools", "local graph file", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-graph-memory",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "context",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "上下文管理"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
17
17
|
"hooks": ["agent end", "context usage", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-history-compressor",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "security",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "安全"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only"],
|
|
17
17
|
"hooks": ["tool execution", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-hol-guard",
|
|
@@ -13,13 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"collision-safe locale key parity",
|
|
18
|
-
"strict bounded workspace-only JSON reads",
|
|
19
|
-
"no-follow symbolic-link safety",
|
|
20
|
-
"stable sequential cancellable inspection",
|
|
21
|
-
"validated bounded panel reporting"
|
|
22
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "reads-files"],
|
|
23
17
|
"hooks": ["i18n check tool", "workspace locale files", "plugin UI"],
|
|
24
18
|
"profile": {
|
|
25
19
|
"name": "@pi-harness/plugin-i18n-pair",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "multimodal",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "视觉与多模态"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files"],
|
|
17
17
|
"hooks": ["workspace files", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-image-compressor",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "testing",
|
|
14
14
|
"label": "测试与质量"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["model
|
|
16
|
+
"capabilities": ["model-calls"],
|
|
17
17
|
"hooks": ["model runtime", "structured verdict", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-llm-verifier",
|
|
@@ -11,15 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "tools",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"bounded MCP stdio transport",
|
|
18
|
-
"bounded inventory pagination",
|
|
19
|
-
"tool resource and prompt bridging",
|
|
20
|
-
"persistent server lifecycle",
|
|
21
|
-
"cancellable queued requests"
|
|
22
|
-
],
|
|
16
|
+
"capabilities": ["runs-commands"],
|
|
23
17
|
"hooks": ["MCP stdio tools", "managed server lifecycle", "plugin UI"],
|
|
24
18
|
"profile": {
|
|
25
19
|
"name": "@pi-harness/plugin-mcp-client",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "tools",
|
|
14
14
|
"label": "工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files", "runs-commands"],
|
|
17
17
|
"hooks": ["MCP runtime", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-mcp-panel",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "tools",
|
|
14
14
|
"label": "工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["runs-commands"],
|
|
17
17
|
"hooks": ["Mirage CLI", "argv execution", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-mirage-bridge",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "tools",
|
|
14
14
|
"label": "工具"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["local-server"],
|
|
17
17
|
"hooks": ["local HTTP server", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-mock-server",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "multimodal",
|
|
14
14
|
"label": "视觉与多模态"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files", "runs-commands"],
|
|
17
17
|
"hooks": ["tool execution", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-modlens",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "discovery",
|
|
14
14
|
"label": "发现与生态"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["read-only", "reads-files"],
|
|
17
17
|
"hooks": ["workspace files", "source scanning", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-module-search",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["reads-files", "writes-files"],
|
|
17
17
|
"hooks": ["vault path", "plugin UI"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-obsidian-sync",
|
|
@@ -11,15 +11,9 @@
|
|
|
11
11
|
"status": "verified",
|
|
12
12
|
"category": {
|
|
13
13
|
"id": "web",
|
|
14
|
-
"label": "
|
|
14
|
+
"label": "网页与研究"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": [
|
|
17
|
-
"bounded durable companion state",
|
|
18
|
-
"validated session recovery",
|
|
19
|
-
"descriptor-safe pet actions",
|
|
20
|
-
"session event reactions",
|
|
21
|
-
"persistence health panel"
|
|
22
|
-
],
|
|
16
|
+
"capabilities": ["read-only", "session-data"],
|
|
23
17
|
"hooks": ["session events", "pet reaction tool", "session storage", "plugin UI"],
|
|
24
18
|
"profile": {
|
|
25
19
|
"name": "@pi-harness/plugin-openpets",
|