@bastani/atomic 0.9.24 → 0.9.25-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/builtin/intercom/index.bundle.mjs +5 -0
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/CHANGELOG.md +11 -0
- package/dist/builtin/mcp/index.bundle.mjs +219 -71
- package/dist/builtin/mcp/package.json +6 -2
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +1 -0
- package/dist/builtin/web-access/index.bundle.mjs +7 -6
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +6 -0
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
- package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_1_sol.md +66 -0
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +1 -0
- package/dist/cli/startup-ui.d.ts +3 -4
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +3 -4
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +5 -0
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-export.d.ts.map +1 -1
- package/dist/core/agent-session-export.js +3 -0
- package/dist/core/agent-session-export.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 +2 -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-nested-tools.d.ts +10 -0
- package/dist/core/agent-session-nested-tools.d.ts.map +1 -0
- package/dist/core/agent-session-nested-tools.js +76 -0
- package/dist/core/agent-session-nested-tools.js.map +1 -0
- package/dist/core/agent-session-runtime-auth.js +3 -1
- package/dist/core/agent-session-runtime-auth.js.map +1 -1
- package/dist/core/agent-session-state.d.ts +2 -0
- package/dist/core/agent-session-state.d.ts.map +1 -1
- package/dist/core/agent-session-state.js +11 -11
- package/dist/core/agent-session-state.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +18 -3
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +15 -3
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +6 -2
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +1 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +18 -18
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/execution-model-router.d.ts.map +1 -1
- package/dist/core/execution-model-router.js +24 -8
- package/dist/core/execution-model-router.js.map +1 -1
- package/dist/core/export-html/template.js +12 -0
- package/dist/core/extensions/agent-events.d.ts +3 -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/api-types.d.ts +2 -0
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +9 -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/event-results.d.ts +3 -0
- package/dist/core/extensions/event-results.d.ts.map +1 -1
- package/dist/core/extensions/event-results.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -0
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +4 -0
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-core.d.ts.map +1 -1
- package/dist/core/extensions/loader-core.js +3 -5
- package/dist/core/extensions/loader-core.js.map +1 -1
- package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-host-modules.js +7 -1
- package/dist/core/extensions/loader-host-modules.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +3 -0
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +4 -0
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +2 -0
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/extensions/runner-events.d.ts.map +1 -1
- package/dist/core/extensions/runner-events.js +16 -1
- package/dist/core/extensions/runner-events.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +34 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +5 -0
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/tool-events.d.ts +4 -0
- package/dist/core/extensions/tool-events.d.ts.map +1 -1
- package/dist/core/extensions/tool-events.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +34 -3
- package/dist/core/extensions/tool-types.d.ts.map +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +14 -2
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/fast-model-routing-transport.d.ts.map +1 -1
- package/dist/core/fast-model-routing-transport.js +2 -1
- package/dist/core/fast-model-routing-transport.js.map +1 -1
- package/dist/core/fast-model-routing.d.ts +1 -2
- package/dist/core/fast-model-routing.d.ts.map +1 -1
- package/dist/core/fast-model-routing.js +13 -11
- package/dist/core/fast-model-routing.js.map +1 -1
- package/dist/core/fast-model-variants.d.ts +4 -1
- package/dist/core/fast-model-variants.d.ts.map +1 -1
- package/dist/core/fast-model-variants.js +42 -17
- package/dist/core/fast-model-variants.js.map +1 -1
- package/dist/core/model-registry.d.ts +4 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +9 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-defaults.js +1 -1
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/model-routing-candidates.d.ts +4 -0
- package/dist/core/model-routing-candidates.d.ts.map +1 -1
- package/dist/core/model-routing-candidates.js +8 -3
- package/dist/core/model-routing-candidates.js.map +1 -1
- package/dist/core/model-routing-evals.d.ts.map +1 -1
- package/dist/core/model-routing-evals.js +4 -5
- package/dist/core/model-routing-evals.js.map +1 -1
- package/dist/core/model-runtime.d.ts +3 -2
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +19 -25
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/nested-tool-calls.d.ts +64 -0
- package/dist/core/nested-tool-calls.d.ts.map +1 -0
- package/dist/core/nested-tool-calls.js +132 -0
- package/dist/core/nested-tool-calls.js.map +1 -0
- package/dist/core/package-manager-resolver.d.ts.map +1 -1
- package/dist/core/package-manager-resolver.js +21 -3
- package/dist/core/package-manager-resolver.js.map +1 -1
- package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -1
- package/dist/core/package-manager-resource-accumulator.js +2 -0
- package/dist/core/package-manager-resource-accumulator.js.map +1 -1
- package/dist/core/package-manager-types.d.ts +2 -0
- package/dist/core/package-manager-types.d.ts.map +1 -1
- package/dist/core/package-manager-types.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +1 -0
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader-core.d.ts.map +1 -1
- package/dist/core/resource-loader-core.js +12 -6
- package/dist/core/resource-loader-core.js.map +1 -1
- package/dist/core/resource-loader-extensions.d.ts +1 -0
- package/dist/core/resource-loader-extensions.d.ts.map +1 -1
- package/dist/core/resource-loader-extensions.js +64 -4
- package/dist/core/resource-loader-extensions.js.map +1 -1
- package/dist/core/resource-loader-paths.d.ts.map +1 -1
- package/dist/core/resource-loader-paths.js +2 -1
- package/dist/core/resource-loader-paths.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +5 -4
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-source-info.d.ts.map +1 -1
- package/dist/core/resource-loader-source-info.js +7 -5
- package/dist/core/resource-loader-source-info.js.map +1 -1
- package/dist/core/sdk-types.d.ts +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/session-manager-core.d.ts +2 -0
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js +5 -1
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +1 -1
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +27 -1
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts +2 -0
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +4 -0
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-manager-ui-accessors.d.ts +3 -1
- package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-ui-accessors.js +13 -0
- package/dist/core/settings-manager-ui-accessors.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-merge.d.ts +1 -0
- package/dist/core/settings-merge.d.ts.map +1 -1
- package/dist/core/settings-merge.js +30 -1
- package/dist/core/settings-merge.js.map +1 -1
- package/dist/core/settings-types.d.ts +8 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/source-info.d.ts +3 -0
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js +11 -0
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/tool-loadout.d.ts +6 -0
- package/dist/core/tool-loadout.d.ts.map +1 -0
- package/dist/core/tool-loadout.js +63 -0
- package/dist/core/tool-loadout.js.map +1 -0
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +1 -0
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +31 -11
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +4 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +32 -0
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +27 -21
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/render-utils.d.ts +4 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +19 -0
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-concurrency.d.ts +1 -1
- package/dist/core/tools/tool-concurrency.d.ts.map +1 -1
- package/dist/core/tools/tool-concurrency.js +28 -3
- package/dist/core/tools/tool-concurrency.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +4 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/usage-totals.d.ts +2 -0
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js +23 -0
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/extensions/codemode/execute.d.ts +10 -0
- package/dist/extensions/codemode/execute.d.ts.map +1 -0
- package/dist/extensions/codemode/execute.js +313 -0
- package/dist/extensions/codemode/execute.js.map +1 -0
- package/dist/extensions/codemode/index.d.ts +11 -0
- package/dist/extensions/codemode/index.d.ts.map +1 -0
- package/dist/extensions/codemode/index.js +14 -0
- package/dist/extensions/codemode/index.js.map +1 -0
- package/dist/extensions/codemode/renderer.d.ts +4 -0
- package/dist/extensions/codemode/renderer.d.ts.map +1 -0
- package/dist/extensions/codemode/renderer.js +78 -0
- package/dist/extensions/codemode/renderer.js.map +1 -0
- package/dist/extensions/codemode/tool.d.ts +51 -0
- package/dist/extensions/codemode/tool.d.ts.map +1 -0
- package/dist/extensions/codemode/tool.js +134 -0
- package/dist/extensions/codemode/tool.js.map +1 -0
- package/dist/extensions/codemode/worker.d.ts +2 -0
- package/dist/extensions/codemode/worker.d.ts.map +1 -0
- package/dist/extensions/codemode/worker.js +2 -0
- package/dist/extensions/codemode/worker.js.map +1 -0
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +5 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +31 -10
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/tool-search/index.d.ts +5 -0
- package/dist/extensions/tool-search/index.d.ts.map +1 -0
- package/dist/extensions/tool-search/index.js +6 -0
- package/dist/extensions/tool-search/index.js.map +1 -0
- package/dist/extensions/tool-search/tool.d.ts +41 -0
- package/dist/extensions/tool-search/tool.d.ts.map +1 -0
- package/dist/extensions/tool-search/tool.js +161 -0
- package/dist/extensions/tool-search/tool.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.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 +2 -0
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.js +9 -1
- package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector-project-scope.js +4 -1
- package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +2 -2
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +1 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +42 -7
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
- package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +13 -0
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js +3 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +3 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/themed-text.d.ts +8 -0
- package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
- package/dist/modes/interactive/components/themed-text.js +14 -0
- package/dist/modes/interactive/components/themed-text.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +5 -3
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +2 -0
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +2 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +5 -0
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-rendering.js +7 -10
- package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +5 -0
- 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.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +8 -3
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-tui.d.ts +2 -1
- package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-tui.js +1 -0
- package/dist/modes/interactive/interactive-tui.js.map +1 -1
- package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -1
- package/dist/modes/interactive/theme/color-utils.js +3 -0
- package/dist/modes/interactive/theme/color-utils.js.map +1 -1
- package/dist/modes/interactive/theme/export-colors.d.ts.map +1 -1
- package/dist/modes/interactive/theme/export-colors.js +4 -1
- package/dist/modes/interactive/theme/export-colors.js.map +1 -1
- package/dist/modes/interactive/theme/system-theme.d.ts +23 -0
- package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/system-theme.js +462 -0
- package/dist/modes/interactive/theme/system-theme.js.map +1 -0
- package/dist/modes/interactive/theme/terminal-colors.d.ts +10 -0
- package/dist/modes/interactive/theme/terminal-colors.d.ts.map +1 -0
- package/dist/modes/interactive/theme/terminal-colors.js +36 -0
- package/dist/modes/interactive/theme/terminal-colors.js.map +1 -0
- package/dist/modes/interactive/theme/terminal-detection.d.ts +4 -6
- package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
- package/dist/modes/interactive/theme/terminal-detection.js +12 -46
- package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
- package/dist/modes/interactive/theme/theme-class.d.ts +1 -0
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +2 -2
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +16 -8
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +106 -64
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.js +23 -2
- package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.js +1 -1
- package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +2 -2
- package/dist/modes/interactive/theme/theme.d.ts +2 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +2 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive-engine/engine-session-stats.d.ts +26 -0
- package/dist/modes/interactive-engine/engine-session-stats.d.ts.map +1 -0
- package/dist/modes/interactive-engine/engine-session-stats.js +71 -0
- package/dist/modes/interactive-engine/engine-session-stats.js.map +1 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js +4 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts +3 -0
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +27 -5
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js +3 -1
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +8 -2
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +2 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/shell.d.ts +1 -3
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +3 -30
- package/dist/utils/shell.js.map +1 -1
- package/docs/extensions/api-reference.md +5 -1
- package/docs/extensions/authoring.md +31 -1
- package/docs/extensions/events.md +3 -1
- package/docs/extensions.md +14 -0
- package/docs/models/evals.md +45 -2
- package/docs/models/reference.md +33 -2
- package/docs/models.md +1 -0
- package/docs/packages.md +2 -0
- package/docs/providers.md +34 -7
- package/docs/reference/cli.md +4 -0
- package/docs/rpc/protocol.md +10 -0
- package/docs/sdk/reference.md +5 -1
- package/docs/sdk/structured-decisions.md +2 -2
- package/docs/session-format.md +5 -0
- package/docs/settings.md +19 -5
- package/docs/skills.md +1 -1
- package/docs/themes/reference.md +2 -1
- package/docs/themes.md +4 -2
- package/docs/tools.md +39 -0
- package/npm-shrinkwrap.json +115 -113
- package/package.json +12 -9
|
@@ -71,11 +71,6 @@ export class DefaultResourceLoader {
|
|
|
71
71
|
this.settingsManager =
|
|
72
72
|
options.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);
|
|
73
73
|
this.eventBus = options.eventBus ?? createEventBus();
|
|
74
|
-
this.packageManager = new DefaultPackageManager({
|
|
75
|
-
cwd: this.cwd,
|
|
76
|
-
agentDir: this.agentDir,
|
|
77
|
-
settingsManager: this.settingsManager,
|
|
78
|
-
});
|
|
79
74
|
this.additionalExtensionPaths = mergeInheritedStrings(inheritanceSnapshot?.additionalExtensionPaths, options.additionalExtensionPaths);
|
|
80
75
|
this.additionalSkillPaths = mergeInheritedStrings(inheritanceSnapshot?.additionalSkillPaths, options.additionalSkillPaths);
|
|
81
76
|
this.additionalPromptTemplatePaths = mergeInheritedStrings(inheritanceSnapshot?.additionalPromptTemplatePaths, options.additionalPromptTemplatePaths);
|
|
@@ -88,6 +83,12 @@ export class DefaultResourceLoader {
|
|
|
88
83
|
...(inheritanceSnapshot?.extensionFactories ?? []),
|
|
89
84
|
...(options.extensionFactories ?? []),
|
|
90
85
|
];
|
|
86
|
+
this.packageManager = new DefaultPackageManager({
|
|
87
|
+
cwd: this.cwd,
|
|
88
|
+
agentDir: this.agentDir,
|
|
89
|
+
settingsManager: this.settingsManager,
|
|
90
|
+
builtinExtensions: this.extensionFactories.flatMap((input) => typeof input !== "function" && input.builtin ? [input.name] : []),
|
|
91
|
+
});
|
|
91
92
|
this.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;
|
|
92
93
|
this.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;
|
|
93
94
|
this.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;
|
|
@@ -321,7 +322,12 @@ export class DefaultResourceLoader {
|
|
|
321
322
|
}
|
|
322
323
|
replaceSettingsManager(settingsManager) {
|
|
323
324
|
this.settingsManager = settingsManager;
|
|
324
|
-
this.packageManager = new DefaultPackageManager({
|
|
325
|
+
this.packageManager = new DefaultPackageManager({
|
|
326
|
+
cwd: this.cwd,
|
|
327
|
+
agentDir: this.agentDir,
|
|
328
|
+
settingsManager,
|
|
329
|
+
builtinExtensions: this.extensionFactories.flatMap((input) => typeof input !== "function" && input.builtin ? [input.name] : []),
|
|
330
|
+
});
|
|
325
331
|
}
|
|
326
332
|
publishCandidate(candidate) {
|
|
327
333
|
this.extensionsResult = candidate.extensionsResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { ResourceDiagnostic, ResourceOverlap } from \"./diagnostics.ts\";\nimport { createEventBus, createStagedEventBus, type EventBus } from \"./event-bus.js\";\nimport { createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport { DefaultPackageManager, type PathMetadata, type ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport { clonePackageSources, mergeInheritedStrings } from \"./resource-loader-helpers.ts\";\nimport {\n\tcollectWorkflowResources,\n\tnormalizeExtensionPaths,\n\trecordExtensionSourceInfo,\n\tresolvePackageResourcePaths,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths } from \"./resource-loader-paths.ts\";\nimport { loadProjectTrustExtensions, reloadDefaultResourceLoader } from \"./resource-loader-reload.ts\";\nimport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tDefaultResourceLoaderOptions,\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { type PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog, type SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport class DefaultResourceLoader implements ResourceLoader {\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate settingsManager: SettingsManager;\n\tprivate eventBus: EventBus;\n\tprivate packageManager: DefaultPackageManager;\n\tprivate additionalExtensionPaths: string[];\n\tprivate additionalSkillPaths: string[];\n\tprivate additionalPromptTemplatePaths: string[];\n\tprivate additionalThemePaths: string[];\n\tprivate builtinPackagePaths: PackageSource[];\n\tprivate extensionFactories: InlineExtension[];\n\tprivate noExtensions: boolean;\n\tprivate noSkills: boolean;\n\tprivate noPromptTemplates: boolean;\n\tprivate noThemes: boolean;\n\tprivate noContextFiles: boolean;\n\tprivate systemPromptSource?: string;\n\tprivate appendSystemPromptSource?: string[];\n\tprivate extensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tprivate skillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate promptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate themesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate agentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tprivate systemPromptOverride?: (base: string | undefined) => string | undefined;\n\tprivate appendSystemPromptOverride?: (base: string[]) => string[];\n\tprivate extensionsResult: LoadExtensionsResult;\n\tprivate skills: Skill[];\n\tprivate skillDiagnostics: ResourceDiagnostic[];\n\tprivate skillCatalog: SkillCatalog;\n\tprivate prompts: PromptTemplate[];\n\tprivate promptDiagnostics: ResourceDiagnostic[];\n\tprivate themes: Theme[];\n\tprivate themeDiagnostics: ResourceDiagnostic[];\n\tprivate agentsFiles: Array<{ path: string; content: string }>;\n\tprivate systemPrompt?: string;\n\tprivate systemPromptSourcePath?: string;\n\tprivate appendSystemPrompt: string[];\n\tprivate appendSystemPromptSourcePaths: string[];\n\tprivate workflowResources: ResolvedResource[];\n\tprivate mcpServerContributions: McpServerContribution[];\n\tprivate trustedBorrowedProjectLocalSources?: Set<string>;\n\tprivate lastSkillPaths: string[];\n\tprivate extensionSkillSourceInfos: Map<string, SourceInfo>;\n\tprivate resourceMetadataByPath: Map<string, PathMetadata>;\n\tprivate extensionPromptSourceInfos: Map<string, SourceInfo>;\n\tprivate extensionThemeSourceInfos: Map<string, SourceInfo>;\n\tprivate lastPromptPaths: string[];\n\tprivate lastThemePaths: string[];\n\tprivate loaded: boolean;\n\tprivate loadOptions?: ResourceLoaderReloadOptions;\n\n\tconstructor(options: DefaultResourceLoaderOptions) {\n\t\tconst inheritanceSnapshot = options.resourceLoaderInheritanceSnapshot;\n\t\tconst inheritedSettingsOptions =\n\t\t\tinheritanceSnapshot?.projectTrusted === undefined\n\t\t\t\t? undefined\n\t\t\t\t: { projectTrusted: inheritanceSnapshot.projectTrusted };\n\t\tthis.cwd = resolvePath(options.cwd);\n\t\tthis.agentDir = resolvePath(options.agentDir);\n\t\tthis.settingsManager =\n\t\t\toptions.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);\n\t\tthis.eventBus = options.eventBus ?? createEventBus();\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: this.settingsManager,\n\t\t});\n\t\tthis.additionalExtensionPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalExtensionPaths,\n\t\t\toptions.additionalExtensionPaths,\n\t\t);\n\t\tthis.additionalSkillPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalSkillPaths,\n\t\t\toptions.additionalSkillPaths,\n\t\t);\n\t\tthis.additionalPromptTemplatePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalPromptTemplatePaths,\n\t\t\toptions.additionalPromptTemplatePaths,\n\t\t);\n\t\tthis.additionalThemePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalThemePaths,\n\t\t\toptions.additionalThemePaths,\n\t\t);\n\t\tthis.builtinPackagePaths =\n\t\t\toptions.builtinPackagePaths !== undefined\n\t\t\t\t? clonePackageSources(options.builtinPackagePaths)\n\t\t\t\t: clonePackageSources(inheritanceSnapshot?.builtinPackagePaths);\n\t\tthis.extensionFactories = [\n\t\t\t...(inheritanceSnapshot?.extensionFactories ?? []),\n\t\t\t...(options.extensionFactories ?? []),\n\t\t];\n\t\tthis.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;\n\t\tthis.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;\n\t\tthis.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;\n\t\tthis.noThemes = options.noThemes ?? inheritanceSnapshot?.noThemes ?? false;\n\t\tthis.noContextFiles = options.noContextFiles ?? inheritanceSnapshot?.noContextFiles ?? false;\n\t\tthis.systemPromptSource = options.systemPrompt ?? inheritanceSnapshot?.systemPrompt;\n\t\tthis.appendSystemPromptSource =\n\t\t\toptions.appendSystemPrompt !== undefined\n\t\t\t\t? [...options.appendSystemPrompt]\n\t\t\t\t: inheritanceSnapshot?.appendSystemPrompt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: [...inheritanceSnapshot.appendSystemPrompt];\n\t\tthis.extensionsOverride = options.extensionsOverride;\n\t\tthis.skillsOverride = options.skillsOverride;\n\t\tthis.promptsOverride = options.promptsOverride;\n\t\tthis.themesOverride = options.themesOverride;\n\t\tthis.agentsFilesOverride = options.agentsFilesOverride;\n\t\tthis.systemPromptOverride = options.systemPromptOverride;\n\t\tthis.appendSystemPromptOverride = options.appendSystemPromptOverride;\n\t\tthis.extensionsResult = { extensions: [], errors: [], runtime: createExtensionRuntime() };\n\t\tthis.skills = [];\n\t\tthis.skillDiagnostics = [];\n\t\tthis.skillCatalog = buildSkillCatalog([]);\n\t\tthis.prompts = [];\n\t\tthis.promptDiagnostics = [];\n\t\tthis.themes = [];\n\t\tthis.themeDiagnostics = [];\n\t\tthis.agentsFiles = [];\n\t\tthis.appendSystemPrompt = [];\n\t\tthis.appendSystemPromptSourcePaths = [];\n\t\tthis.workflowResources = [];\n\t\tthis.mcpServerContributions = [];\n\t\tthis.trustedBorrowedProjectLocalSources =\n\t\t\tinheritanceSnapshot?.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? undefined\n\t\t\t\t: new Set(inheritanceSnapshot.trustedBorrowedProjectLocalSources);\n\t\tthis.lastSkillPaths = [];\n\t\tthis.resourceMetadataByPath = new Map();\n\t\tthis.extensionSkillSourceInfos = new Map();\n\t\tthis.extensionPromptSourceInfos = new Map();\n\t\tthis.extensionThemeSourceInfos = new Map();\n\t\tthis.lastPromptPaths = [];\n\t\tthis.lastThemePaths = [];\n\t\tthis.loaded = false;\n\t\tthis.touchInternalFieldsForSplit();\n\t}\n\n\tgetExtensions(): LoadExtensionsResult {\n\t\treturn this.extensionsResult;\n\t}\n\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { skills: this.skills, diagnostics: this.skillDiagnostics };\n\t}\n\n\tgetSkillCatalog(): SkillCatalog {\n\t\treturn this.skillCatalog;\n\t}\n\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { prompts: this.prompts, diagnostics: this.promptDiagnostics };\n\t}\n\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { themes: this.themes, diagnostics: this.themeDiagnostics };\n\t}\n\n\tgetOverlaps(): ResourceOverlap[] {\n\t\treturn [...(this.extensionsResult.overlaps ?? [])];\n\t}\n\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> } {\n\t\treturn { agentsFiles: this.agentsFiles };\n\t}\n\n\tgetSystemPrompt(): string | undefined {\n\t\treturn this.systemPrompt;\n\t}\n\n\tgetAppendSystemPrompt(): string[] {\n\t\treturn this.appendSystemPrompt;\n\t}\n\n\tgetSystemPromptSource(): { path: string } | undefined {\n\t\treturn this.systemPromptSourcePath ? { path: this.systemPromptSourcePath } : undefined;\n\t}\n\n\tgetAppendSystemPromptSources(): Array<{ path: string }> {\n\t\treturn this.appendSystemPromptSourcePaths.map((path) => ({ path }));\n\t}\n\n\tgetWorkflowResources(): ResolvedResource[] {\n\t\treturn [...this.workflowResources];\n\t}\n\n\t/** Enabled package-manifest MCP servers discovered by the last reload. */\n\tgetMcpServerContributions(): McpServerContribution[] {\n\t\treturn [...this.mcpServerContributions];\n\t}\n\n\tgetInheritanceSnapshot(): DefaultResourceLoaderInheritanceSnapshot {\n\t\treturn {\n\t\t\tprojectTrusted: this.settingsManager.isProjectTrusted(),\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\t...(this.systemPromptSource === undefined ? {} : { systemPrompt: this.systemPromptSource }),\n\t\t\t...(this.appendSystemPromptSource === undefined\n\t\t\t\t? {}\n\t\t\t\t: { appendSystemPrompt: [...this.appendSystemPromptSource] }),\n\t\t\t...(this.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? {}\n\t\t\t\t: { trustedBorrowedProjectLocalSources: [...this.trustedBorrowedProjectLocalSources] }),\n\t\t};\n\t}\n\n\tasync refreshWorkflowResources(): Promise<ResolvedResource[]> {\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(this, {\n\t\t\ttrustedBorrowedProjectLocalSources: this.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tthis.workflowResources = workflowResources;\n\t\treturn [...this.workflowResources];\n\t}\n\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst skillPaths = normalizeExtensionPaths(this, paths.skillPaths ?? []);\n\t\tconst promptPaths = normalizeExtensionPaths(this, paths.promptPaths ?? []);\n\t\tconst themePaths = normalizeExtensionPaths(this, paths.themePaths ?? []);\n\t\trecordExtensionSourceInfo(this, skillPaths, \"skill\");\n\t\trecordExtensionSourceInfo(this, promptPaths, \"prompt\");\n\t\trecordExtensionSourceInfo(this, themePaths, \"theme\");\n\n\t\tif (skillPaths.length > 0) {\n\t\t\tthis.lastSkillPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastSkillPaths,\n\t\t\t\tskillPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateSkillsFromPathsAsync(this, this.lastSkillPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (promptPaths.length > 0) {\n\t\t\tthis.lastPromptPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastPromptPaths,\n\t\t\t\tpromptPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updatePromptsFromPathsAsync(this, this.lastPromptPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (themePaths.length > 0) {\n\t\t\tthis.lastThemePaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastThemePaths,\n\t\t\t\tthemePaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateThemesFromPathsAsync(this, this.lastThemePaths, this.resourceMetadataByPath);\n\t\t}\n\t}\n\n\tasync loadProjectTrustExtensions(): Promise<LoadExtensionsResult> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, () =>\n\t\t\tloadProjectTrustExtensions(this),\n\t\t);\n\t}\n\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, async () => {\n\t\t\tawait reloadDefaultResourceLoader(this, options);\n\t\t\tthis.loadOptions = options ? { ...options } : undefined;\n\t\t\tlifecycleScopeForOwner(this.getExtensions().runtime);\n\t\t});\n\t}\n\tprivate createCandidate(settingsManager: SettingsManager, eventBus: EventBus): DefaultResourceLoader {\n\t\treturn new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\teventBus,\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\tsystemPrompt: this.systemPromptSource,\n\t\t\tappendSystemPrompt: this.appendSystemPromptSource,\n\t\t\textensionsOverride: this.extensionsOverride,\n\t\t\tskillsOverride: this.skillsOverride,\n\t\t\tpromptsOverride: this.promptsOverride,\n\t\t\tthemesOverride: this.themesOverride,\n\t\t\tagentsFilesOverride: this.agentsFilesOverride,\n\t\t\tsystemPromptOverride: this.systemPromptOverride,\n\t\t\tappendSystemPromptOverride: this.appendSystemPromptOverride,\n\t\t\tresourceLoaderInheritanceSnapshot: {\n\t\t\t\ttrustedBorrowedProjectLocalSources:\n\t\t\t\t\tthis.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: [...this.trustedBorrowedProjectLocalSources],\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @internal A borrowed discovery loader is not a session extension generation. */\n\tasync createSessionLoader(scope: object): Promise<DefaultResourceLoader> {\n\t\tif (sessionLifecycleScopes.get(this) === scope) return this;\n\t\tconst candidate = this.createCandidate(this.settingsManager, this.eventBus);\n\t\tsessionLifecycleScopes.set(candidate, scope);\n\t\tawait candidate.reload(this.loadOptions);\n\t\t// Retain caller-added assets as well as its discovery configuration.\n\t\tconst pathsWithMetadata = (paths: readonly string[]) =>\n\t\t\tpaths.flatMap((path) => {\n\t\t\t\tconst metadata = this.resourceMetadataByPath.get(path);\n\t\t\t\treturn metadata ? [{ path, metadata }] : [];\n\t\t\t});\n\t\tawait candidate.extendResources({\n\t\t\tskillPaths: pathsWithMetadata(this.lastSkillPaths),\n\t\t\tpromptPaths: pathsWithMetadata(this.lastPromptPaths),\n\t\t\tthemePaths: pathsWithMetadata(this.lastThemePaths),\n\t\t});\n\t\treturn candidate;\n\t}\n\n\tasync prepareReload(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tconst eventBusTransaction = createStagedEventBus(this.eventBus);\n\t\tconst candidate = this.createCandidate(settingsManager, eventBusTransaction.bus);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.reload(options);\n\t\tconst prepareCommit = () => {\n\t\t\tconst eventBusCommit = eventBusTransaction.prepareCommit();\n\t\t\tlet settled = false;\n\t\t\treturn {\n\t\t\t\tcommit: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.commit();\n\t\t\t\t\tthis.publishCandidate(candidate);\n\t\t\t\t},\n\t\t\t\trollback: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.rollback();\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\t// The candidate owns its generation; the borrowed loader remains untouched.\n\t\treturn {\n\t\t\tloader: candidate,\n\t\t\tactivate: (liveSettingsManager) => candidate.replaceSettingsManager(liveSettingsManager),\n\t\t\tprepareCommit,\n\t\t\tcommit: () => prepareCommit().commit(),\n\t\t};\n\t}\n\n\tprivate replaceSettingsManager(settingsManager: SettingsManager): void {\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.packageManager = new DefaultPackageManager({ cwd: this.cwd, agentDir: this.agentDir, settingsManager });\n\t}\n\n\tprivate publishCandidate(candidate: DefaultResourceLoader): void {\n\t\tthis.extensionsResult = candidate.extensionsResult;\n\t\tthis.skills = candidate.skills;\n\t\tthis.skillDiagnostics = candidate.skillDiagnostics;\n\t\tthis.skillCatalog = candidate.skillCatalog;\n\t\tthis.prompts = candidate.prompts;\n\t\tthis.promptDiagnostics = candidate.promptDiagnostics;\n\t\tthis.themes = candidate.themes;\n\t\tthis.themeDiagnostics = candidate.themeDiagnostics;\n\t\tthis.agentsFiles = candidate.agentsFiles;\n\t\tthis.systemPrompt = candidate.systemPrompt;\n\t\tthis.systemPromptSourcePath = candidate.systemPromptSourcePath;\n\t\tthis.appendSystemPrompt = candidate.appendSystemPrompt;\n\t\tthis.appendSystemPromptSourcePaths = candidate.appendSystemPromptSourcePaths;\n\t\tthis.workflowResources = candidate.workflowResources;\n\t\tthis.mcpServerContributions = candidate.mcpServerContributions;\n\t\tthis.trustedBorrowedProjectLocalSources = candidate.trustedBorrowedProjectLocalSources;\n\t\tthis.lastSkillPaths = candidate.lastSkillPaths;\n\t\tthis.extensionSkillSourceInfos = candidate.extensionSkillSourceInfos;\n\t\tthis.resourceMetadataByPath = candidate.resourceMetadataByPath;\n\t\tthis.extensionPromptSourceInfos = candidate.extensionPromptSourceInfos;\n\t\tthis.extensionThemeSourceInfos = candidate.extensionThemeSourceInfos;\n\t\tthis.lastPromptPaths = candidate.lastPromptPaths;\n\t\tthis.lastThemePaths = candidate.lastThemePaths;\n\t\tthis.loaded = candidate.loaded;\n\t}\n\n\tprivate touchInternalFieldsForSplit(): void {\n\t\tvoid this.eventBus;\n\t\tvoid this.packageManager;\n\t\tvoid this.noContextFiles;\n\t\tvoid this.extensionsOverride;\n\t\tvoid this.skillsOverride;\n\t\tvoid this.promptsOverride;\n\t\tvoid this.themesOverride;\n\t\tvoid this.agentsFilesOverride;\n\t\tvoid this.systemPromptOverride;\n\t\tvoid this.appendSystemPromptOverride;\n\t\tvoid this.extensionSkillSourceInfos;\n\t\tvoid this.extensionPromptSourceInfos;\n\t\tvoid this.extensionThemeSourceInfos;\n\t\tvoid this.loaded;\n\t}\n}\n\n/** @internal Only unmodified concrete discovery can be recreated without losing caller policy. */\nexport function canCloneDefaultResourceDiscovery(loader: ResourceLoader | undefined): loader is DefaultResourceLoader {\n\treturn (\n\t\tloader instanceof DefaultResourceLoader &&\n\t\tloader.constructor === DefaultResourceLoader &&\n\t\tObject.getOwnPropertyNames(DefaultResourceLoader.prototype).every((name) => !Object.hasOwn(loader, name))\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { ResourceDiagnostic, ResourceOverlap } from \"./diagnostics.ts\";\nimport { createEventBus, createStagedEventBus, type EventBus } from \"./event-bus.js\";\nimport { createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport { DefaultPackageManager, type PathMetadata, type ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport { clonePackageSources, mergeInheritedStrings } from \"./resource-loader-helpers.ts\";\nimport {\n\tcollectWorkflowResources,\n\tnormalizeExtensionPaths,\n\trecordExtensionSourceInfo,\n\tresolvePackageResourcePaths,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths } from \"./resource-loader-paths.ts\";\nimport { loadProjectTrustExtensions, reloadDefaultResourceLoader } from \"./resource-loader-reload.ts\";\nimport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tDefaultResourceLoaderOptions,\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { type PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog, type SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport class DefaultResourceLoader implements ResourceLoader {\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate settingsManager: SettingsManager;\n\tprivate eventBus: EventBus;\n\tprivate packageManager: DefaultPackageManager;\n\tprivate additionalExtensionPaths: string[];\n\tprivate additionalSkillPaths: string[];\n\tprivate additionalPromptTemplatePaths: string[];\n\tprivate additionalThemePaths: string[];\n\tprivate builtinPackagePaths: PackageSource[];\n\tprivate extensionFactories: InlineExtension[];\n\tprivate noExtensions: boolean;\n\tprivate noSkills: boolean;\n\tprivate noPromptTemplates: boolean;\n\tprivate noThemes: boolean;\n\tprivate noContextFiles: boolean;\n\tprivate systemPromptSource?: string;\n\tprivate appendSystemPromptSource?: string[];\n\tprivate extensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tprivate skillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate promptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate themesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate agentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tprivate systemPromptOverride?: (base: string | undefined) => string | undefined;\n\tprivate appendSystemPromptOverride?: (base: string[]) => string[];\n\tprivate extensionsResult: LoadExtensionsResult;\n\tprivate skills: Skill[];\n\tprivate skillDiagnostics: ResourceDiagnostic[];\n\tprivate skillCatalog: SkillCatalog;\n\tprivate prompts: PromptTemplate[];\n\tprivate promptDiagnostics: ResourceDiagnostic[];\n\tprivate themes: Theme[];\n\tprivate themeDiagnostics: ResourceDiagnostic[];\n\tprivate agentsFiles: Array<{ path: string; content: string }>;\n\tprivate systemPrompt?: string;\n\tprivate systemPromptSourcePath?: string;\n\tprivate appendSystemPrompt: string[];\n\tprivate appendSystemPromptSourcePaths: string[];\n\tprivate workflowResources: ResolvedResource[];\n\tprivate mcpServerContributions: McpServerContribution[];\n\tprivate trustedBorrowedProjectLocalSources?: Set<string>;\n\tprivate lastSkillPaths: string[];\n\tprivate extensionSkillSourceInfos: Map<string, SourceInfo>;\n\tprivate resourceMetadataByPath: Map<string, PathMetadata>;\n\tprivate extensionPromptSourceInfos: Map<string, SourceInfo>;\n\tprivate extensionThemeSourceInfos: Map<string, SourceInfo>;\n\tprivate lastPromptPaths: string[];\n\tprivate lastThemePaths: string[];\n\tprivate loaded: boolean;\n\tprivate loadOptions?: ResourceLoaderReloadOptions;\n\n\tconstructor(options: DefaultResourceLoaderOptions) {\n\t\tconst inheritanceSnapshot = options.resourceLoaderInheritanceSnapshot;\n\t\tconst inheritedSettingsOptions =\n\t\t\tinheritanceSnapshot?.projectTrusted === undefined\n\t\t\t\t? undefined\n\t\t\t\t: { projectTrusted: inheritanceSnapshot.projectTrusted };\n\t\tthis.cwd = resolvePath(options.cwd);\n\t\tthis.agentDir = resolvePath(options.agentDir);\n\t\tthis.settingsManager =\n\t\t\toptions.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);\n\t\tthis.eventBus = options.eventBus ?? createEventBus();\n\t\tthis.additionalExtensionPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalExtensionPaths,\n\t\t\toptions.additionalExtensionPaths,\n\t\t);\n\t\tthis.additionalSkillPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalSkillPaths,\n\t\t\toptions.additionalSkillPaths,\n\t\t);\n\t\tthis.additionalPromptTemplatePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalPromptTemplatePaths,\n\t\t\toptions.additionalPromptTemplatePaths,\n\t\t);\n\t\tthis.additionalThemePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalThemePaths,\n\t\t\toptions.additionalThemePaths,\n\t\t);\n\t\tthis.builtinPackagePaths =\n\t\t\toptions.builtinPackagePaths !== undefined\n\t\t\t\t? clonePackageSources(options.builtinPackagePaths)\n\t\t\t\t: clonePackageSources(inheritanceSnapshot?.builtinPackagePaths);\n\t\tthis.extensionFactories = [\n\t\t\t...(inheritanceSnapshot?.extensionFactories ?? []),\n\t\t\t...(options.extensionFactories ?? []),\n\t\t];\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: this.settingsManager,\n\t\t\tbuiltinExtensions: this.extensionFactories.flatMap((input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin ? [input.name] : [],\n\t\t\t),\n\t\t});\n\t\tthis.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;\n\t\tthis.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;\n\t\tthis.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;\n\t\tthis.noThemes = options.noThemes ?? inheritanceSnapshot?.noThemes ?? false;\n\t\tthis.noContextFiles = options.noContextFiles ?? inheritanceSnapshot?.noContextFiles ?? false;\n\t\tthis.systemPromptSource = options.systemPrompt ?? inheritanceSnapshot?.systemPrompt;\n\t\tthis.appendSystemPromptSource =\n\t\t\toptions.appendSystemPrompt !== undefined\n\t\t\t\t? [...options.appendSystemPrompt]\n\t\t\t\t: inheritanceSnapshot?.appendSystemPrompt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: [...inheritanceSnapshot.appendSystemPrompt];\n\t\tthis.extensionsOverride = options.extensionsOverride;\n\t\tthis.skillsOverride = options.skillsOverride;\n\t\tthis.promptsOverride = options.promptsOverride;\n\t\tthis.themesOverride = options.themesOverride;\n\t\tthis.agentsFilesOverride = options.agentsFilesOverride;\n\t\tthis.systemPromptOverride = options.systemPromptOverride;\n\t\tthis.appendSystemPromptOverride = options.appendSystemPromptOverride;\n\t\tthis.extensionsResult = { extensions: [], errors: [], runtime: createExtensionRuntime() };\n\t\tthis.skills = [];\n\t\tthis.skillDiagnostics = [];\n\t\tthis.skillCatalog = buildSkillCatalog([]);\n\t\tthis.prompts = [];\n\t\tthis.promptDiagnostics = [];\n\t\tthis.themes = [];\n\t\tthis.themeDiagnostics = [];\n\t\tthis.agentsFiles = [];\n\t\tthis.appendSystemPrompt = [];\n\t\tthis.appendSystemPromptSourcePaths = [];\n\t\tthis.workflowResources = [];\n\t\tthis.mcpServerContributions = [];\n\t\tthis.trustedBorrowedProjectLocalSources =\n\t\t\tinheritanceSnapshot?.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? undefined\n\t\t\t\t: new Set(inheritanceSnapshot.trustedBorrowedProjectLocalSources);\n\t\tthis.lastSkillPaths = [];\n\t\tthis.resourceMetadataByPath = new Map();\n\t\tthis.extensionSkillSourceInfos = new Map();\n\t\tthis.extensionPromptSourceInfos = new Map();\n\t\tthis.extensionThemeSourceInfos = new Map();\n\t\tthis.lastPromptPaths = [];\n\t\tthis.lastThemePaths = [];\n\t\tthis.loaded = false;\n\t\tthis.touchInternalFieldsForSplit();\n\t}\n\n\tgetExtensions(): LoadExtensionsResult {\n\t\treturn this.extensionsResult;\n\t}\n\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { skills: this.skills, diagnostics: this.skillDiagnostics };\n\t}\n\n\tgetSkillCatalog(): SkillCatalog {\n\t\treturn this.skillCatalog;\n\t}\n\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { prompts: this.prompts, diagnostics: this.promptDiagnostics };\n\t}\n\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { themes: this.themes, diagnostics: this.themeDiagnostics };\n\t}\n\n\tgetOverlaps(): ResourceOverlap[] {\n\t\treturn [...(this.extensionsResult.overlaps ?? [])];\n\t}\n\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> } {\n\t\treturn { agentsFiles: this.agentsFiles };\n\t}\n\n\tgetSystemPrompt(): string | undefined {\n\t\treturn this.systemPrompt;\n\t}\n\n\tgetAppendSystemPrompt(): string[] {\n\t\treturn this.appendSystemPrompt;\n\t}\n\n\tgetSystemPromptSource(): { path: string } | undefined {\n\t\treturn this.systemPromptSourcePath ? { path: this.systemPromptSourcePath } : undefined;\n\t}\n\n\tgetAppendSystemPromptSources(): Array<{ path: string }> {\n\t\treturn this.appendSystemPromptSourcePaths.map((path) => ({ path }));\n\t}\n\n\tgetWorkflowResources(): ResolvedResource[] {\n\t\treturn [...this.workflowResources];\n\t}\n\n\t/** Enabled package-manifest MCP servers discovered by the last reload. */\n\tgetMcpServerContributions(): McpServerContribution[] {\n\t\treturn [...this.mcpServerContributions];\n\t}\n\n\tgetInheritanceSnapshot(): DefaultResourceLoaderInheritanceSnapshot {\n\t\treturn {\n\t\t\tprojectTrusted: this.settingsManager.isProjectTrusted(),\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\t...(this.systemPromptSource === undefined ? {} : { systemPrompt: this.systemPromptSource }),\n\t\t\t...(this.appendSystemPromptSource === undefined\n\t\t\t\t? {}\n\t\t\t\t: { appendSystemPrompt: [...this.appendSystemPromptSource] }),\n\t\t\t...(this.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? {}\n\t\t\t\t: { trustedBorrowedProjectLocalSources: [...this.trustedBorrowedProjectLocalSources] }),\n\t\t};\n\t}\n\n\tasync refreshWorkflowResources(): Promise<ResolvedResource[]> {\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(this, {\n\t\t\ttrustedBorrowedProjectLocalSources: this.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tthis.workflowResources = workflowResources;\n\t\treturn [...this.workflowResources];\n\t}\n\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst skillPaths = normalizeExtensionPaths(this, paths.skillPaths ?? []);\n\t\tconst promptPaths = normalizeExtensionPaths(this, paths.promptPaths ?? []);\n\t\tconst themePaths = normalizeExtensionPaths(this, paths.themePaths ?? []);\n\t\trecordExtensionSourceInfo(this, skillPaths, \"skill\");\n\t\trecordExtensionSourceInfo(this, promptPaths, \"prompt\");\n\t\trecordExtensionSourceInfo(this, themePaths, \"theme\");\n\n\t\tif (skillPaths.length > 0) {\n\t\t\tthis.lastSkillPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastSkillPaths,\n\t\t\t\tskillPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateSkillsFromPathsAsync(this, this.lastSkillPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (promptPaths.length > 0) {\n\t\t\tthis.lastPromptPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastPromptPaths,\n\t\t\t\tpromptPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updatePromptsFromPathsAsync(this, this.lastPromptPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (themePaths.length > 0) {\n\t\t\tthis.lastThemePaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastThemePaths,\n\t\t\t\tthemePaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateThemesFromPathsAsync(this, this.lastThemePaths, this.resourceMetadataByPath);\n\t\t}\n\t}\n\n\tasync loadProjectTrustExtensions(): Promise<LoadExtensionsResult> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, () =>\n\t\t\tloadProjectTrustExtensions(this),\n\t\t);\n\t}\n\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, async () => {\n\t\t\tawait reloadDefaultResourceLoader(this, options);\n\t\t\tthis.loadOptions = options ? { ...options } : undefined;\n\t\t\tlifecycleScopeForOwner(this.getExtensions().runtime);\n\t\t});\n\t}\n\tprivate createCandidate(settingsManager: SettingsManager, eventBus: EventBus): DefaultResourceLoader {\n\t\treturn new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\teventBus,\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\tsystemPrompt: this.systemPromptSource,\n\t\t\tappendSystemPrompt: this.appendSystemPromptSource,\n\t\t\textensionsOverride: this.extensionsOverride,\n\t\t\tskillsOverride: this.skillsOverride,\n\t\t\tpromptsOverride: this.promptsOverride,\n\t\t\tthemesOverride: this.themesOverride,\n\t\t\tagentsFilesOverride: this.agentsFilesOverride,\n\t\t\tsystemPromptOverride: this.systemPromptOverride,\n\t\t\tappendSystemPromptOverride: this.appendSystemPromptOverride,\n\t\t\tresourceLoaderInheritanceSnapshot: {\n\t\t\t\ttrustedBorrowedProjectLocalSources:\n\t\t\t\t\tthis.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: [...this.trustedBorrowedProjectLocalSources],\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @internal A borrowed discovery loader is not a session extension generation. */\n\tasync createSessionLoader(scope: object): Promise<DefaultResourceLoader> {\n\t\tif (sessionLifecycleScopes.get(this) === scope) return this;\n\t\tconst candidate = this.createCandidate(this.settingsManager, this.eventBus);\n\t\tsessionLifecycleScopes.set(candidate, scope);\n\t\tawait candidate.reload(this.loadOptions);\n\t\t// Retain caller-added assets as well as its discovery configuration.\n\t\tconst pathsWithMetadata = (paths: readonly string[]) =>\n\t\t\tpaths.flatMap((path) => {\n\t\t\t\tconst metadata = this.resourceMetadataByPath.get(path);\n\t\t\t\treturn metadata ? [{ path, metadata }] : [];\n\t\t\t});\n\t\tawait candidate.extendResources({\n\t\t\tskillPaths: pathsWithMetadata(this.lastSkillPaths),\n\t\t\tpromptPaths: pathsWithMetadata(this.lastPromptPaths),\n\t\t\tthemePaths: pathsWithMetadata(this.lastThemePaths),\n\t\t});\n\t\treturn candidate;\n\t}\n\n\tasync prepareReload(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tconst eventBusTransaction = createStagedEventBus(this.eventBus);\n\t\tconst candidate = this.createCandidate(settingsManager, eventBusTransaction.bus);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.reload(options);\n\t\tconst prepareCommit = () => {\n\t\t\tconst eventBusCommit = eventBusTransaction.prepareCommit();\n\t\t\tlet settled = false;\n\t\t\treturn {\n\t\t\t\tcommit: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.commit();\n\t\t\t\t\tthis.publishCandidate(candidate);\n\t\t\t\t},\n\t\t\t\trollback: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.rollback();\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\t// The candidate owns its generation; the borrowed loader remains untouched.\n\t\treturn {\n\t\t\tloader: candidate,\n\t\t\tactivate: (liveSettingsManager) => candidate.replaceSettingsManager(liveSettingsManager),\n\t\t\tprepareCommit,\n\t\t\tcommit: () => prepareCommit().commit(),\n\t\t};\n\t}\n\n\tprivate replaceSettingsManager(settingsManager: SettingsManager): void {\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\tbuiltinExtensions: this.extensionFactories.flatMap((input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin ? [input.name] : [],\n\t\t\t),\n\t\t});\n\t}\n\n\tprivate publishCandidate(candidate: DefaultResourceLoader): void {\n\t\tthis.extensionsResult = candidate.extensionsResult;\n\t\tthis.skills = candidate.skills;\n\t\tthis.skillDiagnostics = candidate.skillDiagnostics;\n\t\tthis.skillCatalog = candidate.skillCatalog;\n\t\tthis.prompts = candidate.prompts;\n\t\tthis.promptDiagnostics = candidate.promptDiagnostics;\n\t\tthis.themes = candidate.themes;\n\t\tthis.themeDiagnostics = candidate.themeDiagnostics;\n\t\tthis.agentsFiles = candidate.agentsFiles;\n\t\tthis.systemPrompt = candidate.systemPrompt;\n\t\tthis.systemPromptSourcePath = candidate.systemPromptSourcePath;\n\t\tthis.appendSystemPrompt = candidate.appendSystemPrompt;\n\t\tthis.appendSystemPromptSourcePaths = candidate.appendSystemPromptSourcePaths;\n\t\tthis.workflowResources = candidate.workflowResources;\n\t\tthis.mcpServerContributions = candidate.mcpServerContributions;\n\t\tthis.trustedBorrowedProjectLocalSources = candidate.trustedBorrowedProjectLocalSources;\n\t\tthis.lastSkillPaths = candidate.lastSkillPaths;\n\t\tthis.extensionSkillSourceInfos = candidate.extensionSkillSourceInfos;\n\t\tthis.resourceMetadataByPath = candidate.resourceMetadataByPath;\n\t\tthis.extensionPromptSourceInfos = candidate.extensionPromptSourceInfos;\n\t\tthis.extensionThemeSourceInfos = candidate.extensionThemeSourceInfos;\n\t\tthis.lastPromptPaths = candidate.lastPromptPaths;\n\t\tthis.lastThemePaths = candidate.lastThemePaths;\n\t\tthis.loaded = candidate.loaded;\n\t}\n\n\tprivate touchInternalFieldsForSplit(): void {\n\t\tvoid this.eventBus;\n\t\tvoid this.packageManager;\n\t\tvoid this.noContextFiles;\n\t\tvoid this.extensionsOverride;\n\t\tvoid this.skillsOverride;\n\t\tvoid this.promptsOverride;\n\t\tvoid this.themesOverride;\n\t\tvoid this.agentsFilesOverride;\n\t\tvoid this.systemPromptOverride;\n\t\tvoid this.appendSystemPromptOverride;\n\t\tvoid this.extensionSkillSourceInfos;\n\t\tvoid this.extensionPromptSourceInfos;\n\t\tvoid this.extensionThemeSourceInfos;\n\t\tvoid this.loaded;\n\t}\n}\n\n/** @internal Only unmodified concrete discovery can be recreated without losing caller policy. */\nexport function canCloneDefaultResourceDiscovery(loader: ResourceLoader | undefined): loader is DefaultResourceLoader {\n\treturn (\n\t\tloader instanceof DefaultResourceLoader &&\n\t\tloader.constructor === DefaultResourceLoader &&\n\t\tObject.getOwnPropertyNames(DefaultResourceLoader.prototype).every((name) => !Object.hasOwn(loader, name))\n\t);\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { type WorkflowResourceProvider } from "./extensions/loader.ts";
|
|
|
2
2
|
import type { Extension, ExtensionRuntime, LoadExtensionsResult } from "./extensions/types.ts";
|
|
3
3
|
import type { DefaultResourceLoader } from "./resource-loader-core.ts";
|
|
4
4
|
import type { DefaultResourceLoaderInheritanceSnapshot } from "./resource-loader-types.ts";
|
|
5
|
+
export declare function loadExtensionPaths(loader: DefaultResourceLoader, paths: string[], workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot, runtime?: ExtensionRuntime): Promise<LoadExtensionsResult>;
|
|
5
6
|
export declare function loadFinalExtensionSet(loader: DefaultResourceLoader, extensionPaths: string[], preTrustExtensions: LoadExtensionsResult | undefined, workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot): Promise<LoadExtensionsResult>;
|
|
6
7
|
export declare function loadExtensionFactories(loader: DefaultResourceLoader, runtime: ExtensionRuntime, workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot): Promise<{
|
|
7
8
|
extensions: Extension[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-extensions.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-loader-extensions.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAU3F,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,MAAM,EAAE,EACf,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,EAC3E,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAuC/B;AAED,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,MAAM,EAAE,EACxB,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,EACpD,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC,oBAAoB,CAAC,CA8D/B;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC;IACV,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C,CAAC,CAmCD;AAgCD,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAa9F"}
|
|
@@ -2,15 +2,42 @@ import { yieldToEventLoop } from "../utils/event-loop.js";
|
|
|
2
2
|
import { resolvePath } from "../utils/paths.js";
|
|
3
3
|
import { loadExtensionFromFactory, loadExtensionsCached } from "./extensions/loader.js";
|
|
4
4
|
import { resourceInternals } from "./resource-loader-internals.js";
|
|
5
|
+
import { BUILTIN_PATH_PREFIX, isSyntheticPath } from "./source-info.js";
|
|
5
6
|
import { endTimingSpan, startTimingSpan } from "./timings.js";
|
|
6
7
|
function resolveExtensionLoadPath(loader, path) {
|
|
7
|
-
return
|
|
8
|
+
return isSyntheticPath(path)
|
|
9
|
+
? path
|
|
10
|
+
: resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });
|
|
8
11
|
}
|
|
9
|
-
export async function
|
|
12
|
+
export async function loadExtensionPaths(loader, paths, workflowResourceProvider, inheritanceSnapshotProvider, runtime) {
|
|
10
13
|
const state = resourceInternals(loader);
|
|
14
|
+
const result = await loadExtensionsCached(paths.filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)), state.cwd, state.eventBus, workflowResourceProvider, runtime, inheritanceSnapshotProvider);
|
|
15
|
+
for (const path of paths.filter((path) => path.startsWith(BUILTIN_PATH_PREFIX))) {
|
|
16
|
+
const builtin = state.extensionFactories.find((input) => typeof input !== "function" && input.builtin && input.name === path.slice(BUILTIN_PATH_PREFIX.length));
|
|
17
|
+
if (!builtin || typeof builtin === "function") {
|
|
18
|
+
result.errors.push({ path, error: `Unknown built-in extension: ${path}` });
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const extension = await loadExtensionFromFactory(builtin.factory, state.cwd, state.eventBus, result.runtime, path, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
23
|
+
extension.hidden = true;
|
|
24
|
+
extension.replaceable = builtin.replaceable === true;
|
|
25
|
+
if (builtin.bundled)
|
|
26
|
+
extension.sourceInfo.configurationOrigin = "bundled";
|
|
27
|
+
result.extensions.push(extension);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error instanceof Error && "code" in error && error.code === "ShutdownFailed")
|
|
31
|
+
throw error;
|
|
32
|
+
result.errors.push({ path, error: error instanceof Error ? error.message : "failed to load extension" });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
export async function loadFinalExtensionSet(loader, extensionPaths, preTrustExtensions, workflowResourceProvider, inheritanceSnapshotProvider) {
|
|
11
38
|
if (!preTrustExtensions) {
|
|
12
39
|
const loadExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadExtensions");
|
|
13
|
-
const extensionsResult = await
|
|
40
|
+
const extensionsResult = await loadExtensionPaths(loader, extensionPaths, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
14
41
|
endTimingSpan(loadExtensionsSpan);
|
|
15
42
|
const inlineExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadInlineExtensionFactories");
|
|
16
43
|
const inlineExtensions = await loadExtensionFactories(loader, extensionsResult.runtime, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
@@ -28,7 +55,7 @@ export async function loadFinalExtensionSet(loader, extensionPaths, preTrustExte
|
|
|
28
55
|
return !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);
|
|
29
56
|
});
|
|
30
57
|
const loadExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadExtensions");
|
|
31
|
-
const remainingExtensions = await
|
|
58
|
+
const remainingExtensions = await loadExtensionPaths(loader, remainingPaths, workflowResourceProvider, inheritanceSnapshotProvider, preTrustExtensions.runtime);
|
|
32
59
|
endTimingSpan(loadExtensionsSpan);
|
|
33
60
|
const loadedByPath = new Map(preloadedByPath);
|
|
34
61
|
for (const extension of remainingExtensions.extensions) {
|
|
@@ -56,11 +83,14 @@ export async function loadExtensionFactories(loader, runtime, workflowResourcePr
|
|
|
56
83
|
await yieldToEventLoop();
|
|
57
84
|
}
|
|
58
85
|
const descriptor = typeof inlineExtension === "function" ? undefined : inlineExtension;
|
|
86
|
+
if (descriptor?.builtin)
|
|
87
|
+
continue;
|
|
59
88
|
const factory = typeof inlineExtension === "function" ? inlineExtension : inlineExtension.factory;
|
|
60
89
|
const extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;
|
|
61
90
|
try {
|
|
62
91
|
const extension = await loadExtensionFromFactory(factory, state.cwd, state.eventBus, runtime, extensionPath, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
63
92
|
extension.hidden = descriptor?.hidden;
|
|
93
|
+
extension.replaceable = descriptor?.replaceable === true;
|
|
64
94
|
if (descriptor?.bundled)
|
|
65
95
|
extension.sourceInfo.configurationOrigin = "bundled";
|
|
66
96
|
extensions.push(extension);
|
|
@@ -74,12 +104,42 @@ export async function loadExtensionFactories(loader, runtime, workflowResourcePr
|
|
|
74
104
|
}
|
|
75
105
|
return { extensions, errors };
|
|
76
106
|
}
|
|
107
|
+
function omitReplacedBuiltins(result) {
|
|
108
|
+
const names = (extension) => [
|
|
109
|
+
...[...extension.tools.keys()].map((name) => `tool:${name}`),
|
|
110
|
+
...[...extension.commands.keys()].map((name) => `command:${name}`),
|
|
111
|
+
...[...extension.flags.keys()].map((name) => `flag:${name}`),
|
|
112
|
+
];
|
|
113
|
+
const taken = new Map(result.extensions
|
|
114
|
+
.filter((extension) => !extension.replaceable)
|
|
115
|
+
.flatMap((extension) => names(extension).map((name) => [name, extension])));
|
|
116
|
+
result.extensions = result.extensions.filter((extension) => {
|
|
117
|
+
if (!extension.replaceable)
|
|
118
|
+
return true;
|
|
119
|
+
const replacement = names(extension)
|
|
120
|
+
.map((name) => ({ name, owner: taken.get(name) }))
|
|
121
|
+
.find((entry) => entry.owner !== undefined);
|
|
122
|
+
if (!replacement?.owner)
|
|
123
|
+
return true;
|
|
124
|
+
if (extension.path.startsWith(BUILTIN_PATH_PREFIX)) {
|
|
125
|
+
const [kind, rawName] = replacement.name.split(":", 2);
|
|
126
|
+
const registeredName = kind === "command" ? `/${rawName}` : kind === "flag" ? `--${rawName}` : rawName;
|
|
127
|
+
result.warnings ??= [];
|
|
128
|
+
result.warnings.push({
|
|
129
|
+
path: extension.path,
|
|
130
|
+
warning: `Extension ${replacement.owner.path} registers ${kind} \`${registeredName}\`, so built-in extension \`${extension.path.slice(BUILTIN_PATH_PREFIX.length)}\` was replaced. Run \`atomic config\` to enable the builtin, then disable or remove the replacement extension. Keep only one enabled.`,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
77
136
|
export function resolveInheritedExtensionOverlaps(extensionsResult) {
|
|
78
137
|
extensionsResult.overlaps = [];
|
|
79
138
|
removeInheritedRegistrations("tool", extensionsResult, (extension) => extension.tools);
|
|
80
139
|
removeInheritedRegistrations("command", extensionsResult, (extension) => extension.commands);
|
|
81
140
|
removeInheritedRegistrations("flag", extensionsResult, (extension) => extension.flags);
|
|
82
141
|
removeInheritedRegistrations("shortcut", extensionsResult, (extension) => extension.shortcuts);
|
|
142
|
+
omitReplacedBuiltins(extensionsResult);
|
|
83
143
|
installRegistrationPolicy(extensionsResult);
|
|
84
144
|
rebuildFlagDefaults(extensionsResult);
|
|
85
145
|
for (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-extensions.js","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KeyId } from \"@earendil-works/pi-tui\";\nimport { yieldToEventLoop } from \"../utils/event-loop.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { OverlappingResourceType } from \"./diagnostics.ts\";\nimport { loadExtensionFromFactory, loadExtensionsCached, type WorkflowResourceProvider } from \"./extensions/loader.ts\";\nimport type { Extension, ExtensionRuntime, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"./resource-loader-types.ts\";\nimport { endTimingSpan, startTimingSpan } from \"./timings.ts\";\n\nfunction resolveExtensionLoadPath(loader: DefaultResourceLoader, path: string): string {\n\treturn resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });\n}\n\nexport async function loadFinalExtensionSet(\n\tloader: DefaultResourceLoader,\n\textensionPaths: string[],\n\tpreTrustExtensions: LoadExtensionsResult | undefined,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tif (!preTrustExtensions) {\n\t\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\t\tconst extensionsResult = await loadExtensionsCached(\n\t\t\textensionPaths,\n\t\t\tstate.cwd,\n\t\t\tstate.eventBus,\n\t\t\tworkflowResourceProvider,\n\t\t\tundefined,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(loadExtensionsSpan);\n\t\tconst inlineExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadInlineExtensionFactories\");\n\t\tconst inlineExtensions = await loadExtensionFactories(\n\t\t\tloader,\n\t\t\textensionsResult.runtime,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(inlineExtensionsSpan);\n\t\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\t\textensionsResult.errors.push(...inlineExtensions.errors);\n\t\treturn extensionsResult;\n\t}\n\n\tconst preloadedByPath = new Map(\n\t\tpreTrustExtensions.extensions\n\t\t\t.filter((extension) => !extension.path.startsWith(\"<inline:\"))\n\t\t\t.map((extension) => [extension.resolvedPath, extension]),\n\t);\n\tconst failedPreloadPaths = new Set(\n\t\tpreTrustExtensions.errors.map((error) => resolveExtensionLoadPath(loader, error.path)),\n\t);\n\tconst remainingPaths = extensionPaths.filter((path) => {\n\t\tconst resolvedPath = resolveExtensionLoadPath(loader, path);\n\t\treturn !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);\n\t});\n\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\tconst remainingExtensions = await loadExtensionsCached(\n\t\tremainingPaths,\n\t\tstate.cwd,\n\t\tstate.eventBus,\n\t\tworkflowResourceProvider,\n\t\tpreTrustExtensions.runtime,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tendTimingSpan(loadExtensionsSpan);\n\tconst loadedByPath = new Map(preloadedByPath);\n\tfor (const extension of remainingExtensions.extensions) {\n\t\tloadedByPath.set(extension.resolvedPath, extension);\n\t}\n\n\tconst inlineExtensions = preTrustExtensions.extensions.filter((extension) => extension.path.startsWith(\"<inline:\"));\n\tconst orderedExtensions = extensionPaths\n\t\t.map((path) => loadedByPath.get(resolveExtensionLoadPath(loader, path)))\n\t\t.filter((extension): extension is Extension => extension !== undefined);\n\torderedExtensions.push(...inlineExtensions);\n\n\tconst extensionsResult: LoadExtensionsResult = {\n\t\textensions: orderedExtensions,\n\t\terrors: [...preTrustExtensions.errors, ...remainingExtensions.errors],\n\t\twarnings: [...(preTrustExtensions.warnings ?? []), ...(remainingExtensions.warnings ?? [])],\n\t\truntime: preTrustExtensions.runtime,\n\t};\n\treturn extensionsResult;\n}\n\nexport async function loadExtensionFactories(\n\tloader: DefaultResourceLoader,\n\truntime: ExtensionRuntime,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<{\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n}> {\n\tconst state = resourceInternals(loader);\n\tconst extensions: Extension[] = [];\n\tconst errors: Array<{ path: string; error: string }> = [];\n\n\tfor (const [index, inlineExtension] of state.extensionFactories.entries()) {\n\t\tif (index > 0) {\n\t\t\tawait yieldToEventLoop();\n\t\t}\n\t\tconst descriptor = typeof inlineExtension === \"function\" ? undefined : inlineExtension;\n\t\tconst factory = typeof inlineExtension === \"function\" ? inlineExtension : inlineExtension.factory;\n\t\tconst extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tfactory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\truntime,\n\t\t\t\textensionPath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = descriptor?.hidden;\n\t\t\tif (descriptor?.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\textensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to load extension\";\n\t\t\terrors.push({ path: extensionPath, error: message });\n\t\t}\n\t}\n\n\treturn { extensions, errors };\n}\n\nexport function resolveInheritedExtensionOverlaps(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.overlaps = [];\n\tremoveInheritedRegistrations(\"tool\", extensionsResult, (extension) => extension.tools);\n\tremoveInheritedRegistrations(\"command\", extensionsResult, (extension) => extension.commands);\n\tremoveInheritedRegistrations(\"flag\", extensionsResult, (extension) => extension.flags);\n\tremoveInheritedRegistrations(\"shortcut\", extensionsResult, (extension) => extension.shortcuts);\n\tinstallRegistrationPolicy(extensionsResult);\n\trebuildFlagDefaults(extensionsResult);\n\n\tfor (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {\n\t\textensionsResult.errors.push({ path: conflict.path, error: conflict.message });\n\t}\n}\n\nfunction removeInheritedRegistrations<K extends string, V>(\n\tresourceType: OverlappingResourceType,\n\textensionsResult: LoadExtensionsResult,\n\tgetRegistrations: (extension: Extension) => Map<K, V>,\n): void {\n\tconst bundledOwners = new Map<K, Extension>();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"bundled\") continue;\n\t\tfor (const name of getRegistrations(extension).keys()) {\n\t\t\tif (!bundledOwners.has(name)) bundledOwners.set(name, extension);\n\t\t}\n\t}\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"inherited-pi\") continue;\n\t\tconst registrations = getRegistrations(extension);\n\t\tfor (const name of [...registrations.keys()]) {\n\t\t\tconst bundledOwner = bundledOwners.get(name);\n\t\t\tif (!bundledOwner) continue;\n\t\t\tregistrations.delete(name);\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t}\n\t}\n}\n\nfunction installRegistrationPolicy(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\textensionsResult.runtime.canRegisterResource = (extension, resourceType, name) => {\n\t\tif (resourceType === \"prompt\") return true;\n\t\tif (extension.sourceInfo.configurationOrigin === \"inherited-pi\") {\n\t\t\tconst bundledOwner = extensionsResult.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.sourceInfo.configurationOrigin === \"bundled\" &&\n\t\t\t\t\thasActiveOrPendingRegistration(extensionsResult.runtime, candidate, resourceType, name),\n\t\t\t);\n\t\t\tif (!bundledOwner) return true;\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t\treturn false;\n\t\t}\n\t\tconst isBundled = extension.sourceInfo.configurationOrigin === \"bundled\";\n\t\tfor (const inherited of extensionsResult.extensions) {\n\t\t\tif (\n\t\t\t\tinherited.sourceInfo.configurationOrigin !== \"inherited-pi\" ||\n\t\t\t\t!hasActiveOrPendingRegistration(extensionsResult.runtime, inherited, resourceType, name)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (resourceType === \"flag\" && flagOwners.get(name) === inherited.path) {\n\t\t\t\tflagOwners.delete(name);\n\t\t\t\tflagOwnerOrigins.delete(name);\n\t\t\t\tif (!extensionsResult.runtime.explicitFlagNames?.has(name))\n\t\t\t\t\textensionsResult.runtime.flagValues.delete(name);\n\t\t\t}\n\t\t\tdeleteRegistration(extensionsResult.runtime, inherited, resourceType, name);\n\t\t\tif (isBundled) recordOverlap(extensionsResult, resourceType, name, extension, inherited);\n\t\t}\n\t\treturn true;\n\t};\n}\n\nfunction hasActiveOrPendingRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\treturn (\n\t\thasRegistration(extension, resourceType, name) ||\n\t\truntime.hasPendingResourceRegistration?.(extension, resourceType, name) === true\n\t);\n}\n\nfunction hasRegistration(\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\treturn extension.tools.has(name);\n\t\tcase \"command\":\n\t\t\treturn extension.commands.has(name);\n\t\tcase \"flag\":\n\t\t\treturn extension.flags.has(name);\n\t\tcase \"shortcut\":\n\t\t\treturn extension.shortcuts.has(name as KeyId);\n\t}\n}\n\nfunction deleteRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): void {\n\truntime.deletePendingResourceRegistration?.(extension, resourceType, name);\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\textension.tools.delete(name);\n\t\t\tbreak;\n\t\tcase \"command\":\n\t\t\textension.commands.delete(name);\n\t\t\tbreak;\n\t\tcase \"flag\":\n\t\t\textension.flags.delete(name);\n\t\t\tbreak;\n\t\tcase \"shortcut\":\n\t\t\textension.shortcuts.delete(name as KeyId);\n\t\t\tbreak;\n\t}\n}\n\nfunction recordOverlap(\n\textensionsResult: LoadExtensionsResult,\n\tresourceType: OverlappingResourceType,\n\tname: string,\n\tbundled: Extension,\n\tinherited: Extension,\n): void {\n\textensionsResult.overlaps ??= [];\n\tconst overlaps = extensionsResult.overlaps;\n\tif (\n\t\toverlaps.some(\n\t\t\t(overlap) =>\n\t\t\t\toverlap.resourceType === resourceType &&\n\t\t\t\toverlap.name === name &&\n\t\t\t\toverlap.inherited.path === inherited.sourceInfo.path,\n\t\t)\n\t)\n\t\treturn;\n\toverlaps.push({ resourceType, name, bundled: bundled.sourceInfo, inherited: inherited.sourceInfo });\n}\n\nfunction rebuildFlagDefaults(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagValues.clear();\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\tflagOwners.clear();\n\tflagOwnerOrigins.clear();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tfor (const [name, flag] of extension.flags) {\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tflagOwnerOrigins.get(name) === extension.sourceInfo.configurationOrigin &&\n\t\t\t\tflag.default !== undefined &&\n\t\t\t\t!extensionsResult.runtime.flagValues.has(name)\n\t\t\t) {\n\t\t\t\textensionsResult.runtime.flagValues.set(name, flag.default);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction detectExtensionConflicts(extensions: Extension[]): Array<{ path: string; message: string }> {\n\tconst conflicts: Array<{ path: string; message: string }> = [];\n\n\t// Track which extension registered each tool and flag\n\tconst toolOwners = new Map<string, string>();\n\tconst flagOwners = new Map<string, string>();\n\n\tfor (const ext of extensions) {\n\t\t// Check tools\n\t\tfor (const toolName of ext.tools.keys()) {\n\t\t\tconst existingOwner = toolOwners.get(toolName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Tool \"${toolName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoolOwners.set(toolName, ext.path);\n\t\t\t}\n\t\t}\n\n\t\t// Check flags\n\t\tfor (const flagName of ext.flags.keys()) {\n\t\t\tconst existingOwner = flagOwners.get(flagName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Flag \"--${flagName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tflagOwners.set(flagName, ext.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resource-loader-extensions.js","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KeyId } from \"@earendil-works/pi-tui\";\nimport { yieldToEventLoop } from \"../utils/event-loop.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { OverlappingResourceType } from \"./diagnostics.ts\";\nimport { loadExtensionFromFactory, loadExtensionsCached, type WorkflowResourceProvider } from \"./extensions/loader.ts\";\nimport type { Extension, ExtensionRuntime, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"./resource-loader-types.ts\";\nimport { BUILTIN_PATH_PREFIX, isSyntheticPath } from \"./source-info.ts\";\nimport { endTimingSpan, startTimingSpan } from \"./timings.ts\";\n\nfunction resolveExtensionLoadPath(loader: DefaultResourceLoader, path: string): string {\n\treturn isSyntheticPath(path)\n\t\t? path\n\t\t: resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });\n}\n\nexport async function loadExtensionPaths(\n\tloader: DefaultResourceLoader,\n\tpaths: string[],\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n\truntime?: ExtensionRuntime,\n): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tconst result = await loadExtensionsCached(\n\t\tpaths.filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)),\n\t\tstate.cwd,\n\t\tstate.eventBus,\n\t\tworkflowResourceProvider,\n\t\truntime,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tfor (const path of paths.filter((path) => path.startsWith(BUILTIN_PATH_PREFIX))) {\n\t\tconst builtin = state.extensionFactories.find(\n\t\t\t(input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin && input.name === path.slice(BUILTIN_PATH_PREFIX.length),\n\t\t);\n\t\tif (!builtin || typeof builtin === \"function\") {\n\t\t\tresult.errors.push({ path, error: `Unknown built-in extension: ${path}` });\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tbuiltin.factory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\tresult.runtime,\n\t\t\t\tpath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = true;\n\t\t\textension.replaceable = builtin.replaceable === true;\n\t\t\tif (builtin.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\tresult.extensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tresult.errors.push({ path, error: error instanceof Error ? error.message : \"failed to load extension\" });\n\t\t}\n\t}\n\treturn result;\n}\n\nexport async function loadFinalExtensionSet(\n\tloader: DefaultResourceLoader,\n\textensionPaths: string[],\n\tpreTrustExtensions: LoadExtensionsResult | undefined,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<LoadExtensionsResult> {\n\tif (!preTrustExtensions) {\n\t\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\t\tconst extensionsResult = await loadExtensionPaths(\n\t\t\tloader,\n\t\t\textensionPaths,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(loadExtensionsSpan);\n\t\tconst inlineExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadInlineExtensionFactories\");\n\t\tconst inlineExtensions = await loadExtensionFactories(\n\t\t\tloader,\n\t\t\textensionsResult.runtime,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(inlineExtensionsSpan);\n\t\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\t\textensionsResult.errors.push(...inlineExtensions.errors);\n\t\treturn extensionsResult;\n\t}\n\n\tconst preloadedByPath = new Map(\n\t\tpreTrustExtensions.extensions\n\t\t\t.filter((extension) => !extension.path.startsWith(\"<inline:\"))\n\t\t\t.map((extension) => [extension.resolvedPath, extension]),\n\t);\n\tconst failedPreloadPaths = new Set(\n\t\tpreTrustExtensions.errors.map((error) => resolveExtensionLoadPath(loader, error.path)),\n\t);\n\tconst remainingPaths = extensionPaths.filter((path) => {\n\t\tconst resolvedPath = resolveExtensionLoadPath(loader, path);\n\t\treturn !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);\n\t});\n\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\tconst remainingExtensions = await loadExtensionPaths(\n\t\tloader,\n\t\tremainingPaths,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t\tpreTrustExtensions.runtime,\n\t);\n\tendTimingSpan(loadExtensionsSpan);\n\tconst loadedByPath = new Map(preloadedByPath);\n\tfor (const extension of remainingExtensions.extensions) {\n\t\tloadedByPath.set(extension.resolvedPath, extension);\n\t}\n\n\tconst inlineExtensions = preTrustExtensions.extensions.filter((extension) => extension.path.startsWith(\"<inline:\"));\n\tconst orderedExtensions = extensionPaths\n\t\t.map((path) => loadedByPath.get(resolveExtensionLoadPath(loader, path)))\n\t\t.filter((extension): extension is Extension => extension !== undefined);\n\torderedExtensions.push(...inlineExtensions);\n\n\tconst extensionsResult: LoadExtensionsResult = {\n\t\textensions: orderedExtensions,\n\t\terrors: [...preTrustExtensions.errors, ...remainingExtensions.errors],\n\t\twarnings: [...(preTrustExtensions.warnings ?? []), ...(remainingExtensions.warnings ?? [])],\n\t\truntime: preTrustExtensions.runtime,\n\t};\n\treturn extensionsResult;\n}\n\nexport async function loadExtensionFactories(\n\tloader: DefaultResourceLoader,\n\truntime: ExtensionRuntime,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<{\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n}> {\n\tconst state = resourceInternals(loader);\n\tconst extensions: Extension[] = [];\n\tconst errors: Array<{ path: string; error: string }> = [];\n\n\tfor (const [index, inlineExtension] of state.extensionFactories.entries()) {\n\t\tif (index > 0) {\n\t\t\tawait yieldToEventLoop();\n\t\t}\n\t\tconst descriptor = typeof inlineExtension === \"function\" ? undefined : inlineExtension;\n\t\tif (descriptor?.builtin) continue;\n\t\tconst factory = typeof inlineExtension === \"function\" ? inlineExtension : inlineExtension.factory;\n\t\tconst extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tfactory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\truntime,\n\t\t\t\textensionPath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = descriptor?.hidden;\n\t\t\textension.replaceable = descriptor?.replaceable === true;\n\t\t\tif (descriptor?.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\textensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to load extension\";\n\t\t\terrors.push({ path: extensionPath, error: message });\n\t\t}\n\t}\n\n\treturn { extensions, errors };\n}\n\nfunction omitReplacedBuiltins(result: LoadExtensionsResult): void {\n\tconst names = (extension: Extension) => [\n\t\t...[...extension.tools.keys()].map((name) => `tool:${name}`),\n\t\t...[...extension.commands.keys()].map((name) => `command:${name}`),\n\t\t...[...extension.flags.keys()].map((name) => `flag:${name}`),\n\t];\n\tconst taken = new Map(\n\t\tresult.extensions\n\t\t\t.filter((extension) => !extension.replaceable)\n\t\t\t.flatMap((extension) => names(extension).map((name) => [name, extension] as const)),\n\t);\n\tresult.extensions = result.extensions.filter((extension) => {\n\t\tif (!extension.replaceable) return true;\n\t\tconst replacement = names(extension)\n\t\t\t.map((name) => ({ name, owner: taken.get(name) }))\n\t\t\t.find((entry) => entry.owner !== undefined);\n\t\tif (!replacement?.owner) return true;\n\t\tif (extension.path.startsWith(BUILTIN_PATH_PREFIX)) {\n\t\t\tconst [kind, rawName] = replacement.name.split(\":\", 2);\n\t\t\tconst registeredName = kind === \"command\" ? `/${rawName}` : kind === \"flag\" ? `--${rawName}` : rawName;\n\t\t\tresult.warnings ??= [];\n\t\t\tresult.warnings.push({\n\t\t\t\tpath: extension.path,\n\t\t\t\twarning: `Extension ${replacement.owner.path} registers ${kind} \\`${registeredName}\\`, so built-in extension \\`${extension.path.slice(BUILTIN_PATH_PREFIX.length)}\\` was replaced. Run \\`atomic config\\` to enable the builtin, then disable or remove the replacement extension. Keep only one enabled.`,\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t});\n}\n\nexport function resolveInheritedExtensionOverlaps(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.overlaps = [];\n\tremoveInheritedRegistrations(\"tool\", extensionsResult, (extension) => extension.tools);\n\tremoveInheritedRegistrations(\"command\", extensionsResult, (extension) => extension.commands);\n\tremoveInheritedRegistrations(\"flag\", extensionsResult, (extension) => extension.flags);\n\tremoveInheritedRegistrations(\"shortcut\", extensionsResult, (extension) => extension.shortcuts);\n\tomitReplacedBuiltins(extensionsResult);\n\tinstallRegistrationPolicy(extensionsResult);\n\trebuildFlagDefaults(extensionsResult);\n\n\tfor (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {\n\t\textensionsResult.errors.push({ path: conflict.path, error: conflict.message });\n\t}\n}\n\nfunction removeInheritedRegistrations<K extends string, V>(\n\tresourceType: OverlappingResourceType,\n\textensionsResult: LoadExtensionsResult,\n\tgetRegistrations: (extension: Extension) => Map<K, V>,\n): void {\n\tconst bundledOwners = new Map<K, Extension>();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"bundled\") continue;\n\t\tfor (const name of getRegistrations(extension).keys()) {\n\t\t\tif (!bundledOwners.has(name)) bundledOwners.set(name, extension);\n\t\t}\n\t}\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"inherited-pi\") continue;\n\t\tconst registrations = getRegistrations(extension);\n\t\tfor (const name of [...registrations.keys()]) {\n\t\t\tconst bundledOwner = bundledOwners.get(name);\n\t\t\tif (!bundledOwner) continue;\n\t\t\tregistrations.delete(name);\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t}\n\t}\n}\n\nfunction installRegistrationPolicy(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\textensionsResult.runtime.canRegisterResource = (extension, resourceType, name) => {\n\t\tif (resourceType === \"prompt\") return true;\n\t\tif (extension.sourceInfo.configurationOrigin === \"inherited-pi\") {\n\t\t\tconst bundledOwner = extensionsResult.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.sourceInfo.configurationOrigin === \"bundled\" &&\n\t\t\t\t\thasActiveOrPendingRegistration(extensionsResult.runtime, candidate, resourceType, name),\n\t\t\t);\n\t\t\tif (!bundledOwner) return true;\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t\treturn false;\n\t\t}\n\t\tconst isBundled = extension.sourceInfo.configurationOrigin === \"bundled\";\n\t\tfor (const inherited of extensionsResult.extensions) {\n\t\t\tif (\n\t\t\t\tinherited.sourceInfo.configurationOrigin !== \"inherited-pi\" ||\n\t\t\t\t!hasActiveOrPendingRegistration(extensionsResult.runtime, inherited, resourceType, name)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (resourceType === \"flag\" && flagOwners.get(name) === inherited.path) {\n\t\t\t\tflagOwners.delete(name);\n\t\t\t\tflagOwnerOrigins.delete(name);\n\t\t\t\tif (!extensionsResult.runtime.explicitFlagNames?.has(name))\n\t\t\t\t\textensionsResult.runtime.flagValues.delete(name);\n\t\t\t}\n\t\t\tdeleteRegistration(extensionsResult.runtime, inherited, resourceType, name);\n\t\t\tif (isBundled) recordOverlap(extensionsResult, resourceType, name, extension, inherited);\n\t\t}\n\t\treturn true;\n\t};\n}\n\nfunction hasActiveOrPendingRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\treturn (\n\t\thasRegistration(extension, resourceType, name) ||\n\t\truntime.hasPendingResourceRegistration?.(extension, resourceType, name) === true\n\t);\n}\n\nfunction hasRegistration(\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\treturn extension.tools.has(name);\n\t\tcase \"command\":\n\t\t\treturn extension.commands.has(name);\n\t\tcase \"flag\":\n\t\t\treturn extension.flags.has(name);\n\t\tcase \"shortcut\":\n\t\t\treturn extension.shortcuts.has(name as KeyId);\n\t}\n}\n\nfunction deleteRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): void {\n\truntime.deletePendingResourceRegistration?.(extension, resourceType, name);\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\textension.tools.delete(name);\n\t\t\tbreak;\n\t\tcase \"command\":\n\t\t\textension.commands.delete(name);\n\t\t\tbreak;\n\t\tcase \"flag\":\n\t\t\textension.flags.delete(name);\n\t\t\tbreak;\n\t\tcase \"shortcut\":\n\t\t\textension.shortcuts.delete(name as KeyId);\n\t\t\tbreak;\n\t}\n}\n\nfunction recordOverlap(\n\textensionsResult: LoadExtensionsResult,\n\tresourceType: OverlappingResourceType,\n\tname: string,\n\tbundled: Extension,\n\tinherited: Extension,\n): void {\n\textensionsResult.overlaps ??= [];\n\tconst overlaps = extensionsResult.overlaps;\n\tif (\n\t\toverlaps.some(\n\t\t\t(overlap) =>\n\t\t\t\toverlap.resourceType === resourceType &&\n\t\t\t\toverlap.name === name &&\n\t\t\t\toverlap.inherited.path === inherited.sourceInfo.path,\n\t\t)\n\t)\n\t\treturn;\n\toverlaps.push({ resourceType, name, bundled: bundled.sourceInfo, inherited: inherited.sourceInfo });\n}\n\nfunction rebuildFlagDefaults(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagValues.clear();\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\tflagOwners.clear();\n\tflagOwnerOrigins.clear();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tfor (const [name, flag] of extension.flags) {\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tflagOwnerOrigins.get(name) === extension.sourceInfo.configurationOrigin &&\n\t\t\t\tflag.default !== undefined &&\n\t\t\t\t!extensionsResult.runtime.flagValues.has(name)\n\t\t\t) {\n\t\t\t\textensionsResult.runtime.flagValues.set(name, flag.default);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction detectExtensionConflicts(extensions: Extension[]): Array<{ path: string; message: string }> {\n\tconst conflicts: Array<{ path: string; message: string }> = [];\n\n\t// Track which extension registered each tool and flag\n\tconst toolOwners = new Map<string, string>();\n\tconst flagOwners = new Map<string, string>();\n\n\tfor (const ext of extensions) {\n\t\t// Check tools\n\t\tfor (const toolName of ext.tools.keys()) {\n\t\t\tconst existingOwner = toolOwners.get(toolName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Tool \"${toolName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoolOwners.set(toolName, ext.path);\n\t\t\t}\n\t\t}\n\n\t\t// Check flags\n\t\tfor (const flagName of ext.flags.keys()) {\n\t\t\tconst existingOwner = flagOwners.get(flagName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Flag \"--${flagName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tflagOwners.set(flagName, ext.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-paths.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource-loader-paths.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAajG"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { getAgentDir, getAgentDirs } from "../config.js";
|
|
2
2
|
import { canonicalizePath, resolvePath } from "../utils/paths.js";
|
|
3
|
+
import { isSyntheticPath } from "./source-info.js";
|
|
3
4
|
export function getLoaderAgentDirs(agentDir) {
|
|
4
5
|
return agentDir === getAgentDir() ? getAgentDirs() : [agentDir];
|
|
5
6
|
}
|
|
6
7
|
export function resolveResourcePath(cwd, path) {
|
|
7
|
-
return resolvePath(path, cwd, { trim: true });
|
|
8
|
+
return isSyntheticPath(path) ? path : resolvePath(path, cwd, { trim: true });
|
|
8
9
|
}
|
|
9
10
|
export function mergeResourcePaths(cwd, primary, additional) {
|
|
10
11
|
const merged = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-paths.js","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-loader-paths.js","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAAY;IAC5D,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAiB,EAAE,UAAoB;IACtF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import { getAgentDir, getAgentDirs } from \"../config.js\";\nimport { canonicalizePath, resolvePath } from \"../utils/paths.ts\";\nimport { isSyntheticPath } from \"./source-info.ts\";\n\nexport function getLoaderAgentDirs(agentDir: string): string[] {\n\treturn agentDir === getAgentDir() ? getAgentDirs() : [agentDir];\n}\n\nexport function resolveResourcePath(cwd: string, path: string): string {\n\treturn isSyntheticPath(path) ? path : resolvePath(path, cwd, { trim: true });\n}\n\nexport function mergeResourcePaths(cwd: string, primary: string[], additional: string[]): string[] {\n\tconst merged: string[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const p of [...primary, ...additional]) {\n\t\tconst resolved = resolveResourcePath(cwd, p);\n\t\tconst canonicalPath = canonicalizePath(resolved);\n\t\tif (seen.has(canonicalPath)) continue;\n\t\tseen.add(canonicalPath);\n\t\tmerged.push(resolved);\n\t}\n\n\treturn merged;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader-reload.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAe7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-loader-reload.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAe7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAoBvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAyE9E,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmD7G;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,CACvD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAwT9B"}
|
|
@@ -4,19 +4,20 @@ import { yieldToEventLoopIfSlow } from "../utils/event-loop.js";
|
|
|
4
4
|
import { isLocalPath, resolvePath } from "../utils/paths.js";
|
|
5
5
|
import { getMandatoryBuiltinExtensionPaths } from "./builtin-packages.js";
|
|
6
6
|
import { filterSupersededHerdrIntegrationPaths } from "./extensions/herdr-file-integration.js";
|
|
7
|
-
import { clearExtensionCache, createExtensionRuntime
|
|
7
|
+
import { clearExtensionCache, createExtensionRuntime } from "./extensions/loader.js";
|
|
8
8
|
import { withMandatoryResourceLoader } from "./mandatory-resource-loader.js";
|
|
9
9
|
import { isTrustedMandatoryRuntimeTool, markTrustedMandatoryRuntimeExtension } from "./mandatory-runtime-tools.js";
|
|
10
10
|
import { updatePromptsFromPathsAsync, updateSkillsFromPathsAsync, updateThemesFromPathsAsync, } from "./resource-loader-assets.js";
|
|
11
11
|
import { loadProjectContextFiles, resolveExistingPromptSourcePath, resolveExistingPromptSourcePaths, resolvePromptInput, } from "./resource-loader-context-files.js";
|
|
12
12
|
import { discoverAppendSystemPromptFile, discoverSystemPromptFile } from "./resource-loader-discovery.js";
|
|
13
13
|
import { collectExtensionPackageWarnings, mergeExtensionWarnings } from "./resource-loader-extension-warnings.js";
|
|
14
|
-
import { loadExtensionFactories, loadFinalExtensionSet, resolveInheritedExtensionOverlaps, } from "./resource-loader-extensions.js";
|
|
14
|
+
import { loadExtensionFactories, loadExtensionPaths, loadFinalExtensionSet, resolveInheritedExtensionOverlaps, } from "./resource-loader-extensions.js";
|
|
15
15
|
import { resourceInternals } from "./resource-loader-internals.js";
|
|
16
16
|
import { collectMcpServerContributions, collectWorkflowResources, createInheritanceSnapshotProvider, createWorkflowResourceProvider, resolvePackageResourcePaths, resolveTrustedBorrowedProjectLocalSources, } from "./resource-loader-package-resources.js";
|
|
17
17
|
import { mergeResourcePaths, resolveResourcePath } from "./resource-loader-paths.js";
|
|
18
18
|
import { applyExtensionSourceInfo } from "./resource-loader-source-info.js";
|
|
19
19
|
import { buildSkillCatalog } from "./skill-catalog.js";
|
|
20
|
+
import { BUILTIN_PATH_PREFIX } from "./source-info.js";
|
|
20
21
|
import { endTimingSpan, resetTimings, startTimingSpan } from "./timings.js";
|
|
21
22
|
function getEnabledResources(resources, metadataByPath) {
|
|
22
23
|
for (const r of resources) {
|
|
@@ -88,9 +89,9 @@ export async function loadProjectTrustExtensions(loader) {
|
|
|
88
89
|
const inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);
|
|
89
90
|
// The builtin Herdr reporter supersedes the installed file integration in a
|
|
90
91
|
// Herdr pane; see extensions/herdr-file-integration.ts.
|
|
91
|
-
const extensionPaths = filterSupersededHerdrIntegrationPaths(mergeResourcePaths(state.cwd, cliEnabledExtensions, state.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions]));
|
|
92
|
+
const extensionPaths = filterSupersededHerdrIntegrationPaths(mergeResourcePaths(state.cwd, cliEnabledExtensions, state.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions])).filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX));
|
|
92
93
|
const packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);
|
|
93
|
-
const extensionsResult = await
|
|
94
|
+
const extensionsResult = await loadExtensionPaths(loader, extensionPaths, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
94
95
|
mergeExtensionWarnings(extensionsResult, packageWarnings);
|
|
95
96
|
const inlineExtensions = await loadExtensionFactories(loader, extensionsResult.runtime, workflowResourceProvider, inheritanceSnapshotProvider);
|
|
96
97
|
extensionsResult.extensions.push(...inlineExtensions.extensions);
|