@astralyn/pi 1.4.6 → 1.4.8

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 (253) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/bundle/chunks/{chunk-EYKC6ESU.js → chunk-5VIOGR76.js} +1 -1
  3. package/dist/bundle/chunks/{chunk-KDO6L76C.js → chunk-FODCTZXW.js} +4 -4
  4. package/dist/bundle/chunks/{chunk-RBTJBQWX.js → chunk-I2COK45I.js} +136 -137
  5. package/dist/bundle/chunks/{chunk-AXFWZIHH.js → chunk-MG5XDTXV.js} +1 -1
  6. package/dist/bundle/chunks/{chunk-ALHAFUHP.js → chunk-PU2IWWXV.js} +1 -1
  7. package/dist/bundle/chunks/{chunk-5M3YJ54Z.js → chunk-RO2VH6UZ.js} +1 -1
  8. package/dist/bundle/chunks/{cli-FH77R7JR.js → cli-MEL7SGJD.js} +1 -1
  9. package/dist/bundle/chunks/{execute-5ZQUS52M.js → execute-4CWRNHPO.js} +1 -1
  10. package/dist/bundle/chunks/{runtime-R5CMHJ5P.js → runtime-R3X67XMR.js} +1 -1
  11. package/dist/bundle/chunks/{virtual-modules-KCQU7LOC.js → virtual-modules-BBLD7YLS.js} +1 -1
  12. package/dist/bundle/cli.js +1 -1
  13. package/dist/bundle/index.js +1 -1
  14. package/dist/bundle/rpc-entry.js +1 -1
  15. package/dist/core/agent-session.d.ts +0 -3
  16. package/dist/core/agent-session.d.ts.map +1 -1
  17. package/dist/core/agent-session.js +0 -4
  18. package/dist/core/agent-session.js.map +1 -1
  19. package/dist/core/extensions/index.d.ts +1 -1
  20. package/dist/core/extensions/index.d.ts.map +1 -1
  21. package/dist/core/extensions/index.js.map +1 -1
  22. package/dist/core/package-manager.d.ts +3 -1
  23. package/dist/core/package-manager.d.ts.map +1 -1
  24. package/dist/core/package-manager.js +10 -0
  25. package/dist/core/package-manager.js.map +1 -1
  26. package/dist/core/resource-loader.d.ts +2 -0
  27. package/dist/core/resource-loader.d.ts.map +1 -1
  28. package/dist/core/resource-loader.js +17 -4
  29. package/dist/core/resource-loader.js.map +1 -1
  30. package/dist/core/settings-manager.d.ts +4 -2
  31. package/dist/core/settings-manager.d.ts.map +1 -1
  32. package/dist/core/settings-manager.js +11 -0
  33. package/dist/core/settings-manager.js.map +1 -1
  34. package/dist/core/settings-schema.d.ts +7 -0
  35. package/dist/core/settings-schema.d.ts.map +1 -1
  36. package/dist/core/settings-schema.js +6 -0
  37. package/dist/core/settings-schema.js.map +1 -1
  38. package/dist/core/skill-invocation.d.ts +46 -0
  39. package/dist/core/skill-invocation.d.ts.map +1 -0
  40. package/dist/core/skill-invocation.js +128 -0
  41. package/dist/core/skill-invocation.js.map +1 -0
  42. package/dist/core/skills.d.ts +10 -0
  43. package/dist/core/skills.d.ts.map +1 -1
  44. package/dist/core/skills.js +23 -0
  45. package/dist/core/skills.js.map +1 -1
  46. package/dist/core/tasks/delivery.d.ts +11 -4
  47. package/dist/core/tasks/delivery.d.ts.map +1 -1
  48. package/dist/core/tasks/delivery.js +9 -9
  49. package/dist/core/tasks/delivery.js.map +1 -1
  50. package/dist/core/tasks/execution.d.ts +10 -3
  51. package/dist/core/tasks/execution.d.ts.map +1 -1
  52. package/dist/core/tasks/execution.js +72 -52
  53. package/dist/core/tasks/execution.js.map +1 -1
  54. package/dist/core/tasks/format.d.ts +0 -2
  55. package/dist/core/tasks/format.d.ts.map +1 -1
  56. package/dist/core/tasks/format.js +1 -16
  57. package/dist/core/tasks/format.js.map +1 -1
  58. package/dist/core/tasks/limits.d.ts +12 -1
  59. package/dist/core/tasks/limits.d.ts.map +1 -1
  60. package/dist/core/tasks/limits.js +20 -1
  61. package/dist/core/tasks/limits.js.map +1 -1
  62. package/dist/core/tasks/output.d.ts +6 -12
  63. package/dist/core/tasks/output.d.ts.map +1 -1
  64. package/dist/core/tasks/output.js +35 -32
  65. package/dist/core/tasks/output.js.map +1 -1
  66. package/dist/core/tasks/record.d.ts +45 -0
  67. package/dist/core/tasks/record.d.ts.map +1 -0
  68. package/dist/core/tasks/record.js +80 -0
  69. package/dist/core/tasks/record.js.map +1 -0
  70. package/dist/core/tasks/runtime.d.ts +14 -14
  71. package/dist/core/tasks/runtime.d.ts.map +1 -1
  72. package/dist/core/tasks/runtime.js +111 -93
  73. package/dist/core/tasks/runtime.js.map +1 -1
  74. package/dist/core/tasks/session.d.ts +0 -1
  75. package/dist/core/tasks/session.d.ts.map +1 -1
  76. package/dist/core/tasks/session.js +7 -8
  77. package/dist/core/tasks/session.js.map +1 -1
  78. package/dist/core/tasks/store.d.ts +18 -25
  79. package/dist/core/tasks/store.d.ts.map +1 -1
  80. package/dist/core/tasks/store.js +42 -40
  81. package/dist/core/tasks/store.js.map +1 -1
  82. package/dist/core/tasks/types.d.ts +96 -17
  83. package/dist/core/tasks/types.d.ts.map +1 -1
  84. package/dist/core/tasks/types.js.map +1 -1
  85. package/dist/core/tools/shell-execution.d.ts +8 -7
  86. package/dist/core/tools/shell-execution.d.ts.map +1 -1
  87. package/dist/core/tools/shell-execution.js +18 -26
  88. package/dist/core/tools/shell-execution.js.map +1 -1
  89. package/dist/core/tools/shell-tool.d.ts.map +1 -1
  90. package/dist/core/tools/shell-tool.js +31 -29
  91. package/dist/core/tools/shell-tool.js.map +1 -1
  92. package/dist/core/usage-totals.d.ts +3 -0
  93. package/dist/core/usage-totals.d.ts.map +1 -1
  94. package/dist/core/usage-totals.js +15 -0
  95. package/dist/core/usage-totals.js.map +1 -1
  96. package/dist/extensions/agent/progress.d.ts.map +1 -1
  97. package/dist/extensions/agent/progress.js +1 -11
  98. package/dist/extensions/agent/progress.js.map +1 -1
  99. package/dist/extensions/agent/settings-host.d.ts +33 -0
  100. package/dist/extensions/agent/settings-host.d.ts.map +1 -0
  101. package/dist/extensions/agent/settings-host.js +75 -0
  102. package/dist/extensions/agent/settings-host.js.map +1 -0
  103. package/dist/extensions/agent/settings.d.ts.map +1 -1
  104. package/dist/extensions/agent/settings.js +18 -7
  105. package/dist/extensions/agent/settings.js.map +1 -1
  106. package/dist/extensions/agent/tool.d.ts.map +1 -1
  107. package/dist/extensions/agent/tool.js +9 -5
  108. package/dist/extensions/agent/tool.js.map +1 -1
  109. package/dist/extensions/agent/worker.d.ts.map +1 -1
  110. package/dist/extensions/agent/worker.js +3 -5
  111. package/dist/extensions/agent/worker.js.map +1 -1
  112. package/dist/extensions/btw/agent.d.ts +1 -1
  113. package/dist/extensions/btw/agent.d.ts.map +1 -1
  114. package/dist/extensions/btw/agent.js +3 -20
  115. package/dist/extensions/btw/agent.js.map +1 -1
  116. package/dist/extensions/cached-compaction/index.d.ts.map +1 -1
  117. package/dist/extensions/cached-compaction/index.js +3 -22
  118. package/dist/extensions/cached-compaction/index.js.map +1 -1
  119. package/dist/extensions/cached-compaction/render.d.ts +1 -0
  120. package/dist/extensions/cached-compaction/render.d.ts.map +1 -1
  121. package/dist/extensions/cached-compaction/render.js +42 -14
  122. package/dist/extensions/cached-compaction/render.js.map +1 -1
  123. package/dist/extensions/deepwiki/client.d.ts.map +1 -1
  124. package/dist/extensions/deepwiki/client.js +6 -78
  125. package/dist/extensions/deepwiki/client.js.map +1 -1
  126. package/dist/extensions/deepwiki/transport.d.ts +3 -0
  127. package/dist/extensions/deepwiki/transport.d.ts.map +1 -0
  128. package/dist/extensions/deepwiki/transport.js +96 -0
  129. package/dist/extensions/deepwiki/transport.js.map +1 -0
  130. package/dist/extensions/provider/ui/builtin-data.d.ts +3 -3
  131. package/dist/extensions/provider/ui/builtin-data.d.ts.map +1 -1
  132. package/dist/extensions/provider/ui/builtin-data.js.map +1 -1
  133. package/dist/extensions/provider/ui/compat.d.ts +3 -3
  134. package/dist/extensions/provider/ui/compat.d.ts.map +1 -1
  135. package/dist/extensions/provider/ui/compat.js.map +1 -1
  136. package/dist/extensions/provider/ui/controls.d.ts +2 -2
  137. package/dist/extensions/provider/ui/controls.d.ts.map +1 -1
  138. package/dist/extensions/provider/ui/controls.js.map +1 -1
  139. package/dist/extensions/provider/ui/dialogs.d.ts +3 -3
  140. package/dist/extensions/provider/ui/dialogs.d.ts.map +1 -1
  141. package/dist/extensions/provider/ui/dialogs.js.map +1 -1
  142. package/dist/extensions/provider/ui/dictionary.d.ts +2 -2
  143. package/dist/extensions/provider/ui/dictionary.d.ts.map +1 -1
  144. package/dist/extensions/provider/ui/dictionary.js.map +1 -1
  145. package/dist/extensions/provider/ui/editor.d.ts.map +1 -1
  146. package/dist/extensions/provider/ui/editor.js +1 -3
  147. package/dist/extensions/provider/ui/editor.js.map +1 -1
  148. package/dist/extensions/provider/ui/fetch-models.d.ts +2 -2
  149. package/dist/extensions/provider/ui/fetch-models.d.ts.map +1 -1
  150. package/dist/extensions/provider/ui/fetch-models.js.map +1 -1
  151. package/dist/extensions/provider/ui/model-fields.d.ts +2 -2
  152. package/dist/extensions/provider/ui/model-fields.d.ts.map +1 -1
  153. package/dist/extensions/provider/ui/model-fields.js.map +1 -1
  154. package/dist/extensions/provider/ui/model-options.d.ts +6 -6
  155. package/dist/extensions/provider/ui/model-options.d.ts.map +1 -1
  156. package/dist/extensions/provider/ui/model-options.js.map +1 -1
  157. package/dist/extensions/provider/ui/pane.d.ts +21 -12
  158. package/dist/extensions/provider/ui/pane.d.ts.map +1 -1
  159. package/dist/extensions/provider/ui/pane.js.map +1 -1
  160. package/dist/extensions/provider/ui/provider-fields.d.ts +3 -3
  161. package/dist/extensions/provider/ui/provider-fields.d.ts.map +1 -1
  162. package/dist/extensions/provider/ui/provider-fields.js.map +1 -1
  163. package/dist/extensions/provider/ui/thinking-map.d.ts +2 -2
  164. package/dist/extensions/provider/ui/thinking-map.d.ts.map +1 -1
  165. package/dist/extensions/provider/ui/thinking-map.js.map +1 -1
  166. package/dist/extensions/run-summary/format.js +1 -1
  167. package/dist/extensions/run-summary/format.js.map +1 -1
  168. package/dist/extensions/statusline/usage.d.ts.map +1 -1
  169. package/dist/extensions/statusline/usage.js +2 -6
  170. package/dist/extensions/statusline/usage.js.map +1 -1
  171. package/dist/extensions/tasks/tool/actions.d.ts +1 -1
  172. package/dist/extensions/tasks/tool/actions.d.ts.map +1 -1
  173. package/dist/extensions/tasks/tool/actions.js +49 -106
  174. package/dist/extensions/tasks/tool/actions.js.map +1 -1
  175. package/dist/extensions/tasks/tool/constants.d.ts +1 -6
  176. package/dist/extensions/tasks/tool/constants.d.ts.map +1 -1
  177. package/dist/extensions/tasks/tool/constants.js +1 -6
  178. package/dist/extensions/tasks/tool/constants.js.map +1 -1
  179. package/dist/extensions/tasks/tool/schema.d.ts +0 -3
  180. package/dist/extensions/tasks/tool/schema.d.ts.map +1 -1
  181. package/dist/extensions/tasks/tool/schema.js +4 -13
  182. package/dist/extensions/tasks/tool/schema.js.map +1 -1
  183. package/dist/extensions/tasks/tool.d.ts.map +1 -1
  184. package/dist/extensions/tasks/tool.js +2 -2
  185. package/dist/extensions/tasks/tool.js.map +1 -1
  186. package/dist/extensions/tasks/ui/completion-render.d.ts.map +1 -1
  187. package/dist/extensions/tasks/ui/completion-render.js +31 -33
  188. package/dist/extensions/tasks/ui/completion-render.js.map +1 -1
  189. package/dist/extensions/tasks/ui/layout.d.ts +7 -7
  190. package/dist/extensions/tasks/ui/layout.d.ts.map +1 -1
  191. package/dist/extensions/tasks/ui/layout.js +17 -19
  192. package/dist/extensions/tasks/ui/layout.js.map +1 -1
  193. package/dist/extensions/tasks/ui/list.d.ts.map +1 -1
  194. package/dist/extensions/tasks/ui/list.js +2 -3
  195. package/dist/extensions/tasks/ui/list.js.map +1 -1
  196. package/dist/extensions/tasks/ui/manager.d.ts +16 -7
  197. package/dist/extensions/tasks/ui/manager.d.ts.map +1 -1
  198. package/dist/extensions/tasks/ui/manager.js +163 -131
  199. package/dist/extensions/tasks/ui/manager.js.map +1 -1
  200. package/dist/extensions/tasks/ui/model.d.ts +25 -0
  201. package/dist/extensions/tasks/ui/model.d.ts.map +1 -1
  202. package/dist/extensions/tasks/ui/model.js +4 -0
  203. package/dist/extensions/tasks/ui/model.js.map +1 -1
  204. package/dist/extensions/tasks/ui/render.d.ts +1 -1
  205. package/dist/extensions/tasks/ui/render.d.ts.map +1 -1
  206. package/dist/extensions/tasks/ui/render.js +11 -7
  207. package/dist/extensions/tasks/ui/render.js.map +1 -1
  208. package/dist/extensions/tasks/ui/status.d.ts +15 -0
  209. package/dist/extensions/tasks/ui/status.d.ts.map +1 -0
  210. package/dist/extensions/tasks/ui/status.js +16 -0
  211. package/dist/extensions/tasks/ui/status.js.map +1 -0
  212. package/dist/index.d.ts +1 -1
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js.map +1 -1
  215. package/dist/modes/interactive/components/config-selector.d.ts +17 -2
  216. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  217. package/dist/modes/interactive/components/config-selector.js +199 -18
  218. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  219. package/dist/modes/interactive/components/status-marker.d.ts +2 -1
  220. package/dist/modes/interactive/components/status-marker.d.ts.map +1 -1
  221. package/dist/modes/interactive/components/status-marker.js +0 -1
  222. package/dist/modes/interactive/components/status-marker.js.map +1 -1
  223. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  224. package/dist/modes/interactive/interactive-mode.js +7 -1
  225. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  226. package/dist/utils/duration.d.ts +3 -0
  227. package/dist/utils/duration.d.ts.map +1 -0
  228. package/dist/utils/duration.js +17 -0
  229. package/dist/utils/duration.js.map +1 -0
  230. package/dist/utils/number.d.ts +3 -0
  231. package/dist/utils/number.d.ts.map +1 -0
  232. package/dist/utils/number.js +5 -0
  233. package/dist/utils/number.js.map +1 -0
  234. package/docs/bundled/extensions/agent.md +3 -3
  235. package/docs/bundled/extensions/cached-compaction.md +13 -4
  236. package/docs/bundled/extensions/deepwiki.md +3 -1
  237. package/docs/extensions.md +5 -5
  238. package/docs/packages.md +5 -3
  239. package/docs/sdk.md +1 -1
  240. package/docs/session-format.md +1 -1
  241. package/docs/settings.md +11 -0
  242. package/docs/skills.md +23 -0
  243. package/npm-shrinkwrap.json +2 -2
  244. package/package.json +1 -1
  245. package/schemas/settings.schema.json +36 -0
  246. package/dist/extensions/deepwiki/http.d.ts +0 -13
  247. package/dist/extensions/deepwiki/http.d.ts.map +0 -1
  248. package/dist/extensions/deepwiki/http.js +0 -88
  249. package/dist/extensions/deepwiki/http.js.map +0 -1
  250. package/dist/extensions/tasks/ui/task-view.d.ts +0 -8
  251. package/dist/extensions/tasks/ui/task-view.d.ts.map +0 -1
  252. package/dist/extensions/tasks/ui/task-view.js +0 -13
  253. package/dist/extensions/tasks/ui/task-view.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/config-selector.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * TUI component for managing package resources (enable/disable)\n */\n\nimport { homedir } from \"node:os\";\nimport { basename, dirname, join, relative } from \"node:path\";\nimport {\n\ttype Component,\n\tContainer,\n\ttype Focusable,\n\tgetKeybindings,\n\tInput,\n\tmatchesKey,\n\tSpacer,\n\ttruncateToWidth,\n\tvisibleWidth,\n} from \"@earendil-works/pi-tui\";\nimport { CONFIG_DIR_NAME } from \"../../../config.ts\";\nimport type { PathMetadata, ResolvedPaths, ResolvedResource } from \"../../../core/package-manager.ts\";\nimport type { PackageSource, SettingsManager } from \"../../../core/settings-manager.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"../../../core/source-info.ts\";\nimport { canonicalizePath, isLocalPath, resolvePath } from \"../../../utils/paths.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\nimport { keyHint, rawKeyHint } from \"./keybinding-hints.ts\";\n\ntype ResourceType = \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\ntype ConfigWriteScope = \"global\" | \"project\";\ntype SettingsScope = \"user\" | \"project\";\ntype ProjectOverrideState = \"inherit\" | \"load\" | \"unload\";\nexport type ScopedResolvedPaths = Record<ConfigWriteScope, ResolvedPaths>;\n\nconst RESOURCE_TYPES = [\"extensions\", \"skills\", \"prompts\", \"themes\"] as const satisfies readonly ResourceType[];\n\nconst RESOURCE_TYPE_LABELS: Record<ResourceType, string> = {\n\textensions: \"Extensions\",\n\tskills: \"Skills\",\n\tprompts: \"Prompts\",\n\tthemes: \"Themes\",\n};\n\ninterface ResourceItem {\n\tpath: string;\n\tenabled: boolean;\n\tmetadata: PathMetadata;\n\tresourceType: ResourceType;\n\tdisplayName: string;\n\tgroupKey: string;\n\tsubgroupKey: string;\n}\n\ninterface ResourceSubgroup {\n\ttype: ResourceType;\n\tlabel: string;\n\titems: ResourceItem[];\n}\n\ninterface ResourceGroup {\n\tkey: string;\n\tlabel: string;\n\tscope: \"user\" | \"project\" | \"temporary\";\n\torigin: \"package\" | \"top-level\";\n\tsource: string;\n\tsubgroups: ResourceSubgroup[];\n}\n\nfunction formatBaseDir(baseDir: string): string {\n\tconst homeDir = homedir();\n\tlet displayPath: string;\n\n\tif (baseDir === homeDir) {\n\t\tdisplayPath = \"~\";\n\t} else if (baseDir.startsWith(homeDir)) {\n\t\t// Replace home prefix with ~, normalize separators for display\n\t\tconst rest = baseDir.slice(homeDir.length);\n\t\tdisplayPath = `~${rest.replace(/\\\\/g, \"/\")}`;\n\t} else {\n\t\tdisplayPath = baseDir.replace(/\\\\/g, \"/\");\n\t}\n\n\treturn displayPath.endsWith(\"/\") ? displayPath : `${displayPath}/`;\n}\n\nfunction getGroupLabel(metadata: PathMetadata, agentDir: string): string {\n\tif (metadata.origin === \"package\") {\n\t\treturn `${metadata.source} (${metadata.scope})`;\n\t}\n\tif (metadata.source === \"builtin\") {\n\t\treturn metadata.scope === \"user\" ? \"Built-in\" : \"Built-in (project override)\";\n\t}\n\t// Top-level resources\n\tif (metadata.source === \"auto\") {\n\t\tif (metadata.baseDir) {\n\t\t\treturn metadata.scope === \"user\"\n\t\t\t\t? `User (${formatBaseDir(metadata.baseDir)})`\n\t\t\t\t: `Project (${formatBaseDir(metadata.baseDir)})`;\n\t\t}\n\t\treturn metadata.scope === \"user\" ? `User (${formatBaseDir(agentDir)})` : `Project (${CONFIG_DIR_NAME}/)`;\n\t}\n\treturn metadata.scope === \"user\" ? \"User settings\" : \"Project settings\";\n}\n\nfunction buildGroups(resolved: ResolvedPaths, agentDir: string): ResourceGroup[] {\n\tconst groupMap = new Map<string, ResourceGroup>();\n\n\tconst addToGroup = (resources: ResolvedResource[], resourceType: ResourceType) => {\n\t\tfor (const res of resources) {\n\t\t\tconst { path, enabled, metadata } = res;\n\t\t\tconst groupKey = `${metadata.origin}:${metadata.scope}:${metadata.source}:${metadata.baseDir ?? \"\"}`;\n\n\t\t\tif (!groupMap.has(groupKey)) {\n\t\t\t\tgroupMap.set(groupKey, {\n\t\t\t\t\tkey: groupKey,\n\t\t\t\t\tlabel: getGroupLabel(metadata, agentDir),\n\t\t\t\t\tscope: metadata.scope,\n\t\t\t\t\torigin: metadata.origin,\n\t\t\t\t\tsource: metadata.source,\n\t\t\t\t\tsubgroups: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst group = groupMap.get(groupKey)!;\n\t\t\tconst subgroupKey = `${groupKey}:${resourceType}`;\n\n\t\t\tlet subgroup = group.subgroups.find((sg) => sg.type === resourceType);\n\t\t\tif (!subgroup) {\n\t\t\t\tsubgroup = {\n\t\t\t\t\ttype: resourceType,\n\t\t\t\t\tlabel: RESOURCE_TYPE_LABELS[resourceType],\n\t\t\t\t\titems: [],\n\t\t\t\t};\n\t\t\t\tgroup.subgroups.push(subgroup);\n\t\t\t}\n\n\t\t\tconst fileName = basename(path);\n\t\t\tconst parentFolder = basename(dirname(path));\n\t\t\tlet displayName: string;\n\t\t\tif (metadata.source === \"builtin\") {\n\t\t\t\tdisplayName = path.slice(BUILTIN_PATH_PREFIX.length);\n\t\t\t} else if (resourceType === \"extensions\" && parentFolder !== \"extensions\") {\n\t\t\t\tdisplayName = `${parentFolder}/${fileName}`;\n\t\t\t} else if (resourceType === \"skills\" && fileName === \"SKILL.md\") {\n\t\t\t\tdisplayName = parentFolder;\n\t\t\t} else {\n\t\t\t\tdisplayName = fileName;\n\t\t\t}\n\t\t\tsubgroup.items.push({\n\t\t\t\tpath,\n\t\t\t\tenabled,\n\t\t\t\tmetadata,\n\t\t\t\tresourceType,\n\t\t\t\tdisplayName,\n\t\t\t\tgroupKey,\n\t\t\t\tsubgroupKey,\n\t\t\t});\n\t\t}\n\t};\n\n\taddToGroup(resolved.extensions, \"extensions\");\n\taddToGroup(resolved.skills, \"skills\");\n\taddToGroup(resolved.prompts, \"prompts\");\n\taddToGroup(resolved.themes, \"themes\");\n\n\t// Sort groups: packages first, then top-level; user before project\n\tconst groups = Array.from(groupMap.values());\n\tgroups.sort((a, b) => {\n\t\tif (a.origin !== b.origin) {\n\t\t\treturn a.origin === \"package\" ? -1 : 1;\n\t\t}\n\t\tif (a.scope !== b.scope) {\n\t\t\treturn a.scope === \"user\" ? -1 : 1;\n\t\t}\n\t\treturn a.source.localeCompare(b.source);\n\t});\n\n\t// Sort subgroups within each group by type order, and items by name\n\tconst typeOrder: Record<ResourceType, number> = { extensions: 0, skills: 1, prompts: 2, themes: 3 };\n\tfor (const group of groups) {\n\t\tgroup.subgroups.sort((a, b) => typeOrder[a.type] - typeOrder[b.type]);\n\t\tfor (const subgroup of group.subgroups) {\n\t\t\tsubgroup.items.sort((a, b) => a.displayName.localeCompare(b.displayName));\n\t\t}\n\t}\n\n\treturn groups;\n}\n\ntype FlatEntry =\n\t| { type: \"group\"; group: ResourceGroup }\n\t| { type: \"subgroup\"; subgroup: ResourceSubgroup; group: ResourceGroup }\n\t| { type: \"item\"; item: ResourceItem };\n\nclass ConfigSelectorHeader implements Component {\n\tprivate writeScope: ConfigWriteScope;\n\tprivate projectModeAvailable: boolean;\n\n\tconstructor(writeScope: ConfigWriteScope, projectModeAvailable: boolean) {\n\t\tthis.writeScope = writeScope;\n\t\tthis.projectModeAvailable = projectModeAvailable;\n\t}\n\n\tsetWriteScope(writeScope: ConfigWriteScope): void {\n\t\tthis.writeScope = writeScope;\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst title = theme.bold(this.writeScope === \"project\" ? \"Project Local Resources\" : \"Global Resources\");\n\t\tconst sep = theme.fg(\"muted\", \" · \");\n\t\tconst switchHint = this.projectModeAvailable ? keyHint(\"tui.input.tab\", \"switch mode\") + sep : \"\";\n\t\tconst actionHint =\n\t\t\tthis.writeScope === \"project\" ? rawKeyHint(\"space\", \"cycle inherit/+/-\") : rawKeyHint(\"space\", \"toggle\");\n\t\tconst hint = switchHint + actionHint + sep + rawKeyHint(\"esc\", \"close\");\n\t\tconst spacing = Math.max(1, width - visibleWidth(title) - visibleWidth(hint));\n\t\tconst scopeHint =\n\t\t\tthis.writeScope === \"project\"\n\t\t\t\t? theme.fg(\"muted\", `${CONFIG_DIR_NAME}/settings.json · inherited global resources are dimmed`)\n\t\t\t\t: theme.fg(\"muted\", `~/${CONFIG_DIR_NAME}/agent/settings.json`);\n\n\t\treturn [\n\t\t\ttruncateToWidth(`${title}${\" \".repeat(spacing)}${hint}`, width, \"\"),\n\t\t\ttruncateToWidth(scopeHint, width, \"\"),\n\t\t];\n\t}\n}\n\nclass ResourceList implements Component, Focusable {\n\tprivate groupsByScope: Record<ConfigWriteScope, ResourceGroup[]>;\n\tprivate flatItems: FlatEntry[] = [];\n\tprivate filteredItems: FlatEntry[] = [];\n\tprivate selectedIndex = 0;\n\tprivate searchInput: Input;\n\tprivate maxVisible: number;\n\tprivate settingsManager: SettingsManager;\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate writeScope: ConfigWriteScope;\n\tprivate inheritedEnabledByKey: Map<string, boolean>;\n\n\tpublic onCancel?: () => void;\n\tpublic onExit?: () => void;\n\tpublic onToggle?: (item: ResourceItem, newEnabled: boolean) => void;\n\tpublic onSwitchMode?: () => void;\n\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.searchInput.focused = value;\n\t}\n\n\tconstructor(\n\t\tgroupsByScope: Record<ConfigWriteScope, ResourceGroup[]>,\n\t\tsettingsManager: SettingsManager,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tterminalHeight?: number,\n\t\twriteScope: ConfigWriteScope = \"global\",\n\t) {\n\t\tthis.groupsByScope = groupsByScope;\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.cwd = cwd;\n\t\tthis.agentDir = agentDir;\n\t\tthis.writeScope = writeScope;\n\t\tthis.inheritedEnabledByKey = this.buildInheritedEnabledMap(groupsByScope.global);\n\t\tthis.searchInput = new Input();\n\t\t// 8 lines of chrome: top spacer + top border + spacer + header (2 lines) + spacer + bottom spacer + bottom border\n\t\tconst chrome = 8;\n\t\tthis.maxVisible = Math.max(5, (terminalHeight ?? 24) - chrome);\n\t\tthis.buildFlatList();\n\t\tthis.filteredItems = [...this.flatItems];\n\t}\n\n\tsetWriteScope(writeScope: ConfigWriteScope): void {\n\t\tthis.writeScope = writeScope;\n\t\tthis.buildFlatList();\n\t\tthis.filterItems(this.searchInput.getValue());\n\t}\n\n\tprivate get groups(): ResourceGroup[] {\n\t\treturn this.groupsByScope[this.writeScope];\n\t}\n\n\tprivate buildInheritedEnabledMap(groups: ResourceGroup[]): Map<string, boolean> {\n\t\tconst result = new Map<string, boolean>();\n\t\tfor (const group of groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tresult.set(this.getResourceItemKey(item), item.enabled);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate buildFlatList(): void {\n\t\tthis.flatItems = [];\n\t\tfor (const group of this.groups) {\n\t\t\tthis.flatItems.push({ type: \"group\", group });\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tthis.flatItems.push({ type: \"subgroup\", subgroup, group });\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tthis.flatItems.push({ type: \"item\", item });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Start selection on first item (not header)\n\t\tthis.selectedIndex = this.flatItems.findIndex((e) => e.type === \"item\");\n\t\tif (this.selectedIndex < 0) this.selectedIndex = 0;\n\t}\n\n\tprivate findNextItem(fromIndex: number, direction: 1 | -1): number {\n\t\tlet idx = fromIndex + direction;\n\t\twhile (idx >= 0 && idx < this.filteredItems.length) {\n\t\t\tif (this.filteredItems[idx].type === \"item\") {\n\t\t\t\treturn idx;\n\t\t\t}\n\t\t\tidx += direction;\n\t\t}\n\t\treturn fromIndex; // Stay at current if no item found\n\t}\n\n\tprivate filterItems(query: string): void {\n\t\tif (!query.trim()) {\n\t\t\tthis.filteredItems = [...this.flatItems];\n\t\t\tthis.selectFirstItem();\n\t\t\treturn;\n\t\t}\n\n\t\tconst lowerQuery = query.toLowerCase();\n\t\tconst matchingItems = new Set<ResourceItem>();\n\t\tconst matchingSubgroups = new Set<ResourceSubgroup>();\n\t\tconst matchingGroups = new Set<ResourceGroup>();\n\n\t\tfor (const entry of this.flatItems) {\n\t\t\tif (entry.type === \"item\") {\n\t\t\t\tconst item = entry.item;\n\t\t\t\tif (\n\t\t\t\t\titem.displayName.toLowerCase().includes(lowerQuery) ||\n\t\t\t\t\titem.resourceType.toLowerCase().includes(lowerQuery) ||\n\t\t\t\t\titem.path.toLowerCase().includes(lowerQuery)\n\t\t\t\t) {\n\t\t\t\t\tmatchingItems.add(item);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Find which subgroups and groups contain matching items\n\t\tfor (const group of this.groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tif (matchingItems.has(item)) {\n\t\t\t\t\t\tmatchingSubgroups.add(subgroup);\n\t\t\t\t\t\tmatchingGroups.add(group);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.filteredItems = [];\n\t\tfor (const entry of this.flatItems) {\n\t\t\tif (entry.type === \"group\" && matchingGroups.has(entry.group)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t} else if (entry.type === \"subgroup\" && matchingSubgroups.has(entry.subgroup)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t} else if (entry.type === \"item\" && matchingItems.has(entry.item)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t}\n\t\t}\n\n\t\tthis.selectFirstItem();\n\t}\n\n\tprivate selectFirstItem(): void {\n\t\tconst firstItemIndex = this.filteredItems.findIndex((e) => e.type === \"item\");\n\t\tthis.selectedIndex = firstItemIndex >= 0 ? firstItemIndex : 0;\n\t}\n\n\tupdateItem(item: ResourceItem, enabled: boolean): void {\n\t\titem.enabled = enabled;\n\t\t// Update in groups too\n\t\tfor (const group of this.groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tconst found = subgroup.items.find((i) => i.path === item.path && i.resourceType === item.resourceType);\n\t\t\t\tif (found) {\n\t\t\t\t\tfound.enabled = enabled;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [];\n\n\t\t// Search input\n\t\tlines.push(...this.searchInput.render(width));\n\t\tlines.push(\"\");\n\n\t\tif (this.filteredItems.length === 0) {\n\t\t\tlines.push(theme.fg(\"muted\", \" No resources found\"));\n\t\t\treturn lines;\n\t\t}\n\n\t\t// Calculate visible range\n\t\tconst startIndex = Math.max(\n\t\t\t0,\n\t\t\tMath.min(this.selectedIndex - Math.floor(this.maxVisible / 2), this.filteredItems.length - this.maxVisible),\n\t\t);\n\t\tconst endIndex = Math.min(startIndex + this.maxVisible, this.filteredItems.length);\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tconst entry = this.filteredItems[i];\n\t\t\tconst isSelected = i === this.selectedIndex;\n\n\t\t\tif (entry.type === \"group\") {\n\t\t\t\t// Main group header (no cursor)\n\t\t\t\tconst inherited = this.writeScope === \"project\" && entry.group.scope === \"user\";\n\t\t\t\tconst label = theme.bold(`${entry.group.label}${inherited ? \" · inherited global\" : \"\"}`);\n\t\t\t\tconst groupLine = theme.fg(inherited ? \"dim\" : \"accent\", label);\n\t\t\t\tlines.push(truncateToWidth(` ${groupLine}`, width, \"\"));\n\t\t\t} else if (entry.type === \"subgroup\") {\n\t\t\t\t// Subgroup header (indented, no cursor)\n\t\t\t\tconst color = this.writeScope === \"project\" && entry.group.scope === \"user\" ? \"dim\" : \"muted\";\n\t\t\t\tconst subgroupLine = theme.fg(color, entry.subgroup.label);\n\t\t\t\tlines.push(truncateToWidth(` ${subgroupLine}`, width, \"\"));\n\t\t\t} else {\n\t\t\t\t// Resource item (cursor only on items)\n\t\t\t\tconst item = entry.item;\n\t\t\t\tconst cursor = isSelected ? \"> \" : \" \";\n\t\t\t\tconst dimmed = this.isDimmedItem(item);\n\t\t\t\tconst nameText = isSelected && !dimmed ? theme.bold(item.displayName) : item.displayName;\n\t\t\t\tconst name = dimmed ? theme.fg(\"dim\", nameText) : nameText;\n\t\t\t\tlines.push(\n\t\t\t\t\ttruncateToWidth(\n\t\t\t\t\t\t`${cursor} ${this.renderCheckbox(item)} ${name}${this.getItemSuffix(item)}`,\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\"...\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Scroll indicator\n\t\tif (startIndex > 0 || endIndex < this.filteredItems.length) {\n\t\t\tconst itemCount = this.filteredItems.filter((e) => e.type === \"item\").length;\n\t\t\tconst currentItemIndex =\n\t\t\t\tthis.filteredItems.slice(0, this.selectedIndex).filter((e) => e.type === \"item\").length + 1;\n\t\t\tlines.push(theme.fg(\"dim\", ` (${currentItemIndex}/${itemCount})`));\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getKeybindings();\n\n\t\tif (kb.matches(data, \"tui.select.up\")) {\n\t\t\tthis.selectedIndex = this.findNextItem(this.selectedIndex, -1);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.down\")) {\n\t\t\tthis.selectedIndex = this.findNextItem(this.selectedIndex, 1);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.pageUp\")) {\n\t\t\t// Jump up by maxVisible, then find nearest item\n\t\t\tlet target = Math.max(0, this.selectedIndex - this.maxVisible);\n\t\t\twhile (target < this.filteredItems.length && this.filteredItems[target].type !== \"item\") {\n\t\t\t\ttarget++;\n\t\t\t}\n\t\t\tif (target < this.filteredItems.length) {\n\t\t\t\tthis.selectedIndex = target;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.pageDown\")) {\n\t\t\t// Jump down by maxVisible, then find nearest item\n\t\t\tlet target = Math.min(this.filteredItems.length - 1, this.selectedIndex + this.maxVisible);\n\t\t\twhile (target >= 0 && this.filteredItems[target].type !== \"item\") {\n\t\t\t\ttarget--;\n\t\t\t}\n\t\t\tif (target >= 0) {\n\t\t\t\tthis.selectedIndex = target;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.cancel\")) {\n\t\t\tthis.onCancel?.();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"ctrl+c\")) {\n\t\t\tthis.onExit?.();\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.input.tab\")) {\n\t\t\tthis.onSwitchMode?.();\n\t\t\treturn;\n\t\t}\n\t\tif (data === \" \" || kb.matches(data, \"tui.select.confirm\")) {\n\t\t\tconst entry = this.filteredItems[this.selectedIndex];\n\t\t\tif (entry?.type === \"item\" && (this.writeScope === \"project\" || this.getItemScope(entry.item) === \"user\")) {\n\t\t\t\tconst newEnabled = this.toggleResource(entry.item);\n\t\t\t\tif (newEnabled !== undefined) {\n\t\t\t\t\tthis.updateItem(entry.item, newEnabled);\n\t\t\t\t\tthis.onToggle?.(entry.item, newEnabled);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Pass to search input\n\t\tthis.searchInput.handleInput(data);\n\t\tthis.filterItems(this.searchInput.getValue());\n\t}\n\n\tprivate toggleResource(item: ResourceItem): boolean | undefined {\n\t\tif (this.writeScope === \"project\") {\n\t\t\tconst state = this.getNextOverrideState(item);\n\t\t\tif (!this.setProjectResourceOverride(item, state)) return undefined;\n\t\t\treturn state === \"inherit\" ? this.getInheritedEnabled(item) : state === \"load\";\n\t\t}\n\n\t\tconst enabled = !item.enabled;\n\t\tif (item.metadata.origin === \"top-level\") {\n\t\t\tthis.toggleTopLevelResource(item, enabled);\n\t\t} else {\n\t\t\tthis.togglePackageResource(item, enabled);\n\t\t}\n\t\treturn enabled;\n\t}\n\n\tprivate toggleTopLevelResource(item: ResourceItem, enabled: boolean): void {\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst settings =\n\t\t\tscope === \"project\" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();\n\n\t\tconst arrayKey = item.resourceType as \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\n\t\tconst current = (settings[arrayKey] ?? []) as string[];\n\n\t\t// Generate pattern for this resource\n\t\tconst pattern = this.getResourcePattern(item);\n\t\tconst disablePattern = `-${pattern}`;\n\t\tconst enablePattern = `+${pattern}`;\n\n\t\t// Filter out existing patterns for this resource\n\t\tconst updated = current.filter((p) => {\n\t\t\tconst stripped = p.startsWith(\"!\") || p.startsWith(\"+\") || p.startsWith(\"-\") ? p.slice(1) : p;\n\t\t\treturn stripped !== pattern;\n\t\t});\n\n\t\tif (enabled) {\n\t\t\tupdated.push(enablePattern);\n\t\t} else {\n\t\t\tupdated.push(disablePattern);\n\t\t}\n\n\t\tif (scope === \"project\") {\n\t\t\tif (arrayKey === \"extensions\") {\n\t\t\t\tthis.settingsManager.setProjectExtensionPaths(updated);\n\t\t\t} else if (arrayKey === \"skills\") {\n\t\t\t\tthis.settingsManager.setProjectSkillPaths(updated);\n\t\t\t} else if (arrayKey === \"prompts\") {\n\t\t\t\tthis.settingsManager.setProjectPromptTemplatePaths(updated);\n\t\t\t} else if (arrayKey === \"themes\") {\n\t\t\t\tthis.settingsManager.setProjectThemePaths(updated);\n\t\t\t}\n\t\t} else {\n\t\t\tif (arrayKey === \"extensions\") {\n\t\t\t\tthis.settingsManager.setExtensionPaths(updated);\n\t\t\t} else if (arrayKey === \"skills\") {\n\t\t\t\tthis.settingsManager.setSkillPaths(updated);\n\t\t\t} else if (arrayKey === \"prompts\") {\n\t\t\t\tthis.settingsManager.setPromptTemplatePaths(updated);\n\t\t\t} else if (arrayKey === \"themes\") {\n\t\t\t\tthis.settingsManager.setThemePaths(updated);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate togglePackageResource(item: ResourceItem, enabled: boolean): void {\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst settings =\n\t\t\tscope === \"project\" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();\n\n\t\tconst packages = [...(settings.packages ?? [])] as PackageSource[];\n\t\tconst pkgIndex = packages.findIndex((pkg) => {\n\t\t\tconst source = typeof pkg === \"string\" ? pkg : pkg.source;\n\t\t\treturn source === item.metadata.source;\n\t\t});\n\n\t\tif (pkgIndex === -1) return;\n\n\t\tlet pkg = packages[pkgIndex];\n\n\t\t// Convert string to object form if needed\n\t\tif (typeof pkg === \"string\") {\n\t\t\tpkg = { source: pkg };\n\t\t\tpackages[pkgIndex] = pkg;\n\t\t}\n\n\t\t// Get the resource array for this type\n\t\tconst arrayKey = item.resourceType as \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\n\t\tconst current = (pkg[arrayKey] ?? []) as string[];\n\n\t\t// Generate pattern relative to package root\n\t\tconst pattern = this.getPackageResourcePattern(item);\n\t\tconst disablePattern = `-${pattern}`;\n\t\tconst enablePattern = `+${pattern}`;\n\n\t\t// Filter out existing patterns for this resource\n\t\tconst updated = current.filter((p) => {\n\t\t\tconst stripped = p.startsWith(\"!\") || p.startsWith(\"+\") || p.startsWith(\"-\") ? p.slice(1) : p;\n\t\t\treturn stripped !== pattern;\n\t\t});\n\n\t\tif (enabled) {\n\t\t\tupdated.push(enablePattern);\n\t\t} else {\n\t\t\tupdated.push(disablePattern);\n\t\t}\n\n\t\t(pkg as Record<string, unknown>)[arrayKey] = updated.length > 0 ? updated : undefined;\n\n\t\t// Clean up empty filter object\n\t\tconst hasFilters = [\"extensions\", \"skills\", \"prompts\", \"themes\"].some(\n\t\t\t(k) => (pkg as Record<string, unknown>)[k] !== undefined,\n\t\t);\n\t\tif (!hasFilters) {\n\t\t\tpackages[pkgIndex] = (pkg as { source: string }).source;\n\t\t}\n\n\t\tif (scope === \"project\") {\n\t\t\tthis.settingsManager.setProjectPackages(packages);\n\t\t} else {\n\t\t\tthis.settingsManager.setPackages(packages);\n\t\t}\n\t}\n\n\tprivate renderCheckbox(item: ResourceItem): string {\n\t\tif (this.writeScope === \"project\") {\n\t\t\tconst state = this.getProjectOverrideState(item);\n\t\t\tif (state === \"load\") return theme.fg(\"success\", \"[+]\");\n\t\t\tif (state === \"unload\") return theme.fg(\"warning\", \"[-]\");\n\t\t\treturn theme.fg(\"dim\", item.enabled ? \"[x]\" : \"[ ]\");\n\t\t}\n\t\treturn item.enabled ? theme.fg(\"success\", \"[x]\") : theme.fg(\"dim\", \"[ ]\");\n\t}\n\n\tprivate getItemSuffix(item: ResourceItem): string {\n\t\tif (this.writeScope !== \"project\") return \"\";\n\t\tconst state = this.getProjectOverrideState(item);\n\t\tif (state === \"load\") return theme.fg(\"muted\", \" project load\");\n\t\tif (state === \"unload\") return theme.fg(\"muted\", \" project unload\");\n\t\treturn this.isInheritedGlobalItem(item) ? theme.fg(\"dim\", \" inherited global\") : \"\";\n\t}\n\n\tprivate isDimmedItem(item: ResourceItem): boolean {\n\t\treturn (\n\t\t\tthis.writeScope === \"project\" &&\n\t\t\tthis.isInheritedGlobalItem(item) &&\n\t\t\tthis.getProjectOverrideState(item) === \"inherit\"\n\t\t);\n\t}\n\n\tprivate setProjectResourceOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\treturn item.metadata.origin === \"top-level\"\n\t\t\t? this.setProjectTopLevelOverride(item, state)\n\t\t\t: this.setProjectPackageOverride(item, state);\n\t}\n\n\tprivate setProjectTopLevelOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\tconst current = (this.settingsManager.getProjectSettings()[item.resourceType] ?? []) as string[];\n\t\tconst pattern = this.isInheritedGlobalItem(item) ? item.path : this.getResourcePatternForScope(item, \"project\");\n\t\tconst patterns = this.getTopLevelOverridePatterns(item, \"project\");\n\t\tconst updated = current.filter((entry) => {\n\t\t\tconst target = this.getPatternEntryTarget(entry);\n\t\t\tif ((entry.startsWith(\"!\") || entry.startsWith(\"+\") || entry.startsWith(\"-\")) && patterns.has(target))\n\t\t\t\treturn false;\n\t\t\treturn !(state === \"inherit\" && this.isInheritedGlobalItem(item) && target === pattern);\n\t\t});\n\t\tif (state !== \"inherit\") {\n\t\t\t// Project entries name inherited files to override them. Built-in paths need no entry.\n\t\t\tif (this.isInheritedGlobalItem(item) && item.metadata.source !== \"builtin\" && !updated.includes(pattern))\n\t\t\t\tupdated.push(pattern);\n\t\t\tupdated.push(`${state === \"load\" ? \"+\" : \"-\"}${pattern}`);\n\t\t}\n\t\tthis.setProjectTopLevelPaths(item.resourceType, updated);\n\t\treturn true;\n\t}\n\n\tprivate setProjectTopLevelPaths(key: ResourceType, paths: string[]): void {\n\t\tif (key === \"extensions\") this.settingsManager.setProjectExtensionPaths(paths);\n\t\telse if (key === \"skills\") this.settingsManager.setProjectSkillPaths(paths);\n\t\telse if (key === \"prompts\") this.settingsManager.setProjectPromptTemplatePaths(paths);\n\t\telse this.settingsManager.setProjectThemePaths(paths);\n\t}\n\n\tprivate setProjectPackageOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\tconst packages = [...(this.settingsManager.getProjectSettings().packages ?? [])] as PackageSource[];\n\t\tlet pkgIndex = packages.findIndex((pkg) =>\n\t\t\tthis.packageSourceStringMatches(\n\t\t\t\titem.metadata.source,\n\t\t\t\tthis.getItemScope(item),\n\t\t\t\ttypeof pkg === \"string\" ? pkg : pkg.source,\n\t\t\t\t\"project\",\n\t\t\t),\n\t\t);\n\t\tif (pkgIndex === -1) {\n\t\t\tif (state === \"inherit\") return false;\n\t\t\tpackages.push(this.createPackageOverrideSource(item));\n\t\t\tpkgIndex = packages.length - 1;\n\t\t}\n\t\tlet pkg = packages[pkgIndex];\n\t\tif (pkg === undefined) return false;\n\t\tif (typeof pkg === \"string\") {\n\t\t\tpkg = { source: pkg };\n\t\t\tpackages[pkgIndex] = pkg;\n\t\t}\n\t\tconst pattern = this.getPackageResourcePattern(item);\n\t\tconst updated = ((pkg[item.resourceType] ?? []) as string[]).filter(\n\t\t\t(entry) => this.getPatternEntryTarget(entry) !== pattern,\n\t\t);\n\t\tif (state !== \"inherit\") updated.push(`${state === \"load\" ? \"+\" : \"-\"}${pattern}`);\n\t\t(pkg as Record<string, unknown>)[item.resourceType] = updated.length > 0 ? updated : undefined;\n\t\tif (!RESOURCE_TYPES.some((key) => (pkg as Record<string, unknown>)[key] !== undefined)) {\n\t\t\tif (pkg.autoload === false) packages.splice(pkgIndex, 1);\n\t\t\telse packages[pkgIndex] = pkg.source;\n\t\t}\n\t\tthis.settingsManager.setProjectPackages(packages);\n\t\treturn true;\n\t}\n\n\tprivate getNextOverrideState(item: ResourceItem): ProjectOverrideState {\n\t\tconst state = this.getProjectOverrideState(item);\n\t\tconst inheritedEnabled = this.getInheritedEnabled(item);\n\t\tif (state === \"inherit\") return inheritedEnabled ? \"unload\" : \"load\";\n\t\tif (state === \"unload\") return inheritedEnabled ? \"load\" : \"inherit\";\n\t\treturn inheritedEnabled ? \"inherit\" : \"unload\";\n\t}\n\n\tprivate getProjectOverrideState(item: ResourceItem): ProjectOverrideState {\n\t\tif (this.writeScope !== \"project\") return \"inherit\";\n\t\tif (item.metadata.origin === \"top-level\") {\n\t\t\treturn this.getOverrideStateFromEntries(\n\t\t\t\t(this.settingsManager.getProjectSettings()[item.resourceType] ?? []) as string[],\n\t\t\t\tthis.getTopLevelOverridePatterns(item, \"project\"),\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t\tconst pkg = this.findMatchingPackageSource(item, \"project\");\n\t\tif (typeof pkg !== \"object\") return \"inherit\";\n\t\tconst entries = pkg[item.resourceType];\n\t\tif (entries === undefined) return \"inherit\";\n\t\treturn this.getOverrideStateFromEntries(\n\t\t\tentries,\n\t\t\tnew Set([this.getPackageResourcePattern(item)]),\n\t\t\tpkg.autoload !== false,\n\t\t);\n\t}\n\n\tprivate getOverrideStateFromEntries(\n\t\tentries: string[],\n\t\tpatterns: Set<string>,\n\t\temptyArrayIsUnload: boolean,\n\t): ProjectOverrideState {\n\t\tif (entries.length === 0 && emptyArrayIsUnload) return \"unload\";\n\t\tlet state: ProjectOverrideState = \"inherit\";\n\t\tfor (const entry of entries) {\n\t\t\tif (!patterns.has(this.getPatternEntryTarget(entry))) continue;\n\t\t\tif (entry.startsWith(\"!\") || entry.startsWith(\"-\")) state = \"unload\";\n\t\t\telse state = \"load\";\n\t\t}\n\t\treturn state;\n\t}\n\n\tprivate getInheritedEnabled(item: ResourceItem): boolean {\n\t\treturn (\n\t\t\tthis.inheritedEnabledByKey.get(this.getResourceItemKey(item)) ??\n\t\t\t(this.getItemScope(item) === \"user\" ? item.enabled : true)\n\t\t);\n\t}\n\n\tprivate isInheritedGlobalItem(item: ResourceItem): boolean {\n\t\treturn this.getItemScope(item) === \"user\" || this.inheritedEnabledByKey.has(this.getResourceItemKey(item));\n\t}\n\n\tprivate getTopLevelOverridePatterns(item: ResourceItem, scope: SettingsScope): Set<string> {\n\t\tconst baseDir = this.getTopLevelBaseDir(scope);\n\t\tconst patterns = new Set<string>([\n\t\t\tthis.getResourcePatternForScope(item, scope),\n\t\t\titem.path,\n\t\t\trelative(baseDir, item.path),\n\t\t]);\n\t\tif (item.metadata.baseDir) patterns.add(relative(item.metadata.baseDir, item.path));\n\t\treturn patterns;\n\t}\n\n\tprivate getResourcePatternForScope(item: ResourceItem, scope: SettingsScope): string {\n\t\tconst sourceScope = this.getItemScope(item);\n\t\tif (scope !== sourceScope || item.metadata.source === \"builtin\") return item.path;\n\t\tconst baseDir = item.metadata.baseDir ?? this.getTopLevelBaseDir(sourceScope);\n\t\treturn relative(baseDir, item.path);\n\t}\n\n\tprivate createPackageOverrideSource(item: ResourceItem): PackageSource {\n\t\tconst source = item.metadata.source;\n\t\tif (!isLocalPath(source)) return { source, autoload: false };\n\t\tconst sourcePath = resolvePath(source, this.getTopLevelBaseDir(this.getItemScope(item)), { trim: true });\n\t\treturn { source: relative(this.getTopLevelBaseDir(\"project\"), sourcePath) || \".\", autoload: false };\n\t}\n\n\tprivate packageSourceStringMatches(\n\t\tleftSource: string,\n\t\tleftScope: SettingsScope,\n\t\trightSource: string,\n\t\trightScope: SettingsScope,\n\t): boolean {\n\t\tif (leftSource === rightSource) return true;\n\t\tif (!isLocalPath(leftSource) || !isLocalPath(rightSource)) return false;\n\t\tconst left = resolvePath(leftSource, this.getTopLevelBaseDir(leftScope), { trim: true });\n\t\tconst right = resolvePath(rightSource, this.getTopLevelBaseDir(rightScope), { trim: true });\n\t\treturn left === right;\n\t}\n\n\tprivate findMatchingPackageSource(item: ResourceItem, targetScope: SettingsScope): PackageSource | undefined {\n\t\tconst settings =\n\t\t\ttargetScope === \"project\"\n\t\t\t\t? this.settingsManager.getProjectSettings()\n\t\t\t\t: this.settingsManager.getGlobalSettings();\n\t\treturn (settings.packages ?? []).find((pkg) =>\n\t\t\tthis.packageSourceStringMatches(\n\t\t\t\titem.metadata.source,\n\t\t\t\tthis.getItemScope(item),\n\t\t\t\ttypeof pkg === \"string\" ? pkg : pkg.source,\n\t\t\t\ttargetScope,\n\t\t\t),\n\t\t);\n\t}\n\n\tprivate getPatternEntryTarget(entry: string): string {\n\t\treturn entry.startsWith(\"!\") || entry.startsWith(\"+\") || entry.startsWith(\"-\") ? entry.slice(1) : entry;\n\t}\n\n\tprivate getResourceItemKey(item: ResourceItem): string {\n\t\treturn `${item.resourceType}:${canonicalizePath(item.path)}`;\n\t}\n\n\tprivate getItemScope(item: ResourceItem): SettingsScope {\n\t\treturn item.metadata.scope === \"project\" ? \"project\" : \"user\";\n\t}\n\n\tprivate getTopLevelBaseDir(scope: \"user\" | \"project\"): string {\n\t\treturn scope === \"project\" ? join(this.cwd, CONFIG_DIR_NAME) : this.agentDir;\n\t}\n\n\tprivate getResourcePattern(item: ResourceItem): string {\n\t\tif (item.metadata.source === \"builtin\") return item.path;\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst baseDir = item.metadata.baseDir ?? this.getTopLevelBaseDir(scope);\n\t\treturn relative(baseDir, item.path);\n\t}\n\n\tprivate getPackageResourcePattern(item: ResourceItem): string {\n\t\tconst baseDir = item.metadata.baseDir ?? dirname(item.path);\n\t\treturn relative(baseDir, item.path);\n\t}\n}\n\nexport class ConfigSelectorComponent extends Container implements Focusable {\n\tprivate header: ConfigSelectorHeader;\n\tprivate resourceList: ResourceList;\n\tprivate writeScope: ConfigWriteScope;\n\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.resourceList.focused = value;\n\t}\n\n\tconstructor(\n\t\tresolvedPaths: ScopedResolvedPaths,\n\t\tsettingsManager: SettingsManager,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tonClose: () => void,\n\t\tonExit: () => void,\n\t\trequestRender: () => void,\n\t\tterminalHeight?: number,\n\t\twriteScope: ConfigWriteScope = \"global\",\n\t\tprojectModeAvailable = true,\n\t) {\n\t\tsuper();\n\n\t\tthis.writeScope = writeScope;\n\t\tconst groupsByScope = {\n\t\t\tglobal: buildGroups(resolvedPaths.global, agentDir),\n\t\t\tproject: buildGroups(resolvedPaths.project, agentDir),\n\t\t};\n\n\t\t// Add header\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.header = new ConfigSelectorHeader(this.writeScope, projectModeAvailable);\n\t\tthis.addChild(this.header);\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// Resource list\n\t\tthis.resourceList = new ResourceList(\n\t\t\tgroupsByScope,\n\t\t\tsettingsManager,\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tterminalHeight,\n\t\t\tthis.writeScope,\n\t\t);\n\t\tthis.resourceList.onCancel = onClose;\n\t\tthis.resourceList.onExit = onExit;\n\t\tthis.resourceList.onToggle = () => requestRender();\n\t\tif (projectModeAvailable) {\n\t\t\tthis.resourceList.onSwitchMode = () => {\n\t\t\t\tthis.switchWriteScope();\n\t\t\t\trequestRender();\n\t\t\t};\n\t\t}\n\t\tthis.addChild(this.resourceList);\n\n\t\t// Bottom border\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tprivate switchWriteScope(): void {\n\t\tthis.writeScope = this.writeScope === \"global\" ? \"project\" : \"global\";\n\t\tthis.header.setWriteScope(this.writeScope);\n\t\tthis.resourceList.setWriteScope(this.writeScope);\n\t}\n\n\tgetResourceList(): ResourceList {\n\t\treturn this.resourceList;\n\t}\n}\n"]}
