pi-harness-runtime 1.1.398 → 1.1.403
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/AGENTS.md +44 -2
- package/CHANGELOG.md +28 -0
- package/RULES.md +28 -0
- package/harness/agent-handoff.ts +2 -3
- package/harness/autonomous-review.ts +1 -1
- package/harness/blackboard.ts +2 -3
- package/harness/context-compact-orchestrator.ts +1 -1
- package/harness/context-window-manager.ts +2 -2
- package/harness/e2e/playwright-runner.ts +6 -4
- package/harness/herdr-agents.ts +1 -1
- package/harness/job-state-machine.ts +1 -1
- package/harness/langchain/daemon.ts +3 -3
- package/harness/langchain/graph.ts +2 -2
- package/harness/langchain/ping-pong-middleware.ts +2 -2
- package/harness/loop-code-agent.ts +6 -4
- package/harness/loop-controller.ts +1 -1
- package/harness/loop-review-agent.ts +1 -1
- package/harness/loop-types.ts +1 -1
- package/harness/master-planner.ts +1 -1
- package/harness/project-detector/detector.ts +1 -2
- package/harness/repair-engine.ts +2 -4
- package/harness/service-diagnostics.ts +1 -1
- package/harness/skill-sync.ts +3 -3
- package/index.ts +276 -55
- package/mirror.ts +1 -1
- package/package.json +5 -3
- package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
- package/packages/a2a-adapter/dist/discovery.js +0 -1
- package/packages/a2a-adapter/dist/discovery.js.map +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/a2a-adapter/src/discovery.ts +0 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/dist/index.d.ts +9 -0
- package/packages/auth/dist/index.d.ts.map +1 -0
- package/packages/auth/dist/index.js +9 -0
- package/packages/auth/dist/index.js.map +1 -0
- package/packages/auth/package.json +1 -1
- package/packages/auth/src/index.ts +9 -0
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/dist/index.d.ts +52 -0
- package/packages/config-capture/dist/index.d.ts.map +1 -0
- package/packages/config-capture/dist/index.js +261 -0
- package/packages/config-capture/dist/index.js.map +1 -0
- package/packages/config-capture/package.json +1 -1
- package/packages/connection-runtime/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/contracts/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/durable-review/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-sink/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/dist/extension.d.ts +15 -0
- package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
- package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
- package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
- package/packages/file-copy-helper/dist/extension.debug.js +215 -0
- package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
- package/packages/file-copy-helper/dist/extension.js +222 -0
- package/packages/file-copy-helper/dist/extension.js.map +1 -0
- package/packages/file-copy-helper/dist/index.d.ts +3 -0
- package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
- package/packages/file-copy-helper/dist/index.js +3 -0
- package/packages/file-copy-helper/dist/index.js.map +1 -0
- package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
- package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
- package/packages/file-copy-helper/dist/intent-detector.js +348 -0
- package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
- package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
- package/packages/jev-judge/dist/auto-continue.js +267 -22
- package/packages/jev-judge/dist/auto-continue.js.map +1 -1
- package/packages/jev-judge/dist/index.d.ts +2 -0
- package/packages/jev-judge/dist/index.d.ts.map +1 -1
- package/packages/jev-judge/dist/index.js +2 -0
- package/packages/jev-judge/dist/index.js.map +1 -1
- package/packages/jev-judge/dist/question-risk.d.ts +53 -0
- package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
- package/packages/jev-judge/dist/question-risk.js +105 -0
- package/packages/jev-judge/dist/question-risk.js.map +1 -0
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/auto-continue.ts +426 -29
- package/packages/jev-judge/src/index.ts +4 -0
- package/packages/jev-judge/src/question-risk.ts +155 -0
- package/packages/jev-judge/tests/auto-continue-context.test.ts +243 -0
- package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
- package/packages/jev-judge/tests/question-risk.test.ts +129 -0
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/logging/README.md +36 -3
- package/packages/logging/dist/config.d.ts +7 -0
- package/packages/logging/dist/config.d.ts.map +1 -1
- package/packages/logging/dist/config.js +14 -0
- package/packages/logging/dist/config.js.map +1 -1
- package/packages/logging/dist/incidents/schema.d.ts +111 -0
- package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
- package/packages/logging/dist/incidents/schema.js +0 -0
- package/packages/logging/dist/incidents/schema.js.map +1 -0
- package/packages/logging/dist/index.d.ts +2 -0
- package/packages/logging/dist/index.d.ts.map +1 -1
- package/packages/logging/dist/index.js +2 -0
- package/packages/logging/dist/index.js.map +1 -1
- package/packages/logging/dist/server/http.d.ts +4 -3
- package/packages/logging/dist/server/http.d.ts.map +1 -1
- package/packages/logging/dist/server/http.js +35 -3
- package/packages/logging/dist/server/http.js.map +1 -1
- package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
- package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
- package/packages/logging/dist/server/incident-qdrant.js +129 -0
- package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
- package/packages/logging/dist/server/incident-store.d.ts +76 -0
- package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
- package/packages/logging/dist/server/incident-store.js +157 -0
- package/packages/logging/dist/server/incident-store.js.map +1 -0
- package/packages/logging/dist/server/index.d.ts +4 -0
- package/packages/logging/dist/server/index.d.ts.map +1 -1
- package/packages/logging/dist/server/index.js +2 -0
- package/packages/logging/dist/server/index.js.map +1 -1
- package/packages/logging/dist/server/service.d.ts +33 -0
- package/packages/logging/dist/server/service.d.ts.map +1 -1
- package/packages/logging/dist/server/service.js +63 -0
- package/packages/logging/dist/server/service.js.map +1 -1
- package/packages/logging/dist/shipper.d.ts +74 -3
- package/packages/logging/dist/shipper.d.ts.map +1 -1
- package/packages/logging/dist/shipper.js +88 -5
- package/packages/logging/dist/shipper.js.map +1 -1
- package/packages/logging/dist/singleton.d.ts.map +1 -1
- package/packages/logging/dist/singleton.js +1 -0
- package/packages/logging/dist/singleton.js.map +1 -1
- package/packages/logging/package.json +1 -1
- package/packages/logging/src/config.ts +22 -0
- package/packages/logging/src/incidents/schema.ts +0 -0
- package/packages/logging/src/index.ts +17 -0
- package/packages/logging/src/server/http.ts +42 -3
- package/packages/logging/src/server/incident-qdrant.ts +177 -0
- package/packages/logging/src/server/incident-store.ts +192 -0
- package/packages/logging/src/server/index.ts +21 -0
- package/packages/logging/src/server/service.ts +79 -0
- package/packages/logging/src/shipper.ts +120 -5
- package/packages/logging/src/singleton.ts +1 -0
- package/packages/logging/test/fanout.test.ts +186 -0
- package/packages/logging/test/incidents.test.ts +404 -0
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/dist/adapters/detail-format.d.ts +10 -2
- package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -1
- package/packages/notification/dist/adapters/detail-format.js +39 -0
- package/packages/notification/dist/adapters/detail-format.js.map +1 -1
- package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
- package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
- package/packages/notification/dist/adapters/line-adapter.js +84 -7
- package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
- package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
- package/packages/notification/dist/adapters/telegram-adapter.js +6 -2
- package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
- package/packages/notification/dist/notification-center.d.ts.map +1 -1
- package/packages/notification/dist/notification-center.js +59 -7
- package/packages/notification/dist/notification-center.js.map +1 -1
- package/packages/notification/dist/pending-question.d.ts +69 -2
- package/packages/notification/dist/pending-question.d.ts.map +1 -1
- package/packages/notification/dist/pending-question.js +88 -2
- package/packages/notification/dist/pending-question.js.map +1 -1
- package/packages/notification/dist/types.d.ts +18 -0
- package/packages/notification/dist/types.d.ts.map +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/notification/src/adapters/detail-format.ts +42 -2
- package/packages/notification/src/adapters/line-adapter.ts +94 -7
- package/packages/notification/src/adapters/telegram-adapter.ts +6 -2
- package/packages/notification/src/notification-center.ts +65 -8
- package/packages/notification/src/pending-question.ts +160 -8
- package/packages/notification/src/types.ts +18 -0
- package/packages/notification/test/approval-payload.test.ts +269 -0
- package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/dist/index.d.ts +9 -0
- package/packages/okf-indexer/dist/index.d.ts.map +1 -0
- package/packages/okf-indexer/dist/index.js +9 -0
- package/packages/okf-indexer/dist/index.js.map +1 -0
- package/packages/okf-indexer/package.json +1 -1
- package/packages/okf-indexer/src/index.ts +9 -0
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/permission-mode/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
- package/packages/provider-router/dist/types.d.ts +2 -2
- package/packages/provider-router/dist/types.d.ts.map +1 -1
- package/packages/provider-router/dist/types.js +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-router/src/types.ts +2 -2
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/relay/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/dist/index.d.ts +9 -0
- package/packages/scheduler/dist/index.d.ts.map +1 -0
- package/packages/scheduler/dist/index.js +9 -0
- package/packages/scheduler/dist/index.js.map +1 -0
- package/packages/scheduler/dist/scheduler.d.ts +17 -0
- package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
- package/packages/scheduler/dist/scheduler.js +41 -0
- package/packages/scheduler/dist/scheduler.js.map +1 -0
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler/src/index.ts +9 -0
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/dist/index.d.ts +7 -0
- package/packages/shared-context/dist/index.d.ts.map +1 -0
- package/packages/shared-context/dist/index.js +7 -0
- package/packages/shared-context/dist/index.js.map +1 -0
- package/packages/shared-context/dist/shared-context.d.ts +12 -0
- package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
- package/packages/shared-context/dist/shared-context.js +39 -0
- package/packages/shared-context/dist/shared-context.js.map +1 -0
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/dist/client.d.ts +56 -0
- package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
- package/packages/skill-mcp-client/dist/client.js +101 -0
- package/packages/skill-mcp-client/dist/client.js.map +1 -0
- package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
- package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
- package/packages/skill-mcp-client/dist/errors.js +68 -0
- package/packages/skill-mcp-client/dist/errors.js.map +1 -0
- package/packages/skill-mcp-client/dist/index.d.ts +9 -0
- package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
- package/packages/skill-mcp-client/dist/index.js +9 -0
- package/packages/skill-mcp-client/dist/index.js.map +1 -0
- package/packages/skill-mcp-client/dist/types.d.ts +106 -0
- package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
- package/packages/skill-mcp-client/dist/types.js +14 -0
- package/packages/skill-mcp-client/dist/types.js.map +1 -0
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -5
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/telegram/src/agent-messages.d.ts +28 -0
- package/packages/telegram/src/agent-messages.js +90 -0
- package/packages/telegram/src/bindings.d.ts +296 -0
- package/packages/telegram/src/bindings.js +1086 -0
- package/packages/telegram/src/bus.d.ts +759 -0
- package/packages/telegram/src/bus.js +2732 -0
- package/packages/telegram/src/commands.d.ts +761 -0
- package/packages/telegram/src/commands.js +2622 -0
- package/packages/telegram/src/config.d.ts +222 -0
- package/packages/telegram/src/config.js +844 -0
- package/packages/telegram/src/delivery.d.ts +161 -0
- package/packages/telegram/src/delivery.js +550 -0
- package/packages/telegram/src/extension.d.ts +7 -0
- package/packages/telegram/src/extension.js +2444 -0
- package/packages/telegram/src/inbound.d.ts +94 -0
- package/packages/telegram/src/inbound.js +478 -0
- package/packages/telegram/src/index.d.ts +6 -0
- package/packages/telegram/src/index.js +6 -0
- package/packages/telegram/src/keyboard.d.ts +21 -0
- package/packages/telegram/src/keyboard.js +37 -0
- package/packages/telegram/src/lifecycle.d.ts +210 -0
- package/packages/telegram/src/lifecycle.js +538 -0
- package/packages/telegram/src/pi.d.ts +76 -0
- package/packages/telegram/src/pi.js +130 -0
- package/packages/telegram/src/polling.d.ts +332 -0
- package/packages/telegram/src/polling.js +1219 -0
- package/packages/telegram/src/replies.d.ts +210 -0
- package/packages/telegram/src/replies.js +752 -0
- package/packages/telegram/src/routing.d.ts +388 -0
- package/packages/telegram/src/routing.js +7886 -0
- package/packages/telegram/src/runtime.d.ts +159 -0
- package/packages/telegram/src/runtime.js +351 -0
- package/packages/telegram/src/telegram-api.d.ts +564 -0
- package/packages/telegram/src/telegram-api.js +1332 -0
- package/packages/telegram/src/turns.d.ts +108 -0
- package/packages/telegram/src/turns.js +482 -0
- package/packages/telegram/src/updates.d.ts +1545 -0
- package/packages/telegram/src/updates.js +6420 -0
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
- package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/detector.js +132 -0
- package/packages/todo-bd-sync/dist/detector.js.map +1 -0
- package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
- package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/extension.js +35 -0
- package/packages/todo-bd-sync/dist/extension.js.map +1 -0
- package/packages/todo-bd-sync/dist/index.d.ts +87 -0
- package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/index.js +296 -0
- package/packages/todo-bd-sync/dist/index.js.map +1 -0
- package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
- package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/sync.js +290 -0
- package/packages/todo-bd-sync/dist/sync.js.map +1 -0
- package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
- package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
- package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
- package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
- package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
- package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
- package/packages/todo-bd-sync/dist/types.d.ts +65 -0
- package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
- package/packages/todo-bd-sync/dist/types.js +67 -0
- package/packages/todo-bd-sync/dist/types.js.map +1 -0
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/dist/index.d.ts +94 -0
- package/packages/token-estimation/dist/index.d.ts.map +1 -0
- package/packages/token-estimation/dist/index.js +115 -0
- package/packages/token-estimation/dist/index.js.map +1 -0
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/dist/ai-providers.d.ts +36 -0
- package/packages/types/dist/ai-providers.d.ts.map +1 -0
- package/packages/types/dist/ai-providers.js +66 -0
- package/packages/types/dist/ai-providers.js.map +1 -0
- package/packages/types/dist/index.d.ts +12 -0
- package/packages/types/dist/index.d.ts.map +1 -0
- package/packages/types/dist/index.js +12 -0
- package/packages/types/dist/index.js.map +1 -0
- package/packages/types/package.json +5 -5
- package/packages/types/src/index.ts +12 -0
- package/packages/voice-api/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/worktree/worktree.ts +1 -1
- package/packages/write-review/package.json +1 -1
- package/renderer.ts +1 -1
- package/scripts/build-packages.ts +162 -0
- package/scripts/relay-client.ts +2 -2
- package/scripts/typecheck-packages.mjs +3 -3
- package/scripts/unified-webhook-server.ts +22 -10
- package/scripts/verify-package-contents.ts +345 -0
- package/scripts/ws-server.ts +1 -1
- package/tracker.ts +1 -1
- package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
- package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
- package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
- package/harness/browser-scrapers/index.d.ts +0 -29
- package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
- package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
- package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
- package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
- package/harness/e2e/browser-scrapers/index.d.ts +0 -30
- package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
- package/harness/langchain/agents.d.ts +0 -143
- package/harness/langchain/agents.test.d.ts +0 -2
- package/harness/langchain/checkpointer.d.ts +0 -48
- package/harness/langchain/checkpointer.test.d.ts +0 -8
- package/harness/langchain/cron-cli.d.ts +0 -12
- package/harness/langchain/daemon.d.ts +0 -161
- package/harness/langchain/daemon.test.d.ts +0 -11
- package/harness/langchain/file-tools.d.ts +0 -97
- package/harness/langchain/graph.d.ts +0 -706
- package/harness/langchain/model-router.d.ts +0 -63
- package/harness/langchain/model-router.test.d.ts +0 -2
- package/harness/langchain/models.d.ts +0 -72
- package/harness/langchain/ping-pong-middleware.d.ts +0 -28
- package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
- package/harness/langchain/run.d.ts +0 -15
- package/harness/langchain/scoreboard.test.d.ts +0 -13
- package/harness/langchain/status-line.d.ts +0 -91
- package/harness/langchain/status-line.test.d.ts +0 -8
- package/harness/langchain/surge.d.ts +0 -111
- package/harness/langchain/surge.test.d.ts +0 -10
- package/harness/langchain/widget.d.ts +0 -105
- package/harness/langchain/widget.test.d.ts +0 -8
- package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
- package/packages/autonomous-runtime/dist/worker.js +0 -133
- package/packages/capability-registry/src/types.d.ts +0 -47
- package/packages/clipboard/dist/clipboard.d.ts +0 -11
- package/packages/clipboard/dist/clipboard.js +0 -40
- package/packages/clipboard/dist/index.d.ts +0 -2
- package/packages/clipboard/dist/index.js +0 -2
- package/packages/clipboard/dist/types.d.ts +0 -13
- package/packages/clipboard/dist/types.js +0 -5
- package/packages/context-discovery/dist/discover.d.ts +0 -3
- package/packages/context-discovery/dist/discover.js +0 -42
- package/packages/context-discovery/dist/discovery.d.ts +0 -28
- package/packages/context-discovery/dist/discovery.js +0 -21
- package/packages/context-discovery/dist/index.d.ts +0 -3
- package/packages/context-discovery/dist/index.js +0 -2
- package/packages/context-discovery/dist/types.d.ts +0 -16
- package/packages/context-discovery/dist/types.js +0 -2
- package/packages/event-bus/dist/bus.d.ts +0 -15
- package/packages/event-bus/dist/bus.js +0 -90
- package/packages/event-bus/dist/index.d.ts +0 -4
- package/packages/event-bus/dist/index.js +0 -3
- package/packages/event-bus/dist/test/bus.test.js +0 -52
- package/packages/event-bus/dist/types.d.ts +0 -27
- package/packages/event-bus/dist/types.js +0 -10
- package/packages/event-store/dist/index.d.ts +0 -3
- package/packages/event-store/dist/index.js +0 -2
- package/packages/event-store/dist/store.d.ts +0 -15
- package/packages/event-store/dist/store.js +0 -131
- package/packages/event-store/dist/test/store.test.js +0 -57
- package/packages/event-store/dist/types.d.ts +0 -48
- package/packages/event-store/dist/types.js +0 -5
- package/packages/event-store/src/types.d.ts +0 -48
- package/packages/file-copy-helper/dist/src/extension.js +0 -186
- package/packages/model-registry/src/types.d.ts +0 -63
- package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
- package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
- package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
- package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
- package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
- package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
- package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
- package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
- package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
- package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
- package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
- package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
- package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
- package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
- package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
- package/packages/notification/dist/src/base-adapter.d.ts +0 -36
- package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
- package/packages/notification/dist/src/base-adapter.js +0 -39
- package/packages/notification/dist/src/base-adapter.js.map +0 -1
- package/packages/notification/dist/src/index.d.ts +0 -12
- package/packages/notification/dist/src/index.d.ts.map +0 -1
- package/packages/notification/dist/src/index.js +0 -12
- package/packages/notification/dist/src/index.js.map +0 -1
- package/packages/notification/dist/src/notification-center.d.ts +0 -89
- package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
- package/packages/notification/dist/src/notification-center.js +0 -356
- package/packages/notification/dist/src/notification-center.js.map +0 -1
- package/packages/notification/dist/src/notification-policy.d.ts +0 -66
- package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
- package/packages/notification/dist/src/notification-policy.js +0 -153
- package/packages/notification/dist/src/notification-policy.js.map +0 -1
- package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
- package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
- package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
- package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
- package/packages/notification/dist/src/types.d.ts +0 -106
- package/packages/notification/dist/src/types.d.ts.map +0 -1
- package/packages/notification/dist/src/types.js +0 -7
- package/packages/notification/dist/src/types.js.map +0 -1
- package/packages/projection-engine/dist/engine.d.ts +0 -61
- package/packages/projection-engine/dist/engine.js +0 -76
- package/packages/projection-engine/dist/index.d.ts +0 -2
- package/packages/projection-engine/dist/index.js +0 -2
- package/packages/projection-engine/dist/project.d.ts +0 -3
- package/packages/projection-engine/dist/project.js +0 -24
- package/packages/projection-engine/dist/types.d.ts +0 -55
- package/packages/projection-engine/dist/types.js +0 -5
- package/packages/projection-engine/src/types.d.ts +0 -55
- package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
- package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
- package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
- package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
- package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
- package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
- package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
- package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
- package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
- package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
- package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
- package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
- package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
- package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
- package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
- package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
- package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
- package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
- package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
- package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
- package/packages/provider-router/dist/provider-router/src/index.js +0 -25
- package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
- package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
- package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
- package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
- package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
- package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
- package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
- package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
- package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
- package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
- package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
- package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
- package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
- package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
- package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
- package/packages/provider-router/dist/provider-router/src/types.js +0 -10
- package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
- package/packages/provider-router/dist/src/index.d.ts +0 -23
- package/packages/provider-router/dist/src/index.d.ts.map +0 -1
- package/packages/provider-router/dist/src/index.js +0 -25
- package/packages/provider-router/dist/src/index.js.map +0 -1
- package/packages/provider-router/dist/src/policy.d.ts +0 -10
- package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
- package/packages/provider-router/dist/src/policy.js +0 -45
- package/packages/provider-router/dist/src/policy.js.map +0 -1
- package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
- package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
- package/packages/provider-router/dist/src/provider-router.js +0 -222
- package/packages/provider-router/dist/src/provider-router.js.map +0 -1
- package/packages/provider-router/dist/src/strategies.d.ts +0 -19
- package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
- package/packages/provider-router/dist/src/strategies.js +0 -110
- package/packages/provider-router/dist/src/strategies.js.map +0 -1
- package/packages/provider-router/dist/src/types.d.ts +0 -91
- package/packages/provider-router/dist/src/types.d.ts.map +0 -1
- package/packages/provider-router/dist/src/types.js +0 -10
- package/packages/provider-router/dist/src/types.js.map +0 -1
- package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
- package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
- package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
- package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
- package/packages/session-api/dist/api.d.ts +0 -83
- package/packages/session-api/dist/api.js +0 -35
- package/packages/session-api/dist/index.d.ts +0 -2
- package/packages/session-api/dist/index.js +0 -2
- package/packages/session-api/dist/types.d.ts +0 -22
- package/packages/session-api/dist/types.js +0 -5
- package/packages/session-export/dist/exporter.d.ts +0 -28
- package/packages/session-export/dist/exporter.js +0 -38
- package/packages/session-export/dist/index.d.ts +0 -2
- package/packages/session-export/dist/index.js +0 -2
- package/packages/session-export/dist/types.d.ts +0 -20
- package/packages/session-export/dist/types.js +0 -5
- package/packages/subscription-engine/dist/engine.d.ts +0 -13
- package/packages/subscription-engine/dist/engine.js +0 -40
- package/packages/subscription-engine/dist/index.d.ts +0 -2
- package/packages/subscription-engine/dist/index.js +0 -2
- package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
- package/packages/subscription-engine/dist/subscriptions.js +0 -32
- package/packages/subscription-engine/dist/types.d.ts +0 -24
- package/packages/subscription-engine/dist/types.js +0 -5
- package/packages/trajectory/test/store.test.d.ts +0 -2
- package/packages/workflow-events/dist/events.d.ts +0 -38
- package/packages/workflow-events/dist/events.js +0 -46
- package/packages/workflow-events/dist/index.d.ts +0 -2
- package/packages/workflow-events/dist/index.js +0 -2
- package/packages/workflow-events/dist/pipeline.d.ts +0 -21
- package/packages/workflow-events/dist/pipeline.js +0 -27
- package/packages/workflow-events/dist/types.d.ts +0 -110
- package/packages/workflow-events/dist/types.js +0 -5
- package/packages/workflow-events/src/types.d.ts +0 -110
package/index.ts
CHANGED
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
} from "./packages/quota-manager/src/tui-usage-monitor.ts";
|
|
60
60
|
import { QuotaManager } from "./packages/quota-manager/src/quota-manager.ts";
|
|
61
61
|
import { buildFooterStatusValue } from "./footer-status.ts";
|
|
62
|
-
import { registerGithubLoginCommand } from "./packages/clipboard/src/github-login.js";
|
|
62
|
+
import { registerGithubLoginCommand } from "./packages/clipboard/dist/src/github-login.js";
|
|
63
63
|
import {
|
|
64
64
|
MAX_PROACTIVE_COMPACT_FAILURES,
|
|
65
65
|
OUTPUT_LIMIT_RESUME_PROMPT,
|
|
@@ -74,9 +74,9 @@ import {
|
|
|
74
74
|
import { aggregateWindows } from "./windows.ts";
|
|
75
75
|
|
|
76
76
|
// Relay client for streaming callbacks (t3code-style two-way communication)
|
|
77
|
-
import { RelayClient } from "./packages/relay/
|
|
77
|
+
import { RelayClient } from "./packages/relay/dist/client.js";
|
|
78
78
|
import type { CallbackPayload } from "./packages/relay/src/types.js";
|
|
79
|
-
import { describeRelayEndpoint, resolveRelayEndpoint } from "./packages/relay/
|
|
79
|
+
import { describeRelayEndpoint, resolveRelayEndpoint } from "./packages/relay/dist/relay-endpoint.js";
|
|
80
80
|
import { renderStatus } from "./renderer.ts";
|
|
81
81
|
import {
|
|
82
82
|
JobStateMachine,
|
|
@@ -237,6 +237,65 @@ const sharedState = {
|
|
|
237
237
|
workspaceEnvMessage: null as string | null,
|
|
238
238
|
};
|
|
239
239
|
|
|
240
|
+
/**
|
|
241
|
+
* Apply an approval decision from a channel to the pending question.
|
|
242
|
+
*
|
|
243
|
+
* Telegram and LINE share this one resolver: the canonical request ID
|
|
244
|
+
* decides, the channel only records where the answer came from. A stale,
|
|
245
|
+
* duplicated or unauthorized click resolves nothing and leaves the running
|
|
246
|
+
* wait untouched.
|
|
247
|
+
*/
|
|
248
|
+
function applyChannelApproval(
|
|
249
|
+
action: string,
|
|
250
|
+
requestId: string,
|
|
251
|
+
channel: "telegram" | "line",
|
|
252
|
+
): boolean {
|
|
253
|
+
const controller = sharedState.pqController;
|
|
254
|
+
if (!controller?.applyApproval) {
|
|
255
|
+
logToFile("[Approval]", "No pending question controller - click ignored");
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const result = controller.applyApproval(action, requestId, channel);
|
|
260
|
+
if (!result?.applied) {
|
|
261
|
+
logToFile(
|
|
262
|
+
"[Approval]",
|
|
263
|
+
`Stale or duplicate ${channel} click for ${requestId}: ${result?.reason ?? "ignored"}`,
|
|
264
|
+
);
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
logToFile("[Approval]", `${channel} decision '${action}' applied to ${requestId}`);
|
|
269
|
+
|
|
270
|
+
// The question is answered, so the wait is over. The wait state is only
|
|
271
|
+
// cleared after a successful resolution.
|
|
272
|
+
sharedState.waitingForUserSince = null;
|
|
273
|
+
sharedState.updateAutoContinueStatus?.("IDLE");
|
|
274
|
+
|
|
275
|
+
if (result.resolution === "yes") {
|
|
276
|
+
(sharedState.todoContinuationController as any)?.resume?.();
|
|
277
|
+
} else {
|
|
278
|
+
(sharedState.todoContinuationController as any)?.explicitPause?.();
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Does the shared wait state still belong to the captured request?
|
|
286
|
+
*
|
|
287
|
+
* A newer question can become active while Jev is evaluating the captured
|
|
288
|
+
* one. Clearing the shared wait state then would stop the Jev checks of
|
|
289
|
+
* the new question, so the state is only cleared when it still belongs to
|
|
290
|
+
* the captured request.
|
|
291
|
+
*/
|
|
292
|
+
function waitBelongsToRequest(requestId: string | undefined): boolean {
|
|
293
|
+
if (!requestId) return true;
|
|
294
|
+
const active = sharedState.pqController?.getCurrentQuestion?.()?.requestId;
|
|
295
|
+
if (!active) return true;
|
|
296
|
+
return active === requestId;
|
|
297
|
+
}
|
|
298
|
+
|
|
240
299
|
async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
241
300
|
addHarnessMessage("Jev", "initializing", "wait");
|
|
242
301
|
try {
|
|
@@ -253,7 +312,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
253
312
|
// Resolve the provider chain. Every credential stays bound to its own
|
|
254
313
|
// provider: a TypeSafe key is never sent to OpenRouter and an OpenRouter
|
|
255
314
|
// key is never sent to the TypeSafe API.
|
|
256
|
-
const { resolveJevProviders } = await import("./packages/jev-judge/dist/index.js");
|
|
315
|
+
const { resolveJevProviders, classifyQuestionRisk } = await import("./packages/jev-judge/dist/index.js");
|
|
257
316
|
const jevProviders = resolveJevProviders({ keysDir });
|
|
258
317
|
|
|
259
318
|
// Create pending question controller - works independently of Jev
|
|
@@ -394,6 +453,13 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
394
453
|
// Set up pending question callback to dispatch answers to Pi
|
|
395
454
|
pqController.onUserAnswer((question, answer) => {
|
|
396
455
|
logToFile("[PendingQuestion]", `User answered: ${answer} for question ${question.requestId}`);
|
|
456
|
+
// The question is answered, so the wait is over. The wait state
|
|
457
|
+
// is cleared here, after a successful resolution: a stale click
|
|
458
|
+
// must never clear a valid pending wait.
|
|
459
|
+
waitingForUserSince = null;
|
|
460
|
+
sharedState.waitingForUserSince = null;
|
|
461
|
+
_lastNotifiedQuestion = "";
|
|
462
|
+
updateAutoContinueStatus("IDLE");
|
|
397
463
|
// Dispatch answer to Pi
|
|
398
464
|
const message = answer === "yes" ? "yes" : "not yet";
|
|
399
465
|
pi.sendUserMessage(message, { deliverAs: "steer" });
|
|
@@ -429,11 +495,26 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
429
495
|
}
|
|
430
496
|
|
|
431
497
|
// Create question in controller
|
|
498
|
+
const questionKind = result.kind || "approval";
|
|
499
|
+
// The risk facts of the proposed action are derived from the
|
|
500
|
+
// question itself and recorded with the request: the
|
|
501
|
+
// autonomous decision is only as safe as these facts.
|
|
502
|
+
const riskFacts = classifyQuestionRisk({
|
|
503
|
+
kind: questionKind,
|
|
504
|
+
text: result.questionText,
|
|
505
|
+
});
|
|
432
506
|
const question = pqController.createQuestion({
|
|
433
507
|
text: result.questionText,
|
|
434
508
|
sessionId: _sessionId,
|
|
435
509
|
workspacePath: _piSessionCwd || "/",
|
|
436
|
-
kind:
|
|
510
|
+
kind: questionKind,
|
|
511
|
+
risk: {
|
|
512
|
+
requiresExplicitAuthorization: riskFacts.requiresExplicitAuthorization,
|
|
513
|
+
destructive: riskFacts.destructive,
|
|
514
|
+
reversible: riskFacts.reversible,
|
|
515
|
+
external: riskFacts.external,
|
|
516
|
+
signals: riskFacts.signals,
|
|
517
|
+
},
|
|
437
518
|
});
|
|
438
519
|
|
|
439
520
|
logToFile("[PendingQuestion]", `Question created: ${question.requestId} - ${result.questionText?.slice(0, 50)}`);
|
|
@@ -457,10 +538,14 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
457
538
|
: "No active tasks";
|
|
458
539
|
const contextInfo = `Waiting: ${waitMinutes}m | ${taskInfo}`;
|
|
459
540
|
|
|
460
|
-
// Emit WaitingForUserInput to Telegram with
|
|
461
|
-
//
|
|
541
|
+
// Emit WaitingForUserInput to Telegram and LINE with the same
|
|
542
|
+
// Yes/No actions. The canonical request ID is the correlation
|
|
543
|
+
// key of the callback: a prefixed jobId would never match the
|
|
544
|
+
// pending question and every click would be reported stale.
|
|
462
545
|
_nc?.notifyWithApproval("WaitingForUserInput", {
|
|
463
|
-
jobId:
|
|
546
|
+
jobId: questionJobId,
|
|
547
|
+
questionId: questionJobId,
|
|
548
|
+
questionKind: question.kind,
|
|
464
549
|
requirement: result.questionText,
|
|
465
550
|
}, {
|
|
466
551
|
approveLabel: "Continue",
|
|
@@ -609,6 +694,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
609
694
|
// Periodic check for auto-continue decision
|
|
610
695
|
const AUTO_CONTINUE_INTERVAL_MS = 60 * 1000; // Check every 1 minute
|
|
611
696
|
const MIN_WAIT_MINUTES = 5; // Minimum wait before auto-continue
|
|
697
|
+
const MAX_WAIT_MINUTES = 30; // After this the work pauses instead of waiting
|
|
612
698
|
|
|
613
699
|
const checkAndAutoContinue = async () => {
|
|
614
700
|
// Prevent overlap if inference is already in progress
|
|
@@ -629,7 +715,8 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
629
715
|
: "";
|
|
630
716
|
|
|
631
717
|
const waitMinutes = (Date.now() - waitingForUserSince.getTime()) / 60000;
|
|
632
|
-
|
|
718
|
+
// The judge is only asked once the question waited long enough.
|
|
719
|
+
if (!mod.isEligibleForDecision?.(waitMinutes, MIN_WAIT_MINUTES)) return;
|
|
633
720
|
|
|
634
721
|
// Update status to checking
|
|
635
722
|
updateAutoContinueStatus("CHECKING", questionHash);
|
|
@@ -681,11 +768,64 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
681
768
|
return;
|
|
682
769
|
}
|
|
683
770
|
|
|
771
|
+
// The question Jev has to decide about. Without it Jev only
|
|
772
|
+
// sees progress, not what the agent asked permission to do.
|
|
773
|
+
const pendingQuestion = sharedState.pqController?.getCurrentQuestion?.();
|
|
774
|
+
// The risk facts of the proposed action. They are recorded
|
|
775
|
+
// with the question; a question without them is classified
|
|
776
|
+
// again, so the safeguards never run on missing facts.
|
|
777
|
+
const riskFacts = pendingQuestion
|
|
778
|
+
? pendingQuestion.requiresExplicitAuthorization !== undefined
|
|
779
|
+
? {
|
|
780
|
+
requiresExplicitAuthorization:
|
|
781
|
+
pendingQuestion.requiresExplicitAuthorization,
|
|
782
|
+
destructive: pendingQuestion.destructive ?? false,
|
|
783
|
+
reversible: pendingQuestion.reversible ?? true,
|
|
784
|
+
external: pendingQuestion.external ?? false,
|
|
785
|
+
}
|
|
786
|
+
: classifyQuestionRisk({
|
|
787
|
+
kind: pendingQuestion.kind,
|
|
788
|
+
text: pendingQuestion.questionText,
|
|
789
|
+
})
|
|
790
|
+
: undefined;
|
|
791
|
+
const questionContext = pendingQuestion
|
|
792
|
+
? {
|
|
793
|
+
requestId: pendingQuestion.requestId,
|
|
794
|
+
text: pendingQuestion.questionText,
|
|
795
|
+
kind: pendingQuestion.kind,
|
|
796
|
+
requiresExplicitAuthorization: riskFacts?.requiresExplicitAuthorization,
|
|
797
|
+
destructive: riskFacts?.destructive,
|
|
798
|
+
external: riskFacts?.external,
|
|
799
|
+
reversible: riskFacts?.reversible,
|
|
800
|
+
}
|
|
801
|
+
: undefined;
|
|
802
|
+
|
|
803
|
+
const decisionContext = {
|
|
804
|
+
question: questionContext,
|
|
805
|
+
currentTask: taskContext.remaining[0],
|
|
806
|
+
completionRatio:
|
|
807
|
+
taskContext.total > 0
|
|
808
|
+
? taskContext.completed.length / taskContext.total
|
|
809
|
+
: 0,
|
|
810
|
+
totalTasks: taskContext.total,
|
|
811
|
+
completedTasks: taskContext.completed.length,
|
|
812
|
+
blockers: [] as string[],
|
|
813
|
+
nextTasks: taskContext.remaining.slice(0, 5),
|
|
814
|
+
validationStatus:
|
|
815
|
+
pendingFinalTier.length > 0
|
|
816
|
+
? `${pendingFinalTier.length} final tier(s) pending`
|
|
817
|
+
: "no pending final tier",
|
|
818
|
+
waitedMinutes: Math.round(waitMinutes),
|
|
819
|
+
deadlineMinutes: MAX_WAIT_MINUTES,
|
|
820
|
+
lastUserActivity: lastUserMessage || undefined,
|
|
821
|
+
};
|
|
822
|
+
|
|
684
823
|
const taskState = mod.createTaskState(
|
|
685
824
|
taskContext.completed,
|
|
686
825
|
taskContext.remaining,
|
|
687
826
|
lastUserMessage || undefined,
|
|
688
827
|
new Date(Date.now() - waitMinutes * 60000),
|
|
828
|
+
decisionContext,
|
|
689
829
|
);
|
|
690
830
|
|
|
691
831
|
const decision = await judge.decide(taskState);
|
|
@@ -716,22 +856,115 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
716
856
|
}
|
|
717
857
|
}
|
|
718
858
|
|
|
719
|
-
|
|
859
|
+
// The typed outcome of the decision. The action is the
|
|
860
|
+
// fallback for a judge that does not know the outcome yet.
|
|
861
|
+
let outcome = decision.outcome;
|
|
862
|
+
if (!outcome) {
|
|
863
|
+
if (decision.action === "proceed") outcome = "approve";
|
|
864
|
+
else if (decision.action === "proceed_with_caution") outcome = "proceed_with_caution";
|
|
865
|
+
else if (decision.action === "reject") outcome = "reject";
|
|
866
|
+
else outcome = "wait";
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
if (outcome === "wait") {
|
|
870
|
+
// A wait decision is bounded: after the deadline the work
|
|
871
|
+
// pauses instead of waiting for a user who is not there.
|
|
872
|
+
// The question stays open: it is not closed with a Jev
|
|
873
|
+
// decision, so the next check can still decide about it.
|
|
874
|
+
logToFile(
|
|
875
|
+
"[auto-continue]",
|
|
876
|
+
`Jev decided to wait (${Math.round(waitMinutes)}m waited, deadline ${MAX_WAIT_MINUTES}m)`,
|
|
877
|
+
);
|
|
878
|
+
if (waitMinutes >= MAX_WAIT_MINUTES) {
|
|
879
|
+
logToFile("[auto-continue]", "Decision deadline reached - pausing the work");
|
|
880
|
+
(sharedState.todoContinuationController as any)?.explicitPause?.();
|
|
881
|
+
// The deadline belongs to the captured question: a newer
|
|
882
|
+
// question keeps its own wait state.
|
|
883
|
+
if (waitBelongsToRequest(questionContext?.requestId)) {
|
|
884
|
+
waitingForUserSince = null;
|
|
885
|
+
sharedState.waitingForUserSince = null;
|
|
886
|
+
updateAutoContinueStatus("IDLE");
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
} else {
|
|
890
|
+
// Close the question with the Jev decision. The buttons of
|
|
891
|
+
// that request ID become stale and no synthetic user
|
|
892
|
+
// answer is injected: nobody clicked anything.
|
|
893
|
+
//
|
|
894
|
+
// A failed close means the request is no longer pending: a
|
|
895
|
+
// human answered while Jev was still evaluating. The
|
|
896
|
+
// human answer wins, so the stale decision is discarded
|
|
897
|
+
// and no continuation steer is sent.
|
|
898
|
+
const closed = questionContext?.requestId
|
|
899
|
+
? sharedState.pqController?.resolveByJev?.(
|
|
900
|
+
questionContext.requestId,
|
|
901
|
+
outcome,
|
|
902
|
+
decision.reasoning,
|
|
903
|
+
) === true
|
|
904
|
+
: false;
|
|
905
|
+
const application = mod.decideOutcomeApplication(outcome, closed);
|
|
906
|
+
|
|
907
|
+
if (application === "discard") {
|
|
908
|
+
logToFile(
|
|
909
|
+
"[auto-continue]",
|
|
910
|
+
"Question is no longer pending - discarding the stale Jev decision",
|
|
911
|
+
);
|
|
912
|
+
_inferenceInProgress = false;
|
|
913
|
+
// The wait state belongs to the captured question: a
|
|
914
|
+
// newer question keeps its own wait.
|
|
915
|
+
if (waitBelongsToRequest(questionContext?.requestId)) {
|
|
916
|
+
waitingForUserSince = null;
|
|
917
|
+
sharedState.waitingForUserSince = null;
|
|
918
|
+
_lastNotifiedQuestion = "";
|
|
919
|
+
updateAutoContinueStatus("IDLE");
|
|
920
|
+
} else {
|
|
921
|
+
logToFile(
|
|
922
|
+
"[auto-continue]",
|
|
923
|
+
"A newer question is active - keeping its wait state",
|
|
924
|
+
);
|
|
925
|
+
}
|
|
926
|
+
return;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
if (application === "pause") {
|
|
930
|
+
// Jev refused the proposed action. The question is
|
|
931
|
+
// closed and the work pauses: no continuation steer
|
|
932
|
+
// is sent, so the agent waits for a human.
|
|
933
|
+
logToFile(
|
|
934
|
+
"[auto-continue]",
|
|
935
|
+
`Question ${questionContext?.requestId} closed by Jev (reject) - pausing the work`,
|
|
936
|
+
);
|
|
937
|
+
(sharedState.todoContinuationController as any)?.explicitPause?.();
|
|
938
|
+
if (waitBelongsToRequest(questionContext?.requestId)) {
|
|
939
|
+
waitingForUserSince = null;
|
|
940
|
+
sharedState.waitingForUserSince = null;
|
|
941
|
+
_lastNotifiedQuestion = "";
|
|
942
|
+
updateAutoContinueStatus("IDLE");
|
|
943
|
+
}
|
|
944
|
+
return;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
logToFile(
|
|
948
|
+
"[auto-continue]",
|
|
949
|
+
`Question ${questionContext?.requestId} closed by Jev (${outcome})`,
|
|
950
|
+
);
|
|
951
|
+
|
|
720
952
|
// Update status to continuing
|
|
721
953
|
updateAutoContinueStatus("CONTINUING", questionHash);
|
|
722
954
|
|
|
723
955
|
// Send steer message to continue
|
|
724
956
|
pi.sendUserMessage(
|
|
725
|
-
|
|
957
|
+
outcome === "approve"
|
|
726
958
|
? "User is unavailable. Based on task progress and low risk, proceeding autonomously.\n" +
|
|
727
|
-
|
|
728
|
-
|
|
959
|
+
`Decision: ${decision.reasoning}\n` +
|
|
960
|
+
"Continue with remaining tasks."
|
|
729
961
|
: "User is unavailable. Proceeding with caution - will log each significant step.\n" +
|
|
730
|
-
|
|
731
|
-
|
|
962
|
+
`Risk level: ${decision.riskLevel}\n` +
|
|
963
|
+
"Continue with remaining tasks, reporting progress.",
|
|
732
964
|
{ deliverAs: "steer" },
|
|
733
965
|
);
|
|
734
966
|
waitingForUserSince = null;
|
|
967
|
+
sharedState.waitingForUserSince = null;
|
|
735
968
|
_lastNotifiedQuestion = "";
|
|
736
969
|
|
|
737
970
|
// Clear status after short delay
|
|
@@ -1151,7 +1384,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
|
1151
1384
|
// Lazy import - only loads when packages/todo-bd-sync exists
|
|
1152
1385
|
async function initTodoBdSync(pi: ExtensionAPI): Promise<void> {
|
|
1153
1386
|
try {
|
|
1154
|
-
const mod = await import("./packages/todo-bd-sync/
|
|
1387
|
+
const mod = await import("./packages/todo-bd-sync/dist/extension.js");
|
|
1155
1388
|
mod.registerTodoBdSync(pi);
|
|
1156
1389
|
} catch {
|
|
1157
1390
|
// todo-bd-sync not available
|
|
@@ -1162,7 +1395,7 @@ async function initTodoBdSync(pi: ExtensionAPI): Promise<void> {
|
|
|
1162
1395
|
// Lazy import - only loads when packages/config-capture exists
|
|
1163
1396
|
async function initConfigCapture(pi: ExtensionAPI): Promise<void> {
|
|
1164
1397
|
try {
|
|
1165
|
-
const mod = await import("./packages/config-capture/
|
|
1398
|
+
const mod = await import("./packages/config-capture/dist/index.js");
|
|
1166
1399
|
mod.registerConfigCapture(pi, { debug: false });
|
|
1167
1400
|
} catch {
|
|
1168
1401
|
// config-capture not available
|
|
@@ -1174,11 +1407,11 @@ async function initConfigCapture(pi: ExtensionAPI): Promise<void> {
|
|
|
1174
1407
|
async function initQdrant(): Promise<void> {
|
|
1175
1408
|
addHarnessMessage("Qdrant", "checking configuration", "wait");
|
|
1176
1409
|
try {
|
|
1177
|
-
const { getQdrantConfig } = await import("./packages/skills/
|
|
1410
|
+
const { getQdrantConfig } = await import("./packages/skills/dist/loader.js");
|
|
1178
1411
|
const cfg = getQdrantConfig();
|
|
1179
1412
|
if (cfg) {
|
|
1180
1413
|
// Check if OpenAI embedding key is available
|
|
1181
|
-
const { getOpenAIApiKey } = await import("./packages/qdrant-skills/
|
|
1414
|
+
const { getOpenAIApiKey } = await import("./packages/qdrant-skills/dist/embedder.js");
|
|
1182
1415
|
const embeddingKey = getOpenAIApiKey();
|
|
1183
1416
|
if (embeddingKey) {
|
|
1184
1417
|
logStartup("[pi-harness] Qdrant vector search ready");
|
|
@@ -1550,41 +1783,21 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
|
|
|
1550
1783
|
|
|
1551
1784
|
switch (parsed.action) {
|
|
1552
1785
|
case CallbackActions.APPROVE: {
|
|
1553
|
-
//
|
|
1786
|
+
// The user clicked Continue. The request ID in the
|
|
1787
|
+
// callback data is the canonical one, so the click
|
|
1788
|
+
// resolves exactly this question.
|
|
1554
1789
|
logToFile("[TelegramCallback] Approved - user clicked Continue, resuming work");
|
|
1555
|
-
|
|
1556
|
-
sharedState.updateAutoContinueStatus?.("IDLE");
|
|
1557
|
-
// Resolve pending question with yes, validating request ID (first-answer-wins)
|
|
1558
|
-
const approved = sharedState.pqController?.resolve({
|
|
1559
|
-
resolution: "yes",
|
|
1560
|
-
by: "user",
|
|
1561
|
-
requestId: parsed.targetId,
|
|
1562
|
-
});
|
|
1563
|
-
if (!approved) {
|
|
1564
|
-
logToFile("[TelegramCallback] WARNING: APPROVE button ignored - stale or mismatched request ID");
|
|
1790
|
+
if (!applyChannelApproval(parsed.action, parsed.targetId, "telegram")) {
|
|
1565
1791
|
await acknowledge("Stale button - no pending question to approve");
|
|
1566
|
-
break;
|
|
1567
1792
|
}
|
|
1568
|
-
// Also resume continuation controller
|
|
1569
|
-
(sharedState.todoContinuationController as any)?.resume?.();
|
|
1570
1793
|
break;
|
|
1571
1794
|
}
|
|
1572
1795
|
case CallbackActions.REJECT: {
|
|
1573
|
-
//
|
|
1796
|
+
// The user clicked Not yet - dismiss and pause.
|
|
1574
1797
|
logToFile("[TelegramCallback] Rejected - user clicked Not yet, pausing");
|
|
1575
|
-
|
|
1576
|
-
const rejected = sharedState.pqController?.resolve({
|
|
1577
|
-
resolution: "no",
|
|
1578
|
-
by: "user",
|
|
1579
|
-
requestId: parsed.targetId,
|
|
1580
|
-
});
|
|
1581
|
-
if (!rejected) {
|
|
1582
|
-
logToFile("[TelegramCallback] WARNING: REJECT button ignored - stale or mismatched request ID");
|
|
1798
|
+
if (!applyChannelApproval(parsed.action, parsed.targetId, "telegram")) {
|
|
1583
1799
|
await acknowledge("Stale button - no pending question to reject");
|
|
1584
|
-
break;
|
|
1585
1800
|
}
|
|
1586
|
-
// Explicitly pause the continuation
|
|
1587
|
-
(sharedState.todoContinuationController as any)?.explicitPause?.();
|
|
1588
1801
|
break;
|
|
1589
1802
|
}
|
|
1590
1803
|
default:
|
|
@@ -2052,6 +2265,12 @@ async function initRelayStream(): Promise<void> {
|
|
|
2052
2265
|
: `Callback: ${callback.action} ${callback.targetId}`,
|
|
2053
2266
|
);
|
|
2054
2267
|
|
|
2268
|
+
// A LINE postback is the same decision as a Telegram button
|
|
2269
|
+
// click: one resolver, the same canonical request ID.
|
|
2270
|
+
if (callback.type === "line_callback") {
|
|
2271
|
+
applyChannelApproval(callback.action, callback.targetId, "line");
|
|
2272
|
+
}
|
|
2273
|
+
|
|
2055
2274
|
// Forward Telegram callbacks to the adapter
|
|
2056
2275
|
if (callback.type === "telegram_callback" && _relayTelegramAdapter) {
|
|
2057
2276
|
// The mapping is a pure function (harness/telegram-update.ts) so
|
|
@@ -2499,7 +2718,7 @@ function initMoocodingSyncHint(): void {
|
|
|
2499
2718
|
// Lazy import - only loads when packages/write-review exists
|
|
2500
2719
|
async function initWriteReview(pi: ExtensionAPI): Promise<void> {
|
|
2501
2720
|
try {
|
|
2502
|
-
const mod = await import("./packages/write-review/
|
|
2721
|
+
const mod = await import("./packages/write-review/dist/index.js");
|
|
2503
2722
|
mod.injectWriterInstructions(pi);
|
|
2504
2723
|
} catch {
|
|
2505
2724
|
// write-review not available
|
|
@@ -2512,7 +2731,7 @@ async function initFileCopyHelper(_pi: ExtensionAPI): Promise<void> {
|
|
|
2512
2731
|
// DISABLED: File copy helper appends large suffix to every prompt
|
|
2513
2732
|
// but agent doesn't read it properly. Re-enable when fixed.
|
|
2514
2733
|
// try {
|
|
2515
|
-
// const mod = await import("./packages/file-copy-helper/
|
|
2734
|
+
// const mod = await import("./packages/file-copy-helper/dist/extension.js");
|
|
2516
2735
|
// mod.registerFileCopyHelper(_pi);
|
|
2517
2736
|
// } catch {
|
|
2518
2737
|
// file-copy-helper not available
|
|
@@ -2528,8 +2747,8 @@ async function initFileCopyHelper(_pi: ExtensionAPI): Promise<void> {
|
|
|
2528
2747
|
// - harness_rules tool for rule retrieval and acknowledgement
|
|
2529
2748
|
async function initAgentPolicy(pi: ExtensionAPI): Promise<void> {
|
|
2530
2749
|
try {
|
|
2531
|
-
const { registerAgentPolicy } = await import("./packages/agent-policy/
|
|
2532
|
-
const { resetPolicyStore } = await import("./packages/agent-policy/
|
|
2750
|
+
const { registerAgentPolicy } = await import("./packages/agent-policy/dist/extension.js");
|
|
2751
|
+
const { resetPolicyStore } = await import("./packages/agent-policy/dist/policy-store.js");
|
|
2533
2752
|
resetPolicyStore(); // Auto-reset so new sessions don't need re-acknowledgment
|
|
2534
2753
|
registerAgentPolicy(pi, {
|
|
2535
2754
|
harnessRulesPath: new URL("./AGENTS.md", import.meta.url),
|
|
@@ -2557,7 +2776,7 @@ async function initAgentPolicy(pi: ExtensionAPI): Promise<void> {
|
|
|
2557
2776
|
// Loads curated notes at session start for Hermes-style memory
|
|
2558
2777
|
async function initMemory(pi: ExtensionAPI): Promise<void> {
|
|
2559
2778
|
try {
|
|
2560
|
-
const { getGlobalMemoryStore } = await import("./packages/trajectory/src/memory-store.js");
|
|
2779
|
+
const { getGlobalMemoryStore } = await import("./packages/trajectory/dist/src/memory-store.js");
|
|
2561
2780
|
const memoryStore = getGlobalMemoryStore();
|
|
2562
2781
|
|
|
2563
2782
|
logToFile("[memory]", "Memory store initialized");
|
|
@@ -2790,7 +3009,7 @@ async function initHermesSkills(pi: ExtensionAPI): Promise<void> {
|
|
|
2790
3009
|
try {
|
|
2791
3010
|
// Dynamically import to avoid circular deps
|
|
2792
3011
|
const { initSkills } =
|
|
2793
|
-
await import("./packages/skills/
|
|
3012
|
+
await import("./packages/skills/dist/index.js");
|
|
2794
3013
|
|
|
2795
3014
|
// Scan skills from default locations
|
|
2796
3015
|
const result = initSkills();
|
|
@@ -2799,7 +3018,7 @@ async function initHermesSkills(pi: ExtensionAPI): Promise<void> {
|
|
|
2799
3018
|
|
|
2800
3019
|
// Register /skill commands
|
|
2801
3020
|
try {
|
|
2802
|
-
const { initSkillCommands } = await import("./packages/skills/
|
|
3021
|
+
const { initSkillCommands } = await import("./packages/skills/dist/skill-commands.js");
|
|
2803
3022
|
initSkillCommands(pi);
|
|
2804
3023
|
logStartup("[pi-harness] Registered skill commands");
|
|
2805
3024
|
|
|
@@ -4357,7 +4576,7 @@ Run \`bd ready\` to see current bd issues.
|
|
|
4357
4576
|
}
|
|
4358
4577
|
if (mode !== "tui") return;
|
|
4359
4578
|
const { createHarnessFooter } = await import(
|
|
4360
|
-
"./packages/tui/
|
|
4579
|
+
"./packages/tui/dist/harness-footer.js"
|
|
4361
4580
|
);
|
|
4362
4581
|
ctx.ui.setFooter((tui, theme, footerData) =>
|
|
4363
4582
|
createHarnessFooter(tui, theme, footerData, {
|
|
@@ -5262,7 +5481,7 @@ Run \`bd ready\` to see current bd issues.
|
|
|
5262
5481
|
ctx.ui.setHeader(undefined);
|
|
5263
5482
|
ctx.ui.notify("Built-in Pi header restored.", "info");
|
|
5264
5483
|
} else if (mode === "harness" || mode === "" || mode === "") {
|
|
5265
|
-
const { createHarnessHeader } = await import("./packages/tui/
|
|
5484
|
+
const { createHarnessHeader } = await import("./packages/tui/dist/harness-header.js");
|
|
5266
5485
|
ctx.ui.setHeader((tui, theme) =>
|
|
5267
5486
|
createHarnessHeader(tui, theme, {
|
|
5268
5487
|
version: HARNESS_VERSION,
|
|
@@ -5610,7 +5829,9 @@ Run \`bd ready\` to see current bd issues.
|
|
|
5610
5829
|
pi.sendUserMessage(content, { deliverAs });
|
|
5611
5830
|
await nc("ResumeScheduled", {
|
|
5612
5831
|
requirement: "Session auto-resume",
|
|
5613
|
-
|
|
5832
|
+
// A resume trigger is not a failure. It renders as
|
|
5833
|
+
// "Trigger: Context compacted", never as "Error: ...".
|
|
5834
|
+
trigger: reason,
|
|
5614
5835
|
});
|
|
5615
5836
|
} catch (error) {
|
|
5616
5837
|
logToFile(
|
package/mirror.ts
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* Models live here: `~/.pi/usage-status/mirror.json`.
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
-
import { getMirrorPath, readJson, writeJson } from "./cli.
|
|
33
|
+
import { getMirrorPath, readJson, writeJson } from "./cli.js";
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Canonical lowercase provider ids — mirrors the KNOWN_AI_PROVIDERS from
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-harness-runtime",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.403",
|
|
4
4
|
"description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
"auth:minimax:scrape": "bun packages/auth/src/run-minimax-auth.ts scrape",
|
|
19
19
|
"skills:sync": "bun scripts/skills-sync.ts",
|
|
20
20
|
"skills:sync:check": "bun scripts/skills-sync.ts --check-only",
|
|
21
|
-
"build": "
|
|
22
|
-
"
|
|
21
|
+
"build": "bun scripts/build-packages.ts",
|
|
22
|
+
"build:verify": "bun scripts/verify-package-contents.ts",
|
|
23
|
+
"build:verify:pack": "bun scripts/verify-package-contents.ts --pack",
|
|
24
|
+
"prepublishOnly": "bun run build && bun run build:verify:pack",
|
|
23
25
|
"test:harness": "node scripts/run-langchain-tests.mjs",
|
|
24
26
|
"test:packages": "bun test packages/",
|
|
25
27
|
"test:e2e": "PI_HARNESS_E2E=1 bun test e2e/",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iCAAiC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,qBAAqB;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAE9E;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAY;IAExB,YAAY,MAAM,EAAE,kBAAkB,EASrC;IAED,YAAY,IAAI,SAAS,CAExB;CACF;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAE9B;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,IAAI,SAAS,EAAE,CAElB;IAED,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAK/C;CACF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQ1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAQ7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqB7C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,IAAI,CAAY;IAExB,YAAY,MAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,eAAe;YAC7D,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,QAAQ,CAAC,IAAe;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,QAA6B;QAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,QAAQ,CAAC,IAAI,EAAwB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB;IACrD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAA6B,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Advertises agent capabilities and handles agent registry.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { fetch } from "undici";
|
|
8
7
|
import type { AgentSearchCriteria } from "./client.js";
|
|
9
8
|
import { createAgentCard } from "./agent.js";
|
|
10
9
|
import type { AgentCard, AgentCapabilities, Skill, Authentication } from "./types.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point of the browser authentication app.
|
|
3
|
+
*
|
|
4
|
+
* The barrel exists so that the published `pi-harness-runtime` package can
|
|
5
|
+
* import the built file (`dist/index.js`) instead of a source path that only
|
|
6
|
+
* exists on a developer machine.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./minimax-browser-auth.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point of the browser authentication app.
|
|
3
|
+
*
|
|
4
|
+
* The barrel exists so that the published `pi-harness-runtime` package can
|
|
5
|
+
* import the built file (`dist/index.js`) instead of a source path that only
|
|
6
|
+
* exists on a developer machine.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./minimax-browser-auth.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,2BAA2B,CAAC"}
|