@bastani/atomic 0.9.28-alpha.3 → 0.9.28-alpha.5
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 +39 -0
- package/dist/builtin/intercom/CHANGELOG.md +6 -0
- package/dist/builtin/intercom/README.md +3 -2
- package/dist/builtin/intercom/broker/broker.ts +90 -14
- package/dist/builtin/intercom/broker/paths.ts +4 -0
- package/dist/builtin/intercom/broker/socket-liveness.ts +32 -0
- package/dist/builtin/intercom/broker/socket-replacement-lock.ts +104 -0
- package/dist/builtin/intercom/broker/spawn.ts +108 -63
- package/dist/builtin/intercom/index.bundle.mjs +114 -61
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +6 -0
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/subagents/skills/agent-browser/SKILL.md +1 -1
- package/dist/builtin/subagents/skills/cua-driver/BROWSER.md +60 -39
- package/dist/builtin/subagents/skills/cua-driver/EMBEDDING.md +119 -36
- package/dist/builtin/subagents/skills/cua-driver/LINUX.md +225 -183
- package/dist/builtin/subagents/skills/cua-driver/MACOS.md +120 -89
- package/dist/builtin/subagents/skills/cua-driver/README.md +16 -7
- package/dist/builtin/subagents/skills/cua-driver/RECORDING.md +85 -115
- package/dist/builtin/subagents/skills/cua-driver/RUNTIME.md +113 -0
- package/dist/builtin/subagents/skills/cua-driver/SKILL.md +55 -1071
- package/dist/builtin/subagents/skills/cua-driver/VISUAL.md +125 -0
- package/dist/builtin/subagents/skills/cua-driver/WINDOWS.md +145 -185
- package/dist/builtin/subagents/skills/cua-driver/WORKFLOW.md +173 -0
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +16 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/{chunk-aqv8ny38.js → chunk-9ywkdsa9.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-p6jagvyf.js → chunk-bnz4knhy.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-br4ac9a3.js → chunk-dx5sjaxe.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-p3xmajmj.js → chunk-v4scsq3y.js} +41 -13
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +3 -3
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/impeccable/SKILL.md +8 -2
- package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +6 -0
- package/dist/builtin/workflows/skills/impeccable/reference/audit.md +2 -1
- package/dist/builtin/workflows/skills/impeccable/reference/component-review.md +63 -0
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/asset-producer.md +5 -0
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/finish-reviewer.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/generate.md +101 -0
- package/dist/builtin/workflows/skills/impeccable/reference/harden.md +9 -0
- package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +3 -1
- package/dist/builtin/workflows/skills/impeccable/reference/mode-operate.md +21 -0
- package/dist/builtin/workflows/skills/impeccable/reference/mode-persuade.md +19 -0
- package/dist/builtin/workflows/skills/impeccable/reference/mode-read.md +21 -0
- package/dist/builtin/workflows/skills/impeccable/reference/new-work.md +19 -12
- package/dist/builtin/workflows/skills/impeccable/reference/region-map.md +26 -0
- package/dist/builtin/workflows/skills/impeccable/reference/routing.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/visualize.md +5 -5
- package/dist/builtin/workflows/skills/impeccable/scripts/VERSION +1 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/command-metadata.json +4 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/impeccable.cmd +2 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +5 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +524 -4
- package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/claude_haiku_5_5.md +81 -0
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +38 -14
- package/dist/builtin/workflows/src/index.js +38 -14
- package/dist/cli/startup-ui.d.ts +3 -2
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +19 -4
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/codemode-worker.js +2 -2
- package/dist/core/agent-session-compaction.d.ts +3 -3
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +5 -1
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +1 -0
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +4 -0
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +6 -1
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +3 -2
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +5 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +13 -9
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +1 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +2 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/agent-events.d.ts +2 -0
- package/dist/core/extensions/agent-events.d.ts.map +1 -1
- package/dist/core/extensions/agent-events.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +2 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/mcp-server-registry.d.ts +4 -1
- package/dist/core/extensions/mcp-server-registry.d.ts.map +1 -1
- package/dist/core/extensions/mcp-server-registry.js +7 -4
- package/dist/core/extensions/mcp-server-registry.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +19 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/session-events.d.ts +2 -0
- package/dist/core/extensions/session-events.d.ts.map +1 -1
- package/dist/core/extensions/session-events.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +2 -0
- package/dist/core/extensions/tool-types.d.ts.map +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/fast-model-variants.d.ts.map +1 -1
- package/dist/core/fast-model-variants.js +3 -2
- package/dist/core/fast-model-variants.js.map +1 -1
- package/dist/core/model-resolver-defaults.d.ts.map +1 -1
- package/dist/core/model-resolver-defaults.js +2 -0
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/nested-tool-calls.d.ts +1 -0
- package/dist/core/nested-tool-calls.d.ts.map +1 -1
- package/dist/core/nested-tool-calls.js +1 -0
- package/dist/core/nested-tool-calls.js.map +1 -1
- package/dist/core/provider-alias.d.ts.map +1 -1
- package/dist/core/provider-alias.js +8 -0
- package/dist/core/provider-alias.js.map +1 -1
- package/dist/core/provider-composer-internal.d.ts.map +1 -1
- package/dist/core/provider-composer-internal.js +6 -3
- package/dist/core/provider-composer-internal.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +1 -0
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-types.d.ts +1 -0
- package/dist/core/resource-loader-types.d.ts.map +1 -1
- package/dist/core/resource-loader-types.js.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +7 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.js +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/extensions/codemode/execute.d.ts.map +1 -1
- package/dist/extensions/codemode/execute.js +55 -7
- package/dist/extensions/codemode/execute.js.map +1 -1
- package/dist/extensions/codemode/index.d.ts.map +1 -1
- package/dist/extensions/codemode/index.js +7 -0
- package/dist/extensions/codemode/index.js.map +1 -1
- package/dist/extensions/codemode/tool.d.ts +2 -0
- package/dist/extensions/codemode/tool.d.ts.map +1 -1
- package/dist/extensions/codemode/tool.js +2 -0
- package/dist/extensions/codemode/tool.js.map +1 -1
- package/dist/extensions/herdr/index.d.ts.map +1 -1
- package/dist/extensions/herdr/index.js +20 -2
- package/dist/extensions/herdr/index.js.map +1 -1
- package/dist/extensions/herdr/pane-owner.d.ts +7 -0
- package/dist/extensions/herdr/pane-owner.d.ts.map +1 -1
- package/dist/extensions/herdr/pane-owner.js +53 -11
- package/dist/extensions/herdr/pane-owner.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main-deferred-startup.d.ts +8 -0
- package/dist/main-deferred-startup.d.ts.map +1 -1
- package/dist/main-deferred-startup.js +6 -0
- package/dist/main-deferred-startup.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +11 -3
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +5 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +17 -14
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +5 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -0
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js +19 -8
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.d.ts +3 -2
- package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.js +7 -4
- package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts +3 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js +8 -2
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +5 -2
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +4 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +10 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +3 -1
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +6 -0
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js +2 -2
- package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.js +2 -2
- package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-dialogs.js +19 -2
- package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +4 -0
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +7 -0
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js +1 -1
- package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +7 -5
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +8 -1
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +1 -0
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-startup-trust.d.ts +6 -0
- package/dist/modes/interactive/interactive-startup-trust.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-startup-trust.js +15 -0
- package/dist/modes/interactive/interactive-startup-trust.js.map +1 -0
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +4 -0
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/program-status-reporter.d.ts +24 -0
- package/dist/modes/interactive/program-status-reporter.d.ts.map +1 -0
- package/dist/modes/interactive/program-status-reporter.js +96 -0
- package/dist/modes/interactive/program-status-reporter.js.map +1 -0
- package/dist/modes/interactive-engine/engine-child-liveness.d.ts +1 -0
- package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-child-liveness.js +15 -1
- package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +1 -0
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-monitor.d.ts +4 -0
- package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-monitor.js +17 -0
- package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
- package/dist/modes/interactive-engine/engine-quit-intent.d.ts +16 -0
- package/dist/modes/interactive-engine/engine-quit-intent.d.ts.map +1 -0
- package/dist/modes/interactive-engine/engine-quit-intent.js +27 -0
- package/dist/modes/interactive-engine/engine-quit-intent.js.map +1 -0
- package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js +3 -1
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +1 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js +5 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts +4 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +19 -2
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts +19 -1
- package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
- package/dist/modes/interactive-engine/protocol.js +7 -0
- package/dist/modes/interactive-engine/protocol.js.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.d.ts +3 -0
- package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js +7 -0
- package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +11 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +42 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.js +2 -2
- package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +23 -6
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/docs/codemode.md +10 -6
- package/docs/compaction.md +1 -1
- package/docs/computer-use.md +9 -9
- package/docs/custom-provider/streaming.md +4 -0
- package/docs/environment-variables.md +2 -0
- package/docs/extensions/api-reference.md +1 -1
- package/docs/extensions/authoring.md +2 -0
- package/docs/extensions/events.md +8 -1
- package/docs/getting-started/first-session.md +1 -1
- package/docs/herdr.md +11 -2
- package/docs/json.md +6 -1
- package/docs/models/evals.md +34 -3
- package/docs/models.md +1 -1
- package/docs/providers.md +10 -0
- package/docs/sdk.md +8 -2
- package/docs/settings.md +2 -2
- package/docs/skills.md +1 -1
- package/docs/terminal-setup.md +14 -0
- package/docs/workflows/authoring.md +3 -3
- package/examples/extensions/sandbox/package-lock.json +3 -3
- package/npm-shrinkwrap.json +67 -67
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-reload.js","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, realpathSync, statSync } from \"node:fs\";\nimport { isAbsolute, join, relative, sep } from \"node:path\";\nimport { yieldToEventLoopIfSlow } from \"../utils/event-loop.ts\";\nimport { isLocalPath, resolvePath } from \"../utils/paths.ts\";\nimport { getAllBuiltinPackageLocations, getMandatoryBuiltinExtensionPaths } from \"./builtin-packages.ts\";\nimport { filterSupersededHerdrIntegrationPaths } from \"./extensions/herdr-file-integration.ts\";\nimport { clearExtensionCache, createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { Extension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport { withMandatoryResourceLoader } from \"./mandatory-resource-loader.ts\";\nimport { isTrustedMandatoryRuntimeTool, markTrustedMandatoryRuntimeExtension } from \"./mandatory-runtime-tools.ts\";\nimport type { PathMetadata, ResolvedPaths } from \"./package-manager.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport {\n\tloadProjectContextFiles,\n\tresolveExistingPromptSourcePath,\n\tresolveExistingPromptSourcePaths,\n\tresolvePromptInput,\n} from \"./resource-loader-context-files.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { discoverAppendSystemPromptFile, discoverSystemPromptFile } from \"./resource-loader-discovery.ts\";\nimport { collectExtensionPackageWarnings, mergeExtensionWarnings } from \"./resource-loader-extension-warnings.ts\";\nimport {\n\tloadExtensionFactories,\n\tloadExtensionPaths,\n\tloadFinalExtensionSet,\n\tresolveInheritedExtensionOverlaps,\n} from \"./resource-loader-extensions.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport {\n\tcollectMcpServerContributions,\n\tcollectWorkflowResources,\n\tcreateInheritanceSnapshotProvider,\n\tcreateWorkflowResourceProvider,\n\tresolvePackageResourcePaths,\n\tresolveTrustedBorrowedProjectLocalSources,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths, resolveResourcePath } from \"./resource-loader-paths.ts\";\nimport { applyExtensionSourceInfo } from \"./resource-loader-source-info.ts\";\nimport type { ResourceLoaderReloadOptions } from \"./resource-loader-types.ts\";\nimport { buildSkillCatalog } from \"./skill-catalog.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"./source-info.ts\";\nimport { endTimingSpan, resetTimings, startTimingSpan } from \"./timings.ts\";\n\nfunction filterDisabledBuiltinExtensionPaths(paths: string[], disabled: Set<string>): string[] {\n\tif (disabled.size === 0) return paths;\n\tconst canonical = (path: string): string => {\n\t\ttry {\n\t\t\treturn realpathSync(path);\n\t\t} catch {\n\t\t\treturn path;\n\t\t}\n\t};\n\tconst roots = getAllBuiltinPackageLocations()\n\t\t.filter((location) => disabled.has(location.distDirName))\n\t\t.map((location) => canonical(location.packageDir));\n\treturn paths.filter((path) => {\n\t\tif (path.startsWith(BUILTIN_PATH_PREFIX)) return !disabled.has(path.slice(BUILTIN_PATH_PREFIX.length));\n\t\treturn !roots.some((root) => {\n\t\t\tconst child = relative(root, canonical(path));\n\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t});\n\t});\n}\n\nfunction getEnabledResources(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n): Array<{ path: string; enabled: boolean; metadata: PathMetadata }> {\n\tfor (const r of resources) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n\treturn resources.filter((r) => r.enabled);\n}\n\nfunction getEnabledPaths(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n): string[] {\n\treturn getEnabledResources(resources, metadataByPath).map((r) => r.path);\n}\n\nfunction getBuiltinExtensionPaths(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n\tnoExtensions: boolean,\n): string[] {\n\tfor (const resource of resources) {\n\t\tif (!metadataByPath.has(resource.path)) metadataByPath.set(resource.path, resource.metadata);\n\t}\n\treturn noExtensions ? [] : resources.filter((resource) => resource.enabled).map((resource) => resource.path);\n}\n\nfunction mapSkillPath(\n\tresource: { path: string; metadata: PathMetadata },\n\tmetadataByPath: Map<string, PathMetadata>,\n): string {\n\tif (resource.metadata.source !== \"auto\" && resource.metadata.origin !== \"package\") {\n\t\treturn resource.path;\n\t}\n\ttry {\n\t\tconst stats = statSync(resource.path);\n\t\tif (!stats.isDirectory()) {\n\t\t\treturn resource.path;\n\t\t}\n\t} catch {\n\t\treturn resource.path;\n\t}\n\tconst skillFile = join(resource.path, \"SKILL.md\");\n\tif (existsSync(skillFile)) {\n\t\tif (!metadataByPath.has(skillFile)) {\n\t\t\tmetadataByPath.set(skillFile, resource.metadata);\n\t\t}\n\t\treturn skillFile;\n\t}\n\treturn resource.path;\n}\n\nfunction addCliMetadata(cliExtensionPaths: ResolvedPaths, metadataByPath: Map<string, PathMetadata>): void {\n\tfor (const r of cliExtensionPaths.extensions) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n\tfor (const r of cliExtensionPaths.skills) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n}\n\nexport async function loadProjectTrustExtensions(loader: DefaultResourceLoader): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tstate.settingsManager.setProjectTrusted(false);\n\tawait state.settingsManager.reload();\n\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(loader, {\n\t\tincludeCliProjectLocalResources: false,\n\t});\n\tconst metadataByPath = new Map<string, PathMetadata>();\n\tconst cliEnabledExtensions = getEnabledPaths(cliExtensionPaths.extensions, metadataByPath);\n\tconst enabledExtensions = getEnabledPaths(resolvedPaths.extensions, metadataByPath);\n\tconst builtinEnabledExtensions = getBuiltinExtensionPaths(\n\t\tbuiltinPackagePaths.extensions,\n\t\tmetadataByPath,\n\t\tstate.noExtensions,\n\t);\n\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\tstate.workflowResources = workflowResources;\n\tstate.mcpServerContributions = collectMcpServerContributions(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\tconst workflowResourceProvider = createWorkflowResourceProvider(loader);\n\tconst inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);\n\t// The builtin Herdr reporter supersedes the installed file integration in a\n\t// Herdr pane; see extensions/herdr-file-integration.ts.\n\tconst extensionPaths = filterDisabledBuiltinExtensionPaths(\n\t\tfilterSupersededHerdrIntegrationPaths(\n\t\t\tmergeResourcePaths(\n\t\t\t\tstate.cwd,\n\t\t\t\tcliEnabledExtensions,\n\t\t\t\tstate.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions],\n\t\t\t),\n\t\t).filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)),\n\t\tstate.disabledBuiltinExtensions,\n\t);\n\tconst packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);\n\tconst extensionsResult = await loadExtensionPaths(\n\t\tloader,\n\t\textensionPaths,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tmergeExtensionWarnings(extensionsResult, packageWarnings);\n\tconst inlineExtensions = await loadExtensionFactories(\n\t\tloader,\n\t\textensionsResult.runtime,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t);\n\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\textensionsResult.errors.push(...inlineExtensions.errors);\n\tconst mandatoryPaths = new Set(getMandatoryBuiltinExtensionPaths().map((path) => resolvePath(path, state.cwd)));\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (mandatoryPaths.has(extension.resolvedPath)) markTrustedMandatoryRuntimeExtension(extension);\n\t}\n\tapplyExtensionSourceInfo(loader, extensionsResult.extensions, metadataByPath);\n\treturn extensionsResult;\n}\n\nexport async function reloadDefaultResourceLoader(\n\tloader: DefaultResourceLoader,\n\toptions?: ResourceLoaderReloadOptions,\n): Promise<void> {\n\tconst complete = await prepareDefaultResourceLoaderReload(loader, options);\n\tawait complete();\n}\n\n/** Resolve trust without loading the approved project resources until continuation. */\nexport async function prepareDefaultResourceLoaderReload(\n\tloader: DefaultResourceLoader,\n\toptions?: ResourceLoaderReloadOptions,\n): Promise<() => Promise<void>> {\n\tconst state = resourceInternals(loader);\n\tresetTimings(\"extensions\");\n\tif (state.loaded) {\n\t\tclearExtensionCache();\n\t}\n\tlet preTrustExtensions: LoadExtensionsResult | undefined;\n\tconst initialProjectTrusted = state.settingsManager.isProjectTrusted();\n\tif (options?.resolveProjectTrust || options?.resolveBorrowedProjectTrust) {\n\t\tpreTrustExtensions = await loadProjectTrustExtensions(loader);\n\t}\n\tconst resolveTrust = async () => {\n\t\tif (options?.resolveProjectTrust && preTrustExtensions) {\n\t\t\tconst projectTrusted = await options.resolveProjectTrust({ extensionsResult: preTrustExtensions });\n\t\t\tstate.settingsManager.setProjectTrusted(projectTrusted);\n\t\t} else if (preTrustExtensions) {\n\t\t\tstate.settingsManager.setProjectTrusted(initialProjectTrusted);\n\t\t}\n\t\tif (options?.resolveBorrowedProjectTrust) {\n\t\t\tstate.trustedBorrowedProjectLocalSources = await resolveTrustedBorrowedProjectLocalSources(\n\t\t\t\tloader,\n\t\t\t\toptions.resolveBorrowedProjectTrust,\n\t\t\t\tpreTrustExtensions,\n\t\t\t);\n\t\t}\n\t};\n\tif (!options?.deferProjectTrust) await resolveTrust();\n\tconst complete = async () => {\n\t\tif (options?.deferResources && !options.resolveProjectTrust && !options.resolveBorrowedProjectTrust) {\n\t\t\tawait state.settingsManager.reload();\n\t\t\tconst deferredExtensions: LoadExtensionsResult = {\n\t\t\t\textensions: [],\n\t\t\t\terrors: [],\n\t\t\t\truntime: createExtensionRuntime(),\n\t\t\t};\n\t\t\tstate.extensionsResult = state.extensionsOverride\n\t\t\t\t? state.extensionsOverride(deferredExtensions)\n\t\t\t\t: deferredExtensions;\n\t\t\tstate.extensionSkillSourceInfos = new Map();\n\t\t\tstate.extensionPromptSourceInfos = new Map();\n\t\t\tstate.extensionThemeSourceInfos = new Map();\n\t\t\tstate.workflowResources = [];\n\t\t\tstate.mcpServerContributions = [];\n\t\t\tstate.resourceMetadataByPath = new Map();\n\t\t\tstate.lastSkillPaths = [];\n\t\t\tconst emptySkills = state.skillsOverride ? state.skillsOverride({ skills: [], diagnostics: [] }) : undefined;\n\t\t\tstate.skills = emptySkills?.skills ?? [];\n\t\t\tstate.skillDiagnostics = emptySkills?.diagnostics ?? [];\n\t\t\tstate.skillCatalog = buildSkillCatalog(state.skills);\n\t\t\tstate.lastPromptPaths = [];\n\t\t\tconst emptyPrompts = state.promptsOverride\n\t\t\t\t? state.promptsOverride({ prompts: [], diagnostics: [] })\n\t\t\t\t: undefined;\n\t\t\tstate.prompts = emptyPrompts?.prompts ?? [];\n\t\t\tstate.promptDiagnostics = emptyPrompts?.diagnostics ?? [];\n\t\t\tstate.lastThemePaths = [];\n\t\t\tconst emptyThemes = state.themesOverride ? state.themesOverride({ themes: [], diagnostics: [] }) : undefined;\n\t\t\tstate.themes = emptyThemes?.themes ?? [];\n\t\t\tstate.themeDiagnostics = emptyThemes?.diagnostics ?? [];\n\t\t\tconst emptyAgentsFiles = { agentsFiles: [] };\n\t\t\tstate.agentsFiles = state.agentsFilesOverride\n\t\t\t\t? state.agentsFilesOverride(emptyAgentsFiles).agentsFiles\n\t\t\t\t: emptyAgentsFiles.agentsFiles;\n\t\t\tconst baseSystemPrompt = state.systemPromptSource\n\t\t\t\t? resolvePromptInput(state.systemPromptSource, \"system prompt\")\n\t\t\t\t: undefined;\n\t\t\tstate.systemPrompt = state.systemPromptOverride\n\t\t\t\t? state.systemPromptOverride(baseSystemPrompt)\n\t\t\t\t: baseSystemPrompt;\n\t\t\tstate.systemPromptSourcePath = resolveExistingPromptSourcePath(state.systemPromptSource);\n\t\t\tconst appendSources = state.appendSystemPromptSource ?? [];\n\t\t\tconst baseAppend = appendSources\n\t\t\t\t.map((s) => resolvePromptInput(s, \"append system prompt\"))\n\t\t\t\t.filter((s): s is string => s !== undefined);\n\t\t\tstate.appendSystemPrompt = state.appendSystemPromptOverride\n\t\t\t\t? state.appendSystemPromptOverride(baseAppend)\n\t\t\t\t: baseAppend;\n\t\t\tstate.appendSystemPromptSourcePaths = resolveExistingPromptSourcePaths(appendSources);\n\t\t\tstate.loaded = true;\n\t\t\treturn;\n\t\t}\n\t\tconst resolveSpan = startTimingSpan(\"DefaultResourceLoader.reload.resolvePackageResourcePaths\");\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(loader, {\n\t\t\ttrustedBorrowedProjectLocalSources: state.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tendTimingSpan(resolveSpan);\n\t\t// Kept on the loader so post-reload passes (extendResources) can still resolve\n\t\t// package metadata for paths this reload discovered.\n\t\tstate.resourceMetadataByPath = new Map();\n\t\tconst metadataByPath = state.resourceMetadataByPath;\n\n\t\tstate.extensionSkillSourceInfos = new Map();\n\t\tstate.extensionPromptSourceInfos = new Map();\n\t\tstate.extensionThemeSourceInfos = new Map();\n\n\t\tconst enabledExtensions = getEnabledPaths(resolvedPaths.extensions, metadataByPath);\n\t\tconst enabledSkillResources = getEnabledResources(resolvedPaths.skills, metadataByPath);\n\t\tconst enabledPrompts = getEnabledPaths(resolvedPaths.prompts, metadataByPath);\n\t\tconst enabledThemes = getEnabledPaths(resolvedPaths.themes, metadataByPath);\n\n\t\tconst builtinEnabledExtensions = getBuiltinExtensionPaths(\n\t\t\tbuiltinPackagePaths.extensions,\n\t\t\tmetadataByPath,\n\t\t\tstate.noExtensions,\n\t\t);\n\t\tconst builtinEnabledSkillResources = state.noSkills\n\t\t\t? []\n\t\t\t: getEnabledResources(builtinPackagePaths.skills, metadataByPath);\n\t\tconst builtinEnabledPrompts = state.noPromptTemplates\n\t\t\t? []\n\t\t\t: getEnabledPaths(builtinPackagePaths.prompts, metadataByPath);\n\t\tconst builtinEnabledThemes = state.noThemes ? [] : getEnabledPaths(builtinPackagePaths.themes, metadataByPath);\n\n\t\tconst enabledSkills = enabledSkillResources.map((resource) => mapSkillPath(resource, metadataByPath));\n\t\tconst builtinEnabledSkills = builtinEnabledSkillResources.map((resource) =>\n\t\t\tmapSkillPath(resource, metadataByPath),\n\t\t);\n\n\t\taddCliMetadata(cliExtensionPaths, metadataByPath);\n\n\t\tconst cliEnabledExtensions = getEnabledPaths(cliExtensionPaths.extensions, metadataByPath);\n\t\tconst cliEnabledSkills = getEnabledPaths(cliExtensionPaths.skills, metadataByPath);\n\t\tconst cliEnabledPrompts = getEnabledPaths(cliExtensionPaths.prompts, metadataByPath);\n\t\tconst cliEnabledThemes = getEnabledPaths(cliExtensionPaths.themes, metadataByPath);\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tstate.workflowResources = workflowResources;\n\t\tstate.mcpServerContributions = collectMcpServerContributions(\n\t\t\tresolvedPaths,\n\t\t\tcliExtensionPaths,\n\t\t\tbuiltinPackagePaths,\n\t\t);\n\t\tconst workflowResourceProvider = createWorkflowResourceProvider(loader);\n\n\t\t// The builtin Herdr reporter supersedes the installed file integration in a\n\t\t// Herdr pane; see extensions/herdr-file-integration.ts.\n\t\tconst extensionPaths = filterDisabledBuiltinExtensionPaths(\n\t\t\tfilterSupersededHerdrIntegrationPaths(\n\t\t\t\tmergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\tcliEnabledExtensions,\n\t\t\t\t\tstate.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions],\n\t\t\t\t),\n\t\t\t),\n\t\t\tstate.disabledBuiltinExtensions,\n\t\t);\n\n\t\tconst inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);\n\t\tconst packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);\n\t\tconst extensionsResult: LoadExtensionsResult = options?.deferExtensions\n\t\t\t? { extensions: [], errors: [], runtime: createExtensionRuntime() }\n\t\t\t: await loadFinalExtensionSet(\n\t\t\t\t\tloader,\n\t\t\t\t\textensionPaths,\n\t\t\t\t\tpreTrustExtensions,\n\t\t\t\t\tworkflowResourceProvider,\n\t\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t\t);\n\t\tif (!options?.deferExtensions) mergeExtensionWarnings(extensionsResult, packageWarnings);\n\t\tconst mandatoryExtensionPaths = new Set(\n\t\t\tgetMandatoryBuiltinExtensionPaths().map((path) =>\n\t\t\t\tresolvePath(path, state.cwd, { normalizeUnicodeSpaces: true }),\n\t\t\t),\n\t\t);\n\t\tconst loadedMandatoryExtensions = new Set<Extension>(\n\t\t\textensionsResult.extensions.filter((extension) =>\n\t\t\t\tmandatoryExtensionPaths.has(\n\t\t\t\t\tresolvePath(extension.resolvedPath, state.cwd, { normalizeUnicodeSpaces: true }),\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t\tfor (const extension of loadedMandatoryExtensions) markTrustedMandatoryRuntimeExtension(extension);\n\n\t\tfor (const p of state.additionalExtensionPaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved)) {\n\t\t\t\t\textensionsResult.errors.push({ path: resolved, error: `Extension path does not exist: ${resolved}` });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstate.extensionsResult = state.extensionsOverride ? state.extensionsOverride(extensionsResult) : extensionsResult;\n\t\tapplyExtensionSourceInfo(loader, state.extensionsResult.extensions, metadataByPath);\n\t\tif (options?.deferProjectTrust && preTrustExtensions) {\n\t\t\tfor (const extension of preTrustExtensions.extensions) {\n\t\t\t\tif (!extensionsResult.extensions.includes(extension)) extensionsResult.extensions.push(extension);\n\t\t\t}\n\t\t}\n\t\tfor (const extension of state.extensionsResult.extensions) {\n\t\t\tconst registration = extension.tools.get(\"intercom\");\n\t\t\tif (loadedMandatoryExtensions.has(extension) && registration && isTrustedMandatoryRuntimeTool(registration)) {\n\t\t\t\tmarkTrustedMandatoryRuntimeExtension(extension);\n\t\t\t}\n\t\t}\n\t\tresolveInheritedExtensionOverlaps(state.extensionsResult);\n\n\t\tconst skillPaths = state.noSkills\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledSkills, state.additionalSkillPaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledSkills, ...enabledSkills, ...builtinEnabledSkills],\n\t\t\t\t\tstate.additionalSkillPaths,\n\t\t\t\t);\n\n\t\tstate.lastSkillPaths = skillPaths;\n\t\tconst skillsStartedAt = Date.now();\n\t\tconst skillsSpan = startTimingSpan(\"DefaultResourceLoader.reload.updateSkillsFromPathsAsync\");\n\t\tawait updateSkillsFromPathsAsync(loader, skillPaths, metadataByPath);\n\t\tendTimingSpan(skillsSpan);\n\t\tawait yieldToEventLoopIfSlow(skillsStartedAt);\n\t\tfor (const p of state.additionalSkillPaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved) && !state.skillDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\t\tstate.skillDiagnostics.push({ type: \"error\", message: \"Skill path does not exist\", path: resolved });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst promptPaths = state.noPromptTemplates\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledPrompts, state.additionalPromptTemplatePaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledPrompts, ...enabledPrompts, ...builtinEnabledPrompts],\n\t\t\t\t\tstate.additionalPromptTemplatePaths,\n\t\t\t\t);\n\n\t\tstate.lastPromptPaths = promptPaths;\n\t\tconst promptsStartedAt = Date.now();\n\t\tconst promptsSpan = startTimingSpan(\"DefaultResourceLoader.reload.updatePromptsFromPathsAsync\");\n\t\tawait updatePromptsFromPathsAsync(loader, promptPaths, metadataByPath);\n\t\tendTimingSpan(promptsSpan);\n\t\tawait yieldToEventLoopIfSlow(promptsStartedAt);\n\t\tfor (const p of state.additionalPromptTemplatePaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved) && !state.promptDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\t\tstate.promptDiagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: \"Prompt template path does not exist\",\n\t\t\t\t\t\tpath: resolved,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst themePaths = state.noThemes\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledThemes, state.additionalThemePaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledThemes, ...enabledThemes, ...builtinEnabledThemes],\n\t\t\t\t\tstate.additionalThemePaths,\n\t\t\t\t);\n\n\t\tstate.lastThemePaths = themePaths;\n\t\tconst themesStartedAt = Date.now();\n\t\tconst themesSpan = startTimingSpan(\"DefaultResourceLoader.reload.updateThemesFromPathsAsync\");\n\t\tawait updateThemesFromPathsAsync(loader, themePaths, metadataByPath);\n\t\tendTimingSpan(themesSpan);\n\t\tawait yieldToEventLoopIfSlow(themesStartedAt);\n\t\tfor (const p of state.additionalThemePaths) {\n\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\tif (!existsSync(resolved) && !state.themeDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\tstate.themeDiagnostics.push({ type: \"error\", message: \"Theme path does not exist\", path: resolved });\n\t\t\t}\n\t\t}\n\n\t\tconst contextFilesStartedAt = Date.now();\n\t\tconst contextFilesSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadProjectContextFiles\");\n\t\tconst agentsFiles = {\n\t\t\tagentsFiles: state.noContextFiles\n\t\t\t\t? []\n\t\t\t\t: loadProjectContextFiles({\n\t\t\t\t\t\tcwd: state.cwd,\n\t\t\t\t\t\tagentDir: state.agentDir,\n\t\t\t\t\t\tprojectTrusted: state.settingsManager.isProjectTrusted(),\n\t\t\t\t\t}),\n\t\t};\n\t\tendTimingSpan(contextFilesSpan);\n\t\tawait yieldToEventLoopIfSlow(contextFilesStartedAt);\n\t\tconst resolvedAgentsFiles = state.agentsFilesOverride ? state.agentsFilesOverride(agentsFiles) : agentsFiles;\n\t\tstate.agentsFiles = resolvedAgentsFiles.agentsFiles;\n\n\t\tconst promptFilesStartedAt = Date.now();\n\t\tconst promptFilesSpan = startTimingSpan(\"DefaultResourceLoader.reload.resolvePromptFiles\");\n\t\tconst systemPromptSource = state.systemPromptSource ?? discoverSystemPromptFile(loader);\n\t\tconst baseSystemPrompt = resolvePromptInput(systemPromptSource, \"system prompt\");\n\t\tstate.systemPrompt = state.systemPromptOverride ? state.systemPromptOverride(baseSystemPrompt) : baseSystemPrompt;\n\t\tstate.systemPromptSourcePath = resolveExistingPromptSourcePath(systemPromptSource);\n\n\t\tconst discoveredAppend = discoverAppendSystemPromptFile(loader);\n\t\tconst appendSources = state.appendSystemPromptSource ?? (discoveredAppend ? [discoveredAppend] : []);\n\t\tconst baseAppend = appendSources\n\t\t\t.map((s) => resolvePromptInput(s, \"append system prompt\"))\n\t\t\t.filter((s): s is string => s !== undefined);\n\t\tstate.appendSystemPrompt = state.appendSystemPromptOverride\n\t\t\t? state.appendSystemPromptOverride(baseAppend)\n\t\t\t: baseAppend;\n\t\tstate.appendSystemPromptSourcePaths = resolveExistingPromptSourcePaths(appendSources);\n\t\tstate.loaded = true;\n\t\tendTimingSpan(promptFilesSpan);\n\t\tawait yieldToEventLoopIfSlow(promptFilesStartedAt);\n\t};\n\tif (options?.deferProjectTrust && preTrustExtensions) {\n\t\tstate.extensionsResult = preTrustExtensions;\n\t\tpreTrustExtensions = (await withMandatoryResourceLoader(loader, state.cwd)).getExtensions();\n\t\tstate.extensionsResult = preTrustExtensions;\n\t\tlet trustResolution: Promise<void> | undefined;\n\t\toptions.deferProjectTrust(async () => {\n\t\t\ttrustResolution ??= resolveTrust();\n\t\t\tawait trustResolution;\n\t\t\tawait complete();\n\t\t});\n\t\treturn async () => {};\n\t}\n\treturn complete;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resource-loader-reload.js","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,qCAAqC,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AAEnH,OAAO,EACN,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GAClB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1G,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAClH,OAAO,EACN,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,GACjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACN,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,8BAA8B,EAC9B,2BAA2B,EAC3B,yCAAyC,GACzC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE5E,SAAS,mCAAmC,CAAC,KAAe,EAAE,QAAqB;IAClF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;QAC1C,IAAI,CAAC;YACJ,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,6BAA6B,EAAE;SAC3C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC3B,SAA4E,EAC5E,cAAyC;IAEzC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CACvB,SAA4E,EAC5E,cAAyC;IAEzC,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,wBAAwB,CAChC,SAA4E,EAC5E,cAAyC,EACzC,YAAqB;IAErB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,YAAY,CACpB,QAAkD,EAClD,cAAyC;IAEzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC;QACtB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,iBAAgC,EAAE,cAAyC;IAClG,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAA6B;IAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE;QAC3G,+BAA+B,EAAE,KAAK;KACtC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IACvD,MAAM,oBAAoB,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC3F,MAAM,iBAAiB,GAAG,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,wBAAwB,GAAG,wBAAwB,CACxD,mBAAmB,CAAC,UAAU,EAC9B,cAAc,EACd,KAAK,CAAC,YAAY,CAClB,CAAC;IACF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC1G,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC5C,KAAK,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACpH,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,2BAA2B,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAC9E,4EAA4E;IAC5E,wDAAwD;IACxD,MAAM,cAAc,GAAG,mCAAmC,CACzD,qCAAqC,CACpC,kBAAkB,CACjB,KAAK,CAAC,GAAG,EACT,oBAAoB,EACpB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,wBAAwB,CAAC,CACnG,CACD,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EACzD,KAAK,CAAC,yBAAyB,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,+BAA+B,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACxF,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAChD,MAAM,EACN,cAAc,EACd,wBAAwB,EACxB,2BAA2B,CAC3B,CAAC;IACF,sBAAsB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CACpD,MAAM,EACN,gBAAgB,CAAC,OAAO,EACxB,wBAAwB,EACxB,2BAA2B,CAC3B,CAAC;IACF,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACjE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChH,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACrD,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC;YAAE,oCAAoC,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;IACD,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9E,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,MAA6B,EAC7B,OAAqC;IAErC,MAAM,QAAQ,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,EAAE,CAAC;AAClB,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACvD,MAA6B,EAC7B,OAAqC;IAErC,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,mBAAmB,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,kBAAoD,CAAC;IACzD,MAAM,qBAAqB,GAAG,KAAK,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;IACvE,IAAI,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,2BAA2B,EAAE,CAAC;QAC1E,kBAAkB,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACnG,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC/B,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,EAAE,2BAA2B,EAAE,CAAC;YAC1C,KAAK,CAAC,kCAAkC,GAAG,MAAM,yCAAyC,CACzF,MAAM,EACN,OAAO,CAAC,2BAA2B,EACnC,kBAAkB,CAClB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC;IACrC,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,iBAAiB;QAAE,MAAM,YAAY,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,OAAO,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC;YACrG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,kBAAkB,GAAyB;gBAChD,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,sBAAsB,EAAE;aACjC,CAAC;YACF,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,kBAAkB;gBAChD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;gBAC9C,CAAC,CAAC,kBAAkB,CAAC;YACtB,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5C,KAAK,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;YAC7C,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5C,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC7B,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC;YAClC,KAAK,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;YACzC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7G,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,gBAAgB,GAAG,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC;YACxD,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe;gBACzC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;YACb,KAAK,CAAC,OAAO,GAAG,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5C,KAAK,CAAC,iBAAiB,GAAG,YAAY,EAAE,WAAW,IAAI,EAAE,CAAC;YAC1D,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7G,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,gBAAgB,GAAG,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,mBAAmB;gBAC5C,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,WAAW;gBACzD,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YAChC,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB;gBAChD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,kBAAkB,EAAE,eAAe,CAAC;gBAC/D,CAAC,CAAC,SAAS,CAAC;YACb,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,oBAAoB;gBAC9C,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;gBAC9C,CAAC,CAAC,gBAAgB,CAAC;YACpB,KAAK,CAAC,sBAAsB,GAAG,+BAA+B,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACzF,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,aAAa;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAC9C,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,0BAA0B;gBAC1D,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,UAAU,CAAC;gBAC9C,CAAC,CAAC,UAAU,CAAC;YACd,KAAK,CAAC,6BAA6B,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;YACtF,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,OAAO;QACR,CAAC;QACD,MAAM,WAAW,GAAG,eAAe,CAAC,0DAA0D,CAAC,CAAC;QAChG,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE;YAC3G,kCAAkC,EAAE,KAAK,CAAC,kCAAkC;SAC5E,CAAC,CAAC;QACH,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3B,+EAA+E;QAC/E,qDAAqD;QACrD,KAAK,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,KAAK,CAAC,sBAAsB,CAAC;QAEpD,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5C,KAAK,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7C,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5C,MAAM,iBAAiB,GAAG,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACpF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE5E,MAAM,wBAAwB,GAAG,wBAAwB,CACxD,mBAAmB,CAAC,UAAU,EAC9B,cAAc,EACd,KAAK,CAAC,YAAY,CAClB,CAAC;QACF,MAAM,4BAA4B,GAAG,KAAK,CAAC,QAAQ;YAClD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB;YACpD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE/G,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QACtG,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1E,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CACtC,CAAC;QAEF,cAAc,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAElD,MAAM,oBAAoB,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3F,MAAM,gBAAgB,GAAG,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnF,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;QAC1G,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC5C,KAAK,CAAC,sBAAsB,GAAG,6BAA6B,CAC3D,aAAa,EACb,iBAAiB,EACjB,mBAAmB,CACnB,CAAC;QACF,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAExE,4EAA4E;QAC5E,wDAAwD;QACxD,MAAM,cAAc,GAAG,mCAAmC,CACzD,qCAAqC,CACpC,kBAAkB,CACjB,KAAK,CAAC,GAAG,EACT,oBAAoB,EACpB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,wBAAwB,CAAC,CACnG,CACD,EACD,KAAK,CAAC,yBAAyB,CAC/B,CAAC;QAEF,MAAM,2BAA2B,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,+BAA+B,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACxF,MAAM,gBAAgB,GAAyB,OAAO,EAAE,eAAe;YACtE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE;YACnE,CAAC,CAAC,MAAM,qBAAqB,CAC3B,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,CAC3B,CAAC;QACJ,IAAI,CAAC,OAAO,EAAE,eAAe;YAAE,sBAAsB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QACzF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACtC,iCAAiC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAC9D,CACD,CAAC;QACF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACxC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,uBAAuB,CAAC,GAAG,CAC1B,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAChF,CACD,CACD,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,yBAAyB;YAAE,oCAAoC,CAAC,SAAS,CAAC,CAAC;QAEnG,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;YAChD,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kCAAkC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvG,CAAC;YACF,CAAC;QACF,CAAC;QACD,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAClH,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACpF,IAAI,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACtD,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;gBACvD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnG,CAAC;QACF,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,IAAI,6BAA6B,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7G,oCAAoC,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACD,iCAAiC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ;YAChC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,oBAAoB,CAAC;YAC7E,CAAC,CAAC,kBAAkB,CAClB,KAAK,CAAC,GAAG,EACT,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,EAChE,KAAK,CAAC,oBAAoB,CAC1B,CAAC;QAEJ,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,eAAe,CAAC,yDAAyD,CAAC,CAAC;QAC9F,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACrE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACvF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtG,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB;YAC1C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,6BAA6B,CAAC;YACvF,CAAC,CAAC,kBAAkB,CAClB,KAAK,CAAC,GAAG,EACT,CAAC,GAAG,iBAAiB,EAAE,GAAG,cAAc,EAAE,GAAG,qBAAqB,CAAC,EACnE,KAAK,CAAC,6BAA6B,CACnC,CAAC;QAEJ,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC;QACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,eAAe,CAAC,0DAA0D,CAAC,CAAC;QAChG,MAAM,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACvE,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3B,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,EAAE,CAAC;YACrD,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACxF,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBAC5B,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,qCAAqC;wBAC9C,IAAI,EAAE,QAAQ;qBACd,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ;YAChC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,oBAAoB,CAAC;YAC7E,CAAC,CAAC,kBAAkB,CAClB,KAAK,CAAC,GAAG,EACT,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,EAChE,KAAK,CAAC,oBAAoB,CAC1B,CAAC;QAEJ,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,eAAe,CAAC,yDAAyD,CAAC,CAAC;QAC9F,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACrE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACvF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtG,CAAC;QACF,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC,sDAAsD,CAAC,CAAC;QACjG,MAAM,WAAW,GAAG;YACnB,WAAW,EAAE,KAAK,CAAC,cAAc;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,uBAAuB,CAAC;oBACxB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC,gBAAgB,EAAE;iBACxD,CAAC;SACJ,CAAC;QACF,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAChC,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7G,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;QAEpD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,eAAe,CAAC,iDAAiD,CAAC,CAAC;QAC3F,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACxF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QACjF,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAClH,KAAK,CAAC,sBAAsB,GAAG,+BAA+B,CAAC,kBAAkB,CAAC,CAAC;QAEnF,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,aAAa;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAC9C,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,0BAA0B;YAC1D,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAU,CAAC;QACd,KAAK,CAAC,6BAA6B,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;QACtF,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,aAAa,CAAC,eAAe,CAAC,CAAC;QAC/B,MAAM,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,IAAI,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACtD,KAAK,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;QAC5C,kBAAkB,GAAG,CAAC,MAAM,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5F,KAAK,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;QAC5C,IAAI,eAA0C,CAAC;QAC/C,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACpC,eAAe,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,eAAe,CAAC;YACtB,MAAM,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC","sourcesContent":["import { existsSync, realpathSync, statSync } from \"node:fs\";\nimport { isAbsolute, join, relative, sep } from \"node:path\";\nimport { yieldToEventLoopIfSlow } from \"../utils/event-loop.ts\";\nimport { isLocalPath, resolvePath } from \"../utils/paths.ts\";\nimport { getAllBuiltinPackageLocations, getMandatoryBuiltinExtensionPaths } from \"./builtin-packages.ts\";\nimport { filterSupersededHerdrIntegrationPaths } from \"./extensions/herdr-file-integration.ts\";\nimport { clearExtensionCache, createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { Extension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport { withMandatoryResourceLoader } from \"./mandatory-resource-loader.ts\";\nimport { isTrustedMandatoryRuntimeTool, markTrustedMandatoryRuntimeExtension } from \"./mandatory-runtime-tools.ts\";\nimport type { PathMetadata, ResolvedPaths } from \"./package-manager.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport {\n\tloadProjectContextFiles,\n\tresolveExistingPromptSourcePath,\n\tresolveExistingPromptSourcePaths,\n\tresolvePromptInput,\n} from \"./resource-loader-context-files.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { discoverAppendSystemPromptFile, discoverSystemPromptFile } from \"./resource-loader-discovery.ts\";\nimport { collectExtensionPackageWarnings, mergeExtensionWarnings } from \"./resource-loader-extension-warnings.ts\";\nimport {\n\tloadExtensionFactories,\n\tloadExtensionPaths,\n\tloadFinalExtensionSet,\n\tresolveInheritedExtensionOverlaps,\n} from \"./resource-loader-extensions.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport {\n\tcollectMcpServerContributions,\n\tcollectWorkflowResources,\n\tcreateInheritanceSnapshotProvider,\n\tcreateWorkflowResourceProvider,\n\tresolvePackageResourcePaths,\n\tresolveTrustedBorrowedProjectLocalSources,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths, resolveResourcePath } from \"./resource-loader-paths.ts\";\nimport { applyExtensionSourceInfo } from \"./resource-loader-source-info.ts\";\nimport type { ResourceLoaderReloadOptions } from \"./resource-loader-types.ts\";\nimport { buildSkillCatalog } from \"./skill-catalog.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"./source-info.ts\";\nimport { endTimingSpan, resetTimings, startTimingSpan } from \"./timings.ts\";\n\nfunction filterDisabledBuiltinExtensionPaths(paths: string[], disabled: Set<string>): string[] {\n\tif (disabled.size === 0) return paths;\n\tconst canonical = (path: string): string => {\n\t\ttry {\n\t\t\treturn realpathSync(path);\n\t\t} catch {\n\t\t\treturn path;\n\t\t}\n\t};\n\tconst roots = getAllBuiltinPackageLocations()\n\t\t.filter((location) => disabled.has(location.distDirName))\n\t\t.map((location) => canonical(location.packageDir));\n\treturn paths.filter((path) => {\n\t\tif (path.startsWith(BUILTIN_PATH_PREFIX)) return !disabled.has(path.slice(BUILTIN_PATH_PREFIX.length));\n\t\treturn !roots.some((root) => {\n\t\t\tconst child = relative(root, canonical(path));\n\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t});\n\t});\n}\n\nfunction getEnabledResources(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n): Array<{ path: string; enabled: boolean; metadata: PathMetadata }> {\n\tfor (const r of resources) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n\treturn resources.filter((r) => r.enabled);\n}\n\nfunction getEnabledPaths(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n): string[] {\n\treturn getEnabledResources(resources, metadataByPath).map((r) => r.path);\n}\n\nfunction getBuiltinExtensionPaths(\n\tresources: Array<{ path: string; enabled: boolean; metadata: PathMetadata }>,\n\tmetadataByPath: Map<string, PathMetadata>,\n\tnoExtensions: boolean,\n): string[] {\n\tfor (const resource of resources) {\n\t\tif (!metadataByPath.has(resource.path)) metadataByPath.set(resource.path, resource.metadata);\n\t}\n\treturn noExtensions ? [] : resources.filter((resource) => resource.enabled).map((resource) => resource.path);\n}\n\nfunction mapSkillPath(\n\tresource: { path: string; metadata: PathMetadata },\n\tmetadataByPath: Map<string, PathMetadata>,\n): string {\n\tif (resource.metadata.source !== \"auto\" && resource.metadata.origin !== \"package\") {\n\t\treturn resource.path;\n\t}\n\ttry {\n\t\tconst stats = statSync(resource.path);\n\t\tif (!stats.isDirectory()) {\n\t\t\treturn resource.path;\n\t\t}\n\t} catch {\n\t\treturn resource.path;\n\t}\n\tconst skillFile = join(resource.path, \"SKILL.md\");\n\tif (existsSync(skillFile)) {\n\t\tif (!metadataByPath.has(skillFile)) {\n\t\t\tmetadataByPath.set(skillFile, resource.metadata);\n\t\t}\n\t\treturn skillFile;\n\t}\n\treturn resource.path;\n}\n\nfunction addCliMetadata(cliExtensionPaths: ResolvedPaths, metadataByPath: Map<string, PathMetadata>): void {\n\tfor (const r of cliExtensionPaths.extensions) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n\tfor (const r of cliExtensionPaths.skills) {\n\t\tif (!metadataByPath.has(r.path)) {\n\t\t\tmetadataByPath.set(r.path, r.metadata);\n\t\t}\n\t}\n}\n\nexport async function loadProjectTrustExtensions(loader: DefaultResourceLoader): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tstate.settingsManager.setProjectTrusted(false);\n\tawait state.settingsManager.reload();\n\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(loader, {\n\t\tincludeCliProjectLocalResources: false,\n\t});\n\tconst metadataByPath = new Map<string, PathMetadata>();\n\tconst cliEnabledExtensions = getEnabledPaths(cliExtensionPaths.extensions, metadataByPath);\n\tconst enabledExtensions = getEnabledPaths(resolvedPaths.extensions, metadataByPath);\n\tconst builtinEnabledExtensions = getBuiltinExtensionPaths(\n\t\tbuiltinPackagePaths.extensions,\n\t\tmetadataByPath,\n\t\tstate.noExtensions,\n\t);\n\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\tstate.workflowResources = workflowResources;\n\tstate.mcpServerContributions = collectMcpServerContributions(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\tconst workflowResourceProvider = createWorkflowResourceProvider(loader);\n\tconst inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);\n\t// The builtin Herdr reporter supersedes the installed file integration in a\n\t// Herdr pane; see extensions/herdr-file-integration.ts.\n\tconst extensionPaths = filterDisabledBuiltinExtensionPaths(\n\t\tfilterSupersededHerdrIntegrationPaths(\n\t\t\tmergeResourcePaths(\n\t\t\t\tstate.cwd,\n\t\t\t\tcliEnabledExtensions,\n\t\t\t\tstate.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions],\n\t\t\t),\n\t\t).filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)),\n\t\tstate.disabledBuiltinExtensions,\n\t);\n\tconst packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);\n\tconst extensionsResult = await loadExtensionPaths(\n\t\tloader,\n\t\textensionPaths,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tmergeExtensionWarnings(extensionsResult, packageWarnings);\n\tconst inlineExtensions = await loadExtensionFactories(\n\t\tloader,\n\t\textensionsResult.runtime,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t);\n\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\textensionsResult.errors.push(...inlineExtensions.errors);\n\tconst mandatoryPaths = new Set(getMandatoryBuiltinExtensionPaths().map((path) => resolvePath(path, state.cwd)));\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (mandatoryPaths.has(extension.resolvedPath)) markTrustedMandatoryRuntimeExtension(extension);\n\t}\n\tapplyExtensionSourceInfo(loader, extensionsResult.extensions, metadataByPath);\n\treturn extensionsResult;\n}\n\nexport async function reloadDefaultResourceLoader(\n\tloader: DefaultResourceLoader,\n\toptions?: ResourceLoaderReloadOptions,\n): Promise<void> {\n\tconst complete = await prepareDefaultResourceLoaderReload(loader, options);\n\tawait complete();\n}\n\n/** Resolve trust without loading the approved project resources until continuation. */\nexport async function prepareDefaultResourceLoaderReload(\n\tloader: DefaultResourceLoader,\n\toptions?: ResourceLoaderReloadOptions,\n): Promise<() => Promise<void>> {\n\tconst state = resourceInternals(loader);\n\tresetTimings(\"extensions\");\n\tif (state.loaded) {\n\t\tclearExtensionCache();\n\t}\n\tlet preTrustExtensions: LoadExtensionsResult | undefined;\n\tconst initialProjectTrusted = state.settingsManager.isProjectTrusted();\n\tif (options?.resolveProjectTrust || options?.resolveBorrowedProjectTrust) {\n\t\tpreTrustExtensions = await loadProjectTrustExtensions(loader);\n\t}\n\tconst resolveTrust = async () => {\n\t\tif (options?.resolveProjectTrust && preTrustExtensions) {\n\t\t\tconst projectTrusted = await options.resolveProjectTrust({ extensionsResult: preTrustExtensions });\n\t\t\tstate.settingsManager.setProjectTrusted(projectTrusted);\n\t\t} else if (preTrustExtensions) {\n\t\t\tstate.settingsManager.setProjectTrusted(initialProjectTrusted);\n\t\t}\n\t\tif (options?.resolveBorrowedProjectTrust) {\n\t\t\tstate.trustedBorrowedProjectLocalSources = await resolveTrustedBorrowedProjectLocalSources(\n\t\t\t\tloader,\n\t\t\t\toptions.resolveBorrowedProjectTrust,\n\t\t\t\tpreTrustExtensions,\n\t\t\t);\n\t\t}\n\t\toptions?.onProjectTrustResolved?.();\n\t};\n\tif (!options?.deferProjectTrust) await resolveTrust();\n\tconst complete = async () => {\n\t\tif (options?.deferResources && !options.resolveProjectTrust && !options.resolveBorrowedProjectTrust) {\n\t\t\tawait state.settingsManager.reload();\n\t\t\tconst deferredExtensions: LoadExtensionsResult = {\n\t\t\t\textensions: [],\n\t\t\t\terrors: [],\n\t\t\t\truntime: createExtensionRuntime(),\n\t\t\t};\n\t\t\tstate.extensionsResult = state.extensionsOverride\n\t\t\t\t? state.extensionsOverride(deferredExtensions)\n\t\t\t\t: deferredExtensions;\n\t\t\tstate.extensionSkillSourceInfos = new Map();\n\t\t\tstate.extensionPromptSourceInfos = new Map();\n\t\t\tstate.extensionThemeSourceInfos = new Map();\n\t\t\tstate.workflowResources = [];\n\t\t\tstate.mcpServerContributions = [];\n\t\t\tstate.resourceMetadataByPath = new Map();\n\t\t\tstate.lastSkillPaths = [];\n\t\t\tconst emptySkills = state.skillsOverride ? state.skillsOverride({ skills: [], diagnostics: [] }) : undefined;\n\t\t\tstate.skills = emptySkills?.skills ?? [];\n\t\t\tstate.skillDiagnostics = emptySkills?.diagnostics ?? [];\n\t\t\tstate.skillCatalog = buildSkillCatalog(state.skills);\n\t\t\tstate.lastPromptPaths = [];\n\t\t\tconst emptyPrompts = state.promptsOverride\n\t\t\t\t? state.promptsOverride({ prompts: [], diagnostics: [] })\n\t\t\t\t: undefined;\n\t\t\tstate.prompts = emptyPrompts?.prompts ?? [];\n\t\t\tstate.promptDiagnostics = emptyPrompts?.diagnostics ?? [];\n\t\t\tstate.lastThemePaths = [];\n\t\t\tconst emptyThemes = state.themesOverride ? state.themesOverride({ themes: [], diagnostics: [] }) : undefined;\n\t\t\tstate.themes = emptyThemes?.themes ?? [];\n\t\t\tstate.themeDiagnostics = emptyThemes?.diagnostics ?? [];\n\t\t\tconst emptyAgentsFiles = { agentsFiles: [] };\n\t\t\tstate.agentsFiles = state.agentsFilesOverride\n\t\t\t\t? state.agentsFilesOverride(emptyAgentsFiles).agentsFiles\n\t\t\t\t: emptyAgentsFiles.agentsFiles;\n\t\t\tconst baseSystemPrompt = state.systemPromptSource\n\t\t\t\t? resolvePromptInput(state.systemPromptSource, \"system prompt\")\n\t\t\t\t: undefined;\n\t\t\tstate.systemPrompt = state.systemPromptOverride\n\t\t\t\t? state.systemPromptOverride(baseSystemPrompt)\n\t\t\t\t: baseSystemPrompt;\n\t\t\tstate.systemPromptSourcePath = resolveExistingPromptSourcePath(state.systemPromptSource);\n\t\t\tconst appendSources = state.appendSystemPromptSource ?? [];\n\t\t\tconst baseAppend = appendSources\n\t\t\t\t.map((s) => resolvePromptInput(s, \"append system prompt\"))\n\t\t\t\t.filter((s): s is string => s !== undefined);\n\t\t\tstate.appendSystemPrompt = state.appendSystemPromptOverride\n\t\t\t\t? state.appendSystemPromptOverride(baseAppend)\n\t\t\t\t: baseAppend;\n\t\t\tstate.appendSystemPromptSourcePaths = resolveExistingPromptSourcePaths(appendSources);\n\t\t\tstate.loaded = true;\n\t\t\treturn;\n\t\t}\n\t\tconst resolveSpan = startTimingSpan(\"DefaultResourceLoader.reload.resolvePackageResourcePaths\");\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(loader, {\n\t\t\ttrustedBorrowedProjectLocalSources: state.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tendTimingSpan(resolveSpan);\n\t\t// Kept on the loader so post-reload passes (extendResources) can still resolve\n\t\t// package metadata for paths this reload discovered.\n\t\tstate.resourceMetadataByPath = new Map();\n\t\tconst metadataByPath = state.resourceMetadataByPath;\n\n\t\tstate.extensionSkillSourceInfos = new Map();\n\t\tstate.extensionPromptSourceInfos = new Map();\n\t\tstate.extensionThemeSourceInfos = new Map();\n\n\t\tconst enabledExtensions = getEnabledPaths(resolvedPaths.extensions, metadataByPath);\n\t\tconst enabledSkillResources = getEnabledResources(resolvedPaths.skills, metadataByPath);\n\t\tconst enabledPrompts = getEnabledPaths(resolvedPaths.prompts, metadataByPath);\n\t\tconst enabledThemes = getEnabledPaths(resolvedPaths.themes, metadataByPath);\n\n\t\tconst builtinEnabledExtensions = getBuiltinExtensionPaths(\n\t\t\tbuiltinPackagePaths.extensions,\n\t\t\tmetadataByPath,\n\t\t\tstate.noExtensions,\n\t\t);\n\t\tconst builtinEnabledSkillResources = state.noSkills\n\t\t\t? []\n\t\t\t: getEnabledResources(builtinPackagePaths.skills, metadataByPath);\n\t\tconst builtinEnabledPrompts = state.noPromptTemplates\n\t\t\t? []\n\t\t\t: getEnabledPaths(builtinPackagePaths.prompts, metadataByPath);\n\t\tconst builtinEnabledThemes = state.noThemes ? [] : getEnabledPaths(builtinPackagePaths.themes, metadataByPath);\n\n\t\tconst enabledSkills = enabledSkillResources.map((resource) => mapSkillPath(resource, metadataByPath));\n\t\tconst builtinEnabledSkills = builtinEnabledSkillResources.map((resource) =>\n\t\t\tmapSkillPath(resource, metadataByPath),\n\t\t);\n\n\t\taddCliMetadata(cliExtensionPaths, metadataByPath);\n\n\t\tconst cliEnabledExtensions = getEnabledPaths(cliExtensionPaths.extensions, metadataByPath);\n\t\tconst cliEnabledSkills = getEnabledPaths(cliExtensionPaths.skills, metadataByPath);\n\t\tconst cliEnabledPrompts = getEnabledPaths(cliExtensionPaths.prompts, metadataByPath);\n\t\tconst cliEnabledThemes = getEnabledPaths(cliExtensionPaths.themes, metadataByPath);\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tstate.workflowResources = workflowResources;\n\t\tstate.mcpServerContributions = collectMcpServerContributions(\n\t\t\tresolvedPaths,\n\t\t\tcliExtensionPaths,\n\t\t\tbuiltinPackagePaths,\n\t\t);\n\t\tconst workflowResourceProvider = createWorkflowResourceProvider(loader);\n\n\t\t// The builtin Herdr reporter supersedes the installed file integration in a\n\t\t// Herdr pane; see extensions/herdr-file-integration.ts.\n\t\tconst extensionPaths = filterDisabledBuiltinExtensionPaths(\n\t\t\tfilterSupersededHerdrIntegrationPaths(\n\t\t\t\tmergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\tcliEnabledExtensions,\n\t\t\t\t\tstate.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions],\n\t\t\t\t),\n\t\t\t),\n\t\t\tstate.disabledBuiltinExtensions,\n\t\t);\n\n\t\tconst inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);\n\t\tconst packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);\n\t\tconst extensionsResult: LoadExtensionsResult = options?.deferExtensions\n\t\t\t? { extensions: [], errors: [], runtime: createExtensionRuntime() }\n\t\t\t: await loadFinalExtensionSet(\n\t\t\t\t\tloader,\n\t\t\t\t\textensionPaths,\n\t\t\t\t\tpreTrustExtensions,\n\t\t\t\t\tworkflowResourceProvider,\n\t\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t\t);\n\t\tif (!options?.deferExtensions) mergeExtensionWarnings(extensionsResult, packageWarnings);\n\t\tconst mandatoryExtensionPaths = new Set(\n\t\t\tgetMandatoryBuiltinExtensionPaths().map((path) =>\n\t\t\t\tresolvePath(path, state.cwd, { normalizeUnicodeSpaces: true }),\n\t\t\t),\n\t\t);\n\t\tconst loadedMandatoryExtensions = new Set<Extension>(\n\t\t\textensionsResult.extensions.filter((extension) =>\n\t\t\t\tmandatoryExtensionPaths.has(\n\t\t\t\t\tresolvePath(extension.resolvedPath, state.cwd, { normalizeUnicodeSpaces: true }),\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t\tfor (const extension of loadedMandatoryExtensions) markTrustedMandatoryRuntimeExtension(extension);\n\n\t\tfor (const p of state.additionalExtensionPaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved)) {\n\t\t\t\t\textensionsResult.errors.push({ path: resolved, error: `Extension path does not exist: ${resolved}` });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstate.extensionsResult = state.extensionsOverride ? state.extensionsOverride(extensionsResult) : extensionsResult;\n\t\tapplyExtensionSourceInfo(loader, state.extensionsResult.extensions, metadataByPath);\n\t\tif (options?.deferProjectTrust && preTrustExtensions) {\n\t\t\tfor (const extension of preTrustExtensions.extensions) {\n\t\t\t\tif (!extensionsResult.extensions.includes(extension)) extensionsResult.extensions.push(extension);\n\t\t\t}\n\t\t}\n\t\tfor (const extension of state.extensionsResult.extensions) {\n\t\t\tconst registration = extension.tools.get(\"intercom\");\n\t\t\tif (loadedMandatoryExtensions.has(extension) && registration && isTrustedMandatoryRuntimeTool(registration)) {\n\t\t\t\tmarkTrustedMandatoryRuntimeExtension(extension);\n\t\t\t}\n\t\t}\n\t\tresolveInheritedExtensionOverlaps(state.extensionsResult);\n\n\t\tconst skillPaths = state.noSkills\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledSkills, state.additionalSkillPaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledSkills, ...enabledSkills, ...builtinEnabledSkills],\n\t\t\t\t\tstate.additionalSkillPaths,\n\t\t\t\t);\n\n\t\tstate.lastSkillPaths = skillPaths;\n\t\tconst skillsStartedAt = Date.now();\n\t\tconst skillsSpan = startTimingSpan(\"DefaultResourceLoader.reload.updateSkillsFromPathsAsync\");\n\t\tawait updateSkillsFromPathsAsync(loader, skillPaths, metadataByPath);\n\t\tendTimingSpan(skillsSpan);\n\t\tawait yieldToEventLoopIfSlow(skillsStartedAt);\n\t\tfor (const p of state.additionalSkillPaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved) && !state.skillDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\t\tstate.skillDiagnostics.push({ type: \"error\", message: \"Skill path does not exist\", path: resolved });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst promptPaths = state.noPromptTemplates\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledPrompts, state.additionalPromptTemplatePaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledPrompts, ...enabledPrompts, ...builtinEnabledPrompts],\n\t\t\t\t\tstate.additionalPromptTemplatePaths,\n\t\t\t\t);\n\n\t\tstate.lastPromptPaths = promptPaths;\n\t\tconst promptsStartedAt = Date.now();\n\t\tconst promptsSpan = startTimingSpan(\"DefaultResourceLoader.reload.updatePromptsFromPathsAsync\");\n\t\tawait updatePromptsFromPathsAsync(loader, promptPaths, metadataByPath);\n\t\tendTimingSpan(promptsSpan);\n\t\tawait yieldToEventLoopIfSlow(promptsStartedAt);\n\t\tfor (const p of state.additionalPromptTemplatePaths) {\n\t\t\tif (isLocalPath(p)) {\n\t\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\t\tif (!existsSync(resolved) && !state.promptDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\t\tstate.promptDiagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: \"Prompt template path does not exist\",\n\t\t\t\t\t\tpath: resolved,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst themePaths = state.noThemes\n\t\t\t? mergeResourcePaths(state.cwd, cliEnabledThemes, state.additionalThemePaths)\n\t\t\t: mergeResourcePaths(\n\t\t\t\t\tstate.cwd,\n\t\t\t\t\t[...cliEnabledThemes, ...enabledThemes, ...builtinEnabledThemes],\n\t\t\t\t\tstate.additionalThemePaths,\n\t\t\t\t);\n\n\t\tstate.lastThemePaths = themePaths;\n\t\tconst themesStartedAt = Date.now();\n\t\tconst themesSpan = startTimingSpan(\"DefaultResourceLoader.reload.updateThemesFromPathsAsync\");\n\t\tawait updateThemesFromPathsAsync(loader, themePaths, metadataByPath);\n\t\tendTimingSpan(themesSpan);\n\t\tawait yieldToEventLoopIfSlow(themesStartedAt);\n\t\tfor (const p of state.additionalThemePaths) {\n\t\t\tconst resolved = resolveResourcePath(state.cwd, p);\n\t\t\tif (!existsSync(resolved) && !state.themeDiagnostics.some((d) => d.path === resolved)) {\n\t\t\t\tstate.themeDiagnostics.push({ type: \"error\", message: \"Theme path does not exist\", path: resolved });\n\t\t\t}\n\t\t}\n\n\t\tconst contextFilesStartedAt = Date.now();\n\t\tconst contextFilesSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadProjectContextFiles\");\n\t\tconst agentsFiles = {\n\t\t\tagentsFiles: state.noContextFiles\n\t\t\t\t? []\n\t\t\t\t: loadProjectContextFiles({\n\t\t\t\t\t\tcwd: state.cwd,\n\t\t\t\t\t\tagentDir: state.agentDir,\n\t\t\t\t\t\tprojectTrusted: state.settingsManager.isProjectTrusted(),\n\t\t\t\t\t}),\n\t\t};\n\t\tendTimingSpan(contextFilesSpan);\n\t\tawait yieldToEventLoopIfSlow(contextFilesStartedAt);\n\t\tconst resolvedAgentsFiles = state.agentsFilesOverride ? state.agentsFilesOverride(agentsFiles) : agentsFiles;\n\t\tstate.agentsFiles = resolvedAgentsFiles.agentsFiles;\n\n\t\tconst promptFilesStartedAt = Date.now();\n\t\tconst promptFilesSpan = startTimingSpan(\"DefaultResourceLoader.reload.resolvePromptFiles\");\n\t\tconst systemPromptSource = state.systemPromptSource ?? discoverSystemPromptFile(loader);\n\t\tconst baseSystemPrompt = resolvePromptInput(systemPromptSource, \"system prompt\");\n\t\tstate.systemPrompt = state.systemPromptOverride ? state.systemPromptOverride(baseSystemPrompt) : baseSystemPrompt;\n\t\tstate.systemPromptSourcePath = resolveExistingPromptSourcePath(systemPromptSource);\n\n\t\tconst discoveredAppend = discoverAppendSystemPromptFile(loader);\n\t\tconst appendSources = state.appendSystemPromptSource ?? (discoveredAppend ? [discoveredAppend] : []);\n\t\tconst baseAppend = appendSources\n\t\t\t.map((s) => resolvePromptInput(s, \"append system prompt\"))\n\t\t\t.filter((s): s is string => s !== undefined);\n\t\tstate.appendSystemPrompt = state.appendSystemPromptOverride\n\t\t\t? state.appendSystemPromptOverride(baseAppend)\n\t\t\t: baseAppend;\n\t\tstate.appendSystemPromptSourcePaths = resolveExistingPromptSourcePaths(appendSources);\n\t\tstate.loaded = true;\n\t\tendTimingSpan(promptFilesSpan);\n\t\tawait yieldToEventLoopIfSlow(promptFilesStartedAt);\n\t};\n\tif (options?.deferProjectTrust && preTrustExtensions) {\n\t\tstate.extensionsResult = preTrustExtensions;\n\t\tpreTrustExtensions = (await withMandatoryResourceLoader(loader, state.cwd)).getExtensions();\n\t\tstate.extensionsResult = preTrustExtensions;\n\t\tlet trustResolution: Promise<void> | undefined;\n\t\toptions.deferProjectTrust(async () => {\n\t\t\ttrustResolution ??= resolveTrust();\n\t\t\tawait trustResolution;\n\t\t\tawait complete();\n\t\t});\n\t\treturn async () => {};\n\t}\n\treturn complete;\n}\n"]}
|
|
@@ -45,6 +45,7 @@ export interface ResourceLoaderReloadOptions {
|
|
|
45
45
|
resources: ResolvedResource[];
|
|
46
46
|
extensionsResult: LoadExtensionsResult;
|
|
47
47
|
}) => boolean | Promise<boolean>;
|
|
48
|
+
onProjectTrustResolved?: () => void;
|
|
48
49
|
}
|
|
49
50
|
export interface PreparedResourceLoaderCommit {
|
|
50
51
|
commit(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-types.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC9D,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5D,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,gBAAgB,EAAE,oBAAoB,CAAA;KAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1G,2BAA2B,CAAC,EAAE,CAAC,OAAO,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC9B,gBAAgB,EAAE,oBAAoB,CAAC;KACvC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-loader-types.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-types.js","sourceRoot":"","sources":["../../src/core/resource-loader-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport type { ResourceDiagnostic } from \"./diagnostics.ts\";\nimport type { EventBus } from \"./event-bus.js\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport type { PathMetadata, ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport type { PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport type { SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\n\nexport interface ResourceExtensionPaths {\n\tskillPaths?: Array<{ path: string; metadata: PathMetadata }>;\n\tpromptPaths?: Array<{ path: string; metadata: PathMetadata }>;\n\tthemePaths?: Array<{ path: string; metadata: PathMetadata }>;\n}\n\nexport interface ResourceLoaderReloadOptions {\n\t/**\n\t * Skip loading extension code during this reload, leaving the loader with an\n\t * empty extension set. Skills, prompts, themes, context files, and prompt\n\t * files still load. A later full reload() picks up extensions.\n\t */\n\tdeferExtensions?: boolean;\n\t/**\n\t * Skip all resource discovery and loading during this reload. This is used by\n\t * interactive first-paint startup only when no CLI/startup input can observe\n\t * resources before a later full reload() completes.\n\t */\n\tdeferResources?: boolean;\n\t/** Publish trust-safe extensions now; complete trust after binding a live session and UI. */\n\tdeferProjectTrust?: (complete: () => Promise<void>) => void;\n\tresolveProjectTrust?: (options: { extensionsResult: LoadExtensionsResult }) => boolean | Promise<boolean>;\n\tresolveBorrowedProjectTrust?: (options: {\n\t\tsource: string;\n\t\tresources: ResolvedResource[];\n\t\textensionsResult: LoadExtensionsResult;\n\t}) => boolean | Promise<boolean>;\n}\nexport interface PreparedResourceLoaderCommit {\n\tcommit(): void;\n\trollback(): void;\n}\n\nexport interface ResourceLoaderReloadTransaction {\n\t/** Fully loaded candidate. Live readers must not observe it before commit. */\n\treadonly loader: ResourceLoader;\n\t/** Rebind the candidate to the live settings identity immediately before commit. */\n\tactivate(settingsManager: SettingsManager): void;\n\t/** Prepare fallible publication work without exposing candidate behavior. */\n\tprepareCommit?(): PreparedResourceLoaderCommit;\n\t/** Publish synchronously after all candidate work has succeeded. */\n\tcommit(): void;\n}\n\nexport interface ResourceLoader {\n\tgetExtensions(): LoadExtensionsResult;\n\tgetWorkflowResources?(): ResolvedResource[];\n\trefreshWorkflowResources?(): Promise<ResolvedResource[]>;\n\tgetMcpServerContributions?(): McpServerContribution[];\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] };\n\tgetSkillCatalog?(): SkillCatalog;\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] };\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] };\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> };\n\tgetSystemPrompt(): string | undefined;\n\tgetSystemPromptSource(): { path: string } | undefined;\n\tgetAppendSystemPrompt(): string[];\n\tgetAppendSystemPromptSources(): Array<{ path: string }>;\n\textendResources(paths: ResourceExtensionPaths): Promise<void>;\n\treload(options?: ResourceLoaderReloadOptions): Promise<void>;\n\tsupportsTransactionalReload?(): boolean;\n\tprepareReload?(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction>;\n}\n\nexport interface DefaultResourceLoaderInheritanceSnapshot {\n\treadonly projectTrusted?: boolean;\n\treadonly additionalExtensionPaths?: readonly string[];\n\treadonly additionalSkillPaths?: readonly string[];\n\treadonly additionalPromptTemplatePaths?: readonly string[];\n\treadonly additionalThemePaths?: readonly string[];\n\treadonly builtinPackagePaths?: readonly PackageSource[];\n\treadonly extensionFactories?: readonly InlineExtension[];\n\treadonly noExtensions?: boolean;\n\treadonly disabledBuiltinExtensions?: readonly string[];\n\treadonly noSkills?: boolean;\n\treadonly noPromptTemplates?: boolean;\n\treadonly noThemes?: boolean;\n\treadonly noContextFiles?: boolean;\n\treadonly systemPrompt?: string;\n\treadonly appendSystemPrompt?: readonly string[];\n\treadonly trustedBorrowedProjectLocalSources?: readonly string[];\n}\n\nexport interface DefaultResourceLoaderOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager?: SettingsManager;\n\teventBus?: EventBus;\n\tresourceLoaderInheritanceSnapshot?: DefaultResourceLoaderInheritanceSnapshot;\n\tadditionalExtensionPaths?: string[];\n\tadditionalSkillPaths?: string[];\n\tadditionalPromptTemplatePaths?: string[];\n\tadditionalThemePaths?: string[];\n\tbuiltinPackagePaths?: PackageSource[];\n\textensionFactories?: InlineExtension[];\n\tnoExtensions?: boolean;\n\tdisabledBuiltinExtensions?: string[];\n\tnoSkills?: boolean;\n\tnoPromptTemplates?: boolean;\n\tnoThemes?: boolean;\n\tnoContextFiles?: boolean;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string[];\n\textensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tskillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tpromptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tthemesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tagentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tsystemPromptOverride?: (base: string | undefined) => string | undefined;\n\tappendSystemPromptOverride?: (base: string[]) => string[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resource-loader-types.js","sourceRoot":"","sources":["../../src/core/resource-loader-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport type { ResourceDiagnostic } from \"./diagnostics.ts\";\nimport type { EventBus } from \"./event-bus.js\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport type { PathMetadata, ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport type { PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport type { SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\n\nexport interface ResourceExtensionPaths {\n\tskillPaths?: Array<{ path: string; metadata: PathMetadata }>;\n\tpromptPaths?: Array<{ path: string; metadata: PathMetadata }>;\n\tthemePaths?: Array<{ path: string; metadata: PathMetadata }>;\n}\n\nexport interface ResourceLoaderReloadOptions {\n\t/**\n\t * Skip loading extension code during this reload, leaving the loader with an\n\t * empty extension set. Skills, prompts, themes, context files, and prompt\n\t * files still load. A later full reload() picks up extensions.\n\t */\n\tdeferExtensions?: boolean;\n\t/**\n\t * Skip all resource discovery and loading during this reload. This is used by\n\t * interactive first-paint startup only when no CLI/startup input can observe\n\t * resources before a later full reload() completes.\n\t */\n\tdeferResources?: boolean;\n\t/** Publish trust-safe extensions now; complete trust after binding a live session and UI. */\n\tdeferProjectTrust?: (complete: () => Promise<void>) => void;\n\tresolveProjectTrust?: (options: { extensionsResult: LoadExtensionsResult }) => boolean | Promise<boolean>;\n\tresolveBorrowedProjectTrust?: (options: {\n\t\tsource: string;\n\t\tresources: ResolvedResource[];\n\t\textensionsResult: LoadExtensionsResult;\n\t}) => boolean | Promise<boolean>;\n\tonProjectTrustResolved?: () => void;\n}\nexport interface PreparedResourceLoaderCommit {\n\tcommit(): void;\n\trollback(): void;\n}\n\nexport interface ResourceLoaderReloadTransaction {\n\t/** Fully loaded candidate. Live readers must not observe it before commit. */\n\treadonly loader: ResourceLoader;\n\t/** Rebind the candidate to the live settings identity immediately before commit. */\n\tactivate(settingsManager: SettingsManager): void;\n\t/** Prepare fallible publication work without exposing candidate behavior. */\n\tprepareCommit?(): PreparedResourceLoaderCommit;\n\t/** Publish synchronously after all candidate work has succeeded. */\n\tcommit(): void;\n}\n\nexport interface ResourceLoader {\n\tgetExtensions(): LoadExtensionsResult;\n\tgetWorkflowResources?(): ResolvedResource[];\n\trefreshWorkflowResources?(): Promise<ResolvedResource[]>;\n\tgetMcpServerContributions?(): McpServerContribution[];\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] };\n\tgetSkillCatalog?(): SkillCatalog;\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] };\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] };\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> };\n\tgetSystemPrompt(): string | undefined;\n\tgetSystemPromptSource(): { path: string } | undefined;\n\tgetAppendSystemPrompt(): string[];\n\tgetAppendSystemPromptSources(): Array<{ path: string }>;\n\textendResources(paths: ResourceExtensionPaths): Promise<void>;\n\treload(options?: ResourceLoaderReloadOptions): Promise<void>;\n\tsupportsTransactionalReload?(): boolean;\n\tprepareReload?(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction>;\n}\n\nexport interface DefaultResourceLoaderInheritanceSnapshot {\n\treadonly projectTrusted?: boolean;\n\treadonly additionalExtensionPaths?: readonly string[];\n\treadonly additionalSkillPaths?: readonly string[];\n\treadonly additionalPromptTemplatePaths?: readonly string[];\n\treadonly additionalThemePaths?: readonly string[];\n\treadonly builtinPackagePaths?: readonly PackageSource[];\n\treadonly extensionFactories?: readonly InlineExtension[];\n\treadonly noExtensions?: boolean;\n\treadonly disabledBuiltinExtensions?: readonly string[];\n\treadonly noSkills?: boolean;\n\treadonly noPromptTemplates?: boolean;\n\treadonly noThemes?: boolean;\n\treadonly noContextFiles?: boolean;\n\treadonly systemPrompt?: string;\n\treadonly appendSystemPrompt?: readonly string[];\n\treadonly trustedBorrowedProjectLocalSources?: readonly string[];\n}\n\nexport interface DefaultResourceLoaderOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager?: SettingsManager;\n\teventBus?: EventBus;\n\tresourceLoaderInheritanceSnapshot?: DefaultResourceLoaderInheritanceSnapshot;\n\tadditionalExtensionPaths?: string[];\n\tadditionalSkillPaths?: string[];\n\tadditionalPromptTemplatePaths?: string[];\n\tadditionalThemePaths?: string[];\n\tbuiltinPackagePaths?: PackageSource[];\n\textensionFactories?: InlineExtension[];\n\tnoExtensions?: boolean;\n\tdisabledBuiltinExtensions?: string[];\n\tnoSkills?: boolean;\n\tnoPromptTemplates?: boolean;\n\tnoThemes?: boolean;\n\tnoContextFiles?: boolean;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string[];\n\textensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tskillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tpromptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tthemesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tagentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tsystemPromptOverride?: (base: string | undefined) => string | undefined;\n\tappendSystemPromptOverride?: (base: string[]) => string[];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAU,CAAC","sourcesContent":["export const CACHE_WARMING_MODES = [\"off\", \"streaming\", \"idle\"] as const;\nexport type CacheWarmingMode = (typeof CACHE_WARMING_MODES)[number];\n\nimport type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar, WheelScrollLines } from \"@earendil-works/pi-tui\";\n\nexport interface CompactionModelOverride {\n\treserveTokens?: number;\n\tpreserve_recent?: number;\n}\n\nexport interface CompactionSettings {\n\tenabled?: boolean; // default: true\n\treserveTokens?: number; // default: 16384\n\tcompression_ratio?: number; // default: 0.5 (fraction of compactable context to keep)\n\tpreserve_recent?: number; // default: 2 (recent context-eligible messages to keep)\n\tquery?: string; // default: auto-detected from session context\n\tmodelOverrides?: Record<string, CompactionModelOverride>; // exact \"provider/modelId\" keys\n}\n\nexport interface BranchSummarySettings {\n\treserveTokens?: number; // default: 16384 (tokens reserved for prompt + LLM response)\n\tskipPrompt?: boolean; // default: false - when true, skips \"Summarize branch?\" prompt and defaults to no summary\n}\n\nexport interface SessionSummarySettings {\n\tenabled?: boolean; // default: true - generate a one-line resume-picker summary once the agent goes idle\n}\n\nexport interface ProviderRetrySettings {\n\ttimeoutMs?: number; // SDK/provider request timeout in milliseconds\n\tmaxRetries?: number; // SDK/provider retry attempts\n\tmaxRetryDelayMs?: number; // default: 60000 (max server-requested delay before failing)\n}\n\nexport interface RetrySettings {\n\tenabled?: boolean; // default: true\n\tmaxRetries?: number; // default: 3\n\tbaseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s)\n\tmaxAgentDelayMs?: number; // default: 60000\n\tprovider?: ProviderRetrySettings;\n}\n\nexport interface TerminalSettings {\n\tshowImages?: boolean; // default: true (only relevant if terminal supports images)\n\timageWidthCells?: number; // default: 60 (preferred inline image width in terminal cells)\n\tclearOnShrink?: boolean; // default: false (clear empty rows when content shrinks)\n\tshowTerminalProgress?: boolean; // default: false (OSC 9;4 terminal progress indicators)\n\thyperlinks?: boolean | \"auto\";\n\timages?: \"kitty\" | \"iterm2\" | \"auto\" | false;\n\ttrueColor?: boolean | \"auto\";\n}\n\nexport interface ImageSettings {\n\tautoResize?: boolean; // default: true (resize images to 2000x2000 max for better model compatibility)\n\tblockImages?: boolean; // default: false - when true, prevents all images from being sent to LLM providers\n}\n\nexport interface SearchSettings {\n\tcontextBefore?: number;\n\tcontextAfter?: number;\n}\nexport interface ThinkingBudgetsSettings {\n\tminimal?: number;\n\tlow?: number;\n\tmedium?: number;\n\thigh?: number;\n}\n\nexport type MermaidRenderingMode = \"off\" | \"final\" | \"streaming\";\n\nexport interface MarkdownSettings {\n\tcodeBlockIndent?: string; // default: \" \"\n\tmermaid?: MermaidRenderingMode; // default: \"streaming\"\n\tlatex?: boolean; // default: true\n}\n\nexport interface WarningSettings {\n\tanthropicExtraUsage?: boolean; // default: true\n}\n\nexport type DefaultProjectTrust = \"ask\" | \"always\" | \"never\";\nexport type QuietStartup = boolean | \"header\";\n\nexport type TransportSetting = Transport;\n\n/** What the terminal keeps when Atomic's fullscreen session exits. */\nexport type FullscreenExitOutput = \"transcript\" | \"resume-hint\";\n\nexport type CodemodeMode = \"on\" | \"only\";\n\n/**\n * Package source for npm/git packages.\n * - String form: load all resources from the package\n * - Object form: filter which resources to load\n * - autoload=false: start empty and apply only explicit resource patterns\n */\nexport type PackageSource =\n\t| string\n\t| {\n\t\t\tsource: string;\n\t\t\tautoload?: boolean;\n\t\t\textensions?: string[];\n\t\t\tskills?: string[];\n\t\t\tprompts?: string[];\n\t\t\tthemes?: string[];\n\t\t\tworkflows?: string[];\n\t\t\tmcpServers?: string[];\n\t };\n\nexport interface BashInterceptorSettings {\n\tenabled?: boolean; // default: false\n}\n\n/** Provider filters for the candidates `model: \"auto\"` may route to. Does not affect `routerModel`. */\nexport interface ModelRoutingSettings {\n\t/** When nonempty, only these provider IDs are routing candidates. */\n\tallowedProviders?: string[];\n\t/** Provider IDs that are never routing candidates; applied after `allowedProviders`. */\n\texcludedProviders?: string[];\n}\n\nexport interface Settings {\n\tlastChangelogVersion?: string;\n\tfirstRunOnboardingStartedVersion?: string;\n\tonboardedVersion?: string;\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\trouterModel?: string; // default: \"\"; workflow-stage/subagent auto-model router inference only, never \"auto\"\n\tcompactionModel?: string;\n\tmodelRouting?: ModelRoutingSettings;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\tmodelThinkingLevels?: Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tfallbackModels?: string[]; // Ordered main-chat fallback models, optionally suffixed with :thinkingLevel\n\ttransport?: TransportSetting; // default: \"auto\"\n\tsteeringMode?: \"all\" | \"one-at-a-time\";\n\tfollowUpMode?: \"all\" | \"one-at-a-time\";\n\ttheme?: string;\n\tenableAnalytics?: boolean; // storage only; no analytics transmission is performed\n\ttrackingId?: string; // stable UUID generated on first analytics opt-in\n\tdeviceId?: string; // global installation ID, created only when a login needs it\n\tshowCacheMissNotices?: boolean; // default: false - show cache costs and provider recovery diagnostics\n\tcompaction?: CompactionSettings;\n\tbranchSummary?: BranchSummarySettings;\n\tsessionSummary?: SessionSummarySettings;\n\tretry?: RetrySettings;\n\thideThinkingBlock?: boolean;\n\texternalEditor?: string; // Command for Ctrl+G external editor; takes precedence over VISUAL/EDITOR\n\tshellPath?: string; // Custom shell path (e.g., for Cygwin users on Windows)\n\tquietStartup?: QuietStartup; // default: false; true hides all startup output, \"header\" keeps only the startup header\n\tdefaultProjectTrust?: DefaultProjectTrust; // default: \"ask\"; global setting only\n\tshellCommandPrefix?: string; // Prefix prepended to every bash command (e.g., \"shopt -s expand_aliases\" for alias support)\n\tbashInterceptor?: BashInterceptorSettings; // default: disabled; when enabled, user_bash handlers can intercept bash tool execution\n\tsearch?: SearchSettings; // Context lines for search results; defaults: before=1, after=3\n\tnpmCommand?: string[]; // Command used for npm package lookup/install operations, argv-style (e.g., [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"])\n\tcollapseChangelog?: boolean; // Show condensed changelog after update (use /changelog for full)\n\tenableInstallTelemetry?: boolean; // default: true - version-adoption ping on first interactive launch with fresh settings or after an update with changelog entries\n\tpackages?: PackageSource[]; // Array of npm/git package sources (string or object with filtering)\n\textensions?: string[]; // Array of local extension file paths or directories\n\tskills?: string[]; // Array of local skill file paths or directories\n\tprompts?: string[]; // Array of local prompt template paths or directories\n\tthemes?: string[]; // Array of local theme file paths or directories\n\tworkflows?:\n\t\t| string[]\n\t\t| {\n\t\t\t\tpaths?: string[];\n\t\t\t\tdurability?: { systemDatabaseUrl?: string; systemDatabaseUrlFile?: string };\n\t\t };\n\tenableSkillCommands?: boolean; // default: true - register skills as /skill:name commands\n\tterminal?: TerminalSettings;\n\therdr?: { enabled?: boolean }; // default: true, only inside an interactive Herdr pane\n\timages?: ImageSettings;\n\tenabledModels?: string[]; // Model patterns for cycling (same format as --models CLI flag)\n\tdefaultTools?: string[]; // Initial tool selection; +name/-name modify inherited selection\n\tdoubleEscapeAction?: \"fork\" | \"tree\" | \"none\"; // Action for double-escape with empty editor (default: \"tree\")\n\ttreeFilterMode?: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"; // Default filter when opening /tree\n\tthinkingBudgets?: ThinkingBudgetsSettings; // Custom token budgets for thinking levels\n\teditorPaddingX?: number; // Horizontal padding for input editor (default: 0)\n\toutputPad?: 0 | 1; // Horizontal padding for chat message output (default: 1)\n\tautocompleteMaxVisible?: number; // Max visible items in autocomplete dropdown (default: 5)\n\tshowHardwareCursor?: boolean; // Show terminal cursor while still positioning it for IME\n\tfullscreenScrollbar?: ScrollViewScrollbar; // default: \"auto\"\n\tfullscreenExitOutput?: FullscreenExitOutput; // default: \"transcript\"\n\tfullscreenCopyOnSelect?: boolean; // default: true\n\tfullscreenWheelScrollLines?: WheelScrollLines; // default: \"auto\", numeric values 1-100\n\tcodemode?: { mode?: CodemodeMode; inlineBudget?: number };\n\tmarkdown?: MarkdownSettings;\n\twarnings?: WarningSettings;\n\tsessionDir?: string; // Custom session storage directory (same format as --session-dir CLI flag)\n\thttpProxy?: string; // Proxy URL applied as HTTP_PROXY and HTTPS_PROXY; global setting only\n\thttpIdleTimeoutMs?: number | string; // HTTP idle timeout; 0 or \"disabled\" disables it\n\tcacheWarming?: CacheWarmingMode; // Global only; each refresh costs money. Default: streaming.\n\twebsocketConnectTimeoutMs?: number | string; // WebSocket connect timeout; 0 or \"disabled\" disables it\n\tstreamDeadlineMs?: number | string; // Max idle gap between provider stream events; 0 or \"disabled\" disables it\n}\n\nexport type SettingsScope = \"global\" | \"project\";\n\nexport interface SettingsManagerCreateOptions {\n\tprojectTrusted?: boolean;\n}\n\nexport type SettingsFieldOrigin = \"primary\" | \"legacy\";\n\nexport interface SettingsStorage {\n\twithLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;\n\t/**\n\t * Optional write-specific lock whose callback receives the current primary\n\t * document rather than a layered effective view. Storage implementations\n\t * without a distinct primary document can omit this method; layered storage\n\t * implementations must provide it to keep fallback fields out of the primary\n\t * document.\n\t */\n\twithPrimaryWriteLock?(scope: SettingsScope, fn: (currentPrimary: string | undefined) => string | undefined): void;\n\tgetFieldOrigin?(scope: SettingsScope, field: keyof Settings): SettingsFieldOrigin | undefined;\n}\n\nexport interface SettingsError {\n\tscope: SettingsScope;\n\tpath?: string;\n\terror: Error;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/core/settings-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAU,CAAC","sourcesContent":["export const CACHE_WARMING_MODES = [\"off\", \"streaming\", \"idle\"] as const;\nexport type CacheWarmingMode = (typeof CACHE_WARMING_MODES)[number];\n\nimport type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar, WheelScrollLines } from \"@earendil-works/pi-tui\";\n\nexport interface CompactionModelOverride {\n\treserveTokens?: number;\n\tpreserve_recent?: number;\n}\n\nexport interface CompactionSettings {\n\tenabled?: boolean; // default: true\n\treserveTokens?: number; // default: 16384\n\tcompression_ratio?: number; // default: 0.5 (fraction of compactable context to keep)\n\tpreserve_recent?: number; // default: 2 (recent context-eligible messages to keep)\n\tquery?: string; // default: auto-detected from session context\n\tmodelOverrides?: Record<string, CompactionModelOverride>; // exact \"provider/modelId\" keys\n}\n\nexport interface BranchSummarySettings {\n\treserveTokens?: number; // default: 16384 (tokens reserved for prompt + LLM response)\n\tskipPrompt?: boolean; // default: false - when true, skips \"Summarize branch?\" prompt and defaults to no summary\n}\n\nexport interface SessionSummarySettings {\n\tenabled?: boolean; // default: true - generate a one-line resume-picker summary once the agent goes idle\n}\n\nexport interface ProviderRetrySettings {\n\ttimeoutMs?: number; // SDK/provider request timeout in milliseconds\n\tmaxRetries?: number; // SDK/provider retry attempts\n\tmaxRetryDelayMs?: number; // default: 60000 (max server-requested delay before failing)\n}\n\nexport interface RetrySettings {\n\tenabled?: boolean; // default: true\n\tmaxRetries?: number; // default: 3\n\tbaseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s)\n\tmaxAgentDelayMs?: number; // default: 60000\n\tprovider?: ProviderRetrySettings;\n}\n\nexport interface TerminalSettings {\n\tshowImages?: boolean; // default: true (only relevant if terminal supports images)\n\timageWidthCells?: number; // default: 60 (preferred inline image width in terminal cells)\n\tclearOnShrink?: boolean; // default: false (clear empty rows when content shrinks)\n\tshowTerminalProgress?: boolean; // default: false (OSC 9;4 terminal progress indicators)\n\thyperlinks?: boolean | \"auto\";\n\timages?: \"kitty\" | \"iterm2\" | \"auto\" | false;\n\ttrueColor?: boolean | \"auto\";\n}\n\nexport interface ImageSettings {\n\tautoResize?: boolean; // default: true (resize images to 2000x2000 max for better model compatibility)\n\tblockImages?: boolean; // default: false - when true, prevents all images from being sent to LLM providers\n}\n\nexport interface SearchSettings {\n\tcontextBefore?: number;\n\tcontextAfter?: number;\n}\nexport interface ThinkingBudgetsSettings {\n\tminimal?: number;\n\tlow?: number;\n\tmedium?: number;\n\thigh?: number;\n}\n\nexport type MermaidRenderingMode = \"off\" | \"final\" | \"streaming\";\n\nexport interface MarkdownSettings {\n\tcodeBlockIndent?: string; // default: \" \"\n\tmermaid?: MermaidRenderingMode; // default: \"streaming\"\n\tlatex?: boolean; // default: true\n}\n\nexport interface WarningSettings {\n\tanthropicExtraUsage?: boolean; // default: true\n}\n\nexport type DefaultProjectTrust = \"ask\" | \"always\" | \"never\";\nexport type QuietStartup = boolean | \"header\";\n\nexport type TransportSetting = Transport;\n\n/** What the terminal keeps when Atomic's fullscreen session exits. */\nexport type FullscreenExitOutput = \"transcript\" | \"resume-hint\";\n\nexport type CodemodeMode = \"on\" | \"only\";\n\n/**\n * Package source for npm/git packages.\n * - String form: load all resources from the package\n * - Object form: filter which resources to load\n * - autoload=false: start empty and apply only explicit resource patterns\n */\nexport type PackageSource =\n\t| string\n\t| {\n\t\t\tsource: string;\n\t\t\tautoload?: boolean;\n\t\t\textensions?: string[];\n\t\t\tskills?: string[];\n\t\t\tprompts?: string[];\n\t\t\tthemes?: string[];\n\t\t\tworkflows?: string[];\n\t\t\tmcpServers?: string[];\n\t };\n\nexport interface BashInterceptorSettings {\n\tenabled?: boolean; // default: false\n}\n\n/** Provider filters for the candidates `model: \"auto\"` may route to. Does not affect `routerModel`. */\nexport interface ModelRoutingSettings {\n\t/** When nonempty, only these provider IDs are routing candidates. */\n\tallowedProviders?: string[];\n\t/** Provider IDs that are never routing candidates; applied after `allowedProviders`. */\n\texcludedProviders?: string[];\n}\n\nexport interface Settings {\n\tlastChangelogVersion?: string;\n\tfirstRunOnboardingStartedVersion?: string;\n\tonboardedVersion?: string;\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\trouterModel?: string; // default: \"\"; workflow-stage/subagent auto-model router inference only, never \"auto\"\n\tcompactionModel?: string;\n\tmodelRouting?: ModelRoutingSettings;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\tmodelThinkingLevels?: Record<string, \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\">;\n\tfallbackModels?: string[]; // Ordered main-chat fallback models, optionally suffixed with :thinkingLevel\n\ttransport?: TransportSetting; // default: \"auto\"\n\tsteeringMode?: \"all\" | \"one-at-a-time\";\n\tfollowUpMode?: \"all\" | \"one-at-a-time\";\n\ttheme?: string;\n\tenableAnalytics?: boolean; // storage only; no analytics transmission is performed\n\ttrackingId?: string; // stable UUID generated on first analytics opt-in\n\tdeviceId?: string; // global installation ID, created only when a login needs it\n\tshowCacheMissNotices?: boolean; // default: false - show cache costs and provider recovery diagnostics\n\tcompaction?: CompactionSettings;\n\tbranchSummary?: BranchSummarySettings;\n\tsessionSummary?: SessionSummarySettings;\n\tretry?: RetrySettings;\n\thideThinkingBlock?: boolean;\n\texternalEditor?: string; // Command for Ctrl+G external editor; takes precedence over VISUAL/EDITOR\n\tshellPath?: string; // Custom shell path (e.g., for Cygwin users on Windows)\n\tquietStartup?: QuietStartup; // default: false; true hides all startup output, \"header\" keeps only the startup header\n\tdefaultProjectTrust?: DefaultProjectTrust; // default: \"ask\"; global setting only\n\tshellCommandPrefix?: string; // Prefix prepended to every bash command (e.g., \"shopt -s expand_aliases\" for alias support)\n\tbashInterceptor?: BashInterceptorSettings; // default: disabled; when enabled, user_bash handlers can intercept bash tool execution\n\tsearch?: SearchSettings; // Context lines for search results; defaults: before=1, after=3\n\tnpmCommand?: string[]; // Command used for npm package lookup/install operations, argv-style (e.g., [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"])\n\tcollapseChangelog?: boolean; // Show condensed changelog after update (use /changelog for full)\n\tenableInstallTelemetry?: boolean; // default: true - version-adoption ping on first interactive launch with fresh settings or after an update with changelog entries\n\tpackages?: PackageSource[]; // Array of npm/git package sources (string or object with filtering)\n\textensions?: string[]; // Array of local extension file paths or directories\n\tskills?: string[]; // Array of local skill file paths or directories\n\tprompts?: string[]; // Array of local prompt template paths or directories\n\tthemes?: string[]; // Array of local theme file paths or directories\n\tworkflows?:\n\t\t| string[]\n\t\t| {\n\t\t\t\tpaths?: string[];\n\t\t\t\tdurability?: { systemDatabaseUrl?: string; systemDatabaseUrlFile?: string };\n\t\t };\n\tenableSkillCommands?: boolean; // default: true - register skills as /skill:name commands\n\tterminal?: TerminalSettings;\n\therdr?: { enabled?: boolean }; // default: true, only inside an interactive Herdr pane\n\timages?: ImageSettings;\n\tenabledModels?: string[]; // Model patterns for cycling (same format as --models CLI flag)\n\tdefaultTools?: string[]; // Initial tool selection; +name/-name modify inherited selection\n\tdoubleEscapeAction?: \"fork\" | \"tree\" | \"none\"; // Action for double-escape with empty editor (default: \"tree\")\n\ttreeFilterMode?: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"; // Default filter when opening /tree\n\tthinkingBudgets?: ThinkingBudgetsSettings; // Custom token budgets for thinking levels\n\teditorPaddingX?: number; // Horizontal padding for input editor (default: 0)\n\toutputPad?: 0 | 1; // Horizontal padding for transcript content (default: 1)\n\tautocompleteMaxVisible?: number; // Max visible items in autocomplete dropdown (default: 5)\n\tshowHardwareCursor?: boolean; // Show terminal cursor while still positioning it for IME\n\tfullscreenScrollbar?: ScrollViewScrollbar; // default: \"auto\"\n\tfullscreenExitOutput?: FullscreenExitOutput; // default: \"transcript\"\n\tfullscreenCopyOnSelect?: boolean; // default: true\n\tfullscreenWheelScrollLines?: WheelScrollLines; // default: \"auto\", numeric values 1-100\n\tcodemode?: { mode?: CodemodeMode; inlineBudget?: number };\n\tmarkdown?: MarkdownSettings;\n\twarnings?: WarningSettings;\n\tsessionDir?: string; // Custom session storage directory (same format as --session-dir CLI flag)\n\thttpProxy?: string; // Proxy URL applied as HTTP_PROXY and HTTPS_PROXY; global setting only\n\thttpIdleTimeoutMs?: number | string; // HTTP idle timeout; 0 or \"disabled\" disables it\n\tcacheWarming?: CacheWarmingMode; // Global only; each refresh costs money. Default: streaming.\n\twebsocketConnectTimeoutMs?: number | string; // WebSocket connect timeout; 0 or \"disabled\" disables it\n\tstreamDeadlineMs?: number | string; // Max idle gap between provider stream events; 0 or \"disabled\" disables it\n}\n\nexport type SettingsScope = \"global\" | \"project\";\n\nexport interface SettingsManagerCreateOptions {\n\tprojectTrusted?: boolean;\n}\n\nexport type SettingsFieldOrigin = \"primary\" | \"legacy\";\n\nexport interface SettingsStorage {\n\twithLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;\n\t/**\n\t * Optional write-specific lock whose callback receives the current primary\n\t * document rather than a layered effective view. Storage implementations\n\t * without a distinct primary document can omit this method; layered storage\n\t * implementations must provide it to keep fallback fields out of the primary\n\t * document.\n\t */\n\twithPrimaryWriteLock?(scope: SettingsScope, fn: (currentPrimary: string | undefined) => string | undefined): void;\n\tgetFieldOrigin?(scope: SettingsScope, field: keyof Settings): SettingsFieldOrigin | undefined;\n}\n\nexport interface SettingsError {\n\tscope: SettingsScope;\n\tpath?: string;\n\terror: Error;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tools/bash.js
CHANGED
|
@@ -250,7 +250,7 @@ function formatBashCall(args, prompt) {
|
|
|
250
250
|
const commandDisplay = command === null ? invalidArgText(theme) : command ? command : theme.fg("toolOutput", "...");
|
|
251
251
|
return theme.fg("toolTitle", theme.bold(`${prompt} ${commandDisplay}`)) + timeoutSuffix;
|
|
252
252
|
}
|
|
253
|
-
function rebuildBashResultRenderComponent(component, result, options, showImages, startedAt, endedAt) {
|
|
253
|
+
function rebuildBashResultRenderComponent(component, result, options, showImages, startedAt, endedAt, durationMs) {
|
|
254
254
|
component.clear();
|
|
255
255
|
let output = getTextOutput(result, showImages).trim();
|
|
256
256
|
const observation = result.details?.observation;
|
|
@@ -303,7 +303,11 @@ function rebuildBashResultRenderComponent(component, result, options, showImages
|
|
|
303
303
|
}
|
|
304
304
|
component.addChild(new Text(`\n${theme.fg("warning", `[${warnings.join(". ")}]`)}`, 0, 0));
|
|
305
305
|
}
|
|
306
|
-
if (
|
|
306
|
+
if (!options.isPartial && durationMs !== undefined) {
|
|
307
|
+
const label = observation?.kind === "yielded" ? "Observed for" : "Took";
|
|
308
|
+
component.addChild(new Text(`\n${theme.fg("muted", `${label} ${formatDuration(durationMs)}`)}`, 0, 0));
|
|
309
|
+
}
|
|
310
|
+
else if (startedAt !== undefined) {
|
|
307
311
|
const label = options.isPartial ? "Elapsed" : observation?.kind === "yielded" ? "Observed for" : "Took";
|
|
308
312
|
const endTime = endedAt ?? Date.now();
|
|
309
313
|
component.addChild(new Text(`\n${theme.fg("muted", `${label} ${formatDuration(endTime - startedAt)}`)}`, 0, 0));
|
|
@@ -604,7 +608,7 @@ export function createBashToolDefinition(cwd, options, presentation = BASH_SHELL
|
|
|
604
608
|
}
|
|
605
609
|
}
|
|
606
610
|
const component = context.lastComponent ?? new Container();
|
|
607
|
-
rebuildBashResultRenderComponent(component, result, options, context.showImages, state.startedAt, state.endedAt);
|
|
611
|
+
rebuildBashResultRenderComponent(component, result, options, context.showImages, state.startedAt, state.endedAt, context.durationMs);
|
|
608
612
|
component.invalidate();
|
|
609
613
|
return component;
|
|
610
614
|
},
|