@sayknow-cli/coding-agent 0.3.6 → 0.3.8
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 +76 -0
- package/dist/types/append-only-mode.d.ts +31 -0
- package/dist/types/async/index.d.ts +2 -0
- package/dist/types/async/job-manager.d.ts +328 -0
- package/dist/types/async/support.d.ts +2 -0
- package/dist/types/autoresearch/dashboard.d.ts +4 -0
- package/dist/types/autoresearch/git.d.ts +36 -0
- package/dist/types/autoresearch/helpers.d.ts +24 -0
- package/dist/types/autoresearch/index.d.ts +2 -0
- package/dist/types/autoresearch/state.d.ts +17 -0
- package/dist/types/autoresearch/storage.d.ts +142 -0
- package/dist/types/autoresearch/tools/init-experiment.d.ts +31 -0
- package/dist/types/autoresearch/tools/log-experiment.d.ts +23 -0
- package/dist/types/autoresearch/tools/run-experiment.d.ts +8 -0
- package/dist/types/autoresearch/tools/update-notes.d.ts +12 -0
- package/dist/types/autoresearch/types.d.ts +154 -0
- package/dist/types/capability/context-file.d.ts +17 -0
- package/dist/types/capability/extension-module.d.ts +15 -0
- package/dist/types/capability/extension.d.ts +28 -0
- package/dist/types/capability/fs.d.ts +20 -0
- package/dist/types/capability/hook.d.ts +19 -0
- package/dist/types/capability/index.d.ts +80 -0
- package/dist/types/capability/instruction.d.ts +17 -0
- package/dist/types/capability/mcp.d.ts +47 -0
- package/dist/types/capability/prompt.d.ts +15 -0
- package/dist/types/capability/rule.d.ts +69 -0
- package/dist/types/capability/settings.d.ts +15 -0
- package/dist/types/capability/skill.d.ts +36 -0
- package/dist/types/capability/slash-command.d.ts +17 -0
- package/dist/types/capability/ssh.d.ts +23 -0
- package/dist/types/capability/system-prompt.d.ts +15 -0
- package/dist/types/capability/tool.d.ts +19 -0
- package/dist/types/capability/types.d.ts +154 -0
- package/dist/types/cli/agents-cli.d.ts +12 -0
- package/dist/types/cli/args.d.ts +56 -0
- package/dist/types/cli/auth-broker-cli.d.ts +25 -0
- package/dist/types/cli/auth-gateway-cli.d.ts +18 -0
- package/dist/types/cli/classify-install-target.d.ts +18 -0
- package/dist/types/cli/commands/init-xdg.d.ts +1 -0
- package/dist/types/cli/completion-cli.d.ts +41 -0
- package/dist/types/cli/config-cli.d.ts +23 -0
- package/dist/types/cli/daemon-cli.d.ts +25 -0
- package/dist/types/cli/fast-help.d.ts +1 -0
- package/dist/types/cli/file-processor.d.ts +11 -0
- package/dist/types/cli/fixture-report.d.ts +20 -0
- package/dist/types/cli/fixture-report.test.d.ts +1 -0
- package/dist/types/cli/grep-cli.d.ts +17 -0
- package/dist/types/cli/initial-message.d.ts +17 -0
- package/dist/types/cli/list-models.d.ts +36 -0
- package/dist/types/cli/local-provider-smoke.d.ts +59 -0
- package/dist/types/cli/mcp-cli.d.ts +25 -0
- package/dist/types/cli/migrate-cli.d.ts +20 -0
- package/dist/types/cli/nofile-limit.d.ts +11 -0
- package/dist/types/cli/notify-cli.d.ts +32 -0
- package/dist/types/cli/plugin-cli.d.ts +34 -0
- package/dist/types/cli/read-cli.d.ts +4 -0
- package/dist/types/cli/session-picker.d.ts +3 -0
- package/dist/types/cli/setup-cli.d.ts +73 -0
- package/dist/types/cli/shell-cli.d.ts +8 -0
- package/dist/types/cli/skills-cli.d.ts +9 -0
- package/dist/types/cli/ssh-cli.d.ts +21 -0
- package/dist/types/cli/stats-cli.d.ts +17 -0
- package/dist/types/cli/telegram-cli.d.ts +13 -0
- package/dist/types/cli/update-cli.d.ts +89 -0
- package/dist/types/cli/web-search-cli.d.ts +32 -0
- package/dist/types/cli/worktree-cli.d.ts +26 -0
- package/dist/types/cli.d.ts +132 -0
- package/dist/types/commands/acp.d.ts +12 -0
- package/dist/types/commands/agents.d.ts +34 -0
- package/dist/types/commands/auth-broker.d.ts +54 -0
- package/dist/types/commands/auth-gateway.d.ts +32 -0
- package/dist/types/commands/codex-native-hook.d.ts +6 -0
- package/dist/types/commands/commit.d.ts +27 -0
- package/dist/types/commands/completion.d.ts +29 -0
- package/dist/types/commands/config.d.ts +33 -0
- package/dist/types/commands/contribution-prep.d.ts +18 -0
- package/dist/types/commands/coordinator.d.ts +19 -0
- package/dist/types/commands/daemon.d.ts +41 -0
- package/dist/types/commands/deep-interview.d.ts +54 -0
- package/dist/types/commands/gc.d.ts +26 -0
- package/dist/types/commands/grep.d.ts +42 -0
- package/dist/types/commands/harness.d.ts +43 -0
- package/dist/types/commands/launch.d.ts +127 -0
- package/dist/types/commands/local-provider.d.ts +34 -0
- package/dist/types/commands/mcp-serve.d.ts +24 -0
- package/dist/types/commands/mcp.d.ts +70 -0
- package/dist/types/commands/migrate.d.ts +33 -0
- package/dist/types/commands/notify.d.ts +41 -0
- package/dist/types/commands/plugin.d.ts +58 -0
- package/dist/types/commands/ralplan.d.ts +7 -0
- package/dist/types/commands/read.d.ts +15 -0
- package/dist/types/commands/rlm.d.ts +10 -0
- package/dist/types/commands/session.d.ts +30 -0
- package/dist/types/commands/setup.d.ts +105 -0
- package/dist/types/commands/shell.d.ts +21 -0
- package/dist/types/commands/skills.d.ts +26 -0
- package/dist/types/commands/ssh.d.ts +48 -0
- package/dist/types/commands/state.d.ts +7 -0
- package/dist/types/commands/stats.d.ts +25 -0
- package/dist/types/commands/team.d.ts +24 -0
- package/dist/types/commands/telegram.d.ts +22 -0
- package/dist/types/commands/ultragoal.d.ts +8 -0
- package/dist/types/commands/update.d.ts +20 -0
- package/dist/types/commands/web-search.d.ts +87 -0
- package/dist/types/commands/worktree.d.ts +34 -0
- package/dist/types/commit/agentic/agent.d.ts +31 -0
- package/dist/types/commit/agentic/fallback.d.ts +5 -0
- package/dist/types/commit/agentic/index.d.ts +2 -0
- package/dist/types/commit/agentic/state.d.ts +58 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +19 -0
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +10 -0
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +9 -0
- package/dist/types/commit/agentic/tools/git-overview.d.ts +9 -0
- package/dist/types/commit/agentic/tools/index.d.ts +16 -0
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +28 -0
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +36 -0
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +7 -0
- package/dist/types/commit/agentic/tools/schemas.d.ts +27 -0
- package/dist/types/commit/agentic/tools/split-commit.d.ts +53 -0
- package/dist/types/commit/agentic/topo-sort.d.ts +4 -0
- package/dist/types/commit/agentic/trivial.d.ts +7 -0
- package/dist/types/commit/agentic/validation.d.ts +20 -0
- package/dist/types/commit/analysis/conventional.d.ts +22 -0
- package/dist/types/commit/analysis/index.d.ts +4 -0
- package/dist/types/commit/analysis/scope.d.ts +6 -0
- package/dist/types/commit/analysis/summary.d.ts +19 -0
- package/dist/types/commit/analysis/validation.d.ts +8 -0
- package/dist/types/commit/changelog/detect.d.ts +2 -0
- package/dist/types/commit/changelog/generate.d.ts +30 -0
- package/dist/types/commit/changelog/index.d.ts +30 -0
- package/dist/types/commit/changelog/parse.d.ts +2 -0
- package/dist/types/commit/cli.d.ts +3 -0
- package/dist/types/commit/git/diff.d.ts +5 -0
- package/dist/types/commit/index.d.ts +4 -0
- package/dist/types/commit/map-reduce/index.d.ts +28 -0
- package/dist/types/commit/map-reduce/map-phase.d.ts +17 -0
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +13 -0
- package/dist/types/commit/map-reduce/utils.d.ts +2 -0
- package/dist/types/commit/message.d.ts +2 -0
- package/dist/types/commit/model-selection.d.ts +15 -0
- package/dist/types/commit/pipeline.d.ts +5 -0
- package/dist/types/commit/shared-llm.d.ts +54 -0
- package/dist/types/commit/types.d.ts +78 -0
- package/dist/types/commit/utils/exclusions.d.ts +4 -0
- package/dist/types/commit/utils.d.ts +20 -0
- package/dist/types/config/config-file.d.ts +58 -0
- package/dist/types/config/file-lock-gc.d.ts +5 -0
- package/dist/types/config/file-lock.d.ts +36 -0
- package/dist/types/config/keybindings.d.ts +359 -0
- package/dist/types/config/model-equivalence.d.ts +24 -0
- package/dist/types/config/model-profile-activation.d.ts +64 -0
- package/dist/types/config/model-profiles.d.ts +39 -0
- package/dist/types/config/model-registry.d.ts +465 -0
- package/dist/types/config/model-resolver.d.ts +217 -0
- package/dist/types/config/models-config-schema.d.ts +700 -0
- package/dist/types/config/prompt-templates.d.ts +32 -0
- package/dist/types/config/resolve-config-value.d.ts +17 -0
- package/dist/types/config/settings-schema.d.ts +4169 -0
- package/dist/types/config/settings.d.ts +149 -0
- package/dist/types/config/skill-settings-defaults.d.ts +14 -0
- package/dist/types/config/telegram-autostart.d.ts +14 -0
- package/dist/types/config/telegram-env-bridge.d.ts +18 -0
- package/dist/types/config.d.ts +66 -0
- package/dist/types/coordinator/contract.d.ts +4 -0
- package/dist/types/coordinator-mcp/policy.d.ts +24 -0
- package/dist/types/coordinator-mcp/safety.d.ts +26 -0
- package/dist/types/coordinator-mcp/server.d.ts +66 -0
- package/dist/types/cursor.d.ts +24 -0
- package/dist/types/daemon/builtin.d.ts +20 -0
- package/dist/types/daemon/control-types.d.ts +57 -0
- package/dist/types/daemon/runtime.d.ts +25 -0
- package/dist/types/dap/client.d.ts +39 -0
- package/dist/types/dap/config.d.ts +6 -0
- package/dist/types/dap/index.d.ts +4 -0
- package/dist/types/dap/session.d.ts +108 -0
- package/dist/types/dap/types.d.ts +524 -0
- package/dist/types/debug/crash-diagnostics.d.ts +45 -0
- package/dist/types/debug/index.d.ts +15 -0
- package/dist/types/debug/log-formatting.d.ts +4 -0
- package/dist/types/debug/log-viewer.d.ts +68 -0
- package/dist/types/debug/profiler.d.ts +24 -0
- package/dist/types/debug/raw-sse-buffer.d.ts +44 -0
- package/dist/types/debug/raw-sse.d.ts +16 -0
- package/dist/types/debug/report-bundle.d.ts +55 -0
- package/dist/types/debug/runtime-gauges.d.ts +6 -0
- package/dist/types/debug/system-info.d.ts +26 -0
- package/dist/types/deep-interview/plaintext-gate-guard.d.ts +11 -0
- package/dist/types/deep-interview/render-middleware.d.ts +6 -0
- package/dist/types/defaults/skc/extensions/grok-build/index.d.ts +1 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/index.d.ts +1 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.d.ts +25 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.d.ts +27 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/billing.d.ts +8 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/register.d.ts +5 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/stream.d.ts +10 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/usage.d.ts +2 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/base-url.d.ts +2 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/errors.d.ts +38 -0
- package/dist/types/defaults/skc-defaults.d.ts +64 -0
- package/dist/types/defaults/skc-grok-cli.d.ts +5 -0
- package/dist/types/discovery/agents-md.d.ts +1 -0
- package/dist/types/discovery/agents.d.ts +12 -0
- package/dist/types/discovery/builtin.d.ts +1 -0
- package/dist/types/discovery/claude-plugins.d.ts +1 -0
- package/dist/types/discovery/claude.d.ts +1 -0
- package/dist/types/discovery/cline.d.ts +1 -0
- package/dist/types/discovery/codex.d.ts +1 -0
- package/dist/types/discovery/cursor.d.ts +19 -0
- package/dist/types/discovery/gemini.d.ts +1 -0
- package/dist/types/discovery/github.d.ts +1 -0
- package/dist/types/discovery/helpers.d.ts +271 -0
- package/dist/types/discovery/index.d.ts +48 -0
- package/dist/types/discovery/mcp-json.d.ts +1 -0
- package/dist/types/discovery/opencode.d.ts +1 -0
- package/dist/types/discovery/plugin-dir-roots.d.ts +15 -0
- package/dist/types/discovery/ssh.d.ts +1 -0
- package/dist/types/discovery/substitute-plugin-root.d.ts +5 -0
- package/dist/types/discovery/vscode.d.ts +1 -0
- package/dist/types/discovery/windsurf.d.ts +15 -0
- package/dist/types/edit/apply-patch/index.d.ts +35 -0
- package/dist/types/edit/apply-patch/parser.d.ts +34 -0
- package/dist/types/edit/diff.d.ts +75 -0
- package/dist/types/edit/file-read-cache.d.ts +25 -0
- package/dist/types/edit/index.d.ts +58 -0
- package/dist/types/edit/modes/apply-patch.d.ts +24 -0
- package/dist/types/edit/modes/patch.d.ts +99 -0
- package/dist/types/edit/modes/replace.d.ts +149 -0
- package/dist/types/edit/normalize.d.ts +43 -0
- package/dist/types/edit/notebook.d.ts +26 -0
- package/dist/types/edit/read-file.d.ts +8 -0
- package/dist/types/edit/renderer.d.ts +110 -0
- package/dist/types/edit/streaming.d.ts +66 -0
- package/dist/types/eval/backend.d.ts +40 -0
- package/dist/types/eval/index.d.ts +4 -0
- package/dist/types/eval/js/context-manager.d.ts +27 -0
- package/dist/types/eval/js/executor.d.ts +29 -0
- package/dist/types/eval/js/index.d.ts +10 -0
- package/dist/types/eval/js/shared/helpers.d.ts +38 -0
- package/dist/types/eval/js/shared/indirect-eval.d.ts +14 -0
- package/dist/types/eval/js/shared/prelude.d.ts +1 -0
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -0
- package/dist/types/eval/js/shared/runtime.d.ts +47 -0
- package/dist/types/eval/js/shared/types.d.ts +24 -0
- package/dist/types/eval/js/tool-bridge.d.ts +18 -0
- package/dist/types/eval/js/worker-core.d.ts +5 -0
- package/dist/types/eval/js/worker-entry.d.ts +1 -0
- package/dist/types/eval/js/worker-protocol.d.ts +77 -0
- package/dist/types/eval/py/display.d.ts +25 -0
- package/dist/types/eval/py/executor.d.ts +88 -0
- package/dist/types/eval/py/index.d.ts +10 -0
- package/dist/types/eval/py/kernel.d.ts +65 -0
- package/dist/types/eval/py/prelude.d.ts +1 -0
- package/dist/types/eval/py/runtime.d.ts +29 -0
- package/dist/types/eval/py/tool-bridge.d.ts +20 -0
- package/dist/types/eval/types.d.ts +52 -0
- package/dist/types/exa/factory.d.ts +13 -0
- package/dist/types/exa/index.d.ts +20 -0
- package/dist/types/exa/mcp-client.d.ts +45 -0
- package/dist/types/exa/render.d.ts +19 -0
- package/dist/types/exa/researcher.d.ts +9 -0
- package/dist/types/exa/search.d.ts +9 -0
- package/dist/types/exa/types.d.ts +155 -0
- package/dist/types/exa/websets.d.ts +9 -0
- package/dist/types/exec/bash-executor.d.ts +64 -0
- package/dist/types/exec/exec.d.ts +25 -0
- package/dist/types/exec/idle-timeout-watchdog.d.ts +18 -0
- package/dist/types/exec/non-interactive-env.d.ts +1 -0
- package/dist/types/export/custom-share.d.ts +20 -0
- package/dist/types/export/html/index.d.ts +10 -0
- package/dist/types/export/html/template.generated.d.ts +1 -0
- package/dist/types/export/html/template.macro.d.ts +5 -0
- package/dist/types/export/ttsr.d.ts +55 -0
- package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +9 -0
- package/dist/types/extensibility/custom-commands/index.d.ts +2 -0
- package/dist/types/extensibility/custom-commands/loader.d.ts +29 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +106 -0
- package/dist/types/extensibility/custom-tools/index.d.ts +6 -0
- package/dist/types/extensibility/custom-tools/loader.d.ts +69 -0
- package/dist/types/extensibility/custom-tools/types.d.ts +229 -0
- package/dist/types/extensibility/custom-tools/wrapper.d.ts +24 -0
- package/dist/types/extensibility/extensions/compact-handler.d.ts +26 -0
- package/dist/types/extensibility/extensions/get-commands-handler.d.ts +29 -0
- package/dist/types/extensibility/extensions/index.d.ts +9 -0
- package/dist/types/extensibility/extensions/loader.d.ts +43 -0
- package/dist/types/extensibility/extensions/prefix-command-bridge.d.ts +35 -0
- package/dist/types/extensibility/extensions/runner.d.ts +135 -0
- package/dist/types/extensibility/extensions/types.d.ts +918 -0
- package/dist/types/extensibility/extensions/wrapper.d.ts +55 -0
- package/dist/types/extensibility/hooks/index.d.ts +5 -0
- package/dist/types/extensibility/hooks/loader.d.ts +89 -0
- package/dist/types/extensibility/hooks/runner.d.ts +126 -0
- package/dist/types/extensibility/hooks/tool-wrapper.d.ts +25 -0
- package/dist/types/extensibility/hooks/types.d.ts +431 -0
- package/dist/types/extensibility/plugins/doctor.d.ts +3 -0
- package/dist/types/extensibility/plugins/git-url.d.ts +34 -0
- package/dist/types/extensibility/plugins/index.d.ts +8 -0
- package/dist/types/extensibility/plugins/installer.d.ts +5 -0
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
- package/dist/types/extensibility/plugins/loader.d.ts +31 -0
- package/dist/types/extensibility/plugins/manager.d.ts +65 -0
- package/dist/types/extensibility/plugins/marketplace/cache.d.ts +41 -0
- package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +48 -0
- package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -0
- package/dist/types/extensibility/plugins/marketplace/manager.d.ts +57 -0
- package/dist/types/extensibility/plugins/marketplace/registry.d.ts +34 -0
- package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +28 -0
- package/dist/types/extensibility/plugins/marketplace/types.d.ts +130 -0
- package/dist/types/extensibility/plugins/parser.d.ts +52 -0
- package/dist/types/extensibility/plugins/security-scanner.d.ts +31 -0
- package/dist/types/extensibility/plugins/types.d.ts +149 -0
- package/dist/types/extensibility/shared-events.d.ts +281 -0
- package/dist/types/extensibility/skc-plugins/activation.d.ts +14 -0
- package/dist/types/extensibility/skc-plugins/compiler.d.ts +19 -0
- package/dist/types/extensibility/skc-plugins/constrained-hooks.d.ts +29 -0
- package/dist/types/extensibility/skc-plugins/index.d.ts +18 -0
- package/dist/types/extensibility/skc-plugins/injection.d.ts +40 -0
- package/dist/types/extensibility/skc-plugins/installer.d.ts +13 -0
- package/dist/types/extensibility/skc-plugins/loader.d.ts +3 -0
- package/dist/types/extensibility/skc-plugins/mcp-policy.d.ts +26 -0
- package/dist/types/extensibility/skc-plugins/observability.d.ts +27 -0
- package/dist/types/extensibility/skc-plugins/paths.d.ts +8 -0
- package/dist/types/extensibility/skc-plugins/prompt-appendix.d.ts +16 -0
- package/dist/types/extensibility/skc-plugins/registry.d.ts +32 -0
- package/dist/types/extensibility/skc-plugins/runtime-adapters.d.ts +64 -0
- package/dist/types/extensibility/skc-plugins/schema.d.ts +3 -0
- package/dist/types/extensibility/skc-plugins/session-validation.d.ts +42 -0
- package/dist/types/extensibility/skc-plugins/state.d.ts +9 -0
- package/dist/types/extensibility/skc-plugins/tools.d.ts +8 -0
- package/dist/types/extensibility/skc-plugins/types.d.ts +220 -0
- package/dist/types/extensibility/skc-plugins/validation.d.ts +11 -0
- package/dist/types/extensibility/skills.d.ts +82 -0
- package/dist/types/extensibility/slash-commands.d.ts +48 -0
- package/dist/types/extensibility/tool-proxy.d.ts +4 -0
- package/dist/types/extensibility/typebox.d.ts +155 -0
- package/dist/types/extensibility/utils.d.ts +12 -0
- package/dist/types/goals/index.d.ts +3 -0
- package/dist/types/goals/runtime.d.ts +63 -0
- package/dist/types/goals/state.d.ts +32 -0
- package/dist/types/goals/tools/goal-tool.d.ts +62 -0
- package/dist/types/harness-control-plane/classifier.d.ts +13 -0
- package/dist/types/harness-control-plane/control-endpoint.d.ts +31 -0
- package/dist/types/harness-control-plane/finalize.d.ts +60 -0
- package/dist/types/harness-control-plane/gc-adapter.d.ts +3 -0
- package/dist/types/harness-control-plane/operate.d.ts +35 -0
- package/dist/types/harness-control-plane/owner.d.ts +53 -0
- package/dist/types/harness-control-plane/phase-rollup.d.ts +23 -0
- package/dist/types/harness-control-plane/preserve.d.ts +19 -0
- package/dist/types/harness-control-plane/receipt-ingest.d.ts +19 -0
- package/dist/types/harness-control-plane/receipt-spool.d.ts +19 -0
- package/dist/types/harness-control-plane/receipts.d.ts +149 -0
- package/dist/types/harness-control-plane/rpc-adapter.d.ts +69 -0
- package/dist/types/harness-control-plane/seams.d.ts +21 -0
- package/dist/types/harness-control-plane/session-lease.d.ts +65 -0
- package/dist/types/harness-control-plane/state-machine.d.ts +24 -0
- package/dist/types/harness-control-plane/storage.d.ts +81 -0
- package/dist/types/harness-control-plane/types.d.ts +187 -0
- package/dist/types/hashline/anchors.d.ts +20 -0
- package/dist/types/hashline/apply.d.ts +14 -0
- package/dist/types/hashline/constants.d.ts +19 -0
- package/dist/types/hashline/diff-preview.d.ts +2 -0
- package/dist/types/hashline/diff.d.ts +17 -0
- package/dist/types/hashline/execute.d.ts +4 -0
- package/dist/types/hashline/hash.d.ts +123 -0
- package/dist/types/hashline/index.d.ts +13 -0
- package/dist/types/hashline/input.d.ts +11 -0
- package/dist/types/hashline/parser.d.ts +7 -0
- package/dist/types/hashline/prefixes.d.ts +7 -0
- package/dist/types/hashline/recovery.d.ts +27 -0
- package/dist/types/hashline/stream.d.ts +2 -0
- package/dist/types/hashline/types.d.ts +77 -0
- package/dist/types/hindsight/backend.d.ts +13 -0
- package/dist/types/hindsight/bank.d.ts +54 -0
- package/dist/types/hindsight/client.d.ts +224 -0
- package/dist/types/hindsight/config.d.ts +51 -0
- package/dist/types/hindsight/content.d.ts +70 -0
- package/dist/types/hindsight/index.d.ts +8 -0
- package/dist/types/hindsight/mental-models.d.ts +125 -0
- package/dist/types/hindsight/state.d.ts +99 -0
- package/dist/types/hindsight/transcript.d.ts +28 -0
- package/dist/types/hooks/codex-native-hooks-config.d.ts +29 -0
- package/dist/types/hooks/native-skill-hook.d.ts +28 -0
- package/dist/types/hooks/skill-keywords.d.ts +18 -0
- package/dist/types/hooks/skill-state.d.ts +93 -0
- package/dist/types/i18n/index.d.ts +38 -0
- package/dist/types/i18n/messages/de.d.ts +2 -0
- package/dist/types/i18n/messages/de.messages.d.ts +1 -0
- package/dist/types/i18n/messages/de.settings.d.ts +1 -0
- package/dist/types/i18n/messages/en.d.ts +81 -0
- package/dist/types/i18n/messages/es.d.ts +2 -0
- package/dist/types/i18n/messages/es.messages.d.ts +1 -0
- package/dist/types/i18n/messages/es.settings.d.ts +1 -0
- package/dist/types/i18n/messages/fr.d.ts +2 -0
- package/dist/types/i18n/messages/fr.messages.d.ts +1 -0
- package/dist/types/i18n/messages/fr.settings.d.ts +1 -0
- package/dist/types/i18n/messages/ja.d.ts +2 -0
- package/dist/types/i18n/messages/ja.messages.d.ts +1 -0
- package/dist/types/i18n/messages/ja.settings.d.ts +1 -0
- package/dist/types/i18n/messages/ko.d.ts +2 -0
- package/dist/types/i18n/messages/ko.messages.d.ts +1 -0
- package/dist/types/i18n/messages/ko.settings.d.ts +1 -0
- package/dist/types/i18n/messages/zh.d.ts +2 -0
- package/dist/types/i18n/messages/zh.messages.d.ts +1 -0
- package/dist/types/i18n/messages/zh.settings.d.ts +1 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/internal-urls/agent-protocol.d.ts +12 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +6 -0
- package/dist/types/internal-urls/docs-index.generated.d.ts +2 -0
- package/dist/types/internal-urls/index.d.ts +20 -0
- package/dist/types/internal-urls/issue-pr-protocol.d.ts +17 -0
- package/dist/types/internal-urls/json-query.d.ts +30 -0
- package/dist/types/internal-urls/local-protocol.d.ts +39 -0
- package/dist/types/internal-urls/mcp-protocol.d.ts +12 -0
- package/dist/types/internal-urls/memory-protocol.d.ts +23 -0
- package/dist/types/internal-urls/parse.d.ts +19 -0
- package/dist/types/internal-urls/registry-helpers.d.ts +11 -0
- package/dist/types/internal-urls/router.d.ts +14 -0
- package/dist/types/internal-urls/rule-protocol.d.ts +6 -0
- package/dist/types/internal-urls/skc-protocol.d.ts +12 -0
- package/dist/types/internal-urls/skill-protocol.d.ts +13 -0
- package/dist/types/internal-urls/types.d.ts +109 -0
- package/dist/types/lsp/client.d.ts +66 -0
- package/dist/types/lsp/clients/biome-client.d.ts +16 -0
- package/dist/types/lsp/clients/index.d.ts +19 -0
- package/dist/types/lsp/clients/lsp-linter-client.d.ts +16 -0
- package/dist/types/lsp/clients/swiftlint-client.d.ts +20 -0
- package/dist/types/lsp/config.d.ts +65 -0
- package/dist/types/lsp/edits.d.ts +23 -0
- package/dist/types/lsp/index.d.ts +130 -0
- package/dist/types/lsp/lspmux.d.ts +58 -0
- package/dist/types/lsp/render.d.ts +32 -0
- package/dist/types/lsp/startup-events.d.ts +12 -0
- package/dist/types/lsp/types.d.ts +306 -0
- package/dist/types/lsp/utils.d.ts +108 -0
- package/dist/types/main.d.ts +75 -0
- package/dist/types/memories/index.d.ts +28 -0
- package/dist/types/memories/storage.d.ts +110 -0
- package/dist/types/memory-backend/index.d.ts +4 -0
- package/dist/types/memory-backend/local-backend.d.ts +9 -0
- package/dist/types/memory-backend/off-backend.d.ts +7 -0
- package/dist/types/memory-backend/resolve.d.ts +15 -0
- package/dist/types/memory-backend/types.d.ts +61 -0
- package/dist/types/migrate/action-planner.d.ts +11 -0
- package/dist/types/migrate/adapters/claude-code.d.ts +2 -0
- package/dist/types/migrate/adapters/codex.d.ts +5 -0
- package/dist/types/migrate/adapters/index.d.ts +45 -0
- package/dist/types/migrate/adapters/opencode.d.ts +2 -0
- package/dist/types/migrate/executor.d.ts +2 -0
- package/dist/types/migrate/mcp-mapper.d.ts +20 -0
- package/dist/types/migrate/report.d.ts +18 -0
- package/dist/types/migrate/skill-normalizer.d.ts +27 -0
- package/dist/types/migrate/types.d.ts +126 -0
- package/dist/types/modes/acp/acp-agent.d.ts +61 -0
- package/dist/types/modes/acp/acp-client-bridge.d.ts +9 -0
- package/dist/types/modes/acp/acp-event-mapper.d.ts +34 -0
- package/dist/types/modes/acp/acp-mode.d.ts +5 -0
- package/dist/types/modes/acp/index.d.ts +2 -0
- package/dist/types/modes/acp/terminal-auth.d.ts +6 -0
- package/dist/types/modes/bridge/auth.d.ts +12 -0
- package/dist/types/modes/bridge/bridge-client-bridge.d.ts +9 -0
- package/dist/types/modes/bridge/bridge-mode.d.ts +47 -0
- package/dist/types/modes/bridge/bridge-ui-context.d.ts +88 -0
- package/dist/types/modes/bridge/event-stream.d.ts +8 -0
- package/dist/types/modes/components/agent-dashboard.d.ts +21 -0
- package/dist/types/modes/components/assistant-message.d.ts +20 -0
- package/dist/types/modes/components/bash-execution.d.ts +29 -0
- package/dist/types/modes/components/bordered-loader.d.ts +11 -0
- package/dist/types/modes/components/branch-summary-message.d.ts +13 -0
- package/dist/types/modes/components/btw-panel.d.ts +16 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +13 -0
- package/dist/types/modes/components/countdown-timer.d.ts +14 -0
- package/dist/types/modes/components/custom-editor.d.ts +67 -0
- package/dist/types/modes/components/custom-message.d.ts +15 -0
- package/dist/types/modes/components/custom-model-preset-wizard.d.ts +12 -0
- package/dist/types/modes/components/custom-provider-wizard.d.ts +10 -0
- package/dist/types/modes/components/diff.d.ts +11 -0
- package/dist/types/modes/components/dynamic-border.d.ts +14 -0
- package/dist/types/modes/components/eval-execution.d.ts +23 -0
- package/dist/types/modes/components/execution-shared.d.ts +46 -0
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +26 -0
- package/dist/types/modes/components/extensions/extension-list.d.ts +39 -0
- package/dist/types/modes/components/extensions/index.d.ts +8 -0
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +8 -0
- package/dist/types/modes/components/extensions/state-manager.d.ts +50 -0
- package/dist/types/modes/components/extensions/types.d.ts +151 -0
- package/dist/types/modes/components/footer.d.ts +30 -0
- package/dist/types/modes/components/history-search.d.ts +7 -0
- package/dist/types/modes/components/hook-editor.d.ts +18 -0
- package/dist/types/modes/components/hook-input.d.ts +15 -0
- package/dist/types/modes/components/hook-message.d.ts +15 -0
- package/dist/types/modes/components/hook-selector.d.ts +53 -0
- package/dist/types/modes/components/index.d.ts +35 -0
- package/dist/types/modes/components/jobs-overlay-model.d.ts +31 -0
- package/dist/types/modes/components/jobs-overlay.d.ts +30 -0
- package/dist/types/modes/components/keybinding-hints.d.ts +40 -0
- package/dist/types/modes/components/login-dialog.d.ts +32 -0
- package/dist/types/modes/components/message-frame.d.ts +42 -0
- package/dist/types/modes/components/model-selector.d.ts +60 -0
- package/dist/types/modes/components/oauth-selector.d.ts +17 -0
- package/dist/types/modes/components/plugin-selector.d.ts +26 -0
- package/dist/types/modes/components/plugin-settings.d.ts +66 -0
- package/dist/types/modes/components/provider-onboarding-selector.d.ts +7 -0
- package/dist/types/modes/components/queue-mode-selector.d.ts +9 -0
- package/dist/types/modes/components/queued-message-selector.d.ts +12 -0
- package/dist/types/modes/components/read-tool-group.d.ts +30 -0
- package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +26 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +11 -0
- package/dist/types/modes/components/session-selector.d.ts +30 -0
- package/dist/types/modes/components/settings-defs.d.ts +50 -0
- package/dist/types/modes/components/settings-selector.d.ts +62 -0
- package/dist/types/modes/components/show-images-selector.d.ts +9 -0
- package/dist/types/modes/components/skill-hud/render.d.ts +2 -0
- package/dist/types/modes/components/skill-message.d.ts +10 -0
- package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -0
- package/dist/types/modes/components/status-line/git-utils.d.ts +28 -0
- package/dist/types/modes/components/status-line/index.d.ts +4 -0
- package/dist/types/modes/components/status-line/presets.d.ts +3 -0
- package/dist/types/modes/components/status-line/segments.d.ts +5 -0
- package/dist/types/modes/components/status-line/separators.d.ts +3 -0
- package/dist/types/modes/components/status-line/token-rate.d.ts +10 -0
- package/dist/types/modes/components/status-line/types.d.ts +77 -0
- package/dist/types/modes/components/status-line.d.ts +103 -0
- package/dist/types/modes/components/theme-selector.d.ts +10 -0
- package/dist/types/modes/components/thinking-selector.d.ts +10 -0
- package/dist/types/modes/components/todo-reminder.d.ts +13 -0
- package/dist/types/modes/components/tool-execution.d.ts +54 -0
- package/dist/types/modes/components/tree-selector.d.ts +31 -0
- package/dist/types/modes/components/ttsr-notification.d.ts +13 -0
- package/dist/types/modes/components/two-column-body.d.ts +9 -0
- package/dist/types/modes/components/user-message-selector.d.ts +28 -0
- package/dist/types/modes/components/user-message.d.ts +7 -0
- package/dist/types/modes/components/visual-truncate.d.ts +19 -0
- package/dist/types/modes/components/welcome.d.ts +45 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +10 -0
- package/dist/types/modes/controllers/command-controller-shared.d.ts +47 -0
- package/dist/types/modes/controllers/command-controller.d.ts +40 -0
- package/dist/types/modes/controllers/event-controller.d.ts +17 -0
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +80 -0
- package/dist/types/modes/controllers/input-controller.d.ts +42 -0
- package/dist/types/modes/controllers/runtime-mcp-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +66 -0
- package/dist/types/modes/controllers/ssh-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/todo-command-controller.d.ts +7 -0
- package/dist/types/modes/emoji-autocomplete.d.ts +16 -0
- package/dist/types/modes/index.d.ts +10 -0
- package/dist/types/modes/interactive-mode.d.ts +273 -0
- package/dist/types/modes/jobs-observer.d.ts +57 -0
- package/dist/types/modes/oauth-manual-input.d.ts +8 -0
- package/dist/types/modes/print-mode.d.ts +45 -0
- package/dist/types/modes/prompt-action-autocomplete.d.ts +50 -0
- package/dist/types/modes/rpc/host-tools.d.ts +1 -0
- package/dist/types/modes/rpc/host-uris.d.ts +1 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +288 -0
- package/dist/types/modes/rpc/rpc-mode.d.ts +87 -0
- package/dist/types/modes/rpc/rpc-socket-security.d.ts +7 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +794 -0
- package/dist/types/modes/runtime-init.d.ts +21 -0
- package/dist/types/modes/session-observer-registry.d.ts +26 -0
- package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +57 -0
- package/dist/types/modes/shared/agent-wire/command-contract.d.ts +18 -0
- package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +37 -0
- package/dist/types/modes/shared/agent-wire/command-validation.d.ts +2 -0
- package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +94 -0
- package/dist/types/modes/shared/agent-wire/event-contract.d.ts +103 -0
- package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +60 -0
- package/dist/types/modes/shared/agent-wire/event-observation.d.ts +37 -0
- package/dist/types/modes/shared/agent-wire/handshake.d.ts +56 -0
- package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +16 -0
- package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +17 -0
- package/dist/types/modes/shared/agent-wire/protocol.d.ts +25 -0
- package/dist/types/modes/shared/agent-wire/responses.d.ts +4 -0
- package/dist/types/modes/shared/agent-wire/scopes.d.ts +18 -0
- package/dist/types/modes/shared/agent-wire/session-registry.d.ts +25 -0
- package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +42 -0
- package/dist/types/modes/shared/agent-wire/ui-result.d.ts +27 -0
- package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +29 -0
- package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +68 -0
- package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +161 -0
- package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +82 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +114 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +39 -0
- package/dist/types/modes/shared.d.ts +15 -0
- package/dist/types/modes/slash-command-visibility.d.ts +1 -0
- package/dist/types/modes/theme/defaults/index.d.ts +652 -0
- package/dist/types/modes/theme/mermaid-cache.d.ts +9 -0
- package/dist/types/modes/theme/shimmer.d.ts +38 -0
- package/dist/types/modes/theme/theme.d.ts +275 -0
- package/dist/types/modes/tmux-scroll.d.ts +18 -0
- package/dist/types/modes/types.d.ts +289 -0
- package/dist/types/modes/utils/abort-message.d.ts +4 -0
- package/dist/types/modes/utils/context-usage.d.ts +51 -0
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +5 -0
- package/dist/types/modes/utils/keybinding-matchers.d.ts +10 -0
- package/dist/types/modes/utils/terminal-bell.d.ts +3 -0
- package/dist/types/modes/utils/tools-markdown.d.ts +5 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +54 -0
- package/dist/types/notifications/attachment-registry.d.ts +17 -0
- package/dist/types/notifications/chat-adapters.d.ts +9 -0
- package/dist/types/notifications/config-commands.d.ts +26 -0
- package/dist/types/notifications/config.d.ts +82 -0
- package/dist/types/notifications/daemon-paths.d.ts +10 -0
- package/dist/types/notifications/engine.d.ts +59 -0
- package/dist/types/notifications/helpers.d.ts +55 -0
- package/dist/types/notifications/html-format.d.ts +75 -0
- package/dist/types/notifications/index.d.ts +179 -0
- package/dist/types/notifications/lifecycle-commands.d.ts +68 -0
- package/dist/types/notifications/lifecycle-control-runtime.d.ts +98 -0
- package/dist/types/notifications/lifecycle-orchestrator.d.ts +144 -0
- package/dist/types/notifications/managed-daemon.d.ts +48 -0
- package/dist/types/notifications/operator-runtime.d.ts +52 -0
- package/dist/types/notifications/rate-limit-pool.d.ts +95 -0
- package/dist/types/notifications/recent-activity.d.ts +39 -0
- package/dist/types/notifications/telegram-cli.d.ts +19 -0
- package/dist/types/notifications/telegram-daemon-cli.d.ts +28 -0
- package/dist/types/notifications/telegram-daemon-control.d.ts +64 -0
- package/dist/types/notifications/telegram-daemon.d.ts +407 -0
- package/dist/types/notifications/telegram-reference.d.ts +112 -0
- package/dist/types/notifications/threaded-inbound.d.ts +77 -0
- package/dist/types/notifications/threaded-render.d.ts +78 -0
- package/dist/types/notifications/topic-registry.d.ts +70 -0
- package/dist/types/plan-mode/approved-plan.d.ts +49 -0
- package/dist/types/plan-mode/state.d.ts +6 -0
- package/dist/types/registry/agent-registry.d.ts +62 -0
- package/dist/types/reminders/star-reminder.d.ts +115 -0
- package/dist/types/research-plan/index.d.ts +1 -0
- package/dist/types/research-plan/ledger.d.ts +33 -0
- package/dist/types/rlm/artifacts.d.ts +9 -0
- package/dist/types/rlm/complete-research-tool.d.ts +35 -0
- package/dist/types/rlm/data-context.d.ts +6 -0
- package/dist/types/rlm/index.d.ts +47 -0
- package/dist/types/rlm/notebook.d.ts +12 -0
- package/dist/types/rlm/preset.d.ts +23 -0
- package/dist/types/rlm/python-tool.d.ts +16 -0
- package/dist/types/rlm/report.d.ts +14 -0
- package/dist/types/rlm/types.d.ts +37 -0
- package/dist/types/runtime/process-lifecycle.d.ts +108 -0
- package/dist/types/runtime-api-key.d.ts +7 -0
- package/dist/types/runtime-mcp/client.d.ts +74 -0
- package/dist/types/runtime-mcp/config-writer.d.ts +88 -0
- package/dist/types/runtime-mcp/config.d.ts +77 -0
- package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +7 -0
- package/dist/types/runtime-mcp/index.d.ts +18 -0
- package/dist/types/runtime-mcp/json-rpc.d.ts +22 -0
- package/dist/types/runtime-mcp/loader.d.ts +45 -0
- package/dist/types/runtime-mcp/manager.d.ts +195 -0
- package/dist/types/runtime-mcp/oauth-discovery.d.ts +40 -0
- package/dist/types/runtime-mcp/oauth-flow.d.ts +59 -0
- package/dist/types/runtime-mcp/render.d.ts +25 -0
- package/dist/types/runtime-mcp/smithery-auth.d.ts +16 -0
- package/dist/types/runtime-mcp/smithery-connect.d.ts +38 -0
- package/dist/types/runtime-mcp/smithery-registry.d.ts +51 -0
- package/dist/types/runtime-mcp/tool-bridge.d.ts +86 -0
- package/dist/types/runtime-mcp/tool-cache.d.ts +8 -0
- package/dist/types/runtime-mcp/transports/http.d.ts +36 -0
- package/dist/types/runtime-mcp/transports/index.d.ts +5 -0
- package/dist/types/runtime-mcp/transports/stdio.d.ts +29 -0
- package/dist/types/runtime-mcp/types.d.ts +348 -0
- package/dist/types/sdk.d.ts +248 -0
- package/dist/types/secrets/index.d.ts +9 -0
- package/dist/types/secrets/obfuscator.d.ts +23 -0
- package/dist/types/secrets/regex.d.ts +2 -0
- package/dist/types/session/agent-session.d.ts +1182 -0
- package/dist/types/session/agent-storage.d.ts +101 -0
- package/dist/types/session/artifacts.d.ts +64 -0
- package/dist/types/session/auth-broker-config.d.ts +13 -0
- package/dist/types/session/auth-storage.d.ts +6 -0
- package/dist/types/session/blob-store.d.ts +160 -0
- package/dist/types/session/client-bridge.d.ts +88 -0
- package/dist/types/session/contribution-prep.d.ts +47 -0
- package/dist/types/session/file-mention-pruning.d.ts +8 -0
- package/dist/types/session/history-storage.d.ts +16 -0
- package/dist/types/session/messages.d.ts +169 -0
- package/dist/types/session/session-dump-format.d.ts +22 -0
- package/dist/types/session/session-manager.d.ts +660 -0
- package/dist/types/session/session-storage.d.ts +88 -0
- package/dist/types/session/streaming-output.d.ts +209 -0
- package/dist/types/session/tool-choice-queue.d.ts +84 -0
- package/dist/types/session/yield-queue.d.ts +24 -0
- package/dist/types/setup/credential-auto-import.d.ts +63 -0
- package/dist/types/setup/credential-import.d.ts +82 -0
- package/dist/types/setup/hermes-setup.d.ts +78 -0
- package/dist/types/setup/host-plugin-setup.d.ts +39 -0
- package/dist/types/setup/model-onboarding-guidance.d.ts +9 -0
- package/dist/types/setup/provider-onboarding.d.ts +52 -0
- package/dist/types/skc-runtime/cli-write-receipt.d.ts +24 -0
- package/dist/types/skc-runtime/deep-interview-ambiguity.d.ts +39 -0
- package/dist/types/skc-runtime/deep-interview-recorder.d.ts +114 -0
- package/dist/types/skc-runtime/deep-interview-runtime.d.ts +36 -0
- package/dist/types/skc-runtime/deep-interview-state.d.ts +127 -0
- package/dist/types/skc-runtime/gc-render.d.ts +6 -0
- package/dist/types/skc-runtime/gc-runtime.d.ts +134 -0
- package/dist/types/skc-runtime/goal-mode-request.d.ts +53 -0
- package/dist/types/skc-runtime/launch-tmux.d.ts +78 -0
- package/dist/types/skc-runtime/launch-worktree.d.ts +46 -0
- package/dist/types/skc-runtime/ledger-event-renderer.d.ts +68 -0
- package/dist/types/skc-runtime/psmux-detect.d.ts +78 -0
- package/dist/types/skc-runtime/ralplan-runtime.d.ts +26 -0
- package/dist/types/skc-runtime/restricted-role-agent-bash.d.ts +3 -0
- package/dist/types/skc-runtime/session-layout.d.ts +59 -0
- package/dist/types/skc-runtime/session-resolution.d.ts +47 -0
- package/dist/types/skc-runtime/session-state-sidecar.d.ts +39 -0
- package/dist/types/skc-runtime/state-graph.d.ts +4 -0
- package/dist/types/skc-runtime/state-migrations.d.ts +33 -0
- package/dist/types/skc-runtime/state-renderer.d.ts +70 -0
- package/dist/types/skc-runtime/state-runtime.d.ts +38 -0
- package/dist/types/skc-runtime/state-schema.d.ts +319 -0
- package/dist/types/skc-runtime/state-validation.d.ts +6 -0
- package/dist/types/skc-runtime/state-writer.d.ts +244 -0
- package/dist/types/skc-runtime/team-gc.d.ts +7 -0
- package/dist/types/skc-runtime/team-runtime.d.ts +355 -0
- package/dist/types/skc-runtime/tmux-common.d.ts +104 -0
- package/dist/types/skc-runtime/tmux-gc.d.ts +7 -0
- package/dist/types/skc-runtime/tmux-sessions.d.ts +62 -0
- package/dist/types/skc-runtime/ultragoal-guard.d.ts +93 -0
- package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +42 -0
- package/dist/types/skc-runtime/ultragoal-runtime.d.ts +410 -0
- package/dist/types/skc-runtime/workflow-command-ref.d.ts +43 -0
- package/dist/types/skc-runtime/workflow-manifest.d.ts +54 -0
- package/dist/types/skill-state/active-state.d.ts +126 -0
- package/dist/types/skill-state/canonical-skills.d.ts +3 -0
- package/dist/types/skill-state/deep-interview-mutation-guard.d.ts +38 -0
- package/dist/types/skill-state/initial-phase.d.ts +12 -0
- package/dist/types/skill-state/workflow-hud.d.ts +83 -0
- package/dist/types/skill-state/workflow-state-contract.d.ts +57 -0
- package/dist/types/skill-state/workflow-state-version.d.ts +3 -0
- package/dist/types/slash-commands/acp-builtins.d.ts +18 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +24 -0
- package/dist/types/slash-commands/helpers/context-report.d.ts +7 -0
- package/dist/types/slash-commands/helpers/fast-status-report.d.ts +82 -0
- package/dist/types/slash-commands/helpers/format.d.ts +10 -0
- package/dist/types/slash-commands/helpers/mcp.d.ts +3 -0
- package/dist/types/slash-commands/helpers/parse.d.ts +33 -0
- package/dist/types/slash-commands/helpers/ssh.d.ts +3 -0
- package/dist/types/slash-commands/helpers/todo.d.ts +3 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +7 -0
- package/dist/types/slash-commands/types.d.ts +120 -0
- package/dist/types/ssh/config-writer.d.ts +49 -0
- package/dist/types/ssh/connection-manager.d.ts +33 -0
- package/dist/types/ssh/ssh-executor.d.ts +37 -0
- package/dist/types/ssh/sshfs-mount.d.ts +6 -0
- package/dist/types/ssh/utils.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +9 -0
- package/dist/types/stt/index.d.ts +3 -0
- package/dist/types/stt/recorder.d.ts +13 -0
- package/dist/types/stt/setup.d.ts +18 -0
- package/dist/types/stt/stt-controller.d.ts +16 -0
- package/dist/types/stt/transcriber.d.ts +16 -0
- package/dist/types/system-prompt.d.ts +118 -0
- package/dist/types/task/agents.d.ts +28 -0
- package/dist/types/task/commands.d.ts +35 -0
- package/dist/types/task/discovery.d.ts +19 -0
- package/dist/types/task/executor.d.ts +124 -0
- package/dist/types/task/fork-context-advisory.d.ts +13 -0
- package/dist/types/task/fork-context-budget.d.ts +7 -0
- package/dist/types/task/id.d.ts +7 -0
- package/dist/types/task/index.d.ts +43 -0
- package/dist/types/task/name-generator.d.ts +16 -0
- package/dist/types/task/output-manager.d.ts +36 -0
- package/dist/types/task/parallel.d.ts +34 -0
- package/dist/types/task/receipt.d.ts +87 -0
- package/dist/types/task/render.d.ts +28 -0
- package/dist/types/task/roi-reconciliation.d.ts +27 -0
- package/dist/types/task/simple-mode.d.ts +8 -0
- package/dist/types/task/skc-command.d.ts +7 -0
- package/dist/types/task/spawn-gate.d.ts +29 -0
- package/dist/types/task/subprocess-tool-registry.d.ts +72 -0
- package/dist/types/task/token-log.d.ts +30 -0
- package/dist/types/task/token-log.test.d.ts +1 -0
- package/dist/types/task/types.d.ts +508 -0
- package/dist/types/task/worktree.d.ts +94 -0
- package/dist/types/thinking-metadata.d.ts +16 -0
- package/dist/types/thinking.d.ts +22 -0
- package/dist/types/tool-discovery/tool-index.d.ts +112 -0
- package/dist/types/tools/archive-reader.d.ts +40 -0
- package/dist/types/tools/ask-answer-registry.d.ts +13 -0
- package/dist/types/tools/ask.d.ts +123 -0
- package/dist/types/tools/ast-edit.d.ts +77 -0
- package/dist/types/tools/ast-grep.d.ts +69 -0
- package/dist/types/tools/auto-generated-guard.d.ts +17 -0
- package/dist/types/tools/bash-allowed-prefixes.d.ts +10 -0
- package/dist/types/tools/bash-command-fixup.d.ts +11 -0
- package/dist/types/tools/bash-interactive.d.ts +16 -0
- package/dist/types/tools/bash-interceptor.d.ts +24 -0
- package/dist/types/tools/bash-pty-selection.d.ts +7 -0
- package/dist/types/tools/bash-skill-urls.d.ts +31 -0
- package/dist/types/tools/bash.d.ts +157 -0
- package/dist/types/tools/bisect.d.ts +81 -0
- package/dist/types/tools/browser/actions.d.ts +54 -0
- package/dist/types/tools/browser/attach.d.ts +50 -0
- package/dist/types/tools/browser/launch.d.ts +62 -0
- package/dist/types/tools/browser/readable.d.ts +17 -0
- package/dist/types/tools/browser/registry.d.ts +57 -0
- package/dist/types/tools/browser/render.d.ts +53 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +144 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +103 -0
- package/dist/types/tools/browser/tab-worker-entry.d.ts +1 -0
- package/dist/types/tools/browser/tab-worker.d.ts +19 -0
- package/dist/types/tools/browser.d.ts +211 -0
- package/dist/types/tools/calculator.d.ts +76 -0
- package/dist/types/tools/checkpoint.d.ts +63 -0
- package/dist/types/tools/composer-bash-policy.d.ts +14 -0
- package/dist/types/tools/computer/render.d.ts +17 -0
- package/dist/types/tools/computer-gc.d.ts +23 -0
- package/dist/types/tools/computer.d.ts +465 -0
- package/dist/types/tools/conflict-detect.d.ts +205 -0
- package/dist/types/tools/context.d.ts +19 -0
- package/dist/types/tools/cron.d.ts +91 -0
- package/dist/types/tools/debug.d.ts +209 -0
- package/dist/types/tools/eval.d.ts +108 -0
- package/dist/types/tools/fetch.d.ts +84 -0
- package/dist/types/tools/file-recorder.d.ts +13 -0
- package/dist/types/tools/find.d.ts +95 -0
- package/dist/types/tools/fs-cache-invalidation.d.ts +15 -0
- package/dist/types/tools/gh-format.d.ts +6 -0
- package/dist/types/tools/gh-renderer.d.ts +25 -0
- package/dist/types/tools/gh.d.ts +356 -0
- package/dist/types/tools/github-cache.d.ts +103 -0
- package/dist/types/tools/grouped-file-output.d.ts +36 -0
- package/dist/types/tools/hindsight-recall.d.ts +21 -0
- package/dist/types/tools/hindsight-reflect.d.ts +23 -0
- package/dist/types/tools/hindsight-retain.d.ts +27 -0
- package/dist/types/tools/image-gen.d.ts +79 -0
- package/dist/types/tools/index.d.ts +318 -0
- package/dist/types/tools/irc.d.ts +79 -0
- package/dist/types/tools/job.d.ts +78 -0
- package/dist/types/tools/json-tree.d.ts +23 -0
- package/dist/types/tools/jtd-to-json-schema.d.ts +29 -0
- package/dist/types/tools/jtd-to-typescript.d.ts +26 -0
- package/dist/types/tools/jtd-utils.d.ts +42 -0
- package/dist/types/tools/list-limit.d.ts +12 -0
- package/dist/types/tools/match-line-format.d.ts +11 -0
- package/dist/types/tools/monitor.d.ts +54 -0
- package/dist/types/tools/output-meta.d.ts +204 -0
- package/dist/types/tools/path-utils.d.ts +147 -0
- package/dist/types/tools/plan-mode-guard.d.ts +18 -0
- package/dist/types/tools/read.d.ts +85 -0
- package/dist/types/tools/recipe/index.d.ts +45 -0
- package/dist/types/tools/recipe/render.d.ts +36 -0
- package/dist/types/tools/recipe/runner.d.ts +60 -0
- package/dist/types/tools/recipe/runners/cargo.d.ts +16 -0
- package/dist/types/tools/recipe/runners/index.d.ts +2 -0
- package/dist/types/tools/recipe/runners/just.d.ts +2 -0
- package/dist/types/tools/recipe/runners/make.d.ts +2 -0
- package/dist/types/tools/recipe/runners/pkg.d.ts +2 -0
- package/dist/types/tools/recipe/runners/task.d.ts +2 -0
- package/dist/types/tools/render-mermaid.d.ts +37 -0
- package/dist/types/tools/render-utils.d.ts +158 -0
- package/dist/types/tools/renderers.d.ts +26 -0
- package/dist/types/tools/resolve.d.ts +80 -0
- package/dist/types/tools/resource-gc.d.ts +54 -0
- package/dist/types/tools/review.d.ts +63 -0
- package/dist/types/tools/search-tool-bm25.d.ts +65 -0
- package/dist/types/tools/search.d.ts +93 -0
- package/dist/types/tools/skill.d.ts +47 -0
- package/dist/types/tools/sqlite-reader.d.ts +94 -0
- package/dist/types/tools/ssh.d.ts +67 -0
- package/dist/types/tools/subagent-render.d.ts +31 -0
- package/dist/types/tools/subagent.d.ts +117 -0
- package/dist/types/tools/telegram-send.d.ts +32 -0
- package/dist/types/tools/todo-write.d.ts +120 -0
- package/dist/types/tools/tool-errors.d.ts +33 -0
- package/dist/types/tools/tool-result.d.ts +30 -0
- package/dist/types/tools/tool-timeouts.d.ts +56 -0
- package/dist/types/tools/ultragoal-ask-guard.d.ts +12 -0
- package/dist/types/tools/vim.d.ts +58 -0
- package/dist/types/tools/write.d.ts +59 -0
- package/dist/types/tools/yield.d.ts +25 -0
- package/dist/types/tui/code-cell.d.ts +32 -0
- package/dist/types/tui/file-list.d.ts +22 -0
- package/dist/types/tui/hyperlink.d.ts +42 -0
- package/dist/types/tui/index.d.ts +11 -0
- package/dist/types/tui/output-block.d.ts +28 -0
- package/dist/types/tui/status-line.d.ts +18 -0
- package/dist/types/tui/tree-list.d.ts +19 -0
- package/dist/types/tui/types.d.ts +13 -0
- package/dist/types/tui/utils.d.ts +36 -0
- package/dist/types/utils/changelog.d.ts +37 -0
- package/dist/types/utils/clipboard.d.ts +22 -0
- package/dist/types/utils/cmux-workspace.d.ts +52 -0
- package/dist/types/utils/command-args.d.ts +9 -0
- package/dist/types/utils/commit-message-generator.d.ts +7 -0
- package/dist/types/utils/edit-mode.d.ts +13 -0
- package/dist/types/utils/event-bus.d.ts +6 -0
- package/dist/types/utils/external-editor.d.ts +17 -0
- package/dist/types/utils/file-display-mode.d.ts +27 -0
- package/dist/types/utils/file-mentions.d.ts +25 -0
- package/dist/types/utils/git.d.ts +393 -0
- package/dist/types/utils/image-loading.d.ts +26 -0
- package/dist/types/utils/image-resize.d.ts +39 -0
- package/dist/types/utils/lang-from-path.d.ts +8 -0
- package/dist/types/utils/markit.d.ts +7 -0
- package/dist/types/utils/open.d.ts +2 -0
- package/dist/types/utils/session-color.d.ts +10 -0
- package/dist/types/utils/shell-snapshot.d.ts +5 -0
- package/dist/types/utils/sixel.d.ts +21 -0
- package/dist/types/utils/title-generator.d.ts +31 -0
- package/dist/types/utils/tool-choice.d.ts +20 -0
- package/dist/types/utils/tools-manager.d.ts +9 -0
- package/dist/types/vim/buffer.d.ts +41 -0
- package/dist/types/vim/commands.d.ts +6 -0
- package/dist/types/vim/engine.d.ts +47 -0
- package/dist/types/vim/parser.d.ts +3 -0
- package/dist/types/vim/render.d.ts +25 -0
- package/dist/types/vim/types.d.ts +182 -0
- package/dist/types/web/insane/bridge.d.ts +103 -0
- package/dist/types/web/insane/url-guard.d.ts +25 -0
- package/dist/types/web/kagi.d.ts +23 -0
- package/dist/types/web/parallel.d.ts +58 -0
- package/dist/types/web/scrapers/artifacthub.d.ts +6 -0
- package/dist/types/web/scrapers/arxiv.d.ts +5 -0
- package/dist/types/web/scrapers/aur.d.ts +5 -0
- package/dist/types/web/scrapers/biorxiv.d.ts +5 -0
- package/dist/types/web/scrapers/bluesky.d.ts +5 -0
- package/dist/types/web/scrapers/brew.d.ts +5 -0
- package/dist/types/web/scrapers/cheatsh.d.ts +8 -0
- package/dist/types/web/scrapers/chocolatey.d.ts +5 -0
- package/dist/types/web/scrapers/choosealicense.d.ts +2 -0
- package/dist/types/web/scrapers/cisa-kev.d.ts +5 -0
- package/dist/types/web/scrapers/clojars.d.ts +5 -0
- package/dist/types/web/scrapers/coingecko.d.ts +5 -0
- package/dist/types/web/scrapers/crates-io.d.ts +5 -0
- package/dist/types/web/scrapers/crossref.d.ts +2 -0
- package/dist/types/web/scrapers/devto.d.ts +5 -0
- package/dist/types/web/scrapers/discogs.d.ts +8 -0
- package/dist/types/web/scrapers/discourse.d.ts +5 -0
- package/dist/types/web/scrapers/dockerhub.d.ts +5 -0
- package/dist/types/web/scrapers/docs-rs.d.ts +2 -0
- package/dist/types/web/scrapers/fdroid.d.ts +5 -0
- package/dist/types/web/scrapers/firefox-addons.d.ts +2 -0
- package/dist/types/web/scrapers/flathub.d.ts +2 -0
- package/dist/types/web/scrapers/github-gist.d.ts +5 -0
- package/dist/types/web/scrapers/github.d.ts +12 -0
- package/dist/types/web/scrapers/gitlab.d.ts +5 -0
- package/dist/types/web/scrapers/go-pkg.d.ts +5 -0
- package/dist/types/web/scrapers/hackage.d.ts +5 -0
- package/dist/types/web/scrapers/hackernews.d.ts +2 -0
- package/dist/types/web/scrapers/hex.d.ts +5 -0
- package/dist/types/web/scrapers/huggingface.d.ts +2 -0
- package/dist/types/web/scrapers/iacr.d.ts +5 -0
- package/dist/types/web/scrapers/index.d.ts +84 -0
- package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +2 -0
- package/dist/types/web/scrapers/lemmy.d.ts +2 -0
- package/dist/types/web/scrapers/lobsters.d.ts +5 -0
- package/dist/types/web/scrapers/mastodon.d.ts +5 -0
- package/dist/types/web/scrapers/maven.d.ts +6 -0
- package/dist/types/web/scrapers/mdn.d.ts +2 -0
- package/dist/types/web/scrapers/metacpan.d.ts +5 -0
- package/dist/types/web/scrapers/musicbrainz.d.ts +5 -0
- package/dist/types/web/scrapers/npm.d.ts +5 -0
- package/dist/types/web/scrapers/nuget.d.ts +5 -0
- package/dist/types/web/scrapers/nvd.d.ts +5 -0
- package/dist/types/web/scrapers/ollama.d.ts +2 -0
- package/dist/types/web/scrapers/open-vsx.d.ts +5 -0
- package/dist/types/web/scrapers/opencorporates.d.ts +5 -0
- package/dist/types/web/scrapers/openlibrary.d.ts +5 -0
- package/dist/types/web/scrapers/orcid.d.ts +5 -0
- package/dist/types/web/scrapers/osv.d.ts +5 -0
- package/dist/types/web/scrapers/packagist.d.ts +5 -0
- package/dist/types/web/scrapers/pub-dev.d.ts +5 -0
- package/dist/types/web/scrapers/pubmed.d.ts +5 -0
- package/dist/types/web/scrapers/pypi.d.ts +5 -0
- package/dist/types/web/scrapers/rawg.d.ts +2 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +2 -0
- package/dist/types/web/scrapers/reddit.d.ts +5 -0
- package/dist/types/web/scrapers/repology.d.ts +5 -0
- package/dist/types/web/scrapers/rfc.d.ts +5 -0
- package/dist/types/web/scrapers/rubygems.d.ts +5 -0
- package/dist/types/web/scrapers/searchcode.d.ts +2 -0
- package/dist/types/web/scrapers/sec-edgar.d.ts +5 -0
- package/dist/types/web/scrapers/semantic-scholar.d.ts +2 -0
- package/dist/types/web/scrapers/snapcraft.d.ts +2 -0
- package/dist/types/web/scrapers/sourcegraph.d.ts +2 -0
- package/dist/types/web/scrapers/spdx.d.ts +5 -0
- package/dist/types/web/scrapers/spotify.d.ts +8 -0
- package/dist/types/web/scrapers/stackoverflow.d.ts +6 -0
- package/dist/types/web/scrapers/terraform.d.ts +5 -0
- package/dist/types/web/scrapers/tldr.d.ts +7 -0
- package/dist/types/web/scrapers/twitter.d.ts +5 -0
- package/dist/types/web/scrapers/types.d.ts +83 -0
- package/dist/types/web/scrapers/utils.d.ts +32 -0
- package/dist/types/web/scrapers/vimeo.d.ts +5 -0
- package/dist/types/web/scrapers/vscode-marketplace.d.ts +5 -0
- package/dist/types/web/scrapers/w3c.d.ts +2 -0
- package/dist/types/web/scrapers/wikidata.d.ts +5 -0
- package/dist/types/web/scrapers/wikipedia.d.ts +5 -0
- package/dist/types/web/scrapers/youtube.d.ts +13 -0
- package/dist/types/web/search/index.d.ts +118 -0
- package/dist/types/web/search/provider.d.ts +55 -0
- package/dist/types/web/search/providers/anthropic.d.ts +32 -0
- package/dist/types/web/search/providers/base.d.ts +90 -0
- package/dist/types/web/search/providers/brave.d.ts +27 -0
- package/dist/types/web/search/providers/codex.d.ts +35 -0
- package/dist/types/web/search/providers/duckduckgo.d.ts +57 -0
- package/dist/types/web/search/providers/exa.d.ts +52 -0
- package/dist/types/web/search/providers/gemini.d.ts +57 -0
- package/dist/types/web/search/providers/insane.d.ts +53 -0
- package/dist/types/web/search/providers/jina.d.ts +26 -0
- package/dist/types/web/search/providers/kagi.d.ts +24 -0
- package/dist/types/web/search/providers/kimi.d.ts +27 -0
- package/dist/types/web/search/providers/openai-compatible.d.ts +9 -0
- package/dist/types/web/search/providers/parallel.d.ts +15 -0
- package/dist/types/web/search/providers/perplexity.d.ts +38 -0
- package/dist/types/web/search/providers/searxng.d.ts +44 -0
- package/dist/types/web/search/providers/synthetic.d.ts +21 -0
- package/dist/types/web/search/providers/tavily.d.ts +29 -0
- package/dist/types/web/search/providers/text-citations.d.ts +23 -0
- package/dist/types/web/search/providers/utils.d.ts +88 -0
- package/dist/types/web/search/providers/xai.d.ts +64 -0
- package/dist/types/web/search/providers/zai.d.ts +28 -0
- package/dist/types/web/search/render.d.ts +36 -0
- package/dist/types/web/search/types.d.ts +372 -0
- package/dist/types/web/search/utils.d.ts +4 -0
- package/dist/types/workflow/workflow-intent-diff.d.ts +25 -0
- package/dist/types/workflow/workflow-intent-report-consumer.d.ts +50 -0
- package/dist/types/workflow/workflow-intent-report-schema.d.ts +2 -0
- package/dist/types/workflow/workflow-intent-report.d.ts +48 -0
- package/dist/types/workspace-tree.d.ts +42 -0
- package/package.json +118 -117
- package/scripts/build-binary.ts +3 -0
- package/src/append-only-mode.ts +58 -0
- package/src/autoresearch/prompt.md +1 -1
- package/src/autoresearch/tools/log-experiment.ts +1 -1
- package/src/capability/mcp.ts +2 -0
- package/src/capability/rule.ts +9 -0
- package/src/cli/completion-cli.ts +234 -0
- package/src/cli/config-cli.ts +61 -9
- package/src/cli/fast-help.ts +1 -0
- package/src/cli/fixture-report.test.ts +230 -0
- package/src/cli/fixture-report.ts +171 -0
- package/src/cli/nofile-limit.ts +48 -0
- package/src/cli/notify-cli.ts +92 -8
- package/src/cli/telegram-cli.ts +156 -0
- package/src/cli/update-cli.ts +109 -9
- package/src/cli/web-search-cli.ts +5 -7
- package/src/cli.ts +31 -2
- package/src/commands/completion.ts +84 -0
- package/src/commands/config.ts +2 -0
- package/src/commands/contribution-prep.ts +1 -1
- package/src/commands/deep-interview.ts +2 -1
- package/src/commands/launch.ts +1 -1
- package/src/commands/ralplan.ts +1 -0
- package/src/commands/telegram.ts +47 -0
- package/src/config/file-lock.ts +73 -34
- package/src/config/keybindings.ts +17 -8
- package/src/config/mcp-schema.json +4 -0
- package/src/config/model-profile-activation.ts +65 -0
- package/src/config/model-profiles.ts +31 -2
- package/src/config/settings-schema.ts +279 -7
- package/src/config/settings.ts +22 -0
- package/src/config/telegram-autostart.ts +107 -0
- package/src/config/telegram-env-bridge.ts +92 -0
- package/src/defaults/skc/skills/ralplan/SKILL.md +29 -20
- package/src/defaults/skc/skills/team/SKILL.md +17 -14
- package/src/defaults/skc/skills/ultragoal/SKILL.md +95 -115
- package/src/defaults/skc/skills/ultragoal/pipeline-validation-contracts.md +30 -0
- package/src/defaults/skc-defaults.ts +25 -0
- package/src/discovery/builtin.ts +12 -0
- package/src/discovery/cursor.ts +5 -84
- package/src/discovery/gemini.ts +3 -89
- package/src/discovery/helpers.ts +10 -0
- package/src/discovery/index.ts +5 -1
- package/src/discovery/mcp-json.ts +11 -0
- package/src/discovery/opencode.ts +5 -122
- package/src/discovery/windsurf.ts +4 -82
- package/src/edit/read-file.ts +9 -1
- package/src/export/html/template.generated.ts +1 -1
- package/src/export/html/template.js +60 -2
- package/src/export/ttsr.ts +96 -18
- package/src/extensibility/extensions/runner.ts +185 -220
- package/src/extensibility/extensions/types.ts +20 -0
- package/src/extensibility/skc-plugins/runtime-adapters.ts +156 -44
- package/src/extensibility/skills.ts +30 -2
- package/src/goals/runtime.ts +10 -2
- package/src/hindsight/backend.ts +1 -3
- package/src/hooks/native-skill-hook.ts +124 -4
- package/src/hooks/skill-state.ts +33 -73
- package/src/i18n/messages/de.ts +1 -0
- package/src/i18n/messages/en.ts +1 -0
- package/src/i18n/messages/es.ts +1 -0
- package/src/i18n/messages/fr.ts +1 -0
- package/src/i18n/messages/ja.settings.ts +28 -0
- package/src/i18n/messages/ja.ts +1 -0
- package/src/i18n/messages/ko.settings.ts +28 -0
- package/src/i18n/messages/ko.ts +1 -0
- package/src/i18n/messages/zh.settings.ts +28 -0
- package/src/i18n/messages/zh.ts +1 -0
- package/src/internal-urls/docs-index.generated.ts +21 -8
- package/src/main.ts +100 -45
- package/src/memories/index.ts +12 -1
- package/src/migrate/executor.ts +23 -6
- package/src/modes/acp/acp-agent.ts +7 -6
- package/src/modes/components/agent-dashboard.ts +1 -34
- package/src/modes/components/assistant-message.ts +241 -82
- package/src/modes/components/custom-editor.ts +27 -0
- package/src/modes/components/extensions/extension-dashboard.ts +2 -48
- package/src/modes/components/hook-selector.ts +21 -3
- package/src/modes/components/model-selector.ts +118 -15
- package/src/modes/components/queued-message-selector.ts +92 -0
- package/src/modes/components/session-selector.ts +19 -9
- package/src/modes/components/settings-selector.ts +64 -5
- package/src/modes/components/skill-message.ts +18 -10
- package/src/modes/components/status-line/presets.ts +11 -0
- package/src/modes/components/status-line/segments.ts +10 -2
- package/src/modes/components/status-line.ts +341 -99
- package/src/modes/components/tool-execution.ts +44 -19
- package/src/modes/components/tree-selector.ts +28 -8
- package/src/modes/components/two-column-body.ts +36 -0
- package/src/modes/components/welcome.ts +335 -63
- package/src/modes/controllers/command-controller.ts +66 -6
- package/src/modes/controllers/event-controller.ts +70 -47
- package/src/modes/controllers/extension-ui-controller.ts +22 -12
- package/src/modes/controllers/input-controller.ts +367 -53
- package/src/modes/controllers/selector-controller.ts +152 -52
- package/src/modes/interactive-mode.ts +80 -39
- package/src/modes/print-mode.ts +43 -4
- package/src/modes/prompt-action-autocomplete.ts +47 -14
- package/src/modes/rpc/rpc-mode.ts +29 -3
- package/src/modes/rpc/rpc-types.ts +10 -0
- package/src/modes/shared/agent-wire/command-validation.ts +4 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +72 -15
- package/src/modes/shared/agent-wire/event-contract.ts +22 -0
- package/src/modes/shared/agent-wire/event-envelope.ts +82 -0
- package/src/modes/shared/agent-wire/scopes.ts +1 -0
- package/src/modes/shared/agent-wire/workflow-gate-schema.ts +20 -0
- package/src/modes/slash-command-visibility.ts +9 -0
- package/src/modes/theme/theme.ts +5 -1
- package/src/modes/types.ts +9 -1
- package/src/modes/utils/hotkeys-markdown.ts +6 -2
- package/src/modes/utils/ui-helpers.ts +95 -9
- package/src/notifications/config.ts +25 -5
- package/src/notifications/daemon-paths.ts +2 -0
- package/src/notifications/html-format.ts +75 -1
- package/src/notifications/index.ts +149 -16
- package/src/notifications/lifecycle-commands.ts +37 -7
- package/src/notifications/lifecycle-control-runtime.ts +12 -3
- package/src/notifications/lifecycle-orchestrator.ts +19 -6
- package/src/notifications/recent-activity.ts +32 -8
- package/src/notifications/telegram-daemon-cli.ts +13 -4
- package/src/notifications/telegram-daemon-control.ts +14 -3
- package/src/notifications/telegram-daemon.ts +382 -93
- package/src/notifications/telegram-reference.ts +36 -30
- package/src/notifications/threaded-render.ts +31 -7
- package/src/prompts/agents/architect.md +24 -12
- package/src/prompts/agents/critic.md +27 -20
- package/src/prompts/agents/executor.md +14 -11
- package/src/prompts/agents/planner.md +24 -14
- package/src/prompts/ci-green-request.md +3 -8
- package/src/prompts/goals/goal-continuation.md +0 -5
- package/src/prompts/goals/goal-mode-active.md +0 -5
- package/src/prompts/system/agent-creation-architect.md +2 -2
- package/src/prompts/system/plan-mode-active.md +1 -1
- package/src/prompts/system/plan-mode-subagent.md +3 -3
- package/src/prompts/system/project-prompt.md +0 -13
- package/src/prompts/system/subagent-system-prompt.md +3 -2
- package/src/prompts/system/system-prompt.md +42 -12
- package/src/prompts/system/volatile-project-context.md +10 -0
- package/src/prompts/system/web-search.md +4 -7
- package/src/prompts/tools/apply-patch.md +6 -0
- package/src/prompts/tools/ast-edit.md +1 -0
- package/src/prompts/tools/bash.md +2 -2
- package/src/prompts/tools/bisect.md +22 -0
- package/src/prompts/tools/browser.md +1 -1
- package/src/prompts/tools/computer.md +2 -2
- package/src/prompts/tools/cron.md +0 -2
- package/src/prompts/tools/eval.md +2 -2
- package/src/prompts/tools/find.md +1 -1
- package/src/prompts/tools/github.md +6 -6
- package/src/prompts/tools/goal.md +1 -3
- package/src/prompts/tools/image-gen.md +12 -5
- package/src/prompts/tools/irc.md +5 -4
- package/src/prompts/tools/job.md +2 -2
- package/src/prompts/tools/lsp.md +1 -1
- package/src/prompts/tools/monitor.md +2 -2
- package/src/prompts/tools/patch.md +2 -2
- package/src/prompts/tools/replace.md +2 -21
- package/src/prompts/tools/rewind.md +1 -1
- package/src/prompts/tools/search-tool-bm25.md +1 -11
- package/src/prompts/tools/search.md +1 -1
- package/src/prompts/tools/skill.md +3 -2
- package/src/prompts/tools/ssh.md +2 -1
- package/src/prompts/tools/subagent.md +2 -2
- package/src/prompts/tools/task.md +4 -5
- package/src/prompts/tools/todo-write.md +1 -1
- package/src/prompts/tools/vim.md +1 -0
- package/src/prompts/tools/web-search.md +2 -0
- package/src/prompts/tools/write.md +8 -2
- package/src/runtime-api-key.ts +16 -0
- package/src/runtime-mcp/config-writer.ts +28 -0
- package/src/runtime-mcp/config.ts +7 -0
- package/src/runtime-mcp/loader.ts +3 -0
- package/src/runtime-mcp/manager.ts +3 -0
- package/src/runtime-mcp/types.ts +6 -0
- package/src/sdk.ts +62 -39
- package/src/session/agent-session.ts +1041 -150
- package/src/session/agent-storage.ts +4 -0
- package/src/session/file-mention-pruning.ts +64 -0
- package/src/session/messages.ts +4 -0
- package/src/session/session-manager.ts +161 -22
- package/src/skc-runtime/deep-interview-ambiguity.ts +206 -0
- package/src/skc-runtime/deep-interview-recorder.ts +62 -8
- package/src/skc-runtime/deep-interview-state.ts +44 -2
- package/src/skc-runtime/ralplan-runtime.ts +22 -6
- package/src/skc-runtime/restricted-role-agent-bash.ts +1 -0
- package/src/skc-runtime/session-state-sidecar.ts +413 -27
- package/src/skc-runtime/state-runtime.ts +20 -7
- package/src/skc-runtime/state-writer.ts +20 -5
- package/src/skc-runtime/ultragoal-guard.ts +205 -90
- package/src/skc-runtime/ultragoal-receipt-freshness.ts +315 -0
- package/src/skc-runtime/ultragoal-runtime.ts +1671 -275
- package/src/skc-runtime/workflow-manifest.generated.json +108 -5
- package/src/skc-runtime/workflow-manifest.ts +74 -2
- package/src/skill-state/active-state.ts +141 -5
- package/src/skill-state/deep-interview-mutation-guard.ts +67 -3
- package/src/slash-commands/builtin-registry.ts +248 -81
- package/src/slash-commands/types.ts +2 -0
- package/src/system-prompt.ts +64 -15
- package/src/task/executor.ts +137 -24
- package/src/task/fork-context-advisory.ts +2 -7
- package/src/task/fork-context-budget.ts +9 -0
- package/src/task/index.ts +13 -6
- package/src/task/output-manager.ts +20 -8
- package/src/task/receipt.ts +26 -7
- package/src/task/token-log.test.ts +188 -0
- package/src/task/token-log.ts +179 -0
- package/src/tools/ast-grep.ts +10 -7
- package/src/tools/bash.ts +39 -14
- package/src/tools/bisect.ts +367 -0
- package/src/tools/computer.ts +246 -43
- package/src/tools/index.ts +11 -1
- package/src/tools/output-meta.ts +116 -4
- package/src/tools/search.ts +8 -2
- package/src/tools/skill.ts +16 -1
- package/src/tools/telegram-send.ts +6 -0
- package/src/tools/ultragoal-ask-guard.ts +39 -5
- package/src/utils/cmux-workspace.ts +233 -0
- package/src/utils/file-mentions.ts +39 -7
- package/src/utils/git.ts +73 -0
- package/src/utils/title-generator.ts +2 -0
- package/src/web/kagi.ts +1 -1
- package/src/web/parallel.ts +2 -2
- package/src/web/scrapers/youtube.ts +24 -12
- package/src/web/search/index.ts +137 -52
- package/src/web/search/provider.ts +80 -0
- package/src/web/search/providers/anthropic.ts +1 -1
- package/src/web/search/providers/brave.ts +1 -1
- package/src/web/search/providers/codex.ts +1 -1
- package/src/web/search/providers/duckduckgo.ts +1 -1
- package/src/web/search/providers/exa.ts +1 -1
- package/src/web/search/providers/gemini.ts +7 -3
- package/src/web/search/providers/jina.ts +1 -1
- package/src/web/search/providers/kimi.ts +6 -1
- package/src/web/search/providers/openai-compatible.ts +1 -1
- package/src/web/search/providers/parallel.ts +1 -1
- package/src/web/search/providers/perplexity.ts +2 -2
- package/src/web/search/providers/searxng.ts +1 -1
- package/src/web/search/providers/synthetic.ts +1 -1
- package/src/web/search/providers/tavily.ts +1 -1
- package/src/web/search/providers/utils.ts +67 -17
- package/src/web/search/providers/xai.ts +1 -1
- package/src/web/search/providers/zai.ts +1 -1
- package/src/web/search/render.ts +3 -0
- package/src/workflow/workflow-intent-diff.ts +222 -0
- package/src/workflow/workflow-intent-report-consumer.ts +221 -0
- package/src/workflow/workflow-intent-report-schema.ts +129 -0
- package/src/workflow/workflow-intent-report.ts +135 -0
|
@@ -26,15 +26,15 @@ import * as path from "node:path";
|
|
|
26
26
|
import { promisify } from "node:util";
|
|
27
27
|
import type { ImageContent, TextContent } from "@sayknow-cli/ai";
|
|
28
28
|
import { NotificationServer } from "@sayknow-cli/natives";
|
|
29
|
-
import { logger } from "@sayknow-cli/utils";
|
|
29
|
+
import { logger, postmortem } from "@sayknow-cli/utils";
|
|
30
30
|
import { Settings } from "../config/settings";
|
|
31
|
-
import type { ExtensionCommandContext, ExtensionContext
|
|
31
|
+
import type { ExtensionAPI, ExtensionCommandContext, ExtensionContext } from "../extensibility/extensions";
|
|
32
32
|
import { registerAskAnswerSource } from "../tools/ask-answer-registry";
|
|
33
33
|
import { registerTelegramFileSink } from "./attachment-registry";
|
|
34
34
|
import {
|
|
35
35
|
getNotificationConfig,
|
|
36
|
-
isGloballyConfigured,
|
|
37
36
|
isSessionNotificationsEnabled,
|
|
37
|
+
isTelegramConfigured,
|
|
38
38
|
type NotificationConfig,
|
|
39
39
|
sessionTag,
|
|
40
40
|
} from "./config";
|
|
@@ -100,7 +100,7 @@ export interface SessionCloseFrame {
|
|
|
100
100
|
chatId: string;
|
|
101
101
|
token: string;
|
|
102
102
|
target: SessionCloseTarget;
|
|
103
|
-
/**
|
|
103
|
+
/** Required force-only close flag; false/omitted is rejected by daemon policy. */
|
|
104
104
|
force?: boolean;
|
|
105
105
|
}
|
|
106
106
|
|
|
@@ -297,6 +297,15 @@ function buildIdentity(
|
|
|
297
297
|
return { repo, branch, machine: os.hostname(), title: sessionName };
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
/** Compact cwd label for remote session identity; never emits the full host path by default. */
|
|
301
|
+
function compactCwd(cwd: string): string | undefined {
|
|
302
|
+
const home = os.homedir();
|
|
303
|
+
const resolved = path.resolve(cwd);
|
|
304
|
+
if (resolved === home) return "~";
|
|
305
|
+
const base = path.basename(resolved);
|
|
306
|
+
return base || path.parse(resolved).root || undefined;
|
|
307
|
+
}
|
|
308
|
+
|
|
300
309
|
const execFileAsync = promisify(execFile);
|
|
301
310
|
|
|
302
311
|
/** Best-effort working-tree diff stat for the context update (no throw). */
|
|
@@ -327,6 +336,8 @@ interface SessionRuntime {
|
|
|
327
336
|
disposeAnswerSource: () => void;
|
|
328
337
|
/** Deregisters this session's Telegram file sink. */
|
|
329
338
|
disposeFileSink: () => void;
|
|
339
|
+
/** Deregisters this session's unattended workflow-gate listener. */
|
|
340
|
+
disposeGateListener: () => void;
|
|
330
341
|
redact: boolean;
|
|
331
342
|
verbosity: "lean" | "verbose";
|
|
332
343
|
sessionTag: string;
|
|
@@ -339,6 +350,14 @@ interface SessionRuntime {
|
|
|
339
350
|
/** Assistant text already flushed before an ask this turn (turn-scoped dedupe
|
|
340
351
|
* so turn_end does not re-emit the pre-ask lead-in). Reset each turn. */
|
|
341
352
|
preAskFlushedText?: string;
|
|
353
|
+
/** Live streaming: opt-in flag, monotonic per-turn ref, and emit throttle state. */
|
|
354
|
+
stream: boolean;
|
|
355
|
+
turnSeq?: number;
|
|
356
|
+
liveRef?: string;
|
|
357
|
+
lastLiveAt?: number;
|
|
358
|
+
lastLiveText?: string;
|
|
359
|
+
/** Cancels the postmortem cleanup that emits `session_closed` on process teardown. */
|
|
360
|
+
cancelPostmortemCleanup: () => void;
|
|
342
361
|
}
|
|
343
362
|
|
|
344
363
|
interface ResolvedSettings {
|
|
@@ -347,6 +366,8 @@ interface ResolvedSettings {
|
|
|
347
366
|
settingsAvailable: boolean;
|
|
348
367
|
}
|
|
349
368
|
|
|
369
|
+
const TELEGRAM_FILE_REDACTION_ERROR = "Telegram file attachments are disabled while notifications redaction is on.";
|
|
370
|
+
|
|
350
371
|
const defaultConfig: NotificationConfig = {
|
|
351
372
|
enabled: false,
|
|
352
373
|
botToken: undefined,
|
|
@@ -368,7 +389,36 @@ export function notificationsEnabled(): boolean {
|
|
|
368
389
|
return process.env.SKC_NOTIFICATIONS === "1" || Boolean(process.env.SKC_NOTIFICATIONS_TOKEN);
|
|
369
390
|
}
|
|
370
391
|
|
|
371
|
-
|
|
392
|
+
// Live streaming (opt-in): emit throttled non-finalized `turn_stream` frames as
|
|
393
|
+
// the assistant message streams so remote clients can edit ONE message live. The
|
|
394
|
+
// finalized frame (turn_end) carries the same messageRef and stays authoritative,
|
|
395
|
+
// so a dropped live frame self-heals. Off unless SKC_NOTIFICATIONS_STREAM=1.
|
|
396
|
+
function streamingEnabled(): boolean {
|
|
397
|
+
return process.env.SKC_NOTIFICATIONS_STREAM === "1";
|
|
398
|
+
}
|
|
399
|
+
function streamIntervalMs(): number {
|
|
400
|
+
return Math.max(200, Number(process.env.SKC_NOTIFICATIONS_STREAM_INTERVAL_MS) || 500);
|
|
401
|
+
}
|
|
402
|
+
// Max chars of a turn's assistant text carried by the FINALIZED turn_stream (and
|
|
403
|
+
// the pre-ask capture). Default 3500 keeps the mirror a glanceable per-turn
|
|
404
|
+
// summary; a client that splits long messages (the Telegram daemon does so via
|
|
405
|
+
// splitTelegramHtml, scheduling each chunk through the shared rate-limit pool so
|
|
406
|
+
// the fan-out never bypasses the per-chat limit) can raise it with
|
|
407
|
+
// SKC_NOTIFICATIONS_TURN_MAX to deliver full turns. The value is clamped to a
|
|
408
|
+
// finite [280, TURN_TEXT_MAX_CEILING] range: a non-finite or non-positive env
|
|
409
|
+
// (unset, NaN, Infinity, <= 0) falls back to the default, so the cap can never
|
|
410
|
+
// be unbounded. Live frames are intentionally NOT raised — they stay one
|
|
411
|
+
// editable preview message rather than fanning a long in-progress turn across
|
|
412
|
+
// sends.
|
|
413
|
+
const TURN_TEXT_MAX_CEILING = 40_000;
|
|
414
|
+
function turnTextMax(): number {
|
|
415
|
+
const raw = Number(process.env.SKC_NOTIFICATIONS_TURN_MAX);
|
|
416
|
+
if (!Number.isFinite(raw) || raw <= 0) return 3500;
|
|
417
|
+
return Math.min(TURN_TEXT_MAX_CEILING, Math.max(280, raw));
|
|
418
|
+
}
|
|
419
|
+
function resolveSettings(settingsOverride?: Settings): ResolvedSettings {
|
|
420
|
+
if (settingsOverride)
|
|
421
|
+
return { settings: settingsOverride, cfg: getNotificationConfig(settingsOverride), settingsAvailable: true };
|
|
372
422
|
try {
|
|
373
423
|
const settings = Settings.instance;
|
|
374
424
|
return { settings, cfg: getNotificationConfig(settings), settingsAvailable: true };
|
|
@@ -480,7 +530,7 @@ function sessionIdFromFile(file: string | undefined): string | undefined {
|
|
|
480
530
|
return underscore >= 0 ? base.slice(underscore + 1) : undefined;
|
|
481
531
|
}
|
|
482
532
|
|
|
483
|
-
export
|
|
533
|
+
export function createNotificationsExtension(api: ExtensionAPI, options: { settings?: Settings } = {}): void {
|
|
484
534
|
const runtimes = new Map<string, SessionRuntime>();
|
|
485
535
|
const disabledSessions = new Set<string>();
|
|
486
536
|
const sessionId = (ctx: ExtensionContext): string => ctx.sessionManager.getSessionId();
|
|
@@ -490,10 +540,18 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
490
540
|
const rt = runtimes.get(id);
|
|
491
541
|
if (!rt) return false;
|
|
492
542
|
runtimes.delete(id);
|
|
543
|
+
try {
|
|
544
|
+
rt.cancelPostmortemCleanup();
|
|
545
|
+
} catch {}
|
|
493
546
|
try {
|
|
494
547
|
rt.disposeAnswerSource();
|
|
548
|
+
} catch {}
|
|
549
|
+
try {
|
|
495
550
|
rt.disposeFileSink();
|
|
496
551
|
} catch {}
|
|
552
|
+
try {
|
|
553
|
+
rt.disposeGateListener();
|
|
554
|
+
} catch {}
|
|
497
555
|
// Resolve any still-pending interactive asks so the ask tool is not left hanging.
|
|
498
556
|
for (const pending of rt.pendingInteractive.values()) pending.resolve(undefined);
|
|
499
557
|
rt.pendingInteractive.clear();
|
|
@@ -517,10 +575,14 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
517
575
|
return isSessionNotificationsEnabled({ cfg, env: process.env, sessionDisabled: disabledSessions.has(id) });
|
|
518
576
|
}
|
|
519
577
|
|
|
578
|
+
function isNotificationEligibleContext(ctx: ExtensionContext): boolean {
|
|
579
|
+
return ctx.sessionMetadata?.kind !== "sub";
|
|
580
|
+
}
|
|
581
|
+
|
|
520
582
|
async function startSession(ctx: ExtensionContext): Promise<"started" | "already" | "disabled" | "failed"> {
|
|
521
583
|
const id = sessionId(ctx);
|
|
522
|
-
const { settings, cfg, settingsAvailable } = resolveSettings();
|
|
523
|
-
if (!isEnabledForSession(id, cfg)) return "disabled";
|
|
584
|
+
const { settings, cfg, settingsAvailable } = resolveSettings(options.settings);
|
|
585
|
+
if (!isNotificationEligibleContext(ctx) || !isEnabledForSession(id, cfg)) return "disabled";
|
|
524
586
|
if (runtimes.has(id)) return "already";
|
|
525
587
|
|
|
526
588
|
const stateRoot = path.join(ctx.cwd, ".skc", "state");
|
|
@@ -648,6 +710,10 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
648
710
|
tag,
|
|
649
711
|
);
|
|
650
712
|
const disposeFileSink = registerTelegramFileSink(id, async file => {
|
|
713
|
+
if (runtime?.redact ?? redact) {
|
|
714
|
+
return { ok: false, error: TELEGRAM_FILE_REDACTION_ERROR };
|
|
715
|
+
}
|
|
716
|
+
|
|
651
717
|
try {
|
|
652
718
|
const data = await fs.promises.readFile(file.path);
|
|
653
719
|
server.pushFrame(
|
|
@@ -671,16 +737,28 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
671
737
|
pendingInteractive,
|
|
672
738
|
disposeAnswerSource,
|
|
673
739
|
disposeFileSink,
|
|
740
|
+
disposeGateListener: () => {},
|
|
741
|
+
cancelPostmortemCleanup: () => {},
|
|
674
742
|
redact,
|
|
675
743
|
verbosity,
|
|
744
|
+
stream: streamingEnabled(),
|
|
676
745
|
sessionTag: tag,
|
|
677
746
|
busy: false,
|
|
678
747
|
pendingInbound: new Set<number>(),
|
|
679
748
|
};
|
|
680
749
|
runtimes.set(id, runtime);
|
|
750
|
+
// A native terminal close (SIGHUP), SIGTERM, Ctrl+C exit, or fatal error
|
|
751
|
+
// skips AgentSession.dispose(), so the `session_shutdown` extension event
|
|
752
|
+
// never fires and the daemon-side topic would be orphaned. postmortem
|
|
753
|
+
// awaits registered cleanups on those paths, so send the graceful
|
|
754
|
+
// `session_closed` frame from there too. stopSession() cancels this
|
|
755
|
+
// registration on every other teardown path, so it never double-fires.
|
|
756
|
+
runtime.cancelPostmortemCleanup = postmortem.register(`notifications-session-closed:${id}`, async () => {
|
|
757
|
+
await stopSession(id);
|
|
758
|
+
});
|
|
681
759
|
logger.info(`notifications: serving session ${id} at ${endpoint.url} (unattended=${unattended})`);
|
|
682
760
|
|
|
683
|
-
if (settingsAvailable && settings &&
|
|
761
|
+
if (settingsAvailable && settings && isTelegramConfigured(cfg)) {
|
|
684
762
|
try {
|
|
685
763
|
await ensureTelegramDaemonRunning({ settings, cwd: ctx.cwd, sessionId: id });
|
|
686
764
|
} catch (e) {
|
|
@@ -704,7 +782,7 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
704
782
|
|
|
705
783
|
// Unattended: a real ask emits a workflow gate; register it repliable by gate_id.
|
|
706
784
|
if (unattended && gate?.onGateEmitted) {
|
|
707
|
-
gate.onGateEmitted(g => {
|
|
785
|
+
runtime.disposeGateListener = gate.onGateEmitted(g => {
|
|
708
786
|
const options = (g.options ?? []).map(o => String((o as { label?: unknown }).label ?? ""));
|
|
709
787
|
gateOptions.set(g.gate_id, options);
|
|
710
788
|
const promptCtx = g.context as { prompt?: unknown; title?: unknown } | undefined;
|
|
@@ -739,7 +817,7 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
739
817
|
async handler(args: string, ctx: ExtensionCommandContext): Promise<void> {
|
|
740
818
|
const id = sessionId(ctx);
|
|
741
819
|
const command = args.trim().split(/\s+/, 1)[0]?.toLowerCase() || "status";
|
|
742
|
-
const resolved = resolveSettings();
|
|
820
|
+
const resolved = resolveSettings(options.settings);
|
|
743
821
|
const enabledWithoutLocalOff = isSessionNotificationsEnabled({
|
|
744
822
|
cfg: resolved.cfg,
|
|
745
823
|
env: process.env,
|
|
@@ -759,6 +837,10 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
759
837
|
}
|
|
760
838
|
|
|
761
839
|
if (command === "on") {
|
|
840
|
+
if (!isNotificationEligibleContext(ctx)) {
|
|
841
|
+
ctx.ui.notify("Notifications are disabled for subagent sessions.", "warning");
|
|
842
|
+
return;
|
|
843
|
+
}
|
|
762
844
|
if (process.env.SKC_NOTIFICATIONS === "0") {
|
|
763
845
|
ctx.ui.notify(
|
|
764
846
|
"Notifications remain disabled: SKC_NOTIFICATIONS=0 is an authoritative opt-out.",
|
|
@@ -839,9 +921,15 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
839
921
|
// Re-bind the interactive ask answer source: the ask tool resolves the
|
|
840
922
|
// source by the current session id, which just changed.
|
|
841
923
|
try {
|
|
924
|
+
rt.cancelPostmortemCleanup();
|
|
842
925
|
rt.disposeAnswerSource();
|
|
843
926
|
rt.disposeFileSink();
|
|
844
927
|
} catch {}
|
|
928
|
+
// Follow the id change so a later process teardown closes the re-keyed
|
|
929
|
+
// session (the old closure captured the retired id).
|
|
930
|
+
rt.cancelPostmortemCleanup = postmortem.register(`notifications-session-closed:${newId}`, async () => {
|
|
931
|
+
await stopSession(newId);
|
|
932
|
+
});
|
|
845
933
|
rt.disposeAnswerSource = registerInteractiveAnswerSource(
|
|
846
934
|
newId,
|
|
847
935
|
rt.server,
|
|
@@ -850,6 +938,10 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
850
938
|
rt.sessionTag,
|
|
851
939
|
);
|
|
852
940
|
rt.disposeFileSink = registerTelegramFileSink(newId, async file => {
|
|
941
|
+
if (rt.redact) {
|
|
942
|
+
return { ok: false, error: TELEGRAM_FILE_REDACTION_ERROR };
|
|
943
|
+
}
|
|
944
|
+
|
|
853
945
|
try {
|
|
854
946
|
const data = await fs.promises.readFile(file.path);
|
|
855
947
|
rt.server.pushFrame(
|
|
@@ -973,7 +1065,8 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
973
1065
|
const tokenUsage = usage && usage.tokens != null ? `${usage.tokens}/${usage.contextWindow}` : undefined;
|
|
974
1066
|
const modelId = model?.id;
|
|
975
1067
|
void readGitDiffStat(ctx.cwd).then(diff => {
|
|
976
|
-
|
|
1068
|
+
const cwd = compactCwd(ctx.cwd);
|
|
1069
|
+
if (!diff && !tokenUsage && !modelId && !cwd) return;
|
|
977
1070
|
try {
|
|
978
1071
|
rt.server.pushFrame(
|
|
979
1072
|
JSON.stringify({
|
|
@@ -982,6 +1075,7 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
982
1075
|
tokenUsage,
|
|
983
1076
|
model: modelId,
|
|
984
1077
|
diff,
|
|
1078
|
+
cwd,
|
|
985
1079
|
}),
|
|
986
1080
|
);
|
|
987
1081
|
} catch (e) {
|
|
@@ -1003,7 +1097,15 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
1003
1097
|
if (!text || text === rt.preAskFlushedText) return;
|
|
1004
1098
|
rt.preAskFlushedText = text;
|
|
1005
1099
|
try {
|
|
1006
|
-
rt.server.pushFrame(
|
|
1100
|
+
rt.server.pushFrame(
|
|
1101
|
+
JSON.stringify({
|
|
1102
|
+
type: "turn_stream",
|
|
1103
|
+
sessionId: id,
|
|
1104
|
+
phase: "finalized",
|
|
1105
|
+
text,
|
|
1106
|
+
...(rt.liveRef ? { messageRef: rt.liveRef } : {}),
|
|
1107
|
+
}),
|
|
1108
|
+
);
|
|
1007
1109
|
} catch (e) {
|
|
1008
1110
|
logger.warn(`notifications: pushFrame (turn) failed: ${String(e)}`);
|
|
1009
1111
|
}
|
|
@@ -1027,12 +1129,43 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
1027
1129
|
const id = sessionId(ctx);
|
|
1028
1130
|
const rt = runtimes.get(id);
|
|
1029
1131
|
if (!rt) return;
|
|
1030
|
-
const text = rt.redact ? undefined : summaryFromMessage(event.message,
|
|
1132
|
+
const text = rt.redact ? undefined : summaryFromMessage(event.message, turnTextMax());
|
|
1031
1133
|
if (text) flushTurnText(rt, id, text);
|
|
1032
1134
|
// Reset per-turn streaming state so the next turn starts fresh and a later
|
|
1033
1135
|
// turn with identical text is not falsely deduped.
|
|
1034
1136
|
rt.currentTurnText = undefined;
|
|
1035
1137
|
rt.preAskFlushedText = undefined;
|
|
1138
|
+
rt.liveRef = undefined;
|
|
1139
|
+
rt.lastLiveAt = undefined;
|
|
1140
|
+
rt.lastLiveText = undefined;
|
|
1141
|
+
});
|
|
1142
|
+
|
|
1143
|
+
// Live streaming (opt-in): push throttled in-progress assistant text as
|
|
1144
|
+
// non-finalized turn_stream frames so remote clients edit one message as the
|
|
1145
|
+
// turn streams. The finalized frame (turn_end) carries the same messageRef and
|
|
1146
|
+
// lands the authoritative text. Suppressed under redaction.
|
|
1147
|
+
api.on("message_update", (event, ctx) => {
|
|
1148
|
+
const id = sessionId(ctx);
|
|
1149
|
+
const rt = runtimes.get(id);
|
|
1150
|
+
if (!rt?.stream || rt.redact) return;
|
|
1151
|
+
if ((event.message as { role?: unknown }).role !== "assistant") return;
|
|
1152
|
+
if (rt.liveRef === undefined) {
|
|
1153
|
+
rt.turnSeq = (rt.turnSeq ?? 0) + 1;
|
|
1154
|
+
rt.liveRef = String(rt.turnSeq);
|
|
1155
|
+
}
|
|
1156
|
+
const now = Date.now();
|
|
1157
|
+
if (now - (rt.lastLiveAt ?? 0) < streamIntervalMs()) return;
|
|
1158
|
+
const text = summaryFromMessage(event.message, 3500);
|
|
1159
|
+
if (!text || text === rt.lastLiveText) return;
|
|
1160
|
+
rt.lastLiveAt = now;
|
|
1161
|
+
rt.lastLiveText = text;
|
|
1162
|
+
try {
|
|
1163
|
+
rt.server.pushFrame(
|
|
1164
|
+
JSON.stringify({ type: "turn_stream", sessionId: id, phase: "live", text, messageRef: rt.liveRef }),
|
|
1165
|
+
);
|
|
1166
|
+
} catch (e) {
|
|
1167
|
+
logger.warn(`notifications: pushFrame (live) failed: ${String(e)}`);
|
|
1168
|
+
}
|
|
1036
1169
|
});
|
|
1037
1170
|
|
|
1038
1171
|
// Stream agent-produced images (computer/browser/tool screenshots) as
|
|
@@ -1046,7 +1179,7 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
1046
1179
|
// flush can emit it before the ask prompt. Role-scoped: message_end also
|
|
1047
1180
|
// fires for the user prompt, which must never be mirrored back as turn output.
|
|
1048
1181
|
if ((event.message as { role?: unknown }).role === "assistant") {
|
|
1049
|
-
const turnText = summaryFromMessage(event.message,
|
|
1182
|
+
const turnText = summaryFromMessage(event.message, turnTextMax());
|
|
1050
1183
|
if (turnText) rt.currentTurnText = turnText;
|
|
1051
1184
|
}
|
|
1052
1185
|
for (const img of imageAttachmentsFromMessage(event.message)) {
|
|
@@ -1069,4 +1202,4 @@ export const createNotificationsExtension: ExtensionFactory = api => {
|
|
|
1069
1202
|
api.on("session_shutdown", async (_event, ctx) => {
|
|
1070
1203
|
await stopSession(sessionId(ctx));
|
|
1071
1204
|
});
|
|
1072
|
-
}
|
|
1205
|
+
}
|
|
@@ -15,6 +15,19 @@ import * as os from "node:os";
|
|
|
15
15
|
import type { SessionCloseTarget, SessionCreateTarget, SessionLifecycleResponse, SessionResumeTarget } from "./index";
|
|
16
16
|
|
|
17
17
|
export type LifecycleCommandVerb = "session_create" | "session_close" | "session_resume";
|
|
18
|
+
function normalizeLifecycleCommandToken(
|
|
19
|
+
token: string,
|
|
20
|
+
ctx: { chatType?: string; botUsername?: string } = {},
|
|
21
|
+
): string | undefined {
|
|
22
|
+
const at = token.indexOf("@");
|
|
23
|
+
const command = at === -1 ? token : token.slice(0, at);
|
|
24
|
+
if (!/^\/session_(create|close|resume|recent)\b/.test(command)) return undefined;
|
|
25
|
+
if (at === -1) return ctx.chatType === undefined || ctx.chatType === "private" ? command : undefined;
|
|
26
|
+
|
|
27
|
+
const botUsername = ctx.botUsername;
|
|
28
|
+
if (!botUsername || token.slice(at + 1).toLowerCase() !== botUsername.toLowerCase()) return undefined;
|
|
29
|
+
return command;
|
|
30
|
+
}
|
|
18
31
|
|
|
19
32
|
/** A parsed, validated lifecycle command (transport identity added by caller). */
|
|
20
33
|
export type ParsedLifecycleCommand =
|
|
@@ -36,10 +49,24 @@ const USAGE = [
|
|
|
36
49
|
"/session_recent [create|resume]",
|
|
37
50
|
].join("\n");
|
|
38
51
|
|
|
39
|
-
/** True when the text begins
|
|
40
|
-
export function
|
|
52
|
+
/** True when the text begins with any /session_* token, regardless of addressability. */
|
|
53
|
+
export function isLifecycleCommandLikeText(text: string | undefined): boolean {
|
|
54
|
+
if (!text) return false;
|
|
55
|
+
const [token] = text.trim().split(/\s+/, 1);
|
|
56
|
+
if (!token) return false;
|
|
57
|
+
const at = token.indexOf("@");
|
|
58
|
+
const command = at === -1 ? token : token.slice(0, at);
|
|
59
|
+
return /^\/session_(create|close|resume|recent)\b/.test(command);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** True when the text begins an addressable /session_* command (cheap pre-gate). */
|
|
63
|
+
export function isLifecycleCommandText(
|
|
64
|
+
text: string | undefined,
|
|
65
|
+
ctx: { chatType?: string; botUsername?: string } = {},
|
|
66
|
+
): boolean {
|
|
41
67
|
if (!text) return false;
|
|
42
|
-
|
|
68
|
+
const [rawCommand] = text.trim().split(/\s+/, 1);
|
|
69
|
+
return normalizeLifecycleCommandToken(rawCommand ?? "", ctx) !== undefined;
|
|
43
70
|
}
|
|
44
71
|
|
|
45
72
|
/**
|
|
@@ -50,9 +77,14 @@ export function isLifecycleCommandText(text: string | undefined): boolean {
|
|
|
50
77
|
* The caller MUST have already enforced paired-chat authorization; this function
|
|
51
78
|
* performs grammar + target validation only.
|
|
52
79
|
*/
|
|
53
|
-
export function parseLifecycleCommand(
|
|
54
|
-
|
|
80
|
+
export function parseLifecycleCommand(
|
|
81
|
+
text: string | undefined,
|
|
82
|
+
ctx: { chatType?: string; botUsername?: string } = {},
|
|
83
|
+
): ParsedLifecycleCommand {
|
|
55
84
|
const raw = (text ?? "").trim();
|
|
85
|
+
const [rawCommand, ...args] = raw.split(/\s+/);
|
|
86
|
+
const command = normalizeLifecycleCommandToken(rawCommand ?? "", ctx);
|
|
87
|
+
if (command === undefined) return { kind: "none" };
|
|
56
88
|
|
|
57
89
|
// MVP: reject any initial-prompt separator outright (no prompt handling yet).
|
|
58
90
|
if (/\s--(\s|$)/.test(raw)) {
|
|
@@ -63,8 +95,6 @@ export function parseLifecycleCommand(text: string | undefined): ParsedLifecycle
|
|
|
63
95
|
};
|
|
64
96
|
}
|
|
65
97
|
|
|
66
|
-
const [command, ...args] = raw.split(/\s+/);
|
|
67
|
-
|
|
68
98
|
if (command === "/session_recent") {
|
|
69
99
|
const which = args[0];
|
|
70
100
|
if (which === undefined || which === "create" || which === "resume") {
|
|
@@ -238,6 +238,7 @@ export function daemonResumeSession(env: NodeJS.ProcessEnv = process.env, opts:
|
|
|
238
238
|
// restart, so an unknown or ambiguous prefix fails closed instead of
|
|
239
239
|
// blindly spawning `skc --resume <prefix>` against a non-authoritative id.
|
|
240
240
|
let resumeId = target.sessionIdOrPrefix;
|
|
241
|
+
let resumeCwd = target.path;
|
|
241
242
|
if (opts.sessionsRoot) {
|
|
242
243
|
const saved = listRecentSessions({ sessionsRoot: opts.sessionsRoot, limit: 1000 });
|
|
243
244
|
const prefixed = saved.filter(
|
|
@@ -249,11 +250,19 @@ export function daemonResumeSession(env: NodeJS.ProcessEnv = process.env, opts:
|
|
|
249
250
|
if (resolved.length > 1) {
|
|
250
251
|
return { ambiguous: resolved.map(s => ({ sessionId: s.sessionId, path: s.path })) };
|
|
251
252
|
}
|
|
252
|
-
|
|
253
|
+
const selected = resolved[0]!;
|
|
254
|
+
resumeId = selected.sessionId;
|
|
255
|
+
resumeCwd = selected.path;
|
|
256
|
+
}
|
|
257
|
+
const resolvedResumeCwd = resumeCwd ? path.resolve(resumeCwd) : undefined;
|
|
258
|
+
const resumeCwdStat = resolvedResumeCwd ? fs.statSync(resolvedResumeCwd, { throwIfNoEntry: false }) : undefined;
|
|
259
|
+
if (!resumeCwdStat?.isDirectory()) {
|
|
260
|
+
throw new Error(`skc_lifecycle_resume_cwd_unavailable: ${resolvedResumeCwd ?? "(missing)"}`);
|
|
253
261
|
}
|
|
254
262
|
const tmux = resolveSkcTmuxCommand(env);
|
|
255
263
|
const name = tmuxSessionNameFor(resumeId);
|
|
256
|
-
const
|
|
264
|
+
const cwdPrefix = resolvedResumeCwd ? `cd ${shellQuote(resolvedResumeCwd)} && ` : "";
|
|
265
|
+
const command = `${cwdPrefix}exec env SKC_TMUX_LAUNCHED=1 SKC_NOTIFICATIONS=1 skc --resume ${shellQuote(resumeId)}`;
|
|
257
266
|
const r = Bun.spawnSync([tmux, "new-session", "-d", "-s", name, "sh", "-c", command], {
|
|
258
267
|
stdout: "pipe",
|
|
259
268
|
stderr: "pipe",
|
|
@@ -261,7 +270,7 @@ export function daemonResumeSession(env: NodeJS.ProcessEnv = process.env, opts:
|
|
|
261
270
|
});
|
|
262
271
|
if (r.exitCode !== 0) throw new Error(r.stderr.toString().trim() || "skc_lifecycle_resume_failed");
|
|
263
272
|
const tgt = buildSkcTmuxExactOptionTarget(name);
|
|
264
|
-
for (const cmd of buildSkcTmuxProfileCommands(tgt, env, { sessionId: resumeId })) {
|
|
273
|
+
for (const cmd of buildSkcTmuxProfileCommands(tgt, env, { sessionId: resumeId, project: resolvedResumeCwd })) {
|
|
265
274
|
Bun.spawnSync([tmux, ...cmd.args], { stdout: "pipe", stderr: "pipe", env });
|
|
266
275
|
}
|
|
267
276
|
return {
|
|
@@ -252,7 +252,17 @@ export async function handleLifecycleRequest(
|
|
|
252
252
|
return { status: "error", reason: "rate_limited", message: "create rate limit exceeded" };
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
// 4.
|
|
255
|
+
// 4. Close is intentionally force-only until a graceful close contract exists.
|
|
256
|
+
if (frame.type === "session_close" && frame.force !== true) {
|
|
257
|
+
await deps.audit({ ...baseAudit, event: "rejected", reason: "invalid_target" });
|
|
258
|
+
return {
|
|
259
|
+
status: "error",
|
|
260
|
+
reason: "invalid_target",
|
|
261
|
+
message: "session_close requires force=true; graceful close is not supported",
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// 5. Preallocate ids + write in_progress (fsynced) BEFORE any spawn.
|
|
256
266
|
const lifecycleRequestId = frame.type === "session_create" ? frame.lifecycleRequestId : deps.newLifecycleRequestId();
|
|
257
267
|
const intendedSessionId =
|
|
258
268
|
frame.type === "session_create" ? frame.intendedSessionId || deps.newSessionId() : deps.newSessionId();
|
|
@@ -344,15 +354,18 @@ export async function handleLifecycleRequest(
|
|
|
344
354
|
await deps.audit({ ...baseAudit, event: "success", sessionId: resumed.sessionId });
|
|
345
355
|
return { status: "ok", entry, mode: resumed.mode };
|
|
346
356
|
} catch (err) {
|
|
347
|
-
// A side effect may have occurred; do not
|
|
348
|
-
// uncertain so a retry reconciles instead of duplicating.
|
|
357
|
+
// A side effect may have occurred; do not repeat it automatically. Mark
|
|
358
|
+
// terminal-uncertain so a retry reconciles instead of duplicating work.
|
|
359
|
+
let reason: LifecycleErrorReason = "terminal_uncertain";
|
|
360
|
+
if (frame.type === "session_create") reason = "spawn_failed";
|
|
361
|
+
if (frame.type === "session_close") reason = "close_refused";
|
|
349
362
|
Object.assign(entry, {
|
|
350
363
|
state: "terminal_uncertain",
|
|
351
364
|
updatedAt: deps.now(),
|
|
352
|
-
reason
|
|
365
|
+
reason,
|
|
353
366
|
});
|
|
354
367
|
await deps.store.write(doc);
|
|
355
|
-
await deps.audit({ ...baseAudit, event: "terminal_uncertain", reason
|
|
356
|
-
return { status: "error", reason: "terminal_uncertain", message:
|
|
368
|
+
await deps.audit({ ...baseAudit, event: "terminal_uncertain", reason });
|
|
369
|
+
return { status: "error", reason: "terminal_uncertain", message: `${frame.type} effect failed: ${String(err)}` };
|
|
357
370
|
}
|
|
358
371
|
}
|
|
@@ -25,6 +25,8 @@ export interface RecentSessionEntry {
|
|
|
25
25
|
mtimeMs: number;
|
|
26
26
|
/** True when a terminal breadcrumb points at this session file. */
|
|
27
27
|
currentTerminal?: boolean;
|
|
28
|
+
/** True when this history is an internal helper/sub-agent session. */
|
|
29
|
+
internal?: boolean;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
export interface RecentActivityDeps {
|
|
@@ -34,17 +36,18 @@ export interface RecentActivityDeps {
|
|
|
34
36
|
breadcrumbPaths?: string[];
|
|
35
37
|
/** Max entries to return (default 20). */
|
|
36
38
|
limit?: number;
|
|
39
|
+
/** Include internal helper/sub-agent sessions (default true). */
|
|
40
|
+
includeInternal?: boolean;
|
|
37
41
|
/** Injection seam for tests. */
|
|
38
|
-
|
|
42
|
+
readInitialLines?: (file: string, maxLines: number) => string[];
|
|
39
43
|
}
|
|
40
44
|
|
|
41
|
-
function
|
|
45
|
+
function defaultReadInitialLines(file: string, maxLines: number): string[] {
|
|
42
46
|
try {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
return nl === -1 ? buf : buf.slice(0, nl);
|
|
47
|
+
const lines = fs.readFileSync(file, "utf8").split("\n");
|
|
48
|
+
return lines.slice(0, maxLines);
|
|
46
49
|
} catch {
|
|
47
|
-
return
|
|
50
|
+
return [];
|
|
48
51
|
}
|
|
49
52
|
}
|
|
50
53
|
|
|
@@ -65,6 +68,22 @@ function headerMeta(line: string | undefined): { id?: string; path?: string; bra
|
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
|
|
71
|
+
/** Detect task-tool helper sessions from the durable early session_init metadata entry. */
|
|
72
|
+
function isInternalSession(lines: readonly string[]): boolean {
|
|
73
|
+
for (const line of lines.slice(1)) {
|
|
74
|
+
if (!line.trim()) continue;
|
|
75
|
+
try {
|
|
76
|
+
const obj = JSON.parse(line) as unknown;
|
|
77
|
+
if (typeof obj === "object" && obj !== null && (obj as { type?: unknown }).type === "session_init") {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
} catch {
|
|
81
|
+
// Ignore malformed JSONL entries; classification is best-effort.
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
68
87
|
/**
|
|
69
88
|
* The authoritative session id for a history file: the header `id` when present,
|
|
70
89
|
* else the filename stem with a leading `<timestamp>_` prefix stripped (matching
|
|
@@ -85,7 +104,8 @@ function sessionIdForFile(stem: string, headerId: string | undefined): string {
|
|
|
85
104
|
*/
|
|
86
105
|
export function listRecentSessions(deps: RecentActivityDeps): RecentSessionEntry[] {
|
|
87
106
|
const limit = deps.limit ?? 20;
|
|
88
|
-
const
|
|
107
|
+
const includeInternal = deps.includeInternal ?? true;
|
|
108
|
+
const readInitialLines = deps.readInitialLines ?? defaultReadInitialLines;
|
|
89
109
|
const breadcrumbs = new Set((deps.breadcrumbPaths ?? []).map(p => path.resolve(p)));
|
|
90
110
|
|
|
91
111
|
let projectDirs: string[];
|
|
@@ -114,7 +134,10 @@ export function listRecentSessions(deps: RecentActivityDeps): RecentSessionEntry
|
|
|
114
134
|
} catch {
|
|
115
135
|
continue;
|
|
116
136
|
}
|
|
117
|
-
const
|
|
137
|
+
const initialLines = readInitialLines(file, 8);
|
|
138
|
+
const meta = headerMeta(initialLines[0]);
|
|
139
|
+
const internal = isInternalSession(initialLines);
|
|
140
|
+
if (internal && !includeInternal) continue;
|
|
118
141
|
entries.push({
|
|
119
142
|
sessionId: sessionIdForFile(name.slice(0, -".jsonl".length), meta.id),
|
|
120
143
|
path: meta.path,
|
|
@@ -123,6 +146,7 @@ export function listRecentSessions(deps: RecentActivityDeps): RecentSessionEntry
|
|
|
123
146
|
sessionStateFile: file,
|
|
124
147
|
mtimeMs,
|
|
125
148
|
currentTerminal: breadcrumbs.has(path.resolve(file)) || undefined,
|
|
149
|
+
internal: internal || undefined,
|
|
126
150
|
});
|
|
127
151
|
}
|
|
128
152
|
}
|
|
@@ -3,12 +3,19 @@ import * as path from "node:path";
|
|
|
3
3
|
import { YAML } from "bun";
|
|
4
4
|
import type { Settings } from "../config/settings";
|
|
5
5
|
import { getNotificationConfig, isGloballyConfigured } from "./config";
|
|
6
|
-
import { daemonPaths
|
|
7
|
-
import {
|
|
6
|
+
import { daemonPaths } from "./daemon-paths";
|
|
7
|
+
import type { TelegramDaemonOptions } from "./telegram-daemon";
|
|
8
|
+
|
|
9
|
+
type TelegramDaemonRunner = {
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
requestStop(reason?: "reload" | "signal" | "stop"): void;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type TelegramDaemonConstructor = new (opts: TelegramDaemonOptions) => TelegramDaemonRunner;
|
|
8
15
|
|
|
9
16
|
export interface RunDaemonInternalDeps {
|
|
10
17
|
SettingsImpl?: { init: (options?: { agentDir?: string }) => Promise<Pick<Settings, "get" | "getAgentDir">> };
|
|
11
|
-
DaemonImpl?:
|
|
18
|
+
DaemonImpl?: TelegramDaemonConstructor;
|
|
12
19
|
processPid?: number;
|
|
13
20
|
pidAlive?: (pid: number) => boolean;
|
|
14
21
|
}
|
|
@@ -140,7 +147,9 @@ export async function runDaemonInternal(argv: string[], deps: RunDaemonInternalD
|
|
|
140
147
|
const settings = await resolveDaemonSettings(resolvedAgentDir, deps);
|
|
141
148
|
const cfg = getNotificationConfig(settings as Settings);
|
|
142
149
|
if (!isGloballyConfigured(cfg) || !cfg.botToken || !cfg.chatId) return;
|
|
143
|
-
const
|
|
150
|
+
const { clearTelegramControlRequest, readTelegramControlRequest } = await import("./telegram-daemon-control");
|
|
151
|
+
const Daemon: TelegramDaemonConstructor =
|
|
152
|
+
deps.DaemonImpl ?? (await import("./telegram-daemon")).TelegramNotificationDaemon;
|
|
144
153
|
const daemon = new Daemon({
|
|
145
154
|
settings: settings as Settings,
|
|
146
155
|
ownerId,
|