nduka 1.0.0
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/README.md +157 -0
- package/config/agent-tools.settings.json +70 -0
- package/config/chatbot.config.json +113 -0
- package/config/chatbot.config.schema.json +54 -0
- package/config/connectors.chatbot.json +5 -0
- package/config/llm.settings.json +416 -0
- package/config/prompts.chatbot.json +13 -0
- package/config/secure-tool-identities.example.json +21 -0
- package/config/secure-tool-identities.json +13 -0
- package/config/secure-tools.chatbot.json +82 -0
- package/config/secure-tools.example.json +200 -0
- package/config/test.env +2 -0
- package/config/tools.chatbot.json +318 -0
- package/dist/acceptance/index.d.ts +3 -0
- package/dist/acceptance/index.d.ts.map +1 -0
- package/dist/acceptance/index.js +2 -0
- package/dist/acceptance/index.js.map +1 -0
- package/dist/acceptance/runner.d.ts +57 -0
- package/dist/acceptance/runner.d.ts.map +1 -0
- package/dist/acceptance/runner.js +222 -0
- package/dist/acceptance/runner.js.map +1 -0
- package/dist/agent-runtime/engine.d.ts +73 -0
- package/dist/agent-runtime/engine.d.ts.map +1 -0
- package/dist/agent-runtime/engine.js +169 -0
- package/dist/agent-runtime/engine.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +3 -0
- package/dist/agent-runtime/index.d.ts.map +1 -0
- package/dist/agent-runtime/index.js +2 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-tools/agent-tool-router.d.ts +44 -0
- package/dist/agent-tools/agent-tool-router.d.ts.map +1 -0
- package/dist/agent-tools/agent-tool-router.js +196 -0
- package/dist/agent-tools/agent-tool-router.js.map +1 -0
- package/dist/agent-tools/async-tool-bridge.d.ts +31 -0
- package/dist/agent-tools/async-tool-bridge.d.ts.map +1 -0
- package/dist/agent-tools/async-tool-bridge.js +65 -0
- package/dist/agent-tools/async-tool-bridge.js.map +1 -0
- package/dist/agent-tools/async-tool-processor.d.ts +19 -0
- package/dist/agent-tools/async-tool-processor.d.ts.map +1 -0
- package/dist/agent-tools/async-tool-processor.js +81 -0
- package/dist/agent-tools/async-tool-processor.js.map +1 -0
- package/dist/agent-tools/claude-tool-adapter.d.ts +20 -0
- package/dist/agent-tools/claude-tool-adapter.d.ts.map +1 -0
- package/dist/agent-tools/claude-tool-adapter.js +64 -0
- package/dist/agent-tools/claude-tool-adapter.js.map +1 -0
- package/dist/agent-tools/claude-tool-planner.d.ts +35 -0
- package/dist/agent-tools/claude-tool-planner.d.ts.map +1 -0
- package/dist/agent-tools/claude-tool-planner.js +83 -0
- package/dist/agent-tools/claude-tool-planner.js.map +1 -0
- package/dist/agent-tools/connector-tool-adapter.d.ts +16 -0
- package/dist/agent-tools/connector-tool-adapter.d.ts.map +1 -0
- package/dist/agent-tools/connector-tool-adapter.js +62 -0
- package/dist/agent-tools/connector-tool-adapter.js.map +1 -0
- package/dist/agent-tools/context-routing-policy.d.ts +4 -0
- package/dist/agent-tools/context-routing-policy.d.ts.map +1 -0
- package/dist/agent-tools/context-routing-policy.js +20 -0
- package/dist/agent-tools/context-routing-policy.js.map +1 -0
- package/dist/agent-tools/index.d.ts +18 -0
- package/dist/agent-tools/index.d.ts.map +1 -0
- package/dist/agent-tools/index.js +18 -0
- package/dist/agent-tools/index.js.map +1 -0
- package/dist/agent-tools/logging.d.ts +3 -0
- package/dist/agent-tools/logging.d.ts.map +1 -0
- package/dist/agent-tools/logging.js +15 -0
- package/dist/agent-tools/logging.js.map +1 -0
- package/dist/agent-tools/mcp-tool-adapter.d.ts +18 -0
- package/dist/agent-tools/mcp-tool-adapter.d.ts.map +1 -0
- package/dist/agent-tools/mcp-tool-adapter.js +76 -0
- package/dist/agent-tools/mcp-tool-adapter.js.map +1 -0
- package/dist/agent-tools/settings.d.ts +50 -0
- package/dist/agent-tools/settings.d.ts.map +1 -0
- package/dist/agent-tools/settings.js +101 -0
- package/dist/agent-tools/settings.js.map +1 -0
- package/dist/agent-tools/tool-candidate-detector.d.ts +16 -0
- package/dist/agent-tools/tool-candidate-detector.d.ts.map +1 -0
- package/dist/agent-tools/tool-candidate-detector.js +165 -0
- package/dist/agent-tools/tool-candidate-detector.js.map +1 -0
- package/dist/agent-tools/tool-chain-runner.d.ts +24 -0
- package/dist/agent-tools/tool-chain-runner.d.ts.map +1 -0
- package/dist/agent-tools/tool-chain-runner.js +39 -0
- package/dist/agent-tools/tool-chain-runner.js.map +1 -0
- package/dist/agent-tools/tool-context-store.d.ts +28 -0
- package/dist/agent-tools/tool-context-store.d.ts.map +1 -0
- package/dist/agent-tools/tool-context-store.js +127 -0
- package/dist/agent-tools/tool-context-store.js.map +1 -0
- package/dist/agent-tools/tool-followup-resolver.d.ts +18 -0
- package/dist/agent-tools/tool-followup-resolver.d.ts.map +1 -0
- package/dist/agent-tools/tool-followup-resolver.js +98 -0
- package/dist/agent-tools/tool-followup-resolver.js.map +1 -0
- package/dist/agent-tools/tool-plan-validator.d.ts +13 -0
- package/dist/agent-tools/tool-plan-validator.d.ts.map +1 -0
- package/dist/agent-tools/tool-plan-validator.js +119 -0
- package/dist/agent-tools/tool-plan-validator.js.map +1 -0
- package/dist/agent-tools/tool-result-summarizer.d.ts +17 -0
- package/dist/agent-tools/tool-result-summarizer.d.ts.map +1 -0
- package/dist/agent-tools/tool-result-summarizer.js +41 -0
- package/dist/agent-tools/tool-result-summarizer.js.map +1 -0
- package/dist/agent-tools/tool-session-store.d.ts +49 -0
- package/dist/agent-tools/tool-session-store.d.ts.map +1 -0
- package/dist/agent-tools/tool-session-store.js +104 -0
- package/dist/agent-tools/tool-session-store.js.map +1 -0
- package/dist/agent-tools/types.d.ts +97 -0
- package/dist/agent-tools/types.d.ts.map +1 -0
- package/dist/agent-tools/types.js +2 -0
- package/dist/agent-tools/types.js.map +1 -0
- package/dist/ai/execution-controller.d.ts +62 -0
- package/dist/ai/execution-controller.d.ts.map +1 -0
- package/dist/ai/execution-controller.js +117 -0
- package/dist/ai/execution-controller.js.map +1 -0
- package/dist/ai/index.d.ts +3 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai-context/engine.d.ts +85 -0
- package/dist/ai-context/engine.d.ts.map +1 -0
- package/dist/ai-context/engine.js +173 -0
- package/dist/ai-context/engine.js.map +1 -0
- package/dist/ai-context/index.d.ts +3 -0
- package/dist/ai-context/index.d.ts.map +1 -0
- package/dist/ai-context/index.js +2 -0
- package/dist/ai-context/index.js.map +1 -0
- package/dist/ai-router/index.d.ts +3 -0
- package/dist/ai-router/index.d.ts.map +1 -0
- package/dist/ai-router/index.js +2 -0
- package/dist/ai-router/index.js.map +1 -0
- package/dist/ai-router/router.d.ts +68 -0
- package/dist/ai-router/router.d.ts.map +1 -0
- package/dist/ai-router/router.js +260 -0
- package/dist/ai-router/router.js.map +1 -0
- package/dist/async-jobs/context-resolver-planner.d.ts +35 -0
- package/dist/async-jobs/context-resolver-planner.d.ts.map +1 -0
- package/dist/async-jobs/context-resolver-planner.js +324 -0
- package/dist/async-jobs/context-resolver-planner.js.map +1 -0
- package/dist/async-jobs/gateway-worker.d.ts +22 -0
- package/dist/async-jobs/gateway-worker.d.ts.map +1 -0
- package/dist/async-jobs/gateway-worker.js +53 -0
- package/dist/async-jobs/gateway-worker.js.map +1 -0
- package/dist/async-jobs/job-delivery.d.ts +16 -0
- package/dist/async-jobs/job-delivery.d.ts.map +1 -0
- package/dist/async-jobs/job-delivery.js +30 -0
- package/dist/async-jobs/job-delivery.js.map +1 -0
- package/dist/async-jobs/job-runner.d.ts +39 -0
- package/dist/async-jobs/job-runner.d.ts.map +1 -0
- package/dist/async-jobs/job-runner.js +67 -0
- package/dist/async-jobs/job-runner.js.map +1 -0
- package/dist/async-jobs/job-store.d.ts +27 -0
- package/dist/async-jobs/job-store.d.ts.map +1 -0
- package/dist/async-jobs/job-store.js +168 -0
- package/dist/async-jobs/job-store.js.map +1 -0
- package/dist/async-jobs/job-types.d.ts +59 -0
- package/dist/async-jobs/job-types.d.ts.map +1 -0
- package/dist/async-jobs/job-types.js +2 -0
- package/dist/async-jobs/job-types.js.map +1 -0
- package/dist/async-jobs/job-utils.d.ts +16 -0
- package/dist/async-jobs/job-utils.d.ts.map +1 -0
- package/dist/async-jobs/job-utils.js +72 -0
- package/dist/async-jobs/job-utils.js.map +1 -0
- package/dist/async-jobs/job-worker.d.ts +31 -0
- package/dist/async-jobs/job-worker.d.ts.map +1 -0
- package/dist/async-jobs/job-worker.js +60 -0
- package/dist/async-jobs/job-worker.js.map +1 -0
- package/dist/async-jobs/message-triage-planner.d.ts +52 -0
- package/dist/async-jobs/message-triage-planner.d.ts.map +1 -0
- package/dist/async-jobs/message-triage-planner.js +262 -0
- package/dist/async-jobs/message-triage-planner.js.map +1 -0
- package/dist/async-jobs/request-controller.d.ts +65 -0
- package/dist/async-jobs/request-controller.d.ts.map +1 -0
- package/dist/async-jobs/request-controller.js +471 -0
- package/dist/async-jobs/request-controller.js.map +1 -0
- package/dist/async-jobs/routing-context.d.ts +12 -0
- package/dist/async-jobs/routing-context.d.ts.map +1 -0
- package/dist/async-jobs/routing-context.js +15 -0
- package/dist/async-jobs/routing-context.js.map +1 -0
- package/dist/async-jobs/tool-intent-planner.d.ts +51 -0
- package/dist/async-jobs/tool-intent-planner.d.ts.map +1 -0
- package/dist/async-jobs/tool-intent-planner.js +241 -0
- package/dist/async-jobs/tool-intent-planner.js.map +1 -0
- package/dist/async-jobs/tool-processor.d.ts +31 -0
- package/dist/async-jobs/tool-processor.d.ts.map +1 -0
- package/dist/async-jobs/tool-processor.js +263 -0
- package/dist/async-jobs/tool-processor.js.map +1 -0
- package/dist/auth/session-admin.d.ts +19 -0
- package/dist/auth/session-admin.d.ts.map +1 -0
- package/dist/auth/session-admin.js +52 -0
- package/dist/auth/session-admin.js.map +1 -0
- package/dist/chat-registry/aliases.d.ts +55 -0
- package/dist/chat-registry/aliases.d.ts.map +1 -0
- package/dist/chat-registry/aliases.js +170 -0
- package/dist/chat-registry/aliases.js.map +1 -0
- package/dist/chat-registry/index.d.ts +3 -0
- package/dist/chat-registry/index.d.ts.map +1 -0
- package/dist/chat-registry/index.js +2 -0
- package/dist/chat-registry/index.js.map +1 -0
- package/dist/chat-registry/service.d.ts +54 -0
- package/dist/chat-registry/service.d.ts.map +1 -0
- package/dist/chat-registry/service.js +224 -0
- package/dist/chat-registry/service.js.map +1 -0
- package/dist/chat-state/execution-gate.d.ts +66 -0
- package/dist/chat-state/execution-gate.d.ts.map +1 -0
- package/dist/chat-state/execution-gate.js +143 -0
- package/dist/chat-state/execution-gate.js.map +1 -0
- package/dist/chat-state/index.d.ts +7 -0
- package/dist/chat-state/index.d.ts.map +1 -0
- package/dist/chat-state/index.js +4 -0
- package/dist/chat-state/index.js.map +1 -0
- package/dist/chat-state/invariants.d.ts +32 -0
- package/dist/chat-state/invariants.d.ts.map +1 -0
- package/dist/chat-state/invariants.js +95 -0
- package/dist/chat-state/invariants.js.map +1 -0
- package/dist/chat-state/store.d.ts +55 -0
- package/dist/chat-state/store.d.ts.map +1 -0
- package/dist/chat-state/store.js +220 -0
- package/dist/chat-state/store.js.map +1 -0
- package/dist/cli/admin-inspection.d.ts +17 -0
- package/dist/cli/admin-inspection.d.ts.map +1 -0
- package/dist/cli/admin-inspection.js +161 -0
- package/dist/cli/admin-inspection.js.map +1 -0
- package/dist/cli/connector-admin.d.ts +2 -0
- package/dist/cli/connector-admin.d.ts.map +1 -0
- package/dist/cli/connector-admin.js +28 -0
- package/dist/cli/connector-admin.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +709 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/chatbot-config.d.ts +108 -0
- package/dist/config/chatbot-config.d.ts.map +1 -0
- package/dist/config/chatbot-config.js +280 -0
- package/dist/config/chatbot-config.js.map +1 -0
- package/dist/config/config-editor.d.ts +16 -0
- package/dist/config/config-editor.d.ts.map +1 -0
- package/dist/config/config-editor.js +367 -0
- package/dist/config/config-editor.js.map +1 -0
- package/dist/config/local-env-editor.d.ts +22 -0
- package/dist/config/local-env-editor.d.ts.map +1 -0
- package/dist/config/local-env-editor.js +129 -0
- package/dist/config/local-env-editor.js.map +1 -0
- package/dist/config/runtime-feature-flags.d.ts +19 -0
- package/dist/config/runtime-feature-flags.d.ts.map +1 -0
- package/dist/config/runtime-feature-flags.js +39 -0
- package/dist/config/runtime-feature-flags.js.map +1 -0
- package/dist/connectors/audit.d.ts +32 -0
- package/dist/connectors/audit.d.ts.map +1 -0
- package/dist/connectors/audit.js +77 -0
- package/dist/connectors/audit.js.map +1 -0
- package/dist/connectors/config.d.ts +9 -0
- package/dist/connectors/config.d.ts.map +1 -0
- package/dist/connectors/config.js +66 -0
- package/dist/connectors/config.js.map +1 -0
- package/dist/connectors/dns-guard.d.ts +7 -0
- package/dist/connectors/dns-guard.d.ts.map +1 -0
- package/dist/connectors/dns-guard.js +70 -0
- package/dist/connectors/dns-guard.js.map +1 -0
- package/dist/connectors/executor.d.ts +30 -0
- package/dist/connectors/executor.d.ts.map +1 -0
- package/dist/connectors/executor.js +80 -0
- package/dist/connectors/executor.js.map +1 -0
- package/dist/connectors/manifest.d.ts +18 -0
- package/dist/connectors/manifest.d.ts.map +1 -0
- package/dist/connectors/manifest.js +72 -0
- package/dist/connectors/manifest.js.map +1 -0
- package/dist/connectors/runner.d.ts +17 -0
- package/dist/connectors/runner.d.ts.map +1 -0
- package/dist/connectors/runner.js +36 -0
- package/dist/connectors/runner.js.map +1 -0
- package/dist/connectors/url-guard.d.ts +7 -0
- package/dist/connectors/url-guard.d.ts.map +1 -0
- package/dist/connectors/url-guard.js +50 -0
- package/dist/connectors/url-guard.js.map +1 -0
- package/dist/conversation/connector-command-controller.d.ts +31 -0
- package/dist/conversation/connector-command-controller.d.ts.map +1 -0
- package/dist/conversation/connector-command-controller.js +105 -0
- package/dist/conversation/connector-command-controller.js.map +1 -0
- package/dist/conversation/context-command-controller.d.ts +23 -0
- package/dist/conversation/context-command-controller.d.ts.map +1 -0
- package/dist/conversation/context-command-controller.js +184 -0
- package/dist/conversation/context-command-controller.js.map +1 -0
- package/dist/conversation/group-reply-policy.d.ts +3 -0
- package/dist/conversation/group-reply-policy.d.ts.map +1 -0
- package/dist/conversation/group-reply-policy.js +17 -0
- package/dist/conversation/group-reply-policy.js.map +1 -0
- package/dist/conversation/index.d.ts +3 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +2 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/lock-manager.d.ts +47 -0
- package/dist/conversation/lock-manager.d.ts.map +1 -0
- package/dist/conversation/lock-manager.js +144 -0
- package/dist/conversation/lock-manager.js.map +1 -0
- package/dist/conversation/memory-trace.d.ts +16 -0
- package/dist/conversation/memory-trace.d.ts.map +1 -0
- package/dist/conversation/memory-trace.js +13 -0
- package/dist/conversation/memory-trace.js.map +1 -0
- package/dist/conversation/natural-schedule-command-controller.d.ts +21 -0
- package/dist/conversation/natural-schedule-command-controller.d.ts.map +1 -0
- package/dist/conversation/natural-schedule-command-controller.js +180 -0
- package/dist/conversation/natural-schedule-command-controller.js.map +1 -0
- package/dist/conversation/ops.d.ts +75 -0
- package/dist/conversation/ops.d.ts.map +1 -0
- package/dist/conversation/ops.js +169 -0
- package/dist/conversation/ops.js.map +1 -0
- package/dist/conversation/owner-action-command-controller.d.ts +25 -0
- package/dist/conversation/owner-action-command-controller.d.ts.map +1 -0
- package/dist/conversation/owner-action-command-controller.js +90 -0
- package/dist/conversation/owner-action-command-controller.js.map +1 -0
- package/dist/conversation/owner-action-planner.d.ts +28 -0
- package/dist/conversation/owner-action-planner.d.ts.map +1 -0
- package/dist/conversation/owner-action-planner.js +99 -0
- package/dist/conversation/owner-action-planner.js.map +1 -0
- package/dist/conversation/rate-limiter.d.ts +22 -0
- package/dist/conversation/rate-limiter.d.ts.map +1 -0
- package/dist/conversation/rate-limiter.js +66 -0
- package/dist/conversation/rate-limiter.js.map +1 -0
- package/dist/conversation/runtime-admin-media.d.ts +11 -0
- package/dist/conversation/runtime-admin-media.d.ts.map +1 -0
- package/dist/conversation/runtime-admin-media.js +31 -0
- package/dist/conversation/runtime-admin-media.js.map +1 -0
- package/dist/conversation/runtime-group.d.ts +13 -0
- package/dist/conversation/runtime-group.d.ts.map +1 -0
- package/dist/conversation/runtime-group.js +96 -0
- package/dist/conversation/runtime-group.js.map +1 -0
- package/dist/conversation/runtime-impl.d.ts +90 -0
- package/dist/conversation/runtime-impl.d.ts.map +1 -0
- package/dist/conversation/runtime-impl.js +452 -0
- package/dist/conversation/runtime-impl.js.map +1 -0
- package/dist/conversation/runtime-kb.d.ts +36 -0
- package/dist/conversation/runtime-kb.d.ts.map +1 -0
- package/dist/conversation/runtime-kb.js +123 -0
- package/dist/conversation/runtime-kb.js.map +1 -0
- package/dist/conversation/runtime-media.d.ts +28 -0
- package/dist/conversation/runtime-media.d.ts.map +1 -0
- package/dist/conversation/runtime-media.js +93 -0
- package/dist/conversation/runtime-media.js.map +1 -0
- package/dist/conversation/runtime-production.d.ts +36 -0
- package/dist/conversation/runtime-production.d.ts.map +1 -0
- package/dist/conversation/runtime-production.js +274 -0
- package/dist/conversation/runtime-production.js.map +1 -0
- package/dist/conversation/runtime-timing.d.ts +2 -0
- package/dist/conversation/runtime-timing.d.ts.map +1 -0
- package/dist/conversation/runtime-timing.js +2 -0
- package/dist/conversation/runtime-timing.js.map +1 -0
- package/dist/conversation/runtime.d.ts +3 -0
- package/dist/conversation/runtime.d.ts.map +1 -0
- package/dist/conversation/runtime.js +2 -0
- package/dist/conversation/runtime.js.map +1 -0
- package/dist/conversation/secure-tool-natural-language-controller.d.ts +67 -0
- package/dist/conversation/secure-tool-natural-language-controller.d.ts.map +1 -0
- package/dist/conversation/secure-tool-natural-language-controller.js +634 -0
- package/dist/conversation/secure-tool-natural-language-controller.js.map +1 -0
- package/dist/conversation/secure-tool-routing.d.ts +5 -0
- package/dist/conversation/secure-tool-routing.d.ts.map +1 -0
- package/dist/conversation/secure-tool-routing.js +91 -0
- package/dist/conversation/secure-tool-routing.js.map +1 -0
- package/dist/conversation/secure-tool-runtime-utils.d.ts +4 -0
- package/dist/conversation/secure-tool-runtime-utils.d.ts.map +1 -0
- package/dist/conversation/secure-tool-runtime-utils.js +19 -0
- package/dist/conversation/secure-tool-runtime-utils.js.map +1 -0
- package/dist/conversation/slash-command.d.ts +8 -0
- package/dist/conversation/slash-command.d.ts.map +1 -0
- package/dist/conversation/slash-command.js +13 -0
- package/dist/conversation/slash-command.js.map +1 -0
- package/dist/conversation/target-resolver.d.ts +7 -0
- package/dist/conversation/target-resolver.d.ts.map +1 -0
- package/dist/conversation/target-resolver.js +23 -0
- package/dist/conversation/target-resolver.js.map +1 -0
- package/dist/copilot/engine.d.ts +102 -0
- package/dist/copilot/engine.d.ts.map +1 -0
- package/dist/copilot/engine.js +222 -0
- package/dist/copilot/engine.js.map +1 -0
- package/dist/copilot/index.d.ts +3 -0
- package/dist/copilot/index.d.ts.map +1 -0
- package/dist/copilot/index.js +2 -0
- package/dist/copilot/index.js.map +1 -0
- package/dist/database/index.d.ts +135 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +331 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/path.d.ts +2 -0
- package/dist/database/path.d.ts.map +1 -0
- package/dist/database/path.js +5 -0
- package/dist/database/path.js.map +1 -0
- package/dist/event-bus/index.d.ts +153 -0
- package/dist/event-bus/index.d.ts.map +1 -0
- package/dist/event-bus/index.js +118 -0
- package/dist/event-bus/index.js.map +1 -0
- package/dist/event-sourcing/index.d.ts +3 -0
- package/dist/event-sourcing/index.d.ts.map +1 -0
- package/dist/event-sourcing/index.js +2 -0
- package/dist/event-sourcing/index.js.map +1 -0
- package/dist/event-sourcing/store.d.ts +54 -0
- package/dist/event-sourcing/store.d.ts.map +1 -0
- package/dist/event-sourcing/store.js +169 -0
- package/dist/event-sourcing/store.js.map +1 -0
- package/dist/gateway/auth/index.d.ts +5 -0
- package/dist/gateway/auth/index.d.ts.map +1 -0
- package/dist/gateway/auth/index.js +5 -0
- package/dist/gateway/auth/index.js.map +1 -0
- package/dist/gateway/auth/store.d.ts +44 -0
- package/dist/gateway/auth/store.d.ts.map +1 -0
- package/dist/gateway/auth/store.js +387 -0
- package/dist/gateway/auth/store.js.map +1 -0
- package/dist/gateway/bootstrap.d.ts +2 -0
- package/dist/gateway/bootstrap.d.ts.map +1 -0
- package/dist/gateway/bootstrap.js +8 -0
- package/dist/gateway/bootstrap.js.map +1 -0
- package/dist/gateway/conn-state-machine.d.ts +25 -0
- package/dist/gateway/conn-state-machine.d.ts.map +1 -0
- package/dist/gateway/conn-state-machine.js +39 -0
- package/dist/gateway/conn-state-machine.js.map +1 -0
- package/dist/gateway/connection-state.d.ts +22 -0
- package/dist/gateway/connection-state.d.ts.map +1 -0
- package/dist/gateway/connection-state.js +60 -0
- package/dist/gateway/connection-state.js.map +1 -0
- package/dist/gateway/events/handler.d.ts +75 -0
- package/dist/gateway/events/handler.d.ts.map +1 -0
- package/dist/gateway/events/handler.js +164 -0
- package/dist/gateway/events/handler.js.map +1 -0
- package/dist/gateway/events/index.d.ts +3 -0
- package/dist/gateway/events/index.d.ts.map +1 -0
- package/dist/gateway/events/index.js +2 -0
- package/dist/gateway/events/index.js.map +1 -0
- package/dist/gateway/exit-shutdown.d.ts +5 -0
- package/dist/gateway/exit-shutdown.d.ts.map +1 -0
- package/dist/gateway/exit-shutdown.js +12 -0
- package/dist/gateway/exit-shutdown.js.map +1 -0
- package/dist/gateway/group-activation.d.ts +25 -0
- package/dist/gateway/group-activation.d.ts.map +1 -0
- package/dist/gateway/group-activation.js +78 -0
- package/dist/gateway/group-activation.js.map +1 -0
- package/dist/gateway/health/index.d.ts +3 -0
- package/dist/gateway/health/index.d.ts.map +1 -0
- package/dist/gateway/health/index.js +2 -0
- package/dist/gateway/health/index.js.map +1 -0
- package/dist/gateway/health/monitor.d.ts +63 -0
- package/dist/gateway/health/monitor.d.ts.map +1 -0
- package/dist/gateway/health/monitor.js +94 -0
- package/dist/gateway/health/monitor.js.map +1 -0
- package/dist/gateway/index.d.ts +12 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +10 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/logger.d.ts +8 -0
- package/dist/gateway/logger.d.ts.map +1 -0
- package/dist/gateway/logger.js +12 -0
- package/dist/gateway/logger.js.map +1 -0
- package/dist/gateway/media-queue-worker-runtime.d.ts +16 -0
- package/dist/gateway/media-queue-worker-runtime.d.ts.map +1 -0
- package/dist/gateway/media-queue-worker-runtime.js +35 -0
- package/dist/gateway/media-queue-worker-runtime.js.map +1 -0
- package/dist/gateway/message-buffer.d.ts +9 -0
- package/dist/gateway/message-buffer.d.ts.map +1 -0
- package/dist/gateway/message-buffer.js +16 -0
- package/dist/gateway/message-buffer.js.map +1 -0
- package/dist/gateway/outgoing-messages.d.ts +4 -0
- package/dist/gateway/outgoing-messages.d.ts.map +1 -0
- package/dist/gateway/outgoing-messages.js +25 -0
- package/dist/gateway/outgoing-messages.js.map +1 -0
- package/dist/gateway/process-lifecycle.d.ts +8 -0
- package/dist/gateway/process-lifecycle.d.ts.map +1 -0
- package/dist/gateway/process-lifecycle.js +14 -0
- package/dist/gateway/process-lifecycle.js.map +1 -0
- package/dist/gateway/process-safety.d.ts +14 -0
- package/dist/gateway/process-safety.d.ts.map +1 -0
- package/dist/gateway/process-safety.js +48 -0
- package/dist/gateway/process-safety.js.map +1 -0
- package/dist/gateway/reconnect/index.d.ts +3 -0
- package/dist/gateway/reconnect/index.d.ts.map +1 -0
- package/dist/gateway/reconnect/index.js +2 -0
- package/dist/gateway/reconnect/index.js.map +1 -0
- package/dist/gateway/reconnect/manager.d.ts +59 -0
- package/dist/gateway/reconnect/manager.d.ts.map +1 -0
- package/dist/gateway/reconnect/manager.js +195 -0
- package/dist/gateway/reconnect/manager.js.map +1 -0
- package/dist/gateway/self-echo-guard.d.ts +2 -0
- package/dist/gateway/self-echo-guard.d.ts.map +1 -0
- package/dist/gateway/self-echo-guard.js +31 -0
- package/dist/gateway/self-echo-guard.js.map +1 -0
- package/dist/gateway/server.d.ts +61 -0
- package/dist/gateway/server.d.ts.map +1 -0
- package/dist/gateway/server.js +947 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/gateway/shutdown-registry.d.ts +5 -0
- package/dist/gateway/shutdown-registry.d.ts.map +1 -0
- package/dist/gateway/shutdown-registry.js +20 -0
- package/dist/gateway/shutdown-registry.js.map +1 -0
- package/dist/gateway/socket/connection.d.ts +45 -0
- package/dist/gateway/socket/connection.d.ts.map +1 -0
- package/dist/gateway/socket/connection.js +198 -0
- package/dist/gateway/socket/connection.js.map +1 -0
- package/dist/gateway/socket/index.d.ts +3 -0
- package/dist/gateway/socket/index.d.ts.map +1 -0
- package/dist/gateway/socket/index.js +3 -0
- package/dist/gateway/socket/index.js.map +1 -0
- package/dist/gateway/sync-mutex.d.ts +13 -0
- package/dist/gateway/sync-mutex.d.ts.map +1 -0
- package/dist/gateway/sync-mutex.js +26 -0
- package/dist/gateway/sync-mutex.js.map +1 -0
- package/dist/gateway/text-media.d.ts +23 -0
- package/dist/gateway/text-media.d.ts.map +1 -0
- package/dist/gateway/text-media.js +30 -0
- package/dist/gateway/text-media.js.map +1 -0
- package/dist/group-intel/engine.d.ts +77 -0
- package/dist/group-intel/engine.d.ts.map +1 -0
- package/dist/group-intel/engine.js +197 -0
- package/dist/group-intel/engine.js.map +1 -0
- package/dist/group-intel/index.d.ts +3 -0
- package/dist/group-intel/index.d.ts.map +1 -0
- package/dist/group-intel/index.js +2 -0
- package/dist/group-intel/index.js.map +1 -0
- package/dist/intent/classifier.d.ts +17 -0
- package/dist/intent/classifier.d.ts.map +1 -0
- package/dist/intent/classifier.js +89 -0
- package/dist/intent/classifier.js.map +1 -0
- package/dist/kb/store.d.ts +38 -0
- package/dist/kb/store.d.ts.map +1 -0
- package/dist/kb/store.js +114 -0
- package/dist/kb/store.js.map +1 -0
- package/dist/llm/audit.d.ts +70 -0
- package/dist/llm/audit.d.ts.map +1 -0
- package/dist/llm/audit.js +281 -0
- package/dist/llm/audit.js.map +1 -0
- package/dist/llm/base-provider.d.ts +46 -0
- package/dist/llm/base-provider.d.ts.map +1 -0
- package/dist/llm/base-provider.js +158 -0
- package/dist/llm/base-provider.js.map +1 -0
- package/dist/llm/config.d.ts +32 -0
- package/dist/llm/config.d.ts.map +1 -0
- package/dist/llm/config.js +125 -0
- package/dist/llm/config.js.map +1 -0
- package/dist/llm/direct-tool-guard.d.ts +8 -0
- package/dist/llm/direct-tool-guard.d.ts.map +1 -0
- package/dist/llm/direct-tool-guard.js +36 -0
- package/dist/llm/direct-tool-guard.js.map +1 -0
- package/dist/llm/engine.d.ts +44 -0
- package/dist/llm/engine.d.ts.map +1 -0
- package/dist/llm/engine.js +327 -0
- package/dist/llm/engine.js.map +1 -0
- package/dist/llm/index.d.ts +8 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +8 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/model-settings.d.ts +57 -0
- package/dist/llm/model-settings.d.ts.map +1 -0
- package/dist/llm/model-settings.js +184 -0
- package/dist/llm/model-settings.js.map +1 -0
- package/dist/llm/ocr-client.d.ts +19 -0
- package/dist/llm/ocr-client.d.ts.map +1 -0
- package/dist/llm/ocr-client.js +94 -0
- package/dist/llm/ocr-client.js.map +1 -0
- package/dist/llm/ocr-errors.d.ts +15 -0
- package/dist/llm/ocr-errors.d.ts.map +1 -0
- package/dist/llm/ocr-errors.js +42 -0
- package/dist/llm/ocr-errors.js.map +1 -0
- package/dist/llm/ocr-registry.d.ts +33 -0
- package/dist/llm/ocr-registry.d.ts.map +1 -0
- package/dist/llm/ocr-registry.js +129 -0
- package/dist/llm/ocr-registry.js.map +1 -0
- package/dist/llm/ocr-types.d.ts +53 -0
- package/dist/llm/ocr-types.d.ts.map +1 -0
- package/dist/llm/ocr-types.js +11 -0
- package/dist/llm/ocr-types.js.map +1 -0
- package/dist/llm/providers/anthropic-ocr.d.ts +3 -0
- package/dist/llm/providers/anthropic-ocr.d.ts.map +1 -0
- package/dist/llm/providers/anthropic-ocr.js +32 -0
- package/dist/llm/providers/anthropic-ocr.js.map +1 -0
- package/dist/llm/providers/custom-ocr.d.ts +3 -0
- package/dist/llm/providers/custom-ocr.d.ts.map +1 -0
- package/dist/llm/providers/custom-ocr.js +20 -0
- package/dist/llm/providers/custom-ocr.js.map +1 -0
- package/dist/llm/providers/gemini-ocr.d.ts +3 -0
- package/dist/llm/providers/gemini-ocr.d.ts.map +1 -0
- package/dist/llm/providers/gemini-ocr.js +26 -0
- package/dist/llm/providers/gemini-ocr.js.map +1 -0
- package/dist/llm/providers/http-ocr.d.ts +12 -0
- package/dist/llm/providers/http-ocr.d.ts.map +1 -0
- package/dist/llm/providers/http-ocr.js +135 -0
- package/dist/llm/providers/http-ocr.js.map +1 -0
- package/dist/llm/providers/local-ocr.d.ts +3 -0
- package/dist/llm/providers/local-ocr.d.ts.map +1 -0
- package/dist/llm/providers/local-ocr.js +19 -0
- package/dist/llm/providers/local-ocr.js.map +1 -0
- package/dist/llm/providers/ollama-ocr.d.ts +3 -0
- package/dist/llm/providers/ollama-ocr.d.ts.map +1 -0
- package/dist/llm/providers/ollama-ocr.js +18 -0
- package/dist/llm/providers/ollama-ocr.js.map +1 -0
- package/dist/llm/providers/openai-compat.d.ts +26 -0
- package/dist/llm/providers/openai-compat.d.ts.map +1 -0
- package/dist/llm/providers/openai-compat.js +284 -0
- package/dist/llm/providers/openai-compat.js.map +1 -0
- package/dist/llm/providers/openai-compatible-ocr.d.ts +3 -0
- package/dist/llm/providers/openai-compatible-ocr.d.ts.map +1 -0
- package/dist/llm/providers/openai-compatible-ocr.js +21 -0
- package/dist/llm/providers/openai-compatible-ocr.js.map +1 -0
- package/dist/llm/providers/openai-ocr.d.ts +3 -0
- package/dist/llm/providers/openai-ocr.d.ts.map +1 -0
- package/dist/llm/providers/openai-ocr.js +25 -0
- package/dist/llm/providers/openai-ocr.js.map +1 -0
- package/dist/llm/providers/openrouter-ocr.d.ts +3 -0
- package/dist/llm/providers/openrouter-ocr.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-ocr.js +21 -0
- package/dist/llm/providers/openrouter-ocr.js.map +1 -0
- package/dist/llm/response-sanitizer.d.ts +3 -0
- package/dist/llm/response-sanitizer.d.ts.map +1 -0
- package/dist/llm/response-sanitizer.js +122 -0
- package/dist/llm/response-sanitizer.js.map +1 -0
- package/dist/llm/router.d.ts +29 -0
- package/dist/llm/router.d.ts.map +1 -0
- package/dist/llm/router.js +167 -0
- package/dist/llm/router.js.map +1 -0
- package/dist/llm/safety.d.ts +15 -0
- package/dist/llm/safety.d.ts.map +1 -0
- package/dist/llm/safety.js +48 -0
- package/dist/llm/safety.js.map +1 -0
- package/dist/llm/search-planner.d.ts +4 -0
- package/dist/llm/search-planner.d.ts.map +1 -0
- package/dist/llm/search-planner.js +49 -0
- package/dist/llm/search-planner.js.map +1 -0
- package/dist/llm/task-router.d.ts +19 -0
- package/dist/llm/task-router.d.ts.map +1 -0
- package/dist/llm/task-router.js +70 -0
- package/dist/llm/task-router.js.map +1 -0
- package/dist/llm/types.d.ts +161 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +45 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/media/command-controller.d.ts +15 -0
- package/dist/media/command-controller.d.ts.map +1 -0
- package/dist/media/command-controller.js +122 -0
- package/dist/media/command-controller.js.map +1 -0
- package/dist/media/command-parse.d.ts +2 -0
- package/dist/media/command-parse.d.ts.map +1 -0
- package/dist/media/command-parse.js +5 -0
- package/dist/media/command-parse.js.map +1 -0
- package/dist/media/index.d.ts +13 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +7 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/policy.d.ts +23 -0
- package/dist/media/policy.d.ts.map +1 -0
- package/dist/media/policy.js +125 -0
- package/dist/media/policy.js.map +1 -0
- package/dist/media/prep-router.d.ts +24 -0
- package/dist/media/prep-router.d.ts.map +1 -0
- package/dist/media/prep-router.js +79 -0
- package/dist/media/prep-router.js.map +1 -0
- package/dist/media/prep.d.ts +22 -0
- package/dist/media/prep.d.ts.map +1 -0
- package/dist/media/prep.js +74 -0
- package/dist/media/prep.js.map +1 -0
- package/dist/media/queue-admin.d.ts +10 -0
- package/dist/media/queue-admin.d.ts.map +1 -0
- package/dist/media/queue-admin.js +47 -0
- package/dist/media/queue-admin.js.map +1 -0
- package/dist/media/queue-runner.d.ts +28 -0
- package/dist/media/queue-runner.d.ts.map +1 -0
- package/dist/media/queue-runner.js +71 -0
- package/dist/media/queue-runner.js.map +1 -0
- package/dist/media/queue-store.d.ts +27 -0
- package/dist/media/queue-store.d.ts.map +1 -0
- package/dist/media/queue-store.js +147 -0
- package/dist/media/queue-store.js.map +1 -0
- package/dist/media/queue-types.d.ts +71 -0
- package/dist/media/queue-types.d.ts.map +1 -0
- package/dist/media/queue-types.js +2 -0
- package/dist/media/queue-types.js.map +1 -0
- package/dist/media/queue-utils.d.ts +9 -0
- package/dist/media/queue-utils.d.ts.map +1 -0
- package/dist/media/queue-utils.js +52 -0
- package/dist/media/queue-utils.js.map +1 -0
- package/dist/media/queue-worker.d.ts +31 -0
- package/dist/media/queue-worker.d.ts.map +1 -0
- package/dist/media/queue-worker.js +58 -0
- package/dist/media/queue-worker.js.map +1 -0
- package/dist/media/reliability.d.ts +58 -0
- package/dist/media/reliability.d.ts.map +1 -0
- package/dist/media/reliability.js +240 -0
- package/dist/media/reliability.js.map +1 -0
- package/dist/media/service.d.ts +53 -0
- package/dist/media/service.d.ts.map +1 -0
- package/dist/media/service.js +238 -0
- package/dist/media/service.js.map +1 -0
- package/dist/media/text-extractor.d.ts +23 -0
- package/dist/media/text-extractor.d.ts.map +1 -0
- package/dist/media/text-extractor.js +66 -0
- package/dist/media/text-extractor.js.map +1 -0
- package/dist/media/text-format.d.ts +10 -0
- package/dist/media/text-format.d.ts.map +1 -0
- package/dist/media/text-format.js +19 -0
- package/dist/media/text-format.js.map +1 -0
- package/dist/media-orchestration/engine.d.ts +74 -0
- package/dist/media-orchestration/engine.d.ts.map +1 -0
- package/dist/media-orchestration/engine.js +155 -0
- package/dist/media-orchestration/engine.js.map +1 -0
- package/dist/media-orchestration/index.d.ts +3 -0
- package/dist/media-orchestration/index.d.ts.map +1 -0
- package/dist/media-orchestration/index.js +2 -0
- package/dist/media-orchestration/index.js.map +1 -0
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/persistent.d.ts +78 -0
- package/dist/memory/persistent.d.ts.map +1 -0
- package/dist/memory/persistent.js +254 -0
- package/dist/memory/persistent.js.map +1 -0
- package/dist/memory-isolation/engine.d.ts +83 -0
- package/dist/memory-isolation/engine.d.ts.map +1 -0
- package/dist/memory-isolation/engine.js +247 -0
- package/dist/memory-isolation/engine.js.map +1 -0
- package/dist/memory-isolation/index.d.ts +3 -0
- package/dist/memory-isolation/index.d.ts.map +1 -0
- package/dist/memory-isolation/index.js +2 -0
- package/dist/memory-isolation/index.js.map +1 -0
- package/dist/message-dedupe/engine.d.ts +67 -0
- package/dist/message-dedupe/engine.d.ts.map +1 -0
- package/dist/message-dedupe/engine.js +208 -0
- package/dist/message-dedupe/engine.js.map +1 -0
- package/dist/message-dedupe/index.d.ts +3 -0
- package/dist/message-dedupe/index.d.ts.map +1 -0
- package/dist/message-dedupe/index.js +2 -0
- package/dist/message-dedupe/index.js.map +1 -0
- package/dist/monitoring/index.d.ts +3 -0
- package/dist/monitoring/index.d.ts.map +1 -0
- package/dist/monitoring/index.js +2 -0
- package/dist/monitoring/index.js.map +1 -0
- package/dist/monitoring/leak-detector.d.ts +63 -0
- package/dist/monitoring/leak-detector.d.ts.map +1 -0
- package/dist/monitoring/leak-detector.js +169 -0
- package/dist/monitoring/leak-detector.js.map +1 -0
- package/dist/monitoring/runtime-health.d.ts +14 -0
- package/dist/monitoring/runtime-health.d.ts.map +1 -0
- package/dist/monitoring/runtime-health.js +82 -0
- package/dist/monitoring/runtime-health.js.map +1 -0
- package/dist/observability/safe-log.d.ts +3 -0
- package/dist/observability/safe-log.d.ts.map +1 -0
- package/dist/observability/safe-log.js +22 -0
- package/dist/observability/safe-log.js.map +1 -0
- package/dist/outbound/index.d.ts +3 -0
- package/dist/outbound/index.d.ts.map +1 -0
- package/dist/outbound/index.js +2 -0
- package/dist/outbound/index.js.map +1 -0
- package/dist/outbound/ledger.d.ts +78 -0
- package/dist/outbound/ledger.d.ts.map +1 -0
- package/dist/outbound/ledger.js +143 -0
- package/dist/outbound/ledger.js.map +1 -0
- package/dist/owner/config.d.ts +43 -0
- package/dist/owner/config.d.ts.map +1 -0
- package/dist/owner/config.js +110 -0
- package/dist/owner/config.js.map +1 -0
- package/dist/owner/help.d.ts +2 -0
- package/dist/owner/help.d.ts.map +1 -0
- package/dist/owner/help.js +96 -0
- package/dist/owner/help.js.map +1 -0
- package/dist/owner/identity.d.ts +45 -0
- package/dist/owner/identity.d.ts.map +1 -0
- package/dist/owner/identity.js +155 -0
- package/dist/owner/identity.js.map +1 -0
- package/dist/owner/index.d.ts +7 -0
- package/dist/owner/index.d.ts.map +1 -0
- package/dist/owner/index.js +4 -0
- package/dist/owner/index.js.map +1 -0
- package/dist/owner/ocr-help.d.ts +2 -0
- package/dist/owner/ocr-help.d.ts.map +1 -0
- package/dist/owner/ocr-help.js +13 -0
- package/dist/owner/ocr-help.js.map +1 -0
- package/dist/owner/router.d.ts +47 -0
- package/dist/owner/router.d.ts.map +1 -0
- package/dist/owner/router.js +229 -0
- package/dist/owner/router.js.map +1 -0
- package/dist/prompts/registry.d.ts +19 -0
- package/dist/prompts/registry.d.ts.map +1 -0
- package/dist/prompts/registry.js +64 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/scheduler/alias-planner.d.ts +9 -0
- package/dist/scheduler/alias-planner.d.ts.map +1 -0
- package/dist/scheduler/alias-planner.js +57 -0
- package/dist/scheduler/alias-planner.js.map +1 -0
- package/dist/scheduler/runner.d.ts +16 -0
- package/dist/scheduler/runner.d.ts.map +1 -0
- package/dist/scheduler/runner.js +40 -0
- package/dist/scheduler/runner.js.map +1 -0
- package/dist/scheduler/store.d.ts +35 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +104 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/time.d.ts +8 -0
- package/dist/scheduler/time.d.ts.map +1 -0
- package/dist/scheduler/time.js +248 -0
- package/dist/scheduler/time.js.map +1 -0
- package/dist/security/backup.d.ts +69 -0
- package/dist/security/backup.d.ts.map +1 -0
- package/dist/security/backup.js +319 -0
- package/dist/security/backup.js.map +1 -0
- package/dist/security/index.d.ts +7 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +4 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/red-team.d.ts +52 -0
- package/dist/security/red-team.d.ts.map +1 -0
- package/dist/security/red-team.js +249 -0
- package/dist/security/red-team.js.map +1 -0
- package/dist/security/tester.d.ts +65 -0
- package/dist/security/tester.d.ts.map +1 -0
- package/dist/security/tester.js +218 -0
- package/dist/security/tester.js.map +1 -0
- package/dist/self-improvement/index.d.ts +2 -0
- package/dist/self-improvement/index.d.ts.map +1 -0
- package/dist/self-improvement/index.js +2 -0
- package/dist/self-improvement/index.js.map +1 -0
- package/dist/self-improvement/trace-store.d.ts +27 -0
- package/dist/self-improvement/trace-store.d.ts.map +1 -0
- package/dist/self-improvement/trace-store.js +88 -0
- package/dist/self-improvement/trace-store.js.map +1 -0
- package/dist/session/index.d.ts +9 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +5 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/manager.d.ts +65 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +265 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/session/recovery.d.ts +44 -0
- package/dist/session/recovery.d.ts.map +1 -0
- package/dist/session/recovery.js +196 -0
- package/dist/session/recovery.js.map +1 -0
- package/dist/session/snapshot.d.ts +70 -0
- package/dist/session/snapshot.d.ts.map +1 -0
- package/dist/session/snapshot.js +268 -0
- package/dist/session/snapshot.js.map +1 -0
- package/dist/session/validator.d.ts +56 -0
- package/dist/session/validator.d.ts.map +1 -0
- package/dist/session/validator.js +247 -0
- package/dist/session/validator.js.map +1 -0
- package/dist/support/store.d.ts +91 -0
- package/dist/support/store.d.ts.map +1 -0
- package/dist/support/store.js +352 -0
- package/dist/support/store.js.map +1 -0
- package/dist/test/setup-env.d.ts +2 -0
- package/dist/test/setup-env.d.ts.map +1 -0
- package/dist/test/setup-env.js +34 -0
- package/dist/test/setup-env.js.map +1 -0
- package/dist/tool-runtime/access-policy.d.ts +25 -0
- package/dist/tool-runtime/access-policy.d.ts.map +1 -0
- package/dist/tool-runtime/access-policy.js +42 -0
- package/dist/tool-runtime/access-policy.js.map +1 -0
- package/dist/tool-runtime/audit.d.ts +13 -0
- package/dist/tool-runtime/audit.d.ts.map +1 -0
- package/dist/tool-runtime/audit.js +34 -0
- package/dist/tool-runtime/audit.js.map +1 -0
- package/dist/tool-runtime/engine.d.ts +154 -0
- package/dist/tool-runtime/engine.d.ts.map +1 -0
- package/dist/tool-runtime/engine.js +236 -0
- package/dist/tool-runtime/engine.js.map +1 -0
- package/dist/tool-runtime/http-executor.d.ts +19 -0
- package/dist/tool-runtime/http-executor.d.ts.map +1 -0
- package/dist/tool-runtime/http-executor.js +85 -0
- package/dist/tool-runtime/http-executor.js.map +1 -0
- package/dist/tool-runtime/identity.d.ts +25 -0
- package/dist/tool-runtime/identity.d.ts.map +1 -0
- package/dist/tool-runtime/identity.js +55 -0
- package/dist/tool-runtime/identity.js.map +1 -0
- package/dist/tool-runtime/index.d.ts +3 -0
- package/dist/tool-runtime/index.d.ts.map +1 -0
- package/dist/tool-runtime/index.js +2 -0
- package/dist/tool-runtime/index.js.map +1 -0
- package/dist/tool-runtime/manifest-loader.d.ts +6 -0
- package/dist/tool-runtime/manifest-loader.d.ts.map +1 -0
- package/dist/tool-runtime/manifest-loader.js +23 -0
- package/dist/tool-runtime/manifest-loader.js.map +1 -0
- package/dist/tool-runtime/manifest.d.ts +71 -0
- package/dist/tool-runtime/manifest.d.ts.map +1 -0
- package/dist/tool-runtime/manifest.js +467 -0
- package/dist/tool-runtime/manifest.js.map +1 -0
- package/dist/tool-runtime/mcp-executor.d.ts +12 -0
- package/dist/tool-runtime/mcp-executor.d.ts.map +1 -0
- package/dist/tool-runtime/mcp-executor.js +102 -0
- package/dist/tool-runtime/mcp-executor.js.map +1 -0
- package/dist/tool-runtime/multipart.d.ts +12 -0
- package/dist/tool-runtime/multipart.d.ts.map +1 -0
- package/dist/tool-runtime/multipart.js +47 -0
- package/dist/tool-runtime/multipart.js.map +1 -0
- package/dist/tool-runtime/oauth.d.ts +18 -0
- package/dist/tool-runtime/oauth.d.ts.map +1 -0
- package/dist/tool-runtime/oauth.js +80 -0
- package/dist/tool-runtime/oauth.js.map +1 -0
- package/dist/tool-runtime/orchestrator.d.ts +38 -0
- package/dist/tool-runtime/orchestrator.d.ts.map +1 -0
- package/dist/tool-runtime/orchestrator.js +117 -0
- package/dist/tool-runtime/orchestrator.js.map +1 -0
- package/dist/tool-runtime/planner.d.ts +23 -0
- package/dist/tool-runtime/planner.d.ts.map +1 -0
- package/dist/tool-runtime/planner.js +126 -0
- package/dist/tool-runtime/planner.js.map +1 -0
- package/dist/tool-runtime/policy.d.ts +23 -0
- package/dist/tool-runtime/policy.d.ts.map +1 -0
- package/dist/tool-runtime/policy.js +48 -0
- package/dist/tool-runtime/policy.js.map +1 -0
- package/dist/tool-runtime/response-template.d.ts +20 -0
- package/dist/tool-runtime/response-template.d.ts.map +1 -0
- package/dist/tool-runtime/response-template.js +87 -0
- package/dist/tool-runtime/response-template.js.map +1 -0
- package/dist/tool-runtime/workflow-runner.d.ts +13 -0
- package/dist/tool-runtime/workflow-runner.d.ts.map +1 -0
- package/dist/tool-runtime/workflow-runner.js +61 -0
- package/dist/tool-runtime/workflow-runner.js.map +1 -0
- package/dist/tools/crunchtrova.d.ts +78 -0
- package/dist/tools/crunchtrova.d.ts.map +1 -0
- package/dist/tools/crunchtrova.js +378 -0
- package/dist/tools/crunchtrova.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/input-guard.d.ts +8 -0
- package/dist/tools/input-guard.d.ts.map +1 -0
- package/dist/tools/input-guard.js +41 -0
- package/dist/tools/input-guard.js.map +1 -0
- package/dist/tools/llm-tool-definitions.d.ts +4 -0
- package/dist/tools/llm-tool-definitions.d.ts.map +1 -0
- package/dist/tools/llm-tool-definitions.js +30 -0
- package/dist/tools/llm-tool-definitions.js.map +1 -0
- package/dist/tools/model-manager.d.ts +29 -0
- package/dist/tools/model-manager.d.ts.map +1 -0
- package/dist/tools/model-manager.js +118 -0
- package/dist/tools/model-manager.js.map +1 -0
- package/dist/tools/registry.d.ts +41 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +325 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search-orchestrator.d.ts +74 -0
- package/dist/tools/search-orchestrator.d.ts.map +1 -0
- package/dist/tools/search-orchestrator.js +174 -0
- package/dist/tools/search-orchestrator.js.map +1 -0
- package/dist/tools/tool-catalog-config.d.ts +103 -0
- package/dist/tools/tool-catalog-config.d.ts.map +1 -0
- package/dist/tools/tool-catalog-config.js +185 -0
- package/dist/tools/tool-catalog-config.js.map +1 -0
- package/dist/tools/tool-catalog.d.ts +24 -0
- package/dist/tools/tool-catalog.d.ts.map +1 -0
- package/dist/tools/tool-catalog.js +62 -0
- package/dist/tools/tool-catalog.js.map +1 -0
- package/dist/tools/tool-command-synthesis.d.ts +22 -0
- package/dist/tools/tool-command-synthesis.d.ts.map +1 -0
- package/dist/tools/tool-command-synthesis.js +17 -0
- package/dist/tools/tool-command-synthesis.js.map +1 -0
- package/dist/tools/tool-policy.d.ts +21 -0
- package/dist/tools/tool-policy.d.ts.map +1 -0
- package/dist/tools/tool-policy.js +66 -0
- package/dist/tools/tool-policy.js.map +1 -0
- package/dist/usage/tracker.d.ts +35 -0
- package/dist/usage/tracker.d.ts.map +1 -0
- package/dist/usage/tracker.js +141 -0
- package/dist/usage/tracker.js.map +1 -0
- package/dist/validation/event-matrix.d.ts +41 -0
- package/dist/validation/event-matrix.d.ts.map +1 -0
- package/dist/validation/event-matrix.js +119 -0
- package/dist/validation/event-matrix.js.map +1 -0
- package/dist/validation/failure-simulator.d.ts +40 -0
- package/dist/validation/failure-simulator.d.ts.map +1 -0
- package/dist/validation/failure-simulator.js +216 -0
- package/dist/validation/failure-simulator.js.map +1 -0
- package/dist/validation/function-verifier.d.ts +48 -0
- package/dist/validation/function-verifier.d.ts.map +1 -0
- package/dist/validation/function-verifier.js +128 -0
- package/dist/validation/function-verifier.js.map +1 -0
- package/dist/validation/index.d.ts +14 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +9 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/route-inventory.d.ts +39 -0
- package/dist/validation/route-inventory.d.ts.map +1 -0
- package/dist/validation/route-inventory.js +413 -0
- package/dist/validation/route-inventory.js.map +1 -0
- package/dist/validation/state-machine.d.ts +51 -0
- package/dist/validation/state-machine.d.ts.map +1 -0
- package/dist/validation/state-machine.js +217 -0
- package/dist/validation/state-machine.js.map +1 -0
- package/dist/voice-pipeline/combined.d.ts +145 -0
- package/dist/voice-pipeline/combined.d.ts.map +1 -0
- package/dist/voice-pipeline/combined.js +166 -0
- package/dist/voice-pipeline/combined.js.map +1 -0
- package/dist/voice-pipeline/groq-whisper.d.ts +29 -0
- package/dist/voice-pipeline/groq-whisper.d.ts.map +1 -0
- package/dist/voice-pipeline/groq-whisper.js +138 -0
- package/dist/voice-pipeline/groq-whisper.js.map +1 -0
- package/dist/voice-pipeline/index.d.ts +5 -0
- package/dist/voice-pipeline/index.d.ts.map +1 -0
- package/dist/voice-pipeline/index.js +3 -0
- package/dist/voice-pipeline/index.js.map +1 -0
- package/docs/CLAUDE_STYLE_TOOLING_HANDOVER.md +1188 -0
- package/docs/admin-cli-security.md +71 -0
- package/docs/async-job-implementation-status.md +88 -0
- package/docs/async-job-workflow.md +175 -0
- package/docs/auth-persistence.md +18 -0
- package/docs/baileys-resilience.md +103 -0
- package/docs/chatbot-architecture-research-plan.md +80 -0
- package/docs/config-write-commands.md +78 -0
- package/docs/connector-implementation-playbook.md +182 -0
- package/docs/custom-connectors.md +167 -0
- package/docs/docker.md +76 -0
- package/docs/installation.md +384 -0
- package/docs/media-worker.md +114 -0
- package/docs/npm-install.md +75 -0
- package/docs/production-bot-guide.md +499 -0
- package/docs/production-handover.md +255 -0
- package/docs/production-monitoring.md +117 -0
- package/docs/routing-state-machine.md +47 -0
- package/docs/support-inbox-milestones.md +159 -0
- package/docs/tool-configuration-guide.md +257 -0
- package/docs/tool-plugin-and-packaging-roadmap.md +278 -0
- package/package.json +55 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Admin CLI Security
|
|
2
|
+
|
|
3
|
+
Branch: `feature/runtime-admin-milestone`
|
|
4
|
+
|
|
5
|
+
This document covers the new local admin CLI commands for auth/session management, model choices, and API keys.
|
|
6
|
+
|
|
7
|
+
## Auth/session commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm run cli -- auth status
|
|
11
|
+
npm run cli -- auth backup
|
|
12
|
+
npm run cli -- auth reset --yes
|
|
13
|
+
npm run cli -- auth logout --yes
|
|
14
|
+
npm run cli -- auth login --print
|
|
15
|
+
npm run cli -- auth login --reset --yes --print
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Behavior:
|
|
19
|
+
|
|
20
|
+
- `auth status` checks whether the local auth state file exists. It never prints credential contents.
|
|
21
|
+
- `auth backup` copies the auth state to a timestamped backup beside the auth file.
|
|
22
|
+
- `auth reset --yes` and `auth logout --yes` back up the auth state and remove the local file.
|
|
23
|
+
- `auth login --print` prints the worker command that will start the gateway and show QR/pairing output when no auth state exists.
|
|
24
|
+
- `auth login --reset --yes` resets local auth first, then starts the login flow unless `--print` is also provided.
|
|
25
|
+
|
|
26
|
+
This is local session management. It does not call WhatsApp logout while the gateway socket is offline. The next gateway start will require pairing again when the auth file is missing.
|
|
27
|
+
|
|
28
|
+
## Local keys and models
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm run cli -- secrets status
|
|
32
|
+
npm run cli -- secrets list
|
|
33
|
+
npm run cli -- secrets set openrouter --from-env OPENROUTER_API_KEY_INPUT
|
|
34
|
+
npm run cli -- secrets unset openrouter --yes
|
|
35
|
+
npm run cli -- models choose openrouter openai/gpt-4o-mini
|
|
36
|
+
npm run cli -- tools key crunchtrova --from-env CRUNCHTROVA_API_INPUT
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Rules:
|
|
40
|
+
|
|
41
|
+
- Raw secret values are not accepted directly as CLI arguments.
|
|
42
|
+
- Secrets are read from an environment variable using `--from-env`.
|
|
43
|
+
- Secret values are written to the local `.env` file only.
|
|
44
|
+
- Secret values are masked in status output.
|
|
45
|
+
- Only allowlisted keys can be written.
|
|
46
|
+
- Model choices are non-secret but still validated and written to `.env`.
|
|
47
|
+
- Restart the gateway after changing `.env` values.
|
|
48
|
+
|
|
49
|
+
## Why this design
|
|
50
|
+
|
|
51
|
+
Credentials should not be stored in tracked config files. This project already loads `.env` for model providers and tool keys, so the CLI edits `.env` rather than `config/*.json`.
|
|
52
|
+
|
|
53
|
+
The CLI is intentionally non-interactive in tests and automation. For human use, export a temporary environment variable, run the CLI command, then clear the variable from your shell.
|
|
54
|
+
|
|
55
|
+
Example:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
export OPENROUTER_API_KEY_INPUT='your-key-here'
|
|
59
|
+
npm run cli -- secrets set openrouter --from-env OPENROUTER_API_KEY_INPUT
|
|
60
|
+
unset OPENROUTER_API_KEY_INPUT
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Validation
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run build
|
|
67
|
+
npm test -- src/auth/__tests__/session-admin.test.ts
|
|
68
|
+
npm test -- src/config/__tests__/local-env-editor.test.ts
|
|
69
|
+
npm test -- src/cli/__tests__/cli-auth-secrets.test.ts
|
|
70
|
+
npm test
|
|
71
|
+
```
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Async Job Implementation Status
|
|
2
|
+
|
|
3
|
+
Status: implemented on `work/v2-async-job-store`.
|
|
4
|
+
|
|
5
|
+
Last verified local suite after the runtime hook:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Test Files 131 passed (131)
|
|
9
|
+
Tests 941 passed (941)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Implemented flow
|
|
13
|
+
|
|
14
|
+
The runtime can now create a durable async job before sending the first WhatsApp acknowledgement.
|
|
15
|
+
|
|
16
|
+
1. Customer sends a normal message.
|
|
17
|
+
2. `ConversationRuntime` runs owner commands, slash guidance, deterministic built-ins, secure private tools, and private-domain safety gates first.
|
|
18
|
+
3. `AsyncJobRequestController` checks direct-tool intent and the configured tool catalog.
|
|
19
|
+
4. A job is created only when the selected catalog tool is enabled, public, not owner-only, and `asyncEligible: true`.
|
|
20
|
+
5. `AsyncJobStore.enqueue` persists the job before the acknowledgement is returned.
|
|
21
|
+
6. The first acknowledgement is:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
I’m checking that now.
|
|
25
|
+
Reference: job <id>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
7. `Gateway` starts the async worker only when `ASYNC_JOB_WORKER_ENABLED=true`.
|
|
29
|
+
8. The worker claims queued jobs, executes configured tools through `AsyncToolProcessor`, and sends the second WhatsApp message through gateway delivery.
|
|
30
|
+
|
|
31
|
+
## Main files
|
|
32
|
+
|
|
33
|
+
- `src/async-jobs/job-store.ts`
|
|
34
|
+
- `src/async-jobs/job-runner.ts`
|
|
35
|
+
- `src/async-jobs/job-worker.ts`
|
|
36
|
+
- `src/async-jobs/job-delivery.ts`
|
|
37
|
+
- `src/async-jobs/tool-processor.ts`
|
|
38
|
+
- `src/async-jobs/gateway-worker.ts`
|
|
39
|
+
- `src/async-jobs/request-controller.ts`
|
|
40
|
+
- `src/conversation/runtime-production.ts`
|
|
41
|
+
- `src/gateway/server.ts`
|
|
42
|
+
- `src/tools/tool-catalog-config.ts`
|
|
43
|
+
|
|
44
|
+
## Owner audit commands
|
|
45
|
+
|
|
46
|
+
Implemented and owner-only:
|
|
47
|
+
|
|
48
|
+
- `/jobs`
|
|
49
|
+
- `/jobs <status>`
|
|
50
|
+
- `/jobs <status> <limit>`
|
|
51
|
+
- `/job <id>`
|
|
52
|
+
- `/cancel_job <id>`
|
|
53
|
+
|
|
54
|
+
## Config
|
|
55
|
+
|
|
56
|
+
Start worker:
|
|
57
|
+
|
|
58
|
+
```env
|
|
59
|
+
ASYNC_JOB_WORKER_ENABLED=true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Optional:
|
|
63
|
+
|
|
64
|
+
```env
|
|
65
|
+
ASYNC_JOB_WORKER_INTERVAL_MS=15000
|
|
66
|
+
ASYNC_JOB_WORKER_LIMIT=5
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Tool eligibility:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"public": true,
|
|
74
|
+
"ownerOnly": false,
|
|
75
|
+
"asyncEligible": true
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Remaining manual checks before merging
|
|
80
|
+
|
|
81
|
+
- Run a clean full suite from `work/v2-async-job-store`.
|
|
82
|
+
- Run Docker compose with persisted `data` mounts.
|
|
83
|
+
- Enable `ASYNC_JOB_WORKER_ENABLED=true`.
|
|
84
|
+
- Send a live WhatsApp customer latest-news/search request.
|
|
85
|
+
- Confirm Message 1 appears only after the job row exists.
|
|
86
|
+
- Confirm Message 2 is sent by the worker.
|
|
87
|
+
- Confirm customer slash `/news`, `/search`, and `/fetch` remain blocked or guided.
|
|
88
|
+
- Confirm `/jobs`, `/job <id>`, and `/cancel_job <id>` are owner-only.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Durable Async Job Workflow
|
|
2
|
+
|
|
3
|
+
Status: design guardrail and implementation plan. Do not treat this as complete runtime behavior until code, tests, Docker checks, and live WhatsApp checks pass.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
The bot must never create a two-message flow just because the model wrote a promise. A delayed result is allowed only when the runtime has persisted a job first.
|
|
8
|
+
|
|
9
|
+
Required shape:
|
|
10
|
+
|
|
11
|
+
1. Inbound WhatsApp message enters the gateway.
|
|
12
|
+
2. Runtime routes the request through deterministic gates.
|
|
13
|
+
3. A planner may propose a job, but cannot execute it directly.
|
|
14
|
+
4. Runtime validates the proposed job against configured tools, access policy, schema, and async eligibility.
|
|
15
|
+
5. Runtime persists the job record.
|
|
16
|
+
6. Gateway sends the immediate acknowledgement only after persistence succeeds.
|
|
17
|
+
7. Worker claims the job, executes the configured tool, records success or failure, and sends the second WhatsApp message.
|
|
18
|
+
8. Logs and audit retain full technical details while WhatsApp receives safe wording.
|
|
19
|
+
|
|
20
|
+
## Non-negotiables
|
|
21
|
+
|
|
22
|
+
- No hardcoded tool routing in TypeScript.
|
|
23
|
+
- No arbitrary customer slash tools.
|
|
24
|
+
- No model-only promise of a future reply.
|
|
25
|
+
- No private account data guessed by the model.
|
|
26
|
+
- No environment-specific paths in code or tests.
|
|
27
|
+
- No in-memory-only async jobs.
|
|
28
|
+
- No customer access to owner-only tools.
|
|
29
|
+
- No unstructured tool failure treated as a valid result.
|
|
30
|
+
|
|
31
|
+
## Recommended gate order
|
|
32
|
+
|
|
33
|
+
1. Owner/admin commands.
|
|
34
|
+
2. Customer slash-command guidance.
|
|
35
|
+
3. Deterministic built-ins, such as date/time and capability summary.
|
|
36
|
+
4. Secure private business tools with identity, approval, and verification policy.
|
|
37
|
+
5. Configured public tools from tool JSON.
|
|
38
|
+
6. Async job proposal gate for tools that explicitly allow async mode.
|
|
39
|
+
7. Transactional support cases.
|
|
40
|
+
8. Ordinary complaint handling.
|
|
41
|
+
9. Normal AI chat with no live/current claims unless backed by a tool result.
|
|
42
|
+
|
|
43
|
+
## Job record
|
|
44
|
+
|
|
45
|
+
A durable job should store at least:
|
|
46
|
+
|
|
47
|
+
- job_id
|
|
48
|
+
- chat_jid
|
|
49
|
+
- sender_jid
|
|
50
|
+
- original_message_id
|
|
51
|
+
- original_text
|
|
52
|
+
- tool_name
|
|
53
|
+
- tool_args
|
|
54
|
+
- status
|
|
55
|
+
- attempts
|
|
56
|
+
- max_attempts
|
|
57
|
+
- created_at
|
|
58
|
+
- updated_at
|
|
59
|
+
- scheduled_for
|
|
60
|
+
- started_at
|
|
61
|
+
- completed_at
|
|
62
|
+
- last_error
|
|
63
|
+
- result_preview
|
|
64
|
+
- correlation_id
|
|
65
|
+
|
|
66
|
+
Allowed statuses:
|
|
67
|
+
|
|
68
|
+
- queued
|
|
69
|
+
- running
|
|
70
|
+
- succeeded
|
|
71
|
+
- failed
|
|
72
|
+
- cancelled
|
|
73
|
+
- expired
|
|
74
|
+
|
|
75
|
+
## Persistence recommendation
|
|
76
|
+
|
|
77
|
+
Use the existing runtime data directory and database layer where possible. This project already depends on SQLite through `better-sqlite3`, so the first implementation should prefer SQLite-backed persistence over Redis or external infrastructure unless a future scale requirement proves otherwise.
|
|
78
|
+
|
|
79
|
+
The worker must use leases or status transitions so the same job is not processed twice after restart. Duplicate inbound WhatsApp events should map to the same job through an idempotency key based on channel, chat JID, sender JID, and original message ID.
|
|
80
|
+
|
|
81
|
+
## Tool contract
|
|
82
|
+
|
|
83
|
+
Async jobs may only run configured tools. The selected tool must be:
|
|
84
|
+
|
|
85
|
+
- present in the configured catalog or manifest
|
|
86
|
+
- enabled
|
|
87
|
+
- allowed for the actor and chat type
|
|
88
|
+
- allowed for the requested execution mode
|
|
89
|
+
- valid against its input schema
|
|
90
|
+
- within timeout, retry, and response-size limits
|
|
91
|
+
|
|
92
|
+
A tool result must distinguish success from error. A failed upstream call, schema failure, timeout, or unsafe output must become a structured job failure, not a normal answer.
|
|
93
|
+
|
|
94
|
+
## Worker behavior
|
|
95
|
+
|
|
96
|
+
The worker should:
|
|
97
|
+
|
|
98
|
+
1. Claim queued jobs whose scheduled time has arrived.
|
|
99
|
+
2. Mark the job running with a start timestamp.
|
|
100
|
+
3. Execute the configured tool with validated args.
|
|
101
|
+
4. Record a structured result or structured error.
|
|
102
|
+
5. Send exactly one completion message to the originating chat.
|
|
103
|
+
6. Mark the job terminal.
|
|
104
|
+
7. Preserve technical error details in logs and audit.
|
|
105
|
+
|
|
106
|
+
If the process restarts, startup recovery should move stale running jobs back to queued or failed based on lease age and attempts.
|
|
107
|
+
|
|
108
|
+
## User-facing wording
|
|
109
|
+
|
|
110
|
+
Immediate acknowledgement, only after persistence:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
I am checking this now and will send the result here shortly. Reference: job #<id>.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Safe failure:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
I could not complete that check. The issue has been logged for review. Reference: job #<id>.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Normal chat fallback when no durable job exists:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
I cannot send a follow-up later from this chat unless a background job is created. I can only answer in this current WhatsApp reply using verified context or a configured tool result.
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Owner audit commands for a later phase
|
|
129
|
+
|
|
130
|
+
- `/jobs`
|
|
131
|
+
- `/job <id>`
|
|
132
|
+
- `/cancel_job <id>`
|
|
133
|
+
|
|
134
|
+
These must remain owner-only.
|
|
135
|
+
|
|
136
|
+
## Test checklist
|
|
137
|
+
|
|
138
|
+
Add tests for:
|
|
139
|
+
|
|
140
|
+
- no future-reply wording from normal AI chat
|
|
141
|
+
- job is persisted before acknowledgement
|
|
142
|
+
- duplicate inbound message does not create duplicate jobs
|
|
143
|
+
- running job recovery after restart
|
|
144
|
+
- success path sends second message once
|
|
145
|
+
- failure path sends safe second message and logs technical error
|
|
146
|
+
- timeout moves job to failed or expired
|
|
147
|
+
- cancelled jobs do not execute
|
|
148
|
+
- disabled tools cannot create jobs
|
|
149
|
+
- tools without async eligibility cannot create jobs
|
|
150
|
+
- customers cannot invoke owner-only tools through async routing
|
|
151
|
+
- group chats remain quiet unless explicitly allowed
|
|
152
|
+
|
|
153
|
+
## Implementation phases
|
|
154
|
+
|
|
155
|
+
Phase 1: Safety guard and docs.
|
|
156
|
+
|
|
157
|
+
- Add or keep a response sanitizer that blocks future-reply promises unless a durable job reference is present.
|
|
158
|
+
- Add focused tests for that guard.
|
|
159
|
+
- Keep public live/current requests either same-turn through configured tools or honest about being unable to verify.
|
|
160
|
+
|
|
161
|
+
Phase 2: Configured public-tool routing.
|
|
162
|
+
|
|
163
|
+
- Extend tool JSON with natural-language metadata.
|
|
164
|
+
- Runtime asks the tool catalog which tools are eligible.
|
|
165
|
+
- Synchronous eligible tools answer in the same reply.
|
|
166
|
+
- Async-eligible tools can proceed to the job gate.
|
|
167
|
+
|
|
168
|
+
Phase 3: Durable jobs.
|
|
169
|
+
|
|
170
|
+
- Add job store.
|
|
171
|
+
- Add job worker.
|
|
172
|
+
- Add idempotency.
|
|
173
|
+
- Add restart recovery.
|
|
174
|
+
- Add owner audit commands.
|
|
175
|
+
- Add live WhatsApp verification.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Baileys Auth Persistence
|
|
2
|
+
|
|
3
|
+
Keep this behavior unchanged.
|
|
4
|
+
|
|
5
|
+
- Auth path in Docker: `/app/data/auth_state.json`.
|
|
6
|
+
- Host volume: `${CHATBOT_DATA_DIR:-./data}:/app/data`.
|
|
7
|
+
- Never bake auth into Docker.
|
|
8
|
+
- Save immediately on `creds.update`.
|
|
9
|
+
- Save again after `connection.open`.
|
|
10
|
+
- Never persist completely empty `initAuthCreds()` as a real session.
|
|
11
|
+
- Never overwrite a paired identity with a non-identity auth state.
|
|
12
|
+
- Safe stop command: `docker compose stop -t 30 wa-chatbot`.
|
|
13
|
+
|
|
14
|
+
Healthy auth state should show:
|
|
15
|
+
|
|
16
|
+
- registered: true
|
|
17
|
+
- hasMe: true
|
|
18
|
+
- keyBuckets: 8 or more
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Baileys Resilience
|
|
2
|
+
|
|
3
|
+
Branch: `feature/v2.7-baileys-resilience`
|
|
4
|
+
|
|
5
|
+
This milestone strengthens reconnect behavior without changing customer, owner, group, or tool-command policy.
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
This branch focuses on WhatsApp/Baileys runtime resilience only:
|
|
10
|
+
|
|
11
|
+
- Terminal disconnect handling.
|
|
12
|
+
- Bad-session loop prevention.
|
|
13
|
+
- Rapid reconnect loop circuit breaking.
|
|
14
|
+
- Pending reconnect timer cleanup.
|
|
15
|
+
- Tests for known reconnect edge cases.
|
|
16
|
+
|
|
17
|
+
It does not add custom HTTP tools, prompt changes, customer command access, owner policy changes, or tool catalog changes.
|
|
18
|
+
|
|
19
|
+
## Reconnect behavior
|
|
20
|
+
|
|
21
|
+
The reconnect manager still has one job: decide whether a closed Baileys connection should reconnect.
|
|
22
|
+
|
|
23
|
+
Reconnects are allowed for transient failures such as timeout or closed connection.
|
|
24
|
+
|
|
25
|
+
Reconnects are blocked for terminal session failures:
|
|
26
|
+
|
|
27
|
+
- Bad session.
|
|
28
|
+
- Logged out.
|
|
29
|
+
- Forbidden.
|
|
30
|
+
- Connection replaced.
|
|
31
|
+
- Multi-device mismatch.
|
|
32
|
+
- Device removed strings mapped to logged out.
|
|
33
|
+
|
|
34
|
+
A terminal disconnect now latches until a clean `open` event or process/session reset. This prevents a later close event from accidentally restarting a known-invalid session.
|
|
35
|
+
|
|
36
|
+
## Restart-required behavior
|
|
37
|
+
|
|
38
|
+
`restartRequired` remains special. It schedules an immediate reconnect because this is part of the normal Baileys pairing/restart lifecycle.
|
|
39
|
+
|
|
40
|
+
If restart-required events repeat too quickly, the rapid-loop circuit breaker can still pause reconnect attempts. This prevents a tight 515 loop from burning CPU or spamming logs.
|
|
41
|
+
|
|
42
|
+
## Rapid-loop circuit breaker
|
|
43
|
+
|
|
44
|
+
Defaults:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
rapidWindowMs=60000
|
|
48
|
+
maxRapidAttempts=5
|
|
49
|
+
rapidPauseMs=300000
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Meaning: after more than 5 reconnect schedules inside 60 seconds, the next reconnect is delayed for at least 5 minutes.
|
|
53
|
+
|
|
54
|
+
The circuit breaker can be tuned in tests through `ReconnectConfig`, but production defaults are intentionally conservative.
|
|
55
|
+
|
|
56
|
+
## Tests added
|
|
57
|
+
|
|
58
|
+
The reconnect manager tests now cover:
|
|
59
|
+
|
|
60
|
+
- Logout/replaced/device-removed terminal cases.
|
|
61
|
+
- Bad session terminal behavior.
|
|
62
|
+
- Immediate restart-required reconnect.
|
|
63
|
+
- Transient backoff reconnect.
|
|
64
|
+
- Rapid-loop pause after repeated reconnects.
|
|
65
|
+
- Terminal disconnect clearing a pending reconnect timer.
|
|
66
|
+
- Reset after successful open connection.
|
|
67
|
+
|
|
68
|
+
Run:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npm test -- src/gateway/reconnect/__tests__/manager.test.ts
|
|
72
|
+
npm test
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Validation checklist
|
|
76
|
+
|
|
77
|
+
Before merging:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm run build
|
|
81
|
+
npm test
|
|
82
|
+
npm run cli -- health
|
|
83
|
+
npm run cli -- config validate
|
|
84
|
+
docker compose config
|
|
85
|
+
docker compose build --no-cache
|
|
86
|
+
docker compose run --rm wa-chatbot node dist/cli/index.js health
|
|
87
|
+
docker compose run --rm wa-chatbot node dist/cli/index.js config validate
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Then run the normal WhatsApp smoke path and confirm Docker still reaches:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
READY — processing messages now
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Guardrails
|
|
97
|
+
|
|
98
|
+
- Do not reconnect forever after bad session or logout.
|
|
99
|
+
- Do not fight another active WhatsApp session after connection replacement.
|
|
100
|
+
- Do not let a terminal disconnect leave an old reconnect timer alive.
|
|
101
|
+
- Do not let repeated disconnects create a tight reconnect loop.
|
|
102
|
+
- Do not change customer slash tool blocking.
|
|
103
|
+
- Do not start v2.3 custom tools from this branch.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Chatbot Architecture Research Plan
|
|
2
|
+
|
|
3
|
+
Date: 2026-06-28
|
|
4
|
+
Branch: feature/support-inbox-profiles-labels
|
|
5
|
+
|
|
6
|
+
This document records the next implementation direction for the WhatsApp chatbot.
|
|
7
|
+
|
|
8
|
+
Decision: keep the current chatbot architecture. Do not port the full OpenClaw or Hermes Agent runtime. This repo is scoped to customer chat, owner controls, support inbox, media handling, search/news/fetch, and diagnostics.
|
|
9
|
+
|
|
10
|
+
## Status
|
|
11
|
+
|
|
12
|
+
Completed in this implementation pass:
|
|
13
|
+
|
|
14
|
+
- [x] Add a chatbot config service with safe defaults.
|
|
15
|
+
- [x] Add config/chatbot.config.json and config/chatbot.config.schema.json.
|
|
16
|
+
- [x] Keep private keys in local environment only; use config for non-private behavior.
|
|
17
|
+
- [x] Parse native WhatsApp mentions from message context info.
|
|
18
|
+
- [x] Add group activation gate: direct chats process normally; group chats reply only when mentioned by default.
|
|
19
|
+
- [x] Store unmentioned group messages as quiet context only.
|
|
20
|
+
- [x] Prevent unmentioned group messages from calling AI or tools.
|
|
21
|
+
- [x] Add group status command for the owner.
|
|
22
|
+
- [x] Move search/news/fetch orchestration out of AIEngine into a tool layer.
|
|
23
|
+
- [x] Add structured tool diagnostics with provider, endpoint, latency, attempts, and result count.
|
|
24
|
+
- [x] Make web search fallback and news search fallback configurable.
|
|
25
|
+
- [x] Add search status and tool status commands.
|
|
26
|
+
- [x] Add doctor command to verify config, model keys, media, search, group mode, and runtime readiness.
|
|
27
|
+
- [x] Add tests for config loading, mention parsing, group gating, search fallback, and diagnostics.
|
|
28
|
+
|
|
29
|
+
Still pending:
|
|
30
|
+
|
|
31
|
+
- [ ] Finish and push visual media caption handling if local changes are not already pushed.
|
|
32
|
+
- [ ] Run build and full local test suite, then fix any compile or regression failures.
|
|
33
|
+
- [ ] Smoke test direct chat, owner commands, group unmentioned, group mentioned, image caption, voice note, web fallback, and news behavior.
|
|
34
|
+
|
|
35
|
+
Research references:
|
|
36
|
+
|
|
37
|
+
- OpenClaw configuration: https://docs.openclaw.ai/gateway/configuration
|
|
38
|
+
- OpenClaw WhatsApp: https://docs.openclaw.ai/channels/whatsapp
|
|
39
|
+
- OpenClaw group messages: https://docs.openclaw.ai/channels/group-messages
|
|
40
|
+
- OpenClaw tools config: https://docs.openclaw.ai/gateway/config-tools
|
|
41
|
+
- Hermes Agent repo: https://github.com/NousResearch/hermes-agent
|
|
42
|
+
- Hermes configuration: https://hermes-agent.nousresearch.com/docs/user-guide/configuration
|
|
43
|
+
- Hermes architecture: https://hermes-agent.nousresearch.com/docs/developer-guide/architecture
|
|
44
|
+
- Hermes messaging: https://hermes-agent.nousresearch.com/docs/user-guide/messaging
|
|
45
|
+
- Hermes tools: https://hermes-agent.nousresearch.com/docs/user-guide/features/tools
|
|
46
|
+
- Hermes issue 38647: https://github.com/NousResearch/hermes-agent/issues/38647
|
|
47
|
+
- Hermes issue 20527: https://github.com/NousResearch/hermes-agent/issues/20527
|
|
48
|
+
|
|
49
|
+
Implementation milestones:
|
|
50
|
+
|
|
51
|
+
1. Finish and push visual media caption handling.
|
|
52
|
+
2. Add a chatbot config service with safe defaults. DONE.
|
|
53
|
+
3. Add config/chatbot.config.json and config/chatbot.config.schema.json. DONE.
|
|
54
|
+
4. Keep private keys in local environment only; use config for non-private behavior. DONE.
|
|
55
|
+
5. Parse native WhatsApp mentions from message context info. DONE.
|
|
56
|
+
6. Add group activation gate: direct chats process normally; group chats reply only when mentioned by default. DONE.
|
|
57
|
+
7. Store unmentioned group messages as quiet context only. DONE.
|
|
58
|
+
8. Prevent unmentioned group messages from calling AI or tools. DONE.
|
|
59
|
+
9. Add group status command for the owner. DONE.
|
|
60
|
+
10. Move search/news/fetch orchestration out of AIEngine into a tool layer. DONE.
|
|
61
|
+
11. Add structured tool diagnostics with provider, endpoint, latency, attempts, and result count. DONE.
|
|
62
|
+
12. Make web search fallback and news search fallback configurable. DONE.
|
|
63
|
+
13. Add search status and tool status commands. DONE.
|
|
64
|
+
14. Add doctor command to verify config, model keys, media, search, group mode, and runtime readiness. DONE.
|
|
65
|
+
15. Add tests for config loading, mention parsing, group gating, tool policy, search fallback, and diagnostics. DONE for config, mention parsing, group gating, search fallback, and diagnostics.
|
|
66
|
+
|
|
67
|
+
Reasoning:
|
|
68
|
+
|
|
69
|
+
OpenClaw provides the best pattern for configuration and group mention gating. Hermes provides the best pattern for config precedence, toolsets, and diagnostics. The current repo already has the right chatbot runtime shape, so we should borrow those patterns without adopting a full autonomous agent architecture.
|
|
70
|
+
|
|
71
|
+
Definition of done:
|
|
72
|
+
|
|
73
|
+
- Direct messages continue working.
|
|
74
|
+
- Owner commands remain owner-only.
|
|
75
|
+
- Group messages do not trigger replies unless mentioned.
|
|
76
|
+
- Mentioned group messages can reply with recent group context.
|
|
77
|
+
- Image captions route to media analysis.
|
|
78
|
+
- Voice remains Groq Whisper.
|
|
79
|
+
- Search and news are diagnosable and configurable.
|
|
80
|
+
- All tests pass.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Config Write Commands
|
|
2
|
+
|
|
3
|
+
Branch: `feature/v2.2-config-write-commands`
|
|
4
|
+
|
|
5
|
+
This milestone adds safe CLI writes for `config/chatbot.config.json` only. It does not edit `config/tools.chatbot.json` or `config/prompts.chatbot.json`.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm run cli -- config set <path> <json-value>
|
|
11
|
+
npm run cli -- config unset <path>
|
|
12
|
+
npm run cli -- config backup
|
|
13
|
+
npm run cli -- config restore <backup-file>
|
|
14
|
+
npm run cli -- config diff
|
|
15
|
+
npm run cli -- config validate
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Examples:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run cli -- config set debug.traceTools false
|
|
22
|
+
npm run cli -- config set channels.whatsapp.groups.*.activation '"always"'
|
|
23
|
+
npm run cli -- config set channels.whatsapp.groups.*.historyLimit 25
|
|
24
|
+
npm run cli -- config set channels.whatsapp.groups.*.mentionPatterns '["@?bot","@?assistant"]'
|
|
25
|
+
npm run cli -- config unset debug.traceTools
|
|
26
|
+
npm run cli -- config backup
|
|
27
|
+
npm run cli -- config diff
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
String values must be valid JSON strings, so quote them as JSON. For example, use `'"always"'`, not `always`.
|
|
31
|
+
|
|
32
|
+
## Safety behavior
|
|
33
|
+
|
|
34
|
+
- A backup is created before every successful mutation.
|
|
35
|
+
- Candidate config is validated before it is written.
|
|
36
|
+
- Writes use a temporary file followed by replacement of the target file.
|
|
37
|
+
- Written files use stable pretty JSON.
|
|
38
|
+
- Unknown paths are rejected.
|
|
39
|
+
- Unsafe internal paths such as command-policy fields are rejected.
|
|
40
|
+
- Prototype-pollution style path segments are rejected.
|
|
41
|
+
- Secret-like values are rejected. Keep secrets in `.env`.
|
|
42
|
+
- `config/tools.chatbot.json` remains read-only in this milestone.
|
|
43
|
+
|
|
44
|
+
## Editable scope
|
|
45
|
+
|
|
46
|
+
The first version intentionally supports operational chatbot settings only:
|
|
47
|
+
|
|
48
|
+
- WhatsApp channel policy and group activation settings.
|
|
49
|
+
- Web/news/fetch operational limits such as enabled flags, result counts, timeouts, cache TTL, and fetch content limit.
|
|
50
|
+
- Media enabled flags and media timeouts.
|
|
51
|
+
- Debug trace/redaction flags.
|
|
52
|
+
|
|
53
|
+
It does not allow changing owner command policy, user command restrictions, tool allowlists, high-risk tool denial, model provider names, model IDs, custom tool definitions, prompt content, or secrets.
|
|
54
|
+
|
|
55
|
+
## Validation checklist
|
|
56
|
+
|
|
57
|
+
Run this before considering the milestone complete:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm run build
|
|
61
|
+
npm test
|
|
62
|
+
npm run cli -- config validate
|
|
63
|
+
npm run cli -- config backup
|
|
64
|
+
npm run cli -- config diff
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Manual mutation smoke:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run cli -- config backup
|
|
71
|
+
npm run cli -- config set debug.traceTools false
|
|
72
|
+
npm run cli -- config get debug.traceTools
|
|
73
|
+
npm run cli -- config unset debug.traceTools
|
|
74
|
+
npm run cli -- config get debug.traceTools
|
|
75
|
+
npm run cli -- config validate
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Expected result: `debug.traceTools` becomes `false` after set, returns to the default after unset, and validation still passes.
|