1
+ {"version":3,"file":"config-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/config-selector.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * TUI component for managing package resources (enable/disable)\n */\n\nimport { homedir } from \"node:os\";\nimport { basename, dirname, join, relative } from \"node:path\";\nimport {\n\ttype Component,\n\tContainer,\n\ttype Focusable,\n\tgetKeybindings,\n\tInput,\n\tmatchesKey,\n\tSpacer,\n\ttruncateToWidth,\n\tvisibleWidth,\n} from \"@earendil-works/pi-tui\";\nimport { CONFIG_DIR_NAME } from \"../../../config.ts\";\nimport {\n\tDefaultPackageManager,\n\ttype PathMetadata,\n\ttype ResolvedPaths,\n\ttype ResolvedResource,\n} from \"../../../core/package-manager.ts\";\nimport type { PackageSource, SettingsManager, SkillInvocationOverride } from \"../../../core/settings-manager.ts\";\nimport { matchInvocation, SkillInvocationPolicy, withInvocation } from \"../../../core/skill-invocation.ts\";\nimport {\n\treadSkillDisableModelInvocation,\n\tresolveSkillEffectiveState,\n\ttype SkillEffectiveState,\n} from \"../../../core/skills.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"../../../core/source-info.ts\";\nimport { canonicalizePath, isLocalPath, resolvePath } from \"../../../utils/paths.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\nimport { keyHint, rawKeyHint } from \"./keybinding-hints.ts\";\n\nfunction hasResourcePattern(patterns: Set<string>, pattern: string): boolean {\n\tconst normalized = pattern.replace(/\\\\/g, \"/\");\n\tfor (const candidate of patterns) {\n\t\tif (candidate.replace(/\\\\/g, \"/\") === normalized) return true;\n\t}\n\treturn false;\n}\n\ntype ResourceType = \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\ntype ConfigWriteScope = \"global\" | \"project\";\ntype SettingsScope = \"user\" | \"project\";\ntype ProjectOverrideState = \"inherit\" | \"load\" | \"unload\";\ntype ProjectSkillOverrideState = SkillEffectiveState | \"inherit\" | \"load\";\nexport type ScopedResolvedPaths = Record<ConfigWriteScope, ResolvedPaths>;\n\n/** The invocation override that pins a skill state; Off and inherit leave invocation to the defaults. */\nfunction stateInvocation(state: ProjectSkillOverrideState): SkillInvocationOverride | undefined {\n\treturn state === \"on\" ? \"model-and-user\" : state === \"user-only\" ? \"user-only\" : undefined;\n}\n\nconst RESOURCE_TYPES = [\"extensions\", \"skills\", \"prompts\", \"themes\"] as const satisfies readonly ResourceType[];\n\nconst RESOURCE_TYPE_LABELS: Record<ResourceType, string> = {\n\textensions: \"Extensions\",\n\tskills: \"Skills\",\n\tprompts: \"Prompts\",\n\tthemes: \"Themes\",\n};\n\ninterface ResourceItem {\n\tpath: string;\n\tenabled: boolean;\n\tmetadata: PathMetadata;\n\tresourceType: ResourceType;\n\tdisplayName: string;\n\tgroupKey: string;\n\tsubgroupKey: string;\n\tfrontmatterDisableModelInvocation?: boolean;\n}\n\ninterface ResourceSubgroup {\n\ttype: ResourceType;\n\tlabel: string;\n\titems: ResourceItem[];\n}\n\ninterface ResourceGroup {\n\tkey: string;\n\tlabel: string;\n\tscope: \"user\" | \"project\" | \"temporary\";\n\torigin: \"package\" | \"top-level\";\n\tsource: string;\n\tsubgroups: ResourceSubgroup[];\n}\n\nfunction formatBaseDir(baseDir: string): string {\n\tconst homeDir = homedir();\n\tlet displayPath: string;\n\n\tif (baseDir === homeDir) {\n\t\tdisplayPath = \"~\";\n\t} else if (baseDir.startsWith(homeDir)) {\n\t\t// Replace home prefix with ~, normalize separators for display\n\t\tconst rest = baseDir.slice(homeDir.length);\n\t\tdisplayPath = `~${rest.replace(/\\\\/g, \"/\")}`;\n\t} else {\n\t\tdisplayPath = baseDir.replace(/\\\\/g, \"/\");\n\t}\n\n\treturn displayPath.endsWith(\"/\") ? displayPath : `${displayPath}/`;\n}\n\nfunction getGroupLabel(metadata: PathMetadata, agentDir: string): string {\n\tif (metadata.origin === \"package\") {\n\t\treturn `${metadata.source} (${metadata.scope})`;\n\t}\n\tif (metadata.source === \"builtin\") {\n\t\treturn metadata.scope === \"user\" ? \"Built-in\" : \"Built-in (project override)\";\n\t}\n\t// Top-level resources\n\tif (metadata.source === \"auto\") {\n\t\tif (metadata.baseDir) {\n\t\t\treturn metadata.scope === \"user\"\n\t\t\t\t? `User (${formatBaseDir(metadata.baseDir)})`\n\t\t\t\t: `Project (${formatBaseDir(metadata.baseDir)})`;\n\t\t}\n\t\treturn metadata.scope === \"user\" ? `User (${formatBaseDir(agentDir)})` : `Project (${CONFIG_DIR_NAME}/)`;\n\t}\n\treturn metadata.scope === \"user\" ? \"User settings\" : \"Project settings\";\n}\n\nfunction buildGroups(resolved: ResolvedPaths, agentDir: string): ResourceGroup[] {\n\tconst groupMap = new Map<string, ResourceGroup>();\n\n\tconst addToGroup = (resources: ResolvedResource[], resourceType: ResourceType) => {\n\t\tfor (const res of resources) {\n\t\t\tconst { path, enabled, metadata } = res;\n\t\t\tconst groupKey = `${metadata.origin}:${metadata.scope}:${metadata.source}:${metadata.baseDir ?? \"\"}`;\n\n\t\t\tif (!groupMap.has(groupKey)) {\n\t\t\t\tgroupMap.set(groupKey, {\n\t\t\t\t\tkey: groupKey,\n\t\t\t\t\tlabel: getGroupLabel(metadata, agentDir),\n\t\t\t\t\tscope: metadata.scope,\n\t\t\t\t\torigin: metadata.origin,\n\t\t\t\t\tsource: metadata.source,\n\t\t\t\t\tsubgroups: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst group = groupMap.get(groupKey)!;\n\t\t\tconst subgroupKey = `${groupKey}:${resourceType}`;\n\n\t\t\tlet subgroup = group.subgroups.find((sg) => sg.type === resourceType);\n\t\t\tif (!subgroup) {\n\t\t\t\tsubgroup = {\n\t\t\t\t\ttype: resourceType,\n\t\t\t\t\tlabel: RESOURCE_TYPE_LABELS[resourceType],\n\t\t\t\t\titems: [],\n\t\t\t\t};\n\t\t\t\tgroup.subgroups.push(subgroup);\n\t\t\t}\n\n\t\t\tconst fileName = basename(path);\n\t\t\tconst parentFolder = basename(dirname(path));\n\t\t\tlet displayName: string;\n\t\t\tif (metadata.source === \"builtin\") {\n\t\t\t\tdisplayName = path.slice(BUILTIN_PATH_PREFIX.length);\n\t\t\t} else if (resourceType === \"extensions\" && parentFolder !== \"extensions\") {\n\t\t\t\tdisplayName = `${parentFolder}/${fileName}`;\n\t\t\t} else if (resourceType === \"skills\" && fileName === \"SKILL.md\") {\n\t\t\t\tdisplayName = parentFolder;\n\t\t\t} else {\n\t\t\t\tdisplayName = fileName;\n\t\t\t}\n\t\t\tsubgroup.items.push({\n\t\t\t\tpath,\n\t\t\t\tenabled,\n\t\t\t\tmetadata,\n\t\t\t\tresourceType,\n\t\t\t\tdisplayName,\n\t\t\t\tgroupKey,\n\t\t\t\tsubgroupKey,\n\t\t\t\tfrontmatterDisableModelInvocation:\n\t\t\t\t\tresourceType === \"skills\" ? readSkillDisableModelInvocation(path) : undefined,\n\t\t\t});\n\t\t}\n\t};\n\n\taddToGroup(resolved.extensions, \"extensions\");\n\taddToGroup(resolved.skills, \"skills\");\n\taddToGroup(resolved.prompts, \"prompts\");\n\taddToGroup(resolved.themes, \"themes\");\n\n\t// Sort groups: packages first, then top-level; user before project\n\tconst groups = Array.from(groupMap.values());\n\tgroups.sort((a, b) => {\n\t\tif (a.origin !== b.origin) {\n\t\t\treturn a.origin === \"package\" ? -1 : 1;\n\t\t}\n\t\tif (a.scope !== b.scope) {\n\t\t\treturn a.scope === \"user\" ? -1 : 1;\n\t\t}\n\t\treturn a.source.localeCompare(b.source);\n\t});\n\n\t// Sort subgroups within each group by type order, and items by name\n\tconst typeOrder: Record<ResourceType, number> = { extensions: 0, skills: 1, prompts: 2, themes: 3 };\n\tfor (const group of groups) {\n\t\tgroup.subgroups.sort((a, b) => typeOrder[a.type] - typeOrder[b.type]);\n\t\tfor (const subgroup of group.subgroups) {\n\t\t\tsubgroup.items.sort((a, b) => a.displayName.localeCompare(b.displayName));\n\t\t}\n\t}\n\n\treturn groups;\n}\n\ntype FlatEntry =\n\t| { type: \"group\"; group: ResourceGroup }\n\t| { type: \"subgroup\"; subgroup: ResourceSubgroup; group: ResourceGroup }\n\t| { type: \"item\"; item: ResourceItem };\n\nclass ConfigSelectorHeader implements Component {\n\tprivate writeScope: ConfigWriteScope;\n\tprivate projectModeAvailable: boolean;\n\n\tconstructor(writeScope: ConfigWriteScope, projectModeAvailable: boolean) {\n\t\tthis.writeScope = writeScope;\n\t\tthis.projectModeAvailable = projectModeAvailable;\n\t}\n\n\tsetWriteScope(writeScope: ConfigWriteScope): void {\n\t\tthis.writeScope = writeScope;\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst title = theme.bold(this.writeScope === \"project\" ? \"Project Local Resources\" : \"Global Resources\");\n\t\tconst sep = theme.fg(\"muted\", \" · \");\n\t\tconst switchHint = this.projectModeAvailable ? keyHint(\"tui.input.tab\", \"switch mode\") + sep : \"\";\n\t\tconst actionHint = rawKeyHint(\"space\", \"change\");\n\t\tconst hint = switchHint + actionHint + sep + rawKeyHint(\"esc\", \"close\");\n\t\tconst spacing = Math.max(1, width - visibleWidth(title) - visibleWidth(hint));\n\t\tconst scopeHint =\n\t\t\tthis.writeScope === \"project\"\n\t\t\t\t? theme.fg(\"muted\", `${CONFIG_DIR_NAME}/settings.json · inherited global resources are dimmed`)\n\t\t\t\t: theme.fg(\"muted\", `~/${CONFIG_DIR_NAME}/agent/settings.json`);\n\n\t\treturn [\n\t\t\ttruncateToWidth(`${title}${\" \".repeat(spacing)}${hint}`, width, \"\"),\n\t\t\ttruncateToWidth(scopeHint, width, \"\"),\n\t\t];\n\t}\n}\n\nclass ResourceList implements Component, Focusable {\n\tprivate groupsByScope: Record<ConfigWriteScope, ResourceGroup[]>;\n\tprivate flatItems: FlatEntry[] = [];\n\tprivate filteredItems: FlatEntry[] = [];\n\tprivate selectedIndex = 0;\n\tprivate searchInput: Input;\n\tprivate maxVisible: number;\n\tprivate settingsManager: SettingsManager;\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate writeScope: ConfigWriteScope;\n\tprivate inheritedEnabledByKey: Map<string, boolean>;\n\tprivate packageManager: DefaultPackageManager;\n\tprivate skillInvocation: SkillInvocationPolicy;\n\n\tpublic onCancel?: () => void;\n\tpublic onExit?: () => void;\n\tpublic onToggle?: (item: ResourceItem, newEnabled: boolean) => void;\n\tpublic onSwitchMode?: () => void;\n\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.searchInput.focused = value;\n\t}\n\n\tconstructor(\n\t\tgroupsByScope: Record<ConfigWriteScope, ResourceGroup[]>,\n\t\tsettingsManager: SettingsManager,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tterminalHeight?: number,\n\t\twriteScope: ConfigWriteScope = \"global\",\n\t) {\n\t\tthis.groupsByScope = groupsByScope;\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.cwd = cwd;\n\t\tthis.agentDir = agentDir;\n\t\tthis.writeScope = writeScope;\n\t\tthis.inheritedEnabledByKey = this.buildInheritedEnabledMap(groupsByScope.global);\n\t\tthis.packageManager = new DefaultPackageManager({ cwd, agentDir, settingsManager });\n\t\tthis.skillInvocation = new SkillInvocationPolicy(settingsManager, this.packageManager);\n\t\tthis.searchInput = new Input();\n\t\t// 8 lines of chrome: top spacer + top border + spacer + header (2 lines) + spacer + bottom spacer + bottom border\n\t\tconst chrome = 8;\n\t\tthis.maxVisible = Math.max(5, (terminalHeight ?? 24) - chrome);\n\t\tthis.buildFlatList();\n\t\tthis.filteredItems = [...this.flatItems];\n\t}\n\n\tsetWriteScope(writeScope: ConfigWriteScope): void {\n\t\tthis.writeScope = writeScope;\n\t\tthis.buildFlatList();\n\t\tthis.filterItems(this.searchInput.getValue());\n\t}\n\n\tprivate get groups(): ResourceGroup[] {\n\t\treturn this.groupsByScope[this.writeScope];\n\t}\n\n\tprivate buildInheritedEnabledMap(groups: ResourceGroup[]): Map<string, boolean> {\n\t\tconst result = new Map<string, boolean>();\n\t\tfor (const group of groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tresult.set(this.getResourceItemKey(item), item.enabled);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate buildFlatList(): void {\n\t\tthis.flatItems = [];\n\t\tfor (const group of this.groups) {\n\t\t\tthis.flatItems.push({ type: \"group\", group });\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tthis.flatItems.push({ type: \"subgroup\", subgroup, group });\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tthis.flatItems.push({ type: \"item\", item });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Start selection on first item (not header)\n\t\tthis.selectedIndex = this.flatItems.findIndex((e) => e.type === \"item\");\n\t\tif (this.selectedIndex < 0) this.selectedIndex = 0;\n\t}\n\n\tprivate findNextItem(fromIndex: number, direction: 1 | -1): number {\n\t\tlet idx = fromIndex + direction;\n\t\twhile (idx >= 0 && idx < this.filteredItems.length) {\n\t\t\tif (this.filteredItems[idx].type === \"item\") {\n\t\t\t\treturn idx;\n\t\t\t}\n\t\t\tidx += direction;\n\t\t}\n\t\treturn fromIndex; // Stay at current if no item found\n\t}\n\n\tprivate filterItems(query: string): void {\n\t\tif (!query.trim()) {\n\t\t\tthis.filteredItems = [...this.flatItems];\n\t\t\tthis.selectFirstItem();\n\t\t\treturn;\n\t\t}\n\n\t\tconst lowerQuery = query.toLowerCase();\n\t\tconst matchingItems = new Set<ResourceItem>();\n\t\tconst matchingSubgroups = new Set<ResourceSubgroup>();\n\t\tconst matchingGroups = new Set<ResourceGroup>();\n\n\t\tfor (const entry of this.flatItems) {\n\t\t\tif (entry.type === \"item\") {\n\t\t\t\tconst item = entry.item;\n\t\t\t\tif (\n\t\t\t\t\titem.displayName.toLowerCase().includes(lowerQuery) ||\n\t\t\t\t\titem.resourceType.toLowerCase().includes(lowerQuery) ||\n\t\t\t\t\titem.path.toLowerCase().includes(lowerQuery)\n\t\t\t\t) {\n\t\t\t\t\tmatchingItems.add(item);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Find which subgroups and groups contain matching items\n\t\tfor (const group of this.groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tfor (const item of subgroup.items) {\n\t\t\t\t\tif (matchingItems.has(item)) {\n\t\t\t\t\t\tmatchingSubgroups.add(subgroup);\n\t\t\t\t\t\tmatchingGroups.add(group);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.filteredItems = [];\n\t\tfor (const entry of this.flatItems) {\n\t\t\tif (entry.type === \"group\" && matchingGroups.has(entry.group)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t} else if (entry.type === \"subgroup\" && matchingSubgroups.has(entry.subgroup)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t} else if (entry.type === \"item\" && matchingItems.has(entry.item)) {\n\t\t\t\tthis.filteredItems.push(entry);\n\t\t\t}\n\t\t}\n\n\t\tthis.selectFirstItem();\n\t}\n\n\tprivate selectFirstItem(): void {\n\t\tconst firstItemIndex = this.filteredItems.findIndex((e) => e.type === \"item\");\n\t\tthis.selectedIndex = firstItemIndex >= 0 ? firstItemIndex : 0;\n\t}\n\n\tupdateItem(item: ResourceItem, enabled: boolean): void {\n\t\titem.enabled = enabled;\n\t\tif (this.writeScope === \"global\") this.inheritedEnabledByKey.set(this.getResourceItemKey(item), enabled);\n\t\t// Update in groups too\n\t\tfor (const group of this.groups) {\n\t\t\tfor (const subgroup of group.subgroups) {\n\t\t\t\tconst found = subgroup.items.find((i) => i.path === item.path && i.resourceType === item.resourceType);\n\t\t\t\tif (found) {\n\t\t\t\t\tfound.enabled = enabled;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [];\n\n\t\t// Search input\n\t\tlines.push(...this.searchInput.render(width));\n\t\tlines.push(\"\");\n\n\t\tif (this.filteredItems.length === 0) {\n\t\t\tlines.push(theme.fg(\"muted\", \" No resources found\"));\n\t\t\treturn lines;\n\t\t}\n\n\t\t// Calculate visible range\n\t\tconst startIndex = Math.max(\n\t\t\t0,\n\t\t\tMath.min(this.selectedIndex - Math.floor(this.maxVisible / 2), this.filteredItems.length - this.maxVisible),\n\t\t);\n\t\tconst endIndex = Math.min(startIndex + this.maxVisible, this.filteredItems.length);\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tconst entry = this.filteredItems[i];\n\t\t\tconst isSelected = i === this.selectedIndex;\n\n\t\t\tif (entry.type === \"group\") {\n\t\t\t\t// Main group header (no cursor)\n\t\t\t\tconst inherited = this.writeScope === \"project\" && entry.group.scope === \"user\";\n\t\t\t\tconst label = theme.bold(`${entry.group.label}${inherited ? \" · inherited global\" : \"\"}`);\n\t\t\t\tconst groupLine = theme.fg(inherited ? \"dim\" : \"accent\", label);\n\t\t\t\tlines.push(truncateToWidth(` ${groupLine}`, width, \"\"));\n\t\t\t} else if (entry.type === \"subgroup\") {\n\t\t\t\t// Subgroup header (indented, no cursor)\n\t\t\t\tconst color = this.writeScope === \"project\" && entry.group.scope === \"user\" ? \"dim\" : \"muted\";\n\t\t\t\tconst subgroupLine = theme.fg(color, entry.subgroup.label);\n\t\t\t\tlines.push(truncateToWidth(` ${subgroupLine}`, width, \"\"));\n\t\t\t} else {\n\t\t\t\t// Resource item (cursor only on items)\n\t\t\t\tconst item = entry.item;\n\t\t\t\tconst cursor = isSelected ? \"> \" : \" \";\n\t\t\t\tconst dimmed = this.isDimmedItem(item);\n\t\t\t\tconst nameText = isSelected && !dimmed ? theme.bold(item.displayName) : item.displayName;\n\t\t\t\tconst name = dimmed ? theme.fg(\"dim\", nameText) : nameText;\n\t\t\t\tconst prefix = `${cursor} ${this.renderCheckbox(item)} `;\n\t\t\t\tconst suffix = this.getItemSuffix(item);\n\t\t\t\tconst nameWidth = Math.max(1, width - visibleWidth(prefix) - visibleWidth(suffix));\n\t\t\t\tconst renderedName = truncateToWidth(name, nameWidth, \"...\");\n\t\t\t\tlines.push(truncateToWidth(`${prefix}${renderedName}${suffix}`, width, \"...\"));\n\t\t\t}\n\t\t}\n\n\t\t// Scroll indicator\n\t\tif (startIndex > 0 || endIndex < this.filteredItems.length) {\n\t\t\tconst itemCount = this.filteredItems.filter((e) => e.type === \"item\").length;\n\t\t\tconst currentItemIndex =\n\t\t\t\tthis.filteredItems.slice(0, this.selectedIndex).filter((e) => e.type === \"item\").length + 1;\n\t\t\tlines.push(theme.fg(\"dim\", ` (${currentItemIndex}/${itemCount})`));\n\t\t}\n\n\t\treturn lines;\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getKeybindings();\n\n\t\tif (kb.matches(data, \"tui.select.up\")) {\n\t\t\tthis.selectedIndex = this.findNextItem(this.selectedIndex, -1);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.down\")) {\n\t\t\tthis.selectedIndex = this.findNextItem(this.selectedIndex, 1);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.pageUp\")) {\n\t\t\t// Jump up by maxVisible, then find nearest item\n\t\t\tlet target = Math.max(0, this.selectedIndex - this.maxVisible);\n\t\t\twhile (target < this.filteredItems.length && this.filteredItems[target].type !== \"item\") {\n\t\t\t\ttarget++;\n\t\t\t}\n\t\t\tif (target < this.filteredItems.length) {\n\t\t\t\tthis.selectedIndex = target;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.pageDown\")) {\n\t\t\t// Jump down by maxVisible, then find nearest item\n\t\t\tlet target = Math.min(this.filteredItems.length - 1, this.selectedIndex + this.maxVisible);\n\t\t\twhile (target >= 0 && this.filteredItems[target].type !== \"item\") {\n\t\t\t\ttarget--;\n\t\t\t}\n\t\t\tif (target >= 0) {\n\t\t\t\tthis.selectedIndex = target;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.cancel\")) {\n\t\t\tthis.onCancel?.();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"ctrl+c\")) {\n\t\t\tthis.onExit?.();\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.input.tab\")) {\n\t\t\tthis.onSwitchMode?.();\n\t\t\treturn;\n\t\t}\n\t\tif (data === \" \" || kb.matches(data, \"tui.select.confirm\")) {\n\t\t\tconst entry = this.filteredItems[this.selectedIndex];\n\t\t\tif (entry?.type === \"item\" && (this.writeScope === \"project\" || this.getItemScope(entry.item) === \"user\")) {\n\t\t\t\tconst newEnabled = this.toggleResource(entry.item);\n\t\t\t\tif (newEnabled !== undefined) {\n\t\t\t\t\tthis.updateItem(entry.item, newEnabled);\n\t\t\t\t\tthis.onToggle?.(entry.item, newEnabled);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Pass to search input\n\t\tthis.searchInput.handleInput(data);\n\t\tthis.filterItems(this.searchInput.getValue());\n\t}\n\n\tprivate toggleResource(item: ResourceItem): boolean | undefined {\n\t\tif (item.resourceType === \"skills\") {\n\t\t\tif (this.writeScope === \"project\") {\n\t\t\t\tconst state = this.getNextProjectSkillOverrideState(item);\n\t\t\t\tif (!this.setProjectSkillOverride(item, state)) return undefined;\n\t\t\t\treturn state === \"inherit\" ? this.getInheritedSkillEffectiveState(item) !== \"off\" : state !== \"off\";\n\t\t\t}\n\n\t\t\tconst currentState = this.getSkillEffectiveState(item);\n\t\t\tconst nextState: SkillEffectiveState =\n\t\t\t\tcurrentState === \"on\" ? \"user-only\" : currentState === \"user-only\" ? \"off\" : \"on\";\n\t\t\tthis.setGlobalSkillEffectiveState(item, nextState);\n\t\t\treturn nextState !== \"off\";\n\t\t}\n\n\t\tif (this.writeScope === \"project\") {\n\t\t\tconst state = this.getNextOverrideState(item);\n\t\t\tif (!this.setProjectResourceOverride(item, state)) return undefined;\n\t\t\treturn state === \"inherit\" ? this.getInheritedEnabled(item) : state === \"load\";\n\t\t}\n\n\t\tconst enabled = !item.enabled;\n\t\tif (item.metadata.origin === \"top-level\") {\n\t\t\tthis.toggleTopLevelResource(item, enabled);\n\t\t} else {\n\t\t\tthis.togglePackageResource(item, enabled);\n\t\t}\n\t\treturn enabled;\n\t}\n\n\tprivate toggleTopLevelResource(item: ResourceItem, enabled: boolean): void {\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst settings =\n\t\t\tscope === \"project\" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();\n\n\t\tconst arrayKey = item.resourceType as \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\n\t\tconst current = (settings[arrayKey] ?? []) as string[];\n\n\t\t// Generate pattern for this resource\n\t\tconst pattern = this.getResourcePattern(item);\n\t\tconst disablePattern = `-${pattern}`;\n\t\tconst enablePattern = `+${pattern}`;\n\n\t\t// Filter out existing patterns for this resource\n\t\tconst updated = current.filter((p) => {\n\t\t\tconst stripped = p.startsWith(\"!\") || p.startsWith(\"+\") || p.startsWith(\"-\") ? p.slice(1) : p;\n\t\t\treturn stripped !== pattern;\n\t\t});\n\n\t\tif (enabled) {\n\t\t\tupdated.push(enablePattern);\n\t\t} else {\n\t\t\tupdated.push(disablePattern);\n\t\t}\n\n\t\tif (scope === \"project\") {\n\t\t\tif (arrayKey === \"extensions\") {\n\t\t\t\tthis.settingsManager.setProjectExtensionPaths(updated);\n\t\t\t} else if (arrayKey === \"skills\") {\n\t\t\t\tthis.settingsManager.setProjectSkillPaths(updated);\n\t\t\t} else if (arrayKey === \"prompts\") {\n\t\t\t\tthis.settingsManager.setProjectPromptTemplatePaths(updated);\n\t\t\t} else if (arrayKey === \"themes\") {\n\t\t\t\tthis.settingsManager.setProjectThemePaths(updated);\n\t\t\t}\n\t\t} else {\n\t\t\tif (arrayKey === \"extensions\") {\n\t\t\t\tthis.settingsManager.setExtensionPaths(updated);\n\t\t\t} else if (arrayKey === \"skills\") {\n\t\t\t\tthis.settingsManager.setSkillPaths(updated);\n\t\t\t} else if (arrayKey === \"prompts\") {\n\t\t\t\tthis.settingsManager.setPromptTemplatePaths(updated);\n\t\t\t} else if (arrayKey === \"themes\") {\n\t\t\t\tthis.settingsManager.setThemePaths(updated);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate togglePackageResource(item: ResourceItem, enabled: boolean): void {\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst settings =\n\t\t\tscope === \"project\" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();\n\n\t\tconst packages = [...(settings.packages ?? [])] as PackageSource[];\n\t\tconst pkgIndex = packages.findIndex((pkg) => {\n\t\t\tconst source = typeof pkg === \"string\" ? pkg : pkg.source;\n\t\t\treturn source === item.metadata.source;\n\t\t});\n\n\t\tif (pkgIndex === -1) return;\n\n\t\tlet pkg = packages[pkgIndex];\n\n\t\t// Convert string to object form if needed\n\t\tif (typeof pkg === \"string\") {\n\t\t\tpkg = { source: pkg };\n\t\t\tpackages[pkgIndex] = pkg;\n\t\t}\n\n\t\t// Get the resource array for this type\n\t\tconst arrayKey = item.resourceType as \"extensions\" | \"skills\" | \"prompts\" | \"themes\";\n\t\tconst current = (pkg[arrayKey] ?? []) as string[];\n\n\t\t// Generate pattern relative to package root\n\t\tconst pattern = this.getPackageResourcePattern(item);\n\t\tconst disablePattern = `-${pattern}`;\n\t\tconst enablePattern = `+${pattern}`;\n\n\t\t// Filter out existing patterns for this resource\n\t\tconst updated = current.filter((p) => {\n\t\t\tconst stripped = p.startsWith(\"!\") || p.startsWith(\"+\") || p.startsWith(\"-\") ? p.slice(1) : p;\n\t\t\treturn stripped !== pattern;\n\t\t});\n\n\t\tif (enabled) {\n\t\t\tupdated.push(enablePattern);\n\t\t} else {\n\t\t\tupdated.push(disablePattern);\n\t\t}\n\n\t\t(pkg as Record<string, unknown>)[arrayKey] = updated.length > 0 ? updated : undefined;\n\n\t\t// Clean up empty filter object\n\t\tconst hasFilters = [\"extensions\", \"skills\", \"prompts\", \"themes\"].some(\n\t\t\t(k) => (pkg as Record<string, unknown>)[k] !== undefined,\n\t\t);\n\t\tif (!hasFilters) {\n\t\t\tpackages[pkgIndex] = (pkg as { source: string }).source;\n\t\t}\n\n\t\tif (scope === \"project\") {\n\t\t\tthis.settingsManager.setProjectPackages(packages);\n\t\t} else {\n\t\t\tthis.settingsManager.setPackages(packages);\n\t\t}\n\t}\n\n\tprivate setGlobalSkillEffectiveState(item: ResourceItem, state: SkillEffectiveState): void {\n\t\tconst enabled = state !== \"off\";\n\t\tif (item.metadata.origin === \"top-level\") this.toggleTopLevelResource(item, enabled);\n\t\telse this.togglePackageResource(item, enabled);\n\t\tthis.setSkillInvocationOverride(item, \"user\", stateInvocation(state));\n\t}\n\n\tprivate setProjectSkillOverride(item: ResourceItem, state: Exclude<ProjectSkillOverrideState, \"load\">): boolean {\n\t\tconst loadState: ProjectOverrideState = state === \"inherit\" ? \"inherit\" : state === \"off\" ? \"unload\" : \"load\";\n\t\tif (!this.setProjectResourceOverride(item, loadState)) return false;\n\t\tthis.setSkillInvocationOverride(item, \"project\", stateInvocation(state));\n\t\treturn true;\n\t}\n\n\t/** Runs after the load write, which creates the package entry a project override needs. */\n\tprivate setSkillInvocationOverride(\n\t\titem: ResourceItem,\n\t\tscope: SettingsScope,\n\t\toverride: SkillInvocationOverride | undefined,\n\t): void {\n\t\tconst layer = this.skillInvocation.layer(scope, item.metadata);\n\t\tif (!layer) return;\n\t\tconst overrides = withInvocation(layer, item.path, override);\n\t\tif (item.metadata.origin === \"top-level\") {\n\t\t\tif (scope === \"project\") this.settingsManager.setProjectSkillInvocationOverrides(overrides);\n\t\t\telse this.settingsManager.setSkillInvocationOverrides(overrides);\n\t\t\treturn;\n\t\t}\n\n\t\tconst settings =\n\t\t\tscope === \"project\" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();\n\t\tconst packages = [...(settings.packages ?? [])];\n\t\tconst pkgIndex = this.skillInvocation.findPackage(scope, item.metadata);\n\t\tconst current = packages[pkgIndex];\n\t\tif (current === undefined || (typeof current === \"string\" && !overrides)) return;\n\t\tconst pkg = typeof current === \"string\" ? { source: current } : { ...current };\n\t\tpkg.skillInvocationOverrides = overrides;\n\t\tif (overrides || RESOURCE_TYPES.some((key) => pkg[key] !== undefined)) packages[pkgIndex] = pkg;\n\t\telse if (scope === \"project\" && pkg.autoload === false) packages.splice(pkgIndex, 1);\n\t\telse packages[pkgIndex] = pkg.source;\n\t\tif (scope === \"project\") this.settingsManager.setProjectPackages(packages);\n\t\telse this.settingsManager.setPackages(packages);\n\t}\n\n\tprivate renderCheckbox(item: ResourceItem): string {\n\t\tif (item.resourceType === \"skills\") {\n\t\t\tif (this.writeScope === \"project\") {\n\t\t\t\tconst state = this.getProjectSkillOverrideState(item);\n\t\t\t\tif (state === \"on\") return theme.fg(\"success\", \"[+]\");\n\t\t\t\tif (state === \"user-only\") return theme.fg(\"accent\", \"[u]\");\n\t\t\t\tif (state === \"off\") return theme.fg(\"warning\", \"[-]\");\n\t\t\t\tif (state === \"load\") {\n\t\t\t\t\tconst effectiveState = this.getSkillEffectiveState(item);\n\t\t\t\t\tif (effectiveState === \"user-only\") return theme.fg(\"accent\", \"[u]\");\n\t\t\t\t\tif (effectiveState === \"off\") return theme.fg(\"warning\", \"[-]\");\n\t\t\t\t\treturn theme.fg(\"success\", \"[+]\");\n\t\t\t\t}\n\t\t\t\tconst inheritedState = this.getInheritedSkillEffectiveState(item);\n\t\t\t\treturn theme.fg(\"dim\", inheritedState === \"on\" ? \"[x]\" : inheritedState === \"user-only\" ? \"[u]\" : \"[ ]\");\n\t\t\t}\n\t\t\tconst state = this.getSkillEffectiveState(item);\n\t\t\tif (state === \"on\") return theme.fg(\"success\", \"[x]\");\n\t\t\tif (state === \"user-only\") return theme.fg(\"accent\", \"[u]\");\n\t\t\treturn theme.fg(\"dim\", \"[ ]\");\n\t\t}\n\n\t\tif (this.writeScope === \"project\") {\n\t\t\tconst state = this.getProjectOverrideState(item);\n\t\t\tif (state === \"load\") return theme.fg(\"success\", \"[+]\");\n\t\t\tif (state === \"unload\") return theme.fg(\"warning\", \"[-]\");\n\t\t\treturn theme.fg(\"dim\", item.enabled ? \"[x]\" : \"[ ]\");\n\t\t}\n\t\treturn item.enabled ? theme.fg(\"success\", \"[x]\") : theme.fg(\"dim\", \"[ ]\");\n\t}\n\n\tprivate getItemSuffix(item: ResourceItem): string {\n\t\tif (item.resourceType === \"skills\") {\n\t\t\tif (this.writeScope === \"project\") {\n\t\t\t\tconst state = this.getProjectSkillOverrideState(item);\n\t\t\t\tif (state === \"on\") return theme.fg(\"muted\", \" project on\");\n\t\t\t\tif (state === \"user-only\") return theme.fg(\"muted\", \" project user only\");\n\t\t\t\tif (state === \"off\") return theme.fg(\"muted\", \" project off\");\n\t\t\t\tif (state === \"load\") return theme.fg(\"muted\", \" project load\");\n\t\t\t\treturn this.isInheritedGlobalItem(item) ? theme.fg(\"dim\", \" inherited global\") : \"\";\n\t\t\t}\n\t\t\treturn this.getSkillEffectiveState(item) === \"user-only\" ? theme.fg(\"accent\", \" user only\") : \"\";\n\t\t}\n\n\t\tif (this.writeScope !== \"project\") return \"\";\n\t\tconst state = this.getProjectOverrideState(item);\n\t\tif (state === \"load\") return theme.fg(\"muted\", \" project load\");\n\t\tif (state === \"unload\") return theme.fg(\"muted\", \" project unload\");\n\t\treturn this.isInheritedGlobalItem(item) ? theme.fg(\"dim\", \" inherited global\") : \"\";\n\t}\n\n\tprivate isDimmedItem(item: ResourceItem): boolean {\n\t\tif (this.writeScope !== \"project\" || !this.isInheritedGlobalItem(item)) return false;\n\t\treturn item.resourceType === \"skills\"\n\t\t\t? this.getProjectSkillOverrideState(item) === \"inherit\"\n\t\t\t: this.getProjectOverrideState(item) === \"inherit\";\n\t}\n\n\t/** The state settings give a skill in the current mode; global mode ignores project settings. */\n\tprivate getSkillEffectiveState(item: ResourceItem): SkillEffectiveState {\n\t\tconst scopes: SettingsScope[] = this.writeScope === \"project\" ? [\"project\", \"user\"] : [\"user\"];\n\t\treturn resolveSkillEffectiveState({\n\t\t\tenabled: item.enabled,\n\t\t\tinvocationOverride: this.skillInvocation.resolve(item.path, item.metadata, scopes),\n\t\t\tfrontmatterDisableModelInvocation: item.frontmatterDisableModelInvocation,\n\t\t});\n\t}\n\n\tprivate getInheritedSkillEffectiveState(item: ResourceItem): SkillEffectiveState {\n\t\treturn resolveSkillEffectiveState({\n\t\t\tenabled: this.getInheritedEnabled(item),\n\t\t\tinvocationOverride: this.skillInvocation.resolve(item.path, item.metadata, [\"user\"]),\n\t\t\tfrontmatterDisableModelInvocation: item.frontmatterDisableModelInvocation,\n\t\t});\n\t}\n\n\tprivate getNextProjectSkillOverrideState(item: ResourceItem): Exclude<ProjectSkillOverrideState, \"load\"> {\n\t\tconst states: SkillEffectiveState[] = [\"on\", \"user-only\", \"off\"];\n\t\tconst inheritedIndex = states.indexOf(this.getInheritedSkillEffectiveState(item));\n\t\tconst sequence = [...states.slice(inheritedIndex + 1), ...states.slice(0, inheritedIndex + 1)];\n\t\tconst current = this.getProjectSkillOverrideState(item);\n\t\tif (current === \"inherit\") return sequence[0]!;\n\t\tif (current === \"load\") return \"inherit\";\n\t\tconst currentIndex = sequence.indexOf(current);\n\t\treturn sequence[currentIndex + 1] ?? \"inherit\";\n\t}\n\n\tprivate getProjectSkillOverrideState(item: ResourceItem): ProjectSkillOverrideState {\n\t\tif (this.writeScope !== \"project\") return \"inherit\";\n\t\tconst loadState = this.getProjectOverrideState(item);\n\t\tif (loadState === \"unload\") return \"off\";\n\t\tconst layer = this.skillInvocation.layer(\"project\", item.metadata);\n\t\tconst invocation = layer ? matchInvocation(layer, item.path).override : undefined;\n\t\tif (invocation) return invocation === \"user-only\" ? \"user-only\" : \"on\";\n\t\treturn loadState;\n\t}\n\n\tprivate setProjectResourceOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\treturn item.metadata.origin === \"top-level\"\n\t\t\t? this.setProjectTopLevelOverride(item, state)\n\t\t\t: this.setProjectPackageOverride(item, state);\n\t}\n\n\tprivate setProjectTopLevelOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\tconst current = (this.settingsManager.getProjectSettings()[item.resourceType] ?? []) as string[];\n\t\tconst pattern = this.isInheritedGlobalItem(item) ? item.path : this.getResourcePatternForScope(item, \"project\");\n\t\tconst patterns = this.getTopLevelOverridePatterns(item, \"project\");\n\t\tconst updated = current.filter((entry) => {\n\t\t\tconst target = this.getPatternEntryTarget(entry);\n\t\t\tif ((entry.startsWith(\"!\") || entry.startsWith(\"+\") || entry.startsWith(\"-\")) && patterns.has(target))\n\t\t\t\treturn false;\n\t\t\treturn !(state === \"inherit\" && this.isInheritedGlobalItem(item) && target === pattern);\n\t\t});\n\t\tif (state !== \"inherit\") {\n\t\t\t// Project entries name inherited files to override them. Built-in paths need no entry.\n\t\t\tif (this.isInheritedGlobalItem(item) && item.metadata.source !== \"builtin\" && !updated.includes(pattern))\n\t\t\t\tupdated.push(pattern);\n\t\t\tupdated.push(`${state === \"load\" ? \"+\" : \"-\"}${pattern}`);\n\t\t}\n\t\tthis.setProjectTopLevelPaths(item.resourceType, updated);\n\t\treturn true;\n\t}\n\n\tprivate setProjectTopLevelPaths(key: ResourceType, paths: string[]): void {\n\t\tif (key === \"extensions\") this.settingsManager.setProjectExtensionPaths(paths);\n\t\telse if (key === \"skills\") this.settingsManager.setProjectSkillPaths(paths);\n\t\telse if (key === \"prompts\") this.settingsManager.setProjectPromptTemplatePaths(paths);\n\t\telse this.settingsManager.setProjectThemePaths(paths);\n\t}\n\n\tprivate setProjectPackageOverride(item: ResourceItem, state: ProjectOverrideState): boolean {\n\t\tconst packages = [...(this.settingsManager.getProjectSettings().packages ?? [])] as PackageSource[];\n\t\tlet pkgIndex = packages.findIndex((pkg) =>\n\t\t\tthis.isSamePackage(\n\t\t\t\titem.metadata.source,\n\t\t\t\tthis.getItemScope(item),\n\t\t\t\ttypeof pkg === \"string\" ? pkg : pkg.source,\n\t\t\t\t\"project\",\n\t\t\t),\n\t\t);\n\t\tif (pkgIndex === -1) {\n\t\t\tif (state === \"inherit\") return false;\n\t\t\tpackages.push(this.createPackageOverrideSource(item));\n\t\t\tpkgIndex = packages.length - 1;\n\t\t}\n\t\tlet pkg = packages[pkgIndex];\n\t\tif (pkg === undefined) return false;\n\t\tif (typeof pkg === \"string\") {\n\t\t\tpkg = { source: pkg };\n\t\t\tpackages[pkgIndex] = pkg;\n\t\t}\n\t\tconst pattern = this.getPackageResourcePattern(item);\n\t\tconst updated = ((pkg[item.resourceType] ?? []) as string[]).filter(\n\t\t\t(entry) => this.getPatternEntryTarget(entry) !== pattern,\n\t\t);\n\t\tif (state !== \"inherit\") updated.push(`${state === \"load\" ? \"+\" : \"-\"}${pattern}`);\n\t\t(pkg as Record<string, unknown>)[item.resourceType] = updated.length > 0 ? updated : undefined;\n\t\tif (\n\t\t\t!RESOURCE_TYPES.some((key) => (pkg as Record<string, unknown>)[key] !== undefined) &&\n\t\t\tpkg.skillInvocationOverrides === undefined\n\t\t) {\n\t\t\tif (pkg.autoload === false) packages.splice(pkgIndex, 1);\n\t\t\telse packages[pkgIndex] = pkg.source;\n\t\t}\n\t\tthis.settingsManager.setProjectPackages(packages);\n\t\treturn true;\n\t}\n\n\tprivate getNextOverrideState(item: ResourceItem): ProjectOverrideState {\n\t\tconst state = this.getProjectOverrideState(item);\n\t\tconst inheritedEnabled = this.getInheritedEnabled(item);\n\t\tif (state === \"inherit\") return inheritedEnabled ? \"unload\" : \"load\";\n\t\tif (state === \"unload\") return inheritedEnabled ? \"load\" : \"inherit\";\n\t\treturn inheritedEnabled ? \"inherit\" : \"unload\";\n\t}\n\n\tprivate getProjectOverrideState(item: ResourceItem): ProjectOverrideState {\n\t\tif (this.writeScope !== \"project\") return \"inherit\";\n\t\tif (item.metadata.origin === \"top-level\") {\n\t\t\treturn this.getOverrideStateFromEntries(\n\t\t\t\t(this.settingsManager.getProjectSettings()[item.resourceType] ?? []) as string[],\n\t\t\t\tthis.getTopLevelOverridePatterns(item, \"project\"),\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t\tconst pkg = this.findMatchingPackageSource(item, \"project\");\n\t\tif (typeof pkg !== \"object\") return \"inherit\";\n\t\tconst entries = pkg[item.resourceType];\n\t\tif (entries === undefined) return \"inherit\";\n\t\treturn this.getOverrideStateFromEntries(entries, this.getPackageOverridePatterns(item), pkg.autoload !== false);\n\t}\n\n\tprivate getOverrideStateFromEntries(\n\t\tentries: string[],\n\t\tpatterns: Set<string>,\n\t\temptyArrayIsUnload: boolean,\n\t): ProjectOverrideState {\n\t\tif (entries.length === 0 && emptyArrayIsUnload) return \"unload\";\n\t\tlet state: ProjectOverrideState = \"inherit\";\n\t\tfor (const entry of entries) {\n\t\t\tif (!hasResourcePattern(patterns, this.getPatternEntryTarget(entry))) continue;\n\t\t\tif (entry.startsWith(\"!\") || entry.startsWith(\"-\")) state = \"unload\";\n\t\t\telse state = \"load\";\n\t\t}\n\t\treturn state;\n\t}\n\n\tprivate getInheritedEnabled(item: ResourceItem): boolean {\n\t\treturn (\n\t\t\tthis.inheritedEnabledByKey.get(this.getResourceItemKey(item)) ??\n\t\t\t(this.getItemScope(item) === \"user\" ? item.enabled : true)\n\t\t);\n\t}\n\n\tprivate isInheritedGlobalItem(item: ResourceItem): boolean {\n\t\treturn this.getItemScope(item) === \"user\" || this.inheritedEnabledByKey.has(this.getResourceItemKey(item));\n\t}\n\n\tprivate getTopLevelOverridePatterns(item: ResourceItem, scope: SettingsScope): Set<string> {\n\t\tconst baseDir = this.getTopLevelBaseDir(scope);\n\t\tconst patterns = new Set<string>([\n\t\t\tthis.getResourcePatternForScope(item, scope),\n\t\t\titem.path,\n\t\t\trelative(baseDir, item.path),\n\t\t]);\n\t\tif (item.metadata.baseDir) patterns.add(relative(item.metadata.baseDir, item.path));\n\t\tif (item.resourceType === \"skills\" && basename(item.path) === \"SKILL.md\") {\n\t\t\tconst parentDir = dirname(item.path);\n\t\t\tpatterns.add(parentDir);\n\t\t\tpatterns.add(relative(baseDir, parentDir));\n\t\t\tif (item.metadata.baseDir) patterns.add(relative(item.metadata.baseDir, parentDir));\n\t\t}\n\t\treturn patterns;\n\t}\n\n\tprivate getResourcePatternForScope(item: ResourceItem, scope: SettingsScope): string {\n\t\tconst sourceScope = this.getItemScope(item);\n\t\tif (scope !== sourceScope || item.metadata.source === \"builtin\") return item.path;\n\t\tconst baseDir = item.metadata.baseDir ?? this.getTopLevelBaseDir(sourceScope);\n\t\treturn relative(baseDir, item.path);\n\t}\n\n\tprivate createPackageOverrideSource(item: ResourceItem): PackageSource {\n\t\tconst source = item.metadata.source;\n\t\tif (!isLocalPath(source)) return { source, autoload: false };\n\t\tconst sourcePath = resolvePath(source, this.getTopLevelBaseDir(this.getItemScope(item)), { trim: true });\n\t\treturn { source: relative(this.getTopLevelBaseDir(\"project\"), sourcePath) || \".\", autoload: false };\n\t}\n\n\t/** Package entries match by the identity package loading dedupes on, so `npm:pkg@1` and `npm:pkg` are one package. */\n\tprivate isSamePackage(\n\t\tleftSource: string,\n\t\tleftScope: SettingsScope,\n\t\trightSource: string,\n\t\trightScope: SettingsScope,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.packageManager.getPackageIdentity(leftSource, leftScope) ===\n\t\t\tthis.packageManager.getPackageIdentity(rightSource, rightScope)\n\t\t);\n\t}\n\n\tprivate findMatchingPackageSource(item: ResourceItem, targetScope: SettingsScope): PackageSource | undefined {\n\t\tconst settings =\n\t\t\ttargetScope === \"project\"\n\t\t\t\t? this.settingsManager.getProjectSettings()\n\t\t\t\t: this.settingsManager.getGlobalSettings();\n\t\treturn (settings.packages ?? []).find((pkg) =>\n\t\t\tthis.isSamePackage(\n\t\t\t\titem.metadata.source,\n\t\t\t\tthis.getItemScope(item),\n\t\t\t\ttypeof pkg === \"string\" ? pkg : pkg.source,\n\t\t\t\ttargetScope,\n\t\t\t),\n\t\t);\n\t}\n\n\tprivate getPatternEntryTarget(entry: string): string {\n\t\treturn entry.startsWith(\"!\") || entry.startsWith(\"+\") || entry.startsWith(\"-\") ? entry.slice(1) : entry;\n\t}\n\n\tprivate getResourceItemKey(item: ResourceItem): string {\n\t\treturn `${item.resourceType}:${canonicalizePath(item.path)}`;\n\t}\n\n\tprivate getItemScope(item: ResourceItem): SettingsScope {\n\t\treturn item.metadata.scope === \"project\" ? \"project\" : \"user\";\n\t}\n\n\tprivate getTopLevelBaseDir(scope: \"user\" | \"project\"): string {\n\t\treturn scope === \"project\" ? join(this.cwd, CONFIG_DIR_NAME) : this.agentDir;\n\t}\n\n\tprivate getResourcePattern(item: ResourceItem): string {\n\t\tif (item.metadata.source === \"builtin\") return item.path;\n\t\tconst scope = item.metadata.scope as \"user\" | \"project\";\n\t\tconst baseDir = item.metadata.baseDir ?? this.getTopLevelBaseDir(scope);\n\t\treturn relative(baseDir, item.path);\n\t}\n\n\tprivate getPackageResourcePattern(item: ResourceItem): string {\n\t\tconst baseDir = item.metadata.baseDir ?? dirname(item.path);\n\t\treturn relative(baseDir, item.path);\n\t}\n\n\t/** Package filter entries that name an item; a skill can also be named by its absolute path or directory. */\n\tprivate getPackageOverridePatterns(item: ResourceItem): Set<string> {\n\t\tconst pattern = this.getPackageResourcePattern(item);\n\t\tif (item.resourceType !== \"skills\") return new Set([pattern]);\n\t\tconst patterns = new Set([pattern, item.path]);\n\t\tif (basename(item.path) === \"SKILL.md\") patterns.add(dirname(pattern)).add(dirname(item.path));\n\t\treturn patterns;\n\t}\n}\n\nexport class ConfigSelectorComponent extends Container implements Focusable {\n\tprivate header: ConfigSelectorHeader;\n\tprivate resourceList: ResourceList;\n\tprivate writeScope: ConfigWriteScope;\n\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.resourceList.focused = value;\n\t}\n\n\tconstructor(\n\t\tresolvedPaths: ScopedResolvedPaths,\n\t\tsettingsManager: SettingsManager,\n\t\tcwd: string,\n\t\tagentDir: string,\n\t\tonClose: () => void,\n\t\tonExit: () => void,\n\t\trequestRender: () => void,\n\t\tterminalHeight?: number,\n\t\twriteScope: ConfigWriteScope = \"global\",\n\t\tprojectModeAvailable = true,\n\t) {\n\t\tsuper();\n\n\t\tthis.writeScope = writeScope;\n\t\tconst groupsByScope = {\n\t\t\tglobal: buildGroups(resolvedPaths.global, agentDir),\n\t\t\tproject: buildGroups(resolvedPaths.project, agentDir),\n\t\t};\n\n\t\t// Add header\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.header = new ConfigSelectorHeader(this.writeScope, projectModeAvailable);\n\t\tthis.addChild(this.header);\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// Resource list\n\t\tthis.resourceList = new ResourceList(\n\t\t\tgroupsByScope,\n\t\t\tsettingsManager,\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tterminalHeight,\n\t\t\tthis.writeScope,\n\t\t);\n\t\tthis.resourceList.onCancel = onClose;\n\t\tthis.resourceList.onExit = onExit;\n\t\tthis.resourceList.onToggle = () => requestRender();\n\t\tif (projectModeAvailable) {\n\t\t\tthis.resourceList.onSwitchMode = () => {\n\t\t\t\tthis.switchWriteScope();\n\t\t\t\trequestRender();\n\t\t\t};\n\t\t}\n\t\tthis.addChild(this.resourceList);\n\n\t\t// Bottom border\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tprivate switchWriteScope(): void {\n\t\tthis.writeScope = this.writeScope === \"global\" ? \"project\" : \"global\";\n\t\tthis.header.setWriteScope(this.writeScope);\n\t\tthis.resourceList.setWriteScope(this.writeScope);\n\t}\n\n\tgetResourceList(): ResourceList {\n\t\treturn this.resourceList;\n\t}\n}\n"]}
@@ -7,6 +7,7 @@
7
7
  * Distinct from the tool-call marker in tool-view/style.ts, which expresses a
