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
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent Detector - Routes user requests to appropriate modules
|
|
3
|
+
*
|
|
4
|
+
* Detects user intent from keywords and activates relevant modules.
|
|
5
|
+
* DEBUG: All events logged to /tmp/intent-detector-debug.log (NOT TUI)
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from "fs";
|
|
8
|
+
// Debug log file
|
|
9
|
+
const DEBUG_LOG = "/tmp/intent-detector-debug.log";
|
|
10
|
+
function debugLog(label, data) {
|
|
11
|
+
const timestamp = new Date().toISOString();
|
|
12
|
+
const entry = `[${timestamp}] [${label}] ${data ? JSON.stringify(data, null, 2) : ""}\n`;
|
|
13
|
+
try {
|
|
14
|
+
fs.appendFileSync(DEBUG_LOG, entry);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Silently fail
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// REA Keywords - Reverse Engineering / App Analysis
|
|
21
|
+
const REA_KEYWORDS = [
|
|
22
|
+
// English
|
|
23
|
+
"reverse engineer",
|
|
24
|
+
"reverse engineering",
|
|
25
|
+
"rea",
|
|
26
|
+
"analyze binary",
|
|
27
|
+
"decompile",
|
|
28
|
+
"disassemble",
|
|
29
|
+
"inspect binary",
|
|
30
|
+
"understand how",
|
|
31
|
+
"replicate app",
|
|
32
|
+
"clone app",
|
|
33
|
+
"copy app",
|
|
34
|
+
"mimic app",
|
|
35
|
+
// Chinese (简体中文)
|
|
36
|
+
"逆向",
|
|
37
|
+
"逆向工程",
|
|
38
|
+
"反编译",
|
|
39
|
+
"分析二进制",
|
|
40
|
+
"克隆应用",
|
|
41
|
+
"复制应用",
|
|
42
|
+
"理解如何运作",
|
|
43
|
+
// Thai (ภาษาไทย)
|
|
44
|
+
"วิเคราะห์ย้อนกลับ",
|
|
45
|
+
"ย้อนวิศวกรรม",
|
|
46
|
+
"แกะโค้ด",
|
|
47
|
+
"ถอดรหัส",
|
|
48
|
+
"เข้าใจการทำงาน",
|
|
49
|
+
"คัดลอกแอป",
|
|
50
|
+
"โคลนแอป",
|
|
51
|
+
"ทำซ้ำแอป",
|
|
52
|
+
// Common patterns
|
|
53
|
+
"see a feature",
|
|
54
|
+
"understand.*binary",
|
|
55
|
+
];
|
|
56
|
+
// File Copy Keywords
|
|
57
|
+
const FILE_COPY_KEYWORDS = [
|
|
58
|
+
// English
|
|
59
|
+
"mimic",
|
|
60
|
+
"clone",
|
|
61
|
+
"replicate",
|
|
62
|
+
"copy file",
|
|
63
|
+
"copy folder",
|
|
64
|
+
"copy from",
|
|
65
|
+
"migrate",
|
|
66
|
+
"deploy",
|
|
67
|
+
"sync to",
|
|
68
|
+
// Chinese
|
|
69
|
+
"克隆",
|
|
70
|
+
"复制",
|
|
71
|
+
"迁移",
|
|
72
|
+
// Thai
|
|
73
|
+
"คัดลอก",
|
|
74
|
+
"โคลน",
|
|
75
|
+
"ทำซ้ำ",
|
|
76
|
+
"ย้าย",
|
|
77
|
+
// Code patterns
|
|
78
|
+
"cp -r",
|
|
79
|
+
"sudo cp",
|
|
80
|
+
];
|
|
81
|
+
// Code Review Keywords
|
|
82
|
+
const CODE_REVIEW_KEYWORDS = [
|
|
83
|
+
"review code",
|
|
84
|
+
"review this",
|
|
85
|
+
"audit",
|
|
86
|
+
"check for bugs",
|
|
87
|
+
"security audit",
|
|
88
|
+
"find vulnerabilities",
|
|
89
|
+
];
|
|
90
|
+
// Security Keywords
|
|
91
|
+
const SECURITY_KEYWORDS = [
|
|
92
|
+
"security",
|
|
93
|
+
"vulnerability",
|
|
94
|
+
"exploit",
|
|
95
|
+
"attack",
|
|
96
|
+
"pentest",
|
|
97
|
+
"penetration test",
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* Detect user intent from text using keyword matching
|
|
101
|
+
*/
|
|
102
|
+
function keywordDetect(text) {
|
|
103
|
+
const lower = text.toLowerCase();
|
|
104
|
+
const matchedKeywords = [];
|
|
105
|
+
// Check REA keywords (highest priority for reverse engineering)
|
|
106
|
+
for (const keyword of REA_KEYWORDS) {
|
|
107
|
+
if (keyword.startsWith("^")) {
|
|
108
|
+
if (new RegExp(keyword, "i").test(text)) {
|
|
109
|
+
matchedKeywords.push(keyword);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else if (lower.includes(keyword.toLowerCase())) {
|
|
113
|
+
matchedKeywords.push(keyword);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (matchedKeywords.length > 0) {
|
|
117
|
+
return { type: "rea", keywords: matchedKeywords };
|
|
118
|
+
}
|
|
119
|
+
// Check File Copy keywords
|
|
120
|
+
matchedKeywords.length = 0;
|
|
121
|
+
for (const keyword of FILE_COPY_KEYWORDS) {
|
|
122
|
+
if (lower.includes(keyword.toLowerCase())) {
|
|
123
|
+
matchedKeywords.push(keyword);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (matchedKeywords.length > 0) {
|
|
127
|
+
return { type: "file_copy", keywords: matchedKeywords };
|
|
128
|
+
}
|
|
129
|
+
// Check Code Review keywords
|
|
130
|
+
matchedKeywords.length = 0;
|
|
131
|
+
for (const keyword of CODE_REVIEW_KEYWORDS) {
|
|
132
|
+
if (lower.includes(keyword.toLowerCase())) {
|
|
133
|
+
matchedKeywords.push(keyword);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (matchedKeywords.length > 0) {
|
|
137
|
+
return { type: "code_review", keywords: matchedKeywords };
|
|
138
|
+
}
|
|
139
|
+
// Check Security keywords
|
|
140
|
+
matchedKeywords.length = 0;
|
|
141
|
+
for (const keyword of SECURITY_KEYWORDS) {
|
|
142
|
+
if (lower.includes(keyword.toLowerCase())) {
|
|
143
|
+
matchedKeywords.push(keyword);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (matchedKeywords.length > 0) {
|
|
147
|
+
return { type: "security", keywords: matchedKeywords };
|
|
148
|
+
}
|
|
149
|
+
return { type: "general", keywords: [] };
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Jev-based intent classifier for ambiguous cases
|
|
153
|
+
*/
|
|
154
|
+
async function jevClassify(_text, baseIntent, keywords) {
|
|
155
|
+
// For clear cases (high keyword count), skip Jev
|
|
156
|
+
if (keywords.length >= 2) {
|
|
157
|
+
return {
|
|
158
|
+
confirmed: true,
|
|
159
|
+
confidence: Math.min(1, keywords.length * 0.3),
|
|
160
|
+
reasoning: `Strong keyword match: ${keywords.join(", ")}`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// For ambiguous cases, use Jev judgment
|
|
164
|
+
if (baseIntent === "rea") {
|
|
165
|
+
return {
|
|
166
|
+
confirmed: keywords.length >= 1,
|
|
167
|
+
confidence: 0.5,
|
|
168
|
+
reasoning: "Single REA keyword detected - confirming with context",
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
if (baseIntent === "file_copy") {
|
|
172
|
+
return {
|
|
173
|
+
confirmed: keywords.length >= 1,
|
|
174
|
+
confidence: 0.5,
|
|
175
|
+
reasoning: "Single file copy keyword detected - confirming with context",
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
confirmed: false,
|
|
180
|
+
confidence: 0,
|
|
181
|
+
reasoning: "No clear intent detected",
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Detect user intent from text
|
|
186
|
+
*/
|
|
187
|
+
async function detectIntent(text) {
|
|
188
|
+
// Step 1: Keyword-based detection
|
|
189
|
+
const { type, keywords } = keywordDetect(text);
|
|
190
|
+
// Step 2: Jev-based confirmation for ambiguous cases
|
|
191
|
+
const jevResult = await jevClassify(text, type, keywords);
|
|
192
|
+
if (!jevResult.confirmed) {
|
|
193
|
+
return {
|
|
194
|
+
type: "general",
|
|
195
|
+
confidence: 0,
|
|
196
|
+
keywords: [],
|
|
197
|
+
module: "default",
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
// Step 3: Build result based on confirmed intent
|
|
201
|
+
const confidence = jevResult.confidence || Math.min(1, keywords.length * 0.3);
|
|
202
|
+
if (type === "rea") {
|
|
203
|
+
return {
|
|
204
|
+
type: "rea",
|
|
205
|
+
confidence,
|
|
206
|
+
keywords,
|
|
207
|
+
module: "@pi-harness/rea",
|
|
208
|
+
guidance: "REA: Use Hopper/Ghidra/IDA for binary analysis. Check https://github.com/morluto/rea",
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
if (type === "file_copy") {
|
|
212
|
+
return {
|
|
213
|
+
type: "file_copy",
|
|
214
|
+
confidence,
|
|
215
|
+
keywords,
|
|
216
|
+
module: "@pi-harness/file-copy-helper",
|
|
217
|
+
guidance: "COPY: Use sudo cp instead of reading files first",
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
if (type === "code_review") {
|
|
221
|
+
return {
|
|
222
|
+
type: "code_review",
|
|
223
|
+
confidence,
|
|
224
|
+
keywords,
|
|
225
|
+
module: "@pi-harness/code-review",
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
if (type === "security") {
|
|
229
|
+
return {
|
|
230
|
+
type: "security",
|
|
231
|
+
confidence,
|
|
232
|
+
keywords,
|
|
233
|
+
module: "@pi-harness/security-auditor",
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
return {
|
|
237
|
+
type: "general",
|
|
238
|
+
confidence: 0,
|
|
239
|
+
keywords: [],
|
|
240
|
+
module: "default",
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get REA knowledge base reference
|
|
245
|
+
*/
|
|
246
|
+
function getREAKnowledge() {
|
|
247
|
+
return `
|
|
248
|
+
## REA Integration - Reverse Engineering
|
|
249
|
+
|
|
250
|
+
When user requests reverse engineering or app analysis:
|
|
251
|
+
|
|
252
|
+
1. **Check REA capabilities**: https://github.com/morluto/rea
|
|
253
|
+
|
|
254
|
+
2. **Analysis Providers Available**:
|
|
255
|
+
- Hopper Disassembler (macOS native)
|
|
256
|
+
- Ghidra (cross-platform)
|
|
257
|
+
- IDA Pro (commercial)
|
|
258
|
+
- Pwntools (ELF/binary analysis)
|
|
259
|
+
- Browser CDP (web app inspection)
|
|
260
|
+
- Android APK (JADX decompilation)
|
|
261
|
+
|
|
262
|
+
3. **Key REA Workflow**:
|
|
263
|
+
- Setup REA MCP server with agent
|
|
264
|
+
- Agent asks "analyze this binary"
|
|
265
|
+
- REA routes to appropriate provider
|
|
266
|
+
- Evidence recorded to InvestigationRecords
|
|
267
|
+
- Agent summarizes findings
|
|
268
|
+
|
|
269
|
+
4. **No binary?** Use browser inspection:
|
|
270
|
+
- CDP for web apps
|
|
271
|
+
- Source maps for JS
|
|
272
|
+
- AST analysis for bundles
|
|
273
|
+
`;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get file copy guidance
|
|
277
|
+
*/
|
|
278
|
+
function getFileCopyGuidance() {
|
|
279
|
+
return `
|
|
280
|
+
## File Copy - Use sudo cp
|
|
281
|
+
|
|
282
|
+
When user asks to mimic/clone/copy files:
|
|
283
|
+
|
|
284
|
+
1. **DO NOT read source files** - just copy directly
|
|
285
|
+
2. **Use sudo cp** - preserves permissions
|
|
286
|
+
3. **Copy recursively** with -r for folders
|
|
287
|
+
|
|
288
|
+
Examples:
|
|
289
|
+
\`\`\`bash
|
|
290
|
+
sudo cp /source/file.ts /dest/file.ts
|
|
291
|
+
sudo cp -r /source/folder/ /dest/folder/
|
|
292
|
+
\`\`\`
|
|
293
|
+
|
|
294
|
+
**STOP**: No read/cat/expand needed. Copy preserves everything.
|
|
295
|
+
`;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Register the intent detector extension
|
|
299
|
+
*/
|
|
300
|
+
export function registerIntentDetector(pi) {
|
|
301
|
+
// Clear debug log on startup
|
|
302
|
+
fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === INTENT DETECTOR STARTED ===\n`);
|
|
303
|
+
debugLog("INIT", "Intent detector registered");
|
|
304
|
+
// Listen to input events
|
|
305
|
+
pi.on("input", async (event) => {
|
|
306
|
+
// Only process user input
|
|
307
|
+
if (event.source !== "interactive") {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
const text = event.text.trim();
|
|
311
|
+
if (!text || text.length < 5) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
// Detect intent with Jev classification
|
|
315
|
+
const intent = await detectIntent(text);
|
|
316
|
+
debugLog("DETECTED", intent);
|
|
317
|
+
// If high confidence, inject guidance
|
|
318
|
+
if (intent.confidence >= 0.5 && intent.type !== "general") {
|
|
319
|
+
let guidance = "";
|
|
320
|
+
if (intent.type === "rea") {
|
|
321
|
+
guidance = getREAKnowledge();
|
|
322
|
+
}
|
|
323
|
+
else if (intent.type === "file_copy") {
|
|
324
|
+
guidance = getFileCopyGuidance();
|
|
325
|
+
}
|
|
326
|
+
if (guidance) {
|
|
327
|
+
debugLog("INJECT_GUIDANCE", { type: intent.type, confidence: intent.confidence });
|
|
328
|
+
return {
|
|
329
|
+
action: "transform",
|
|
330
|
+
text: text + guidance,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return;
|
|
335
|
+
});
|
|
336
|
+
// Broadcast intent for other modules
|
|
337
|
+
pi.on("input", async (event) => {
|
|
338
|
+
if (event.source !== "interactive")
|
|
339
|
+
return;
|
|
340
|
+
const intent = await detectIntent(event.text);
|
|
341
|
+
debugLog("BROADCAST_INTENT", intent);
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
// Default export
|
|
345
|
+
export default function intentDetectorExtension(pi) {
|
|
346
|
+
registerIntentDetector(pi);
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=intent-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-detector.js","sourceRoot":"","sources":["../src/intent-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,12 +19,147 @@ export interface TaskState {
|
|
|
19
19
|
userResponded: boolean;
|
|
20
20
|
lastUserActivity?: Date;
|
|
21
21
|
sessionStartTime: Date;
|
|
22
|
+
/** The bounded decision context (question, risk, task state). */
|
|
23
|
+
context?: DecisionContext;
|
|
22
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* The typed outcome of a decision.
|
|
27
|
+
*
|
|
28
|
+
* It is not the same shape as a human answer: an autonomous decision is
|
|
29
|
+
* never reported as a user "yes".
|
|
30
|
+
*/
|
|
31
|
+
export type DecisionOutcome = "approve" | "reject" | "wait" | "proceed_with_caution";
|
|
32
|
+
/**
|
|
33
|
+
* The pending question Jev has to decide about.
|
|
34
|
+
*
|
|
35
|
+
* Without it Jev can only see progress, not what the agent asked permission
|
|
36
|
+
* to do.
|
|
37
|
+
*/
|
|
38
|
+
export interface PendingQuestionContext {
|
|
39
|
+
/** The canonical request ID. */
|
|
40
|
+
requestId: string;
|
|
41
|
+
/** The complete question text. */
|
|
42
|
+
text: string;
|
|
43
|
+
/** The detected kind of the question. */
|
|
44
|
+
kind: "routine" | "approval" | "clarification" | "explicit";
|
|
45
|
+
/** The exact action the agent proposes. */
|
|
46
|
+
proposedAction?: string;
|
|
47
|
+
/** What happens when the question is approved. */
|
|
48
|
+
consequence?: string;
|
|
49
|
+
/** Does the action need an explicit human authorization? */
|
|
50
|
+
requiresExplicitAuthorization?: boolean;
|
|
51
|
+
/** Does the action destroy or overwrite something? */
|
|
52
|
+
destructive?: boolean;
|
|
53
|
+
/** Does the action leave the machine (network, mail, deploy)? */
|
|
54
|
+
external?: boolean;
|
|
55
|
+
/** Can the action be undone? */
|
|
56
|
+
reversible?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The bounded context of a decision.
|
|
60
|
+
*
|
|
61
|
+
* Everything is bounded on purpose: an unbounded todo transcript makes the
|
|
62
|
+
* evaluation input large and expensive without making it better.
|
|
63
|
+
*/
|
|
64
|
+
export interface DecisionContext {
|
|
65
|
+
question?: PendingQuestionContext;
|
|
66
|
+
/** The task the session is working on right now. */
|
|
67
|
+
currentTask?: string;
|
|
68
|
+
/** 0..1 */
|
|
69
|
+
completionRatio?: number;
|
|
70
|
+
totalTasks?: number;
|
|
71
|
+
completedTasks?: number;
|
|
72
|
+
/** What blocks the work. */
|
|
73
|
+
blockers?: string[];
|
|
74
|
+
/** The next relevant tasks. */
|
|
75
|
+
nextTasks?: string[];
|
|
76
|
+
/** The state of the last validation run. */
|
|
77
|
+
validationStatus?: string;
|
|
78
|
+
/** How long the question is already waiting. */
|
|
79
|
+
waitedMinutes?: number;
|
|
80
|
+
/** When the decision has to be made. */
|
|
81
|
+
deadlineMinutes?: number;
|
|
82
|
+
/** When the user was last active. */
|
|
83
|
+
lastUserActivity?: Date;
|
|
84
|
+
}
|
|
85
|
+
/** How many task titles reach the evaluation. */
|
|
86
|
+
export declare const MAX_LISTED_TASKS = 10;
|
|
87
|
+
/** How much of the question text reaches the evaluation. */
|
|
88
|
+
export declare const MAX_QUESTION_CHARS = 2000;
|
|
89
|
+
/**
|
|
90
|
+
* The deterministic part of a decision.
|
|
91
|
+
*
|
|
92
|
+
* Jev proposes an outcome, this function decides what is actually allowed.
|
|
93
|
+
* The rules live in code and not in a prompt: a clarification is never
|
|
94
|
+
* turned into an approval of a guessed interpretation, and an action that
|
|
95
|
+
* needs an explicit human authorization or that cannot be undone is never
|
|
96
|
+
* approved autonomously.
|
|
97
|
+
*/
|
|
98
|
+
export interface DecisionPolicyResult {
|
|
99
|
+
outcome: DecisionOutcome;
|
|
100
|
+
/** The rule that changed the outcome, when one did. */
|
|
101
|
+
appliedRule?: string;
|
|
102
|
+
reason: string;
|
|
103
|
+
}
|
|
104
|
+
export interface DecisionPolicyOptions {
|
|
105
|
+
/** The confidence an autonomous approval needs. */
|
|
106
|
+
confidenceThreshold?: number;
|
|
107
|
+
/** The confidence of the proposed outcome. */
|
|
108
|
+
confidence?: number;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Is the value a known outcome?
|
|
112
|
+
*
|
|
113
|
+
* The evaluation returns the outcome as a free-text choice: an unknown
|
|
114
|
+
* value is ignored instead of being guessed.
|
|
115
|
+
*/
|
|
116
|
+
export declare function isDecisionOutcome(value: unknown): value is DecisionOutcome;
|
|
117
|
+
/**
|
|
118
|
+
* Combine the threshold outcome with the structured outcome of the
|
|
119
|
+
* evaluation.
|
|
120
|
+
*
|
|
121
|
+
* The evaluation may only tighten the decision: a rejection stays a
|
|
122
|
+
* rejection, a wait stays a wait, and an approval never beats the
|
|
123
|
+
* thresholds.
|
|
124
|
+
*/
|
|
125
|
+
export declare function tightenOutcome(thresholdOutcome: DecisionOutcome, proposed: DecisionOutcome | undefined): DecisionOutcome;
|
|
126
|
+
/**
|
|
127
|
+
* Are the risk facts of the proposed action unknown?
|
|
128
|
+
*
|
|
129
|
+
* A question without a kind and without a single known risk fact cannot be
|
|
130
|
+
* judged: the policy waits for the human instead of continuing on a guess.
|
|
131
|
+
*/
|
|
132
|
+
export declare function hasUnknownRiskFacts(question: PendingQuestionContext): boolean;
|
|
133
|
+
export declare function applyDecisionPolicy(proposed: DecisionOutcome, context: DecisionContext | undefined, options?: DecisionPolicyOptions): DecisionPolicyResult;
|
|
134
|
+
/**
|
|
135
|
+
* What the runtime does with a Jev outcome.
|
|
136
|
+
*
|
|
137
|
+
* - `continue`: the work resumes with a steer to the agent.
|
|
138
|
+
* - `pause`: the work stops and waits for a human.
|
|
139
|
+
* - `discard`: the decision was stale and must not change anything.
|
|
140
|
+
* - `wait`: the question stays open for a later decision.
|
|
141
|
+
*/
|
|
142
|
+
export type OutcomeApplication = "continue" | "pause" | "discard" | "wait";
|
|
143
|
+
/**
|
|
144
|
+
* Decide what a Jev outcome means for the running work.
|
|
145
|
+
*
|
|
146
|
+
* `requestClosed` tells whether the pending question was still open and
|
|
147
|
+
* could be closed with the Jev decision. A closed question is the only
|
|
148
|
+
* proof that nobody answered in the meantime: when the request was already
|
|
149
|
+
* answered by a human the Jev decision is stale, and a stale decision must
|
|
150
|
+
* never continue the work.
|
|
151
|
+
*
|
|
152
|
+
* The rule is deterministic: only a successfully closed request may continue
|
|
153
|
+
* or pause the work, and a rejection never continues it.
|
|
154
|
+
*/
|
|
155
|
+
export declare function decideOutcomeApplication(outcome: DecisionOutcome, requestClosed: boolean): OutcomeApplication;
|
|
23
156
|
/**
|
|
24
157
|
* Auto-continue decision
|
|
25
158
|
*/
|
|
26
159
|
export interface AutoContinueDecision {
|
|
27
|
-
action: "proceed" | "wait" | "proceed_with_caution";
|
|
160
|
+
action: "proceed" | "wait" | "proceed_with_caution" | "reject";
|
|
161
|
+
/** The typed outcome after the policy was applied. */
|
|
162
|
+
outcome: DecisionOutcome;
|
|
28
163
|
probability: number;
|
|
29
164
|
riskLevel: "minimal" | "low" | "medium" | "high" | "critical";
|
|
30
165
|
reasoning: string;
|
|
@@ -32,6 +167,8 @@ export interface AutoContinueDecision {
|
|
|
32
167
|
estimatedImpact: "minimal" | "moderate" | "significant" | "major";
|
|
33
168
|
confidence: "high" | "medium" | "low";
|
|
34
169
|
waitRecommendation?: number;
|
|
170
|
+
/** The policy rule that changed the outcome, when one did. */
|
|
171
|
+
policyApplied?: string;
|
|
35
172
|
}
|
|
36
173
|
/**
|
|
37
174
|
* Auto-Continue Judge configuration
|
|
@@ -60,6 +197,13 @@ export declare class AutoContinueJudge {
|
|
|
60
197
|
* Judge whether to continue or wait
|
|
61
198
|
*/
|
|
62
199
|
decide(taskState: TaskState): Promise<AutoContinueDecision>;
|
|
200
|
+
/**
|
|
201
|
+
* Apply the deterministic policy to a proposed decision.
|
|
202
|
+
*
|
|
203
|
+
* The policy is code, not a prompt: it decides what is actually allowed,
|
|
204
|
+
* and it records which rule changed the outcome.
|
|
205
|
+
*/
|
|
206
|
+
private applyPolicy;
|
|
63
207
|
/**
|
|
64
208
|
* Quick decision - simple yes/no to proceed
|
|
65
209
|
*/
|
|
@@ -85,8 +229,23 @@ export declare class AutoContinueJudge {
|
|
|
85
229
|
*/
|
|
86
230
|
private fallbackDecision;
|
|
87
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Is the question old enough for an autonomous decision?
|
|
234
|
+
*
|
|
235
|
+
* The threshold belongs to the caller: the judge is only asked once the
|
|
236
|
+
* question waited long enough.
|
|
237
|
+
*/
|
|
238
|
+
export declare function isEligibleForDecision(waitedMinutes: number, minWaitMinutes: number): boolean;
|
|
239
|
+
/**
|
|
240
|
+
* The bounded evaluation input of a decision.
|
|
241
|
+
*
|
|
242
|
+
* It carries the question Jev has to decide about, the risk of the proposed
|
|
243
|
+
* action and the relevant task state - and nothing that grows without a
|
|
244
|
+
* bound.
|
|
245
|
+
*/
|
|
246
|
+
export declare function buildDecisionState(taskState: TaskState): Record<string, unknown>;
|
|
88
247
|
/**
|
|
89
248
|
* Helper: Create task state from todo list
|
|
90
249
|
*/
|
|
91
|
-
export declare function createTaskState(completedTasks: string[], remainingTasks: string[], lastUserActivity?: Date, sessionStartTime?: Date): TaskState;
|
|
250
|
+
export declare function createTaskState(completedTasks: string[], remainingTasks: string[], lastUserActivity?: Date, sessionStartTime?: Date, context?: DecisionContext): TaskState;
|
|
92
251
|
//# sourceMappingURL=auto-continue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-continue.d.ts","sourceRoot":"","sources":["../src/auto-continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAC;AAGtE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,gBAAgB,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-continue.d.ts","sourceRoot":"","sources":["../src/auto-continue.ts"],"names":[],"mappings":"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"}
|