@a1hvdy/cc-openclaw 0.3.2
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/LICENSE +22 -0
- package/README.md +207 -0
- package/configs/.gitkeep +0 -0
- package/configs/council-reviewer-prompt.md +82 -0
- package/configs/council-system-prompt.md +141 -0
- package/dist/scripts/bench/ab-harness.d.ts +58 -0
- package/dist/scripts/bench/ab-harness.d.ts.map +1 -0
- package/dist/scripts/bench/ab-harness.js +78 -0
- package/dist/scripts/bench/ab-harness.js.map +1 -0
- package/dist/src/channels/adapter.d.ts +103 -0
- package/dist/src/channels/adapter.d.ts.map +1 -0
- package/dist/src/channels/adapter.js +38 -0
- package/dist/src/channels/adapter.js.map +1 -0
- package/dist/src/channels/telegram/completion-summary.d.ts +22 -0
- package/dist/src/channels/telegram/completion-summary.d.ts.map +1 -0
- package/dist/src/channels/telegram/completion-summary.js +186 -0
- package/dist/src/channels/telegram/completion-summary.js.map +1 -0
- package/dist/src/channels/telegram/error-renderer.d.ts +30 -0
- package/dist/src/channels/telegram/error-renderer.d.ts.map +1 -0
- package/dist/src/channels/telegram/error-renderer.js +133 -0
- package/dist/src/channels/telegram/error-renderer.js.map +1 -0
- package/dist/src/channels/telegram/event-reducer.d.ts +34 -0
- package/dist/src/channels/telegram/event-reducer.d.ts.map +1 -0
- package/dist/src/channels/telegram/event-reducer.js +579 -0
- package/dist/src/channels/telegram/event-reducer.js.map +1 -0
- package/dist/src/channels/telegram/index.d.ts +14 -0
- package/dist/src/channels/telegram/index.d.ts.map +1 -0
- package/dist/src/channels/telegram/index.js +14 -0
- package/dist/src/channels/telegram/index.js.map +1 -0
- package/dist/src/channels/telegram/injector.d.ts +54 -0
- package/dist/src/channels/telegram/injector.d.ts.map +1 -0
- package/dist/src/channels/telegram/injector.js +200 -0
- package/dist/src/channels/telegram/injector.js.map +1 -0
- package/dist/src/channels/telegram/live-card.d.ts +230 -0
- package/dist/src/channels/telegram/live-card.d.ts.map +1 -0
- package/dist/src/channels/telegram/live-card.js +916 -0
- package/dist/src/channels/telegram/live-card.js.map +1 -0
- package/dist/src/channels/telegram/state-machine.d.ts +23 -0
- package/dist/src/channels/telegram/state-machine.d.ts.map +1 -0
- package/dist/src/channels/telegram/state-machine.js +72 -0
- package/dist/src/channels/telegram/state-machine.js.map +1 -0
- package/dist/src/channels/telegram/tool-tracker.d.ts +147 -0
- package/dist/src/channels/telegram/tool-tracker.d.ts.map +1 -0
- package/dist/src/channels/telegram/tool-tracker.js +520 -0
- package/dist/src/channels/telegram/tool-tracker.js.map +1 -0
- package/dist/src/circuit-breaker.d.ts +22 -0
- package/dist/src/circuit-breaker.d.ts.map +1 -0
- package/dist/src/circuit-breaker.js +47 -0
- package/dist/src/circuit-breaker.js.map +1 -0
- package/dist/src/command-router/cc-handler.d.ts +67 -0
- package/dist/src/command-router/cc-handler.d.ts.map +1 -0
- package/dist/src/command-router/cc-handler.js +980 -0
- package/dist/src/command-router/cc-handler.js.map +1 -0
- package/dist/src/command-router/index.d.ts +3 -0
- package/dist/src/command-router/index.d.ts.map +1 -0
- package/dist/src/command-router/index.js +2 -0
- package/dist/src/command-router/index.js.map +1 -0
- package/dist/src/constants.d.ts +132 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +140 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/council/consensus.d.ts +21 -0
- package/dist/src/council/consensus.d.ts.map +1 -0
- package/dist/src/council/consensus.js +52 -0
- package/dist/src/council/consensus.js.map +1 -0
- package/dist/src/council/council.d.ts +68 -0
- package/dist/src/council/council.d.ts.map +1 -0
- package/dist/src/council/council.js +914 -0
- package/dist/src/council/council.js.map +1 -0
- package/dist/src/council/index.d.ts +3 -0
- package/dist/src/council/index.d.ts.map +1 -0
- package/dist/src/council/index.js +3 -0
- package/dist/src/council/index.js.map +1 -0
- package/dist/src/engines/base-oneshot-session.d.ts +88 -0
- package/dist/src/engines/base-oneshot-session.d.ts.map +1 -0
- package/dist/src/engines/base-oneshot-session.js +228 -0
- package/dist/src/engines/base-oneshot-session.js.map +1 -0
- package/dist/src/engines/index.d.ts +7 -0
- package/dist/src/engines/index.d.ts.map +1 -0
- package/dist/src/engines/index.js +7 -0
- package/dist/src/engines/index.js.map +1 -0
- package/dist/src/engines/persistent-codex-session.d.ts +17 -0
- package/dist/src/engines/persistent-codex-session.d.ts.map +1 -0
- package/dist/src/engines/persistent-codex-session.js +106 -0
- package/dist/src/engines/persistent-codex-session.js.map +1 -0
- package/dist/src/engines/persistent-cursor-session.d.ts +22 -0
- package/dist/src/engines/persistent-cursor-session.d.ts.map +1 -0
- package/dist/src/engines/persistent-cursor-session.js +242 -0
- package/dist/src/engines/persistent-cursor-session.js.map +1 -0
- package/dist/src/engines/persistent-custom-session.d.ts +79 -0
- package/dist/src/engines/persistent-custom-session.d.ts.map +1 -0
- package/dist/src/engines/persistent-custom-session.js +939 -0
- package/dist/src/engines/persistent-custom-session.js.map +1 -0
- package/dist/src/engines/persistent-gemini-session.d.ts +22 -0
- package/dist/src/engines/persistent-gemini-session.d.ts.map +1 -0
- package/dist/src/engines/persistent-gemini-session.js +217 -0
- package/dist/src/engines/persistent-gemini-session.js.map +1 -0
- package/dist/src/engines/persistent-session.d.ts +77 -0
- package/dist/src/engines/persistent-session.d.ts.map +1 -0
- package/dist/src/engines/persistent-session.js +730 -0
- package/dist/src/engines/persistent-session.js.map +1 -0
- package/dist/src/health/handler.d.ts +40 -0
- package/dist/src/health/handler.d.ts.map +1 -0
- package/dist/src/health/handler.js +70 -0
- package/dist/src/health/handler.js.map +1 -0
- package/dist/src/health/index.d.ts +2 -0
- package/dist/src/health/index.d.ts.map +1 -0
- package/dist/src/health/index.js +2 -0
- package/dist/src/health/index.js.map +1 -0
- package/dist/src/index.d.ts +49 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +84 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/auto-recovery.d.ts +45 -0
- package/dist/src/lib/auto-recovery.d.ts.map +1 -0
- package/dist/src/lib/auto-recovery.js +217 -0
- package/dist/src/lib/auto-recovery.js.map +1 -0
- package/dist/src/lib/cache-parity.d.ts +39 -0
- package/dist/src/lib/cache-parity.d.ts.map +1 -0
- package/dist/src/lib/cache-parity.js +92 -0
- package/dist/src/lib/cache-parity.js.map +1 -0
- package/dist/src/lib/circuit-breaker.d.ts +22 -0
- package/dist/src/lib/circuit-breaker.d.ts.map +1 -0
- package/dist/src/lib/circuit-breaker.js +47 -0
- package/dist/src/lib/circuit-breaker.js.map +1 -0
- package/dist/src/lib/config.d.ts +74 -0
- package/dist/src/lib/config.d.ts.map +1 -0
- package/dist/src/lib/config.js +244 -0
- package/dist/src/lib/config.js.map +1 -0
- package/dist/src/lib/drift-detector.d.ts +47 -0
- package/dist/src/lib/drift-detector.d.ts.map +1 -0
- package/dist/src/lib/drift-detector.js +192 -0
- package/dist/src/lib/drift-detector.js.map +1 -0
- package/dist/src/lib/error-formatter.d.ts +78 -0
- package/dist/src/lib/error-formatter.d.ts.map +1 -0
- package/dist/src/lib/error-formatter.js +149 -0
- package/dist/src/lib/error-formatter.js.map +1 -0
- package/dist/src/lib/heartbeat-workaround.d.ts +45 -0
- package/dist/src/lib/heartbeat-workaround.d.ts.map +1 -0
- package/dist/src/lib/heartbeat-workaround.js +61 -0
- package/dist/src/lib/heartbeat-workaround.js.map +1 -0
- package/dist/src/lib/index.d.ts +8 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +8 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/lib/register-guard.d.ts +49 -0
- package/dist/src/lib/register-guard.d.ts.map +1 -0
- package/dist/src/lib/register-guard.js +73 -0
- package/dist/src/lib/register-guard.js.map +1 -0
- package/dist/src/lib/route-flag.d.ts +50 -0
- package/dist/src/lib/route-flag.d.ts.map +1 -0
- package/dist/src/lib/route-flag.js +52 -0
- package/dist/src/lib/route-flag.js.map +1 -0
- package/dist/src/lib/sysprompt-strip.d.ts +54 -0
- package/dist/src/lib/sysprompt-strip.d.ts.map +1 -0
- package/dist/src/lib/sysprompt-strip.js +75 -0
- package/dist/src/lib/sysprompt-strip.js.map +1 -0
- package/dist/src/lib/telemetry.d.ts +39 -0
- package/dist/src/lib/telemetry.d.ts.map +1 -0
- package/dist/src/lib/telemetry.js +73 -0
- package/dist/src/lib/telemetry.js.map +1 -0
- package/dist/src/lib/test-mode.d.ts +27 -0
- package/dist/src/lib/test-mode.d.ts.map +1 -0
- package/dist/src/lib/test-mode.js +38 -0
- package/dist/src/lib/test-mode.js.map +1 -0
- package/dist/src/lib/vendor-paths.d.ts +15 -0
- package/dist/src/lib/vendor-paths.d.ts.map +1 -0
- package/dist/src/lib/vendor-paths.js +32 -0
- package/dist/src/lib/vendor-paths.js.map +1 -0
- package/dist/src/logger.d.ts +17 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +46 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/mcp/bridge.d.ts +22 -0
- package/dist/src/mcp/bridge.d.ts.map +1 -0
- package/dist/src/mcp/bridge.js +78 -0
- package/dist/src/mcp/bridge.js.map +1 -0
- package/dist/src/mcp/index.d.ts +3 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +2 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/models.d.ts +70 -0
- package/dist/src/models.d.ts.map +1 -0
- package/dist/src/models.js +289 -0
- package/dist/src/models.js.map +1 -0
- package/dist/src/openai-compat/cli-stream-parser.d.ts +135 -0
- package/dist/src/openai-compat/cli-stream-parser.d.ts.map +1 -0
- package/dist/src/openai-compat/cli-stream-parser.js +195 -0
- package/dist/src/openai-compat/cli-stream-parser.js.map +1 -0
- package/dist/src/openai-compat/index.d.ts +2 -0
- package/dist/src/openai-compat/index.d.ts.map +1 -0
- package/dist/src/openai-compat/index.js +2 -0
- package/dist/src/openai-compat/index.js.map +1 -0
- package/dist/src/openai-compat/openai-compat.d.ts +281 -0
- package/dist/src/openai-compat/openai-compat.d.ts.map +1 -0
- package/dist/src/openai-compat/openai-compat.js +939 -0
- package/dist/src/openai-compat/openai-compat.js.map +1 -0
- package/dist/src/openai-compat/skill-resolver.d.ts +36 -0
- package/dist/src/openai-compat/skill-resolver.d.ts.map +1 -0
- package/dist/src/openai-compat/skill-resolver.js +134 -0
- package/dist/src/openai-compat/skill-resolver.js.map +1 -0
- package/dist/src/openai-compat/sse-translator.d.ts +32 -0
- package/dist/src/openai-compat/sse-translator.d.ts.map +1 -0
- package/dist/src/openai-compat/sse-translator.js +155 -0
- package/dist/src/openai-compat/sse-translator.js.map +1 -0
- package/dist/src/proxy/anthropic-adapter.d.ts +137 -0
- package/dist/src/proxy/anthropic-adapter.d.ts.map +1 -0
- package/dist/src/proxy/anthropic-adapter.js +392 -0
- package/dist/src/proxy/anthropic-adapter.js.map +1 -0
- package/dist/src/proxy/handler.d.ts +40 -0
- package/dist/src/proxy/handler.d.ts.map +1 -0
- package/dist/src/proxy/handler.js +378 -0
- package/dist/src/proxy/handler.js.map +1 -0
- package/dist/src/proxy/index.d.ts +5 -0
- package/dist/src/proxy/index.d.ts.map +1 -0
- package/dist/src/proxy/index.js +5 -0
- package/dist/src/proxy/index.js.map +1 -0
- package/dist/src/proxy/schema-cleaner.d.ts +12 -0
- package/dist/src/proxy/schema-cleaner.d.ts.map +1 -0
- package/dist/src/proxy/schema-cleaner.js +34 -0
- package/dist/src/proxy/schema-cleaner.js.map +1 -0
- package/dist/src/proxy/thought-cache.d.ts +20 -0
- package/dist/src/proxy/thought-cache.d.ts.map +1 -0
- package/dist/src/proxy/thought-cache.js +53 -0
- package/dist/src/proxy/thought-cache.js.map +1 -0
- package/dist/src/session/embedded-server.d.ts +26 -0
- package/dist/src/session/embedded-server.d.ts.map +1 -0
- package/dist/src/session/embedded-server.js +367 -0
- package/dist/src/session/embedded-server.js.map +1 -0
- package/dist/src/session/inbox-manager.d.ts +39 -0
- package/dist/src/session/inbox-manager.d.ts.map +1 -0
- package/dist/src/session/inbox-manager.js +111 -0
- package/dist/src/session/inbox-manager.js.map +1 -0
- package/dist/src/session/index.d.ts +4 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +4 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +212 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +1351 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session-bootstrap/cwd-patch.d.ts +51 -0
- package/dist/src/session-bootstrap/cwd-patch.d.ts.map +1 -0
- package/dist/src/session-bootstrap/cwd-patch.js +955 -0
- package/dist/src/session-bootstrap/cwd-patch.js.map +1 -0
- package/dist/src/session-bootstrap/index.d.ts +4 -0
- package/dist/src/session-bootstrap/index.d.ts.map +1 -0
- package/dist/src/session-bootstrap/index.js +4 -0
- package/dist/src/session-bootstrap/index.js.map +1 -0
- package/dist/src/session-bootstrap/sysprompt-strip.d.ts +26 -0
- package/dist/src/session-bootstrap/sysprompt-strip.d.ts.map +1 -0
- package/dist/src/session-bootstrap/sysprompt-strip.js +57 -0
- package/dist/src/session-bootstrap/sysprompt-strip.js.map +1 -0
- package/dist/src/session-bootstrap/think-conflict-resolver.d.ts +33 -0
- package/dist/src/session-bootstrap/think-conflict-resolver.d.ts.map +1 -0
- package/dist/src/session-bootstrap/think-conflict-resolver.js +234 -0
- package/dist/src/session-bootstrap/think-conflict-resolver.js.map +1 -0
- package/dist/src/types.d.ts +489 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +8 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/validation.d.ts +32 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +104 -0
- package/dist/src/validation.js.map +1 -0
- package/dist/tests/_helpers/subprocess-mock.d.ts +35 -0
- package/dist/tests/_helpers/subprocess-mock.d.ts.map +1 -0
- package/dist/tests/_helpers/subprocess-mock.js +136 -0
- package/dist/tests/_helpers/subprocess-mock.js.map +1 -0
- package/dist/tests/auto-recovery.test.d.ts +2 -0
- package/dist/tests/auto-recovery.test.d.ts.map +1 -0
- package/dist/tests/auto-recovery.test.js +189 -0
- package/dist/tests/auto-recovery.test.js.map +1 -0
- package/dist/tests/bench-harness.test.d.ts +2 -0
- package/dist/tests/bench-harness.test.d.ts.map +1 -0
- package/dist/tests/bench-harness.test.js +21 -0
- package/dist/tests/bench-harness.test.js.map +1 -0
- package/dist/tests/cache-parity.test.d.ts +2 -0
- package/dist/tests/cache-parity.test.d.ts.map +1 -0
- package/dist/tests/cache-parity.test.js +401 -0
- package/dist/tests/cache-parity.test.js.map +1 -0
- package/dist/tests/command-router.test.d.ts +2 -0
- package/dist/tests/command-router.test.d.ts.map +1 -0
- package/dist/tests/command-router.test.js +60 -0
- package/dist/tests/command-router.test.js.map +1 -0
- package/dist/tests/council.test.d.ts +2 -0
- package/dist/tests/council.test.d.ts.map +1 -0
- package/dist/tests/council.test.js +20 -0
- package/dist/tests/council.test.js.map +1 -0
- package/dist/tests/drift-detector.test.d.ts +2 -0
- package/dist/tests/drift-detector.test.d.ts.map +1 -0
- package/dist/tests/drift-detector.test.js +268 -0
- package/dist/tests/drift-detector.test.js.map +1 -0
- package/dist/tests/eager-bootstrap-gating.test.d.ts +9 -0
- package/dist/tests/eager-bootstrap-gating.test.d.ts.map +1 -0
- package/dist/tests/eager-bootstrap-gating.test.js +97 -0
- package/dist/tests/eager-bootstrap-gating.test.js.map +1 -0
- package/dist/tests/engines.test.d.ts +2 -0
- package/dist/tests/engines.test.d.ts.map +1 -0
- package/dist/tests/engines.test.js +8 -0
- package/dist/tests/engines.test.js.map +1 -0
- package/dist/tests/error-formatter.test.d.ts +2 -0
- package/dist/tests/error-formatter.test.d.ts.map +1 -0
- package/dist/tests/error-formatter.test.js +220 -0
- package/dist/tests/error-formatter.test.js.map +1 -0
- package/dist/tests/health.test.d.ts +2 -0
- package/dist/tests/health.test.d.ts.map +1 -0
- package/dist/tests/health.test.js +110 -0
- package/dist/tests/health.test.js.map +1 -0
- package/dist/tests/heartbeat-workaround.test.d.ts +2 -0
- package/dist/tests/heartbeat-workaround.test.d.ts.map +1 -0
- package/dist/tests/heartbeat-workaround.test.js +90 -0
- package/dist/tests/heartbeat-workaround.test.js.map +1 -0
- package/dist/tests/index.test.d.ts +2 -0
- package/dist/tests/index.test.d.ts.map +1 -0
- package/dist/tests/index.test.js +7 -0
- package/dist/tests/index.test.js.map +1 -0
- package/dist/tests/lib-sysprompt-strip.test.d.ts +2 -0
- package/dist/tests/lib-sysprompt-strip.test.d.ts.map +1 -0
- package/dist/tests/lib-sysprompt-strip.test.js +145 -0
- package/dist/tests/lib-sysprompt-strip.test.js.map +1 -0
- package/dist/tests/listener-activation.test.d.ts +2 -0
- package/dist/tests/listener-activation.test.d.ts.map +1 -0
- package/dist/tests/listener-activation.test.js +87 -0
- package/dist/tests/listener-activation.test.js.map +1 -0
- package/dist/tests/mcp-bridge.test.d.ts +2 -0
- package/dist/tests/mcp-bridge.test.d.ts.map +1 -0
- package/dist/tests/mcp-bridge.test.js +137 -0
- package/dist/tests/mcp-bridge.test.js.map +1 -0
- package/dist/tests/openai-compat.test.d.ts +2 -0
- package/dist/tests/openai-compat.test.d.ts.map +1 -0
- package/dist/tests/openai-compat.test.js +8 -0
- package/dist/tests/openai-compat.test.js.map +1 -0
- package/dist/tests/proxy-heartbeat-integration.test.d.ts +15 -0
- package/dist/tests/proxy-heartbeat-integration.test.d.ts.map +1 -0
- package/dist/tests/proxy-heartbeat-integration.test.js +122 -0
- package/dist/tests/proxy-heartbeat-integration.test.js.map +1 -0
- package/dist/tests/proxy.test.d.ts +2 -0
- package/dist/tests/proxy.test.d.ts.map +1 -0
- package/dist/tests/proxy.test.js +8 -0
- package/dist/tests/proxy.test.js.map +1 -0
- package/dist/tests/register-guard-stacking.test.d.ts +2 -0
- package/dist/tests/register-guard-stacking.test.d.ts.map +1 -0
- package/dist/tests/register-guard-stacking.test.js +61 -0
- package/dist/tests/register-guard-stacking.test.js.map +1 -0
- package/dist/tests/register-guard.test.d.ts +2 -0
- package/dist/tests/register-guard.test.d.ts.map +1 -0
- package/dist/tests/register-guard.test.js +129 -0
- package/dist/tests/register-guard.test.js.map +1 -0
- package/dist/tests/route-flag-rollback.test.d.ts +2 -0
- package/dist/tests/route-flag-rollback.test.d.ts.map +1 -0
- package/dist/tests/route-flag-rollback.test.js +70 -0
- package/dist/tests/route-flag-rollback.test.js.map +1 -0
- package/dist/tests/route-flag.test.d.ts +2 -0
- package/dist/tests/route-flag.test.d.ts.map +1 -0
- package/dist/tests/route-flag.test.js +101 -0
- package/dist/tests/route-flag.test.js.map +1 -0
- package/dist/tests/session-bootstrap.test.d.ts +2 -0
- package/dist/tests/session-bootstrap.test.d.ts.map +1 -0
- package/dist/tests/session-bootstrap.test.js +183 -0
- package/dist/tests/session-bootstrap.test.js.map +1 -0
- package/dist/tests/session.test.d.ts +2 -0
- package/dist/tests/session.test.d.ts.map +1 -0
- package/dist/tests/session.test.js +17 -0
- package/dist/tests/session.test.js.map +1 -0
- package/dist/tests/state-machine.test.d.ts +2 -0
- package/dist/tests/state-machine.test.d.ts.map +1 -0
- package/dist/tests/state-machine.test.js +133 -0
- package/dist/tests/state-machine.test.js.map +1 -0
- package/dist/tests/streaming/cli-stream-parser.test.d.ts +2 -0
- package/dist/tests/streaming/cli-stream-parser.test.d.ts.map +1 -0
- package/dist/tests/streaming/cli-stream-parser.test.js +233 -0
- package/dist/tests/streaming/cli-stream-parser.test.js.map +1 -0
- package/dist/tests/streaming/feature-flag.test.d.ts +14 -0
- package/dist/tests/streaming/feature-flag.test.d.ts.map +1 -0
- package/dist/tests/streaming/feature-flag.test.js +163 -0
- package/dist/tests/streaming/feature-flag.test.js.map +1 -0
- package/dist/tests/streaming/no-tools-prompt.test.d.ts +17 -0
- package/dist/tests/streaming/no-tools-prompt.test.d.ts.map +1 -0
- package/dist/tests/streaming/no-tools-prompt.test.js +229 -0
- package/dist/tests/streaming/no-tools-prompt.test.js.map +1 -0
- package/dist/tests/streaming/skill-plus-tools.test.d.ts +14 -0
- package/dist/tests/streaming/skill-plus-tools.test.d.ts.map +1 -0
- package/dist/tests/streaming/skill-plus-tools.test.js +234 -0
- package/dist/tests/streaming/skill-plus-tools.test.js.map +1 -0
- package/dist/tests/streaming/sse-translator.test.d.ts +2 -0
- package/dist/tests/streaming/sse-translator.test.d.ts.map +1 -0
- package/dist/tests/streaming/sse-translator.test.js +227 -0
- package/dist/tests/streaming/sse-translator.test.js.map +1 -0
- package/dist/tests/streaming/tool-result-roundtrip.test.d.ts +11 -0
- package/dist/tests/streaming/tool-result-roundtrip.test.d.ts.map +1 -0
- package/dist/tests/streaming/tool-result-roundtrip.test.js +215 -0
- package/dist/tests/streaming/tool-result-roundtrip.test.js.map +1 -0
- package/dist/tests/streaming/tool-use-translation.test.d.ts +10 -0
- package/dist/tests/streaming/tool-use-translation.test.d.ts.map +1 -0
- package/dist/tests/streaming/tool-use-translation.test.js +251 -0
- package/dist/tests/streaming/tool-use-translation.test.js.map +1 -0
- package/dist/tests/telegram-bridge.test.d.ts +2 -0
- package/dist/tests/telegram-bridge.test.d.ts.map +1 -0
- package/dist/tests/telegram-bridge.test.js +17 -0
- package/dist/tests/telegram-bridge.test.js.map +1 -0
- package/dist/tests/telegram-injector.test.d.ts +2 -0
- package/dist/tests/telegram-injector.test.d.ts.map +1 -0
- package/dist/tests/telegram-injector.test.js +74 -0
- package/dist/tests/telegram-injector.test.js.map +1 -0
- package/dist/tests/telemetry.test.d.ts +2 -0
- package/dist/tests/telemetry.test.d.ts.map +1 -0
- package/dist/tests/telemetry.test.js +405 -0
- package/dist/tests/telemetry.test.js.map +1 -0
- package/dist/tests/test-mode.test.d.ts +2 -0
- package/dist/tests/test-mode.test.d.ts.map +1 -0
- package/dist/tests/test-mode.test.js +39 -0
- package/dist/tests/test-mode.test.js.map +1 -0
- package/mcp-config.template.json +13 -0
- package/mcp-tools.json +1 -0
- package/openclaw-mcp-bridge.cjs +152 -0
- package/openclaw.plugin.json +30 -0
- package/package.json +45 -0
- package/skills/.gitkeep +0 -0
- package/stubs/commands-status-deps.runtime.js +10 -0
- package/stubs/status.runtime.js +149 -0
- package/vendor/base-oneshot-session.d.ts +87 -0
- package/vendor/base-oneshot-session.js +227 -0
- package/vendor/base-oneshot-session.js.map +1 -0
- package/vendor/circuit-breaker.d.ts +21 -0
- package/vendor/circuit-breaker.js +47 -0
- package/vendor/circuit-breaker.js.map +1 -0
- package/vendor/consensus.d.ts +20 -0
- package/vendor/consensus.js +52 -0
- package/vendor/consensus.js.map +1 -0
- package/vendor/constants.d.ts +130 -0
- package/vendor/constants.js +139 -0
- package/vendor/constants.js.map +1 -0
- package/vendor/council.d.ts +67 -0
- package/vendor/council.js +913 -0
- package/vendor/council.js.map +1 -0
- package/vendor/embedded-server.d.ts +25 -0
- package/vendor/embedded-server.js +360 -0
- package/vendor/embedded-server.js.map +1 -0
- package/vendor/inbox-manager.d.ts +38 -0
- package/vendor/inbox-manager.js +111 -0
- package/vendor/inbox-manager.js.map +1 -0
- package/vendor/index.d.ts +63 -0
- package/vendor/index.js +705 -0
- package/vendor/index.js.map +1 -0
- package/vendor/logger.d.ts +16 -0
- package/vendor/logger.js +44 -0
- package/vendor/logger.js.map +1 -0
- package/vendor/models.d.ts +69 -0
- package/vendor/models.js +289 -0
- package/vendor/models.js.map +1 -0
- package/vendor/openai-compat.d.ts +197 -0
- package/vendor/openai-compat.js +721 -0
- package/vendor/openai-compat.js.map +1 -0
- package/vendor/persistent-codex-session.d.ts +16 -0
- package/vendor/persistent-codex-session.js +105 -0
- package/vendor/persistent-codex-session.js.map +1 -0
- package/vendor/persistent-cursor-session.d.ts +21 -0
- package/vendor/persistent-cursor-session.js +241 -0
- package/vendor/persistent-cursor-session.js.map +1 -0
- package/vendor/persistent-custom-session.d.ts +78 -0
- package/vendor/persistent-custom-session.js +937 -0
- package/vendor/persistent-custom-session.js.map +1 -0
- package/vendor/persistent-gemini-session.d.ts +21 -0
- package/vendor/persistent-gemini-session.js +216 -0
- package/vendor/persistent-gemini-session.js.map +1 -0
- package/vendor/persistent-session.d.ts +74 -0
- package/vendor/persistent-session.js +684 -0
- package/vendor/persistent-session.js.map +1 -0
- package/vendor/proxy/anthropic-adapter.d.ts +136 -0
- package/vendor/proxy/anthropic-adapter.js +392 -0
- package/vendor/proxy/anthropic-adapter.js.map +1 -0
- package/vendor/proxy/handler.d.ts +39 -0
- package/vendor/proxy/handler.js +323 -0
- package/vendor/proxy/handler.js.map +1 -0
- package/vendor/proxy/schema-cleaner.d.ts +11 -0
- package/vendor/proxy/schema-cleaner.js +34 -0
- package/vendor/proxy/schema-cleaner.js.map +1 -0
- package/vendor/proxy/thought-cache.d.ts +19 -0
- package/vendor/proxy/thought-cache.js +53 -0
- package/vendor/proxy/thought-cache.js.map +1 -0
- package/vendor/session-manager.d.ts +211 -0
- package/vendor/session-manager.js +1345 -0
- package/vendor/session-manager.js.map +1 -0
- package/vendor/skill-resolver.js +107 -0
- package/vendor/types.d.ts +466 -0
- package/vendor/types.js +8 -0
- package/vendor/types.js.map +1 -0
- package/vendor/validation.d.ts +31 -0
- package/vendor/validation.js +104 -0
- package/vendor/validation.js.map +1 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram/index.ts — barrel
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all register functions from the 6 telegram channel files.
|
|
5
|
+
* Consumers call each register-function with the PluginApi to activate
|
|
6
|
+
* the corresponding hooks.
|
|
7
|
+
*/
|
|
8
|
+
export { register as registerInjector } from './injector.js';
|
|
9
|
+
export { register as registerLiveCard } from './live-card.js';
|
|
10
|
+
export { register as registerToolTracker } from './tool-tracker.js';
|
|
11
|
+
export { register as registerCompletionSummary } from './completion-summary.js';
|
|
12
|
+
export { register as registerStateMachine } from './state-machine.js';
|
|
13
|
+
export { register as registerEventReducer } from './event-reducer.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/channels/telegram/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,QAAQ,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* telegram-ux-injector — TypeScript port of savvy-claude-code/ux-injector.js
|
|
3
|
+
*
|
|
4
|
+
* Captures Telegram metadata (chatId, threadId) at dispatch time and injects
|
|
5
|
+
* it into claude_session_send tool calls via before_tool_call param mutation.
|
|
6
|
+
*
|
|
7
|
+
* This enables the UX bridge to activate for ALL Telegram-originating sessions,
|
|
8
|
+
* not just /cc. Gated by UX_BRIDGE_ALL_SESSIONS env var (default: OFF).
|
|
9
|
+
*
|
|
10
|
+
* Architecture:
|
|
11
|
+
* before_dispatch → captures { chatId, threadId } per sessionKey (non-claiming)
|
|
12
|
+
* before_tool_call → injects telegramChatId/telegramThreadId into claude_session_send params
|
|
13
|
+
* Gateway applies adjusted params → execute handler receives metadata
|
|
14
|
+
* UX bridge (telegram-ux-bridge) activates on telegramChatId presence
|
|
15
|
+
*
|
|
16
|
+
* Zero dist/ modifications. Uses only the gateway's native hook infrastructure.
|
|
17
|
+
*
|
|
18
|
+
* ROADMAP: Stage 4 of unified-execution-ux
|
|
19
|
+
* Depends on: Stage 2 (claude_session_send schema accepts telegram fields)
|
|
20
|
+
*/
|
|
21
|
+
export interface PluginApi {
|
|
22
|
+
on(event: string, handler: (...args: unknown[]) => unknown | Promise<unknown>): void;
|
|
23
|
+
logger?: Console;
|
|
24
|
+
}
|
|
25
|
+
interface ParsedConversationId {
|
|
26
|
+
chatId: string;
|
|
27
|
+
threadId: string | undefined;
|
|
28
|
+
}
|
|
29
|
+
export declare const METADATA_TTL_MS: number;
|
|
30
|
+
export declare const MAX_STORE_SIZE = 100;
|
|
31
|
+
export declare function cleanStaleEntries(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Parse a gateway conversationId into raw Telegram chatId + threadId.
|
|
34
|
+
*
|
|
35
|
+
* Formats observed:
|
|
36
|
+
* "telegram:-100xxx:topic:456" → chatId="-100xxx", threadId="456"
|
|
37
|
+
* "-100xxx:topic:456" → chatId="-100xxx", threadId="456"
|
|
38
|
+
* "telegram:-100xxx" → chatId="-100xxx", threadId=undefined
|
|
39
|
+
* "-100xxx" → chatId="-100xxx", threadId=undefined
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseConversationId(conversationId: string): ParsedConversationId;
|
|
42
|
+
/**
|
|
43
|
+
* Register the telegram-ux-injector plugin with the OpenClaw API.
|
|
44
|
+
* Idempotent: subsequent calls are no-ops (prevents listener stacking).
|
|
45
|
+
*/
|
|
46
|
+
export declare function register(api: PluginApi): void;
|
|
47
|
+
declare const _default: {
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
description: string;
|
|
51
|
+
register: typeof register;
|
|
52
|
+
};
|
|
53
|
+
export default _default;
|
|
54
|
+
//# sourceMappingURL=injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injector.d.ts","sourceRoot":"","sources":["../../../../src/channels/telegram/injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAwBD,eAAO,MAAM,eAAe,QAAgB,CAAC;AAC7C,eAAO,MAAM,cAAc,MAAM,CAAC;AAmBlC,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB,CAUhF;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAwJ7C;;;;;;;AAGD,wBAME"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* telegram-ux-injector — TypeScript port of savvy-claude-code/ux-injector.js
|
|
3
|
+
*
|
|
4
|
+
* Captures Telegram metadata (chatId, threadId) at dispatch time and injects
|
|
5
|
+
* it into claude_session_send tool calls via before_tool_call param mutation.
|
|
6
|
+
*
|
|
7
|
+
* This enables the UX bridge to activate for ALL Telegram-originating sessions,
|
|
8
|
+
* not just /cc. Gated by UX_BRIDGE_ALL_SESSIONS env var (default: OFF).
|
|
9
|
+
*
|
|
10
|
+
* Architecture:
|
|
11
|
+
* before_dispatch → captures { chatId, threadId } per sessionKey (non-claiming)
|
|
12
|
+
* before_tool_call → injects telegramChatId/telegramThreadId into claude_session_send params
|
|
13
|
+
* Gateway applies adjusted params → execute handler receives metadata
|
|
14
|
+
* UX bridge (telegram-ux-bridge) activates on telegramChatId presence
|
|
15
|
+
*
|
|
16
|
+
* Zero dist/ modifications. Uses only the gateway's native hook infrastructure.
|
|
17
|
+
*
|
|
18
|
+
* ROADMAP: Stage 4 of unified-execution-ux
|
|
19
|
+
* Depends on: Stage 2 (claude_session_send schema accepts telegram fields)
|
|
20
|
+
*/
|
|
21
|
+
// ── Constants ─────────────────────────────────────────────────────────────
|
|
22
|
+
const PLUGIN_TAG = '[cc-openclaw/telegram/injector]';
|
|
23
|
+
const ENV_FLAG = 'UX_BRIDGE_ALL_SESSIONS';
|
|
24
|
+
export const METADATA_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
25
|
+
export const MAX_STORE_SIZE = 100;
|
|
26
|
+
// ── Metadata Store ────────────────────────────────────────────────────────
|
|
27
|
+
// Per-sessionKey metadata store.
|
|
28
|
+
// Populated at before_dispatch (message arrival), consumed at before_tool_call
|
|
29
|
+
// (when Savvy calls claude_session_send). The sessionKey bridges the two hooks.
|
|
30
|
+
const metadataStore = new Map();
|
|
31
|
+
// ── Idempotency Guard ─────────────────────────────────────────────────────
|
|
32
|
+
import { defaultRegisterGuard } from '../../lib/register-guard.js';
|
|
33
|
+
// ── Helpers ───────────────────────────────────────────────────────────────
|
|
34
|
+
function isEnabled() {
|
|
35
|
+
return process.env[ENV_FLAG] === 'true';
|
|
36
|
+
}
|
|
37
|
+
export function cleanStaleEntries() {
|
|
38
|
+
const now = Date.now();
|
|
39
|
+
for (const [key, entry] of metadataStore) {
|
|
40
|
+
if (now - entry.capturedAt > METADATA_TTL_MS) {
|
|
41
|
+
metadataStore.delete(key);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse a gateway conversationId into raw Telegram chatId + threadId.
|
|
47
|
+
*
|
|
48
|
+
* Formats observed:
|
|
49
|
+
* "telegram:-100xxx:topic:456" → chatId="-100xxx", threadId="456"
|
|
50
|
+
* "-100xxx:topic:456" → chatId="-100xxx", threadId="456"
|
|
51
|
+
* "telegram:-100xxx" → chatId="-100xxx", threadId=undefined
|
|
52
|
+
* "-100xxx" → chatId="-100xxx", threadId=undefined
|
|
53
|
+
*/
|
|
54
|
+
export function parseConversationId(conversationId) {
|
|
55
|
+
const raw = (conversationId || '').replace(/^telegram:/i, '');
|
|
56
|
+
const topicMatch = raw.match(/^(-?\d+):topic:(\d+)$/);
|
|
57
|
+
if (topicMatch) {
|
|
58
|
+
return { chatId: topicMatch[1], threadId: topicMatch[2] };
|
|
59
|
+
}
|
|
60
|
+
if (/^-?\d+$/.test(raw)) {
|
|
61
|
+
return { chatId: raw, threadId: undefined };
|
|
62
|
+
}
|
|
63
|
+
return { chatId: '', threadId: undefined };
|
|
64
|
+
}
|
|
65
|
+
// ── register() ────────────────────────────────────────────────────────────
|
|
66
|
+
/**
|
|
67
|
+
* Register the telegram-ux-injector plugin with the OpenClaw API.
|
|
68
|
+
* Idempotent: subsequent calls are no-ops (prevents listener stacking).
|
|
69
|
+
*/
|
|
70
|
+
export function register(api) {
|
|
71
|
+
const logger = api.logger || console;
|
|
72
|
+
defaultRegisterGuard.guard('channels/telegram/injector', api, () => {
|
|
73
|
+
const flagValue = process.env[ENV_FLAG] || 'unset';
|
|
74
|
+
logger.info(`${PLUGIN_TAG} Registering (${ENV_FLAG}=${flagValue})`);
|
|
75
|
+
// ── before_dispatch: capture Telegram metadata (non-claiming) ────────
|
|
76
|
+
//
|
|
77
|
+
// Fires for every inbound message. For Telegram messages, we extract
|
|
78
|
+
// chatId and threadId from ctx.conversationId and store them keyed by
|
|
79
|
+
// ctx.sessionKey. This data is consumed later in before_tool_call.
|
|
80
|
+
//
|
|
81
|
+
// This hook NEVER claims the message (returns undefined). It is purely
|
|
82
|
+
// a metadata capture pass. The cc-handler or model dispatch proceeds
|
|
83
|
+
// normally after this hook.
|
|
84
|
+
api.on('before_dispatch', async (...args) => {
|
|
85
|
+
if (!isEnabled())
|
|
86
|
+
return undefined;
|
|
87
|
+
const event = args[0];
|
|
88
|
+
const ctx = args[1];
|
|
89
|
+
if (event.channel !== 'telegram')
|
|
90
|
+
return undefined;
|
|
91
|
+
const sessionKey = ctx.sessionKey;
|
|
92
|
+
if (!sessionKey)
|
|
93
|
+
return undefined;
|
|
94
|
+
const { chatId, threadId } = parseConversationId(ctx.conversationId ?? '');
|
|
95
|
+
if (!chatId)
|
|
96
|
+
return undefined;
|
|
97
|
+
const rawMsg = event.raw?.message;
|
|
98
|
+
const origMessageId = typeof rawMsg?.message_id === 'number' ? rawMsg.message_id : null;
|
|
99
|
+
metadataStore.set(sessionKey, {
|
|
100
|
+
chatId,
|
|
101
|
+
threadId,
|
|
102
|
+
origMessageId,
|
|
103
|
+
capturedAt: Date.now(),
|
|
104
|
+
});
|
|
105
|
+
// Also share via globalThis for savvy-card-tracker access.
|
|
106
|
+
// The sk: prefix distinguishes sessionKey entries from sessionName entries.
|
|
107
|
+
const UX_META = Symbol.for('telegram-ux-bridge:metadata');
|
|
108
|
+
const globalStore = globalThis[UX_META];
|
|
109
|
+
if (!globalStore || !(globalStore instanceof Map)) {
|
|
110
|
+
globalThis[UX_META] = new Map();
|
|
111
|
+
}
|
|
112
|
+
globalThis[UX_META].set(`sk:${sessionKey}`, {
|
|
113
|
+
chatId,
|
|
114
|
+
threadId,
|
|
115
|
+
origMessageId,
|
|
116
|
+
storedAt: Date.now(),
|
|
117
|
+
});
|
|
118
|
+
// Periodic cleanup to prevent unbounded growth
|
|
119
|
+
if (metadataStore.size > MAX_STORE_SIZE) {
|
|
120
|
+
cleanStaleEntries();
|
|
121
|
+
}
|
|
122
|
+
logger.info(`${PLUGIN_TAG} Captured: sessionKey=${sessionKey} chat=${chatId} thread=${threadId || 'none'}`);
|
|
123
|
+
// Non-claiming — let the message proceed to cc-handler or model
|
|
124
|
+
return undefined;
|
|
125
|
+
});
|
|
126
|
+
// ── before_tool_call: inject metadata into claude_session_send ────────
|
|
127
|
+
//
|
|
128
|
+
// When Savvy (GPT) decides to delegate and calls claude_session_send,
|
|
129
|
+
// this hook fires BEFORE the tool's execute handler. If we have stored
|
|
130
|
+
// Telegram metadata for this sessionKey, we inject telegramChatId and
|
|
131
|
+
// telegramThreadId into the tool params. The gateway's native param
|
|
132
|
+
// adjustment infrastructure (adjustedParamsByToolCallId) delivers the
|
|
133
|
+
// modified params to the execute handler.
|
|
134
|
+
//
|
|
135
|
+
// The execute handler (Stage 2) already passes these fields through to
|
|
136
|
+
// SessionManager.sendMessage(), where the UX bridge (telegram-ux-bridge)
|
|
137
|
+
// picks them up and activates live card delivery.
|
|
138
|
+
//
|
|
139
|
+
// Skip injection if the caller already provided explicit metadata
|
|
140
|
+
// (defensive — currently no caller does for Savvy-delegated calls).
|
|
141
|
+
api.on('before_tool_call', async (...args) => {
|
|
142
|
+
if (!isEnabled())
|
|
143
|
+
return undefined;
|
|
144
|
+
const event = args[0];
|
|
145
|
+
const ctx = args[1];
|
|
146
|
+
if (event.toolName !== 'claude_session_send')
|
|
147
|
+
return undefined;
|
|
148
|
+
const sessionKey = ctx.sessionKey;
|
|
149
|
+
if (!sessionKey)
|
|
150
|
+
return undefined;
|
|
151
|
+
const metadata = metadataStore.get(sessionKey);
|
|
152
|
+
if (!metadata)
|
|
153
|
+
return undefined;
|
|
154
|
+
// Don't override explicit metadata
|
|
155
|
+
if (event.params?.telegramChatId)
|
|
156
|
+
return undefined;
|
|
157
|
+
// TTL check — stale entries shouldn't inject
|
|
158
|
+
if (Date.now() - metadata.capturedAt > METADATA_TTL_MS) {
|
|
159
|
+
metadataStore.delete(sessionKey);
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
logger.info(`${PLUGIN_TAG} Injecting into claude_session_send: chat=${metadata.chatId} thread=${metadata.threadId || 'none'} sessionKey=${sessionKey}`);
|
|
163
|
+
// Share metadata via globalThis for ux-bridge to pick up.
|
|
164
|
+
// The tool handler in dist/ doesn't forward telegram fields to
|
|
165
|
+
// SessionManager.sendMessage options, so the bridge reads this
|
|
166
|
+
// store directly when options.telegramChatId is missing.
|
|
167
|
+
const UX_META = Symbol.for('telegram-ux-bridge:metadata');
|
|
168
|
+
const globalStore = globalThis[UX_META];
|
|
169
|
+
if (!globalStore || !(globalStore instanceof Map)) {
|
|
170
|
+
globalThis[UX_META] = new Map();
|
|
171
|
+
}
|
|
172
|
+
const sessionName = typeof event.params?.name === 'string' ? event.params.name : undefined;
|
|
173
|
+
if (sessionName) {
|
|
174
|
+
globalThis[UX_META].set(sessionName, {
|
|
175
|
+
chatId: metadata.chatId,
|
|
176
|
+
threadId: metadata.threadId,
|
|
177
|
+
storedAt: Date.now(),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// Return adjusted params — gateway merges these into the tool call
|
|
181
|
+
const adjusted = {
|
|
182
|
+
...event.params,
|
|
183
|
+
telegramChatId: metadata.chatId,
|
|
184
|
+
};
|
|
185
|
+
if (metadata.threadId) {
|
|
186
|
+
adjusted.telegramThreadId = metadata.threadId;
|
|
187
|
+
}
|
|
188
|
+
return { params: adjusted };
|
|
189
|
+
});
|
|
190
|
+
logger.info(`${PLUGIN_TAG} Hooks registered (active when ${ENV_FLAG}=true)`);
|
|
191
|
+
}); // end defaultRegisterGuard.guard
|
|
192
|
+
}
|
|
193
|
+
// Default export compatible with the original plugin object shape
|
|
194
|
+
export default {
|
|
195
|
+
id: 'telegram-ux-injector',
|
|
196
|
+
name: 'Telegram UX Metadata Injector',
|
|
197
|
+
description: 'Injects Telegram UX metadata into Savvy-delegated claude_session_send calls (Stage 4)',
|
|
198
|
+
register,
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../../src/channels/telegram/injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* telegram live-card — TypeScript port of savvy-claude-code/ux-bridge.js
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Telegram Bot API HTTP calls (sendTg, editTg, telegramApi)
|
|
6
|
+
* - TelegramMessageQueue — serialises per-session card edits
|
|
7
|
+
* - bridgeEvent — maps raw stream events to TranscriptEntry shape
|
|
8
|
+
* - applyPatch — patches SessionManager.prototype.sendMessage to drive
|
|
9
|
+
* TelegramUXPipeline for every Telegram-originating CC session
|
|
10
|
+
*
|
|
11
|
+
* Source lines: 1–930 of ux-bridge.js
|
|
12
|
+
*/
|
|
13
|
+
export interface PluginApi {
|
|
14
|
+
on(event: string, handler: (...args: unknown[]) => unknown | Promise<unknown>): void;
|
|
15
|
+
logger?: Console;
|
|
16
|
+
config?: Record<string, unknown>;
|
|
17
|
+
registerService?(opts: {
|
|
18
|
+
id: string;
|
|
19
|
+
start(): Promise<void>;
|
|
20
|
+
stop(): void;
|
|
21
|
+
}): void;
|
|
22
|
+
runtime?: {
|
|
23
|
+
subagent?: {
|
|
24
|
+
run?(opts: Record<string, unknown>): Promise<{
|
|
25
|
+
runId?: string;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare const UX_MODULE_PATH = "/home/a1xai/.openclaw/workspace/lib/telegram-ux";
|
|
31
|
+
export declare const VERBOSITY_STORE = "/home/a1xai/.openclaw/workspace/lib/telegram-ux/verbosity-prefs.json";
|
|
32
|
+
export declare let BOT_TOKEN: string;
|
|
33
|
+
export declare let minimaxTracker: unknown;
|
|
34
|
+
export declare let buttonHandler: null | {
|
|
35
|
+
buildButtons(state: unknown, sessionName: string): unknown;
|
|
36
|
+
buildSavvyButtons(state: unknown, sessionKey: string, opts: unknown): unknown;
|
|
37
|
+
parseCallback(data: string): {
|
|
38
|
+
action: string;
|
|
39
|
+
sessionId: string;
|
|
40
|
+
} | null;
|
|
41
|
+
parseSavvyCallback?(data: string): {
|
|
42
|
+
action: string;
|
|
43
|
+
sessionKey: string;
|
|
44
|
+
} | null;
|
|
45
|
+
parseNextStepCallback?(data: string): {
|
|
46
|
+
action: string;
|
|
47
|
+
} | null;
|
|
48
|
+
handleAction(action: string, ctx: unknown): {
|
|
49
|
+
text?: string;
|
|
50
|
+
};
|
|
51
|
+
formatTranscript(state: unknown): string;
|
|
52
|
+
};
|
|
53
|
+
export declare let nsCommands: Record<string, string> | null;
|
|
54
|
+
export declare const activeSessions: Map<string, {
|
|
55
|
+
pipeline: SessionPipeline;
|
|
56
|
+
queue: TelegramMessageQueue;
|
|
57
|
+
name: string;
|
|
58
|
+
}>;
|
|
59
|
+
export declare const recentlyFinishedSessions: Map<string, {
|
|
60
|
+
pipeline: SessionPipeline;
|
|
61
|
+
queue: TelegramMessageQueue;
|
|
62
|
+
name: string;
|
|
63
|
+
finishedAt: number;
|
|
64
|
+
}>;
|
|
65
|
+
export declare const FINISHED_SESSION_TTL_MS: number;
|
|
66
|
+
export declare const delegatedCardStore: Map<string, {
|
|
67
|
+
cardMessageId: number;
|
|
68
|
+
chatId: string;
|
|
69
|
+
threadId: string | undefined;
|
|
70
|
+
}>;
|
|
71
|
+
export declare let latestQuotaState: QuotaState | null;
|
|
72
|
+
/**
|
|
73
|
+
* Shared cross-handler dedup. Any handler dispatching to Telegram should
|
|
74
|
+
* (a) mark via `markDispatchedToTelegram(chatId, payload)` and (b) check via
|
|
75
|
+
* `wasDispatchedToTelegram(chatId, payload)` to short-circuit duplicates.
|
|
76
|
+
*
|
|
77
|
+
* Used to bridge the gap between cc-openclaw's patched SessionManager.send
|
|
78
|
+
* path and the gateway's native ACP message_sending path — both can fire
|
|
79
|
+
* for the same agent reply, producing the doubled-greeting on /new.
|
|
80
|
+
*/
|
|
81
|
+
export declare function markDispatchedToTelegram(chatId: string, payload: unknown): void;
|
|
82
|
+
export declare function wasDispatchedToTelegram(chatId: string, payload: unknown): boolean;
|
|
83
|
+
export interface QuotaState {
|
|
84
|
+
sevenDay?: {
|
|
85
|
+
usedPercent?: number;
|
|
86
|
+
resetsAt?: number;
|
|
87
|
+
};
|
|
88
|
+
fiveHour?: {
|
|
89
|
+
usedPercent?: number;
|
|
90
|
+
resetsAt?: number;
|
|
91
|
+
};
|
|
92
|
+
sevenDaySonnet?: {
|
|
93
|
+
usedPercent?: number;
|
|
94
|
+
};
|
|
95
|
+
sevenDayOpus?: {
|
|
96
|
+
usedPercent?: number;
|
|
97
|
+
};
|
|
98
|
+
extraUsage?: {
|
|
99
|
+
isEnabled?: boolean;
|
|
100
|
+
usedCredits?: number;
|
|
101
|
+
monthlyLimit?: number;
|
|
102
|
+
currency?: string;
|
|
103
|
+
};
|
|
104
|
+
source?: string;
|
|
105
|
+
}
|
|
106
|
+
interface SessionPipeline {
|
|
107
|
+
start(): void;
|
|
108
|
+
finish(result: unknown): void;
|
|
109
|
+
abort(): void;
|
|
110
|
+
processTranscriptEntry(entry: unknown): void;
|
|
111
|
+
setPermissionMode(mode: string): void;
|
|
112
|
+
setSessionType(type: string): void;
|
|
113
|
+
setTokenUsage(input: number, output: number): void;
|
|
114
|
+
setContextPercent(pct: number): void;
|
|
115
|
+
setCachedTokens(tokens: number, pct: number | null): void;
|
|
116
|
+
setModel(model: string): void;
|
|
117
|
+
setMiniMaxUsage(usage: unknown): void;
|
|
118
|
+
setGptUsage(usage: unknown): void;
|
|
119
|
+
setQuotaPercent(pct: number, resetsAt: unknown): void;
|
|
120
|
+
setQuota7d(pct: number, resetsAt: unknown): void;
|
|
121
|
+
setContextWindowSize(size: number): void;
|
|
122
|
+
cycleVerbosity(): string;
|
|
123
|
+
_handleStall(idleMs: number): void;
|
|
124
|
+
_handleStallRecovery(): void;
|
|
125
|
+
_cardState?: {
|
|
126
|
+
getState(): CardState;
|
|
127
|
+
};
|
|
128
|
+
_livenessCheck?: () => boolean;
|
|
129
|
+
}
|
|
130
|
+
interface CardState {
|
|
131
|
+
elapsedMs: number;
|
|
132
|
+
toolCount: number;
|
|
133
|
+
toolSummary: Record<string, number>;
|
|
134
|
+
errorCount: number;
|
|
135
|
+
stallCount: number;
|
|
136
|
+
thinkingMs: number;
|
|
137
|
+
filesModified: string[];
|
|
138
|
+
subagents: unknown[];
|
|
139
|
+
status: string;
|
|
140
|
+
startedAt?: number;
|
|
141
|
+
[key: string]: unknown;
|
|
142
|
+
}
|
|
143
|
+
export declare function telegramApi(method: string, params: Record<string, unknown>): Promise<{
|
|
144
|
+
ok: boolean;
|
|
145
|
+
result?: {
|
|
146
|
+
message_id?: number;
|
|
147
|
+
};
|
|
148
|
+
error_code?: number;
|
|
149
|
+
description?: string;
|
|
150
|
+
parameters?: {
|
|
151
|
+
retry_after?: number;
|
|
152
|
+
};
|
|
153
|
+
}>;
|
|
154
|
+
/** Send a Telegram message. Tries MarkdownV2 first, falls back to plain text. */
|
|
155
|
+
export declare function sendTg(chatId: string, text: string, threadId?: string, replyMarkup?: unknown, replyToMessageId?: number | null): Promise<{
|
|
156
|
+
ok: boolean;
|
|
157
|
+
result?: {
|
|
158
|
+
message_id?: number;
|
|
159
|
+
};
|
|
160
|
+
}>;
|
|
161
|
+
/** Edit a Telegram message. Tries MarkdownV2 first, falls back to plain text. */
|
|
162
|
+
export declare function editTg(chatId: string, messageId: number, text: string, replyMarkup?: unknown): Promise<{
|
|
163
|
+
ok: boolean;
|
|
164
|
+
}>;
|
|
165
|
+
export declare class TelegramMessageQueue {
|
|
166
|
+
chatId: string;
|
|
167
|
+
threadId: string | undefined;
|
|
168
|
+
cardMessageId: number | null;
|
|
169
|
+
_replyToMessageId: number | null;
|
|
170
|
+
/**
|
|
171
|
+
* Sticky flag — set true the first time `sendMessage()` is called for this
|
|
172
|
+
* queue instance. Lets the fast-turn fallback in `applyPatch()` detect that
|
|
173
|
+
* a new message was already dispatched by the pipeline's `onNewMessage`
|
|
174
|
+
* callback and avoid double-firing. Bug context: 2026-04-29 doubled-greeting
|
|
175
|
+
* on `/new` was caused by both the pipeline AND the fallback emitting the
|
|
176
|
+
* same model output as separate Telegram messages.
|
|
177
|
+
*/
|
|
178
|
+
messageSent: boolean;
|
|
179
|
+
private _cardChain;
|
|
180
|
+
private _msgChain;
|
|
181
|
+
constructor(chatId: string, threadId: string | undefined, existingCardMessageId: number | null, replyToMessageId?: number | null);
|
|
182
|
+
/** Send or edit the session card. */
|
|
183
|
+
updateCard(text: string, replyMarkup?: unknown): void;
|
|
184
|
+
/** Send a standalone message (error alert, completion summary). */
|
|
185
|
+
sendMessage(text: string): void;
|
|
186
|
+
}
|
|
187
|
+
interface StreamEvent {
|
|
188
|
+
type: string;
|
|
189
|
+
id?: string;
|
|
190
|
+
tool_use_id?: string;
|
|
191
|
+
parent_tool_use_id?: string;
|
|
192
|
+
parentToolUseId?: string;
|
|
193
|
+
tool?: {
|
|
194
|
+
name?: string;
|
|
195
|
+
input?: Record<string, unknown>;
|
|
196
|
+
parent_tool_use_id?: string;
|
|
197
|
+
};
|
|
198
|
+
tool_name?: string;
|
|
199
|
+
input?: Record<string, unknown>;
|
|
200
|
+
content?: unknown;
|
|
201
|
+
output?: unknown;
|
|
202
|
+
is_error?: boolean;
|
|
203
|
+
error?: unknown;
|
|
204
|
+
result?: string;
|
|
205
|
+
}
|
|
206
|
+
interface TranscriptEntry {
|
|
207
|
+
kind: 'tool_call' | 'tool_result' | 'assistant';
|
|
208
|
+
ts: string;
|
|
209
|
+
name?: string;
|
|
210
|
+
input?: Record<string, unknown>;
|
|
211
|
+
toolUseId?: string;
|
|
212
|
+
parentToolUseId?: string;
|
|
213
|
+
toolName?: string;
|
|
214
|
+
content?: unknown;
|
|
215
|
+
isError?: boolean;
|
|
216
|
+
text?: string;
|
|
217
|
+
delta?: boolean;
|
|
218
|
+
}
|
|
219
|
+
export declare function bridgeEvent(event: StreamEvent): TranscriptEntry | null;
|
|
220
|
+
export declare let _logger: Console;
|
|
221
|
+
export declare function loadUxModule(): Record<string, unknown>;
|
|
222
|
+
export declare function applyPatch(): Promise<void>;
|
|
223
|
+
export declare function cleanStaleStatusFiles(): void;
|
|
224
|
+
/**
|
|
225
|
+
* Register the live-card plugin hooks.
|
|
226
|
+
* Idempotent — subsequent calls are no-ops.
|
|
227
|
+
*/
|
|
228
|
+
export declare function register(api: PluginApi): void;
|
|
229
|
+
export {};
|
|
230
|
+
//# sourceMappingURL=live-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-card.d.ts","sourceRoot":"","sources":["../../../../src/channels/telegram/live-card.ts"],"names":[],"mappings":"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"}
|