@bastani/atomic 0.9.29-alpha.1 → 0.9.29

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/package.json +1 -1
  4. package/dist/builtin/subagents/CHANGELOG.md +6 -0
  5. package/dist/builtin/subagents/package.json +1 -1
  6. package/dist/builtin/web-access/package.json +1 -1
  7. package/dist/builtin/workflows/CHANGELOG.md +6 -0
  8. package/dist/builtin/workflows/package.json +1 -1
  9. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  10. package/dist/core/agent-session-extension-bindings.js +2 -4
  11. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  12. package/dist/core/agent-session-methods.d.ts +4 -1
  13. package/dist/core/agent-session-methods.d.ts.map +1 -1
  14. package/dist/core/agent-session-methods.js.map +1 -1
  15. package/dist/core/agent-session-state.d.ts +7 -0
  16. package/dist/core/agent-session-state.d.ts.map +1 -1
  17. package/dist/core/agent-session-state.js +31 -0
  18. package/dist/core/agent-session-state.js.map +1 -1
  19. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  20. package/dist/core/agent-session-tool-registry.js +2 -6
  21. package/dist/core/agent-session-tool-registry.js.map +1 -1
  22. package/dist/core/builtin-resource-loader.d.ts.map +1 -1
  23. package/dist/core/builtin-resource-loader.js +8 -0
  24. package/dist/core/builtin-resource-loader.js.map +1 -1
  25. package/dist/core/resource-loader-core.d.ts.map +1 -1
  26. package/dist/core/resource-loader-core.js +3 -2
  27. package/dist/core/resource-loader-core.js.map +1 -1
  28. package/dist/core/slash-commands.d.ts.map +1 -1
  29. package/dist/core/slash-commands.js +1 -0
  30. package/dist/core/slash-commands.js.map +1 -1
  31. package/dist/core/tool-selection.d.ts +18 -0
  32. package/dist/core/tool-selection.d.ts.map +1 -1
  33. package/dist/core/tool-selection.js +20 -0
  34. package/dist/core/tool-selection.js.map +1 -1
  35. package/dist/core/tool-status.d.ts +61 -0
  36. package/dist/core/tool-status.d.ts.map +1 -0
  37. package/dist/core/tool-status.js +156 -0
  38. package/dist/core/tool-status.js.map +1 -0
  39. package/dist/extensions/default-builtins.d.ts +4 -0
  40. package/dist/extensions/default-builtins.d.ts.map +1 -0
  41. package/dist/extensions/default-builtins.js +14 -0
  42. package/dist/extensions/default-builtins.js.map +1 -0
  43. package/dist/extensions/index.d.ts.map +1 -1
  44. package/dist/extensions/index.js +2 -6
  45. package/dist/extensions/index.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/modes/interactive/interactive-input-handling.js +5 -0
  51. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  52. package/dist/modes/interactive/interactive-mode-surface.d.ts +1 -0
  53. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  54. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  55. package/dist/modes/interactive/interactive-slash-commands.js +22 -0
  56. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  57. package/dist/modes/interactive-engine/isolated-runtime.d.ts +3 -0
  58. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  59. package/dist/modes/interactive-engine/isolated-runtime.js +4 -0
  60. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  61. package/dist/modes/rpc/rpc-client-api.d.ts +3 -0
  62. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  63. package/dist/modes/rpc/rpc-client-api.js +4 -0
  64. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  65. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  66. package/dist/modes/rpc/rpc-command-handler.js +3 -0
  67. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  68. package/dist/modes/rpc/rpc-types.d.ts +10 -0
  69. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  70. package/dist/modes/rpc/rpc-types.js.map +1 -1
  71. package/docs/rpc/protocol.md +61 -0
  72. package/docs/sdk/reference.md +45 -0
  73. package/docs/tools.md +4 -0
  74. package/docs/usage.md +1 -0
  75. package/npm-shrinkwrap.json +32 -32
  76. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-resource-loader.js","sourceRoot":"","sources":["../../src/core/builtin-resource-loader.ts"],"names":[],"mappings":"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","sourcesContent":["import { realpathSync } from \"node:fs\";\nimport { isAbsolute, relative, sep } from \"node:path\";\nimport { getAllBuiltinPackageLocations, getBuiltinPackageLocations } from \"./builtin-packages.ts\";\nimport { getExtensionRuntimeEventBus, instantiateExtensions, loadExtensions } from \"./extensions/loader.ts\";\nimport type { LoadExtensionsResult } from \"./extensions/types.ts\";\nimport { markTrustedMandatoryRuntimeExtension } from \"./mandatory-runtime-tools.ts\";\nimport { DefaultPackageManager, type ResolvedResource } from \"./package-manager.ts\";\nimport { DefaultResourceLoader } from \"./resource-loader.ts\";\nimport type {\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport type { AtomicBuiltin } from \"./sdk-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog } from \"./skill-catalog.ts\";\n\nfunction canonical(path: string): string {\n\ttry {\n\t\treturn realpathSync(path);\n\t} catch {\n\t\treturn path;\n\t}\n}\n\n/** Adds shipped resources without changing the caller's loader or its discovery options. */\nclass BuiltinResourceLoader implements ResourceLoader {\n\tprivate extensions!: LoadExtensionsResult;\n\tprivate assets: DefaultResourceLoader;\n\tprivate readonly delegate: ResourceLoader;\n\tprivate readonly cwd: string;\n\tprivate readonly agentDir: string;\n\tprivate readonly builtins: Partial<Record<AtomicBuiltin, boolean>>;\n\tprivate readonly disabledRoots: string[];\n\tprivate readonly disableWorkflowExtension: boolean;\n\tprivate readonly ownsDiscovery: boolean;\n\tprivate isDisabledPath(path: string): boolean {\n\t\treturn this.disabledRoots.some((root) => {\n\t\t\tconst child = relative(root, canonical(path));\n\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t});\n\t}\n\tconstructor(\n\t\tdelegate: ResourceLoader,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n\t\tdisableWorkflowExtension = false,\n\t\townsDiscovery?: boolean,\n\t) {\n\t\tconst scope = sessionLifecycleCreation.getStore()?.scope;\n\t\tthis.ownsDiscovery =\n\t\t\townsDiscovery ??\n\t\t\t(scope !== undefined && sessionLifecycleScopes.get(delegate.getExtensions().runtime) === scope);\n\t\tthis.disableWorkflowExtension = disableWorkflowExtension;\n\t\tthis.delegate = delegate;\n\t\tthis.cwd = cwd;\n\t\tthis.agentDir = agentDir;\n\t\tthis.builtins = {};\n\t\tfor (const name of [\"workflows\", \"subagents\", \"mcp\", \"web-access\", \"intercom\"] as const) {\n\t\t\tif (builtins && name in builtins) this.builtins[name] = builtins[name];\n\t\t}\n\t\tthis.disabledRoots = getAllBuiltinPackageLocations()\n\t\t\t.filter((location) => this.builtins[location.distDirName] === false)\n\t\t\t.map((location) => canonical(location.packageDir));\n\t\tthis.assets = new DefaultResourceLoader({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t\tnoExtensions: true,\n\t\t\tnoSkills: true,\n\t\t\tnoPromptTemplates: true,\n\t\t\tnoThemes: true,\n\t\t\tnoContextFiles: true,\n\t\t});\n\t}\n\tasync initialize(): Promise<void> {\n\t\tconst locations = getBuiltinPackageLocations(true, this.builtins);\n\t\tconst discovered = this.delegate.getExtensions();\n\t\tconst scope = lifecycleScopeForOwner(this);\n\t\tconst identities = new Set<string>();\n\t\tconst selected = discovered.extensions.filter((extension) => {\n\t\t\tif (this.isDisabledPath(extension.resolvedPath)) return false;\n\t\t\tconst path = canonical(extension.resolvedPath);\n\t\t\tconst builtin = locations.find((location) => {\n\t\t\t\tconst child = relative(canonical(location.packageDir), path);\n\t\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t\t});\n\t\t\tif (!builtin) return true;\n\t\t\tif (this.disableWorkflowExtension && builtin.distDirName === \"workflows\") return false;\n\t\t\tif (identities.has(builtin.packageName)) return false;\n\t\t\tidentities.add(builtin.packageName);\n\t\t\treturn true;\n\t\t});\n\t\tconst discovery = { ...discovered, extensions: selected };\n\t\tconst target =\n\t\t\tsessionLifecycleScopes.get(discovered.runtime) === scope\n\t\t\t\t? discovery\n\t\t\t\t: await sessionLifecycleCreation.run({ scope, claimed: true }, () =>\n\t\t\t\t\t\tinstantiateExtensions(discovery, this.cwd),\n\t\t\t\t\t);\n\t\tconst manager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t});\n\t\tconst resources = await manager.resolveExtensionSources(\n\t\t\tlocations.map((location) => location.packageDir),\n\t\t\t{ temporary: true },\n\t\t);\n\t\tconst paths = resources.extensions.filter(\n\t\t\t(resource) =>\n\t\t\t\tresource.enabled &&\n\t\t\t\t!locations.some(\n\t\t\t\t\t(location) =>\n\t\t\t\t\t\t(identities.has(location.packageName) ||\n\t\t\t\t\t\t\t(this.disableWorkflowExtension && location.distDirName === \"workflows\")) &&\n\t\t\t\t\t\tcanonical(resource.path).startsWith(`${canonical(location.packageDir)}${sep}`),\n\t\t\t\t),\n\t\t);\n\t\tconst mergeWorkflows = (caller: ResolvedResource[]) => {\n\t\t\tconst workflows = new Map<string, ResolvedResource>();\n\t\t\tfor (const resource of [...resources.workflows, ...caller]) {\n\t\t\t\tif (!this.isDisabledPath(resource.path)) workflows.set(canonical(resource.path), resource);\n\t\t\t}\n\t\t\treturn [...workflows.values()];\n\t\t};\n\t\tconst loaded = await loadExtensions(\n\t\t\tpaths.map((resource) => resource.path),\n\t\t\tthis.cwd,\n\t\t\tgetExtensionRuntimeEventBus(target.runtime),\n\t\t\t{\n\t\t\t\tget: () => mergeWorkflows(this.delegate.getWorkflowResources?.() ?? []),\n\t\t\t\trefresh: async () =>\n\t\t\t\t\tmergeWorkflows(\n\t\t\t\t\t\t(await this.delegate.refreshWorkflowResources?.()) ?? this.delegate.getWorkflowResources?.() ?? [],\n\t\t\t\t\t),\n\t\t\t\tgetMcpServers: () => this.delegate.getMcpServerContributions?.() ?? [],\n\t\t\t},\n\t\t\ttarget.runtime,\n\t\t);\n\t\tfor (const extension of loaded.extensions) markTrustedMandatoryRuntimeExtension(extension);\n\t\tthis.extensions = {\n\t\t\t...target,\n\t\t\textensions: [...target.extensions, ...loaded.extensions],\n\t\t\terrors: [...target.errors, ...loaded.errors],\n\t\t};\n\t\tconst entries = (items: ResolvedResource[]) =>\n\t\t\titems\n\t\t\t\t.filter((item) => item.enabled)\n\t\t\t\t.map((item) => ({\n\t\t\t\t\tpath: item.path,\n\t\t\t\t\tmetadata: { ...item.metadata, configurationOrigin: \"bundled\" as const },\n\t\t\t\t}));\n\t\tawait this.assets.extendResources({\n\t\t\tskillPaths: entries(resources.skills),\n\t\t\tpromptPaths: entries(resources.prompts),\n\t\t\tthemePaths: entries(resources.themes),\n\t\t});\n\t}\n\tgetExtensions() {\n\t\treturn this.extensions;\n\t}\n\tgetSkills(): ReturnType<ResourceLoader[\"getSkills\"]> {\n\t\tconst caller = this.delegate.getSkills();\n\t\tconst builtin = this.assets.getSkills();\n\t\tconst skills = caller.skills.filter((skill) => !this.isDisabledPath(skill.filePath));\n\t\tconst paths = new Set(skills.map((skill) => canonical(skill.filePath)));\n\t\treturn {\n\t\t\tskills: [...skills, ...builtin.skills.filter((skill) => !paths.has(canonical(skill.filePath)))],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetSkillCatalog() {\n\t\treturn buildSkillCatalog(this.getSkills().skills);\n\t}\n\tgetPrompts(): ReturnType<ResourceLoader[\"getPrompts\"]> {\n\t\tconst caller = this.delegate.getPrompts();\n\t\tconst builtin = this.assets.getPrompts();\n\t\tconst prompts = caller.prompts.filter((prompt) => !this.isDisabledPath(prompt.filePath));\n\t\tconst paths = new Set(prompts.map((prompt) => canonical(prompt.filePath)));\n\t\treturn {\n\t\t\tprompts: [...prompts, ...builtin.prompts.filter((prompt) => !paths.has(canonical(prompt.filePath)))],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetThemes(): ReturnType<ResourceLoader[\"getThemes\"]> {\n\t\tconst caller = this.delegate.getThemes();\n\t\tconst builtin = this.assets.getThemes();\n\t\treturn {\n\t\t\tthemes: [\n\t\t\t\t...caller.themes.filter((theme) => !theme.sourcePath || !this.isDisabledPath(theme.sourcePath)),\n\t\t\t\t...builtin.themes,\n\t\t\t],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetAgentsFiles() {\n\t\treturn this.delegate.getAgentsFiles();\n\t}\n\tgetSystemPrompt() {\n\t\treturn this.delegate.getSystemPrompt();\n\t}\n\tgetSystemPromptSource() {\n\t\treturn this.delegate.getSystemPromptSource();\n\t}\n\tgetAppendSystemPrompt() {\n\t\treturn this.delegate.getAppendSystemPrompt();\n\t}\n\tgetAppendSystemPromptSources() {\n\t\treturn this.delegate.getAppendSystemPromptSources();\n\t}\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst bundled: ResourceExtensionPaths = {};\n\t\tconst caller: ResourceExtensionPaths = {};\n\t\tfor (const kind of [\"skillPaths\", \"promptPaths\", \"themePaths\"] as const) {\n\t\t\tbundled[kind] = paths[kind]?.filter(\n\t\t\t\t(entry) => !this.isDisabledPath(entry.path) && entry.metadata.configurationOrigin === \"bundled\",\n\t\t\t);\n\t\t\tcaller[kind] = paths[kind]?.filter(\n\t\t\t\t(entry) => !this.isDisabledPath(entry.path) && entry.metadata.configurationOrigin !== \"bundled\",\n\t\t\t);\n\t\t}\n\t\tif (this.ownsDiscovery) {\n\t\t\tawait this.delegate.extendResources(caller);\n\t\t} else {\n\t\t\t// Extension-discovered assets belong to this session, not borrowed discovery.\n\t\t\tfor (const kind of [\"skillPaths\", \"promptPaths\", \"themePaths\"] as const) {\n\t\t\t\tbundled[kind] = [...(bundled[kind] ?? []), ...(caller[kind] ?? [])];\n\t\t\t}\n\t\t}\n\t\tawait this.assets.extendResources(bundled);\n\t}\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\tawait this.delegate.reload(options);\n\t\tthis.assets = new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t\tnoContextFiles: true,\n\t\t});\n\t\tawait this.initialize();\n\t}\n\tsupportsTransactionalReload(): boolean {\n\t\treturn this.delegate.prepareReload !== undefined && this.delegate.supportsTransactionalReload?.() !== false;\n\t}\n\tasync prepareReload(\n\t\tsettings: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tif (!this.delegate.prepareReload) throw new Error(\"Resource loader does not support transactional reload\");\n\t\tconst transaction = await this.delegate.prepareReload(settings, options);\n\t\tconst candidate = new BuiltinResourceLoader(\n\t\t\ttransaction.loader,\n\t\t\tthis.cwd,\n\t\t\tthis.agentDir,\n\t\t\tthis.builtins,\n\t\t\tthis.disableWorkflowExtension,\n\t\t\ttrue,\n\t\t);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.initialize();\n\t\tconst publish = () => {\n\t\t\tthis.extensions = candidate.extensions;\n\t\t\tthis.assets = candidate.assets;\n\t\t};\n\t\treturn {\n\t\t\t...transaction,\n\t\t\tloader: candidate,\n\t\t\t...(transaction.prepareCommit\n\t\t\t\t? {\n\t\t\t\t\t\tprepareCommit: () => {\n\t\t\t\t\t\t\tconst prepared = transaction.prepareCommit!();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcommit: () => {\n\t\t\t\t\t\t\t\t\tprepared.commit();\n\t\t\t\t\t\t\t\t\tpublish();\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trollback: () => prepared.rollback(),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tcommit: () => {\n\t\t\t\ttransaction.commit();\n\t\t\t\tpublish();\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport async function withBuiltinResourceLoader(\n\tloader: ResourceLoader,\n\tcwd: string,\n\tagentDir: string,\n\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n\tdisableWorkflowExtension = false,\n): Promise<ResourceLoader> {\n\tif (\n\t\tloader instanceof BuiltinResourceLoader &&\n\t\tbuiltins === undefined &&\n\t\t!disableWorkflowExtension &&\n\t\tsessionLifecycleScopes.get(loader) === sessionLifecycleCreation.getStore()?.scope\n\t)\n\t\treturn loader;\n\tconst composed = new BuiltinResourceLoader(loader, cwd, agentDir, builtins, disableWorkflowExtension);\n\tawait composed.initialize();\n\treturn composed;\n}\n"]}
