@cjhyy/code-shell-core 0.7.1 → 0.8.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/README.md +36 -23
- package/dist/agent/agent-definition-registry.d.ts +2 -2
- package/dist/agent/agent-definition-registry.js +47 -10
- package/dist/agent/agent-definition.d.ts +5 -0
- package/dist/agent/agent-definition.js +14 -0
- package/dist/automation/index.d.ts +7 -4
- package/dist/automation/index.js +4 -2
- package/dist/automation/runner.js +3 -1
- package/dist/automation/scheduler.d.ts +57 -1
- package/dist/automation/scheduler.js +123 -23
- package/dist/automation/store.d.ts +6 -2
- package/dist/automation/store.js +7 -3
- package/dist/capabilities/index.d.ts +109 -0
- package/dist/capabilities/index.js +80 -0
- package/dist/capability-control/disabled-lists.d.ts +2 -1
- package/dist/capability-control/disabled-lists.js +3 -5
- package/dist/capability-control/overlay.d.ts +14 -1
- package/dist/capability-control/overlay.js +40 -0
- package/dist/capability-control/service.js +6 -4
- package/dist/cli/agent-server-stdio.d.ts +1 -1
- package/dist/cli/agent-server-stdio.js +66 -6
- package/dist/cli/agent-server-tcp.js +7 -3
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +17 -1
- package/dist/context/manager.js +36 -1
- package/dist/credentials/access.d.ts +3 -1
- package/dist/credentials/access.js +24 -3
- package/dist/credentials/index.d.ts +1 -1
- package/dist/credentials/index.js +1 -1
- package/dist/credentials/oauth.d.ts +4 -1
- package/dist/credentials/oauth.js +14 -0
- package/dist/credentials/store.d.ts +15 -1
- package/dist/credentials/store.js +17 -4
- package/dist/credentials/types.d.ts +24 -0
- package/dist/credentials/use-credential-tool.js +15 -1
- package/dist/engine/auxiliary-pipeline.d.ts +40 -0
- package/dist/engine/auxiliary-pipeline.js +181 -0
- package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
- package/dist/{settings → engine}/disk-defaults.js +5 -2
- package/dist/engine/dynamic-tool-defs.d.ts +4 -0
- package/dist/engine/dynamic-tool-defs.js +4 -0
- package/dist/engine/engine.d.ts +254 -195
- package/dist/engine/engine.js +1812 -2041
- package/dist/engine/file-history-hook.d.ts +11 -0
- package/dist/engine/file-history-hook.js +31 -0
- package/dist/engine/goal-judge-context.d.ts +9 -0
- package/dist/engine/goal-judge-context.js +234 -0
- package/dist/engine/injected-context-cache.d.ts +6 -0
- package/dist/engine/injected-context-cache.js +13 -0
- package/dist/engine/input-attachments.d.ts +1 -1
- package/dist/engine/model-facade.d.ts +3 -3
- package/dist/engine/model-facade.js +15 -14
- package/dist/engine/permission-controller.d.ts +55 -0
- package/dist/engine/permission-controller.js +148 -0
- package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
- package/dist/engine/prompt-cache-diagnostics.js +178 -0
- package/dist/engine/run-accounting.d.ts +41 -0
- package/dist/engine/run-accounting.js +126 -0
- package/dist/engine/run-context.d.ts +44 -0
- package/dist/engine/run-context.js +88 -0
- package/dist/engine/run-environment.d.ts +30 -0
- package/dist/engine/run-environment.js +77 -0
- package/dist/engine/run-finalize.d.ts +58 -0
- package/dist/engine/run-finalize.js +245 -0
- package/dist/engine/run-goal.d.ts +58 -0
- package/dist/engine/run-goal.js +188 -0
- package/dist/engine/run-image-input.d.ts +1 -1
- package/dist/engine/run-image-input.js +5 -3
- package/dist/engine/run-session-open.d.ts +41 -0
- package/dist/engine/run-session-open.js +186 -0
- package/dist/engine/run-setup.d.ts +42 -0
- package/dist/engine/run-setup.js +58 -0
- package/dist/engine/run-tooling.d.ts +125 -0
- package/dist/engine/run-tooling.js +283 -0
- package/dist/engine/run-types.d.ts +139 -0
- package/dist/engine/run-types.js +12 -0
- package/dist/engine/run-workspace.d.ts +50 -0
- package/dist/engine/run-workspace.js +114 -0
- package/dist/engine/steer-queue.d.ts +1 -1
- package/dist/engine/subagent-spawner.d.ts +32 -0
- package/dist/engine/subagent-spawner.js +287 -0
- package/dist/engine/tool-summary.d.ts +2 -2
- package/dist/engine/tool-summary.js +2 -2
- package/dist/engine/turn-loop.d.ts +49 -10
- package/dist/engine/turn-loop.js +370 -104
- package/dist/engine/types.d.ts +30 -3
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +24 -10
- package/dist/hooks/goal-stop-hook.d.ts +17 -28
- package/dist/hooks/goal-stop-hook.js +110 -465
- package/dist/hooks/registry.js +1 -1
- package/dist/index.d.ts +48 -108
- package/dist/index.extension.d.ts +51 -0
- package/dist/index.extension.js +39 -0
- package/dist/index.internal.d.ts +86 -0
- package/dist/index.internal.js +92 -0
- package/dist/index.js +34 -123
- package/dist/links/cli.d.ts +48 -0
- package/dist/links/cli.js +617 -0
- package/dist/links/http.d.ts +40 -0
- package/dist/links/http.js +166 -0
- package/dist/links/index.d.ts +4 -0
- package/dist/links/index.js +3 -0
- package/dist/links/link-action-tool.d.ts +5 -0
- package/dist/links/link-action-tool.js +241 -0
- package/dist/links/providers.d.ts +8 -0
- package/dist/links/providers.js +665 -0
- package/dist/links/types.d.ts +44 -0
- package/dist/llm/client-base.d.ts +7 -0
- package/dist/llm/client-base.js +60 -0
- package/dist/llm/model-pool.d.ts +1 -1
- package/dist/llm/model-pool.js +1 -1
- package/dist/llm/providers/anthropic.d.ts +1 -0
- package/dist/llm/providers/anthropic.js +9 -0
- package/dist/llm/providers/openai.d.ts +1 -0
- package/dist/llm/providers/openai.js +17 -0
- package/dist/model-catalog/index.js +15 -2
- package/dist/model-catalog/resolve.d.ts +13 -1
- package/dist/model-catalog/resolve.js +37 -2
- package/dist/model-catalog/types.d.ts +74 -48
- package/dist/model-catalog/types.js +16 -5
- package/dist/model-catalog/upsert.d.ts +3 -1
- package/dist/model-catalog/upsert.js +9 -0
- package/dist/onboarding.d.ts +0 -1
- package/dist/onboarding.js +1 -22
- package/dist/panel-apps/bindings.d.ts +24 -0
- package/dist/panel-apps/bindings.js +69 -0
- package/dist/panel-apps/github-archive.d.ts +21 -0
- package/dist/panel-apps/github-archive.js +98 -0
- package/dist/panel-apps/index.d.ts +4 -0
- package/dist/panel-apps/index.js +4 -0
- package/dist/panel-apps/installer.d.ts +68 -0
- package/dist/panel-apps/installer.js +622 -0
- package/dist/panel-apps/manifest.d.ts +364 -0
- package/dist/panel-apps/manifest.js +189 -0
- package/dist/panel-apps/paths.d.ts +13 -0
- package/dist/panel-apps/paths.js +38 -0
- package/dist/panel-apps/registry.d.ts +51 -0
- package/dist/panel-apps/registry.js +99 -0
- package/dist/panel-apps/runtime.d.ts +80 -0
- package/dist/panel-apps/runtime.js +154 -0
- package/dist/plugins/gitOps.js +8 -1
- package/dist/plugins/installedPlugins.d.ts +2 -1
- package/dist/plugins/installedPlugins.js +146 -8
- package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
- package/dist/plugins/installer/codex/convertAgents.js +62 -8
- package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
- package/dist/plugins/installer/codex/convertCommands.js +35 -12
- package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
- package/dist/plugins/installer/codex/convertHooks.js +82 -0
- package/dist/plugins/installer/codex/convertSkills.js +41 -6
- package/dist/plugins/installer/install.d.ts +7 -1
- package/dist/plugins/installer/install.js +21 -87
- package/dist/plugins/installer/installFromArchive.d.ts +26 -4
- package/dist/plugins/installer/installFromArchive.js +44 -27
- package/dist/plugins/installer/installFromNpm.d.ts +31 -0
- package/dist/plugins/installer/installFromNpm.js +273 -0
- package/dist/plugins/installer/loadPluginAgents.js +17 -4
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +245 -35
- package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
- package/dist/plugins/installer/normalizeManifest.js +306 -0
- package/dist/plugins/installer/npmTar.d.ts +13 -0
- package/dist/plugins/installer/npmTar.js +321 -0
- package/dist/plugins/installer/parseSource.d.ts +11 -0
- package/dist/plugins/installer/parseSource.js +48 -0
- package/dist/plugins/installer/preview.d.ts +101 -0
- package/dist/plugins/installer/preview.js +336 -0
- package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
- package/dist/plugins/installer/projectPluginSource.js +140 -0
- package/dist/plugins/installer/types.d.ts +775 -0
- package/dist/plugins/installer/types.js +100 -0
- package/dist/plugins/installer/unzip.d.ts +11 -0
- package/dist/plugins/installer/unzip.js +123 -9
- package/dist/plugins/installer/update.d.ts +2 -2
- package/dist/plugins/installer/update.js +43 -4
- package/dist/plugins/loadPluginHooks.d.ts +19 -2
- package/dist/plugins/loadPluginHooks.js +97 -86
- package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
- package/dist/plugins/pluginAutomationTemplates.js +50 -0
- package/dist/plugins/pluginCatalog.d.ts +45 -0
- package/dist/plugins/pluginCatalog.js +87 -0
- package/dist/plugins/pluginCommandHook.d.ts +6 -0
- package/dist/plugins/pluginCommandHook.js +25 -8
- package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
- package/dist/plugins/pluginCommandsLoader.js +181 -7
- package/dist/plugins/pluginContent.d.ts +10 -1
- package/dist/plugins/pluginContent.js +87 -30
- package/dist/plugins/pluginHookApproval.d.ts +30 -0
- package/dist/plugins/pluginHookApproval.js +160 -0
- package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
- package/dist/plugins/pluginHookIntegrity.js +361 -0
- package/dist/plugins/pluginInstaller.js +71 -12
- package/dist/plugins/pluginMcpApproval.d.ts +19 -0
- package/dist/plugins/pluginMcpApproval.js +110 -0
- package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
- package/dist/plugins/pluginMcpIntegrity.js +74 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/varRewrite.d.ts +9 -5
- package/dist/plugins/varRewrite.js +26 -17
- package/dist/preset/index.d.ts +11 -8
- package/dist/preset/index.js +62 -203
- package/dist/product/define.js +9 -3
- package/dist/product/types.d.ts +0 -2
- package/dist/profile/activation.d.ts +36 -0
- package/dist/profile/activation.js +57 -0
- package/dist/profile/catalog-store.d.ts +77 -0
- package/dist/profile/catalog-store.js +346 -0
- package/dist/profile/catalog.d.ts +54 -0
- package/dist/profile/catalog.js +152 -0
- package/dist/profile/index.d.ts +7 -0
- package/dist/profile/index.js +7 -0
- package/dist/profile/requirements.d.ts +76 -0
- package/dist/profile/requirements.js +117 -0
- package/dist/profile/resolve.d.ts +11 -0
- package/dist/profile/resolve.js +41 -0
- package/dist/profile/store.d.ts +17 -0
- package/dist/profile/store.js +167 -0
- package/dist/profile/types.d.ts +321 -0
- package/dist/profile/types.js +104 -0
- package/dist/prompt/composer.d.ts +46 -7
- package/dist/prompt/composer.js +78 -48
- package/dist/prompt/instruction-scanner.d.ts +6 -5
- package/dist/prompt/instruction-scanner.js +8 -23
- package/dist/prompt/section-loader.d.ts +2 -2
- package/dist/prompt/section-loader.js +7 -4
- package/dist/prompt/sections/browser.md +10 -9
- package/dist/prompt/sections/harness-base.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +64 -1
- package/dist/protocol/chat-session-manager.js +104 -0
- package/dist/protocol/chat-session.d.ts +61 -10
- package/dist/protocol/chat-session.js +135 -25
- package/dist/protocol/client.d.ts +33 -3
- package/dist/protocol/client.js +96 -5
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +2 -2
- package/dist/protocol/mobile-remote-types.d.ts +406 -0
- package/dist/protocol/mobile-remote-types.js +1 -0
- package/dist/protocol/server.d.ts +127 -3
- package/dist/protocol/server.js +1309 -182
- package/dist/protocol/types.d.ts +152 -34
- package/dist/protocol/types.js +16 -0
- package/dist/run/ArtifactTracker.d.ts +6 -1
- package/dist/run/ArtifactTracker.js +29 -21
- package/dist/run/EngineRunner.d.ts +2 -0
- package/dist/run/EngineRunner.js +1 -0
- package/dist/run/RunManager.d.ts +26 -0
- package/dist/run/RunManager.js +82 -11
- package/dist/run/factory.d.ts +3 -0
- package/dist/run/factory.js +2 -0
- package/dist/runtime/safe-spawn.d.ts +6 -0
- package/dist/runtime/safe-spawn.js +8 -13
- package/dist/services/auto-dream.d.ts +13 -1
- package/dist/services/auto-dream.js +56 -8
- package/dist/services/dream-consolidation.js +10 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.js +4 -1
- package/dist/services/session-memory.d.ts +4 -4
- package/dist/services/session-memory.js +13 -10
- package/dist/session/memory.d.ts +26 -7
- package/dist/session/memory.js +79 -21
- package/dist/session/session-manager.d.ts +182 -28
- package/dist/session/session-manager.js +910 -130
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +46 -5
- package/dist/session/transcript.js +159 -3
- package/dist/settings/feature-flags.d.ts +40 -0
- package/dist/settings/feature-flags.js +40 -0
- package/dist/settings/manager.d.ts +39 -1
- package/dist/settings/manager.js +102 -41
- package/dist/settings/migrate-config.js +4 -2
- package/dist/settings/schema.d.ts +511 -177
- package/dist/settings/schema.js +98 -25
- package/dist/skills/scanner.d.ts +6 -2
- package/dist/skills/scanner.js +160 -9
- package/dist/sources/adapter.d.ts +14 -0
- package/dist/sources/adapter.js +7 -0
- package/dist/sources/adapters/local-files.d.ts +10 -0
- package/dist/sources/adapters/local-files.js +127 -0
- package/dist/sources/adapters/mcp-resource.d.ts +17 -0
- package/dist/sources/adapters/mcp-resource.js +41 -0
- package/dist/sources/adapters/mock.d.ts +3 -0
- package/dist/sources/adapters/mock.js +29 -0
- package/dist/sources/binding.d.ts +6 -0
- package/dist/sources/binding.js +24 -0
- package/dist/sources/catalog.d.ts +6 -0
- package/dist/sources/catalog.js +64 -0
- package/dist/sources/context-summary.d.ts +8 -0
- package/dist/sources/context-summary.js +13 -0
- package/dist/sources/credential-status.d.ts +2 -0
- package/dist/sources/credential-status.js +13 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/resolve.d.ts +28 -0
- package/dist/sources/resolve.js +47 -0
- package/dist/sources/truncate-utf8.d.ts +7 -0
- package/dist/sources/truncate-utf8.js +18 -0
- package/dist/sources/types.d.ts +71 -0
- package/dist/sources/types.js +26 -0
- package/dist/testing/fetch-stub.d.ts +32 -0
- package/dist/testing/fetch-stub.js +24 -0
- package/dist/themes/image.d.ts +18 -0
- package/dist/themes/image.js +117 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.js +4 -0
- package/dist/themes/installer.d.ts +50 -0
- package/dist/themes/installer.js +290 -0
- package/dist/themes/manifest.d.ts +102 -0
- package/dist/themes/manifest.js +86 -0
- package/dist/themes/paths.d.ts +14 -0
- package/dist/themes/paths.js +33 -0
- package/dist/tool-system/browser-bridge.d.ts +53 -11
- package/dist/tool-system/browser-bridge.js +8 -9
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
- package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
- package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
- package/dist/tool-system/builtin/agent-notifications.js +291 -101
- package/dist/tool-system/builtin/agent-output-file.js +1 -3
- package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
- package/dist/tool-system/builtin/agent-progress.js +83 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
- package/dist/tool-system/builtin/agent-registry.js +178 -9
- package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
- package/dist/tool-system/builtin/agent.d.ts +2 -0
- package/dist/tool-system/builtin/agent.js +274 -33
- package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
- package/dist/tool-system/builtin/background-jobs.js +96 -4
- package/dist/tool-system/builtin/background-work.d.ts +6 -0
- package/dist/tool-system/builtin/background-work.js +8 -1
- package/dist/tool-system/builtin/bash.js +5 -2
- package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
- package/dist/tool-system/builtin/browser-tools.js +89 -23
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
- package/dist/tool-system/builtin/edit.js +2 -6
- package/dist/tool-system/builtin/file-cache.d.ts +2 -0
- package/dist/tool-system/builtin/file-cache.js +4 -0
- package/dist/tool-system/builtin/generate-image.js +17 -10
- package/dist/tool-system/builtin/generate-video.js +26 -7
- package/dist/tool-system/builtin/grep.js +2 -2
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +32 -7
- package/dist/tool-system/builtin/index.js +237 -167
- package/dist/tool-system/builtin/memory.d.ts +6 -0
- package/dist/tool-system/builtin/memory.js +36 -15
- package/dist/tool-system/builtin/panel.d.ts +9 -0
- package/dist/tool-system/builtin/panel.js +314 -0
- package/dist/tool-system/builtin/read.js +5 -1
- package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
- package/dist/tool-system/builtin/send-message-to-session.js +67 -0
- package/dist/tool-system/builtin/sources.d.ts +8 -0
- package/dist/tool-system/builtin/sources.js +137 -0
- package/dist/tool-system/builtin/tool-search.js +7 -2
- package/dist/tool-system/builtin/update-automation-memory.js +2 -0
- package/dist/tool-system/builtin/web-fetch.js +17 -13
- package/dist/tool-system/builtin/web-search.js +1 -3
- package/dist/tool-system/capability-module.d.ts +93 -0
- package/dist/tool-system/capability-module.js +53 -0
- package/dist/tool-system/context.d.ts +77 -19
- package/dist/tool-system/executor.js +75 -50
- package/dist/tool-system/external-tool-exposure.d.ts +60 -0
- package/dist/tool-system/external-tool-exposure.js +304 -0
- package/dist/tool-system/mcp-manager.d.ts +11 -1
- package/dist/tool-system/mcp-manager.js +19 -4
- package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
- package/dist/tool-system/mcp-tool-policy.js +34 -0
- package/dist/tool-system/panel-bridge.d.ts +53 -0
- package/dist/tool-system/panel-bridge.js +1 -0
- package/dist/tool-system/path-policy.js +99 -2
- package/dist/tool-system/permission.d.ts +26 -0
- package/dist/tool-system/permission.js +46 -0
- package/dist/tool-system/registry.d.ts +12 -1
- package/dist/tool-system/registry.js +31 -7
- package/dist/tool-system/sandbox/index.js +3 -8
- package/dist/tool-system/sandbox/seatbelt.js +2 -6
- package/dist/tool-system/session-tool-host.d.ts +139 -0
- package/dist/tool-system/session-tool-host.js +167 -0
- package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
- package/dist/tool-system/testing/tool-registry-harness.js +51 -0
- package/dist/tool-system/validation.d.ts +14 -7
- package/dist/tool-system/validation.js +701 -7
- package/dist/types.d.ts +186 -20
- package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
- package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
- package/dist/utils/file-mutex.d.ts +65 -0
- package/dist/utils/file-mutex.js +145 -0
- package/dist/utils/json.d.ts +2 -4
- package/dist/utils/json.js +2 -4
- package/dist/utils/lockfile.d.ts +30 -1
- package/dist/utils/lockfile.js +2 -2
- package/dist/utils/secret-scrubber.d.ts +8 -0
- package/dist/utils/secret-scrubber.js +227 -0
- package/dist/utils/toolDisplay.js +1 -1
- package/package.json +20 -5
- package/THIRD_PARTY_NOTICES.md +0 -206
- package/dist/arena/arena.d.ts +0 -45
- package/dist/arena/arena.js +0 -362
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/context/context-tools.js +0 -272
- package/dist/arena/context/within-root.d.ts +0 -7
- package/dist/arena/context/within-root.js +0 -15
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/detect-mode.js +0 -78
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/digest-builder.js +0 -120
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -29
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/convergence.js +0 -103
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/formats/index.js +0 -283
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/index.js +0 -9
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/iterative-arena.js +0 -237
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/parse.js +0 -123
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/argue.js +0 -165
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/revise.js +0 -62
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/phases/tournament.js +0 -113
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/tools/web-tools.js +0 -54
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/iterate/types.js +0 -8
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/ledger.js +0 -159
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/architecture.js +0 -22
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/engineering.js +0 -22
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/general.js +0 -20
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/index.js +0 -47
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/lenses/product.js +0 -22
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/model-presets.js +0 -44
- package/dist/arena/phases/adjudication.d.ts +0 -25
- package/dist/arena/phases/adjudication.js +0 -142
- package/dist/arena/phases/build-consensus.d.ts +0 -30
- package/dist/arena/phases/build-consensus.js +0 -85
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/claim-registry.js +0 -60
- package/dist/arena/phases/cross-review.d.ts +0 -47
- package/dist/arena/phases/cross-review.js +0 -224
- package/dist/arena/phases/debate-rounds.d.ts +0 -28
- package/dist/arena/phases/debate-rounds.js +0 -161
- package/dist/arena/phases/participant-research.d.ts +0 -39
- package/dist/arena/phases/participant-research.js +0 -316
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
- package/dist/arena/phases/planning-detail-expansion.js +0 -120
- package/dist/arena/planner.d.ts +0 -28
- package/dist/arena/planner.js +0 -312
- package/dist/arena/providers/docs.d.ts +0 -7
- package/dist/arena/providers/docs.js +0 -111
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/git.js +0 -174
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/index.js +0 -132
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/none.js +0 -11
- package/dist/arena/providers/repo.d.ts +0 -7
- package/dist/arena/providers/repo.js +0 -258
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/session.js +0 -190
- package/dist/arena/render/terminal.d.ts +0 -34
- package/dist/arena/render/terminal.js +0 -286
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/discussion.js +0 -143
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/index.js +0 -28
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/language-wrapper.js +0 -102
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/lens-wrapper.js +0 -236
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/planning.js +0 -225
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/review.js +0 -168
- package/dist/arena/strategies/utils.d.ts +0 -36
- package/dist/arena/strategies/utils.js +0 -603
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/tools/selector.js +0 -61
- package/dist/arena/transitions.d.ts +0 -53
- package/dist/arena/transitions.js +0 -97
- package/dist/arena/types.d.ts +0 -518
- package/dist/arena/types.js +0 -27
- package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
- package/dist/cc-orchestrator/agent-adapter.js +0 -143
- package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
- package/dist/cc-orchestrator/cc-capability.js +0 -53
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
- package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
- package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
- package/dist/cc-orchestrator/codex-session-history.js +0 -247
- package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
- package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
- package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-changes.js +0 -231
- package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-driver.js +0 -284
- package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
- package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
- package/dist/cc-orchestrator/index.d.ts +0 -8
- package/dist/cc-orchestrator/index.js +0 -8
- package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
- package/dist/cc-orchestrator/relevance-judge.js +0 -29
- package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
- package/dist/cc-orchestrator/session-discovery.js +0 -125
- package/dist/cc-orchestrator/session-history.d.ts +0 -54
- package/dist/cc-orchestrator/session-history.js +0 -150
- package/dist/cron/cron-runtime.d.ts +0 -2
- package/dist/cron/cron-runtime.js +0 -2
- package/dist/cron/cron-store.d.ts +0 -2
- package/dist/cron/cron-store.js +0 -2
- package/dist/cron/scheduler.d.ts +0 -7
- package/dist/cron/scheduler.js +0 -7
- package/dist/engine/goal.js +0 -206
- package/dist/external-agents/config.d.ts +0 -2
- package/dist/external-agents/config.js +0 -15
- package/dist/external-agents/types.d.ts +0 -31
- package/dist/git/parse-log.d.ts +0 -13
- package/dist/git/parse-log.js +0 -21
- package/dist/git/utils.d.ts +0 -49
- package/dist/git/utils.js +0 -161
- package/dist/git/worktree/crud.d.ts +0 -72
- package/dist/git/worktree/crud.js +0 -235
- package/dist/git/worktree/diff.d.ts +0 -14
- package/dist/git/worktree/diff.js +0 -82
- package/dist/git/worktree/git-exec.d.ts +0 -7
- package/dist/git/worktree/git-exec.js +0 -87
- package/dist/git/worktree/index.d.ts +0 -5
- package/dist/git/worktree/index.js +0 -5
- package/dist/git/worktree/query.d.ts +0 -43
- package/dist/git/worktree/query.js +0 -128
- package/dist/git/worktree/slug.d.ts +0 -11
- package/dist/git/worktree/slug.js +0 -58
- package/dist/git/worktree.d.ts +0 -1
- package/dist/git/worktree.js +0 -5
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/client.js +0 -186
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/manager.js +0 -155
- package/dist/lsp/root-path.d.ts +0 -9
- package/dist/lsp/root-path.js +0 -12
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/lsp/servers.js +0 -60
- package/dist/prompt/sections/coding.md +0 -35
- package/dist/quota/credentials.d.ts +0 -3
- package/dist/quota/credentials.js +0 -80
- package/dist/quota/index.d.ts +0 -36
- package/dist/quota/index.js +0 -155
- package/dist/quota/types.d.ts +0 -48
- package/dist/quota/types.js +0 -13
- package/dist/review/review-prompt.d.ts +0 -28
- package/dist/review/review-prompt.js +0 -81
- package/dist/state.d.ts +0 -160
- package/dist/state.js +0 -267
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
- package/dist/tool-system/builtin/apply-patch/index.js +0 -105
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/apply-patch/types.js +0 -13
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/arena.js +0 -416
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/brief.js +0 -41
- package/dist/tool-system/builtin/check-quota.d.ts +0 -15
- package/dist/tool-system/builtin/check-quota.js +0 -34
- package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
- package/dist/tool-system/builtin/drive-claude-code.js +0 -698
- package/dist/tool-system/builtin/lsp.d.ts +0 -7
- package/dist/tool-system/builtin/lsp.js +0 -144
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -127
- package/dist/tool-system/builtin/worktree.d.ts +0 -11
- package/dist/tool-system/builtin/worktree.js +0 -363
- /package/dist/{external-agents → links}/types.js +0 -0
- /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
- /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core type definitions for the code-shell orchestration framework.
|
|
3
3
|
*/
|
|
4
|
-
import type { GoalConfig, GoalTerminal } from "./
|
|
4
|
+
import type { GoalConfig, GoalLifecycleV1, GoalTerminal } from "./goal/lifecycle.js";
|
|
5
5
|
export interface ContentBlock {
|
|
6
6
|
type: "text" | "tool_use" | "tool_result" | "image" | "reasoning";
|
|
7
7
|
text?: string;
|
|
@@ -41,10 +41,14 @@ export interface ToolCall {
|
|
|
41
41
|
toolName: string;
|
|
42
42
|
serverName?: string;
|
|
43
43
|
args: Record<string, unknown>;
|
|
44
|
+
/** Host-projected UI visibility. Does not affect execution or transcript retention. */
|
|
45
|
+
uiVisibility?: "hidden" | "milestones" | "full";
|
|
44
46
|
}
|
|
45
47
|
export interface ToolResult {
|
|
46
48
|
id: string;
|
|
47
49
|
toolName: string;
|
|
50
|
+
/** Host-projected UI visibility. Does not affect the model-facing result. */
|
|
51
|
+
uiVisibility?: "hidden" | "milestones" | "full";
|
|
48
52
|
/**
|
|
49
53
|
* Sensitive tool results keep `result` as the model-facing value for the
|
|
50
54
|
* current model round only. Persisted/displayed/streamed observers must use
|
|
@@ -88,25 +92,27 @@ export type ToolPathPolicyOperation = "read" | "write" | {
|
|
|
88
92
|
/** Fallback when the argument is absent or does not match either list. */
|
|
89
93
|
default: "read" | "write";
|
|
90
94
|
};
|
|
91
|
-
export
|
|
95
|
+
export interface ToolPathPolicy {
|
|
92
96
|
kind: "arg";
|
|
93
97
|
/** Argument containing a file or directory path. */
|
|
94
98
|
arg: string;
|
|
95
99
|
operation: ToolPathPolicyOperation;
|
|
96
100
|
/** Use ctx.cwd when the argument is omitted. Useful for Glob/Grep roots. */
|
|
97
101
|
defaultToCwd?: boolean;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
102
|
+
}
|
|
103
|
+
/** Capability-owned resolver for compound inputs that reference multiple paths. */
|
|
104
|
+
export interface ToolPathResolver {
|
|
105
|
+
operation: "read" | "write";
|
|
106
|
+
resolve(args: Record<string, unknown>, cwd: string): readonly string[];
|
|
107
|
+
}
|
|
104
108
|
export interface RegisteredTool {
|
|
105
109
|
name: string;
|
|
106
110
|
description: string;
|
|
107
111
|
inputSchema: Record<string, unknown>;
|
|
108
112
|
source: ToolSource;
|
|
109
113
|
serverName?: string;
|
|
114
|
+
/** Original, unprefixed MCP tool name used by per-server allow/deny policy. */
|
|
115
|
+
mcpToolName?: string;
|
|
110
116
|
/**
|
|
111
117
|
* Declarative UI/metadata hint for hosts, docs, and capability listings.
|
|
112
118
|
* It is not an execution-policy input: PermissionClassifier does not read
|
|
@@ -116,6 +122,8 @@ export interface RegisteredTool {
|
|
|
116
122
|
permissionDefault: PermissionDecision;
|
|
117
123
|
isConcurrencySafe?: boolean;
|
|
118
124
|
isReadOnly?: boolean;
|
|
125
|
+
/** Used when file targets cannot be described as one direct schema argument. */
|
|
126
|
+
pathResolver?: ToolPathResolver;
|
|
119
127
|
/** Declaratively marks result bodies as sensitive for retained Goal evidence. */
|
|
120
128
|
sensitiveResult?: boolean;
|
|
121
129
|
/**
|
|
@@ -137,7 +145,7 @@ export interface RegisteredTool {
|
|
|
137
145
|
*/
|
|
138
146
|
timeoutMs?: number;
|
|
139
147
|
}
|
|
140
|
-
export type TranscriptEventType = "message" | "tool_use" | "tool_result" | "summary" | "content_replace" | "file_history" | "plan_operation" | "session_meta" | "subagent" | "external_file_changes" | "turn_boundary" | "goal_progress" | "turn_stopped" | "error";
|
|
148
|
+
export type TranscriptEventType = "message" | "tool_use" | "tool_result" | "summary" | "context_transfer" | "content_replace" | "file_history" | "plan_operation" | "session_meta" | "subagent" | "external_file_changes" | "turn_boundary" | "run_result" | "goal_progress" | "turn_stopped" | "error";
|
|
141
149
|
export interface TranscriptEvent {
|
|
142
150
|
id: string;
|
|
143
151
|
type: TranscriptEventType;
|
|
@@ -154,10 +162,23 @@ export interface TranscriptEvent {
|
|
|
154
162
|
* error (`"model_error"`, `"prompt_too_long"`, ...).
|
|
155
163
|
*/
|
|
156
164
|
export type SessionStatus = "active" | "paused" | TerminalReason;
|
|
157
|
-
/**
|
|
158
|
-
|
|
159
|
-
|
|
165
|
+
/** Known first-party session origins. Hosts may contribute stable names of their own. */
|
|
166
|
+
export type BuiltinSessionOrigin = "desktop" | "tui" | "automation" | "subagent";
|
|
167
|
+
/**
|
|
168
|
+
* Which host/context created a session. This is intentionally open: core
|
|
169
|
+
* persists the provenance label but product hosts decide how to group/filter
|
|
170
|
+
* it, so extension packages never need to add a literal back into core.
|
|
171
|
+
*/
|
|
172
|
+
export type SessionOrigin = BuiltinSessionOrigin | (string & {});
|
|
173
|
+
/**
|
|
174
|
+
* Persisted session kind. "work" is the core default; extensions may own
|
|
175
|
+
* additional kinds (e.g. the pet extension's "pet") — the open string form
|
|
176
|
+
* keeps literal inference/autocomplete for "work" while allowing extension
|
|
177
|
+
* kinds without a core enum change.
|
|
178
|
+
*/
|
|
179
|
+
export type SessionKind = "work" | (string & {});
|
|
160
180
|
export interface SessionWorkspace {
|
|
181
|
+
/** Current execution root used when this session resumes. */
|
|
161
182
|
root: string;
|
|
162
183
|
kind: "main" | "worktree";
|
|
163
184
|
worktree?: {
|
|
@@ -186,8 +207,29 @@ export interface SessionForkLineage {
|
|
|
186
207
|
}
|
|
187
208
|
export interface SessionState {
|
|
188
209
|
sessionId: string;
|
|
210
|
+
/** Durable local classification. Missing on legacy state and normalized to `work`. */
|
|
211
|
+
kind?: SessionKind;
|
|
212
|
+
/** Durable per-session digital-human binding. It overrides the Workspace default profile. */
|
|
213
|
+
workspaceProfile?: string;
|
|
214
|
+
/**
|
|
215
|
+
* Standing brief for this Session, injected as system context on every run.
|
|
216
|
+
*
|
|
217
|
+
* Set when a team is summoned: the member's role, its teammates' Session ids
|
|
218
|
+
* and the lead's playbook. It used to be pre-filled into the composer instead,
|
|
219
|
+
* which read as if the *user* had typed a specification — and one stray edit or
|
|
220
|
+
* Enter lost it. This is configuration for the agent, so it belongs in the
|
|
221
|
+
* prompt, not the input box.
|
|
222
|
+
*/
|
|
223
|
+
sessionBrief?: string;
|
|
224
|
+
/**
|
|
225
|
+
* Monotonic whole-state revision used by SessionManager.saveState as a CAS
|
|
226
|
+
* token. Absent only on legacy state files; the first successful save
|
|
227
|
+
* upgrades them. Detached writers with an older revision are rejected.
|
|
228
|
+
*/
|
|
229
|
+
stateRevision?: number;
|
|
230
|
+
/** Legacy persisted main-project root. Kept byte-compatible in state.json. */
|
|
189
231
|
cwd: string;
|
|
190
|
-
/** Current
|
|
232
|
+
/** Current main/worktree execution pointer. Absent only on legacy state.json files. */
|
|
191
233
|
workspace?: SessionWorkspace;
|
|
192
234
|
startedAt: number;
|
|
193
235
|
model: string;
|
|
@@ -203,6 +245,11 @@ export interface SessionState {
|
|
|
203
245
|
* before the next provider response.
|
|
204
246
|
*/
|
|
205
247
|
contextUsageAnchor?: ContextUsageAnchor;
|
|
248
|
+
/**
|
|
249
|
+
* Exceptional boundary for the most recently persisted completed run.
|
|
250
|
+
* Absent means `status === "completed"` is an ordinary final answer.
|
|
251
|
+
*/
|
|
252
|
+
lastCompletionKind?: TurnCompletionKind;
|
|
206
253
|
/**
|
|
207
254
|
* Monotonic prompt-cache counters for the whole session. These only increase
|
|
208
255
|
* from session start and are separate from the resettable tokenUsage window.
|
|
@@ -220,6 +267,20 @@ export interface SessionState {
|
|
|
220
267
|
* the last user message changed. Absent on legacy sessions → treated as 0.
|
|
221
268
|
*/
|
|
222
269
|
turnSeq?: number;
|
|
270
|
+
/**
|
|
271
|
+
* Inclusive transcript cursor for the last naturally completed conversation
|
|
272
|
+
* turn. It advances only when Engine.run finishes with reason="completed",
|
|
273
|
+
* so a side fork can exclude a newer user message already persisted by an
|
|
274
|
+
* in-flight run. Absent on legacy sessions and before the first completion.
|
|
275
|
+
*/
|
|
276
|
+
completedThroughEventId?: string;
|
|
277
|
+
/**
|
|
278
|
+
* Presence distinguishes sessions written by the completed-snapshot cursor
|
|
279
|
+
* implementation from legacy sessions. Version 1 with no cursor means the
|
|
280
|
+
* latest completion could not establish a durable snapshot (for example a
|
|
281
|
+
* transcript flush failure) and must fail closed instead of using the tail.
|
|
282
|
+
*/
|
|
283
|
+
completedSnapshotVersion?: 1;
|
|
223
284
|
invokedSkills: string[];
|
|
224
285
|
/**
|
|
225
286
|
* Owning parent session for a sub-agent run; `null` explicitly marks a
|
|
@@ -228,8 +289,20 @@ export interface SessionState {
|
|
|
228
289
|
* "key present && null" to tell a new top-level session apart from legacy.
|
|
229
290
|
*/
|
|
230
291
|
parentSessionId?: string | null;
|
|
292
|
+
/**
|
|
293
|
+
* Durable archival timestamp (ms). Absent = not archived. Generic session
|
|
294
|
+
* lifecycle marker: list surfaces filter it out by default. Set/cleared via
|
|
295
|
+
* SessionManager.setSessionArchived.
|
|
296
|
+
*/
|
|
297
|
+
archivedAt?: number;
|
|
231
298
|
/** User-fork lineage; deliberately separate from sub-agent ownership. */
|
|
232
299
|
forkedFrom?: SessionForkLineage;
|
|
300
|
+
/**
|
|
301
|
+
* Temporary child sessions are persisted only while their owning surface is
|
|
302
|
+
* alive. Ordinary resume/session pickers must omit them. Absent on legacy
|
|
303
|
+
* sessions; desktop also recognizes its historical `qchat-*` namespace.
|
|
304
|
+
*/
|
|
305
|
+
ephemeral?: boolean;
|
|
233
306
|
/**
|
|
234
307
|
* Which host/context created this session. Desktop disk-rebuild shows only
|
|
235
308
|
* `desktop` + `automation`. Absent on legacy sessions.
|
|
@@ -247,7 +320,10 @@ export interface SessionState {
|
|
|
247
320
|
title?: string;
|
|
248
321
|
/** Persisted cost tracking state (survives process restart). */
|
|
249
322
|
costState?: Record<string, unknown>;
|
|
323
|
+
/** Canonical persisted and runtime Goal state. */
|
|
324
|
+
goalLifecycle?: GoalLifecycleV1;
|
|
250
325
|
/**
|
|
326
|
+
* Legacy persisted input only. Runtime hydration removes this field and new writers omit it.
|
|
251
327
|
* Active persistent goal (CC `/goal` style). Set once, it survives across
|
|
252
328
|
* messages AND manual interrupts until the judge says it's met or the user
|
|
253
329
|
* clears it. Absent → no active goal. When a run supplies a new goal it
|
|
@@ -258,11 +334,14 @@ export interface SessionState {
|
|
|
258
334
|
*/
|
|
259
335
|
activeGoal?: GoalConfig;
|
|
260
336
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
337
|
+
* Legacy persisted input only. Runtime hydration removes this field and new writers omit it.
|
|
338
|
+
* Latest terminal goal instance (legacy/single-marker view). Kept alongside
|
|
339
|
+
* the bounded goalTerminals identity set for backward-compatible readers.
|
|
263
340
|
* Optional for backward compatibility with pre-tombstone state.json files.
|
|
264
341
|
*/
|
|
265
342
|
goalTerminal?: GoalTerminal;
|
|
343
|
+
/** Legacy persisted terminal history input; runtime hydration removes it. */
|
|
344
|
+
goalTerminals?: GoalTerminal[];
|
|
266
345
|
}
|
|
267
346
|
export interface TokenUsage {
|
|
268
347
|
promptTokens: number;
|
|
@@ -356,12 +435,23 @@ export interface TaskInfo {
|
|
|
356
435
|
}
|
|
357
436
|
export type PromptTokenSource = "provider_usage" | "anchor_delta" | "anchor_rescale" | "calibrated_estimate" | "heuristic_estimate" | "session_cumulative";
|
|
358
437
|
export type PromptTokenConfidence = "high" | "medium" | "low";
|
|
438
|
+
/**
|
|
439
|
+
* Why a syntactically completed engine run did not finish its logical task.
|
|
440
|
+
* Absent means the model reached an ordinary final response. Consumers that
|
|
441
|
+
* manage durable work can use this to avoid treating an async handoff or a
|
|
442
|
+
* Goal-control boundary as objective completion.
|
|
443
|
+
*/
|
|
444
|
+
export type TurnCompletionKind = "background_wait" | "goal_control_stop" | "limit_stop";
|
|
359
445
|
export type StreamEvent = {
|
|
360
446
|
type: "session_started";
|
|
361
447
|
sessionId: string;
|
|
362
448
|
promptTokens: number;
|
|
363
449
|
promptTokensSource?: PromptTokenSource;
|
|
364
450
|
promptTokensConfidence?: PromptTokenConfidence;
|
|
451
|
+
} | {
|
|
452
|
+
type: "session_user_message";
|
|
453
|
+
text: string;
|
|
454
|
+
clientMessageId?: string;
|
|
365
455
|
} | {
|
|
366
456
|
type: "session_title";
|
|
367
457
|
sessionId: string;
|
|
@@ -401,9 +491,14 @@ export type StreamEvent = {
|
|
|
401
491
|
} | {
|
|
402
492
|
type: "turn_complete";
|
|
403
493
|
reason: TerminalReason;
|
|
494
|
+
completionKind?: TurnCompletionKind;
|
|
404
495
|
agentId?: string;
|
|
405
496
|
} | {
|
|
406
497
|
type: "goal_progress";
|
|
498
|
+
/** Concrete goal instance; absent only on legacy replayed events. */
|
|
499
|
+
goalId?: string;
|
|
500
|
+
/** Edit/pause/resume revision for stale-event fencing. */
|
|
501
|
+
revision?: number;
|
|
407
502
|
status: "not_met" | "met" | "exhausted" | "approaching_limit";
|
|
408
503
|
round: number;
|
|
409
504
|
gaps?: string;
|
|
@@ -416,10 +511,21 @@ export type StreamEvent = {
|
|
|
416
511
|
agentId?: string;
|
|
417
512
|
} | {
|
|
418
513
|
type: "goal_set";
|
|
514
|
+
goalId?: string;
|
|
515
|
+
revision?: number;
|
|
419
516
|
objective: string;
|
|
420
517
|
replaced: boolean;
|
|
518
|
+
paused?: boolean;
|
|
519
|
+
} | {
|
|
520
|
+
type: "goal_updated";
|
|
521
|
+
goalId?: string;
|
|
522
|
+
revision?: number;
|
|
523
|
+
objective: string;
|
|
524
|
+
paused: boolean;
|
|
421
525
|
} | {
|
|
422
526
|
type: "goal_cleared";
|
|
527
|
+
goalId?: string;
|
|
528
|
+
revision?: number;
|
|
423
529
|
} | {
|
|
424
530
|
type: "error";
|
|
425
531
|
error: string;
|
|
@@ -436,7 +542,7 @@ export type StreamEvent = {
|
|
|
436
542
|
type: "memory_recalled";
|
|
437
543
|
name: string;
|
|
438
544
|
scope: "user" | "dream";
|
|
439
|
-
location: "global" | "project";
|
|
545
|
+
location: "global" | "project" | "profile";
|
|
440
546
|
agentId?: string;
|
|
441
547
|
} | {
|
|
442
548
|
type: "thinking_delta";
|
|
@@ -473,10 +579,19 @@ export type StreamEvent = {
|
|
|
473
579
|
agentId?: string;
|
|
474
580
|
} | {
|
|
475
581
|
type: "context_compact";
|
|
476
|
-
strategy: "micro" | "summary" | "window" | "snip" | "emergency" | "compacted";
|
|
582
|
+
strategy: "micro" | "summary" | "window" | "snip" | "emergency" | "compacted" | "range";
|
|
477
583
|
before: number;
|
|
478
584
|
after: number;
|
|
479
585
|
agentId?: string;
|
|
586
|
+
} | {
|
|
587
|
+
/** Persisted summary-only history transferred into a newly forked session. */
|
|
588
|
+
type: "context_transfer";
|
|
589
|
+
summary: string;
|
|
590
|
+
sourceSessionId: string;
|
|
591
|
+
fromEventId: string;
|
|
592
|
+
toEventId: string;
|
|
593
|
+
sourceEventCount: number;
|
|
594
|
+
estimatedTokens: number;
|
|
480
595
|
} | {
|
|
481
596
|
type: "usage_update";
|
|
482
597
|
promptTokens: number;
|
|
@@ -695,16 +810,28 @@ export interface MCPServerConfig {
|
|
|
695
810
|
* UI toggle can flip it back on. See connectAll().
|
|
696
811
|
*/
|
|
697
812
|
enabled?: boolean;
|
|
813
|
+
/**
|
|
814
|
+
* Exact MCP tool-name allowlist. Undefined exposes every discovered tool;
|
|
815
|
+
* an empty list exposes none. `disabledTools` is applied afterwards.
|
|
816
|
+
*/
|
|
817
|
+
allowedTools?: string[];
|
|
818
|
+
/** Exact MCP tool-name denylist, applied after `allowedTools`. */
|
|
819
|
+
disabledTools?: string[];
|
|
698
820
|
}
|
|
699
821
|
/**
|
|
700
822
|
* User-supplied supplement for a PLUGIN-provided MCP server, keyed by the
|
|
701
823
|
* server's `<plugin>:<server>` name. Stored globally under
|
|
702
824
|
* `settings.mcpServerOverrides` and layered onto the plugin's config at merge
|
|
703
|
-
* time (see mergePluginMcpServers). Only
|
|
704
|
-
* command/args/url/transport stay
|
|
705
|
-
* update is never shadowed by a stale
|
|
825
|
+
* time (see mergePluginMcpServers). Only user-controlled server/tool policy
|
|
826
|
+
* and env/credential fields are allowed — command/args/url/transport stay
|
|
827
|
+
* owned by the plugin manifest so an update is never shadowed by a stale copy.
|
|
706
828
|
*/
|
|
707
829
|
export interface MCPServerOverride {
|
|
830
|
+
/** Per-server user policy. Allows one server to be disabled without disabling its owner plugin. */
|
|
831
|
+
enabled?: boolean;
|
|
832
|
+
/** User policy layered over the plugin server's reviewed connection identity. */
|
|
833
|
+
allowedTools?: string[];
|
|
834
|
+
disabledTools?: string[];
|
|
708
835
|
env?: Record<string, string>;
|
|
709
836
|
envVars?: string[];
|
|
710
837
|
/** (HTTP) id of a stored token/link/oauth credential used as Bearer auth. */
|
|
@@ -776,3 +903,42 @@ export interface Settings {
|
|
|
776
903
|
*/
|
|
777
904
|
hooks?: SettingsHookConfig[];
|
|
778
905
|
}
|
|
906
|
+
export type InputAttachmentKind = "image" | "file" | "directory";
|
|
907
|
+
export type InputAttachmentOrigin = "paste" | "os-drop" | "file-panel" | "picker" | "mention" | "generated" | "mobile" | "im-gateway" | "tool";
|
|
908
|
+
export interface InputAttachmentMeta {
|
|
909
|
+
id: string;
|
|
910
|
+
sessionId: string;
|
|
911
|
+
kind: InputAttachmentKind;
|
|
912
|
+
origin: InputAttachmentOrigin;
|
|
913
|
+
path: string;
|
|
914
|
+
absPath: string;
|
|
915
|
+
relPath?: string;
|
|
916
|
+
mime?: string;
|
|
917
|
+
size: number;
|
|
918
|
+
sha256: string;
|
|
919
|
+
originalName?: string;
|
|
920
|
+
createdAt: number;
|
|
921
|
+
sourcePath?: string;
|
|
922
|
+
width?: number;
|
|
923
|
+
height?: number;
|
|
924
|
+
vision?: {
|
|
925
|
+
include: boolean;
|
|
926
|
+
mediaPath?: string;
|
|
927
|
+
detail?: "low" | "standard" | "high";
|
|
928
|
+
};
|
|
929
|
+
directory?: {
|
|
930
|
+
treePath?: string;
|
|
931
|
+
truncated?: boolean;
|
|
932
|
+
entryCount?: number;
|
|
933
|
+
};
|
|
934
|
+
}
|
|
935
|
+
export interface LegacyPetWorkspaceOption {
|
|
936
|
+
id: string;
|
|
937
|
+
name: string;
|
|
938
|
+
description?: string;
|
|
939
|
+
}
|
|
940
|
+
export interface LegacyPetWorkDelegation {
|
|
941
|
+
workspaceId: string;
|
|
942
|
+
objective: string;
|
|
943
|
+
reusableSessionId?: string;
|
|
944
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-process read-modify-write for a single JSON file.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
* ---------------
|
|
6
|
+
* Several subsystems independently implemented "load → change → save" against a
|
|
7
|
+
* shared file with NO cross-process lock. Atomic tmp+rename protects against a
|
|
8
|
+
* torn file, but not against lost updates: two processes both read revision N,
|
|
9
|
+
* both write N+1, and one change vanishes. Measured on this repo: 48 concurrent
|
|
10
|
+
* writers each setting a distinct settings key left only 17 keys; 48 concurrent
|
|
11
|
+
* AutoDream increments recorded 1–2.
|
|
12
|
+
*
|
|
13
|
+
* CronStore already had the correct shape (directory lock + reload-inside-lock +
|
|
14
|
+
* unique tmp + rename). This module extracts exactly that so every writer shares
|
|
15
|
+
* one implementation instead of re-deriving it — and so the retry/stale tuning
|
|
16
|
+
* lives in one place.
|
|
17
|
+
*
|
|
18
|
+
* The lock is taken on the file's DIRECTORY (proper-lockfile creates
|
|
19
|
+
* `<dir>.lock`), matching CronStore. Locking the directory rather than the file
|
|
20
|
+
* means a writer that creates the file for the first time is still serialized.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Acquire the directory lock guarding `file`. Returns the release function.
|
|
24
|
+
*
|
|
25
|
+
* Retries for LOCK_WAIT_MS because contention here is normal (several hosts can
|
|
26
|
+
* write the same file), then throws — a caller must never silently proceed
|
|
27
|
+
* unlocked, since that is precisely the lost-update bug.
|
|
28
|
+
*/
|
|
29
|
+
export declare function acquireFileLock(file: string): () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Lock one specific path rather than its whole directory.
|
|
32
|
+
*
|
|
33
|
+
* Use when several independent resources live side by side and must NOT
|
|
34
|
+
* serialize against each other — e.g. per-repo clone dirs, where locking the
|
|
35
|
+
* shared parent would make unrelated installs queue behind one another (and
|
|
36
|
+
* would deadlock against any directory-scoped lock taken inside).
|
|
37
|
+
*
|
|
38
|
+
* `target` must already exist; proper-lockfile creates a sibling `<target>.lock`.
|
|
39
|
+
* `timeoutMs` can exceed the default when the critical section legitimately
|
|
40
|
+
* takes a while (network clone + directory swap).
|
|
41
|
+
*/
|
|
42
|
+
export declare function acquireLockOnPath(target: string, timeoutMs?: number): () => void;
|
|
43
|
+
/** Stage to a unique temp file, then rename — never a partially written target. */
|
|
44
|
+
export declare function writeFileAtomic(file: string, contents: string, mode?: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Run `mutation` against the file's CURRENT on-disk content while holding the
|
|
47
|
+
* lock, then persist whatever it returns.
|
|
48
|
+
*
|
|
49
|
+
* The reload happens INSIDE the lock, which is the entire point: a caller that
|
|
50
|
+
* read the file earlier (before contending for the lock) would otherwise write
|
|
51
|
+
* back a stale snapshot and drop a concurrent writer's change.
|
|
52
|
+
*
|
|
53
|
+
* `parse` receives `undefined` when the file is missing or unreadable, so each
|
|
54
|
+
* caller decides what "empty" means. Returning `undefined` from `mutation`
|
|
55
|
+
* skips the write entirely (no-op mutations should not rewrite the file).
|
|
56
|
+
*/
|
|
57
|
+
export declare function mutateJsonFile<T, R = void>(file: string, options: {
|
|
58
|
+
parse: (raw: string | undefined) => T;
|
|
59
|
+
serialize: (value: T) => string;
|
|
60
|
+
mutation: (current: T) => {
|
|
61
|
+
value?: T;
|
|
62
|
+
result?: R;
|
|
63
|
+
};
|
|
64
|
+
mode?: number;
|
|
65
|
+
}): R | undefined;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-process read-modify-write for a single JSON file.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
* ---------------
|
|
6
|
+
* Several subsystems independently implemented "load → change → save" against a
|
|
7
|
+
* shared file with NO cross-process lock. Atomic tmp+rename protects against a
|
|
8
|
+
* torn file, but not against lost updates: two processes both read revision N,
|
|
9
|
+
* both write N+1, and one change vanishes. Measured on this repo: 48 concurrent
|
|
10
|
+
* writers each setting a distinct settings key left only 17 keys; 48 concurrent
|
|
11
|
+
* AutoDream increments recorded 1–2.
|
|
12
|
+
*
|
|
13
|
+
* CronStore already had the correct shape (directory lock + reload-inside-lock +
|
|
14
|
+
* unique tmp + rename). This module extracts exactly that so every writer shares
|
|
15
|
+
* one implementation instead of re-deriving it — and so the retry/stale tuning
|
|
16
|
+
* lives in one place.
|
|
17
|
+
*
|
|
18
|
+
* The lock is taken on the file's DIRECTORY (proper-lockfile creates
|
|
19
|
+
* `<dir>.lock`), matching CronStore. Locking the directory rather than the file
|
|
20
|
+
* means a writer that creates the file for the first time is still serialized.
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
23
|
+
import { dirname } from "node:path";
|
|
24
|
+
import { randomUUID } from "node:crypto";
|
|
25
|
+
import { lockSync } from "./lockfile.js";
|
|
26
|
+
/**
|
|
27
|
+
* How long to keep retrying the lock before giving up.
|
|
28
|
+
*
|
|
29
|
+
* Sized for real contention, not the happy path. Every holder does a bounded
|
|
30
|
+
* amount of work (re-read, merge, atomic rename), but with N writers the last
|
|
31
|
+
* one in line waits for all N-1 ahead of it. Measured here: 48 concurrent
|
|
32
|
+
* processes saving memories against one index blew through a 2s budget and up to
|
|
33
|
+
* 46 of them died with ELOCKED. 30s leaves generous headroom while still
|
|
34
|
+
* failing loudly if a holder is genuinely wedged.
|
|
35
|
+
*/
|
|
36
|
+
const LOCK_WAIT_MS = 30_000;
|
|
37
|
+
/** A lock older than this is treated as abandoned by a crashed holder. */
|
|
38
|
+
const LOCK_STALE_MS = 10_000;
|
|
39
|
+
/** Backoff bounds for the retry loop (see acquireLockOn). */
|
|
40
|
+
const LOCK_RETRY_MIN_MS = 5;
|
|
41
|
+
const LOCK_RETRY_MAX_MS = 50;
|
|
42
|
+
// Atomics.wait only ever reads slot 0, which stays 0, so one shared buffer is
|
|
43
|
+
// safe and avoids allocating per retry.
|
|
44
|
+
const SLEEP_SIGNAL = new Int32Array(new SharedArrayBuffer(4));
|
|
45
|
+
function sleepSync(ms) {
|
|
46
|
+
Atomics.wait(SLEEP_SIGNAL, 0, 0, ms);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Acquire the directory lock guarding `file`. Returns the release function.
|
|
50
|
+
*
|
|
51
|
+
* Retries for LOCK_WAIT_MS because contention here is normal (several hosts can
|
|
52
|
+
* write the same file), then throws — a caller must never silently proceed
|
|
53
|
+
* unlocked, since that is precisely the lost-update bug.
|
|
54
|
+
*/
|
|
55
|
+
export function acquireFileLock(file) {
|
|
56
|
+
const dir = dirname(file);
|
|
57
|
+
if (!existsSync(dir))
|
|
58
|
+
mkdirSync(dir, { recursive: true });
|
|
59
|
+
return acquireLockOn(dir, LOCK_WAIT_MS);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Lock one specific path rather than its whole directory.
|
|
63
|
+
*
|
|
64
|
+
* Use when several independent resources live side by side and must NOT
|
|
65
|
+
* serialize against each other — e.g. per-repo clone dirs, where locking the
|
|
66
|
+
* shared parent would make unrelated installs queue behind one another (and
|
|
67
|
+
* would deadlock against any directory-scoped lock taken inside).
|
|
68
|
+
*
|
|
69
|
+
* `target` must already exist; proper-lockfile creates a sibling `<target>.lock`.
|
|
70
|
+
* `timeoutMs` can exceed the default when the critical section legitimately
|
|
71
|
+
* takes a while (network clone + directory swap).
|
|
72
|
+
*/
|
|
73
|
+
export function acquireLockOnPath(target, timeoutMs = LOCK_WAIT_MS) {
|
|
74
|
+
return acquireLockOn(target, timeoutMs);
|
|
75
|
+
}
|
|
76
|
+
function acquireLockOn(target, timeoutMs) {
|
|
77
|
+
const deadline = Date.now() + timeoutMs;
|
|
78
|
+
let lastError;
|
|
79
|
+
let attempt = 0;
|
|
80
|
+
for (;;) {
|
|
81
|
+
try {
|
|
82
|
+
return lockSync(target, { stale: LOCK_STALE_MS, retries: 0 });
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
lastError = err;
|
|
86
|
+
if (Date.now() > deadline)
|
|
87
|
+
throw lastError;
|
|
88
|
+
// Randomized backoff. A fixed delay makes every waiter wake at the same
|
|
89
|
+
// instant and collide again, so under real contention (dozens of writers)
|
|
90
|
+
// the same unlucky processes kept losing and eventually timed out.
|
|
91
|
+
// Jitter spreads the retries out; the cap keeps latency low when only a
|
|
92
|
+
// couple of writers are competing.
|
|
93
|
+
const ceiling = Math.min(LOCK_RETRY_MIN_MS * 2 ** attempt, LOCK_RETRY_MAX_MS);
|
|
94
|
+
attempt += 1;
|
|
95
|
+
sleepSync(LOCK_RETRY_MIN_MS + Math.floor(Math.random() * ceiling));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** Stage to a unique temp file, then rename — never a partially written target. */
|
|
100
|
+
export function writeFileAtomic(file, contents, mode) {
|
|
101
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
102
|
+
// Unique per writer: a shared `.tmp` name lets two writers clobber each
|
|
103
|
+
// other's staging file even while both hold different locks.
|
|
104
|
+
const tmp = `${file}.${process.pid}.${randomUUID()}.tmp`;
|
|
105
|
+
try {
|
|
106
|
+
writeFileSync(tmp, contents, mode === undefined ? "utf-8" : { encoding: "utf-8", mode });
|
|
107
|
+
renameSync(tmp, file);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
rmSync(tmp, { force: true });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Run `mutation` against the file's CURRENT on-disk content while holding the
|
|
115
|
+
* lock, then persist whatever it returns.
|
|
116
|
+
*
|
|
117
|
+
* The reload happens INSIDE the lock, which is the entire point: a caller that
|
|
118
|
+
* read the file earlier (before contending for the lock) would otherwise write
|
|
119
|
+
* back a stale snapshot and drop a concurrent writer's change.
|
|
120
|
+
*
|
|
121
|
+
* `parse` receives `undefined` when the file is missing or unreadable, so each
|
|
122
|
+
* caller decides what "empty" means. Returning `undefined` from `mutation`
|
|
123
|
+
* skips the write entirely (no-op mutations should not rewrite the file).
|
|
124
|
+
*/
|
|
125
|
+
export function mutateJsonFile(file, options) {
|
|
126
|
+
const release = acquireFileLock(file);
|
|
127
|
+
try {
|
|
128
|
+
let raw;
|
|
129
|
+
try {
|
|
130
|
+
raw = readFileSync(file, "utf-8");
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
raw = undefined;
|
|
134
|
+
}
|
|
135
|
+
const current = options.parse(raw);
|
|
136
|
+
const { value, result } = options.mutation(current);
|
|
137
|
+
if (value !== undefined) {
|
|
138
|
+
writeFileAtomic(file, options.serialize(value), options.mode);
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
release();
|
|
144
|
+
}
|
|
145
|
+
}
|
package/dist/utils/json.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generic JSON extraction from LLM text output — strip markdown fences and
|
|
3
3
|
* pull out the first balanced object/array. These are provider-agnostic and
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* without dragging in the Arena subsystem. Arena re-exports them for
|
|
7
|
-
* back-compat.
|
|
4
|
+
* live in core so any service or extension can consume them without importing
|
|
5
|
+
* a product capability package.
|
|
8
6
|
*/
|
|
9
7
|
/** Extract JSON from text that might have markdown fences or surrounding text. */
|
|
10
8
|
export declare function extractJSON(text: string): string;
|
package/dist/utils/json.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generic JSON extraction from LLM text output — strip markdown fences and
|
|
3
3
|
* pull out the first balanced object/array. These are provider-agnostic and
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* without dragging in the Arena subsystem. Arena re-exports them for
|
|
7
|
-
* back-compat.
|
|
4
|
+
* live in core so any service or extension can consume them without importing
|
|
5
|
+
* a product capability package.
|
|
8
6
|
*/
|
|
9
7
|
/** Extract JSON from text that might have markdown fences or surrounding text. */
|
|
10
8
|
export function extractJSON(text) {
|
package/dist/utils/lockfile.d.ts
CHANGED
|
@@ -8,8 +8,37 @@
|
|
|
8
8
|
* Import this module instead of `proper-lockfile` directly. The underlying
|
|
9
9
|
* package is only loaded the first time a lock function is actually called.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
interface LockRetryOptions {
|
|
12
|
+
retries?: number;
|
|
13
|
+
factor?: number;
|
|
14
|
+
minTimeout?: number;
|
|
15
|
+
maxTimeout?: number;
|
|
16
|
+
randomize?: boolean;
|
|
17
|
+
forever?: boolean;
|
|
18
|
+
unref?: boolean;
|
|
19
|
+
maxRetryTime?: number;
|
|
20
|
+
}
|
|
21
|
+
interface LockfilePathOptions {
|
|
22
|
+
realpath?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* proper-lockfile accepts a callback-style fs implementation. Keep this
|
|
25
|
+
* structural at the package boundary so Core's declarations do not leak the
|
|
26
|
+
* untyped CommonJS dependency to TypeScript consumers.
|
|
27
|
+
*/
|
|
28
|
+
fs?: object;
|
|
29
|
+
lockfilePath?: string;
|
|
30
|
+
}
|
|
31
|
+
interface CheckOptions extends LockfilePathOptions {
|
|
32
|
+
stale?: number;
|
|
33
|
+
}
|
|
34
|
+
type UnlockOptions = LockfilePathOptions;
|
|
35
|
+
interface LockOptions extends CheckOptions {
|
|
36
|
+
update?: number;
|
|
37
|
+
retries?: number | LockRetryOptions;
|
|
38
|
+
onCompromised?: (error: Error) => void;
|
|
39
|
+
}
|
|
12
40
|
export declare function lock(file: string, options?: LockOptions): Promise<() => Promise<void>>;
|
|
13
41
|
export declare function lockSync(file: string, options?: LockOptions): () => void;
|
|
14
42
|
export declare function unlock(file: string, options?: UnlockOptions): Promise<void>;
|
|
15
43
|
export declare function check(file: string, options?: CheckOptions): Promise<boolean>;
|
|
44
|
+
export {};
|