@gajae-code/coding-agent 0.11.1 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/dist/types/cli/config-cli.d.ts +11 -1
- package/dist/types/cli/notify-cli.d.ts +1 -0
- package/dist/types/cli/session-picker.d.ts +2 -1
- package/dist/types/cli/setup-cli.d.ts +1 -1
- package/dist/types/commands/mcp-serve.d.ts +33 -0
- package/dist/types/commands/mcp.d.ts +1 -1
- package/dist/types/commands/notify.d.ts +0 -2
- package/dist/types/commands/sdk.d.ts +1 -1
- package/dist/types/config/atomic-yaml-patch.d.ts +18 -0
- package/dist/types/config/file-lock.d.ts +14 -4
- package/dist/types/config/keybindings.d.ts +42 -1
- package/dist/types/config/model-auth.d.ts +3 -0
- package/dist/types/config/model-bindings-applier.d.ts +13 -0
- package/dist/types/config/model-discovery-manager.d.ts +49 -0
- package/dist/types/config/model-equivalence.d.ts +20 -0
- package/dist/types/config/model-registry.d.ts +16 -15
- package/dist/types/config/model-resolver.d.ts +28 -18
- package/dist/types/config/models-config-schema.d.ts +11 -0
- package/dist/types/config/settings-schema.d.ts +56 -1
- package/dist/types/config/settings.d.ts +14 -11
- package/dist/types/coordinator-mcp/policy.d.ts +5 -0
- package/dist/types/coordinator-mcp/question-gate-codec.d.ts +129 -0
- package/dist/types/coordinator-mcp/question-state.d.ts +356 -0
- package/dist/types/coordinator-mcp/server.d.ts +4 -0
- package/dist/types/discovery/helpers.d.ts +0 -6
- package/dist/types/edit/index.d.ts +3 -0
- package/dist/types/eval/py/env.d.ts +9 -0
- package/dist/types/extensibility/extensions/loader.d.ts +2 -1
- package/dist/types/extensibility/extensions/runner.d.ts +2 -2
- package/dist/types/extensibility/extensions/types.d.ts +34 -3
- package/dist/types/extensibility/hooks/runner.d.ts +1 -1
- package/dist/types/extensibility/shared-events.d.ts +2 -0
- package/dist/types/gjc-runtime/deep-interview-recorder.d.ts +10 -1
- package/dist/types/gjc-runtime/deep-interview-state.d.ts +44 -0
- package/dist/types/gjc-runtime/goal-mode-request.d.ts +11 -1
- package/dist/types/gjc-runtime/launch-worktree.d.ts +4 -2
- package/dist/types/gjc-runtime/linux-proc.d.ts +29 -0
- package/dist/types/gjc-runtime/session-resolution.d.ts +2 -2
- package/dist/types/gjc-runtime/state-migrations.d.ts +1 -1
- package/dist/types/gjc-runtime/state-writer.d.ts +2 -1
- package/dist/types/gjc-runtime/team-launch.d.ts +59 -0
- package/dist/types/gjc-runtime/team-notify.d.ts +45 -0
- package/dist/types/gjc-runtime/team-runtime.d.ts +29 -121
- package/dist/types/gjc-runtime/team-store.d.ts +160 -0
- package/dist/types/gjc-runtime/team-workers.d.ts +78 -0
- package/dist/types/gjc-runtime/tmux-owner-isolation.d.ts +8 -0
- package/dist/types/gjc-runtime/ultragoal-change-set.d.ts +13 -0
- package/dist/types/gjc-runtime/ultragoal-evidence.d.ts +38 -0
- package/dist/types/gjc-runtime/ultragoal-guard.d.ts +7 -0
- package/dist/types/gjc-runtime/ultragoal-pipeline.d.ts +23 -0
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +55 -33
- package/dist/types/gjc-runtime/workflow-cli-common.d.ts +8 -0
- package/dist/types/gjc-runtime/workflow-manifest.d.ts +3 -0
- package/dist/types/goals/continuation-timeout-guard.d.ts +22 -0
- package/dist/types/goals/runtime.d.ts +1 -0
- package/dist/types/goals/state.d.ts +8 -0
- package/dist/types/harness-control-plane/lifecycle-reconciliation.d.ts +17 -0
- package/dist/types/harness-control-plane/phase-rollup.d.ts +4 -7
- package/dist/types/harness-control-plane/receipt-ingest.d.ts +5 -0
- package/dist/types/harness-control-plane/receipt-spool.d.ts +4 -0
- package/dist/types/hindsight/state.d.ts +11 -4
- package/dist/types/lsp/lspmux.d.ts +5 -3
- package/dist/types/lsp/path-trust.d.ts +1 -0
- package/dist/types/main.d.ts +3 -2
- package/dist/types/memories/storage.d.ts +1 -0
- package/dist/types/modes/action-registry.d.ts +29 -0
- package/dist/types/modes/components/chrome.d.ts +14 -0
- package/dist/types/modes/components/command-palette.d.ts +27 -0
- package/dist/types/modes/components/custom-provider-wizard.d.ts +1 -0
- package/dist/types/modes/components/index.d.ts +2 -1
- package/dist/types/modes/components/pet-selector.d.ts +1 -1
- package/dist/types/modes/components/plan-preview-overlay.d.ts +43 -0
- package/dist/types/modes/components/queue-mode-selector.d.ts +1 -1
- package/dist/types/modes/components/queue-pane.d.ts +12 -0
- package/dist/types/modes/components/read-tool-group.d.ts +6 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +3 -4
- package/dist/types/modes/components/sessions-dashboard.d.ts +32 -0
- package/dist/types/modes/components/settings-selector.d.ts +1 -1
- package/dist/types/modes/components/show-images-selector.d.ts +1 -1
- package/dist/types/modes/components/status-line/types.d.ts +1 -1
- package/dist/types/modes/components/status-line.d.ts +1 -94
- package/dist/types/modes/components/tasks-pane.d.ts +15 -0
- package/dist/types/modes/components/theme-selector.d.ts +1 -1
- package/dist/types/modes/components/tool-execution.d.ts +15 -0
- package/dist/types/modes/components/tool-status-header.d.ts +111 -0
- package/dist/types/modes/components/transcript-viewer-overlay.d.ts +42 -0
- package/dist/types/modes/controllers/goal-mode-controller.d.ts +62 -0
- package/dist/types/modes/controllers/input-controller.d.ts +8 -1
- package/dist/types/modes/controllers/mode-gate.d.ts +8 -0
- package/dist/types/modes/controllers/plan-mode-controller.d.ts +65 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +15 -3
- package/dist/types/modes/controllers/stt-controller.d.ts +26 -0
- package/dist/types/modes/interactive-mode.d.ts +19 -17
- package/dist/types/modes/jobs-observer.d.ts +2 -0
- package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +4 -11
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +20 -2
- package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +31 -0
- package/dist/types/modes/tasks-aggregator.d.ts +39 -0
- package/dist/types/modes/transcript-item-registry.d.ts +60 -0
- package/dist/types/modes/types.d.ts +20 -13
- package/dist/types/modes/utils/ui-helpers.d.ts +2 -2
- package/dist/types/runtime-mcp/manager.d.ts +1 -1
- package/dist/types/sdk/broker/broker.d.ts +78 -12
- package/dist/types/sdk/broker/lifecycle-codec.d.ts +4 -0
- package/dist/types/sdk/broker/lifecycle-ledger.d.ts +15 -1
- package/dist/types/sdk/broker/lifecycle.d.ts +6 -2
- package/dist/types/sdk/broker/process-incarnation.d.ts +2 -0
- package/dist/types/sdk/broker/session-index.d.ts +0 -1
- package/dist/types/sdk/broker/state-version.d.ts +2 -0
- package/dist/types/sdk/bus/chat-effect-journal.d.ts +1 -0
- package/dist/types/sdk/bus/config-commands.d.ts +1 -1
- package/dist/types/sdk/bus/config.d.ts +11 -0
- package/dist/types/sdk/bus/daemon-paths.d.ts +1 -0
- package/dist/types/sdk/bus/html-format.d.ts +3 -2
- package/dist/types/sdk/bus/index.d.ts +27 -0
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +4 -0
- package/dist/types/sdk/bus/notification-service.d.ts +20 -0
- package/dist/types/sdk/bus/rate-limit-pool.d.ts +13 -2
- package/dist/types/sdk/bus/recent-activity.d.ts +21 -12
- package/dist/types/sdk/bus/rich-document.d.ts +7 -0
- package/dist/types/sdk/bus/rich-render.d.ts +18 -41
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +9 -4
- package/dist/types/sdk/bus/telegram-daemon.d.ts +46 -3
- package/dist/types/sdk/bus/threaded-inbound.d.ts +1 -1
- package/dist/types/sdk/bus/threaded-render.d.ts +13 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +24 -2
- package/dist/types/sdk/host/control/operations.d.ts +1 -1
- package/dist/types/sdk/host/host.d.ts +2 -0
- package/dist/types/sdk/index.d.ts +1 -0
- package/dist/types/sdk/session-directory.d.ts +56 -0
- package/dist/types/session/agent-session.d.ts +82 -47
- package/dist/types/session/agent-storage.d.ts +7 -0
- package/dist/types/session/fallback-chain-controller.d.ts +10 -2
- package/dist/types/session/internal/managed-session-scope.d.ts +102 -0
- package/dist/types/session/internal/managed-session-storage.d.ts +38 -0
- package/dist/types/session/messages.d.ts +16 -0
- package/dist/types/session/session-manager-internal.d.ts +14 -0
- package/dist/types/session/session-manager.d.ts +82 -12
- package/dist/types/session/session-storage.d.ts +43 -3
- package/dist/types/session/volatile-context-pruning.d.ts +15 -0
- package/dist/types/skill-state/{deep-interview-mutation-guard.d.ts → workflow-mutation-guard.d.ts} +24 -8
- package/dist/types/skill-state/workflow-state-contract.d.ts +1 -3
- package/dist/types/slash-commands/builtin-registry.d.ts +4 -1
- package/dist/types/system-prompt.d.ts +2 -11
- package/dist/types/task/executor.d.ts +3 -1
- package/dist/types/thinking.d.ts +7 -0
- package/dist/types/tool-discovery/tool-index.d.ts +1 -50
- package/dist/types/tools/ask.d.ts +64 -2
- package/dist/types/tools/bash.d.ts +3 -0
- package/dist/types/tools/browser/dead-tab-recovery.d.ts +24 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +21 -0
- package/dist/types/tools/cron.d.ts +2 -0
- package/dist/types/tools/fetch.d.ts +1 -0
- package/dist/types/tools/index.d.ts +30 -15
- package/dist/types/tools/output-meta.d.ts +1 -0
- package/dist/types/tools/read.d.ts +3 -0
- package/dist/types/tools/search-tool-bm25.d.ts +3 -4
- package/dist/types/utils/event-bus.d.ts +1 -1
- package/dist/types/web/search/index.d.ts +3 -1
- package/package.json +21 -9
- package/scripts/build-sdk-package-smoke.ts +34 -1
- package/scripts/generate-hotkeys-docs.ts +74 -0
- package/scripts/generate-sdk-operation-inventory.ts +64 -20
- package/scripts/verify-gjc-sdk-canonicalization.ts +182 -2
- package/src/async/job-manager.ts +49 -6
- package/src/cli/config-cli.ts +75 -2
- package/src/cli/notify-cli.ts +92 -26
- package/src/cli/session-picker.ts +20 -3
- package/src/cli/setup-cli.ts +1 -1
- package/src/cli.ts +1 -1
- package/src/commands/config.ts +1 -1
- package/src/commands/harness.ts +34 -106
- package/src/commands/launch.ts +6 -4
- package/src/commands/mcp-serve.ts +85 -8
- package/src/commands/mcp.ts +2 -2
- package/src/commands/notify.ts +8 -4
- package/src/commands/sdk.ts +61 -40
- package/src/commands/ultragoal.ts +4 -1
- package/src/config/atomic-yaml-patch.ts +80 -13
- package/src/config/file-lock.ts +105 -43
- package/src/config/keybindings.ts +64 -20
- package/src/config/model-auth.ts +9 -0
- package/src/config/model-bindings-applier.ts +139 -0
- package/src/config/model-discovery-manager.ts +224 -0
- package/src/config/model-equivalence.ts +66 -0
- package/src/config/model-registry.ts +169 -302
- package/src/config/model-resolver.ts +361 -369
- package/src/config/models-config-schema.ts +5 -4
- package/src/config/settings-schema.ts +159 -2
- package/src/config/settings.ts +458 -482
- package/src/coordinator-mcp/policy.ts +76 -11
- package/src/coordinator-mcp/question-gate-codec.ts +274 -0
- package/src/coordinator-mcp/question-state.ts +778 -0
- package/src/coordinator-mcp/server.ts +1702 -238
- package/src/debug/index.ts +1 -1
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +13 -1
- package/src/defaults/gjc/skills/team/SKILL.md +16 -0
- package/src/discovery/helpers.ts +1 -50
- package/src/edit/index.ts +64 -0
- package/src/eval/py/env.ts +26 -0
- package/src/eval/py/kernel.ts +5 -3
- package/src/extensibility/extensions/loader.ts +9 -1
- package/src/extensibility/extensions/runner.ts +12 -3
- package/src/extensibility/extensions/types.ts +39 -1
- package/src/extensibility/gjc-plugins/installer.ts +16 -16
- package/src/extensibility/hooks/runner.ts +2 -2
- package/src/extensibility/runtime-skill-discovery.ts +33 -13
- package/src/extensibility/shared-events.ts +2 -0
- package/src/gjc-runtime/deep-interview-recorder.ts +63 -3
- package/src/gjc-runtime/deep-interview-runtime.ts +76 -27
- package/src/gjc-runtime/deep-interview-state.ts +317 -5
- package/src/gjc-runtime/goal-mode-request.ts +55 -8
- package/src/gjc-runtime/launch-tmux.ts +2 -5
- package/src/gjc-runtime/launch-worktree.ts +5 -5
- package/src/gjc-runtime/linux-proc.ts +71 -0
- package/src/gjc-runtime/ralplan-runtime.ts +74 -90
- package/src/gjc-runtime/session-resolution.ts +18 -3
- package/src/gjc-runtime/session-state-sidecar.ts +6 -107
- package/src/gjc-runtime/state-migrations.ts +1 -1
- package/src/gjc-runtime/state-runtime.ts +320 -249
- package/src/gjc-runtime/state-writer.ts +36 -40
- package/src/gjc-runtime/team-launch.ts +319 -0
- package/src/gjc-runtime/team-notify.ts +326 -0
- package/src/gjc-runtime/team-runtime.ts +1099 -1482
- package/src/gjc-runtime/team-store.ts +828 -0
- package/src/gjc-runtime/team-workers.ts +962 -0
- package/src/gjc-runtime/tmux-owner-isolation-cli.ts +2 -11
- package/src/gjc-runtime/tmux-owner-isolation.ts +14 -9
- package/src/gjc-runtime/tmux-sessions.ts +4 -21
- package/src/gjc-runtime/ultragoal-change-set.ts +172 -0
- package/src/gjc-runtime/ultragoal-evidence.ts +874 -0
- package/src/gjc-runtime/ultragoal-guard.ts +29 -5
- package/src/gjc-runtime/ultragoal-pipeline.ts +306 -0
- package/src/gjc-runtime/ultragoal-runtime.ts +84 -1311
- package/src/gjc-runtime/workflow-cli-common.ts +30 -0
- package/src/gjc-runtime/workflow-manifest.generated.json +58 -0
- package/src/gjc-runtime/workflow-manifest.ts +18 -0
- package/src/goals/continuation-timeout-guard.ts +79 -0
- package/src/goals/runtime.ts +7 -5
- package/src/goals/state.ts +18 -0
- package/src/harness-control-plane/lifecycle-reconciliation.ts +64 -0
- package/src/harness-control-plane/phase-rollup.ts +4 -7
- package/src/harness-control-plane/receipt-ingest.ts +5 -0
- package/src/harness-control-plane/receipt-spool.ts +51 -7
- package/src/harness-control-plane/session-lease.ts +12 -130
- package/src/hindsight/backend.ts +26 -27
- package/src/hindsight/state.ts +101 -32
- package/src/hooks/skill-state.ts +17 -11
- package/src/internal-urls/docs-index.generated.ts +21 -18
- package/src/lsp/client.ts +1 -1
- package/src/lsp/config.ts +145 -26
- package/src/lsp/index.ts +1 -1
- package/src/lsp/lspmux.ts +39 -10
- package/src/lsp/path-trust.ts +81 -0
- package/src/main.ts +28 -8
- package/src/memories/index.ts +1 -0
- package/src/memories/storage.ts +6 -2
- package/src/modes/action-registry.ts +165 -0
- package/src/modes/components/chrome.ts +40 -0
- package/src/modes/components/command-palette.ts +168 -0
- package/src/modes/components/custom-editor.ts +1 -1
- package/src/modes/components/custom-provider-wizard.ts +51 -14
- package/src/modes/components/index.ts +2 -1
- package/src/modes/components/pet-selector.ts +11 -17
- package/src/modes/components/plan-preview-overlay.ts +295 -0
- package/src/modes/components/queue-mode-selector.ts +10 -27
- package/src/modes/components/queue-pane.ts +79 -0
- package/src/modes/components/read-tool-group.ts +13 -0
- package/src/modes/components/session-observer-overlay.ts +207 -772
- package/src/modes/components/sessions-dashboard.ts +181 -0
- package/src/modes/components/settings-selector.ts +1 -1
- package/src/modes/components/show-images-selector.ts +10 -24
- package/src/modes/components/status-line/types.ts +1 -1
- package/src/modes/components/status-line.ts +1 -969
- package/src/modes/components/tasks-pane.ts +73 -0
- package/src/modes/components/theme-selector.ts +11 -31
- package/src/modes/components/tool-execution.ts +22 -0
- package/src/modes/components/tool-status-header.ts +1056 -0
- package/src/modes/components/transcript-viewer-overlay.ts +384 -0
- package/src/modes/controllers/btw-controller.ts +1 -0
- package/src/modes/controllers/event-controller.ts +3 -2
- package/src/modes/controllers/extension-ui-controller.ts +24 -1
- package/src/modes/controllers/goal-mode-controller.ts +474 -0
- package/src/modes/controllers/input-controller.ts +764 -229
- package/src/modes/controllers/mode-gate.ts +24 -0
- package/src/modes/controllers/plan-mode-controller.ts +517 -0
- package/src/modes/controllers/selector-controller.ts +225 -10
- package/src/modes/controllers/stt-controller.ts +125 -0
- package/src/modes/interactive-mode.ts +289 -1150
- package/src/modes/jobs-observer.ts +3 -0
- package/src/modes/runtime-init.ts +8 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +31 -106
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +71 -16
- package/src/modes/shared/agent-wire/workflow-gate-types.ts +177 -0
- package/src/modes/tasks-aggregator.ts +199 -0
- package/src/modes/transcript-item-registry.ts +229 -0
- package/src/modes/types.ts +45 -18
- package/src/modes/utils/ui-helpers.ts +17 -9
- package/src/prompts/agent-fragments/ralplan-persistence.md +6 -0
- package/src/prompts/agent-fragments/restricted-bash.md +1 -0
- package/src/prompts/agents/architect.md +2 -8
- package/src/prompts/agents/critic.md +2 -8
- package/src/prompts/agents/executor.md +3 -0
- package/src/prompts/agents/planner.md +4 -12
- package/src/prompts/system/custom-system-prompt.md +1 -23
- package/src/prompts/system/plan-mode-approved.md +8 -0
- package/src/prompts/system/system-prompt.md +17 -96
- package/src/prompts/tools/bash.md +4 -4
- package/src/prompts/tools/browser.md +15 -52
- package/src/prompts/tools/find.md +2 -2
- package/src/prompts/tools/hashline.md +13 -55
- package/src/prompts/tools/read.md +3 -6
- package/src/prompts/tools/search-tool-bm25.md +0 -2
- package/src/prompts/tools/search.md +2 -4
- package/src/prompts/tools/skill-discovery.md +1 -2
- package/src/prompts/tools/task.md +1 -1
- package/src/runtime-mcp/manager.ts +1 -1
- package/src/sdk/broker/broker.ts +206 -78
- package/src/sdk/broker/discovery.ts +1 -1
- package/src/sdk/broker/ensure.ts +3 -1
- package/src/sdk/broker/lifecycle-codec.ts +11 -0
- package/src/sdk/broker/lifecycle-ledger.ts +371 -74
- package/src/sdk/broker/lifecycle.ts +1399 -142
- package/src/sdk/broker/process-incarnation.ts +5 -13
- package/src/sdk/broker/session-index.ts +145 -56
- package/src/sdk/broker/state-version.ts +21 -0
- package/src/sdk/broker/transport.ts +1 -1
- package/src/sdk/bus/chat-daemon-cli.ts +2 -0
- package/src/sdk/bus/chat-daemon-control.ts +8 -28
- package/src/sdk/bus/chat-effect-journal.ts +10 -2
- package/src/sdk/bus/config-commands.ts +5 -4
- package/src/sdk/bus/config.ts +98 -0
- package/src/sdk/bus/conversation-store.ts +5 -29
- package/src/sdk/bus/daemon-paths.ts +2 -0
- package/src/sdk/bus/html-format.ts +20 -3
- package/src/sdk/bus/index.ts +778 -93
- package/src/sdk/bus/lifecycle-control-runtime.ts +91 -33
- package/src/sdk/bus/natives-augment.d.ts +26 -1
- package/src/sdk/bus/notification-service.ts +168 -20
- package/src/sdk/bus/rate-limit-pool.ts +58 -14
- package/src/sdk/bus/recent-activity.ts +188 -74
- package/src/sdk/bus/rich-document.ts +258 -0
- package/src/sdk/bus/rich-render.ts +62 -70
- package/src/sdk/bus/telegram-daemon-cli.ts +15 -59
- package/src/sdk/bus/telegram-daemon-contract.ts +9 -4
- package/src/sdk/bus/telegram-daemon.ts +1389 -237
- package/src/sdk/bus/threaded-inbound.ts +8 -3
- package/src/sdk/bus/threaded-render.ts +57 -1
- package/src/sdk/bus/topic-registry.ts +120 -13
- package/src/sdk/host/control/dispatch.ts +14 -2
- package/src/sdk/host/control/operations.ts +6 -1
- package/src/sdk/host/host.ts +31 -1
- package/src/sdk/host/query/handlers.ts +20 -22
- package/src/sdk/host/query/revision-store.ts +80 -57
- package/src/sdk/index.ts +1 -0
- package/src/sdk/protocol/operation-inventory.generated.json +943 -1907
- package/src/sdk/session-directory.ts +141 -0
- package/src/sdk/session.ts +458 -479
- package/src/session/agent-session.ts +1700 -583
- package/src/session/agent-storage.ts +18 -0
- package/src/session/cache-economics.ts +25 -8
- package/src/session/fallback-chain-controller.ts +53 -3
- package/src/session/internal/managed-session-scope.ts +2226 -0
- package/src/session/internal/managed-session-storage.ts +453 -0
- package/src/session/messages.ts +91 -2
- package/src/session/session-manager-internal.ts +33 -0
- package/src/session/session-manager.ts +1112 -333
- package/src/session/session-storage.ts +444 -39
- package/src/session/volatile-context-pruning.ts +78 -0
- package/src/setup/credential-auto-import.ts +2 -1
- package/src/setup/hermes/templates/operator-instructions.v1.md +1 -1
- package/src/setup/provider-onboarding.ts +36 -61
- package/src/setup/provider-presets.json +5 -0
- package/src/skill-state/active-state.ts +3 -13
- package/src/skill-state/{deep-interview-mutation-guard.ts → workflow-mutation-guard.ts} +47 -29
- package/src/skill-state/workflow-state-contract.ts +6 -41
- package/src/slash-commands/builtin-registry.ts +46 -11
- package/src/system-prompt.ts +37 -44
- package/src/task/agents.ts +19 -1
- package/src/task/executor.ts +90 -6
- package/src/task/index.ts +36 -21
- package/src/thinking.ts +21 -6
- package/src/tool-discovery/tool-index.ts +2 -134
- package/src/tools/ask.ts +157 -21
- package/src/tools/ast-edit.ts +1 -1
- package/src/tools/bash.ts +38 -0
- package/src/tools/browser/dead-tab-recovery.ts +78 -0
- package/src/tools/browser/tab-supervisor.ts +282 -36
- package/src/tools/computer.ts +10 -3
- package/src/tools/cron.ts +30 -16
- package/src/tools/eval.ts +1 -2
- package/src/tools/fetch.ts +11 -4
- package/src/tools/index.ts +76 -24
- package/src/tools/output-meta.ts +13 -5
- package/src/tools/read.ts +37 -1
- package/src/tools/resource-gc.ts +2 -2
- package/src/tools/search-tool-bm25.ts +11 -74
- package/src/utils/event-bus.ts +9 -4
- package/src/web/search/index.ts +3 -3
- package/dist/types/discovery/plugin-dir-roots.d.ts +0 -15
- package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +0 -7
- package/src/discovery/plugin-dir-roots.ts +0 -28
- package/src/runtime-mcp/discoverable-tool-metadata.ts +0 -25
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { CompactionOutcome } from "@gajae-code/agent-core/compaction";
|
|
2
|
+
import { Container, type KeyId } from "@gajae-code/tui";
|
|
3
|
+
import { type PlanApprovalDetails } from "../../plan-mode/approved-plan";
|
|
4
|
+
import type { AgentSession } from "../../session/agent-session";
|
|
5
|
+
import type { SessionContext, SessionManager } from "../../session/session-manager";
|
|
6
|
+
import { type PlanPreviewOptions, type PlanPreviewResult } from "../components/plan-preview-overlay";
|
|
7
|
+
import type { SubmittedUserInput } from "../types";
|
|
8
|
+
import type { ModeGate } from "./mode-gate";
|
|
9
|
+
type PlanModeControllerContext = {
|
|
10
|
+
readonly session: AgentSession;
|
|
11
|
+
readonly sessionManager: SessionManager;
|
|
12
|
+
readonly modeGate: ModeGate;
|
|
13
|
+
readonly chatContainer: Container;
|
|
14
|
+
readonly inputCallback: ((input: SubmittedUserInput) => void) | undefined;
|
|
15
|
+
readonly externalEditorKey: string | undefined;
|
|
16
|
+
readonly externalEditorKeys: readonly KeyId[];
|
|
17
|
+
startPendingSubmission(input: {
|
|
18
|
+
text: string;
|
|
19
|
+
}): SubmittedUserInput;
|
|
20
|
+
addChatChild(child: Container): void;
|
|
21
|
+
requestRender(full?: boolean): void;
|
|
22
|
+
stopUi(): void;
|
|
23
|
+
startUi(): void;
|
|
24
|
+
showStatus(message: string): void;
|
|
25
|
+
showWarning(message: string): void;
|
|
26
|
+
showError(message: string): void;
|
|
27
|
+
showHookConfirm(title: string, message: string): Promise<boolean>;
|
|
28
|
+
showPlanPreview(content: string | null, options?: PlanPreviewOptions): Promise<PlanPreviewResult>;
|
|
29
|
+
flushCompactionQueue(options?: {
|
|
30
|
+
willRetry?: boolean;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
updatePlanModeStatus(status: {
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
paused: boolean;
|
|
35
|
+
} | undefined): void;
|
|
36
|
+
handleClearCommand(): Promise<boolean>;
|
|
37
|
+
handleCompactCommand(instructions?: string): Promise<CompactionOutcome>;
|
|
38
|
+
updateEditorChrome(): void;
|
|
39
|
+
};
|
|
40
|
+
/** Owns plan-mode state, model scope, plan review, approval, and restoration. */
|
|
41
|
+
export declare class PlanModeController {
|
|
42
|
+
#private;
|
|
43
|
+
private readonly ctx;
|
|
44
|
+
constructor(ctx: PlanModeControllerContext);
|
|
45
|
+
get enabled(): boolean;
|
|
46
|
+
get paused(): boolean;
|
|
47
|
+
get planFilePath(): string | undefined;
|
|
48
|
+
setEnabledForCompatibility(enabled: boolean): void;
|
|
49
|
+
setPausedForCompatibility(paused: boolean): void;
|
|
50
|
+
setPlanFilePathForCompatibility(planFilePath: string | undefined): void;
|
|
51
|
+
clearReview(): void;
|
|
52
|
+
restoreFromSession(sessionContext: SessionContext): Promise<void>;
|
|
53
|
+
enter(options?: {
|
|
54
|
+
planFilePath?: string;
|
|
55
|
+
workflow?: "parallel" | "iterative";
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
exit(options?: {
|
|
58
|
+
silent?: boolean;
|
|
59
|
+
paused?: boolean;
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
flushPendingModelSwitch(): Promise<void>;
|
|
62
|
+
handleCommand(initialPrompt?: string): Promise<void>;
|
|
63
|
+
handleApproval(details: PlanApprovalDetails): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Component } from "@gajae-code/tui";
|
|
1
|
+
import type { Component, SlashCommand } from "@gajae-code/tui";
|
|
2
2
|
import type { ModelProfileConfig } from "../../config/models-config-schema";
|
|
3
3
|
import { type Settings } from "../../config/settings";
|
|
4
4
|
import type { InteractiveModeContext, OAuthSelectorOptions } from "../../modes/types";
|
|
@@ -8,10 +8,14 @@ import { buildNotificationStatusReport, checkNotificationHealth, recoverNotifica
|
|
|
8
8
|
import { ensureTelegramDaemonRunningDetailed, unregisterNotificationRoot } from "../../sdk/bus/telegram-daemon";
|
|
9
9
|
import { runTelegramSetup } from "../../sdk/bus/telegram-setup";
|
|
10
10
|
import { type CredentialAutoImportStateStore } from "../../setup/credential-auto-import";
|
|
11
|
+
import { type CommandPaletteAction } from "../components/command-palette";
|
|
11
12
|
import type { NotificationsEditorOperations } from "../components/notifications-settings-editor";
|
|
12
|
-
import type
|
|
13
|
+
import { type PlanPreviewOptions, type PlanPreviewResult } from "../components/plan-preview-overlay";
|
|
14
|
+
import type { StatusLineSettings } from "../components/tool-status-header";
|
|
13
15
|
import type { JobsObserver } from "../jobs-observer";
|
|
14
16
|
import type { SessionObserverRegistry } from "../session-observer-registry";
|
|
17
|
+
import type { TasksAggregator } from "../tasks-aggregator";
|
|
18
|
+
import type { TranscriptItemRegistry } from "../transcript-item-registry";
|
|
15
19
|
/**
|
|
16
20
|
* Snapshot the persisted status-line settings that the status-line component
|
|
17
21
|
* cares about. Preview, cancel-restore, and commit paths all share this so the
|
|
@@ -48,7 +52,10 @@ export declare function createNotificationsEditorOperations(ctx: NotificationsEd
|
|
|
48
52
|
export declare class SelectorController {
|
|
49
53
|
#private;
|
|
50
54
|
private ctx;
|
|
51
|
-
|
|
55
|
+
private readonly clipboard;
|
|
56
|
+
constructor(ctx: InteractiveModeContext, credentialAutoImportStateStore?: CredentialAutoImportStateStore, clipboard?: (text: string) => void);
|
|
57
|
+
isTranscriptViewerOpen(): boolean;
|
|
58
|
+
refreshTranscriptViewer(identityMap?: ReadonlyMap<string, string>): void;
|
|
52
59
|
/**
|
|
53
60
|
* Shows a selector component in place of the editor.
|
|
54
61
|
* @param create Factory that receives a `done` callback and returns the component and focus target
|
|
@@ -57,6 +64,7 @@ export declare class SelectorController {
|
|
|
57
64
|
component: Component;
|
|
58
65
|
focus: Component;
|
|
59
66
|
}): void;
|
|
67
|
+
showCommandPalette(commands: SlashCommand[], actions: CommandPaletteAction[], executeSlashCommand: (name: string) => Promise<void>): void;
|
|
60
68
|
showProviderOnboarding(): void;
|
|
61
69
|
showCustomModelPresetWizard(snapshot: ModelProfileConfig): void;
|
|
62
70
|
showCustomProviderWizard(): void;
|
|
@@ -92,6 +100,9 @@ export declare class SelectorController {
|
|
|
92
100
|
showOAuthSelector(mode: "login" | "logout", providerId?: string, options?: OAuthSelectorOptions): Promise<void>;
|
|
93
101
|
showDebugSelector(): void;
|
|
94
102
|
showSessionObserver(registry: SessionObserverRegistry): void;
|
|
103
|
+
showSessionsDashboard(): Promise<void>;
|
|
104
|
+
showTranscriptViewer(registry: TranscriptItemRegistry): void;
|
|
105
|
+
showPlanPreview(content: string | null, options?: PlanPreviewOptions): Promise<PlanPreviewResult>;
|
|
95
106
|
/**
|
|
96
107
|
* Jobs overlay: navigate ongoing monitor + cron jobs (Monitors then Crons,
|
|
97
108
|
* newest-first), drill into per-type detail, and cancel/delete with a y/N
|
|
@@ -99,4 +110,5 @@ export declare class SelectorController {
|
|
|
99
110
|
* stays on the active SelectList.
|
|
100
111
|
*/
|
|
101
112
|
showJobsOverlay(observer: JobsObserver): void;
|
|
113
|
+
showTasksPane(aggregator: TasksAggregator): void;
|
|
102
114
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
interface SttEditor {
|
|
2
|
+
cursorOverride: string | undefined;
|
|
3
|
+
cursorOverrideWidth: number | undefined;
|
|
4
|
+
getUseTerminalCursor(): boolean;
|
|
5
|
+
insertText(text: string): void;
|
|
6
|
+
setUseTerminalCursor(enabled: boolean): void;
|
|
7
|
+
}
|
|
8
|
+
interface SttUi {
|
|
9
|
+
getShowHardwareCursor(): boolean;
|
|
10
|
+
requestRender(): void;
|
|
11
|
+
setShowHardwareCursor(enabled: boolean): void;
|
|
12
|
+
}
|
|
13
|
+
export interface SttModeContext {
|
|
14
|
+
editor: SttEditor;
|
|
15
|
+
showStatus(message: string): void;
|
|
16
|
+
showWarning(message: string): void;
|
|
17
|
+
ui: SttUi;
|
|
18
|
+
updateEditorChrome(): void;
|
|
19
|
+
}
|
|
20
|
+
/** Coordinates STT state with the interactive composer presentation. */
|
|
21
|
+
export declare class SttModeController {
|
|
22
|
+
#private;
|
|
23
|
+
toggle(ctx: SttModeContext): Promise<void>;
|
|
24
|
+
dispose(ctx: Pick<SttModeContext, "editor" | "ui">): void;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { type Agent, type AgentMessage } from "@gajae-code/agent-core";
|
|
2
2
|
import type { CompactionOutcome } from "@gajae-code/agent-core/compaction";
|
|
3
|
-
import {
|
|
4
|
-
import type { Component, EditorTheme } from "@gajae-code/tui";
|
|
3
|
+
import type { AssistantMessage, ImageContent, Message, UsageReport } from "@gajae-code/ai";
|
|
4
|
+
import type { Component, EditorTheme, SlashCommand } from "@gajae-code/tui";
|
|
5
5
|
import { Container, Loader, Spacer, Text, TUI } from "@gajae-code/tui";
|
|
6
6
|
import { KeybindingsManager } from "../config/keybindings";
|
|
7
7
|
import { type Settings } from "../config/settings";
|
|
8
8
|
import type { ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetContent, ExtensionWidgetOptions } from "../extensibility/extensions";
|
|
9
9
|
import type { CompactOptions } from "../extensibility/extensions/types";
|
|
10
10
|
import { type Skill } from "../extensibility/skills";
|
|
11
|
-
import { type PlanApprovalDetails } from "../plan-mode/approved-plan";
|
|
12
11
|
import type { NotificationSessionReconcileResult, NotificationSessionStatus } from "../sdk/bus/session-control";
|
|
13
12
|
import type { AgentSession, AgentSessionEvent } from "../session/agent-session";
|
|
14
13
|
import { HistoryStorage } from "../session/history-storage";
|
|
@@ -17,19 +16,22 @@ import type { LspStartupServerInfo } from "../tools";
|
|
|
17
16
|
import type { EventBus } from "../utils/event-bus";
|
|
18
17
|
import type { AssistantMessageComponent } from "./components/assistant-message";
|
|
19
18
|
import type { BashExecutionComponent } from "./components/bash-execution";
|
|
19
|
+
import type { CommandPaletteAction } from "./components/command-palette";
|
|
20
20
|
import { CustomEditor } from "./components/custom-editor";
|
|
21
21
|
import type { EvalExecutionComponent } from "./components/eval-execution";
|
|
22
22
|
import { GajaePetWidget, type PetMode } from "./components/gajae-pet-widget";
|
|
23
23
|
import type { HookEditorComponent } from "./components/hook-editor";
|
|
24
24
|
import type { HookInputComponent } from "./components/hook-input";
|
|
25
25
|
import type { HookSelectorComponent } from "./components/hook-selector";
|
|
26
|
-
import { StatusLineComponent } from "./components/status-line";
|
|
27
26
|
import type { ToolExecutionHandle } from "./components/tool-execution";
|
|
27
|
+
import { StatusLineComponent } from "./components/tool-status-header";
|
|
28
28
|
import { type WelcomeLogoMode } from "./components/welcome";
|
|
29
|
+
import { GoalModeController } from "./controllers/goal-mode-controller";
|
|
30
|
+
import { PlanModeController } from "./controllers/plan-mode-controller";
|
|
29
31
|
import { IrcObservationLedger } from "./irc-observation-ledger";
|
|
30
32
|
import { OAuthManualInputManager } from "./oauth-manual-input";
|
|
31
33
|
import type { Theme } from "./theme/theme";
|
|
32
|
-
import type
|
|
34
|
+
import { type CompactionQueuedMessage, type ComposerSubmissionOptions, type InteractiveModeContext, type IrcArrivalSnapshot, type SubmittedUserInput, type TodoItem, type TodoPhase, type TranscriptRebuildPolicy } from "./types";
|
|
33
35
|
import type { ParsedIrcMessage } from "./utils/irc-message";
|
|
34
36
|
export declare const DEFAULT_COMPOSER_PLACEHOLDER: string;
|
|
35
37
|
export declare function getWelcomeTranscriptReservedRows(chatContainer: Container, width: number): number;
|
|
@@ -76,11 +78,6 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
76
78
|
isBashNoContext: boolean;
|
|
77
79
|
toolOutputExpanded: boolean;
|
|
78
80
|
todoExpanded: boolean;
|
|
79
|
-
planModeEnabled: boolean;
|
|
80
|
-
planModePaused: boolean;
|
|
81
|
-
goalModeEnabled: boolean;
|
|
82
|
-
goalModePaused: boolean;
|
|
83
|
-
planModePlanFilePath: string | undefined;
|
|
84
81
|
todoPhases: TodoPhase[];
|
|
85
82
|
hideThinkingBlock: boolean;
|
|
86
83
|
pendingImages: ImageContent[];
|
|
@@ -119,10 +116,14 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
119
116
|
oauthManualInput: OAuthManualInputManager;
|
|
120
117
|
readonly lspServers: LspStartupServerInfo[] | undefined;
|
|
121
118
|
mcpManager?: import("../runtime-mcp").MCPManager;
|
|
119
|
+
/** Direct controller capabilities for consumers that coordinate mode transitions. */
|
|
120
|
+
get planModeController(): PlanModeController;
|
|
121
|
+
get goalModeController(): GoalModeController;
|
|
122
122
|
constructor(session: AgentSession, version: string, changelogMarkdown?: string | undefined, setToolUIContext?: (uiContext: ExtensionUIContext, hasUI: boolean) => void, lspServers?: LspStartupServerInfo[] | undefined, mcpManager?: import("../runtime-mcp").MCPManager, eventBus?: EventBus);
|
|
123
123
|
getCurrentSessionNotificationStatus(): NotificationSessionStatus | undefined;
|
|
124
124
|
setCurrentSessionNotificationsEnabled(enabled: boolean): Promise<NotificationSessionReconcileResult | undefined>;
|
|
125
125
|
init(): Promise<void>;
|
|
126
|
+
getSlashCommands(): readonly SlashCommand[];
|
|
126
127
|
/** Reload slash commands and autocomplete for the provided working directory. */
|
|
127
128
|
refreshSlashCommandState(cwd?: string): Promise<void>;
|
|
128
129
|
getUserInput(): Promise<SubmittedUserInput>;
|
|
@@ -135,7 +136,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
135
136
|
images?: ImageContent[];
|
|
136
137
|
customType?: string;
|
|
137
138
|
display?: boolean;
|
|
138
|
-
}): SubmittedUserInput;
|
|
139
|
+
}, options?: ComposerSubmissionOptions): SubmittedUserInput;
|
|
139
140
|
cancelPendingSubmission(): boolean;
|
|
140
141
|
markPendingSubmissionStarted(input: SubmittedUserInput): boolean;
|
|
141
142
|
finishPendingSubmission(input: SubmittedUserInput): void;
|
|
@@ -147,11 +148,6 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
147
148
|
commitPetPreviewMode(mode: PetMode): boolean;
|
|
148
149
|
restoreComposer(): void;
|
|
149
150
|
rebuildChatFromMessages(policy: TranscriptRebuildPolicy): void;
|
|
150
|
-
/** Apply any deferred model switch after the current stream ends. */
|
|
151
|
-
flushPendingModelSwitch(): Promise<void>;
|
|
152
|
-
handlePlanModeCommand(initialPrompt?: string): Promise<void>;
|
|
153
|
-
handleGoalModeCommand(rest?: string): Promise<void>;
|
|
154
|
-
handlePlanApproval(details: PlanApprovalDetails): Promise<void>;
|
|
155
151
|
stop(): void;
|
|
156
152
|
shutdown(): Promise<void>;
|
|
157
153
|
checkShutdownRequested(): Promise<void>;
|
|
@@ -171,7 +167,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
171
167
|
showNewVersionNotification(newVersion: string): void;
|
|
172
168
|
clearEditor(): void;
|
|
173
169
|
updatePendingMessagesDisplay(): void;
|
|
174
|
-
queueCompactionMessage(text: string, mode: "steer" | "followUp"): void;
|
|
170
|
+
queueCompactionMessage(text: string, mode: "steer" | "followUp", options?: ComposerSubmissionOptions): void;
|
|
175
171
|
flushCompactionQueue(options?: {
|
|
176
172
|
willRetry?: boolean;
|
|
177
173
|
}): Promise<void>;
|
|
@@ -221,7 +217,12 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
221
217
|
handleSTTToggle(): Promise<void>;
|
|
222
218
|
showDebugSelector(): void;
|
|
223
219
|
showSessionObserver(): void;
|
|
220
|
+
showSessionsDashboard(): void;
|
|
221
|
+
isTranscriptViewerOpen(): boolean;
|
|
222
|
+
refreshTranscriptViewer(): void;
|
|
223
|
+
showTranscriptViewer(): void;
|
|
224
224
|
showJobsOverlay(): void;
|
|
225
|
+
showTasksPane(): void;
|
|
225
226
|
resetObserverRegistry(): void;
|
|
226
227
|
handleBashCommand(command: string, excludeFromContext?: boolean): Promise<void>;
|
|
227
228
|
handlePythonCommand(code: string, excludeFromContext?: boolean): Promise<void>;
|
|
@@ -232,6 +233,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
232
233
|
handleContributionPrepCommand(customInstructions?: string): Promise<void>;
|
|
233
234
|
executeCompaction(customInstructionsOrOptions?: string | CompactOptions, isAuto?: boolean): Promise<CompactionOutcome>;
|
|
234
235
|
openInBrowser(urlOrPath: string): void;
|
|
236
|
+
showCommandPalette(commands: SlashCommand[], actions: CommandPaletteAction[], executeSlashCommand: (name: string) => Promise<void>): void;
|
|
235
237
|
showSettingsSelector(): void;
|
|
236
238
|
showThemeSelector(): void;
|
|
237
239
|
showPetSelector(): void;
|
|
@@ -10,17 +10,8 @@
|
|
|
10
10
|
* This is the pure mapping primitive used by SDK-native workflow gate emitters.
|
|
11
11
|
*/
|
|
12
12
|
import type { OpenGateInput } from "./workflow-gate-broker";
|
|
13
|
-
import type
|
|
14
|
-
|
|
15
|
-
export declare const GATE_OTHER_OPTION = "Other (type your own)";
|
|
16
|
-
/** Optional structured deep-interview round metadata supplied by the agent. */
|
|
17
|
-
export interface AskGateDeepInterviewState {
|
|
18
|
-
round_id?: string;
|
|
19
|
-
round: number;
|
|
20
|
-
component: string;
|
|
21
|
-
dimension: string;
|
|
22
|
-
ambiguity: number;
|
|
23
|
-
}
|
|
13
|
+
import { type AskGateDeepInterviewState, type WorkflowGateKind, type WorkflowStage } from "./workflow-gate-types";
|
|
14
|
+
export { type AskGateDeepInterviewState, buildAskGateAnswerSchema, GATE_OTHER_OPTION, validateAskGateStageState, } from "./workflow-gate-types";
|
|
24
15
|
export interface AskGateWorkflowGateMeta {
|
|
25
16
|
stage: WorkflowStage;
|
|
26
17
|
kind: WorkflowGateKind;
|
|
@@ -81,6 +72,8 @@ export declare class DeepInterviewGateError extends Error {
|
|
|
81
72
|
readonly code: "invalid_answer_shape" | "unknown_option" | "multi_not_allowed" | "missing_custom" | "missing_clarification" | "empty_selection" | "duplicate_selection";
|
|
82
73
|
constructor(code: "invalid_answer_shape" | "unknown_option" | "multi_not_allowed" | "missing_custom" | "missing_clarification" | "empty_selection" | "duplicate_selection", message: string);
|
|
83
74
|
}
|
|
75
|
+
/** Build and validate exact producer-compatible `stage_state` metadata for one ask question. */
|
|
76
|
+
export declare function buildAskGateStageState(question: AskGateQuestion, labels: string[]): Record<string, unknown>;
|
|
84
77
|
/** Build the `workflow_gate` open-input for one ask question. */
|
|
85
78
|
export declare function questionToGate(question: AskGateQuestion): OpenGateInput;
|
|
86
79
|
/**
|
|
@@ -73,6 +73,10 @@ export interface WorkflowGateEmitter {
|
|
|
73
73
|
setAckRecoveryParticipant?(participant: AskSelectedAckRecoveryParticipant | null): void;
|
|
74
74
|
/** Explicit host hook for same-process accepted-but-unadvanced recovery. */
|
|
75
75
|
recoverAcceptedGates?(): Promise<string[]>;
|
|
76
|
+
/** Reads a durable completed resolution before any presentation claim. */
|
|
77
|
+
lookupCompletedResolution?(response: WorkflowGateResponse): WorkflowGateCompletedResolutionLookup;
|
|
78
|
+
/** Supplies the active runtime turn captured immediately before a gate is opened. */
|
|
79
|
+
setRuntimeTurnProvider?(provider: (() => string | undefined) | null): void;
|
|
76
80
|
/** Permanently revoke all in-process continuation authority and reject their waiters. */
|
|
77
81
|
fence?(): void;
|
|
78
82
|
/** Temporarily make this emitter unavailable while a session transition is reversible. */
|
|
@@ -90,9 +94,11 @@ export declare class BrokerWorkflowGateEmitter implements WorkflowGateEmitter {
|
|
|
90
94
|
#private;
|
|
91
95
|
constructor(runId: string, store: GateStore, emitterHooks?: Pick<BrokerHooks, "advance">);
|
|
92
96
|
isUnattended(): boolean;
|
|
97
|
+
setRuntimeTurnProvider(provider: (() => string | undefined) | null): void;
|
|
93
98
|
emitGate(input: OpenGateInput): Promise<unknown>;
|
|
94
99
|
onGateEmitted(listener: (gate: WorkflowGate) => void): () => void;
|
|
95
100
|
resolveGate(response: WorkflowGateResponse): Promise<WorkflowGateResolution>;
|
|
101
|
+
lookupCompletedResolution(response: WorkflowGateResponse): WorkflowGateCompletedResolutionLookup;
|
|
96
102
|
prepareTerminalization(gateId: string, proof: WorkflowGateTerminalProof): boolean;
|
|
97
103
|
clearPreparedTerminalization(gateId: string): void;
|
|
98
104
|
listPendingGates(): WorkflowGate[];
|
|
@@ -235,10 +241,21 @@ export interface OpenGateInput {
|
|
|
235
241
|
context?: WorkflowGateContext;
|
|
236
242
|
/** Optional diagnostic gate replaced by this newly persisted gate. */
|
|
237
243
|
supersedesGateId?: string;
|
|
244
|
+
/** Optional immutable runtime turn captured by the emitter before broker persistence. */
|
|
245
|
+
runtimeTurnId?: string;
|
|
238
246
|
}
|
|
247
|
+
/** Durable resolution state used to safely replay direct control after presentation retirement. */
|
|
248
|
+
export type WorkflowGateCompletedResolutionLookup = {
|
|
249
|
+
kind: "none";
|
|
250
|
+
} | {
|
|
251
|
+
kind: "completed";
|
|
252
|
+
resolution: WorkflowGateResolution;
|
|
253
|
+
} | {
|
|
254
|
+
kind: "accepted_incomplete";
|
|
255
|
+
};
|
|
239
256
|
export declare class WorkflowGateBrokerError extends Error {
|
|
240
|
-
readonly code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage";
|
|
241
|
-
constructor(code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage", message: string);
|
|
257
|
+
readonly code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage" | "invalid_runtime_turn";
|
|
258
|
+
constructor(code: "unknown_gate" | "already_resolved" | "idempotency_conflict" | "invalid_workflow_stage" | "invalid_runtime_turn", message: string);
|
|
242
259
|
}
|
|
243
260
|
export declare class WorkflowGateBroker {
|
|
244
261
|
#private;
|
|
@@ -254,6 +271,7 @@ export declare class WorkflowGateBroker {
|
|
|
254
271
|
classifyDisposition(gateId: string, answer: unknown): PersistedSemanticDisposition;
|
|
255
272
|
validationError(gateId: string, keyword: string, message: string): WorkflowGateValidationError;
|
|
256
273
|
updateAckPolicy(gateId: string, ackPolicy: PersistedAckPolicy): void;
|
|
274
|
+
lookupCompletedResolution(response: WorkflowGateResponse): WorkflowGateCompletedResolutionLookup;
|
|
257
275
|
private runShort;
|
|
258
276
|
private hasLiveContinuation;
|
|
259
277
|
hasRecoverableAcceptedGate(): boolean;
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
/** Transport-neutral workflow gate contract used by SDK workflow coordination. */
|
|
2
2
|
/** Lifecycle stages that emit machine-addressable SDK workflow gates. */
|
|
3
3
|
export type WorkflowStage = "deep-interview" | "ralplan" | "ultragoal";
|
|
4
|
+
/** Lifecycle stages included in the v1 workflow-gate contract. */
|
|
5
|
+
export declare const WORKFLOW_GATE_V1_STAGES: readonly WorkflowStage[];
|
|
4
6
|
/** Reserved stage names that are explicitly not part of the v1 contract. */
|
|
5
7
|
export declare const RESERVED_WORKFLOW_STAGES: readonly string[];
|
|
6
8
|
export type WorkflowGateKind = "question" | "approval" | "execution";
|
|
9
|
+
/** "Other (type your own)" sentinel, mirroring the interactive ask tool. */
|
|
10
|
+
export declare const GATE_OTHER_OPTION = "Other (type your own)";
|
|
11
|
+
export interface AskGateDeepInterviewState {
|
|
12
|
+
round_id?: string;
|
|
13
|
+
round: number;
|
|
14
|
+
component: string;
|
|
15
|
+
dimension: string;
|
|
16
|
+
ambiguity: number;
|
|
17
|
+
}
|
|
18
|
+
export interface AskGateStageStateInput {
|
|
19
|
+
id: string;
|
|
20
|
+
multi?: boolean;
|
|
21
|
+
allowEmpty?: boolean;
|
|
22
|
+
navigationLabel?: "Next" | "Done";
|
|
23
|
+
deepInterview?: AskGateDeepInterviewState;
|
|
24
|
+
fallbackState?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export interface AskGateSchemaInput {
|
|
27
|
+
multi?: boolean;
|
|
28
|
+
allowEmpty?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** Rejects stage state that is not exactly compatible with the generic ask-gate producer. */
|
|
31
|
+
export declare function validateAskGateStageState(value: unknown): asserts value is Record<string, unknown>;
|
|
32
|
+
/** Builds the canonical generic ask answer schema. */
|
|
33
|
+
export declare function buildAskGateAnswerSchema(question: AskGateSchemaInput, labels: string[]): JsonSchema;
|
|
34
|
+
/** Builds and validates exact generic ask stage-state metadata. */
|
|
35
|
+
export declare function buildAskGateStageState(input: AskGateStageStateInput, labels: string[]): Record<string, unknown>;
|
|
7
36
|
/** The documented JSON Schema 2020-12 subset supported by the gate validator. */
|
|
8
37
|
export interface JsonSchema {
|
|
9
38
|
type?: "string" | "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
@@ -57,6 +86,8 @@ export interface WorkflowGate {
|
|
|
57
86
|
context: WorkflowGateContext;
|
|
58
87
|
created_at: string;
|
|
59
88
|
required: true;
|
|
89
|
+
/** Immutable runtime turn correlation captured before durable gate visibility. */
|
|
90
|
+
runtime_turn_id?: string;
|
|
60
91
|
}
|
|
61
92
|
/** Non-actionable durable-gate state retained for restart diagnostics. */
|
|
62
93
|
export interface WorkflowGateLifecycle {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { AsyncJob, AsyncJobManager, SubagentRecord } from "../async/job-manager";
|
|
2
|
+
import type { CronJobView, JobsObserver } from "./jobs-observer";
|
|
3
|
+
import type { ObservableSession, SessionObserverRegistry } from "./session-observer-registry";
|
|
4
|
+
export type TaskStatus = "running" | "waiting" | "done" | "failed" | "cancelled";
|
|
5
|
+
export type TaskKind = "bash" | "subagent" | "cron";
|
|
6
|
+
export interface TaskRow {
|
|
7
|
+
id: string;
|
|
8
|
+
kind: TaskKind;
|
|
9
|
+
label: string;
|
|
10
|
+
status: TaskStatus;
|
|
11
|
+
startedAt: number;
|
|
12
|
+
resumable?: boolean;
|
|
13
|
+
monitorOutputLines?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface TasksSnapshot {
|
|
16
|
+
rows: TaskRow[];
|
|
17
|
+
worstState: TaskStatus | "none";
|
|
18
|
+
failedUnacknowledged: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const EMPTY_TASKS_SNAPSHOT: TasksSnapshot;
|
|
21
|
+
export declare function mapAsyncJobStatus(status: AsyncJob["status"]): TaskStatus;
|
|
22
|
+
export declare function mapSessionStatus(status: ObservableSession["status"]): TaskStatus;
|
|
23
|
+
export declare function mapSubagentStatus(status: SubagentRecord["status"]): TaskStatus;
|
|
24
|
+
export declare function mapCronStatus(cron: Pick<CronJobView, "firing">): TaskStatus;
|
|
25
|
+
/** Joins manager jobs, monitor/cron views, and live session metadata. Stable
|
|
26
|
+
* subagent records are canonical for lifecycle state; the registry contributes
|
|
27
|
+
* only the current display label and timestamp. */
|
|
28
|
+
export declare class TasksAggregator {
|
|
29
|
+
#private;
|
|
30
|
+
readonly manager: AsyncJobManager;
|
|
31
|
+
readonly jobsObserver: JobsObserver;
|
|
32
|
+
readonly sessions: SessionObserverRegistry;
|
|
33
|
+
readonly ownerId?: string | undefined;
|
|
34
|
+
constructor(manager: AsyncJobManager, jobsObserver: JobsObserver, sessions: SessionObserverRegistry, ownerId?: string | undefined);
|
|
35
|
+
onChange(cb: () => void): () => void;
|
|
36
|
+
getSnapshot(): TasksSnapshot;
|
|
37
|
+
acknowledgeFailures(): void;
|
|
38
|
+
dispose(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export type TranscriptItemKind = "user" | "assistant-text" | "assistant-thinking" | "tool" | "read-group" | "custom";
|
|
2
|
+
export type TranscriptItemCapabilities = {
|
|
3
|
+
copyable: boolean;
|
|
4
|
+
foldable: boolean;
|
|
5
|
+
rawViewable: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type TranscriptSourcePayload = {
|
|
8
|
+
text: string;
|
|
9
|
+
metadata: Readonly<Record<string, unknown>>;
|
|
10
|
+
source: unknown;
|
|
11
|
+
};
|
|
12
|
+
export type TranscriptItem = {
|
|
13
|
+
id: string;
|
|
14
|
+
kind: TranscriptItemKind;
|
|
15
|
+
source: unknown;
|
|
16
|
+
getPayload?: (source: unknown) => TranscriptSourcePayload;
|
|
17
|
+
capabilities?: Partial<TranscriptItemCapabilities>;
|
|
18
|
+
};
|
|
19
|
+
export type RegisterTranscriptItem = Omit<TranscriptItem, "id"> & {
|
|
20
|
+
id?: string;
|
|
21
|
+
};
|
|
22
|
+
export type StreamingItemOptions = Omit<RegisterTranscriptItem, "id" | "kind"> & {
|
|
23
|
+
promptGeneration: number | string;
|
|
24
|
+
messageOrdinal: number;
|
|
25
|
+
kind?: "assistant-text" | "assistant-thinking";
|
|
26
|
+
};
|
|
27
|
+
/** Stable transcript identities shared by the inline and overlay projections. */
|
|
28
|
+
export declare const transcriptItemId: {
|
|
29
|
+
entry: (entryId: string) => string;
|
|
30
|
+
assistantContent: (entryId: string, contentIndex: number) => string;
|
|
31
|
+
tool: (toolCallId: string) => string;
|
|
32
|
+
readGroup: (groupId: string) => string;
|
|
33
|
+
custom: (customId: string) => string;
|
|
34
|
+
stream: (promptGeneration: number | string, messageOrdinal: number) => string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* A session-local index of transcript projection items. It deliberately stores only
|
|
38
|
+
* structural sources, allowing interactive mode to supply live streaming objects
|
|
39
|
+
* and persisted session records without importing either implementation here.
|
|
40
|
+
*/
|
|
41
|
+
export declare class TranscriptItemRegistry {
|
|
42
|
+
#private;
|
|
43
|
+
get sessionId(): string | undefined;
|
|
44
|
+
/** Ordered snapshot for read-only transcript projections. */
|
|
45
|
+
items(): readonly TranscriptItem[];
|
|
46
|
+
register(item: RegisterTranscriptItem): string;
|
|
47
|
+
replace(id: string, item: Omit<TranscriptItem, "id">): boolean;
|
|
48
|
+
startStream(options: StreamingItemOptions): string;
|
|
49
|
+
/** Reconciles one exact live stream with its persisted canonical item. */
|
|
50
|
+
endStream(streamId: string, item: RegisterTranscriptItem): string | undefined;
|
|
51
|
+
retireStream(id: string): boolean;
|
|
52
|
+
coalesceReadGroup(groupId: string, source: unknown, toolCallIds?: readonly string[]): string;
|
|
53
|
+
rebuild(items: readonly RegisterTranscriptItem[]): void;
|
|
54
|
+
evict(id: string): boolean;
|
|
55
|
+
switchSession(sessionId: string): void;
|
|
56
|
+
resolveSourcePayload(id: string): TranscriptSourcePayload | undefined;
|
|
57
|
+
capabilities(id: string): TranscriptItemCapabilities | undefined;
|
|
58
|
+
has(id: string): boolean;
|
|
59
|
+
canonicalId(id: string): string | undefined;
|
|
60
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { AgentMessage } from "@gajae-code/agent-core";
|
|
2
2
|
import type { CompactionOutcome } from "@gajae-code/agent-core/compaction";
|
|
3
3
|
import type { AssistantMessage, ImageContent, Message, UsageReport } from "@gajae-code/ai";
|
|
4
|
-
import type { Component, Container, EditorTheme, Loader, Spacer, Text, TUI } from "@gajae-code/tui";
|
|
4
|
+
import type { Component, Container, EditorTheme, Loader, SlashCommand, Spacer, Text, TUI } from "@gajae-code/tui";
|
|
5
5
|
import type { KeybindingsManager } from "../config/keybindings";
|
|
6
6
|
import type { Settings } from "../config/settings";
|
|
7
7
|
import type { ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetContent, ExtensionWidgetOptions } from "../extensibility/extensions";
|
|
8
8
|
import type { CompactOptions } from "../extensibility/extensions/types";
|
|
9
9
|
import type { Skill } from "../extensibility/skills";
|
|
10
|
-
import type { PlanApprovalDetails } from "../plan-mode/approved-plan";
|
|
11
10
|
import type { MCPManager } from "../runtime-mcp";
|
|
12
11
|
import type { NotificationSessionReconcileResult, NotificationSessionStatus } from "../sdk/bus/session-control";
|
|
13
12
|
import type { AgentSession, AgentSessionEvent } from "../session/agent-session";
|
|
@@ -17,14 +16,15 @@ import type { CredentialAutoImportOptions } from "../setup/credential-auto-impor
|
|
|
17
16
|
import type { LspStartupServerInfo } from "../tools";
|
|
18
17
|
import type { AssistantMessageComponent } from "./components/assistant-message";
|
|
19
18
|
import type { BashExecutionComponent } from "./components/bash-execution";
|
|
19
|
+
import type { CommandPaletteAction } from "./components/command-palette";
|
|
20
20
|
import type { CustomEditor } from "./components/custom-editor";
|
|
21
21
|
import type { EvalExecutionComponent } from "./components/eval-execution";
|
|
22
22
|
import type { PetMode } from "./components/gajae-pet-widget";
|
|
23
23
|
import type { HookEditorComponent } from "./components/hook-editor";
|
|
24
24
|
import type { HookInputComponent } from "./components/hook-input";
|
|
25
25
|
import type { HookSelectorComponent } from "./components/hook-selector";
|
|
26
|
-
import type { StatusLineComponent } from "./components/status-line";
|
|
27
26
|
import type { ToolExecutionHandle } from "./components/tool-execution";
|
|
27
|
+
import type { StatusLineComponent } from "./components/tool-status-header";
|
|
28
28
|
import type { IrcObservationLedger } from "./irc-observation-ledger";
|
|
29
29
|
import type { OAuthManualInputManager } from "./oauth-manual-input";
|
|
30
30
|
import type { Theme } from "./theme/theme";
|
|
@@ -43,6 +43,11 @@ export type SubmittedUserInput = {
|
|
|
43
43
|
cancelled: boolean;
|
|
44
44
|
started: boolean;
|
|
45
45
|
};
|
|
46
|
+
export type ComposerSubmissionOptions = Readonly<{
|
|
47
|
+
ownsComposer: boolean;
|
|
48
|
+
editor: CustomEditor;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function canApplyComposerSubmission(options: ComposerSubmissionOptions | undefined, editor: CustomEditor): boolean;
|
|
46
51
|
export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned";
|
|
47
52
|
export type TodoItem = {
|
|
48
53
|
content: string;
|
|
@@ -92,10 +97,6 @@ export interface InteractiveModeContext {
|
|
|
92
97
|
isBashNoContext: boolean;
|
|
93
98
|
toolOutputExpanded: boolean;
|
|
94
99
|
todoExpanded: boolean;
|
|
95
|
-
planModeEnabled: boolean;
|
|
96
|
-
goalModeEnabled: boolean;
|
|
97
|
-
goalModePaused: boolean;
|
|
98
|
-
planModePlanFilePath?: string;
|
|
99
100
|
hideThinkingBlock: boolean;
|
|
100
101
|
pendingImages: ImageContent[];
|
|
101
102
|
compactionQueuedMessages: CompactionQueuedMessage[];
|
|
@@ -149,12 +150,11 @@ export interface InteractiveModeContext {
|
|
|
149
150
|
showNewVersionNotification(newVersion: string): void;
|
|
150
151
|
clearEditor(): void;
|
|
151
152
|
updatePendingMessagesDisplay(): void;
|
|
152
|
-
queueCompactionMessage(text: string, mode: "steer" | "followUp"): void;
|
|
153
|
+
queueCompactionMessage(text: string, mode: "steer" | "followUp", options?: ComposerSubmissionOptions): void;
|
|
153
154
|
flushCompactionQueue(options?: {
|
|
154
155
|
willRetry?: boolean;
|
|
155
156
|
}): Promise<void>;
|
|
156
157
|
flushPendingBashComponents(): void;
|
|
157
|
-
flushPendingModelSwitch(): Promise<void>;
|
|
158
158
|
setWorkingMessage(message?: string): void;
|
|
159
159
|
applyPendingWorkingMessage(): void;
|
|
160
160
|
ensureLoadingAnimation(): void;
|
|
@@ -178,7 +178,7 @@ export interface InteractiveModeContext {
|
|
|
178
178
|
images?: ImageContent[];
|
|
179
179
|
customType?: string;
|
|
180
180
|
display?: boolean;
|
|
181
|
-
}): SubmittedUserInput;
|
|
181
|
+
}, options?: ComposerSubmissionOptions): SubmittedUserInput;
|
|
182
182
|
cancelPendingSubmission(): boolean;
|
|
183
183
|
markPendingSubmissionStarted(input: SubmittedUserInput): boolean;
|
|
184
184
|
finishPendingSubmission(input: SubmittedUserInput): void;
|
|
@@ -256,7 +256,10 @@ export interface InteractiveModeContext {
|
|
|
256
256
|
handleSTTToggle(): Promise<void>;
|
|
257
257
|
executeCompaction(customInstructionsOrOptions?: string | CompactOptions, isAuto?: boolean): Promise<CompactionOutcome>;
|
|
258
258
|
openInBrowser(urlOrPath: string): void;
|
|
259
|
+
/** Resolved source of truth for slash autocomplete and command palette entries. */
|
|
260
|
+
getSlashCommands?(): readonly SlashCommand[];
|
|
259
261
|
refreshSlashCommandState(cwd?: string): Promise<void>;
|
|
262
|
+
showCommandPalette(commands: SlashCommand[], actions: CommandPaletteAction[], executeSlashCommand: (name: string) => Promise<void>): void;
|
|
260
263
|
showSettingsSelector(): void;
|
|
261
264
|
showThemeSelector(): void;
|
|
262
265
|
showPetSelector(): void;
|
|
@@ -272,6 +275,7 @@ export interface InteractiveModeContext {
|
|
|
272
275
|
showUserMessageSelector(): void;
|
|
273
276
|
showTreeSelector(): void;
|
|
274
277
|
showSessionSelector(): void;
|
|
278
|
+
showSessionsDashboard(): void;
|
|
275
279
|
handleResumeSession(sessionPath: string): Promise<void>;
|
|
276
280
|
handleSessionDeleteCommand(): Promise<void>;
|
|
277
281
|
showOAuthSelector(mode: "login" | "logout", providerId?: string, options?: OAuthSelectorOptions): Promise<void>;
|
|
@@ -279,6 +283,10 @@ export interface InteractiveModeContext {
|
|
|
279
283
|
showDebugSelector(): void;
|
|
280
284
|
showSessionObserver(): void;
|
|
281
285
|
showJobsOverlay(): void;
|
|
286
|
+
showTasksPane(): void;
|
|
287
|
+
showTranscriptViewer(): void;
|
|
288
|
+
isTranscriptViewerOpen(): boolean;
|
|
289
|
+
refreshTranscriptViewer(): void;
|
|
282
290
|
resetObserverRegistry(): void;
|
|
283
291
|
handleCtrlC(): void;
|
|
284
292
|
handleCtrlD(): void;
|
|
@@ -298,11 +306,10 @@ export interface InteractiveModeContext {
|
|
|
298
306
|
toggleThinkingBlockVisibility(): void;
|
|
299
307
|
openExternalEditor(): void;
|
|
300
308
|
registerExtensionShortcuts(): void;
|
|
301
|
-
handlePlanModeCommand(initialPrompt?: string): Promise<void>;
|
|
302
|
-
handleGoalModeCommand(rest?: string): Promise<void>;
|
|
303
|
-
handlePlanApproval(details: PlanApprovalDetails): Promise<void>;
|
|
304
309
|
initHooksAndCustomTools(): Promise<void>;
|
|
305
310
|
emitCustomToolSessionEvent(reason: "start" | "switch" | "branch" | "tree" | "shutdown", previousSessionFile?: string): Promise<void>;
|
|
311
|
+
planModeController: Pick<import("./controllers/plan-mode-controller").PlanModeController, "enabled" | "paused" | "planFilePath" | "handleCommand" | "handleApproval" | "flushPendingModelSwitch">;
|
|
312
|
+
goalModeController: Pick<import("./controllers/goal-mode-controller").GoalModeController, "enabled" | "paused" | "handleCommand">;
|
|
306
313
|
setHookWidget(key: string, content: ExtensionWidgetContent, options?: ExtensionWidgetOptions): void;
|
|
307
314
|
setHookStatus(key: string, text: string | undefined): void;
|
|
308
315
|
showHookSelector(title: string, options: string[], dialogOptions?: ExtensionUIDialogOptions): Promise<string | undefined>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentMessage } from "@gajae-code/agent-core";
|
|
2
2
|
import type { AssistantMessage, Message } from "@gajae-code/ai";
|
|
3
3
|
import { type Component, type TUI } from "@gajae-code/tui";
|
|
4
|
-
import type
|
|
4
|
+
import { type ComposerSubmissionOptions, type InteractiveModeContext, type IrcArrivalSnapshot, type TranscriptRebuildPolicy } from "../../modes/types";
|
|
5
5
|
import { type SessionContext } from "../../session/session-manager";
|
|
6
6
|
import { type ParsedIrcMessage } from "./irc-message";
|
|
7
7
|
export type { TranscriptRebuildPolicy } from "../../modes/types";
|
|
@@ -63,7 +63,7 @@ export declare class UiHelpers {
|
|
|
63
63
|
showWarning(warningMessage: string): void;
|
|
64
64
|
showNewVersionNotification(newVersion: string): void;
|
|
65
65
|
updatePendingMessagesDisplay(): void;
|
|
66
|
-
queueCompactionMessage(text: string, mode: "steer" | "followUp"): void;
|
|
66
|
+
queueCompactionMessage(text: string, mode: "steer" | "followUp", options?: ComposerSubmissionOptions): void;
|
|
67
67
|
isKnownSlashCommand(text: string): boolean;
|
|
68
68
|
flushCompactionQueue(options?: {
|
|
69
69
|
willRetry?: boolean;
|