1
+ {"version":3,"file":"builtin-resource-loader.js","sourceRoot":"","sources":["../../src/core/builtin-resource-loader.ts"],"names":[],"mappings":"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","sourcesContent":["import { realpathSync } from \"node:fs\";\nimport { isAbsolute, relative, sep } from \"node:path\";\nimport { getAllBuiltinPackageLocations, getBuiltinPackageLocations } from \"./builtin-packages.ts\";\nimport { getExtensionRuntimeEventBus, instantiateExtensions, loadExtensions } from \"./extensions/loader.ts\";\nimport type { LoadExtensionsResult } from \"./extensions/types.ts\";\nimport { markTrustedMandatoryRuntimeExtension } from \"./mandatory-runtime-tools.ts\";\nimport { DefaultPackageManager, type ResolvedResource } from \"./package-manager.ts\";\nimport { DefaultResourceLoader } from \"./resource-loader.ts\";\nimport type {\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport type { AtomicBuiltin } from \"./sdk-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog } from \"./skill-catalog.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"./source-info.ts\";\n\nfunction canonical(path: string): string {\n\ttry {\n\t\treturn realpathSync(path);\n\t} catch {\n\t\treturn path;\n\t}\n}\n\n/** Adds shipped resources without changing the caller's loader or its discovery options. */\nclass BuiltinResourceLoader implements ResourceLoader {\n\tprivate extensions!: LoadExtensionsResult;\n\tprivate assets: DefaultResourceLoader;\n\tprivate readonly delegate: ResourceLoader;\n\tprivate readonly cwd: string;\n\tprivate readonly agentDir: string;\n\tprivate readonly builtins: Partial<Record<AtomicBuiltin, boolean>>;\n\tprivate readonly disabledRoots: string[];\n\tprivate readonly disableWorkflowExtension: boolean;\n\tprivate readonly ownsDiscovery: boolean;\n\tprivate isDisabledPath(path: string): boolean {\n\t\treturn this.disabledRoots.some((root) => {\n\t\t\tconst child = relative(root, canonical(path));\n\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t});\n\t}\n\tconstructor(\n\t\tdelegate: ResourceLoader,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n\t\tdisableWorkflowExtension = false,\n\t\townsDiscovery?: boolean,\n\t) {\n\t\tconst scope = sessionLifecycleCreation.getStore()?.scope;\n\t\tthis.ownsDiscovery =\n\t\t\townsDiscovery ??\n\t\t\t(scope !== undefined && sessionLifecycleScopes.get(delegate.getExtensions().runtime) === scope);\n\t\tthis.disableWorkflowExtension = disableWorkflowExtension;\n\t\tthis.delegate = delegate;\n\t\tthis.cwd = cwd;\n\t\tthis.agentDir = agentDir;\n\t\tthis.builtins = {};\n\t\tfor (const name of [\"workflows\", \"subagents\", \"mcp\", \"web-access\", \"intercom\"] as const) {\n\t\t\tif (builtins && name in builtins) this.builtins[name] = builtins[name];\n\t\t}\n\t\tthis.disabledRoots = getAllBuiltinPackageLocations()\n\t\t\t.filter((location) => this.builtins[location.distDirName] === false)\n\t\t\t.map((location) => canonical(location.packageDir));\n\t\tthis.assets = new DefaultResourceLoader({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t\tnoExtensions: true,\n\t\t\tnoSkills: true,\n\t\t\tnoPromptTemplates: true,\n\t\t\tnoThemes: true,\n\t\t\tnoContextFiles: true,\n\t\t});\n\t}\n\tasync initialize(): Promise<void> {\n\t\tconst locations = getBuiltinPackageLocations(true, this.builtins);\n\t\tconst discovered = this.delegate.getExtensions();\n\t\tconst scope = lifecycleScopeForOwner(this);\n\t\tconst identities = new Set<string>();\n\t\tconst inlineBuiltinPaths = new Set<string>();\n\t\tconst selected = discovered.extensions.filter((extension) => {\n\t\t\tif (extension.path.startsWith(BUILTIN_PATH_PREFIX)) {\n\t\t\t\tif (inlineBuiltinPaths.has(extension.path)) return false;\n\t\t\t\tinlineBuiltinPaths.add(extension.path);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (this.isDisabledPath(extension.resolvedPath)) return false;\n\t\t\tconst path = canonical(extension.resolvedPath);\n\t\t\tconst builtin = locations.find((location) => {\n\t\t\t\tconst child = relative(canonical(location.packageDir), path);\n\t\t\t\treturn child !== \"..\" && !child.startsWith(`..${sep}`) && !isAbsolute(child);\n\t\t\t});\n\t\t\tif (!builtin) return true;\n\t\t\tif (this.disableWorkflowExtension && builtin.distDirName === \"workflows\") return false;\n\t\t\tif (identities.has(builtin.packageName)) return false;\n\t\t\tidentities.add(builtin.packageName);\n\t\t\treturn true;\n\t\t});\n\t\tconst discovery = { ...discovered, extensions: selected };\n\t\tconst target =\n\t\t\tsessionLifecycleScopes.get(discovered.runtime) === scope\n\t\t\t\t? discovery\n\t\t\t\t: await sessionLifecycleCreation.run({ scope, claimed: true }, () =>\n\t\t\t\t\t\tinstantiateExtensions(discovery, this.cwd),\n\t\t\t\t\t);\n\t\tconst manager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t});\n\t\tconst resources = await manager.resolveExtensionSources(\n\t\t\tlocations.map((location) => location.packageDir),\n\t\t\t{ temporary: true },\n\t\t);\n\t\tconst paths = resources.extensions.filter(\n\t\t\t(resource) =>\n\t\t\t\tresource.enabled &&\n\t\t\t\t!locations.some(\n\t\t\t\t\t(location) =>\n\t\t\t\t\t\t(identities.has(location.packageName) ||\n\t\t\t\t\t\t\t(this.disableWorkflowExtension && location.distDirName === \"workflows\")) &&\n\t\t\t\t\t\tcanonical(resource.path).startsWith(`${canonical(location.packageDir)}${sep}`),\n\t\t\t\t),\n\t\t);\n\t\tconst mergeWorkflows = (caller: ResolvedResource[]) => {\n\t\t\tconst workflows = new Map<string, ResolvedResource>();\n\t\t\tfor (const resource of [...resources.workflows, ...caller]) {\n\t\t\t\tif (!this.isDisabledPath(resource.path)) workflows.set(canonical(resource.path), resource);\n\t\t\t}\n\t\t\treturn [...workflows.values()];\n\t\t};\n\t\tconst loaded = await loadExtensions(\n\t\t\tpaths.map((resource) => resource.path),\n\t\t\tthis.cwd,\n\t\t\tgetExtensionRuntimeEventBus(target.runtime),\n\t\t\t{\n\t\t\t\tget: () => mergeWorkflows(this.delegate.getWorkflowResources?.() ?? []),\n\t\t\t\trefresh: async () =>\n\t\t\t\t\tmergeWorkflows(\n\t\t\t\t\t\t(await this.delegate.refreshWorkflowResources?.()) ?? this.delegate.getWorkflowResources?.() ?? [],\n\t\t\t\t\t),\n\t\t\t\tgetMcpServers: () => this.delegate.getMcpServerContributions?.() ?? [],\n\t\t\t},\n\t\t\ttarget.runtime,\n\t\t);\n\t\tfor (const extension of loaded.extensions) markTrustedMandatoryRuntimeExtension(extension);\n\t\tthis.extensions = {\n\t\t\t...target,\n\t\t\textensions: [...target.extensions, ...loaded.extensions],\n\t\t\terrors: [...target.errors, ...loaded.errors],\n\t\t};\n\t\tconst entries = (items: ResolvedResource[]) =>\n\t\t\titems\n\t\t\t\t.filter((item) => item.enabled)\n\t\t\t\t.map((item) => ({\n\t\t\t\t\tpath: item.path,\n\t\t\t\t\tmetadata: { ...item.metadata, configurationOrigin: \"bundled\" as const },\n\t\t\t\t}));\n\t\tawait this.assets.extendResources({\n\t\t\tskillPaths: entries(resources.skills),\n\t\t\tpromptPaths: entries(resources.prompts),\n\t\t\tthemePaths: entries(resources.themes),\n\t\t});\n\t}\n\tgetExtensions() {\n\t\treturn this.extensions;\n\t}\n\tgetSkills(): ReturnType<ResourceLoader[\"getSkills\"]> {\n\t\tconst caller = this.delegate.getSkills();\n\t\tconst builtin = this.assets.getSkills();\n\t\tconst skills = caller.skills.filter((skill) => !this.isDisabledPath(skill.filePath));\n\t\tconst paths = new Set(skills.map((skill) => canonical(skill.filePath)));\n\t\treturn {\n\t\t\tskills: [...skills, ...builtin.skills.filter((skill) => !paths.has(canonical(skill.filePath)))],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetSkillCatalog() {\n\t\treturn buildSkillCatalog(this.getSkills().skills);\n\t}\n\tgetPrompts(): ReturnType<ResourceLoader[\"getPrompts\"]> {\n\t\tconst caller = this.delegate.getPrompts();\n\t\tconst builtin = this.assets.getPrompts();\n\t\tconst prompts = caller.prompts.filter((prompt) => !this.isDisabledPath(prompt.filePath));\n\t\tconst paths = new Set(prompts.map((prompt) => canonical(prompt.filePath)));\n\t\treturn {\n\t\t\tprompts: [...prompts, ...builtin.prompts.filter((prompt) => !paths.has(canonical(prompt.filePath)))],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetThemes(): ReturnType<ResourceLoader[\"getThemes\"]> {\n\t\tconst caller = this.delegate.getThemes();\n\t\tconst builtin = this.assets.getThemes();\n\t\treturn {\n\t\t\tthemes: [\n\t\t\t\t...caller.themes.filter((theme) => !theme.sourcePath || !this.isDisabledPath(theme.sourcePath)),\n\t\t\t\t...builtin.themes,\n\t\t\t],\n\t\t\tdiagnostics: [...caller.diagnostics, ...builtin.diagnostics],\n\t\t};\n\t}\n\tgetAgentsFiles() {\n\t\treturn this.delegate.getAgentsFiles();\n\t}\n\tgetSystemPrompt() {\n\t\treturn this.delegate.getSystemPrompt();\n\t}\n\tgetSystemPromptSource() {\n\t\treturn this.delegate.getSystemPromptSource();\n\t}\n\tgetAppendSystemPrompt() {\n\t\treturn this.delegate.getAppendSystemPrompt();\n\t}\n\tgetAppendSystemPromptSources() {\n\t\treturn this.delegate.getAppendSystemPromptSources();\n\t}\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst bundled: ResourceExtensionPaths = {};\n\t\tconst caller: ResourceExtensionPaths = {};\n\t\tfor (const kind of [\"skillPaths\", \"promptPaths\", \"themePaths\"] as const) {\n\t\t\tbundled[kind] = paths[kind]?.filter(\n\t\t\t\t(entry) => !this.isDisabledPath(entry.path) && entry.metadata.configurationOrigin === \"bundled\",\n\t\t\t);\n\t\t\tcaller[kind] = paths[kind]?.filter(\n\t\t\t\t(entry) => !this.isDisabledPath(entry.path) && entry.metadata.configurationOrigin !== \"bundled\",\n\t\t\t);\n\t\t}\n\t\tif (this.ownsDiscovery) {\n\t\t\tawait this.delegate.extendResources(caller);\n\t\t} else {\n\t\t\t// Extension-discovered assets belong to this session, not borrowed discovery.\n\t\t\tfor (const kind of [\"skillPaths\", \"promptPaths\", \"themePaths\"] as const) {\n\t\t\t\tbundled[kind] = [...(bundled[kind] ?? []), ...(caller[kind] ?? [])];\n\t\t\t}\n\t\t}\n\t\tawait this.assets.extendResources(bundled);\n\t}\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\tawait this.delegate.reload(options);\n\t\tthis.assets = new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: SettingsManager.inMemory(),\n\t\t\tnoContextFiles: true,\n\t\t});\n\t\tawait this.initialize();\n\t}\n\tsupportsTransactionalReload(): boolean {\n\t\treturn this.delegate.prepareReload !== undefined && this.delegate.supportsTransactionalReload?.() !== false;\n\t}\n\tasync prepareReload(\n\t\tsettings: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tif (!this.delegate.prepareReload) throw new Error(\"Resource loader does not support transactional reload\");\n\t\tconst transaction = await this.delegate.prepareReload(settings, options);\n\t\tconst candidate = new BuiltinResourceLoader(\n\t\t\ttransaction.loader,\n\t\t\tthis.cwd,\n\t\t\tthis.agentDir,\n\t\t\tthis.builtins,\n\t\t\tthis.disableWorkflowExtension,\n\t\t\ttrue,\n\t\t);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.initialize();\n\t\tconst publish = () => {\n\t\t\tthis.extensions = candidate.extensions;\n\t\t\tthis.assets = candidate.assets;\n\t\t};\n\t\treturn {\n\t\t\t...transaction,\n\t\t\tloader: candidate,\n\t\t\t...(transaction.prepareCommit\n\t\t\t\t? {\n\t\t\t\t\t\tprepareCommit: () => {\n\t\t\t\t\t\t\tconst prepared = transaction.prepareCommit!();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcommit: () => {\n\t\t\t\t\t\t\t\t\tprepared.commit();\n\t\t\t\t\t\t\t\t\tpublish();\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trollback: () => prepared.rollback(),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tcommit: () => {\n\t\t\t\ttransaction.commit();\n\t\t\t\tpublish();\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport async function withBuiltinResourceLoader(\n\tloader: ResourceLoader,\n\tcwd: string,\n\tagentDir: string,\n\tbuiltins?: Partial<Record<AtomicBuiltin, boolean>>,\n\tdisableWorkflowExtension = false,\n): Promise<ResourceLoader> {\n\tif (\n\t\tloader instanceof BuiltinResourceLoader &&\n\t\tbuiltins === undefined &&\n\t\t!disableWorkflowExtension &&\n\t\tsessionLifecycleScopes.get(loader) === sessionLifecycleCreation.getStore()?.scope\n\t)\n\t\treturn loader;\n\tconst composed = new BuiltinResourceLoader(loader, cwd, agentDir, builtins, disableWorkflowExtension);\n\tawait composed.initialize();\n\treturn composed;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-core.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-loader-core.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,KAAK,EAAmB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAe5D,OAAO,KAAK,EACX,wCAAwC,EACxC,4BAA4B,EAC5B,sBAAsB,EACtB,cAAc,EACd,2BAA2B,EAC3B,+BAA+B,EAC/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,qBAAa,qBAAsB,YAAW,cAAc;IAC3D,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,wBAAwB,CAAW;IAC3C,OAAO,CAAC,oBAAoB,CAAW;IACvC,OAAO,CAAC,6BAA6B,CAAW;IAChD,OAAO,CAAC,oBAAoB,CAAW;IACvC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,yBAAyB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,wBAAwB,CAAC,CAAW;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAuD;IAClF,OAAO,CAAC,cAAc,CAAC,CAGrB;IACF,OAAO,CAAC,eAAe,CAAC,CAGtB;IACF,OAAO,CAAC,cAAc,CAAC,CAGrB;IACF,OAAO,CAAC,mBAAmB,CAAC,CAE1B;IACF,OAAO,CAAC,oBAAoB,CAAC,CAAmD;IAChF,OAAO,CAAC,0BAA0B,CAAC,CAA+B;IAClE,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,6BAA6B,CAAW;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,kCAAkC,CAAC,CAAc;IACzD,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,yBAAyB,CAA0B;IAC3D,OAAO,CAAC,sBAAsB,CAA4B;IAC1D,OAAO,CAAC,0BAA0B,CAA0B;IAC5D,OAAO,CAAC,yBAAyB,CAA0B;IAC3D,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,WAAW,CAAC,CAA8B;IAElD,YAAY,OAAO,EAAE,4BAA4B,EA2FhD;IAED,aAAa,IAAI,oBAAoB,CAEpC;IAED,SAAS,IAAI;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAElE;IAED,eAAe,IAAI,YAAY,CAE9B;IAED,UAAU,IAAI;QAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAE7E;IAED,SAAS,IAAI;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAElE;IAED,WAAW,IAAI,eAAe,EAAE,CAE/B;IAED,cAAc,IAAI;QAAE,WAAW,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAE1E;IAED,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,qBAAqB,IAAI,MAAM,EAAE,CAEhC;IAED,qBAAqB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAEpD;IAED,4BAA4B,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAEtD;IAED,oBAAoB,IAAI,gBAAgB,EAAE,CAEzC;IAED,0EAA0E;IAC1E,yBAAyB,IAAI,qBAAqB,EAAE,CAEnD;IAED,sBAAsB,IAAI,wCAAwC,CAuBjE;IAEK,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAO5D;IAEK,eAAe,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClE;IAEK,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAIhE;IAEK,MAAM,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;IACD,OAAO,CAAC,eAAe;IAoCvB,mFAAmF;IAC7E,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiBvE;IAEK,aAAa,CAClB,eAAe,EAAE,eAAe,EAChC,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,+BAA+B,CAAC,CA6B1C;IAED,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,2BAA2B;CAgBnC;AAED,kGAAkG;AAClG,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,IAAI,qBAAqB,CAMpH"}
@@ -1,3 +1,4 @@
1
+ import { withDefaultBuiltinExtensions } from "../extensions/default-builtins.js";
1
2
  import { resolvePath } from "../utils/paths.js";
2
3
  import { createEventBus, createStagedEventBus } from "./event-bus.js";
3
4
  import { createExtensionRuntime } from "./extensions/loader.js";
@@ -80,10 +81,10 @@ export class DefaultResourceLoader {
80
81
  options.builtinPackagePaths !== undefined
81
82
  ? clonePackageSources(options.builtinPackagePaths)
82
83
  : clonePackageSources(inheritanceSnapshot?.builtinPackagePaths);
83
- this.extensionFactories = [
84
+ this.extensionFactories = withDefaultBuiltinExtensions([
84
85
  ...(inheritanceSnapshot?.extensionFactories ?? []),
85
86
  ...(options.extensionFactories ?? []),
86
- ];
87
+ ]);
87
88
  this.packageManager = new DefaultPackageManager({
88
89
  cwd: this.cwd,
89
90
  agentDir: this.agentDir,
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAiB,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAA4C,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EACN,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAStG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACxH,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAI1E,MAAM,OAAO,qBAAqB;IACzB,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,eAAe,CAAkB;IACjC,QAAQ,CAAW;IACnB,cAAc,CAAwB;IACtC,wBAAwB,CAAW;IACnC,oBAAoB,CAAW;IAC/B,6BAA6B,CAAW;IACxC,oBAAoB,CAAW;IAC/B,mBAAmB,CAAkB;IACrC,kBAAkB,CAAoB;IACtC,YAAY,CAAU;IACtB,yBAAyB,CAAc;IACvC,QAAQ,CAAU;IAClB,iBAAiB,CAAU;IAC3B,QAAQ,CAAU;IAClB,cAAc,CAAU;IACxB,kBAAkB,CAAU;IAC5B,wBAAwB,CAAY;IACpC,kBAAkB,CAAwD;IAC1E,cAAc,CAGpB;IACM,eAAe,CAGrB;IACM,cAAc,CAGpB;IACM,mBAAmB,CAEzB;IACM,oBAAoB,CAAoD;IACxE,0BAA0B,CAAgC;IAC1D,gBAAgB,CAAuB;IACvC,MAAM,CAAU;IAChB,gBAAgB,CAAuB;IACvC,YAAY,CAAe;IAC3B,OAAO,CAAmB;IAC1B,iBAAiB,CAAuB;IACxC,MAAM,CAAU;IAChB,gBAAgB,CAAuB;IACvC,WAAW,CAA2C;IACtD,YAAY,CAAU;IACtB,sBAAsB,CAAU;IAChC,kBAAkB,CAAW;IAC7B,6BAA6B,CAAW;IACxC,iBAAiB,CAAqB;IACtC,sBAAsB,CAA0B;IAChD,kCAAkC,CAAe;IACjD,cAAc,CAAW;IACzB,yBAAyB,CAA0B;IACnD,sBAAsB,CAA4B;IAClD,0BAA0B,CAA0B;IACpD,yBAAyB,CAA0B;IACnD,eAAe,CAAW;IAC1B,cAAc,CAAW;IACzB,MAAM,CAAU;IAChB,WAAW,CAA+B;IAElD,YAAY,OAAqC;QAChD,MAAM,mBAAmB,GAAG,OAAO,CAAC,iCAAiC,CAAC;QACtE,MAAM,wBAAwB,GAC7B,mBAAmB,EAAE,cAAc,KAAK,SAAS;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,cAAc,EAAE,mBAAmB,CAAC,cAAc,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe;YACnB,OAAO,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACtG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CACpD,mBAAmB,EAAE,wBAAwB,EAC7C,OAAO,CAAC,wBAAwB,CAChC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAChD,mBAAmB,EAAE,oBAAoB,EACzC,OAAO,CAAC,oBAAoB,CAC5B,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,qBAAqB,CACzD,mBAAmB,EAAE,6BAA6B,EAClD,OAAO,CAAC,6BAA6B,CACrC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAChD,mBAAmB,EAAE,oBAAoB,EACzC,OAAO,CAAC,oBAAoB,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB;YACvB,OAAO,CAAC,mBAAmB,KAAK,SAAS;gBACxC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAClD,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG;YACzB,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,IAAI,EAAE,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;SACrC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC;YAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAChE;SACD,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,YAAY,IAAI,KAAK,CAAC;QACvF,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,CACvC,OAAO,CAAC,yBAAyB,IAAI,mBAAmB,EAAE,yBAAyB,CACnF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,mBAAmB,EAAE,iBAAiB,IAAI,KAAK,CAAC;QACtG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,mBAAmB,EAAE,cAAc,IAAI,KAAK,CAAC;QAC7F,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,YAAY,CAAC;QACpF,IAAI,CAAC,wBAAwB;YAC5B,OAAO,CAAC,kBAAkB,KAAK,SAAS;gBACvC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBACjC,CAAC,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,SAAS;oBACtD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;QACrE,IAAI,CAAC,gBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC;QAC1F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,kCAAkC;YACtC,mBAAmB,EAAE,kCAAkC,KAAK,SAAS;gBACpE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACpC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAED,SAAS;QACR,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACpE,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,UAAU;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvE,CAAC;IAED,SAAS;QACR,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACpE,CAAC;IAED,WAAW;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACb,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC;IAED,4BAA4B;QAC3B,OAAO,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,oBAAoB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,0EAA0E;IAC1E,yBAAyB;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;QACrB,OAAO;YACN,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;YACvD,wBAAwB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,6BAA6B,EAAE,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;YACtE,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAClE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,yBAAyB,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3F,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,SAAS;gBAC9C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,kCAAkC,KAAK,SAAS;gBACxD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,kCAAkC,EAAE,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC,EAAE,CAAC;SACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC7B,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE;YACzG,kCAAkC,EAAE,IAAI,CAAC,kCAAkC;SAC3E,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;QAC1G,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA6B;QAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzE,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvD,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,kBAAkB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;YACF,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,kBAAkB,CACxC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,eAAe,EACpB,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;YACF,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,kBAAkB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;YACF,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1F,CAAC;IACF,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,OAAO,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAChG,0BAA0B,CAAC,IAAI,CAAC,CAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAqC;QACjD,OAAO,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;YACtG,MAAM,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC;IACO,eAAe,CAAC,eAAgC,EAAE,QAAkB;QAC3E,OAAO,IAAI,qBAAqB,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe;YACf,QAAQ;YACR,wBAAwB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,6BAA6B,EAAE,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;YACtE,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAClE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,yBAAyB,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB;YACjD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,iCAAiC,EAAE;gBAClC,kCAAkC,EACjC,IAAI,CAAC,kCAAkC,KAAK,SAAS;oBACpD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC;aAChD;SACD,CAAC,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,mBAAmB,CAAC,KAAa;QACtC,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,qEAAqE;QACrE,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,CAAC,eAAe,CAAC;YAC/B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;YAClD,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;SAClD,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,eAAgC,EAChC,OAAqC;QAErC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACjF,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,GAAG,EAAE;YAC1B,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;YAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO;gBACN,MAAM,EAAE,GAAG,EAAE;oBACZ,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,cAAc,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACd,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC;aACD,CAAC;QACH,CAAC,CAAC;QACF,4EAA4E;QAC5E,OAAO;YACN,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;YACxF,aAAa;YACb,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE;SACtC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,eAAgC;QAC9D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC;YAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe;YACf,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAChE;SACD,CAAC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,SAAgC;QACxD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACvD,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC,6BAA6B,CAAC;QAC7E,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,kCAAkC,GAAG,SAAS,CAAC,kCAAkC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACrE,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC,0BAA0B,CAAC;QACvE,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,CAAC;IAEO,2BAA2B;QAClC,KAAK,IAAI,CAAC,QAAQ,CAAC;QACnB,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,kBAAkB,CAAC;QAC7B,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,eAAe,CAAC;QAC1B,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,mBAAmB,CAAC;QAC9B,KAAK,IAAI,CAAC,oBAAoB,CAAC;QAC/B,KAAK,IAAI,CAAC,0BAA0B,CAAC;QACrC,KAAK,IAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,IAAI,CAAC,0BAA0B,CAAC;QACrC,KAAK,IAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC;CACD;AAED,kGAAkG;AAClG,MAAM,UAAU,gCAAgC,CAAC,MAAkC;IAClF,OAAO,CACN,MAAM,YAAY,qBAAqB;QACvC,MAAM,CAAC,WAAW,KAAK,qBAAqB;QAC5C,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACzG,CAAC;AACH,CAAC","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 disabledBuiltinExtensions: Set<string>;\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.disabledBuiltinExtensions = new Set(\n\t\t\toptions.disabledBuiltinExtensions ?? inheritanceSnapshot?.disabledBuiltinExtensions,\n\t\t);\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\tdisabledBuiltinExtensions: [...this.disabledBuiltinExtensions],\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\tdisabledBuiltinExtensions: [...this.disabledBuiltinExtensions],\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"]}
1
+ {"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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","sourcesContent":["import { withDefaultBuiltinExtensions } from \"../extensions/default-builtins.js\";\nimport 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 disabledBuiltinExtensions: Set<string>;\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 = withDefaultBuiltinExtensions([\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.disabledBuiltinExtensions = new Set(\n\t\t\toptions.disabledBuiltinExtensions ?? inheritanceSnapshot?.disabledBuiltinExtensions,\n\t\t);\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\tdisabledBuiltinExtensions: [...this.disabledBuiltinExtensions],\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\tdisabledBuiltinExtensions: [...this.disabledBuiltinExtensions],\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,gBAAgB,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;CACpH;AAgPD,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAgDvG;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,mBAAmB,CA0BrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,aAAa,CAAC,mBAAmB,CAe/E,CAAC"}
1
+ {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,gBAAgB,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;CACpH;AAgPD,wBAAgB,qCAAqC,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAgDvG;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,mBAAmB,CA2BrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,aAAa,CAAC,mBAAmB,CAe/E,CAAC"}
@@ -265,6 +265,7 @@ export const BUILTIN_SLASH_COMMANDS = [
265
265
  { name: "copy", description: "Copy last agent message to clipboard" },
266
266
  { name: "name", description: "Set session display name" },
267
267
  { name: "session", description: "Show session info and stats" },
268
+ { name: "tools", description: "Show which tools are active, inactive (and why), or missing" },
268
269
  { name: "tasks", description: "Inspect agents and shells, view output, and manage running tasks" },
269
270
  { name: "changelog", description: "Show changelog entries" },
270
271
  { name: "hotkeys", description: "Show all keyboard shortcuts" },
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AutocompleteItem } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../config.js\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport type SlashCommandSource = \"extension\" | \"prompt\" | \"skill\";\n\nexport interface SlashCommandInfo {\n\tname: string;\n\tdescription?: string;\n\tsource: SlashCommandSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface BuiltinSlashCommand {\n\tname: string;\n\tdescription: string;\n\targumentHint?: string;\n\tgetArgumentCompletions?: (argumentPrefix: string) => AutocompleteItem[] | null | Promise<AutocompleteItem[] | null>;\n}\n\ntype WorkflowInputCompletionMetadata = {\n\tdescription: string;\n\tkind?: \"boolean\" | \"number\" | \"string\";\n};\n\ntype WorkflowCompletionMetadata = {\n\tname: string;\n\tdescription: string;\n\tinputs: Record<string, WorkflowInputCompletionMetadata>;\n};\n\nconst WORKFLOW_ADMIN_COMPLETIONS: AutocompleteItem[] = [\n\t{ value: \"connect \", label: \"connect\", description: \"Attach to a run (picker if no id)\" },\n\t{ value: \"attach \", label: \"attach\", description: \"Open the in-place attach pane on a node\" },\n\t{ value: \"list \", label: \"list\", description: \"List registered workflows\" },\n\t{ value: \"status \", label: \"status\", description: \"List current-session active and retained terminal runs\" },\n\t{ value: \"pause \", label: \"pause\", description: \"Pause a run\" },\n\t{ value: \"quit \", label: \"quit\", description: \"Quit a run and keep it resumable\" },\n\t{ value: \"resume \", label: \"resume\", description: \"Re-open overlay for a run\" },\n\t{ value: \"inputs \", label: \"inputs\", description: \"Show a workflow's input schema\" },\n\t{ value: \"reload \", label: \"reload\", description: \"Reload workflow resources\" },\n];\n\nconst BUNDLED_WORKFLOW_COMPLETION_METADATA: WorkflowCompletionMetadata[] = [\n\t{\n\t\tname: \"adversarial-verification\",\n\t\tdescription:\n\t\t\t\"Produce a candidate, score independent per-criterion verifier reports, and apply a deterministic mean-and-veto gate with bounded repairs.\",\n\t\tinputs: {\n\t\t\ttask: { description: \"Task whose candidate result must be independently verified.\", kind: \"string\" },\n\t\t\tverifier_count: {\n\t\t\t\tdescription: \"Number of independent verifiers for each criterion per round.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_repairs: { description: \"Maximum candidate repair rounds before rejection.\", kind: \"number\" },\n\t\t\tcriteria: { description: \"Criteria record of name-to-description entries, or criteria.md markdown.\" },\n\t\t\taccept_mean: {\n\t\t\t\tdescription: \"Mean score required for acceptance on the 1–20 verification scale.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\treask_limit: { description: \"Maximum bounded re-ask waves for invalid criterion reports.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"classify-and-act\",\n\t\tdescription:\n\t\t\t\"Classify a task with structured confidence, route deterministically to an isolated category action, and ask for human selection when confidence is low.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to classify and execute.\", kind: \"string\" },\n\t\t\tcategories: { description: \"Ordered action categories available to the classifier and fallback chooser.\" },\n\t\t\tconfidence_threshold: {\n\t\t\t\tdescription: \"Minimum structured confidence required to route without human selection.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"fan-out-and-synthesize\",\n\t\tdescription:\n\t\t\t\"Partition a task, run bounded independent artifact branches, then synthesize all evidence at an explicit barrier.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to partition, investigate, and synthesize.\", kind: \"string\" },\n\t\t\tmax_branches: {\n\t\t\t\tdescription: \"Maximum number of independent partitions produced and executed.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_concurrency: { description: \"Maximum number of branch agents running concurrently.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"generate-and-filter\",\n\t\tdescription:\n\t\t\t\"Generate more independent candidates than needed, deduplicate and filter them by rubric, optionally judge them, and return a parent-consumable shortlist.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Prompt for candidate generation and selection.\", kind: \"string\" },\n\t\t\tnum_candidates: { description: \"Number of independent candidates to generate.\", kind: \"number\" },\n\t\t\tshortlist_size: { description: \"Maximum number of candidates in the final shortlist.\", kind: \"number\" },\n\t\t\tuse_judge: { description: \"Whether an independent judge reviews the filtered shortlist.\", kind: \"boolean\" },\n\t\t\tmax_concurrency: { description: \"Maximum simultaneous generator stages.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"goal\",\n\t\tdescription:\n\t\t\t\"Goal Runner workflow with bounded sub-agent orchestration turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the objective text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tobjective: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The objective or delta for this Goal Runner workflow run. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_turns: {\n\t\t\t\tdescription: \"Maximum orchestrator/review turns before Goal Runner stops as needs_human.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Optional branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage after reviewer/reducer approval. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the objective text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation after Goal completes.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"loop-until-done\",\n\t\tdescription:\n\t\t\t\"Repeat evidence-producing work and independent completion evaluation against a durable ledger until done or an inspectable iteration-limit failure.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription: \"Objective whose explicit completion condition controls the bounded loop.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_iterations: {\n\t\t\t\tdescription: \"Maximum work/evaluation iterations before returning an inspectable failed status (1-20).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tprogress_scoring: {\n\t\t\t\tdescription: \"Enable advisory progress scoring after each completed iteration.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t\tprogress_repeats: {\n\t\t\t\tdescription: \"Number of advisory progress-scoring repeats per iteration.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"open-claude-design\",\n\t\tdescription:\n\t\t\t\"AI-powered design workflow: combined discovery/init → design-system/reference research → curated reference discovery → HTML generation → one live review session → rich HTML handoff. The discovery stage asks what to build, the output type, and which references to emulate, then runs impeccable init for PRODUCT.md/DESIGN.md (references take precedence over project context). The user reviews the generated HTML in one live session.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"What to design (for example, a dashboard, page, component, or prototype). The discovery stage refines this into a confirmed brief and asks for the output type and references.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tdiscover_references: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Discover beautiful, current reference designs from notable design websites (Awwwards, recent.design, Dribbble, Monet, Motionsites) and feed them to generation. Set false to skip the network/browser reference pass.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"ralph\",\n\t\tdescription:\n\t\t\t\"Raw prompt → research-prompt-refinement → research → orchestrate → multi-model parallel review loop with bounded iteration and immutable acceptance criteria. When launching follow-up ralph runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the prompt text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The task or goal to research, execute, and refine. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to prompt. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_loops: { description: \"Maximum research/orchestrate/review iterations (default 10).\", kind: \"number\" },\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the prompt text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"tournament\",\n\t\tdescription:\n\t\t\t\"Run independent whole-task attempts through a soft-scored pivot-pairing schedule and return an auditable ranking.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task every competing agent must attempt independently.\", kind: \"string\" },\n\t\t\tnum_attempts: { description: \"Number of independent whole-task attempts (2-8).\", kind: \"number\" },\n\t\t\tmax_concurrency: {\n\t\t\t\tdescription: \"Maximum simultaneously active attempts or pairwise judges (1-8).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tn_evaluations: {\n\t\t\t\tdescription: \"Number of repeated evaluations per criterion and directed pair.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tpivots: {\n\t\t\t\tdescription: \"Number of pivot candidates used for the second comparison phase.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tseed: { description: \"Seed for the deterministic comparison schedule.\", kind: \"number\" },\n\t\t\tcriteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional V1 judge criteria; accepts a markdown rubric, record, string list, or CriterionInput list; omitted uses the default three-criterion rubric.\",\n\t\t\t},\n\t\t\tmodels: { description: \"Optional ordered model ids assigned round-robin to attempt slots.\" },\n\t\t},\n\t},\n];\n\nfunction completeWorkflowToken(argumentText: string, candidates: AutocompleteItem[]): AutocompleteItem[] | null {\n\tconst tokenStart = /\\s$/.test(argumentText)\n\t\t? argumentText.length\n\t\t: Math.max(argumentText.lastIndexOf(\" \"), argumentText.lastIndexOf(\"\\t\")) + 1;\n\tconst head = argumentText.slice(0, tokenStart);\n\tconst token = argumentText.slice(tokenStart);\n\tconst normalizedToken = token.trimEnd();\n\tconst filtered = candidates\n\t\t.filter((candidate) => candidate.value.startsWith(token) && candidate.value.trimEnd() !== normalizedToken)\n\t\t.map((candidate) => ({ ...candidate, value: `${head}${candidate.value}` }));\n\treturn filtered.length > 0 ? filtered : null;\n}\n\nfunction bundledWorkflowNameItems(): AutocompleteItem[] {\n\treturn BUNDLED_WORKFLOW_COMPLETION_METADATA.map((workflow) => ({\n\t\tvalue: `${workflow.name} `,\n\t\tlabel: workflow.name,\n\t\tdescription: `Run workflow: ${workflow.name}`,\n\t}));\n}\n\nexport function getBundledWorkflowArgumentCompletions(argumentPrefix: string): AutocompleteItem[] | null {\n\tconst parts = argumentPrefix.trim().split(/\\s+/).filter(Boolean);\n\tconst subcommand = parts[0] ?? \"\";\n\tconst workflowItems = bundledWorkflowNameItems();\n\tif (!argumentPrefix.includes(\" \")) {\n\t\treturn completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\t}\n\tif (subcommand === \"inputs\") return completeWorkflowToken(argumentPrefix, workflowItems);\n\tif (subcommand === \"pause\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Pause all in-flight runs\" },\n\t\t\t{ value: \"--yes \", label: \"--yes\", description: \"Skip confirmation\" },\n\t\t\t{ value: \"-y \", label: \"-y\", description: \"Skip confirmation\" },\n\t\t]);\n\t}\n\tif (subcommand === \"quit\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Quit and keep all in-flight runs resumable\" },\n\t\t]);\n\t}\n\tif (!subcommand) return completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\n\tconst workflow = BUNDLED_WORKFLOW_COMPLETION_METADATA.find((candidate) => candidate.name === subcommand);\n\tif (!workflow) return null;\n\tconst tokenStart = /\\s$/.test(argumentPrefix)\n\t\t? argumentPrefix.length\n\t\t: Math.max(argumentPrefix.lastIndexOf(\" \"), argumentPrefix.lastIndexOf(\"\\t\")) + 1;\n\tconst token = argumentPrefix.slice(tokenStart);\n\tconst equalsIndex = token.indexOf(\"=\");\n\tif (equalsIndex > 0) {\n\t\tconst inputName = token.slice(0, equalsIndex);\n\t\tconst input = workflow.inputs[inputName];\n\t\tif (input?.kind !== \"boolean\") return null;\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: `${inputName}=true `, label: \"true\", description: inputName },\n\t\t\t{ value: `${inputName}=false `, label: \"false\", description: inputName },\n\t\t]);\n\t}\n\n\treturn completeWorkflowToken(argumentPrefix, [\n\t\t{ value: \"--no-picker \", label: \"--no-picker\", description: \"Skip interactive input picker\" },\n\t\t{ value: \"--help \", label: \"--help\", description: \"Show this workflow's input schema\" },\n\t\t...Object.entries(workflow.inputs).map(([name, input]) => ({\n\t\t\tvalue: `${name}=`,\n\t\t\tlabel: name,\n\t\t\tdescription: input.description,\n\t\t})),\n\t]);\n}\n\nexport const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"settings\", description: \"Open settings menu\" },\n\t{ name: \"model\", description: \"Select model (opens selector UI)\", argumentHint: \"<provider/model>\" },\n\t{ name: \"tree\", description: \"Navigate session tree (switch branches)\" },\n\t{ name: \"thinking\", description: \"Set thinking level\", argumentHint: \"<level>\" },\n\t{ name: \"scoped-models\", description: \"Enable/disable models for ctrl+p cycling\" },\n\t{ name: \"export\", description: \"Export session (HTML default, or specify path: .html/.jsonl)\" },\n\t{ name: \"import\", description: \"Import and resume a session from a JSONL file\" },\n\t{ name: \"share\", description: \"Share session as a secret GitHub gist\" },\n\t{ name: \"copy\", description: \"Copy last agent message to clipboard\" },\n\t{ name: \"name\", description: \"Set session display name\" },\n\t{ name: \"session\", description: \"Show session info and stats\" },\n\t{ name: \"tasks\", description: \"Inspect agents and shells, view output, and manage running tasks\" },\n\t{ name: \"changelog\", description: \"Show changelog entries\" },\n\t{ name: \"hotkeys\", description: \"Show all keyboard shortcuts\" },\n\t{ name: \"fork\", description: \"Create a new fork from a previous user message\" },\n\t{ name: \"clone\", description: \"Duplicate the current session at the current position\" },\n\t{ name: \"trust\", description: \"Save project trust decision for future sessions\" },\n\t{ name: \"login\", description: \"Configure provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"logout\", description: \"Remove provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"new\", description: \"Start a new session\" },\n\t{ name: \"compact\", description: \"Compact older context with verbatim line ranges\" },\n\t{ name: \"resume\", description: \"Resume a different session\" },\n\t{ name: \"reload\", description: \"Reload keybindings, extensions, skills, prompts, and themes\" },\n\t{ name: \"exit\", description: `Exit ${APP_NAME}` },\n\t{ name: \"quit\", description: `Quit ${APP_NAME}` },\n];\n\nexport const BUNDLED_EXTENSION_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"agents\", description: \"Browse available subagents and inspect their configuration\" },\n\t{\n\t\tname: \"workflow\",\n\t\tdescription:\n\t\t\t\"Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|quit|pause|resume|inputs|reload] [args]\",\n\t\tgetArgumentCompletions: getBundledWorkflowArgumentCompletions,\n\t},\n\t{ name: \"mcp\", description: \"Show MCP server status\" },\n\t{ name: \"mcp-auth\", description: \"Authenticate with an MCP server (OAuth)\" },\n\t{ name: \"curator\", description: \"Toggle or configure the search curator workflow\" },\n\t{ name: \"google-account\", description: \"Show the active Google account for Gemini Web\" },\n\t{ name: \"search\", description: \"Browse stored web search results\" },\n\t{ name: \"websearch\", description: \"Open web search curator\" },\n\t{ name: \"intercom\", description: \"Open session intercom overlay\" },\n];\n"]}
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA8BxC,MAAM,0BAA0B,GAAuB;IACtD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;IACzF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC7F,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC3E,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC5G,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;IAC/D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,kCAAkC,EAAE;IAClF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC/E,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;IACpF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;CAC/E,CAAC;AAEF,MAAM,oCAAoC,GAAiC;IAC1E;QACC,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACV,2IAA2I;QAC5I,MAAM,EAAE;YACP,IAAI,EAAE,EAAE,WAAW,EAAE,6DAA6D,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpG,cAAc,EAAE;gBACf,WAAW,EAAE,+DAA+D;gBAC5E,IAAI,EAAE,QAAQ;aACd;YACD,WAAW,EAAE,EAAE,WAAW,EAAE,mDAAmD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjG,QAAQ,EAAE,EAAE,WAAW,EAAE,0EAA0E,EAAE;YACrG,WAAW,EAAE;gBACZ,WAAW,EAAE,oEAAoE;gBACjF,IAAI,EAAE,QAAQ;aACd;YACD,WAAW,EAAE,EAAE,WAAW,EAAE,6DAA6D,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3G;KACD;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACV,yJAAyJ;QAC1J,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxE,UAAU,EAAE,EAAE,WAAW,EAAE,6EAA6E,EAAE;YAC1G,oBAAoB,EAAE;gBACrB,WAAW,EAAE,0EAA0E;gBACvF,IAAI,EAAE,QAAQ;aACd;SACD;KACD;IACD;QACC,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACV,mHAAmH;QACpH,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1F,YAAY,EAAE;gBACb,WAAW,EAAE,iEAAiE;gBAC9E,IAAI,EAAE,QAAQ;aACd;YACD,eAAe,EAAE,EAAE,WAAW,EAAE,uDAAuD,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzG;KACD;IACD;QACC,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACV,2JAA2J;QAC5J,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzF,cAAc,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChG,cAAc,EAAE,EAAE,WAAW,EAAE,sDAAsD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvG,SAAS,EAAE,EAAE,WAAW,EAAE,8DAA8D,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3G,eAAe,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1F;KACD;IACD;QACC,IAAI,EAAE,MAAM;QACZ,WAAW,EACV,sfAAsf;QACvf,MAAM,EAAE;YACP,SAAS,EAAE;gBACV,WAAW,EACV,yLAAyL;gBAC1L,IAAI,EAAE,QAAQ;aACd;YACD,mBAAmB,EAAE;gBACpB,WAAW,EACV,sMAAsM;gBACvM,IAAI,EAAE,QAAQ;aACd;YACD,SAAS,EAAE;gBACV,WAAW,EAAE,4EAA4E;gBACzF,IAAI,EAAE,QAAQ;aACd;YACD,WAAW,EAAE;gBACZ,WAAW,EAAE,yFAAyF;gBACtG,IAAI,EAAE,QAAQ;aACd;YACD,gBAAgB,EAAE;gBACjB,WAAW,EACV,iYAAiY;gBAClY,IAAI,EAAE,QAAQ;aACd;YACD,SAAS,EAAE;gBACV,WAAW,EACV,uVAAuV;gBACxV,IAAI,EAAE,SAAS;aACf;SACD;KACD;IACD;QACC,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACV,qJAAqJ;QACtJ,MAAM,EAAE;YACP,MAAM,EAAE;gBACP,WAAW,EAAE,0EAA0E;gBACvF,IAAI,EAAE,QAAQ;aACd;YACD,cAAc,EAAE;gBACf,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,QAAQ;aACd;YACD,gBAAgB,EAAE;gBACjB,WAAW,EAAE,kEAAkE;gBAC/E,IAAI,EAAE,SAAS;aACf;YACD,gBAAgB,EAAE;gBACjB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;aACd;SACD;KACD;IACD;QACC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACV,gbAAgb;QACjb,MAAM,EAAE;YACP,MAAM,EAAE;gBACP,WAAW,EACV,gLAAgL;gBACjL,IAAI,EAAE,QAAQ;aACd;YACD,mBAAmB,EAAE;gBACpB,WAAW,EACV,uNAAuN;gBACxN,IAAI,EAAE,SAAS;aACf;SACD;KACD;IACD;QACC,IAAI,EAAE,OAAO;QACb,WAAW,EACV,8eAA8e;QAC/e,MAAM,EAAE;YACP,MAAM,EAAE;gBACP,WAAW,EACV,kLAAkL;gBACnL,IAAI,EAAE,QAAQ;aACd;YACD,mBAAmB,EAAE;gBACpB,WAAW,EACV,mMAAmM;gBACpM,IAAI,EAAE,QAAQ;aACd;YACD,SAAS,EAAE,EAAE,WAAW,EAAE,8DAA8D,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1G,WAAW,EAAE;gBACZ,WAAW,EAAE,gFAAgF;gBAC7F,IAAI,EAAE,QAAQ;aACd;YACD,gBAAgB,EAAE;gBACjB,WAAW,EACV,iYAAiY;gBAClY,IAAI,EAAE,QAAQ;aACd;YACD,SAAS,EAAE;gBACV,WAAW,EACV,+RAA+R;gBAChS,IAAI,EAAE,SAAS;aACf;SACD;KACD;IACD;QACC,IAAI,EAAE,YAAY;QAClB,WAAW,EACV,mHAAmH;QACpH,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,WAAW,EAAE,wDAAwD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjG,YAAY,EAAE,EAAE,WAAW,EAAE,kDAAkD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjG,eAAe,EAAE;gBAChB,WAAW,EAAE,kEAAkE;gBAC/E,IAAI,EAAE,QAAQ;aACd;YACD,aAAa,EAAE;gBACd,WAAW,EAAE,iEAAiE;gBAC9E,IAAI,EAAE,QAAQ;aACd;YACD,MAAM,EAAE;gBACP,WAAW,EAAE,kEAAkE;gBAC/E,IAAI,EAAE,QAAQ;aACd;YACD,IAAI,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxF,QAAQ,EAAE;gBACT,WAAW,EACV,sJAAsJ;aACvJ;YACD,MAAM,EAAE,EAAE,WAAW,EAAE,mEAAmE,EAAE;SAC5F;KACD;CACD,CAAC;AAEF,SAAS,qBAAqB,CAAC,YAAoB,EAAE,UAA8B;IAClF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,MAAM;QACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU;SACzB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,eAAe,CAAC;SACzG,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB;IAChC,OAAO,oCAAoC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9D,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG;QAC1B,KAAK,EAAE,QAAQ,CAAC,IAAI;QACpB,WAAW,EAAE,iBAAiB,QAAQ,CAAC,IAAI,EAAE;KAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,cAAsB;IAC3E,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;IACjD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,qBAAqB,CAAC,cAAc,EAAE,CAAC,GAAG,0BAA0B,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzF,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,qBAAqB,CAAC,cAAc,EAAE;YAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE;YAC5E,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACrE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE;SAC/D,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,qBAAqB,CAAC,cAAc,EAAE;YAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;SAC9F,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO,qBAAqB,CAAC,cAAc,EAAE,CAAC,GAAG,0BAA0B,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;IAEjH,MAAM,QAAQ,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACzG,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5C,CAAC,CAAC,cAAc,CAAC,MAAM;QACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,qBAAqB,CAAC,cAAc,EAAE;YAC5C,EAAE,KAAK,EAAE,GAAG,SAAS,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;YACtE,EAAE,KAAK,EAAE,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE;SACxE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,qBAAqB,CAAC,cAAc,EAAE;QAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+BAA+B,EAAE;QAC7F,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACvF,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,GAAG,IAAI,GAAG;YACjB,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,KAAK,CAAC,WAAW;SAC9B,CAAC,CAAC;KACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACzE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACvD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kCAAkC,EAAE,YAAY,EAAE,kBAAkB,EAAE;IACpG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yCAAyC,EAAE;IACxE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE;IAChF,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,0CAA0C,EAAE;IAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;IAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;IAChF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uCAAuC,EAAE;IACvE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACrE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE;IACzD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6DAA6D,EAAE;IAC7F,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kEAAkE,EAAE;IAClG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC5D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gDAAgD,EAAE;IAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACvF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACjF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mCAAmC,EAAE,YAAY,EAAE,YAAY,EAAE;IAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,YAAY,EAAE,YAAY,EAAE;IAC7F,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACnF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;IAC9F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,QAAQ,EAAE,EAAE;IACjD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,QAAQ,EAAE,EAAE;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAuC;IACnF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;IAC7F;QACC,IAAI,EAAE,UAAU;QAChB,WAAW,EACV,uJAAuJ;QACxJ,sBAAsB,EAAE,qCAAqC;KAC7D;IACD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE;IACtD,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC5E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACnF,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;IACnE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,+BAA+B,EAAE;CAClE,CAAC","sourcesContent":["import type { AutocompleteItem } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../config.js\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport type SlashCommandSource = \"extension\" | \"prompt\" | \"skill\";\n\nexport interface SlashCommandInfo {\n\tname: string;\n\tdescription?: string;\n\tsource: SlashCommandSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface BuiltinSlashCommand {\n\tname: string;\n\tdescription: string;\n\targumentHint?: string;\n\tgetArgumentCompletions?: (argumentPrefix: string) => AutocompleteItem[] | null | Promise<AutocompleteItem[] | null>;\n}\n\ntype WorkflowInputCompletionMetadata = {\n\tdescription: string;\n\tkind?: \"boolean\" | \"number\" | \"string\";\n};\n\ntype WorkflowCompletionMetadata = {\n\tname: string;\n\tdescription: string;\n\tinputs: Record<string, WorkflowInputCompletionMetadata>;\n};\n\nconst WORKFLOW_ADMIN_COMPLETIONS: AutocompleteItem[] = [\n\t{ value: \"connect \", label: \"connect\", description: \"Attach to a run (picker if no id)\" },\n\t{ value: \"attach \", label: \"attach\", description: \"Open the in-place attach pane on a node\" },\n\t{ value: \"list \", label: \"list\", description: \"List registered workflows\" },\n\t{ value: \"status \", label: \"status\", description: \"List current-session active and retained terminal runs\" },\n\t{ value: \"pause \", label: \"pause\", description: \"Pause a run\" },\n\t{ value: \"quit \", label: \"quit\", description: \"Quit a run and keep it resumable\" },\n\t{ value: \"resume \", label: \"resume\", description: \"Re-open overlay for a run\" },\n\t{ value: \"inputs \", label: \"inputs\", description: \"Show a workflow's input schema\" },\n\t{ value: \"reload \", label: \"reload\", description: \"Reload workflow resources\" },\n];\n\nconst BUNDLED_WORKFLOW_COMPLETION_METADATA: WorkflowCompletionMetadata[] = [\n\t{\n\t\tname: \"adversarial-verification\",\n\t\tdescription:\n\t\t\t\"Produce a candidate, score independent per-criterion verifier reports, and apply a deterministic mean-and-veto gate with bounded repairs.\",\n\t\tinputs: {\n\t\t\ttask: { description: \"Task whose candidate result must be independently verified.\", kind: \"string\" },\n\t\t\tverifier_count: {\n\t\t\t\tdescription: \"Number of independent verifiers for each criterion per round.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_repairs: { description: \"Maximum candidate repair rounds before rejection.\", kind: \"number\" },\n\t\t\tcriteria: { description: \"Criteria record of name-to-description entries, or criteria.md markdown.\" },\n\t\t\taccept_mean: {\n\t\t\t\tdescription: \"Mean score required for acceptance on the 1–20 verification scale.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\treask_limit: { description: \"Maximum bounded re-ask waves for invalid criterion reports.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"classify-and-act\",\n\t\tdescription:\n\t\t\t\"Classify a task with structured confidence, route deterministically to an isolated category action, and ask for human selection when confidence is low.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to classify and execute.\", kind: \"string\" },\n\t\t\tcategories: { description: \"Ordered action categories available to the classifier and fallback chooser.\" },\n\t\t\tconfidence_threshold: {\n\t\t\t\tdescription: \"Minimum structured confidence required to route without human selection.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"fan-out-and-synthesize\",\n\t\tdescription:\n\t\t\t\"Partition a task, run bounded independent artifact branches, then synthesize all evidence at an explicit barrier.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task to partition, investigate, and synthesize.\", kind: \"string\" },\n\t\t\tmax_branches: {\n\t\t\t\tdescription: \"Maximum number of independent partitions produced and executed.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tmax_concurrency: { description: \"Maximum number of branch agents running concurrently.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"generate-and-filter\",\n\t\tdescription:\n\t\t\t\"Generate more independent candidates than needed, deduplicate and filter them by rubric, optionally judge them, and return a parent-consumable shortlist.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Prompt for candidate generation and selection.\", kind: \"string\" },\n\t\t\tnum_candidates: { description: \"Number of independent candidates to generate.\", kind: \"number\" },\n\t\t\tshortlist_size: { description: \"Maximum number of candidates in the final shortlist.\", kind: \"number\" },\n\t\t\tuse_judge: { description: \"Whether an independent judge reviews the filtered shortlist.\", kind: \"boolean\" },\n\t\t\tmax_concurrency: { description: \"Maximum simultaneous generator stages.\", kind: \"number\" },\n\t\t},\n\t},\n\t{\n\t\tname: \"goal\",\n\t\tdescription:\n\t\t\t\"Goal Runner workflow with bounded sub-agent orchestration turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the objective text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tobjective: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The objective or delta for this Goal Runner workflow run. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_turns: {\n\t\t\t\tdescription: \"Maximum orchestrator/review turns before Goal Runner stops as needs_human.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Optional branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage after reviewer/reducer approval. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the objective text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation after Goal completes.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"loop-until-done\",\n\t\tdescription:\n\t\t\t\"Repeat evidence-producing work and independent completion evaluation against a durable ledger until done or an inspectable iteration-limit failure.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription: \"Objective whose explicit completion condition controls the bounded loop.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_iterations: {\n\t\t\t\tdescription: \"Maximum work/evaluation iterations before returning an inspectable failed status (1-20).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tprogress_scoring: {\n\t\t\t\tdescription: \"Enable advisory progress scoring after each completed iteration.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t\tprogress_repeats: {\n\t\t\t\tdescription: \"Number of advisory progress-scoring repeats per iteration.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"open-claude-design\",\n\t\tdescription:\n\t\t\t\"AI-powered design workflow: combined discovery/init → design-system/reference research → curated reference discovery → HTML generation → one live review session → rich HTML handoff. The discovery stage asks what to build, the output type, and which references to emulate, then runs impeccable init for PRODUCT.md/DESIGN.md (references take precedence over project context). The user reviews the generated HTML in one live session.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"What to design (for example, a dashboard, page, component, or prototype). The discovery stage refines this into a confirmed brief and asks for the output type and references.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tdiscover_references: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Discover beautiful, current reference designs from notable design websites (Awwwards, recent.design, Dribbble, Monet, Motionsites) and feed them to generation. Set false to skip the network/browser reference pass.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"ralph\",\n\t\tdescription:\n\t\t\t\"Raw prompt → research-prompt-refinement → research → orchestrate → multi-model parallel review loop with bounded iteration and immutable acceptance criteria. When launching follow-up ralph runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract. If the task includes submitting a pull request (or MR/review), remove that final action from the prompt text and set create_pr=true instead when preparing the workflow inputs.\",\n\t\tinputs: {\n\t\t\tprompt: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"The task or goal to research, execute, and refine. Do not include PR/MR submission instructions here; strip them from the task text and request them via create_pr=true instead.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tacceptance_criteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Original immutable task contract this run must remain consistent with. Defaults to prompt. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tmax_loops: { description: \"Maximum research/orchestrate/review iterations (default 10).\", kind: \"number\" },\n\t\t\tbase_branch: {\n\t\t\t\tdescription: \"Branch reviewers compare the current code delta against (default origin/main).\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tgit_worktree_dir: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional Git worktree path. Leave at the default unless the user explicitly requested worktree isolation — stages never create git worktrees on their own. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.\",\n\t\t\t\tkind: \"string\",\n\t\t\t},\n\t\t\tcreate_pr: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether to run the final pull-request creation stage. Defaults to false; prompt text alone does not opt in. If the task asks to submit a PR/MR/review, remove that from the prompt text and set this to true — only the final stage then attempts provider-appropriate PR/MR/review creation.\",\n\t\t\t\tkind: \"boolean\",\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tname: \"tournament\",\n\t\tdescription:\n\t\t\t\"Run independent whole-task attempts through a soft-scored pivot-pairing schedule and return an auditable ranking.\",\n\t\tinputs: {\n\t\t\tprompt: { description: \"Task every competing agent must attempt independently.\", kind: \"string\" },\n\t\t\tnum_attempts: { description: \"Number of independent whole-task attempts (2-8).\", kind: \"number\" },\n\t\t\tmax_concurrency: {\n\t\t\t\tdescription: \"Maximum simultaneously active attempts or pairwise judges (1-8).\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tn_evaluations: {\n\t\t\t\tdescription: \"Number of repeated evaluations per criterion and directed pair.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tpivots: {\n\t\t\t\tdescription: \"Number of pivot candidates used for the second comparison phase.\",\n\t\t\t\tkind: \"number\",\n\t\t\t},\n\t\t\tseed: { description: \"Seed for the deterministic comparison schedule.\", kind: \"number\" },\n\t\t\tcriteria: {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Optional V1 judge criteria; accepts a markdown rubric, record, string list, or CriterionInput list; omitted uses the default three-criterion rubric.\",\n\t\t\t},\n\t\t\tmodels: { description: \"Optional ordered model ids assigned round-robin to attempt slots.\" },\n\t\t},\n\t},\n];\n\nfunction completeWorkflowToken(argumentText: string, candidates: AutocompleteItem[]): AutocompleteItem[] | null {\n\tconst tokenStart = /\\s$/.test(argumentText)\n\t\t? argumentText.length\n\t\t: Math.max(argumentText.lastIndexOf(\" \"), argumentText.lastIndexOf(\"\\t\")) + 1;\n\tconst head = argumentText.slice(0, tokenStart);\n\tconst token = argumentText.slice(tokenStart);\n\tconst normalizedToken = token.trimEnd();\n\tconst filtered = candidates\n\t\t.filter((candidate) => candidate.value.startsWith(token) && candidate.value.trimEnd() !== normalizedToken)\n\t\t.map((candidate) => ({ ...candidate, value: `${head}${candidate.value}` }));\n\treturn filtered.length > 0 ? filtered : null;\n}\n\nfunction bundledWorkflowNameItems(): AutocompleteItem[] {\n\treturn BUNDLED_WORKFLOW_COMPLETION_METADATA.map((workflow) => ({\n\t\tvalue: `${workflow.name} `,\n\t\tlabel: workflow.name,\n\t\tdescription: `Run workflow: ${workflow.name}`,\n\t}));\n}\n\nexport function getBundledWorkflowArgumentCompletions(argumentPrefix: string): AutocompleteItem[] | null {\n\tconst parts = argumentPrefix.trim().split(/\\s+/).filter(Boolean);\n\tconst subcommand = parts[0] ?? \"\";\n\tconst workflowItems = bundledWorkflowNameItems();\n\tif (!argumentPrefix.includes(\" \")) {\n\t\treturn completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\t}\n\tif (subcommand === \"inputs\") return completeWorkflowToken(argumentPrefix, workflowItems);\n\tif (subcommand === \"pause\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Pause all in-flight runs\" },\n\t\t\t{ value: \"--yes \", label: \"--yes\", description: \"Skip confirmation\" },\n\t\t\t{ value: \"-y \", label: \"-y\", description: \"Skip confirmation\" },\n\t\t]);\n\t}\n\tif (subcommand === \"quit\") {\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: \"--all \", label: \"--all\", description: \"Quit and keep all in-flight runs resumable\" },\n\t\t]);\n\t}\n\tif (!subcommand) return completeWorkflowToken(argumentPrefix, [...WORKFLOW_ADMIN_COMPLETIONS, ...workflowItems]);\n\n\tconst workflow = BUNDLED_WORKFLOW_COMPLETION_METADATA.find((candidate) => candidate.name === subcommand);\n\tif (!workflow) return null;\n\tconst tokenStart = /\\s$/.test(argumentPrefix)\n\t\t? argumentPrefix.length\n\t\t: Math.max(argumentPrefix.lastIndexOf(\" \"), argumentPrefix.lastIndexOf(\"\\t\")) + 1;\n\tconst token = argumentPrefix.slice(tokenStart);\n\tconst equalsIndex = token.indexOf(\"=\");\n\tif (equalsIndex > 0) {\n\t\tconst inputName = token.slice(0, equalsIndex);\n\t\tconst input = workflow.inputs[inputName];\n\t\tif (input?.kind !== \"boolean\") return null;\n\t\treturn completeWorkflowToken(argumentPrefix, [\n\t\t\t{ value: `${inputName}=true `, label: \"true\", description: inputName },\n\t\t\t{ value: `${inputName}=false `, label: \"false\", description: inputName },\n\t\t]);\n\t}\n\n\treturn completeWorkflowToken(argumentPrefix, [\n\t\t{ value: \"--no-picker \", label: \"--no-picker\", description: \"Skip interactive input picker\" },\n\t\t{ value: \"--help \", label: \"--help\", description: \"Show this workflow's input schema\" },\n\t\t...Object.entries(workflow.inputs).map(([name, input]) => ({\n\t\t\tvalue: `${name}=`,\n\t\t\tlabel: name,\n\t\t\tdescription: input.description,\n\t\t})),\n\t]);\n}\n\nexport const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"settings\", description: \"Open settings menu\" },\n\t{ name: \"model\", description: \"Select model (opens selector UI)\", argumentHint: \"<provider/model>\" },\n\t{ name: \"tree\", description: \"Navigate session tree (switch branches)\" },\n\t{ name: \"thinking\", description: \"Set thinking level\", argumentHint: \"<level>\" },\n\t{ name: \"scoped-models\", description: \"Enable/disable models for ctrl+p cycling\" },\n\t{ name: \"export\", description: \"Export session (HTML default, or specify path: .html/.jsonl)\" },\n\t{ name: \"import\", description: \"Import and resume a session from a JSONL file\" },\n\t{ name: \"share\", description: \"Share session as a secret GitHub gist\" },\n\t{ name: \"copy\", description: \"Copy last agent message to clipboard\" },\n\t{ name: \"name\", description: \"Set session display name\" },\n\t{ name: \"session\", description: \"Show session info and stats\" },\n\t{ name: \"tools\", description: \"Show which tools are active, inactive (and why), or missing\" },\n\t{ name: \"tasks\", description: \"Inspect agents and shells, view output, and manage running tasks\" },\n\t{ name: \"changelog\", description: \"Show changelog entries\" },\n\t{ name: \"hotkeys\", description: \"Show all keyboard shortcuts\" },\n\t{ name: \"fork\", description: \"Create a new fork from a previous user message\" },\n\t{ name: \"clone\", description: \"Duplicate the current session at the current position\" },\n\t{ name: \"trust\", description: \"Save project trust decision for future sessions\" },\n\t{ name: \"login\", description: \"Configure provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"logout\", description: \"Remove provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"new\", description: \"Start a new session\" },\n\t{ name: \"compact\", description: \"Compact older context with verbatim line ranges\" },\n\t{ name: \"resume\", description: \"Resume a different session\" },\n\t{ name: \"reload\", description: \"Reload keybindings, extensions, skills, prompts, and themes\" },\n\t{ name: \"exit\", description: `Exit ${APP_NAME}` },\n\t{ name: \"quit\", description: `Quit ${APP_NAME}` },\n];\n\nexport const BUNDLED_EXTENSION_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"agents\", description: \"Browse available subagents and inspect their configuration\" },\n\t{\n\t\tname: \"workflow\",\n\t\tdescription:\n\t\t\t\"Run or inspect Atomic workflows. Usage: /workflow <name> [key=value…] | /workflow [list|status|connect|attach|quit|pause|resume|inputs|reload] [args]\",\n\t\tgetArgumentCompletions: getBundledWorkflowArgumentCompletions,\n\t},\n\t{ name: \"mcp\", description: \"Show MCP server status\" },\n\t{ name: \"mcp-auth\", description: \"Authenticate with an MCP server (OAuth)\" },\n\t{ name: \"curator\", description: \"Toggle or configure the search curator workflow\" },\n\t{ name: \"google-account\", description: \"Show the active Google account for Gemini Web\" },\n\t{ name: \"search\", description: \"Browse stored web search results\" },\n\t{ name: \"websearch\", description: \"Open web search curator\" },\n\t{ name: \"intercom\", description: \"Open session intercom overlay\" },\n];\n"]}
@@ -9,5 +9,23 @@ interface ToolSelection {
9
9
  }
10
10
  export declare function isRegisteredToolAllowed(selection: ToolSelection, name: string): boolean;
11
11
  export declare function isToolActivatable(selection: ToolSelection, name: string, exposure: string, hasToolSearch: boolean): boolean;
12
+ interface SelectedTools {
13
+ _usesDefaultTools: boolean;
14
+ _appliedDefaultTools: ReadonlySet<string>;
15
+ _allowedToolNames?: ReadonlySet<string>;
16
+ _initialActiveToolNames?: readonly string[];
17
+ }
18
+ /** Tool names the session's selection asked for, whether or not a tool with each name has registered yet. */
19
+ export declare function selectedToolNames(selection: SelectedTools): ReadonlySet<string>;
20
+ /**
21
+ * Default-active tools activate whenever they register. An opt-in tool (`defaultActive: false`)
22
+ * activates only on its first registration, and only when the selection names it, such as
23
+ * `defaultTools: ["+codemode"]` whose extension loads after the session starts. A reload keeps
24
+ * whatever activation the session has given an already registered opt-in tool since.
25
+ */
26
+ export declare function activatesOnRegistration(selection: SelectedTools, name: string, definition: {
27
+ exposure?: string;
28
+ defaultActive?: boolean;
29
+ } | undefined, alreadyRegistered: boolean): boolean;
12
30
  export {};
13
31
  //# sourceMappingURL=tool-selection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-selection.d.ts","sourceRoot":"","sources":["../../src/core/tool-selection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAgB1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED,UAAU,aAAa;IACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBvF;AAED,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,GACpB,OAAO,CAIT"}
1
+ {"version":3,"file":"tool-selection.d.ts","sourceRoot":"","sources":["../../src/core/tool-selection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAgB1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED,UAAU,aAAa;IACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBvF;AAED,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,GACpB,OAAO,CAIT;AAED,UAAU,aAAa;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,6GAA6G;AAC7G,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAG/E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EACtE,iBAAiB,EAAE,OAAO,GACxB,OAAO,CAKT"}
@@ -40,4 +40,24 @@ export function isToolActivatable(selection, name, exposure, hasToolSearch) {
40
40
  return true;
41
41
  return exposure !== "direct" && exposure !== "hidden" && hasToolSearch;
42
42
  }
43
+ /** Tool names the session's selection asked for, whether or not a tool with each name has registered yet. */
44
+ export function selectedToolNames(selection) {
45
+ if (selection._usesDefaultTools)
46
+ return selection._appliedDefaultTools;
47
+ return new Set(selection._allowedToolNames ?? selection._initialActiveToolNames ?? []);
48
+ }
49
+ /**
50
+ * Default-active tools activate whenever they register. An opt-in tool (`defaultActive: false`)
51
+ * activates only on its first registration, and only when the selection names it, such as
52
+ * `defaultTools: ["+codemode"]` whose extension loads after the session starts. A reload keeps
53
+ * whatever activation the session has given an already registered opt-in tool since.
54
+ */
55
+ export function activatesOnRegistration(selection, name, definition, alreadyRegistered) {
56
+ const exposure = definition?.exposure ?? "direct";
57
+ if (exposure !== "direct" && exposure !== "model-only")
58
+ return false;
59
+ if (definition?.defaultActive !== false)
60
+ return true;
61
+ return !alreadyRegistered && selectedToolNames(selection).has(name);
62
+ }
43
63
  //# sourceMappingURL=tool-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-selection.js","sourceRoot":"","sources":["../../src/core/tool-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,UAAU,qBAAqB,CAAC,OAAyB;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;YAE1C,QAAQ,CAAC,IAAI,CACZ,IAAI,MAAM,CACT,IAAI,KAAK;iBACP,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;iBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CACf,CACD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,CACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACxB,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAClG,CAAC;AACH,CAAC;AASD,MAAM,UAAU,uBAAuB,CAAC,SAAwB,EAAE,IAAY;IAC7E,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IACC,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;QAC5C,SAAS,CAAC,aAAa;QACvB,aAAa,CAAC,IAAI,CAAC;QACnB,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC;QAEvC,OAAO,KAAK,CAAC;IACd,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,CACN,CAAC,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI;QACnC,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5E,aAAa,CAAC,IAAI,CAAC,CACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,SAAwB,EACxB,IAAY,EACZ,QAAgB,EAChB,aAAsB;IAEtB,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,aAAa,CAAC;AACxE,CAAC","sourcesContent":["import {\n\tLIST_MCP_RESOURCE_TEMPLATES_TOOL,\n\tLIST_MCP_RESOURCES_TOOL,\n\tREAD_MCP_RESOURCE_TOOL,\n} from \"../extensions/mcp/resources.js\";\nimport type { SubagentChildPolicy } from \"./extensions/types.ts\";\n\nexport function createToolNameMatcher(entries: Iterable<string>): (name: string) => boolean {\n\tconst names = new Set<string>();\n\tconst patterns: RegExp[] = [];\n\tfor (const entry of entries) {\n\t\tif (!entry.includes(\"*\")) names.add(entry);\n\t\telse\n\t\t\tpatterns.push(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t`^${entry\n\t\t\t\t\t\t.split(\"*\")\n\t\t\t\t\t\t.map((part) => part.replace(/[.+?^${}()|[\\]\\\\]/g, \"\\\\$&\"))\n\t\t\t\t\t\t.join(\".*\")}$`,\n\t\t\t\t),\n\t\t\t);\n\t}\n\treturn (name) => names.has(name) || patterns.some((pattern) => pattern.test(name));\n}\n\nexport function isMcpToolName(name: string): boolean {\n\treturn (\n\t\tname.startsWith(\"mcp__\") ||\n\t\t[LIST_MCP_RESOURCES_TOOL, LIST_MCP_RESOURCE_TEMPLATES_TOOL, READ_MCP_RESOURCE_TOOL].includes(name)\n\t);\n}\n\ninterface ToolSelection {\n\t_allowedToolNames?: Set<string>;\n\t_allowedTools?: (name: string) => boolean;\n\t_excludedTools?: (name: string) => boolean;\n\t_subagentPolicy?: SubagentChildPolicy;\n}\n\nexport function isRegisteredToolAllowed(selection: ToolSelection, name: string): boolean {\n\tif (selection._excludedTools?.(name)) return false;\n\tif (\n\t\t(selection._subagentPolicy?.depth ?? 0) >= 1 &&\n\t\tselection._allowedTools &&\n\t\tisMcpToolName(name) &&\n\t\t!selection._allowedToolNames?.has(name)\n\t)\n\t\treturn false;\n\tif (!selection._allowedTools || selection._allowedTools(name)) return true;\n\tif ((selection._subagentPolicy?.depth ?? 0) >= 1) return false;\n\treturn (\n\t\t!!selection._allowedToolNames?.size &&\n\t\t![...selection._allowedToolNames].some((entry) => entry.startsWith(\"mcp__\")) &&\n\t\tisMcpToolName(name)\n\t);\n}\n\nexport function isToolActivatable(\n\tselection: ToolSelection,\n\tname: string,\n\texposure: string,\n\thasToolSearch: boolean,\n): boolean {\n\tif (!selection._allowedTools || selection._allowedTools(name) || !isMcpToolName(name)) return true;\n\tif ((selection._subagentPolicy?.depth ?? 0) >= 1) return true;\n\treturn exposure !== \"direct\" && exposure !== \"hidden\" && hasToolSearch;\n}\n"]}
1
+ {"version":3,"file":"tool-selection.js","sourceRoot":"","sources":["../../src/core/tool-selection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tLIST_MCP_RESOURCE_TEMPLATES_TOOL,\n\tLIST_MCP_RESOURCES_TOOL,\n\tREAD_MCP_RESOURCE_TOOL,\n} from \"../extensions/mcp/resources.js\";\nimport type { SubagentChildPolicy } from \"./extensions/types.ts\";\n\nexport function createToolNameMatcher(entries: Iterable<string>): (name: string) => boolean {\n\tconst names = new Set<string>();\n\tconst patterns: RegExp[] = [];\n\tfor (const entry of entries) {\n\t\tif (!entry.includes(\"*\")) names.add(entry);\n\t\telse\n\t\t\tpatterns.push(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t`^${entry\n\t\t\t\t\t\t.split(\"*\")\n\t\t\t\t\t\t.map((part) => part.replace(/[.+?^${}()|[\\]\\\\]/g, \"\\\\$&\"))\n\t\t\t\t\t\t.join(\".*\")}$`,\n\t\t\t\t),\n\t\t\t);\n\t}\n\treturn (name) => names.has(name) || patterns.some((pattern) => pattern.test(name));\n}\n\nexport function isMcpToolName(name: string): boolean {\n\treturn (\n\t\tname.startsWith(\"mcp__\") ||\n\t\t[LIST_MCP_RESOURCES_TOOL, LIST_MCP_RESOURCE_TEMPLATES_TOOL, READ_MCP_RESOURCE_TOOL].includes(name)\n\t);\n}\n\ninterface ToolSelection {\n\t_allowedToolNames?: Set<string>;\n\t_allowedTools?: (name: string) => boolean;\n\t_excludedTools?: (name: string) => boolean;\n\t_subagentPolicy?: SubagentChildPolicy;\n}\n\nexport function isRegisteredToolAllowed(selection: ToolSelection, name: string): boolean {\n\tif (selection._excludedTools?.(name)) return false;\n\tif (\n\t\t(selection._subagentPolicy?.depth ?? 0) >= 1 &&\n\t\tselection._allowedTools &&\n\t\tisMcpToolName(name) &&\n\t\t!selection._allowedToolNames?.has(name)\n\t)\n\t\treturn false;\n\tif (!selection._allowedTools || selection._allowedTools(name)) return true;\n\tif ((selection._subagentPolicy?.depth ?? 0) >= 1) return false;\n\treturn (\n\t\t!!selection._allowedToolNames?.size &&\n\t\t![...selection._allowedToolNames].some((entry) => entry.startsWith(\"mcp__\")) &&\n\t\tisMcpToolName(name)\n\t);\n}\n\nexport function isToolActivatable(\n\tselection: ToolSelection,\n\tname: string,\n\texposure: string,\n\thasToolSearch: boolean,\n): boolean {\n\tif (!selection._allowedTools || selection._allowedTools(name) || !isMcpToolName(name)) return true;\n\tif ((selection._subagentPolicy?.depth ?? 0) >= 1) return true;\n\treturn exposure !== \"direct\" && exposure !== \"hidden\" && hasToolSearch;\n}\n\ninterface SelectedTools {\n\t_usesDefaultTools: boolean;\n\t_appliedDefaultTools: ReadonlySet<string>;\n\t_allowedToolNames?: ReadonlySet<string>;\n\t_initialActiveToolNames?: readonly string[];\n}\n\n/** Tool names the session's selection asked for, whether or not a tool with each name has registered yet. */\nexport function selectedToolNames(selection: SelectedTools): ReadonlySet<string> {\n\tif (selection._usesDefaultTools) return selection._appliedDefaultTools;\n\treturn new Set(selection._allowedToolNames ?? selection._initialActiveToolNames ?? []);\n}\n\n/**\n * Default-active tools activate whenever they register. An opt-in tool (`defaultActive: false`)\n * activates only on its first registration, and only when the selection names it, such as\n * `defaultTools: [\"+codemode\"]` whose extension loads after the session starts. A reload keeps\n * whatever activation the session has given an already registered opt-in tool since.\n */\nexport function activatesOnRegistration(\n\tselection: SelectedTools,\n\tname: string,\n\tdefinition: { exposure?: string; defaultActive?: boolean } | undefined,\n\talreadyRegistered: boolean,\n): boolean {\n\tconst exposure = definition?.exposure ?? \"direct\";\n\tif (exposure !== \"direct\" && exposure !== \"model-only\") return false;\n\tif (definition?.defaultActive !== false) return true;\n\treturn !alreadyRegistered && selectedToolNames(selection).has(name);\n}\n"]}