@sayknow-cli/coding-agent 0.4.7 → 0.5.1
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 +122 -0
- package/dist/types/capability/index.d.ts +10 -20
- package/dist/types/capability/types.d.ts +3 -0
- package/dist/types/cli/args.d.ts +0 -2
- package/dist/types/cli/read-cli.d.ts +1 -0
- package/dist/types/cli.d.ts +9 -1
- package/dist/types/commands/daemon.d.ts +2 -2
- package/dist/types/commands/deep-interview.d.ts +9 -0
- package/dist/types/commands/harness.d.ts +22 -0
- package/dist/types/commands/read.d.ts +6 -0
- package/dist/types/commands/sdk.d.ts +20 -2
- package/dist/types/config/keybindings.d.ts +34 -4
- package/dist/types/config/model-profile-contract.d.ts +40 -0
- package/dist/types/config/model-profiles.d.ts +2 -3
- package/dist/types/config/model-registry.d.ts +5 -0
- package/dist/types/config/provider-auth-health.d.ts +14 -0
- package/dist/types/config/provider-ranking.d.ts +59 -0
- package/dist/types/config/settings-schema.d.ts +156 -10
- package/dist/types/config/settings.d.ts +3 -0
- package/dist/types/edit/modes/patch.d.ts +13 -0
- package/dist/types/edit/path-mutation-lock.d.ts +15 -0
- package/dist/types/eval/py/executor.d.ts +1 -1
- package/dist/types/eval/py/runner-artifact.d.ts +8 -0
- package/dist/types/eval/py/tool-bridge.d.ts +1 -2
- package/dist/types/extensibility/extensions/types.d.ts +43 -2
- package/dist/types/extensibility/shared-events.d.ts +6 -0
- package/dist/types/internal-urls/local-root-gc.d.ts +2 -0
- package/dist/types/main.d.ts +33 -2
- package/dist/types/memories/index.d.ts +2 -0
- package/dist/types/modes/acp/acp-agent.d.ts +22 -9
- package/dist/types/modes/components/assistant-message.d.ts +3 -1
- package/dist/types/modes/components/btw-panel.d.ts +1 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +41 -0
- package/dist/types/modes/components/queue-pane.d.ts +8 -0
- package/dist/types/modes/components/queued-message-selector.d.ts +6 -0
- package/dist/types/modes/components/read-tool-group.d.ts +4 -4
- package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +2 -1
- package/dist/types/modes/components/session-observer-overlay.d.ts +4 -0
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/tool-execution.d.ts +8 -0
- package/dist/types/modes/components/tool-status-header.d.ts +4 -2
- package/dist/types/modes/components/welcome.d.ts +5 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +5 -0
- package/dist/types/modes/controllers/command-controller.d.ts +2 -0
- package/dist/types/modes/controllers/event-controller.d.ts +3 -0
- package/dist/types/modes/interactive-mode.d.ts +13 -2
- package/dist/types/modes/irc-observation-ledger.d.ts +17 -1
- package/dist/types/modes/prompt-action-autocomplete.d.ts +6 -1
- package/dist/types/modes/prompt-suggestion-controller.d.ts +35 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +2 -2
- package/dist/types/modes/types.d.ts +6 -0
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +2 -1
- package/dist/types/modes/utils/ui-helpers.d.ts +16 -0
- package/dist/types/runtime/memory-domain.d.ts +9 -0
- package/dist/types/runtime/memory-guard-contract.d.ts +71 -0
- package/dist/types/runtime/memory-guard.d.ts +39 -0
- package/dist/types/runtime/memory-limit.d.ts +11 -0
- package/dist/types/runtime-mcp/content-limits.d.ts +7 -0
- package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +1 -1
- package/dist/types/runtime-mcp/manager.d.ts +9 -1
- package/dist/types/runtime-mcp/oauth-flow.d.ts +0 -5
- package/dist/types/runtime-mcp/plugin-network-boundary.d.ts +14 -0
- package/dist/types/runtime-mcp/redaction.d.ts +2 -0
- package/dist/types/runtime-mcp/smithery-auth.d.ts +5 -0
- package/dist/types/sdk/acp/final-text.d.ts +19 -0
- package/dist/types/sdk/acp/mcp.d.ts +23 -0
- package/dist/types/sdk/broker/broker.d.ts +2 -0
- package/dist/types/sdk/broker/lifecycle.d.ts +13 -0
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +9 -1
- package/dist/types/sdk/bus/config-commands.d.ts +2 -2
- package/dist/types/sdk/bus/config.d.ts +2 -0
- package/dist/types/sdk/bus/control-drain-lease.d.ts +52 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +1 -0
- package/dist/types/sdk/bus/daemon-paths.d.ts +1 -0
- package/dist/types/sdk/bus/index.d.ts +52 -4
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +37 -0
- package/dist/types/sdk/bus/lifecycle-commands.d.ts +5 -4
- package/dist/types/sdk/bus/notification-orchestration.d.ts +1 -0
- package/dist/types/sdk/bus/notification-service.d.ts +34 -0
- package/dist/types/sdk/bus/operator-runtime.d.ts +1 -0
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +106 -0
- package/dist/types/sdk/bus/rate-limit-pool.d.ts +2 -0
- package/dist/types/sdk/bus/reconciliation-store.d.ts +65 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +33 -9
- package/dist/types/sdk/bus/telegram-daemon-control.d.ts +5 -1
- package/dist/types/sdk/bus/telegram-daemon.d.ts +286 -12
- package/dist/types/sdk/bus/telegram-reference.d.ts +2 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +88 -2
- package/dist/types/sdk/client/discovery.d.ts +2 -0
- package/dist/types/sdk/client/liveness.d.ts +7 -0
- package/dist/types/sdk/host/control/operations.d.ts +3 -2
- package/dist/types/sdk/host/host.d.ts +3 -1
- package/dist/types/sdk/host/query/handlers.d.ts +14 -0
- package/dist/types/sdk/index.d.ts +2 -0
- package/dist/types/sdk/lifecycle-session.d.ts +10 -1
- package/dist/types/sdk/prompt-status.d.ts +88 -0
- package/dist/types/sdk/session-directory.d.ts +1 -1
- package/dist/types/sdk/session.d.ts +7 -0
- package/dist/types/sdk/startup-capability.d.ts +9 -0
- package/dist/types/sdk/transport/auth-preface.d.ts +9 -0
- package/dist/types/sdk/transport/index.d.ts +12 -0
- package/dist/types/sdk/transport/relay.d.ts +43 -0
- package/dist/types/sdk/transport/serve-cli.d.ts +4 -0
- package/dist/types/sdk/transport/socket.d.ts +7 -0
- package/dist/types/sdk/transport/stdio.d.ts +3 -0
- package/dist/types/session/agent-session.d.ts +83 -24
- package/dist/types/session/btw-contract.d.ts +16 -0
- package/dist/types/session/fallback-chain-controller.d.ts +18 -2
- package/dist/types/session/internal/managed-session-scope.d.ts +70 -10
- package/dist/types/session/internal/managed-session-storage.d.ts +34 -12
- package/dist/types/session/internal/native-publish-outcome.d.ts +48 -0
- package/dist/types/session/memory-guard-checkpoint-participant.d.ts +69 -0
- package/dist/types/session/session-manager.d.ts +89 -18
- package/dist/types/session/session-storage.d.ts +31 -0
- package/dist/types/session/streaming-output.d.ts +60 -5
- package/dist/types/setup/credential-import.d.ts +5 -1
- package/dist/types/setup/provider-onboarding.d.ts +2 -0
- package/dist/types/skc-runtime/deep-interview-runtime.d.ts +1 -1
- package/dist/types/skc-runtime/deep-interview-stage.d.ts +37 -0
- package/dist/types/skc-runtime/gc-runtime.d.ts +1 -1
- package/dist/types/skc-runtime/linux-proc.d.ts +22 -14
- package/dist/types/skc-runtime/memory-guard-owner-claims.d.ts +47 -0
- package/dist/types/skc-runtime/ralplan-runtime.d.ts +112 -1
- package/dist/types/skc-runtime/repository-binding.d.ts +63 -0
- package/dist/types/skc-runtime/state-runtime.d.ts +3 -1
- package/dist/types/skc-runtime/state-writer.d.ts +5 -1
- package/dist/types/skc-runtime/team-launch.d.ts +1 -1
- package/dist/types/skc-runtime/team-runtime.d.ts +9 -2
- package/dist/types/skc-runtime/team-store.d.ts +12 -0
- package/dist/types/skc-runtime/team-worker-memory-guard.d.ts +92 -0
- package/dist/types/skc-runtime/tmux-owner-isolation.d.ts +7 -0
- package/dist/types/skc-runtime/ultragoal-guard.d.ts +6 -5
- package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +28 -0
- package/dist/types/skc-runtime/ultragoal-runtime.d.ts +43 -5
- package/dist/types/skill-state/workflow-hud.d.ts +3 -0
- package/dist/types/ssh/utils.d.ts +1 -0
- package/dist/types/task/discovery.d.ts +3 -1
- package/dist/types/task/executor.d.ts +6 -0
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/task/provider-retry-status.d.ts +13 -0
- package/dist/types/task/receipt.d.ts +2 -0
- package/dist/types/task/types.d.ts +133 -0
- package/dist/types/task/ultragoal-redteam-activation.d.ts +33 -0
- package/dist/types/tools/browser/launch.d.ts +7 -0
- package/dist/types/tools/fetch.d.ts +22 -9
- package/dist/types/tools/image-gen.d.ts +63 -1
- package/dist/types/tools/index.d.ts +7 -1
- package/dist/types/tools/output-meta.d.ts +21 -1
- package/dist/types/tools/read-internals.d.ts +12 -0
- package/dist/types/tools/read.d.ts +45 -1
- package/dist/types/tools/resource-gc.d.ts +23 -0
- package/dist/types/tools/skill-discovery.d.ts +7 -0
- package/dist/types/tools/sqlite-reader.d.ts +7 -0
- package/dist/types/tools/tool-result.d.ts +7 -1
- package/dist/types/utils/prompt-suggestion.d.ts +33 -0
- package/dist/types/utils/shell-snapshot.d.ts +12 -0
- package/dist/types/web/insane/bridge.d.ts +1 -0
- package/dist/types/web/insane/url-guard.d.ts +17 -0
- package/package.json +8 -12
- package/scripts/benchmark-sticky-viewport-pr1.ts +239 -0
- package/scripts/capture-platform-shortcut-labels-showcase.ts +342 -0
- package/scripts/capture-sticky-viewport-showcase.ts +292 -0
- package/scripts/compile-args.ts +0 -1
- package/scripts/dogfood-repository-binding.ts +209 -0
- package/scripts/generate-docs-index.ts +4 -1
- package/scripts/generate-sdk-operation-inventory.ts +9 -0
- package/scripts/run-test-manifest.ts +6 -4
- package/scripts/verify-skc-sdk-canonicalization.ts +122 -18
- package/scripts/verify-sticky-viewport-showcase.ts +611 -0
- package/src/capability/index.ts +58 -42
- package/src/capability/types.ts +3 -0
- package/src/cli/args.ts +16 -100
- package/src/cli/fast-help.ts +1 -1
- package/src/cli/mcp-cli.ts +4 -21
- package/src/cli/notify-cli.ts +6 -38
- package/src/cli/read-cli.ts +2 -1
- package/src/cli/setup-cli.ts +10 -4
- package/src/cli.ts +133 -11
- package/src/commands/daemon.ts +22 -5
- package/src/commands/deep-interview.ts +26 -1
- package/src/commands/harness.ts +35 -12
- package/src/commands/read.ts +11 -2
- package/src/commands/sdk.ts +134 -17
- package/src/commands/team.ts +1 -1
- package/src/commit/agentic/index.ts +3 -3
- package/src/commit/map-reduce/index.ts +2 -2
- package/src/config/keybindings.ts +158 -25
- package/src/config/model-profile-contract.ts +174 -0
- package/src/config/model-profiles.ts +51 -10
- package/src/config/model-registry.ts +24 -4
- package/src/config/model-resolver.ts +2 -2
- package/src/config/provider-auth-health.ts +42 -0
- package/src/config/provider-ranking.ts +119 -0
- package/src/config/settings-schema.ts +157 -10
- package/src/config/settings.ts +254 -108
- package/src/coordinator-mcp/model-preset.ts +21 -74
- package/src/defaults/skc/skills/deep-interview/SKILL.md +147 -24
- package/src/defaults/skc/skills/ralplan/SKILL.md +91 -34
- package/src/defaults/skc/skills/team/SKILL.md +1 -1
- package/src/defaults/skc/skills/ultragoal/SKILL.md +68 -17
- package/src/discovery/ssh.ts +12 -1
- package/src/edit/index.ts +3 -6
- package/src/edit/modes/patch.ts +38 -1
- package/src/edit/modes/replace.ts +42 -0
- package/src/edit/path-mutation-lock.ts +112 -0
- package/src/eval/js/tool-bridge.ts +1 -1
- package/src/eval/py/executor.ts +37 -13
- package/src/eval/py/kernel.ts +1 -21
- package/src/eval/py/prelude.py +2 -2
- package/src/eval/py/runner-artifact.ts +84 -0
- package/src/eval/py/tool-bridge.ts +34 -18
- package/src/extensibility/extensions/runner.ts +4 -0
- package/src/extensibility/extensions/types.ts +42 -4
- package/src/extensibility/plugins/marketplace/fetcher.ts +191 -7
- package/src/extensibility/shared-events.ts +5 -0
- package/src/extensibility/skc-plugins/runtime-adapters.ts +2 -1
- package/src/hooks/native-skill-hook.ts +17 -4
- package/src/internal-urls/docs-index.generated.ts +17 -16
- package/src/internal-urls/local-protocol.ts +87 -25
- package/src/internal-urls/local-root-gc.ts +127 -0
- package/src/internal-urls/mcp-protocol.ts +73 -11
- package/src/main.ts +120 -42
- package/src/memories/index.ts +10 -0
- package/src/modes/DESIGN.md +52 -0
- package/src/modes/acp/acp-agent.ts +647 -83
- package/src/modes/acp/acp-event-mapper.ts +106 -12
- package/src/modes/acp/acp-mode.ts +39 -3
- package/src/modes/action-registry.ts +1 -1
- package/src/modes/components/assistant-message.ts +123 -22
- package/src/modes/components/btw-panel.ts +82 -16
- package/src/modes/components/irc-sidebar.ts +176 -62
- package/src/modes/components/model-selector.ts +61 -4
- package/src/modes/components/notifications-settings-editor.ts +1 -1
- package/src/modes/components/oauth-selector.ts +42 -12
- package/src/modes/components/plan-preview-overlay.ts +1 -1
- package/src/modes/components/queue-pane.ts +55 -9
- package/src/modes/components/queued-message-selector.ts +53 -10
- package/src/modes/components/read-tool-group.ts +82 -14
- package/src/modes/components/runtime-mcp-add-wizard.ts +5 -0
- package/src/modes/components/sayknow-pet-widget.ts +20 -8
- package/src/modes/components/session-observer-overlay.ts +187 -32
- package/src/modes/components/settings-selector.ts +60 -18
- package/src/modes/components/tool-execution.ts +138 -27
- package/src/modes/components/tool-status-header.ts +26 -8
- package/src/modes/components/welcome.ts +50 -23
- package/src/modes/controllers/btw-controller.ts +119 -36
- package/src/modes/controllers/command-controller.ts +101 -54
- package/src/modes/controllers/event-controller.ts +119 -27
- package/src/modes/controllers/extension-ui-controller.ts +23 -12
- package/src/modes/controllers/input-controller.ts +100 -8
- package/src/modes/controllers/runtime-mcp-command-controller.ts +29 -6
- package/src/modes/controllers/selector-controller.ts +4 -1
- package/src/modes/interactive-mode.ts +201 -60
- package/src/modes/irc-observation-ledger.ts +71 -15
- package/src/modes/prompt-action-autocomplete.ts +32 -13
- package/src/modes/prompt-suggestion-controller.ts +96 -0
- package/src/modes/runtime-init.ts +20 -2
- package/src/modes/shared/agent-wire/command-dispatch.ts +3 -3
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +2 -2
- package/src/modes/types.ts +6 -0
- package/src/modes/utils/hotkeys-markdown.ts +64 -36
- package/src/modes/utils/ui-helpers.ts +99 -4
- package/src/prompts/agent-fragments/restricted-bash.md +1 -1
- package/src/prompts/agents/architect.md +17 -3
- package/src/prompts/agents/critic.md +17 -2
- package/src/prompts/agents/executor.md +1 -1
- package/src/prompts/agents/planner.md +8 -1
- package/src/prompts/system/btw-user.md +3 -8
- package/src/prompts/system/prompt-suggestion-system.md +32 -0
- package/src/prompts/system/system-prompt.md +6 -3
- package/src/prompts/tools/cron.md +3 -1
- package/src/prompts/tools/read.md +4 -2
- package/src/prompts/tools/skill-discovery.md +1 -0
- package/src/runtime/memory-domain.ts +66 -0
- package/src/runtime/memory-guard-contract.ts +73 -0
- package/src/runtime/memory-guard.ts +292 -0
- package/src/runtime/memory-limit.ts +50 -0
- package/src/runtime-mcp/client.ts +41 -55
- package/src/runtime-mcp/content-limits.ts +71 -0
- package/src/runtime-mcp/discoverable-tool-metadata.ts +1 -1
- package/src/runtime-mcp/json-rpc.ts +28 -11
- package/src/runtime-mcp/manager.ts +77 -59
- package/src/runtime-mcp/oauth-flow.ts +0 -72
- package/src/runtime-mcp/plugin-network-boundary.ts +101 -0
- package/src/runtime-mcp/redaction.ts +30 -0
- package/src/runtime-mcp/smithery-auth.ts +17 -2
- package/src/runtime-mcp/smithery-connect.ts +11 -1
- package/src/runtime-mcp/transports/http.ts +63 -22
- package/src/sdk/acp/adapter.ts +8 -1
- package/src/sdk/acp/final-text.ts +40 -0
- package/src/sdk/acp/mcp.ts +26 -0
- package/src/sdk/broker/broker.ts +34 -20
- package/src/sdk/broker/identity.ts +22 -12
- package/src/sdk/broker/lifecycle.ts +293 -43
- package/src/sdk/broker/session-index.ts +11 -1
- package/src/sdk/bus/chat-daemon-cli.ts +2 -2
- package/src/sdk/bus/chat-daemon-control.ts +22 -5
- package/src/sdk/bus/config-commands.ts +2 -2
- package/src/sdk/bus/config.ts +10 -2
- package/src/sdk/bus/control-drain-lease.ts +104 -0
- package/src/sdk/bus/conversation-store.ts +40 -6
- package/src/sdk/bus/daemon-paths.ts +2 -0
- package/src/sdk/bus/index.ts +793 -121
- package/src/sdk/bus/kind-aware-reconciliation.ts +242 -0
- package/src/sdk/bus/lifecycle-commands.ts +63 -10
- package/src/sdk/bus/lifecycle-control-runtime.ts +11 -2
- package/src/sdk/bus/lifecycle-orchestrator.ts +32 -1
- package/src/sdk/bus/notification-orchestration.ts +12 -0
- package/src/sdk/bus/notification-service.ts +87 -25
- package/src/sdk/bus/operator-runtime.ts +31 -5
- package/src/sdk/bus/prompt-reconciliation.ts +240 -0
- package/src/sdk/bus/rate-limit-pool.ts +8 -0
- package/src/sdk/bus/recent-activity.ts +90 -26
- package/src/sdk/bus/reconciliation-store.ts +224 -0
- package/src/sdk/bus/telegram-cli.ts +6 -13
- package/src/sdk/bus/telegram-daemon-cli.ts +8 -3
- package/src/sdk/bus/telegram-daemon-contract.ts +34 -9
- package/src/sdk/bus/telegram-daemon-control.ts +161 -40
- package/src/sdk/bus/telegram-daemon.ts +3649 -593
- package/src/sdk/bus/telegram-reference.ts +20 -2
- package/src/sdk/bus/topic-registry.ts +451 -12
- package/src/sdk/cli/session-cli.ts +15 -2
- package/src/sdk/client/discovery.ts +19 -3
- package/src/sdk/client/liveness.ts +49 -0
- package/src/sdk/host/control/dispatch.ts +8 -2
- package/src/sdk/host/control/operations.ts +3 -2
- package/src/sdk/host/host.ts +27 -9
- package/src/sdk/host/query/handlers.ts +125 -5
- package/src/sdk/index.ts +12 -0
- package/src/sdk/lifecycle-session.ts +19 -3
- package/src/sdk/mcp/server.ts +46 -18
- package/src/sdk/prompt-status.ts +97 -0
- package/src/sdk/protocol/operation-inventory.generated.json +145 -0
- package/src/sdk/protocol/operation-registry.ts +24 -4
- package/src/sdk/session-directory.ts +5 -1
- package/src/sdk/session.ts +69 -8
- package/src/sdk/startup-capability.ts +15 -1
- package/src/sdk/transport/auth-preface.ts +82 -0
- package/src/sdk/transport/index.ts +18 -0
- package/src/sdk/transport/relay.ts +252 -0
- package/src/sdk/transport/serve-cli.ts +105 -0
- package/src/sdk/transport/socket.ts +197 -0
- package/src/sdk/transport/stdio.ts +17 -0
- package/src/session/agent-session.ts +1112 -314
- package/src/session/blob-store.ts +25 -7
- package/src/session/btw-contract.ts +59 -0
- package/src/session/fallback-chain-controller.ts +47 -8
- package/src/session/internal/managed-session-scope.ts +1426 -259
- package/src/session/internal/managed-session-storage.ts +414 -238
- package/src/session/internal/native-publish-outcome.ts +271 -0
- package/src/session/memory-guard-checkpoint-participant.ts +131 -0
- package/src/session/session-manager.ts +2079 -469
- package/src/session/session-storage.ts +151 -11
- package/src/session/streaming-output.ts +262 -43
- package/src/setup/credential-import.ts +28 -3
- package/src/setup/provider-onboarding.ts +49 -5
- package/src/setup/provider-presets.json +2 -1
- package/src/skc-runtime/deep-interview-runtime.ts +303 -36
- package/src/skc-runtime/deep-interview-stage.ts +1016 -0
- package/src/skc-runtime/deep-interview-state.ts +8 -5
- package/src/skc-runtime/gc-render.ts +1 -0
- package/src/skc-runtime/gc-runtime.ts +11 -1
- package/src/skc-runtime/linux-proc.ts +70 -36
- package/src/skc-runtime/managed-owner-supervisor.ts +83 -4
- package/src/skc-runtime/memory-guard-owner-claims.ts +389 -0
- package/src/skc-runtime/ralplan-runtime.ts +1057 -75
- package/src/skc-runtime/repository-binding.ts +267 -0
- package/src/skc-runtime/session-state-sidecar.ts +25 -9
- package/src/skc-runtime/state-runtime.ts +50 -12
- package/src/skc-runtime/state-writer.ts +68 -56
- package/src/skc-runtime/team-launch.ts +34 -5
- package/src/skc-runtime/team-runtime.ts +41 -1
- package/src/skc-runtime/team-store.ts +32 -0
- package/src/skc-runtime/team-worker-memory-guard.ts +363 -0
- package/src/skc-runtime/team-workers.ts +1 -0
- package/src/skc-runtime/tmux-common.ts +13 -2
- package/src/skc-runtime/tmux-owner-isolation.ts +20 -1
- package/src/skc-runtime/tmux-sessions.ts +45 -6
- package/src/skc-runtime/ultragoal-guard.ts +93 -15
- package/src/skc-runtime/ultragoal-receipt-freshness.ts +123 -0
- package/src/skc-runtime/ultragoal-runtime.ts +469 -38
- package/src/skc-runtime/workflow-manifest.generated.json +195 -5
- package/src/skc-runtime/workflow-manifest.ts +67 -3
- package/src/skill-state/workflow-hud.ts +25 -2
- package/src/skill-state/workflow-mutation-guard.ts +104 -12
- package/src/slash-commands/builtin-registry.ts +1 -1
- package/src/ssh/utils.ts +14 -0
- package/src/task/discovery.ts +8 -2
- package/src/task/executor.ts +165 -47
- package/src/task/index.ts +123 -15
- package/src/task/provider-retry-status.ts +88 -0
- package/src/task/receipt.ts +3 -0
- package/src/task/render.ts +45 -26
- package/src/task/skc-command.ts +2 -2
- package/src/task/types.ts +55 -10
- package/src/task/ultragoal-redteam-activation.ts +75 -0
- package/src/tools/ask.ts +1 -1
- package/src/tools/ast-edit.ts +2 -2
- package/src/tools/bash-allowed-prefixes.ts +45 -1
- package/src/tools/bash-pty-selection.ts +2 -2
- package/src/tools/browser/launch.ts +41 -6
- package/src/tools/browser/screenshot-format.ts +6 -1
- package/src/tools/cron.ts +1 -1
- package/src/tools/fetch.ts +127 -154
- package/src/tools/image-gen.ts +476 -23
- package/src/tools/index.ts +7 -1
- package/src/tools/output-meta.ts +176 -9
- package/src/tools/path-utils.ts +5 -1
- package/src/tools/read-internals.ts +44 -0
- package/src/tools/read.ts +1544 -310
- package/src/tools/resource-gc.ts +665 -125
- package/src/tools/skill-discovery.ts +39 -3
- package/src/tools/sqlite-reader.ts +63 -5
- package/src/tools/subagent-render.ts +74 -16
- package/src/tools/subagent.ts +2 -0
- package/src/tools/tool-result.ts +14 -1
- package/src/utils/edit-mode.ts +2 -2
- package/src/utils/pasted-image-path.ts +15 -6
- package/src/utils/prompt-suggestion.ts +265 -0
- package/src/utils/shell-snapshot.ts +173 -63
- package/src/utils/sixel.ts +3 -3
- package/src/web/insane/bridge.ts +5 -1
- package/src/web/insane/url-guard.ts +140 -27
- package/src/web/scrapers/docs-rs.ts +30 -5
- package/src/web/scrapers/types.ts +19 -49
- package/src/web/scrapers/utils.ts +12 -26
- package/src/web/search/providers/codex.ts +1 -1
- package/src/workflow/workflow-intent-diff.ts +4 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { RecoveryFsRoot } from "@sayknow-cli/natives";
|
|
2
|
+
import type { RecoveryHydrationContext, ResumeSessionIdentity, SessionDestinationInput, SessionManager, SessionManagerCheckpointRevisionStrings, StrictSessionOpenFailure } from "./session-manager";
|
|
3
|
+
export interface MemoryGuardTranscriptDescriptorV1 {
|
|
4
|
+
bytes: string;
|
|
5
|
+
relative_path: string;
|
|
6
|
+
sha256: string;
|
|
7
|
+
}
|
|
8
|
+
export interface MemoryGuardCheckpointBlobAuthorityV1 {
|
|
9
|
+
kind: "checkpoint_blob_tree_v1";
|
|
10
|
+
manifest_relative_path: string;
|
|
11
|
+
manifest_sha256: string;
|
|
12
|
+
root_relative_path: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MemoryGuardCheckpointBlobManifestEntryV1 {
|
|
15
|
+
bytes: string;
|
|
16
|
+
relative_path: string;
|
|
17
|
+
sha256: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MemoryGuardCheckpointBlobManifestV1 {
|
|
20
|
+
entries: MemoryGuardCheckpointBlobManifestEntryV1[];
|
|
21
|
+
schema_version: 1;
|
|
22
|
+
}
|
|
23
|
+
export interface MemoryGuardSessionManagerCheckpointV1 {
|
|
24
|
+
blob_authority: MemoryGuardCheckpointBlobAuthorityV1;
|
|
25
|
+
revisions: SessionManagerCheckpointRevisionStrings;
|
|
26
|
+
schema_version: 1;
|
|
27
|
+
session_id: string;
|
|
28
|
+
session_name: string | null;
|
|
29
|
+
transcript: MemoryGuardTranscriptDescriptorV1;
|
|
30
|
+
}
|
|
31
|
+
export interface MemoryGuardParticipantDescriptorV1 {
|
|
32
|
+
ordinal: number;
|
|
33
|
+
checkpoint: MemoryGuardCheckpointBlobAuthorityV1;
|
|
34
|
+
revisions: SessionManagerCheckpointRevisionStrings;
|
|
35
|
+
session_id: string;
|
|
36
|
+
session_name: string | null;
|
|
37
|
+
transcript: MemoryGuardTranscriptDescriptorV1;
|
|
38
|
+
}
|
|
39
|
+
export interface MemoryGuardParticipantIngressLease {
|
|
40
|
+
readonly token: symbol;
|
|
41
|
+
release(): void;
|
|
42
|
+
}
|
|
43
|
+
export interface MemoryGuardCreateCheckpointInput {
|
|
44
|
+
ingressLease: MemoryGuardParticipantIngressLease;
|
|
45
|
+
checkpointRoot: string;
|
|
46
|
+
}
|
|
47
|
+
export type MemoryGuardRestoreBlockedReason = StrictSessionOpenFailure["reason"] | "checkpoint-mismatch" | "participant-mismatch" | "transcript-mismatch" | "blob-manifest-mismatch" | "blob-missing" | "blob-hash-mismatch" | "blob-authority-mismatch" | "destination-unavailable";
|
|
48
|
+
export interface MemoryGuardRestoreInput {
|
|
49
|
+
incidentAuthority: RecoveryFsRoot;
|
|
50
|
+
participant: MemoryGuardParticipantDescriptorV1;
|
|
51
|
+
checkpoint: MemoryGuardSessionManagerCheckpointV1;
|
|
52
|
+
destination: SessionDestinationInput;
|
|
53
|
+
}
|
|
54
|
+
export type MemoryGuardRestoreResult = {
|
|
55
|
+
kind: "staged";
|
|
56
|
+
manager: SessionManager;
|
|
57
|
+
hydrationContext: RecoveryHydrationContext;
|
|
58
|
+
transcriptIdentity: ResumeSessionIdentity;
|
|
59
|
+
cleanup: () => Promise<void>;
|
|
60
|
+
} | {
|
|
61
|
+
kind: "blocked";
|
|
62
|
+
reason: MemoryGuardRestoreBlockedReason;
|
|
63
|
+
};
|
|
64
|
+
export declare function memoryGuardCanonicalJson(value: unknown): string;
|
|
65
|
+
export declare function memoryGuardSha256Hex(value: Uint8Array | string): string;
|
|
66
|
+
export declare function isMemoryGuardDecimalString(value: unknown): value is string;
|
|
67
|
+
export declare function isMemoryGuardSha256Hex(value: unknown): value is string;
|
|
68
|
+
export declare function isMemoryGuardRelativePath(value: unknown): value is string;
|
|
69
|
+
export declare function hasOnlyKeys(value: Record<string, unknown>, allowed: readonly string[]): boolean;
|
|
@@ -8,6 +8,7 @@ import { ArtifactManager } from "./artifacts";
|
|
|
8
8
|
import { type BlobPutResult, BlobStore } from "./blob-store";
|
|
9
9
|
import { type ManagedMigrationPolicy } from "./internal/managed-session-scope";
|
|
10
10
|
import { type ManagedDirectoryRoot, ManagedSessionDescendantStore } from "./internal/managed-session-storage";
|
|
11
|
+
import { type MemoryGuardCreateCheckpointInput, type MemoryGuardParticipantIngressLease, type MemoryGuardRestoreInput, type MemoryGuardRestoreResult, type MemoryGuardSessionManagerCheckpointV1 } from "./memory-guard-checkpoint-participant";
|
|
11
12
|
import { type BashExecutionMessage, type CustomMessage, type FileMentionMessage, type HookMessage, type PythonExecutionMessage } from "./messages";
|
|
12
13
|
import { type SessionManagerReadAccess, sessionManagerReadCapability } from "./session-manager-internal";
|
|
13
14
|
import type { ManagedSessionSecurityContext, SessionStorage, SessionStorageStat, VerifiedSessionDeleteResult, VerifiedSessionDeleteTarget } from "./session-storage";
|
|
@@ -27,6 +28,13 @@ export interface NewSessionOptions {
|
|
|
27
28
|
/** Skip flushing the current session and delete it instead of saving. */
|
|
28
29
|
drop?: boolean;
|
|
29
30
|
}
|
|
31
|
+
/** Internal successor prepared without changing the manager's visible identity. */
|
|
32
|
+
export interface PreparedNewSession {
|
|
33
|
+
readonly sessionId: string;
|
|
34
|
+
readonly sessionFile: string | undefined;
|
|
35
|
+
readonly artifactsDir: string | null;
|
|
36
|
+
readonly managedLegacyLocalMigrationSource: ManagedLegacyLocalMigrationSource | null;
|
|
37
|
+
}
|
|
30
38
|
export interface SessionEntryBase {
|
|
31
39
|
type: string;
|
|
32
40
|
id: string;
|
|
@@ -252,6 +260,21 @@ export type DefaultModelSelectionStage = {
|
|
|
252
260
|
readonly tempPath: string | undefined;
|
|
253
261
|
readonly persistsToExistingFile: boolean;
|
|
254
262
|
};
|
|
263
|
+
export interface SessionManagerRevisionSnapshot {
|
|
264
|
+
entry: number;
|
|
265
|
+
leaf: number;
|
|
266
|
+
headerExport: number;
|
|
267
|
+
label: number;
|
|
268
|
+
replayMetadata: number;
|
|
269
|
+
}
|
|
270
|
+
export interface SessionManagerCheckpointRevisionStrings {
|
|
271
|
+
entry: string;
|
|
272
|
+
leaf: string;
|
|
273
|
+
headerExport: string;
|
|
274
|
+
label: string;
|
|
275
|
+
replayMetadata: string;
|
|
276
|
+
}
|
|
277
|
+
export declare function toSessionManagerCheckpointRevisionStrings(snapshot: SessionManagerRevisionSnapshot): SessionManagerCheckpointRevisionStrings;
|
|
255
278
|
export type DefaultModelSelectionPromotion = {
|
|
256
279
|
readonly kind: "promoted";
|
|
257
280
|
} | {
|
|
@@ -327,6 +350,9 @@ export declare class SessionMigrationPolicyError extends Error {
|
|
|
327
350
|
readonly code = "legacy_migration_disabled";
|
|
328
351
|
constructor();
|
|
329
352
|
}
|
|
353
|
+
export declare class SessionArtifactCapacityError extends Error {
|
|
354
|
+
constructor(message: string);
|
|
355
|
+
}
|
|
330
356
|
export type ResumeTailInspection = ResumeTailResumable | ResumeTailTerminal | ResumeTailError;
|
|
331
357
|
export interface StrictSessionOpenSuccess {
|
|
332
358
|
kind: "opened";
|
|
@@ -334,7 +360,8 @@ export interface StrictSessionOpenSuccess {
|
|
|
334
360
|
}
|
|
335
361
|
export interface StrictSessionOpenFailure {
|
|
336
362
|
kind: "error";
|
|
337
|
-
reason: ResumeTailError["reason"] | "identity-mismatch" | "migration-required";
|
|
363
|
+
reason: ResumeTailError["reason"] | "identity-mismatch" | "migration-required" | "artifact_capacity_exceeded";
|
|
364
|
+
message?: string;
|
|
338
365
|
}
|
|
339
366
|
/** Exact transcript bytes and authority captured from one descriptor-bound read. */
|
|
340
367
|
export interface CapturedSessionTranscriptSnapshot {
|
|
@@ -530,6 +557,10 @@ export declare function residentBlobSentinelForTests(kind: ResidentBlobKind, ref
|
|
|
530
557
|
export declare function materializeResidentEntriesForPersistenceForTests<T>(entries: T[], textStore: BlobStore, imageStore?: BlobStore): T[];
|
|
531
558
|
/** Get recent sessions for display in welcome screen */
|
|
532
559
|
export declare function getRecentSessions(sessionDir: string, limit?: number, storage?: SessionStorage): Promise<RecentSessionInfo[]>;
|
|
560
|
+
export declare function getRecentSessionDisplay(sessions: readonly SessionInfo[], limit?: number): Array<{
|
|
561
|
+
name: string;
|
|
562
|
+
timeAgo: string;
|
|
563
|
+
}>;
|
|
533
564
|
/**
|
|
534
565
|
* Manages conversation sessions as append-only trees stored in JSONL files.
|
|
535
566
|
*
|
|
@@ -553,7 +584,7 @@ export interface ResolvedSessionMatch {
|
|
|
553
584
|
session: SessionInfo;
|
|
554
585
|
scope: "local" | "global";
|
|
555
586
|
}
|
|
556
|
-
export declare function resolveResumableSession(sessionArg: string, cwd: string, sessionDir?: string, storage?: SessionStorage): Promise<ResolvedSessionMatch | undefined>;
|
|
587
|
+
export declare function resolveResumableSession(sessionArg: string, cwd: string, sessionDir?: string, storage?: SessionStorage, managedAgentDir?: string): Promise<ResolvedSessionMatch | undefined>;
|
|
557
588
|
interface SessionManagerStateSnapshot {
|
|
558
589
|
sessionId: string;
|
|
559
590
|
sessionName: string | undefined;
|
|
@@ -578,13 +609,7 @@ export declare class SessionManager {
|
|
|
578
609
|
* revision contract). Tests assert the invalidation mapping through this;
|
|
579
610
|
* future export/label-view caches key off their respective domains.
|
|
580
611
|
*/
|
|
581
|
-
revisionSnapshot():
|
|
582
|
-
entry: number;
|
|
583
|
-
leaf: number;
|
|
584
|
-
headerExport: number;
|
|
585
|
-
label: number;
|
|
586
|
-
replayMetadata: number;
|
|
587
|
-
};
|
|
612
|
+
revisionSnapshot(): SessionManagerRevisionSnapshot;
|
|
588
613
|
/** Puts a binary blob into the blob store and returns the blob reference */
|
|
589
614
|
putBlob(data: Buffer): Promise<BlobPutResult>;
|
|
590
615
|
captureState(): SessionManagerStateSnapshot;
|
|
@@ -593,6 +618,33 @@ export declare class SessionManager {
|
|
|
593
618
|
setSessionFile(sessionFile: string): Promise<void>;
|
|
594
619
|
/** Start a new session. Closes any existing writer first. */
|
|
595
620
|
newSession(options?: NewSessionOptions): Promise<string | undefined>;
|
|
621
|
+
/**
|
|
622
|
+
* Allocate a fresh successor without publishing it through the manager's public
|
|
623
|
+
* getters. The returned authority is deliberately immutable so readiness work
|
|
624
|
+
* can resolve local:// against the successor while the predecessor stays live.
|
|
625
|
+
* @internal
|
|
626
|
+
*/
|
|
627
|
+
prepareNewSession(options?: NewSessionOptions): Promise<PreparedNewSession>;
|
|
628
|
+
/** Append a model selection to an unpublished successor. @internal */
|
|
629
|
+
appendPreparedModelChange(prepared: PreparedNewSession, model: string): string;
|
|
630
|
+
/** Append a thinking-level selection to an unpublished successor. @internal */
|
|
631
|
+
appendPreparedThinkingLevelChange(prepared: PreparedNewSession, thinkingLevel?: string): string;
|
|
632
|
+
/** Append a service-tier selection to an unpublished successor. @internal */
|
|
633
|
+
appendPreparedServiceTierChange(prepared: PreparedNewSession, serviceTier: ServiceTier | null): string;
|
|
634
|
+
/** Append a displayable custom message to an unpublished successor. @internal */
|
|
635
|
+
appendPreparedCustomMessageEntry<T = unknown>(prepared: PreparedNewSession, customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details?: T, attribution?: MessageAttribution): string;
|
|
636
|
+
/** Persist an unpublished successor without adopting it. @internal */
|
|
637
|
+
ensurePreparedNewSessionOnDisk(prepared: PreparedNewSession): Promise<void>;
|
|
638
|
+
/** Build context from an unpublished successor without reading active manager state. @internal */
|
|
639
|
+
buildPreparedNewSessionContext(prepared: PreparedNewSession): SessionContext;
|
|
640
|
+
/** Prepare a forked successor without publishing it through public manager state. @internal */
|
|
641
|
+
prepareFork(): Promise<PreparedNewSession | undefined>;
|
|
642
|
+
/** Prepare a path-only branch successor without publishing it through public manager state. @internal */
|
|
643
|
+
prepareBranchedSession(leafId: string): Promise<PreparedNewSession>;
|
|
644
|
+
/** Publish a prepared successor synchronously after all readiness awaits succeed. @internal */
|
|
645
|
+
commitPreparedNewSession(prepared: PreparedNewSession): void;
|
|
646
|
+
/** Exact-discard only an uncommitted successor prepared by this manager. @internal */
|
|
647
|
+
discardPreparedNewSession(prepared: PreparedNewSession): Promise<void>;
|
|
596
648
|
/** Tombstone and exact-delete managed transcripts, detaching the active transcript first. */
|
|
597
649
|
dropSession(sessionPath: string): Promise<void>;
|
|
598
650
|
/**
|
|
@@ -649,8 +701,12 @@ export declare class SessionManager {
|
|
|
649
701
|
/** Get usage statistics across all assistant messages in the session. */
|
|
650
702
|
getUsageStatistics(): UsageStatistics;
|
|
651
703
|
getSessionDir(): string;
|
|
704
|
+
/** Lists picker candidates within this manager's captured destination authority. */
|
|
705
|
+
listForResumePickerReadOnly(): Promise<SessionInfo[]>;
|
|
652
706
|
getSessionId(): string;
|
|
653
707
|
getSessionFile(): string | undefined;
|
|
708
|
+
acquireMemoryGuardParticipantIngressLease(): MemoryGuardParticipantIngressLease;
|
|
709
|
+
createMemoryGuardCheckpoint(input: MemoryGuardCreateCheckpointInput): Promise<MemoryGuardSessionManagerCheckpointV1>;
|
|
654
710
|
/**
|
|
655
711
|
* Returns the session artifacts directory path (session file path without .jsonl).
|
|
656
712
|
* Returns null when the session is not persisted to a file.
|
|
@@ -707,11 +763,6 @@ export declare class SessionManager {
|
|
|
707
763
|
/** The source that set the session name: "user" (manual /rename or RPC) or "auto" (generated title). */
|
|
708
764
|
get titleSource(): "auto" | "user" | undefined;
|
|
709
765
|
getSessionName(): string | undefined;
|
|
710
|
-
/**
|
|
711
|
-
* Set the session display name.
|
|
712
|
-
* @param source - "user" for explicit renames (/rename command, RPC); "auto" for generated titles.
|
|
713
|
-
* Auto-generated titles are silently ignored when the user has already set a name.
|
|
714
|
-
*/
|
|
715
766
|
setSessionName(name: string, source?: "auto" | "user"): Promise<boolean>;
|
|
716
767
|
_persist(entry: SessionEntry): void;
|
|
717
768
|
/** Append a configured fallback chain as child of current leaf, then advance leaf. Returns entry id. */
|
|
@@ -901,8 +952,12 @@ export declare class SessionManager {
|
|
|
901
952
|
static managedDestination(cwd: string, agentDir?: string, storage?: SessionStorage): SessionDestination;
|
|
902
953
|
static explicitDestination(directory: string): SessionDestination;
|
|
903
954
|
static create(cwd: string, destinationInput?: SessionDestinationInput, storage?: SessionStorage): SessionManager;
|
|
955
|
+
/** Prepare a selected candidate using this manager's captured managed destination authority. */
|
|
956
|
+
prepareManagedCandidateForWrite(filePath: string, migrationPolicy: SessionDirectoryMigrationPolicy, expectedIdentity?: ResumeSessionIdentity): Promise<string>;
|
|
957
|
+
/** Prepare a managed candidate and retain its exact post-preparation identity for the next adoption. */
|
|
958
|
+
prepareManagedCandidateForStrictAdoption(filePath: string, migrationPolicy: SessionDirectoryMigrationPolicy, expectedIdentity: ResumeSessionIdentity): Promise<string>;
|
|
904
959
|
/** Resolve a default-managed candidate through binding validation and copy-retain migration before mutation. */
|
|
905
|
-
static prepareManagedCandidateForWrite(filePath: string, migrationPolicy: SessionDirectoryMigrationPolicy): Promise<string>;
|
|
960
|
+
static prepareManagedCandidateForWrite(filePath: string, migrationPolicy: SessionDirectoryMigrationPolicy, destination: SessionDestination, expectedIdentity?: ResumeSessionIdentity): Promise<string>;
|
|
906
961
|
/**
|
|
907
962
|
* Fork a session into the current project directory.
|
|
908
963
|
* Copies history from another session file while creating a new session file in the current sessionDir.
|
|
@@ -916,10 +971,18 @@ export declare class SessionManager {
|
|
|
916
971
|
static open(filePath: string, destinationInput?: SessionDestinationInput, storage?: SessionStorage, migrationPolicy?: SessionDirectoryMigrationPolicy): Promise<SessionManager>;
|
|
917
972
|
static openNestedManaged(filePath: string, destination: SessionDestination, store: ManagedSessionDescendantStore, storage?: SessionStorage): Promise<SessionManager>;
|
|
918
973
|
/**
|
|
919
|
-
* List sessions for the resume picker without recovery or other
|
|
974
|
+
* List default-managed sessions for the resume picker without recovery or other
|
|
975
|
+
* maintenance writes. This is the only picker inventory that includes legacy
|
|
976
|
+
* sibling directories.
|
|
977
|
+
*/
|
|
978
|
+
static listManagedForResumePickerReadOnly(cwd: string, managedAgentDir?: string, storage?: SessionStorage): Promise<SessionInfo[]>;
|
|
979
|
+
/**
|
|
980
|
+
* List sessions from an explicitly supplied picker directory without recovery
|
|
981
|
+
* or other maintenance writes. Unlike managed inventory, this never scans
|
|
982
|
+
* legacy sibling directories.
|
|
920
983
|
*/
|
|
921
984
|
static listForResumePickerReadOnly(cwd: string, sessionDir?: string, storage?: SessionStorage): Promise<SessionInfo[]>;
|
|
922
|
-
/**
|
|
985
|
+
/** Delete an authorized managed or project-local picker candidate. */
|
|
923
986
|
static deleteManagedCandidate(sessionPath: string): Promise<void>;
|
|
924
987
|
/** Capture exact source content for a strict fork without granting write ownership. */
|
|
925
988
|
static captureTranscriptStrict(filePath: string, storage?: SessionStorage): StrictSessionCaptureResult;
|
|
@@ -929,6 +992,7 @@ export declare class SessionManager {
|
|
|
929
992
|
* persistence; destination history always comes from the captured bytes.
|
|
930
993
|
*/
|
|
931
994
|
static forkFromCaptured(snapshot: CapturedSessionTranscriptSnapshot, cwd: string, destinationInput?: SessionDestinationInput, _migrationPolicy?: SessionDirectoryMigrationPolicy): Promise<StrictSessionForkResult>;
|
|
995
|
+
static restoreMemoryGuardCheckpoint(input: MemoryGuardRestoreInput): Promise<MemoryGuardRestoreResult>;
|
|
932
996
|
/** Inspect a selected session without acquiring write-capable ownership. */
|
|
933
997
|
static inspectSessionTailReadOnly(filePath: string, storage?: SessionStorage): Promise<ResumeTailInspection>;
|
|
934
998
|
/**
|
|
@@ -966,7 +1030,13 @@ export declare class SessionManager {
|
|
|
966
1030
|
/**
|
|
967
1031
|
* List all sessions across all project directories.
|
|
968
1032
|
*/
|
|
969
|
-
static listAll(storage?: SessionStorage): Promise<SessionInfo[]>;
|
|
1033
|
+
static listAll(storage?: SessionStorage, managedAgentDir?: string): Promise<SessionInfo[]>;
|
|
1034
|
+
/**
|
|
1035
|
+
* Strict inventory bound to this manager's captured session authority. Managed
|
|
1036
|
+
* managers include authorized legacy and current candidates; explicit managers
|
|
1037
|
+
* authorize only their exact directory.
|
|
1038
|
+
*/
|
|
1039
|
+
inventorySessionsStrict(): StrictInventoryResult;
|
|
970
1040
|
/**
|
|
971
1041
|
* Strict raw scoped inventory for ACP authorization. Enumerates the scoped
|
|
972
1042
|
* session directory without suppressing any root/scan/lstat/read/parse/stat/
|
|
@@ -977,6 +1047,7 @@ export declare class SessionManager {
|
|
|
977
1047
|
static inventorySessionsStrict(cwd: string, options?: {
|
|
978
1048
|
sessionDir?: string;
|
|
979
1049
|
storage?: SessionStorage;
|
|
1050
|
+
destination?: SessionDestination;
|
|
980
1051
|
}): StrictInventoryResult;
|
|
981
1052
|
/**
|
|
982
1053
|
* Propagate the storage-layer verified hard delete bound to exact identity evidence.
|
|
@@ -112,6 +112,11 @@ export interface SessionStorage {
|
|
|
112
112
|
readSnapshotSync?(path: string): SessionStorageSnapshot;
|
|
113
113
|
statSync(path: string): SessionStorageStat;
|
|
114
114
|
listFilesSync(dir: string, pattern: string): string[];
|
|
115
|
+
/** List matching files with mtimes without issuing one JavaScript stat call per path. */
|
|
116
|
+
listFilesByMtime?(dir: string, pattern: string): Promise<Array<{
|
|
117
|
+
path: string;
|
|
118
|
+
mtimeMs: number;
|
|
119
|
+
}>>;
|
|
115
120
|
/**
|
|
116
121
|
* Strict directory scan that never suppresses scan/root errors. Used by strict
|
|
117
122
|
* authorization inventory; the forgiving {@link listFilesSync} stays display-only.
|
|
@@ -184,6 +189,18 @@ export interface VerifiedSessionDeleteTarget {
|
|
|
184
189
|
detachedArtifactsPath?: string;
|
|
185
190
|
/** Identity-bound quarantine path retained when transcript unlink deferred cleanup. */
|
|
186
191
|
detachedTranscriptPath?: string;
|
|
192
|
+
/** Native-retained publisher successor observed during transcript cleanup. */
|
|
193
|
+
retainedTranscriptSuccessorPath?: string;
|
|
194
|
+
/** Native-retained exchange placeholder observed during transcript cleanup. */
|
|
195
|
+
retainedTranscriptPlaceholderPath?: string;
|
|
196
|
+
/** Native-retained transcript entry whose identity could not be verified. */
|
|
197
|
+
retainedTranscriptUnknownPath?: string;
|
|
198
|
+
/** Native-retained publisher successor observed during cleanup. */
|
|
199
|
+
retainedArtifactsSuccessorPath?: string;
|
|
200
|
+
/** Native-retained exchange placeholder observed during cleanup. */
|
|
201
|
+
retainedArtifactsPlaceholderPath?: string;
|
|
202
|
+
/** Native-retained entry whose identity could not be verified. */
|
|
203
|
+
retainedArtifactsUnknownPath?: string;
|
|
187
204
|
/** Caller-published, no-replace quarantine pathname for the next artifact detach. */
|
|
188
205
|
plannedArtifactsPath?: string;
|
|
189
206
|
/** Caller-published, no-replace quarantine pathname for the next transcript detach. */
|
|
@@ -215,6 +232,9 @@ export type VerifiedSessionDeleteResult = {
|
|
|
215
232
|
artifactsTree: NativeDirectoryTreeSnapshot;
|
|
216
233
|
/** Transcript identity (unchanged) for retry binding. */
|
|
217
234
|
transcriptIdentity: SessionStorageFileIdentity;
|
|
235
|
+
retainedSuccessorPath?: string;
|
|
236
|
+
retainedPlaceholderPath?: string;
|
|
237
|
+
retainedUnknownPath?: string;
|
|
218
238
|
} | {
|
|
219
239
|
kind: "cleanup_pending";
|
|
220
240
|
phase: "transcript";
|
|
@@ -223,6 +243,9 @@ export type VerifiedSessionDeleteResult = {
|
|
|
223
243
|
transcriptIdentity: SessionStorageFileIdentity;
|
|
224
244
|
/** Optional identity-bound transcript quarantine path for restart cleanup. */
|
|
225
245
|
detachedTranscriptPath?: string;
|
|
246
|
+
retainedSuccessorPath?: string;
|
|
247
|
+
retainedPlaceholderPath?: string;
|
|
248
|
+
retainedUnknownPath?: string;
|
|
226
249
|
};
|
|
227
250
|
type NativeDirectoryTreeEntry = {
|
|
228
251
|
relativePath: string;
|
|
@@ -249,6 +272,10 @@ export declare class FileSessionStorage implements SessionStorage {
|
|
|
249
272
|
readSnapshotSync(fpath: string): SessionStorageSnapshot;
|
|
250
273
|
statSync(path: string): SessionStorageStat;
|
|
251
274
|
listFilesSync(dir: string, pattern: string): string[];
|
|
275
|
+
listFilesByMtime(dir: string, pattern: string): Promise<Array<{
|
|
276
|
+
path: string;
|
|
277
|
+
mtimeMs: number;
|
|
278
|
+
}>>;
|
|
252
279
|
listFilesStrictSync(dir: string, pattern: string): string[];
|
|
253
280
|
exists(path: string): Promise<boolean>;
|
|
254
281
|
readText(path: string): Promise<string>;
|
|
@@ -281,6 +308,10 @@ export declare class MemorySessionStorage implements SessionStorage {
|
|
|
281
308
|
readSnapshotSync(path: string): SessionStorageSnapshot;
|
|
282
309
|
statSync(path: string): SessionStorageStat;
|
|
283
310
|
listFilesSync(dir: string, pattern: string): string[];
|
|
311
|
+
listFilesByMtime(dir: string, pattern: string): Promise<Array<{
|
|
312
|
+
path: string;
|
|
313
|
+
mtimeMs: number;
|
|
314
|
+
}>>;
|
|
284
315
|
listFilesStrictSync(dir: string, pattern: string): string[];
|
|
285
316
|
exists(path: string): Promise<boolean>;
|
|
286
317
|
readText(path: string): Promise<string>;
|
|
@@ -83,7 +83,10 @@ export interface TruncationResult {
|
|
|
83
83
|
elidedLines?: number;
|
|
84
84
|
lastLinePartial?: boolean;
|
|
85
85
|
firstLineExceedsLimit?: boolean;
|
|
86
|
+
lastLineExceedsLimit?: boolean;
|
|
86
87
|
}
|
|
88
|
+
/** Direction vocabulary used by callers that select which end of content to retain. */
|
|
89
|
+
export type TruncationDirection = "head" | "last" | "both";
|
|
87
90
|
export interface TruncationOptions {
|
|
88
91
|
/** Maximum number of lines (default: 3000) */
|
|
89
92
|
maxLines?: number;
|
|
@@ -99,6 +102,8 @@ export interface TruncationOptions {
|
|
|
99
102
|
* window receives `maxLines - maxHeadLines`. Default `floor(maxLines/2)`.
|
|
100
103
|
*/
|
|
101
104
|
maxHeadLines?: number;
|
|
105
|
+
/** Direction to dispatch through truncateContent (head, last, or both). */
|
|
106
|
+
direction?: TruncationDirection;
|
|
102
107
|
}
|
|
103
108
|
/** Result from byte-level truncation helpers. */
|
|
104
109
|
export interface ByteTruncationResult {
|
|
@@ -155,14 +160,64 @@ export declare function truncateTail(content: string, options?: TruncationOption
|
|
|
155
160
|
*/
|
|
156
161
|
export declare function formatMiddleElisionMarker(elidedLines: number, elidedBytes: number): string;
|
|
157
162
|
/**
|
|
158
|
-
*
|
|
163
|
+
* A retained source segment returned by {@link truncateMiddleWindows}.
|
|
164
|
+
* Line coordinates are 1-indexed and inclusive.
|
|
165
|
+
*/
|
|
166
|
+
export type ReadSegment = {
|
|
167
|
+
kind: "lines";
|
|
168
|
+
content: string;
|
|
169
|
+
lines: number;
|
|
170
|
+
bytes: number;
|
|
171
|
+
origin: {
|
|
172
|
+
startLine: number;
|
|
173
|
+
endLine: number;
|
|
174
|
+
};
|
|
175
|
+
lastLinePartial: false;
|
|
176
|
+
} | {
|
|
177
|
+
kind: "partial-line";
|
|
178
|
+
content: string;
|
|
179
|
+
lines: 1;
|
|
180
|
+
bytes: number;
|
|
181
|
+
origin: {
|
|
182
|
+
startLine: number;
|
|
183
|
+
endLine: number;
|
|
184
|
+
};
|
|
185
|
+
sourceLineBytes: number;
|
|
186
|
+
lastLinePartial: true;
|
|
187
|
+
};
|
|
188
|
+
/** The actual windows retained by middle truncation. */
|
|
189
|
+
export interface ReadWindow {
|
|
190
|
+
kind: "full" | "head-only" | "tail-only" | "middle";
|
|
191
|
+
head?: ReadSegment;
|
|
192
|
+
tail?: ReadSegment;
|
|
193
|
+
overlap: "disjoint" | "adjacent" | "overlapping";
|
|
194
|
+
elidedLines: number;
|
|
195
|
+
elidedBytes: number;
|
|
196
|
+
totalLines: number;
|
|
197
|
+
totalBytes: number;
|
|
198
|
+
/** @deprecated Non-enumerable compatibility reason for older consumers. */
|
|
199
|
+
truncatedBy?: "lines" | "bytes" | "middle";
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Truncate content while exposing the exact retained head/tail windows.
|
|
159
203
|
*
|
|
160
|
-
* The
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
204
|
+
* The budget split and fallback ordering intentionally mirror truncateMiddle.
|
|
205
|
+
* The overlap classification is performed before resolving an overlap to a
|
|
206
|
+
* full window, so callers can distinguish disjoint, adjacent and overlapping
|
|
207
|
+
* candidate windows even when no marker is needed.
|
|
208
|
+
*/
|
|
209
|
+
export declare function truncateMiddleWindows(content: string, options?: TruncationOptions): ReadWindow;
|
|
210
|
+
/**
|
|
211
|
+
* Truncate content keeping a head window and a tail window, eliding the middle.
|
|
212
|
+
* The composed return shape remains field-for-field compatible with the
|
|
213
|
+
* historical implementation; callers that need coordinates use
|
|
214
|
+
* truncateMiddleWindows directly.
|
|
164
215
|
*/
|
|
165
216
|
export declare function truncateMiddle(content: string, options?: TruncationOptions): TruncationResult;
|
|
217
|
+
/**
|
|
218
|
+
* Dispatch truncation using the caller-facing direction vocabulary.
|
|
219
|
+
*/
|
|
220
|
+
export declare function truncateContent(content: string, options?: TruncationOptions): TruncationResult;
|
|
166
221
|
export declare class TailBuffer {
|
|
167
222
|
#private;
|
|
168
223
|
readonly maxBytes: number;
|
|
@@ -73,7 +73,11 @@ export declare function discoverExternalCredentials(options?: DiscoveryOptions):
|
|
|
73
73
|
export declare function formatCredentialSummary(credential: ImportableCredential): string;
|
|
74
74
|
/** Redacted summary lines for an entire discovery result. Never includes secrets. */
|
|
75
75
|
export declare function formatDiscoverySummary(result: CredentialDiscoveryResult): string[];
|
|
76
|
-
|
|
76
|
+
/** Reason shown when automatic OAuth import rejects an unusable discovery record. */
|
|
77
|
+
export declare const INVALID_AUTO_IMPORT_OAUTH_EXPIRY_REASON = "OAuth credential has no valid future expiry";
|
|
78
|
+
export declare function isAutoImportOAuthCredential(credential: ImportableCredential, now?: number): boolean;
|
|
79
|
+
/** Keep rejected OAuth discoveries visible to operators without offering them for automatic import. */
|
|
80
|
+
export declare function getAutoImportOAuthCredentialSkips(credentials: readonly ImportableCredential[], now?: number): SkippedCredential[];
|
|
77
81
|
export declare function filterAutoImportOAuthCredentials(credentials: readonly ImportableCredential[]): ImportableCredential[];
|
|
78
82
|
/**
|
|
79
83
|
* Persist discovered credentials via `upsert`. Each credential is imported
|
|
@@ -37,6 +37,7 @@ interface ProviderPreset {
|
|
|
37
37
|
baseUrl: string;
|
|
38
38
|
apiKeyEnv: string;
|
|
39
39
|
models: readonly string[];
|
|
40
|
+
modelApi?: Readonly<Record<string, ProviderSetupApi>>;
|
|
40
41
|
compat?: ProviderCompatConfig;
|
|
41
42
|
}
|
|
42
43
|
export declare const PROVIDER_PRESETS: readonly ProviderPreset[];
|
|
@@ -47,6 +48,7 @@ export declare function findProviderPreset(value: string | undefined): ProviderP
|
|
|
47
48
|
export declare function formatProviderPresetList(): string;
|
|
48
49
|
export declare function parseModelList(values: readonly string[]): string[];
|
|
49
50
|
export declare function redactSecret(secret: string): string;
|
|
51
|
+
export declare function validateModelApi(modelApi: Readonly<Record<string, string>> | undefined, models: readonly string[], presetId: string): void;
|
|
50
52
|
export declare function addApiCompatibleProvider(input: ProviderSetupInput): Promise<ProviderSetupResult>;
|
|
51
53
|
export declare function formatProviderSetupResult(result: ProviderSetupResult): string;
|
|
52
54
|
export {};
|
|
@@ -4,7 +4,7 @@ export * from "./deep-interview-recorder";
|
|
|
4
4
|
*
|
|
5
5
|
* The CLI itself does not run the Socratic interview; that lives inside the `/skill:deep-interview`
|
|
6
6
|
* skill executed by the agent. This handler validates the documented argument-hint surface
|
|
7
|
-
* (`[--quick|--standard|--deep] <idea>`), seeds `.skc/state/deep-interview-state.json`, and
|
|
7
|
+
* (`[--trace] [--quick|--standard|--deep] <idea>`), seeds `.skc/state/deep-interview-state.json`, and
|
|
8
8
|
* updates the shared HUD rail via `syncSkillActiveState` so the active interview is visible to
|
|
9
9
|
* the TUI.
|
|
10
10
|
*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CommandError } from "./workflow-cli-common";
|
|
2
|
+
export declare const DEEP_INTERVIEW_STAGE_TRANSITIONS: readonly ["initialize-context", "record-round", "update-facts", "merge-state"];
|
|
3
|
+
export type DeepInterviewStageTransition = (typeof DEEP_INTERVIEW_STAGE_TRANSITIONS)[number];
|
|
4
|
+
declare const DRAFT_VERSION = 1;
|
|
5
|
+
export type DeepInterviewStageErrorCode = "DI_STAGE_USAGE" | "DI_STAGE_INPUT_INVALID" | "DI_STAGE_SESSION_REQUIRED" | "DI_STAGE_DRAFT_EXISTS" | "DI_STAGE_NO_DRAFT" | "DI_STAGE_DRAFT_CORRUPT" | "DI_STAGE_STATE_MISSING" | "DI_STAGE_STATE_CORRUPT" | "DI_STAGE_REVISION_CONFLICT" | "DI_STAGE_MERGE_REJECTED";
|
|
6
|
+
export declare class DeepInterviewStageError extends CommandError {
|
|
7
|
+
readonly code: DeepInterviewStageErrorCode;
|
|
8
|
+
readonly recovery?: string | undefined;
|
|
9
|
+
constructor(code: DeepInterviewStageErrorCode, message: string, recovery?: string | undefined);
|
|
10
|
+
}
|
|
11
|
+
export interface DeepInterviewStageDraft {
|
|
12
|
+
version: typeof DRAFT_VERSION;
|
|
13
|
+
draft_id: string;
|
|
14
|
+
session_id: string;
|
|
15
|
+
transition: DeepInterviewStageTransition;
|
|
16
|
+
/** State revision the draft was staged against; `apply` CAS-checks this. */
|
|
17
|
+
staged_against_revision: number;
|
|
18
|
+
/**
|
|
19
|
+
* Canonical content SHA-256 of the state the draft was staged against. Revision
|
|
20
|
+
* alone cannot catch sanctioned writers that do not bump `state_revision`
|
|
21
|
+
* (seed/spec-persistence), so `apply` requires BOTH to match.
|
|
22
|
+
*/
|
|
23
|
+
staged_against_sha256: string;
|
|
24
|
+
payload: Record<string, unknown>;
|
|
25
|
+
created_at: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DeepInterviewStageCommandResult {
|
|
28
|
+
status: number;
|
|
29
|
+
stdout?: string;
|
|
30
|
+
stderr?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function deepInterviewDraftPath(cwd: string, sessionId: string): string;
|
|
33
|
+
export declare const DEEP_INTERVIEW_STAGE_VERBS: readonly ["stage", "check", "apply", "discard", "read", "write", "clear", "handoff"];
|
|
34
|
+
export type DeepInterviewStageVerb = (typeof DEEP_INTERVIEW_STAGE_VERBS)[number];
|
|
35
|
+
export declare function isDeepInterviewStageVerb(value: string | undefined): value is DeepInterviewStageVerb;
|
|
36
|
+
export declare function runDeepInterviewStageCommand(verb: DeepInterviewStageVerb, args: readonly string[], cwd?: string): Promise<DeepInterviewStageCommandResult>;
|
|
37
|
+
export {};
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* error all mean KEEP — a live process is never signalled or killed.
|
|
13
13
|
* - Dry-run by default: nothing is deleted unless `--prune`/`--force`.
|
|
14
14
|
*/
|
|
15
|
-
export type GcStore = "harness_leases" | "team_workers" | "file_locks" | "tmux_sessions" | "registry_entries";
|
|
15
|
+
export type GcStore = "harness_leases" | "team_workers" | "file_locks" | "tmux_sessions" | "registry_entries" | "local_roots";
|
|
16
16
|
export declare const GC_STORES: readonly GcStore[];
|
|
17
17
|
/** Why a probed pid is kept instead of treated as dead. */
|
|
18
18
|
export type GcPidKeepReason = "alive" | "eperm" | "unknown";
|
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared helpers for reading Linux `/proc/<pid>/stat` process
|
|
2
|
+
* Shared helpers for reading Linux `/proc/<pid>/stat` process identity fields.
|
|
3
3
|
*
|
|
4
4
|
* The `comm` field (field 2, wrapped in parentheses) may itself contain spaces
|
|
5
5
|
* and parentheses, so the only robust anchor is the *last* `)` in the stat
|
|
6
6
|
* string. Field 22 (the process start time in clock ticks since boot) is the
|
|
7
|
-
* 20th whitespace-separated token after that closing paren (index 19).
|
|
8
|
-
*
|
|
9
|
-
* Every caller previously parsed this format independently, with subtly
|
|
10
|
-
* different failure handling. This module fails closed: any malformed input
|
|
11
|
-
* (missing `)`, non-numeric field 22, unreadable `/proc` file, non-Linux
|
|
12
|
-
* platform) yields `null` rather than an inconsistent sentinel.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Parse field 22 (process start time, in clock ticks since boot) from one
|
|
16
|
-
* `/proc/<pid>/stat` record. Returns the raw numeric token, or `null` when the
|
|
17
|
-
* record shape is malformed or field 22 is absent/non-numeric.
|
|
7
|
+
* 20th whitespace-separated token after that closing paren (index 19). Field 7
|
|
8
|
+
* (`tty_nr`) is the 5th token after the closing paren (index 4).
|
|
18
9
|
*/
|
|
10
|
+
export interface LinuxProcStatIdentity {
|
|
11
|
+
startTime: string;
|
|
12
|
+
ttyDevice: string;
|
|
13
|
+
}
|
|
14
|
+
export type LinuxProcPidProbeResult = ({
|
|
15
|
+
kind: "live";
|
|
16
|
+
} & LinuxProcStatIdentity) | {
|
|
17
|
+
kind: "absent";
|
|
18
|
+
} | {
|
|
19
|
+
kind: "unverifiable";
|
|
20
|
+
reason: "unsupported_platform" | "invalid_pid" | "permission_denied" | "read_error" | "malformed_stat";
|
|
21
|
+
};
|
|
22
|
+
/** Parse field 22 (start time) from a `/proc/<pid>/stat` record. */
|
|
19
23
|
export declare function parseLinuxProcStartTime(stat: string | null | undefined): string | null;
|
|
24
|
+
/** Parse field 7 (`tty_nr`) from a `/proc/<pid>/stat` record. */
|
|
25
|
+
export declare function parseLinuxProcTtyDevice(stat: string | null | undefined): string | null;
|
|
26
|
+
export declare function probeLinuxProcPidSync(pid: number): LinuxProcPidProbeResult;
|
|
27
|
+
export declare function probeLinuxProcPid(pid: number): Promise<LinuxProcPidProbeResult>;
|
|
20
28
|
/**
|
|
21
29
|
* Read `/proc/<pid>/stat` synchronously and return the parsed start time.
|
|
22
|
-
* Returns `null`
|
|
30
|
+
* Returns `null` when the probe is absent or unverifiable.
|
|
23
31
|
*/
|
|
24
32
|
export declare function readLinuxProcStartTimeSync(pid: number): string | null;
|
|
25
33
|
/**
|
|
26
34
|
* Read `/proc/<pid>/stat` asynchronously and return the parsed start time.
|
|
27
|
-
* Returns `null`
|
|
35
|
+
* Returns `null` when the probe is absent or unverifiable.
|
|
28
36
|
*/
|
|
29
37
|
export declare function readLinuxProcStartTime(pid: number): Promise<string | null>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type LinuxProcPidProbeResult } from "./linux-proc";
|
|
2
|
+
declare const MEMORY_GUARD_CLAIM_RESOURCES: readonly ["writer", "tty"];
|
|
3
|
+
type MemoryGuardClaimResource = (typeof MEMORY_GUARD_CLAIM_RESOURCES)[number];
|
|
4
|
+
export interface MemoryGuardClaimOwner {
|
|
5
|
+
sessionId: string;
|
|
6
|
+
generation: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
childToken: string;
|
|
9
|
+
pid: number;
|
|
10
|
+
processStartTime: string;
|
|
11
|
+
ttyDevice: string;
|
|
12
|
+
}
|
|
13
|
+
export interface MemoryGuardClaimsLease {
|
|
14
|
+
writerEpoch: number;
|
|
15
|
+
ttyEpoch: number;
|
|
16
|
+
owner: MemoryGuardClaimOwner;
|
|
17
|
+
claimStorePath: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function isMemoryGuardClaimsLease(value: unknown): value is MemoryGuardClaimsLease;
|
|
20
|
+
export declare function isMemoryGuardClaimsLeaseForStateDir(value: unknown, stateDir: string): value is MemoryGuardClaimsLease;
|
|
21
|
+
export type MemoryGuardClaimsReleasedProof = MemoryGuardClaimsLease;
|
|
22
|
+
interface PersistedMemoryGuardClaimRow {
|
|
23
|
+
resource: MemoryGuardClaimResource;
|
|
24
|
+
epoch: number;
|
|
25
|
+
session_id: string;
|
|
26
|
+
generation: string;
|
|
27
|
+
run_id: string;
|
|
28
|
+
child_token: string;
|
|
29
|
+
pid: number;
|
|
30
|
+
process_start_time: string;
|
|
31
|
+
tty_device: string;
|
|
32
|
+
acquired_at: string;
|
|
33
|
+
}
|
|
34
|
+
export interface MemoryGuardOwnerClaimsDeps {
|
|
35
|
+
probePid(pid: number): Promise<LinuxProcPidProbeResult>;
|
|
36
|
+
now(): string;
|
|
37
|
+
}
|
|
38
|
+
export declare function memoryGuardClaimsDatabaseFile(stateDir: string, sessionId: string): string;
|
|
39
|
+
export declare function acquireMemoryGuardClaims(stateDir: string, owner: MemoryGuardClaimOwner, deps?: MemoryGuardOwnerClaimsDeps): Promise<MemoryGuardClaimsLease>;
|
|
40
|
+
export declare function releaseMemoryGuardClaims(stateDir: string, claim: MemoryGuardClaimsLease): Promise<void>;
|
|
41
|
+
export declare function probeMemoryGuardClaimsReleased(stateDir: string, owner: MemoryGuardClaimOwner, deps?: MemoryGuardOwnerClaimsDeps): Promise<MemoryGuardClaimsReleasedProof>;
|
|
42
|
+
export interface PersistedMemoryGuardClaimsSnapshot {
|
|
43
|
+
epoch: number;
|
|
44
|
+
claims: PersistedMemoryGuardClaimRow[];
|
|
45
|
+
}
|
|
46
|
+
export declare function readMemoryGuardClaimsForTest(stateDir: string, sessionId: string): Promise<PersistedMemoryGuardClaimsSnapshot>;
|
|
47
|
+
export {};
|