8
8
  * call's lifecycle (pending, success, error), not a task's status.
9
9
  */
10
+ import type { TaskStatus } from "../../../core/tasks/types.ts";
10
11
  export type StatusMarkerColor = "success" | "error" | "warning" | "accent" | "muted";
11
12
  export interface StatusMarker {
12
13
  glyph: string;
@@ -19,7 +20,7 @@ export declare function statusSpinnerFrame(now: number): string;
19
20
  * Map an execution status to its marker. Pass `now` to animate a running
20
21
  * status as a spinner frame; without it running renders as the static `›`.
21
22
  */
22
- export declare function statusMarker(status: string, opts?: {
23
+ export declare function statusMarker(status: TaskStatus, opts?: {
23
24
  now?: number;
24
25
  }): StatusMarker;
25
26
  //# sourceMappingURL=status-marker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-marker.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/status-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErF,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;CACzB;AASD,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAwD,CAAC;AAC5G,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAoBlF"}
1
+ {"version":3,"file":"status-marker.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/status-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErF,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;CACzB;AASD,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAwD,CAAC;AAC5G,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAmBtF"}
@@ -37,7 +37,6 @@ export function statusMarker(status, opts) {
37
37
  case "cancelled":
38
38
  case "stopping":
39
39
  case "partial":
40
- case "aborted":
41
40
  return { glyph: "○", color: "warning" };
42
41
  case "queued":
43
42
  return { glyph: "○", color: "muted" };
@@ -1 +1 @@
1
- {"version":3,"file":"status-marker.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/status-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5G,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,0BAA0B,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC1F,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAuB;IACnE,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjG,KAAK,WAAW;YACf,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,QAAQ;YACZ,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,QAAQ;YACZ,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC;YACC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxC,CAAC;AACF,CAAC","sourcesContent":["/**\n * Shared status-marker vocabulary for long-running executions (background\n * tasks): one glyph+color mapping so the /tasks panel, transcript\n * notifications, completion cards and extension views describe the same status\n * the same way. Pure data; consumers apply theme.fg(marker.color, glyph).\n *\n * Distinct from the tool-call marker in tool-view/style.ts, which expresses a\n * call's lifecycle (pending, success, error), not a task's status.\n */\n\nexport type StatusMarkerColor = \"success\" | \"error\" | \"warning\" | \"accent\" | \"muted\";\n\nexport interface StatusMarker {\n\tglyph: string;\n\tcolor: StatusMarkerColor;\n}\n\n/**\n * A breathing dot-to-star bloom: the sequence plays forward to full bloom\n * and back, holding each extreme for two ticks. The mid frame uses ✼ rather\n * than the more common ✳ because U+2733 carries the Unicode Emoji property\n * and some terminals render it as a double-width color emoji.\n */\nconst SPINNER_BLOOM = [\"·\", \"✢\", \"✼\", \"✶\", \"✻\", \"✽\"];\nexport const STATUS_SPINNER_FRAMES: readonly string[] = [...SPINNER_BLOOM, ...[...SPINNER_BLOOM].reverse()];\nexport const STATUS_SPINNER_INTERVAL_MS = 120;\n\nexport function statusSpinnerFrame(now: number): string {\n\tconst frame = Math.floor(now / STATUS_SPINNER_INTERVAL_MS) % STATUS_SPINNER_FRAMES.length;\n\treturn STATUS_SPINNER_FRAMES[frame] ?? STATUS_SPINNER_FRAMES[0] ?? \"·\";\n}\n\n/**\n * Map an execution status to its marker. Pass `now` to animate a running\n * status as a spinner frame; without it running renders as the static `›`.\n */\nexport function statusMarker(status: string, opts?: { now?: number }): StatusMarker {\n\tswitch (status) {\n\t\tcase \"running\":\n\t\t\treturn { glyph: opts?.now !== undefined ? statusSpinnerFrame(opts.now) : \"›\", color: \"accent\" };\n\t\tcase \"completed\":\n\t\t\treturn { glyph: \"✓\", color: \"success\" };\n\t\tcase \"failed\":\n\t\t\treturn { glyph: \"×\", color: \"error\" };\n\t\tcase \"timeout\":\n\t\t\treturn { glyph: \"×\", color: \"warning\" };\n\t\tcase \"cancelled\":\n\t\tcase \"stopping\":\n\t\tcase \"partial\":\n\t\tcase \"aborted\":\n\t\t\treturn { glyph: \"○\", color: \"warning\" };\n\t\tcase \"queued\":\n\t\t\treturn { glyph: \"○\", color: \"muted\" };\n\t\tdefault:\n\t\t\treturn { glyph: \"•\", color: \"muted\" };\n\t}\n}\n"]}
1
+ {"version":3,"file":"status-marker.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/status-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5G,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,0BAA0B,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC1F,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,IAAuB;IACvE,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACjG,KAAK,WAAW;YACf,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,QAAQ;YACZ,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,KAAK,QAAQ;YACZ,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC;YACC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxC,CAAC;AACF,CAAC","sourcesContent":["/**\n * Shared status-marker vocabulary for long-running executions (background\n * tasks): one glyph+color mapping so the /tasks panel, transcript\n * notifications, completion cards and extension views describe the same status\n * the same way. Pure data; consumers apply theme.fg(marker.color, glyph).\n *\n * Distinct from the tool-call marker in tool-view/style.ts, which expresses a\n * call's lifecycle (pending, success, error), not a task's status.\n */\n\nimport type { TaskStatus } from \"../../../core/tasks/types.ts\";\n\nexport type StatusMarkerColor = \"success\" | \"error\" | \"warning\" | \"accent\" | \"muted\";\n\nexport interface StatusMarker {\n\tglyph: string;\n\tcolor: StatusMarkerColor;\n}\n\n/**\n * A breathing dot-to-star bloom: the sequence plays forward to full bloom\n * and back, holding each extreme for two ticks. The mid frame uses ✼ rather\n * than the more common ✳ because U+2733 carries the Unicode Emoji property\n * and some terminals render it as a double-width color emoji.\n */\nconst SPINNER_BLOOM = [\"·\", \"✢\", \"✼\", \"✶\", \"✻\", \"✽\"];\nexport const STATUS_SPINNER_FRAMES: readonly string[] = [...SPINNER_BLOOM, ...[...SPINNER_BLOOM].reverse()];\nexport const STATUS_SPINNER_INTERVAL_MS = 120;\n\nexport function statusSpinnerFrame(now: number): string {\n\tconst frame = Math.floor(now / STATUS_SPINNER_INTERVAL_MS) % STATUS_SPINNER_FRAMES.length;\n\treturn STATUS_SPINNER_FRAMES[frame] ?? STATUS_SPINNER_FRAMES[0] ?? \"·\";\n}\n\n/**\n * Map an execution status to its marker. Pass `now` to animate a running\n * status as a spinner frame; without it running renders as the static `›`.\n */\nexport function statusMarker(status: TaskStatus, opts?: { now?: number }): StatusMarker {\n\tswitch (status) {\n\t\tcase \"running\":\n\t\t\treturn { glyph: opts?.now !== undefined ? statusSpinnerFrame(opts.now) : \"›\", color: \"accent\" };\n\t\tcase \"completed\":\n\t\t\treturn { glyph: \"✓\", color: \"success\" };\n\t\tcase \"failed\":\n\t\t\treturn { glyph: \"×\", color: \"error\" };\n\t\tcase \"timeout\":\n\t\t\treturn { glyph: \"×\", color: \"warning\" };\n\t\tcase \"cancelled\":\n\t\tcase \"stopping\":\n\t\tcase \"partial\":\n\t\t\treturn { glyph: \"○\", color: \"warning\" };\n\t\tcase \"queued\":\n\t\t\treturn { glyph: \"○\", color: \"muted\" };\n\t\tdefault:\n\t\t\treturn { glyph: \"•\", color: \"muted\" };\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -2932,7 +2932,12 @@ export class InteractiveMode {
2932
2932
  }
2933
2933
  this.chatContainer.clear();
2934
2934
  // The latest compaction is prepended for model context; append it below at its chronological position.
2935
- this.renderSessionEntries(entries.slice(1));
2935
+ // Entries appended after it, such as those written by session_compact handlers, follow the summary.
2936
+ const branch = this.sessionManager.getBranch();
2937
+ const compactionIndex = branch.findIndex((entry) => entry.id === entries[0].id);
2938
+ const entriesAfterCompaction = new Set(branch.slice(compactionIndex + 1).map((entry) => entry.id));
2939
+ const retainedEntries = entries.slice(1);
2940
+ this.renderSessionEntries(retainedEntries.filter((entry) => !entriesAfterCompaction.has(entry.id)));
2936
2941
  this.addMessageToChat(createCompactionSummaryMessage(event.result.summary, event.result.tokensBefore, new Date().toISOString()));
2937
2942
  if (event.result.usage) {
2938
2943
  this.addCompactionCostNotice({
@@ -2941,6 +2946,7 @@ export class InteractiveMode {
2941
2946
  usage: event.result.usage,
2942
2947
  });
2943
2948
  }
2949
+ this.renderSessionEntries(retainedEntries.filter((entry) => entriesAfterCompaction.has(entry.id)));
2944
2950
  this.footer.invalidate();
2945
2951
  }
2946
2952
  else if (event.errorMessage) {