opkg 0.6.1 → 0.7.0

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 (487) hide show
  1. package/README.md +109 -186
  2. package/assets/openpackage_ascii_dark.png +0 -0
  3. package/assets/openpackage_ascii_light.png +0 -0
  4. package/dist/commands/add.js +34 -10
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/apply.js +16 -0
  7. package/dist/commands/apply.js.map +1 -0
  8. package/dist/commands/delete.js +1 -1
  9. package/dist/commands/delete.js.map +1 -1
  10. package/dist/commands/install.js +177 -8
  11. package/dist/commands/install.js.map +1 -1
  12. package/dist/commands/list.js +2 -2
  13. package/dist/commands/list.js.map +1 -1
  14. package/dist/commands/login.js +1 -1
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/logout.js +1 -1
  17. package/dist/commands/logout.js.map +1 -1
  18. package/dist/commands/new.js +125 -0
  19. package/dist/commands/new.js.map +1 -0
  20. package/dist/commands/pack.js +7 -13
  21. package/dist/commands/pack.js.map +1 -1
  22. package/dist/commands/pull.js +1 -1
  23. package/dist/commands/pull.js.map +1 -1
  24. package/dist/commands/push.js +1 -1
  25. package/dist/commands/push.js.map +1 -1
  26. package/dist/commands/remove.js +63 -0
  27. package/dist/commands/remove.js.map +1 -0
  28. package/dist/commands/save.js +11 -17
  29. package/dist/commands/save.js.map +1 -1
  30. package/dist/commands/set.js +33 -0
  31. package/dist/commands/set.js.map +1 -0
  32. package/dist/commands/show.js +16 -94
  33. package/dist/commands/show.js.map +1 -1
  34. package/dist/commands/status.js +26 -701
  35. package/dist/commands/status.js.map +1 -1
  36. package/dist/commands/uninstall.js +14 -427
  37. package/dist/commands/uninstall.js.map +1 -1
  38. package/dist/constants/index.js +72 -16
  39. package/dist/constants/index.js.map +1 -1
  40. package/dist/core/add/add-conflict-handler.js +1 -8
  41. package/dist/core/add/add-conflict-handler.js.map +1 -1
  42. package/dist/core/add/add-pipeline.js +12 -10
  43. package/dist/core/add/add-pipeline.js.map +1 -1
  44. package/dist/core/add/add-to-source-pipeline.js +123 -0
  45. package/dist/core/add/add-to-source-pipeline.js.map +1 -0
  46. package/dist/core/add/package-index-updater.js +77 -78
  47. package/dist/core/add/package-index-updater.js.map +1 -1
  48. package/dist/core/add/platform-path-transformer.js +6 -4
  49. package/dist/core/add/platform-path-transformer.js.map +1 -1
  50. package/dist/core/add/source-collector.js +2 -3
  51. package/dist/core/add/source-collector.js.map +1 -1
  52. package/dist/core/apply/apply-pipeline.js +110 -0
  53. package/dist/core/apply/apply-pipeline.js.map +1 -0
  54. package/dist/core/dependency-resolver.js +263 -21
  55. package/dist/core/dependency-resolver.js.map +1 -1
  56. package/dist/core/discovery/file-discovery.js +1 -2
  57. package/dist/core/discovery/file-discovery.js.map +1 -1
  58. package/dist/core/discovery/platform-files-discovery.js +33 -18
  59. package/dist/core/discovery/platform-files-discovery.js.map +1 -1
  60. package/dist/core/flows/flow-executor.js +974 -0
  61. package/dist/core/flows/flow-executor.js.map +1 -0
  62. package/dist/core/flows/flow-inverter.js +442 -0
  63. package/dist/core/flows/flow-inverter.js.map +1 -0
  64. package/dist/core/flows/flow-key-extractor.js +101 -0
  65. package/dist/core/flows/flow-key-extractor.js.map +1 -0
  66. package/dist/core/flows/flow-key-mapper.js +382 -0
  67. package/dist/core/flows/flow-key-mapper.js.map +1 -0
  68. package/dist/core/flows/flow-transforms.js +632 -0
  69. package/dist/core/flows/flow-transforms.js.map +1 -0
  70. package/dist/core/flows/map-pipeline/context.js +73 -0
  71. package/dist/core/flows/map-pipeline/context.js.map +1 -0
  72. package/dist/core/flows/map-pipeline/index.js +156 -0
  73. package/dist/core/flows/map-pipeline/index.js.map +1 -0
  74. package/dist/core/flows/map-pipeline/operations/copy.js +104 -0
  75. package/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
  76. package/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
  77. package/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
  78. package/dist/core/flows/map-pipeline/operations/rename.js +102 -0
  79. package/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
  80. package/dist/core/flows/map-pipeline/operations/set.js +50 -0
  81. package/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
  82. package/dist/core/flows/map-pipeline/operations/switch.js +79 -0
  83. package/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
  84. package/dist/core/flows/map-pipeline/operations/transform.js +543 -0
  85. package/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
  86. package/dist/core/flows/map-pipeline/operations/unset.js +65 -0
  87. package/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
  88. package/dist/core/flows/map-pipeline/types.js +8 -0
  89. package/dist/core/flows/map-pipeline/types.js.map +1 -0
  90. package/dist/core/flows/map-pipeline/utils.js +278 -0
  91. package/dist/core/flows/map-pipeline/utils.js.map +1 -0
  92. package/dist/core/flows/platform-converter.js +328 -0
  93. package/dist/core/flows/platform-converter.js.map +1 -0
  94. package/dist/core/flows/source-resolver.js +192 -0
  95. package/dist/core/flows/source-resolver.js.map +1 -0
  96. package/dist/core/flows/toml-domain-transforms.js +23 -0
  97. package/dist/core/flows/toml-domain-transforms.js.map +1 -0
  98. package/dist/core/install/bulk-install-pipeline.js +68 -7
  99. package/dist/core/install/bulk-install-pipeline.js.map +1 -1
  100. package/dist/core/install/canonical-plan.js +3 -3
  101. package/dist/core/install/canonical-plan.js.map +1 -1
  102. package/dist/core/install/dry-run.js +3 -3
  103. package/dist/core/install/dry-run.js.map +1 -1
  104. package/dist/core/install/flow-based-installer.js +1158 -0
  105. package/dist/core/install/flow-based-installer.js.map +1 -0
  106. package/dist/core/install/flow-workspace-tracker.js +111 -0
  107. package/dist/core/install/flow-workspace-tracker.js.map +1 -0
  108. package/dist/core/install/format-detector.js +228 -0
  109. package/dist/core/install/format-detector.js.map +1 -0
  110. package/dist/core/install/git-package-loader.js +20 -0
  111. package/dist/core/install/git-package-loader.js.map +1 -0
  112. package/dist/core/install/install-errors.js +1 -1
  113. package/dist/core/install/install-errors.js.map +1 -1
  114. package/dist/core/install/install-flow.js +34 -14
  115. package/dist/core/install/install-flow.js.map +1 -1
  116. package/dist/core/install/install-pipeline.js +52 -17
  117. package/dist/core/install/install-pipeline.js.map +1 -1
  118. package/dist/core/install/install-reporting.js +26 -8
  119. package/dist/core/install/install-reporting.js.map +1 -1
  120. package/dist/core/install/local-source-resolution.js +103 -0
  121. package/dist/core/install/local-source-resolution.js.map +1 -0
  122. package/dist/core/install/marketplace-handler.js +221 -0
  123. package/dist/core/install/marketplace-handler.js.map +1 -0
  124. package/dist/core/install/path-install-pipeline.js +241 -0
  125. package/dist/core/install/path-install-pipeline.js.map +1 -0
  126. package/dist/core/install/path-package-loader.js +116 -0
  127. package/dist/core/install/path-package-loader.js.map +1 -0
  128. package/dist/core/install/plugin-detector.js +72 -0
  129. package/dist/core/install/plugin-detector.js.map +1 -0
  130. package/dist/core/install/plugin-to-universal-converter.js +218 -0
  131. package/dist/core/install/plugin-to-universal-converter.js.map +1 -0
  132. package/dist/core/install/plugin-transformer.js +191 -0
  133. package/dist/core/install/plugin-transformer.js.map +1 -0
  134. package/dist/core/install/version-selection.js +1 -1
  135. package/dist/core/install/version-selection.js.map +1 -1
  136. package/dist/core/openpackage.js +40 -22
  137. package/dist/core/openpackage.js.map +1 -1
  138. package/dist/core/pack/pack-output.js +62 -0
  139. package/dist/core/pack/pack-output.js.map +1 -0
  140. package/dist/core/pack/pack-pipeline.js +186 -0
  141. package/dist/core/pack/pack-pipeline.js.map +1 -0
  142. package/dist/core/package-context.js +45 -70
  143. package/dist/core/package-context.js.map +1 -1
  144. package/dist/core/package-creation.js +203 -0
  145. package/dist/core/package-creation.js.map +1 -0
  146. package/dist/core/package.js +20 -6
  147. package/dist/core/package.js.map +1 -1
  148. package/dist/core/platforms.js +665 -209
  149. package/dist/core/platforms.js.map +1 -1
  150. package/dist/core/push/push-context.js +1 -1
  151. package/dist/core/push/push-context.js.map +1 -1
  152. package/dist/core/push/push-upload.js +2 -2
  153. package/dist/core/push/push-upload.js.map +1 -1
  154. package/dist/core/registry.js +6 -6
  155. package/dist/core/registry.js.map +1 -1
  156. package/dist/core/remote-pull.js +2 -2
  157. package/dist/core/remote-pull.js.map +1 -1
  158. package/dist/core/remove/removal-collector.js +52 -0
  159. package/dist/core/remove/removal-collector.js.map +1 -0
  160. package/dist/core/remove/removal-confirmation.js +39 -0
  161. package/dist/core/remove/removal-confirmation.js.map +1 -0
  162. package/dist/core/remove/remove-from-source-pipeline.js +173 -0
  163. package/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
  164. package/dist/core/save/constants.js +3 -3
  165. package/dist/core/save/constants.js.map +1 -1
  166. package/dist/core/save/flow-based-saver.js +270 -0
  167. package/dist/core/save/flow-based-saver.js.map +1 -0
  168. package/dist/core/save/name-resolution.js +1 -1
  169. package/dist/core/save/name-resolution.js.map +1 -1
  170. package/dist/core/save/package-yml-generator.js +4 -5
  171. package/dist/core/save/package-yml-generator.js.map +1 -1
  172. package/dist/core/save/save-candidate-builder.js +215 -0
  173. package/dist/core/save/save-candidate-builder.js.map +1 -0
  174. package/dist/core/save/save-candidate-loader.js +12 -11
  175. package/dist/core/save/save-candidate-loader.js.map +1 -1
  176. package/dist/core/save/save-conflict-analyzer.js +150 -0
  177. package/dist/core/save/save-conflict-analyzer.js.map +1 -0
  178. package/dist/core/save/save-conflict-resolution.js +28 -14
  179. package/dist/core/save/save-conflict-resolution.js.map +1 -1
  180. package/dist/core/save/save-conflict-resolver.js +31 -275
  181. package/dist/core/save/save-conflict-resolver.js.map +1 -1
  182. package/dist/core/save/save-group-builder.js +52 -0
  183. package/dist/core/save/save-group-builder.js.map +1 -0
  184. package/dist/core/save/save-interactive-resolver.js +190 -0
  185. package/dist/core/save/save-interactive-resolver.js.map +1 -0
  186. package/dist/core/save/save-pipeline.js +58 -34
  187. package/dist/core/save/save-pipeline.js.map +1 -1
  188. package/dist/core/save/save-platform-handler.js +53 -0
  189. package/dist/core/save/save-platform-handler.js.map +1 -0
  190. package/dist/core/save/save-resolution-executor.js +145 -0
  191. package/dist/core/save/save-resolution-executor.js.map +1 -0
  192. package/dist/core/save/save-result-reporter.js +167 -0
  193. package/dist/core/save/save-result-reporter.js.map +1 -0
  194. package/dist/core/save/save-to-source-pipeline.js +154 -0
  195. package/dist/core/save/save-to-source-pipeline.js.map +1 -0
  196. package/dist/core/save/save-versioning.js +4 -4
  197. package/dist/core/save/save-versioning.js.map +1 -1
  198. package/dist/core/save/save-write-coordinator.js +204 -0
  199. package/dist/core/save/save-write-coordinator.js.map +1 -0
  200. package/dist/core/save/save-yml-resolution.js +28 -216
  201. package/dist/core/save/save-yml-resolution.js.map +1 -1
  202. package/dist/core/save/workspace-rename.js +7 -8
  203. package/dist/core/save/workspace-rename.js.map +1 -1
  204. package/dist/core/set/set-output.js +72 -0
  205. package/dist/core/set/set-output.js.map +1 -0
  206. package/dist/core/set/set-pipeline.js +361 -0
  207. package/dist/core/set/set-pipeline.js.map +1 -0
  208. package/dist/core/set/set-types.js +5 -0
  209. package/dist/core/set/set-types.js.map +1 -0
  210. package/dist/core/show/package-resolver.js +257 -0
  211. package/dist/core/show/package-resolver.js.map +1 -0
  212. package/dist/core/show/scope-discovery.js +165 -0
  213. package/dist/core/show/scope-discovery.js.map +1 -0
  214. package/dist/core/show/show-output.js +168 -0
  215. package/dist/core/show/show-output.js.map +1 -0
  216. package/dist/core/show/show-pipeline.js +113 -0
  217. package/dist/core/show/show-pipeline.js.map +1 -0
  218. package/dist/core/show/show-types.js +5 -0
  219. package/dist/core/show/show-types.js.map +1 -0
  220. package/dist/core/source-resolution/dependency-graph.js +104 -0
  221. package/dist/core/source-resolution/dependency-graph.js.map +1 -0
  222. package/dist/core/source-resolution/resolve-mutable-source.js +109 -0
  223. package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
  224. package/dist/core/source-resolution/resolve-package-source.js +29 -0
  225. package/dist/core/source-resolution/resolve-package-source.js.map +1 -0
  226. package/dist/core/source-resolution/resolve-registry-version.js +35 -0
  227. package/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
  228. package/dist/core/source-resolution/types.js.map +1 -0
  229. package/dist/core/status/status-file-discovery.js +23 -12
  230. package/dist/core/status/status-file-discovery.js.map +1 -1
  231. package/dist/core/status/status-pipeline.js +134 -0
  232. package/dist/core/status/status-pipeline.js.map +1 -0
  233. package/dist/core/sync/platform-sync-summary.js +27 -0
  234. package/dist/core/sync/platform-sync-summary.js.map +1 -0
  235. package/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
  236. package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
  237. package/dist/core/uninstall/uninstall-file-discovery.js +11 -6
  238. package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
  239. package/dist/core/uninstall/uninstall-pipeline.js +141 -0
  240. package/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
  241. package/dist/core/universal-patterns.js +64 -0
  242. package/dist/core/universal-patterns.js.map +1 -0
  243. package/dist/index.js +99 -6
  244. package/dist/index.js.map +1 -1
  245. package/dist/types/flows.js +8 -0
  246. package/dist/types/flows.js.map +1 -0
  247. package/dist/types/index.js +3 -0
  248. package/dist/types/index.js.map +1 -1
  249. package/dist/types/platform-flows.js +8 -0
  250. package/dist/types/platform-flows.js.map +1 -0
  251. package/dist/types/workspace-index.js +6 -0
  252. package/dist/types/workspace-index.js.map +1 -0
  253. package/dist/utils/custom-path-resolution.js +160 -0
  254. package/dist/utils/custom-path-resolution.js.map +1 -0
  255. package/dist/utils/dependency-coverage.js +1 -1
  256. package/dist/utils/dependency-coverage.js.map +1 -1
  257. package/dist/utils/file-processing.js +1 -1
  258. package/dist/utils/flow-index-installer.js +209 -0
  259. package/dist/utils/flow-index-installer.js.map +1 -0
  260. package/dist/utils/formatters.js +47 -1
  261. package/dist/utils/formatters.js.map +1 -1
  262. package/dist/utils/fs.js +17 -0
  263. package/dist/utils/fs.js.map +1 -1
  264. package/dist/utils/git-clone-registry.js +88 -0
  265. package/dist/utils/git-clone-registry.js.map +1 -0
  266. package/dist/utils/git-clone.js +69 -0
  267. package/dist/utils/git-clone.js.map +1 -0
  268. package/dist/utils/git-spec.js +96 -0
  269. package/dist/utils/git-spec.js.map +1 -0
  270. package/dist/utils/http-client.js +7 -0
  271. package/dist/utils/http-client.js.map +1 -1
  272. package/dist/utils/index-based-installer.js +356 -163
  273. package/dist/utils/index-based-installer.js.map +1 -1
  274. package/dist/utils/install-conflict-handler.js +2 -2
  275. package/dist/utils/install-conflict-handler.js.map +1 -1
  276. package/dist/utils/install-file-discovery.js +18 -13
  277. package/dist/utils/install-file-discovery.js.map +1 -1
  278. package/dist/utils/install-helpers.js +43 -20
  279. package/dist/utils/install-helpers.js.map +1 -1
  280. package/dist/utils/jsonc.js +23 -1
  281. package/dist/utils/jsonc.js.map +1 -1
  282. package/dist/utils/manifest-paths.js +1 -1
  283. package/dist/utils/manifest-paths.js.map +1 -1
  284. package/dist/utils/markdown-frontmatter.js +46 -0
  285. package/dist/utils/markdown-frontmatter.js.map +1 -1
  286. package/dist/utils/package-copy.js +5 -103
  287. package/dist/utils/package-copy.js.map +1 -1
  288. package/dist/utils/package-filters.js +9 -105
  289. package/dist/utils/package-filters.js.map +1 -1
  290. package/dist/utils/package-index-yml.js +27 -6
  291. package/dist/utils/package-index-yml.js.map +1 -1
  292. package/dist/utils/package-input.js +98 -0
  293. package/dist/utils/package-input.js.map +1 -0
  294. package/dist/utils/package-management.js +80 -28
  295. package/dist/utils/package-management.js.map +1 -1
  296. package/dist/utils/package-name-resolution.js +327 -0
  297. package/dist/utils/package-name-resolution.js.map +1 -0
  298. package/dist/utils/package-name.js +18 -16
  299. package/dist/utils/package-name.js.map +1 -1
  300. package/dist/utils/package-versioning.js +2 -33
  301. package/dist/utils/package-versioning.js.map +1 -1
  302. package/dist/utils/package-yml.js +19 -28
  303. package/dist/utils/package-yml.js.map +1 -1
  304. package/dist/utils/path-resolution.js +102 -0
  305. package/dist/utils/path-resolution.js.map +1 -0
  306. package/dist/utils/paths.js +6 -6
  307. package/dist/utils/paths.js.map +1 -1
  308. package/dist/utils/platform-file.js +36 -24
  309. package/dist/utils/platform-file.js.map +1 -1
  310. package/dist/utils/platform-mapper.js +222 -68
  311. package/dist/utils/platform-mapper.js.map +1 -1
  312. package/dist/utils/platform-root-files.js +44 -0
  313. package/dist/utils/platform-root-files.js.map +1 -0
  314. package/dist/utils/platform-utils.js +35 -54
  315. package/dist/utils/platform-utils.js.map +1 -1
  316. package/dist/utils/platform-yaml-merge.js +20 -140
  317. package/dist/utils/platform-yaml-merge.js.map +1 -1
  318. package/dist/utils/prompts.js +92 -7
  319. package/dist/utils/prompts.js.map +1 -1
  320. package/dist/utils/registry-entry-filter.js +50 -27
  321. package/dist/utils/registry-entry-filter.js.map +1 -1
  322. package/dist/utils/registry-paths.js +5 -4
  323. package/dist/utils/registry-paths.js.map +1 -1
  324. package/dist/utils/scope-resolution.js +156 -0
  325. package/dist/utils/scope-resolution.js.map +1 -0
  326. package/dist/utils/source-mutability.js +15 -0
  327. package/dist/utils/source-mutability.js.map +1 -0
  328. package/dist/utils/tarball.js +29 -4
  329. package/dist/utils/tarball.js.map +1 -1
  330. package/dist/utils/version-ranges.js +1 -32
  331. package/dist/utils/version-ranges.js.map +1 -1
  332. package/dist/utils/workspace-index-helpers.js +28 -0
  333. package/dist/utils/workspace-index-helpers.js.map +1 -0
  334. package/dist/utils/workspace-index-ownership.js +100 -0
  335. package/dist/utils/workspace-index-ownership.js.map +1 -0
  336. package/dist/utils/workspace-index-yml.js +173 -0
  337. package/dist/utils/workspace-index-yml.js.map +1 -0
  338. package/examples/custom-subdirs-platform.jsonc +157 -0
  339. package/package.json +7 -2
  340. package/platforms.jsonc +531 -84
  341. package/schemas/map-pipeline-v1.json +256 -0
  342. package/schemas/platforms-v1.json +400 -0
  343. package/specs/README.md +88 -0
  344. package/specs/add/README.md +166 -0
  345. package/specs/agents-claude.md +570 -0
  346. package/specs/agents-opencode.md +622 -0
  347. package/specs/apply/README.md +21 -0
  348. package/specs/apply/apply-behavior.md +58 -0
  349. package/specs/apply/apply-command.md +51 -0
  350. package/specs/apply/conflicts.md +41 -0
  351. package/specs/apply/index-effects.md +81 -0
  352. package/specs/architecture.md +107 -0
  353. package/specs/auth/README.md +17 -0
  354. package/specs/auth/auth-http-contract.md +25 -0
  355. package/specs/auth/cli/credentials.md +39 -0
  356. package/specs/auth/cli/login.md +32 -0
  357. package/specs/auth/cli/logout.md +16 -0
  358. package/specs/claude-mcp.md +1065 -0
  359. package/specs/claude-plugins-marketplace.md +363 -0
  360. package/specs/claude-plugins.md +413 -0
  361. package/specs/cli-options.md +52 -0
  362. package/specs/codex-mcp.md +114 -0
  363. package/specs/commands-overview.md +175 -0
  364. package/specs/directory-layout.md +95 -0
  365. package/specs/install/README.md +12 -4
  366. package/specs/install/git-sources.md +230 -0
  367. package/specs/install/install-behavior.md +483 -73
  368. package/specs/install/package-yml-canonical.md +67 -35
  369. package/specs/install/version-resolution.md +69 -115
  370. package/specs/new/README.md +769 -0
  371. package/specs/new/SUMMARY.md +310 -0
  372. package/specs/new/scope-behavior.md +793 -0
  373. package/specs/pack/README.md +77 -0
  374. package/specs/pack/package-name-resolution.md +330 -0
  375. package/specs/package/README.md +18 -17
  376. package/specs/package/nested-packages-and-parent-packages.md +32 -31
  377. package/specs/package/package-index-yml.md +95 -101
  378. package/specs/package/package-root-layout.md +64 -46
  379. package/specs/package/registry-payload-and-copy.md +50 -44
  380. package/specs/package/universal-content.md +33 -56
  381. package/specs/package-sources.md +248 -0
  382. package/specs/platforms/README.md +52 -0
  383. package/specs/platforms/configuration.md +571 -0
  384. package/specs/platforms/detection.md +552 -0
  385. package/specs/platforms/directory-layout.md +599 -0
  386. package/specs/platforms/examples.md +1146 -0
  387. package/specs/platforms/flow-reference.md +1240 -0
  388. package/specs/platforms/flows.md +1488 -0
  389. package/specs/platforms/map-pipeline.md +801 -0
  390. package/specs/platforms/overview.md +349 -0
  391. package/specs/platforms/specification.md +700 -0
  392. package/specs/platforms/troubleshooting.md +697 -0
  393. package/specs/platforms/universal-converter.md +520 -0
  394. package/specs/push/README.md +1 -0
  395. package/specs/push/push-behavior.md +11 -3
  396. package/specs/push/push-remote-upload.md +1 -1
  397. package/specs/push/push-scoping.md +1 -1
  398. package/specs/push/push-version-selection.md +1 -1
  399. package/specs/registry.md +111 -0
  400. package/specs/remove/README.md +257 -0
  401. package/specs/save/README.md +21 -17
  402. package/specs/save/save-conflict-resolution.md +205 -83
  403. package/specs/save/save-file-discovery.md +6 -4
  404. package/specs/save/save-frontmatter-overrides.md +11 -15
  405. package/specs/save/save-modes-inputs.md +9 -39
  406. package/specs/save/save-naming-scoping.md +4 -4
  407. package/specs/save/save-package-detection.md +13 -13
  408. package/specs/save/save-registry-sync.md +16 -106
  409. package/specs/save/save-versioning.md +80 -0
  410. package/specs/scope-management.md +92 -0
  411. package/specs/set/README.md +520 -0
  412. package/specs/set/set-behavior.md +563 -0
  413. package/specs/show/README.md +483 -0
  414. package/specs/show/show-remote.md +494 -0
  415. package/specs/status/README.md +38 -0
  416. package/specs/uninstall/README.md +231 -0
  417. package/dist/commands/duplicate.js +0 -69
  418. package/dist/commands/duplicate.js.map +0 -1
  419. package/dist/commands/init.js +0 -117
  420. package/dist/commands/init.js.map +0 -1
  421. package/dist/commands/prune.js +0 -357
  422. package/dist/commands/prune.js.map +0 -1
  423. package/dist/commands/tui.js +0 -61
  424. package/dist/commands/tui.js.map +0 -1
  425. package/dist/core/install/index.js +0 -3
  426. package/dist/core/install/index.js.map +0 -1
  427. package/dist/core/push/push-single-file.js +0 -56
  428. package/dist/core/push/push-single-file.js.map +0 -1
  429. package/dist/core/save/package-detection.js +0 -147
  430. package/dist/core/save/package-detection.js.map +0 -1
  431. package/dist/core/save/save-single-file.js +0 -124
  432. package/dist/core/save/save-single-file.js.map +0 -1
  433. package/dist/core/token-store.js +0 -73
  434. package/dist/core/token-store.js.map +0 -1
  435. package/dist/tui/app.js +0 -95
  436. package/dist/tui/app.js.map +0 -1
  437. package/dist/tui/components/package-list.js +0 -73
  438. package/dist/tui/components/package-list.js.map +0 -1
  439. package/dist/tui/controller.js +0 -365
  440. package/dist/tui/controller.js.map +0 -1
  441. package/dist/tui/index.js +0 -12
  442. package/dist/tui/index.js.map +0 -1
  443. package/dist/tui/services/file-index.js +0 -64
  444. package/dist/tui/services/file-index.js.map +0 -1
  445. package/dist/tui/services/packages.js +0 -18
  446. package/dist/tui/services/packages.js.map +0 -1
  447. package/dist/tui/services/save.js +0 -21
  448. package/dist/tui/services/save.js.map +0 -1
  449. package/dist/tui/state/app-state.js +0 -15
  450. package/dist/tui/state/app-state.js.map +0 -1
  451. package/dist/tui/state.js +0 -17
  452. package/dist/tui/state.js.map +0 -1
  453. package/dist/tui/types.js.map +0 -1
  454. package/dist/tui/views/add-file-modal.js +0 -129
  455. package/dist/tui/views/add-file-modal.js.map +0 -1
  456. package/dist/tui/views/file-preview.js +0 -44
  457. package/dist/tui/views/file-preview.js.map +0 -1
  458. package/dist/tui/views/list-packages.js +0 -73
  459. package/dist/tui/views/list-packages.js.map +0 -1
  460. package/dist/tui/views/main-menu.js +0 -29
  461. package/dist/tui/views/main-menu.js.map +0 -1
  462. package/dist/tui/views/manage-view.js +0 -81
  463. package/dist/tui/views/manage-view.js.map +0 -1
  464. package/dist/tui/views/package-hub.js +0 -120
  465. package/dist/tui/views/package-hub.js.map +0 -1
  466. package/dist/tui/views/placeholder.js +0 -24
  467. package/dist/tui/views/placeholder.js.map +0 -1
  468. package/dist/utils/bun-bootstrap.js +0 -72
  469. package/dist/utils/bun-bootstrap.js.map +0 -1
  470. package/dist/utils/entity-id.js +0 -19
  471. package/dist/utils/entity-id.js.map +0 -1
  472. package/dist/utils/package-local-files.js +0 -5
  473. package/dist/utils/package-local-files.js.map +0 -1
  474. package/dist/utils/path-matching.js +0 -74
  475. package/dist/utils/path-matching.js.map +0 -1
  476. package/dist/utils/root-file-operations.js +0 -39
  477. package/dist/utils/root-file-operations.js.map +0 -1
  478. package/dist/utils/root-file-transformer.js +0 -27
  479. package/dist/utils/root-file-transformer.js.map +0 -1
  480. package/dist/utils/yaml-frontmatter.js +0 -25
  481. package/dist/utils/yaml-frontmatter.js.map +0 -1
  482. package/specs/auth/auth-device-flow.md +0 -70
  483. package/specs/login/login-device-flow.md +0 -70
  484. package/specs/platforms.md +0 -193
  485. package/specs/save-pack-versioning.md +0 -224
  486. package/specs/save-pack.md +0 -68
  487. /package/dist/{tui → core/source-resolution}/types.js +0 -0
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Platform Converter Module
3
+ *
4
+ * High-level orchestration for converting packages between formats:
5
+ * - Platform-specific → Universal → Platform-specific
6
+ * - Direct installation when source = target platform
7
+ */
8
+ import { join, relative } from 'path';
9
+ import { promises as fs } from 'fs';
10
+ import { detectPackageFormat, isPlatformSpecific, needsConversion } from '../install/format-detector.js';
11
+ import { getPlatformDefinition, getGlobalImportFlows } from '../platforms.js';
12
+ import { createFlowExecutor } from './flow-executor.js';
13
+ import { logger } from '../../utils/logger.js';
14
+ import { ensureDir, writeTextFile } from '../../utils/fs.js';
15
+ import { tmpdir } from 'os';
16
+ import { mkdtemp, rm } from 'fs/promises';
17
+ /**
18
+ * Platform Converter
19
+ *
20
+ * Orchestrates multi-stage conversions between package formats
21
+ */
22
+ export class PlatformConverter {
23
+ constructor(workspaceRoot) {
24
+ this.workspaceRoot = workspaceRoot;
25
+ }
26
+ /**
27
+ * Convert a package to target platform format
28
+ */
29
+ async convert(pkg, targetPlatform, options) {
30
+ logger.info('Starting platform conversion', {
31
+ package: pkg.metadata.name,
32
+ targetPlatform
33
+ });
34
+ // Use provided format if available, otherwise detect from files
35
+ const sourceFormat = pkg._format || detectPackageFormat(pkg.files);
36
+ logger.debug('Source format', {
37
+ type: sourceFormat.type,
38
+ platform: sourceFormat.platform,
39
+ confidence: sourceFormat.confidence,
40
+ source: pkg._format ? 'provided' : 'detected'
41
+ });
42
+ // Build conversion pipeline
43
+ const pipeline = this.buildPipeline(sourceFormat, targetPlatform);
44
+ if (!pipeline.needsConversion) {
45
+ logger.info('No conversion needed - formats match');
46
+ return {
47
+ success: true,
48
+ convertedPackage: pkg,
49
+ stages: []
50
+ };
51
+ }
52
+ // Execute pipeline
53
+ return await this.executePipeline(pkg, pipeline, options);
54
+ }
55
+ /**
56
+ * Build conversion pipeline based on source and target formats
57
+ */
58
+ buildPipeline(sourceFormat, targetPlatform) {
59
+ const stages = [];
60
+ const needsConv = needsConversion(sourceFormat, targetPlatform);
61
+ logger.info('Checking if conversion needed', {
62
+ sourceType: sourceFormat.type,
63
+ sourcePlatform: sourceFormat.platform,
64
+ targetPlatform,
65
+ needsConversion: needsConv
66
+ });
67
+ if (!needsConv) {
68
+ return {
69
+ source: sourceFormat,
70
+ target: targetPlatform,
71
+ stages: [],
72
+ needsConversion: false
73
+ };
74
+ }
75
+ // Platform-specific → Universal
76
+ if (isPlatformSpecific(sourceFormat) && sourceFormat.platform) {
77
+ const sourcePlatform = sourceFormat.platform;
78
+ // Get source platform import flows (these transform workspace → package)
79
+ const platformDef = getPlatformDefinition(sourcePlatform, this.workspaceRoot);
80
+ const platformImportFlows = platformDef.import || [];
81
+ const globalImportFlows = getGlobalImportFlows(this.workspaceRoot) || [];
82
+ const allImportFlows = [...globalImportFlows, ...platformImportFlows];
83
+ logger.info(`Building conversion stage with ${allImportFlows.length} import flows`, {
84
+ sourcePlatform,
85
+ flowCount: allImportFlows.length
86
+ });
87
+ // For plugins: files are already in universal structure, just need content transformation
88
+ // Import flows already have correct paths (workspace → package)
89
+ // Adjust for plugins where workspace files are in universal locations
90
+ const adjustedFlows = allImportFlows.map(flow => {
91
+ // Import flows have 'from' as workspace path and 'to' as package path
92
+ // For plugins, workspace paths may need adjustment
93
+ const platformPrefix = `.${sourcePlatform}/`;
94
+ // Handle both string and array 'from' patterns
95
+ const fromPatterns = Array.isArray(flow.from) ? flow.from : [flow.from];
96
+ const adjustedFromPatterns = fromPatterns.map(fromPattern => {
97
+ if (fromPattern.startsWith(platformPrefix)) {
98
+ return fromPattern.substring(platformPrefix.length);
99
+ }
100
+ return fromPattern;
101
+ });
102
+ // Return adjusted flow
103
+ if (Array.isArray(flow.from)) {
104
+ return { ...flow, from: adjustedFromPatterns };
105
+ }
106
+ else {
107
+ return { ...flow, from: adjustedFromPatterns[0] };
108
+ }
109
+ });
110
+ stages.push({
111
+ name: 'platform-to-universal',
112
+ description: `Convert from ${sourcePlatform} format to universal format`,
113
+ flows: adjustedFlows,
114
+ inverted: false // Not inverted - using import flows directly
115
+ });
116
+ }
117
+ // Universal → Target Platform
118
+ // Note: This stage will be handled by the normal flow-based installer
119
+ // We only need to convert TO universal here; the installer handles universal → platform
120
+ return {
121
+ source: sourceFormat,
122
+ target: targetPlatform,
123
+ stages,
124
+ needsConversion: true
125
+ };
126
+ }
127
+ /**
128
+ * Execute conversion pipeline
129
+ */
130
+ async executePipeline(pkg, pipeline, options) {
131
+ const result = {
132
+ success: true,
133
+ stages: []
134
+ };
135
+ let currentPackage = pkg;
136
+ const dryRun = options?.dryRun ?? false;
137
+ // Create temporary directory for intermediate files
138
+ let tempDir = null;
139
+ try {
140
+ tempDir = await mkdtemp(join(tmpdir(), 'opkg-convert-'));
141
+ for (const stage of pipeline.stages) {
142
+ logger.info(`Executing conversion stage: ${stage.name}`);
143
+ const stageResult = await this.executeStage(currentPackage, stage, tempDir, dryRun);
144
+ result.stages.push({
145
+ stage: stage.name,
146
+ filesProcessed: stageResult.filesProcessed,
147
+ success: stageResult.success,
148
+ error: stageResult.error
149
+ });
150
+ if (!stageResult.success) {
151
+ result.success = false;
152
+ return result;
153
+ }
154
+ // Update package with converted files
155
+ if (stageResult.convertedFiles) {
156
+ currentPackage = {
157
+ ...currentPackage,
158
+ files: stageResult.convertedFiles
159
+ };
160
+ }
161
+ }
162
+ result.convertedPackage = currentPackage;
163
+ return result;
164
+ }
165
+ catch (error) {
166
+ logger.error('Conversion pipeline failed', { error });
167
+ result.success = false;
168
+ result.stages.push({
169
+ stage: 'pipeline',
170
+ filesProcessed: 0,
171
+ success: false,
172
+ error: error.message
173
+ });
174
+ return result;
175
+ }
176
+ finally {
177
+ // Cleanup temp directory
178
+ if (tempDir) {
179
+ try {
180
+ await rm(tempDir, { recursive: true, force: true });
181
+ }
182
+ catch (error) {
183
+ logger.warn('Failed to cleanup temp directory', { tempDir, error });
184
+ }
185
+ }
186
+ }
187
+ }
188
+ /**
189
+ * Discover files matching a glob pattern
190
+ */
191
+ async discoverMatchingFiles(pattern, baseDir) {
192
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
193
+ const matches = [];
194
+ const { minimatch } = await import('minimatch');
195
+ // Walk all files in baseDir
196
+ async function* walkFiles(dir) {
197
+ const entries = await fs.readdir(dir, { withFileTypes: true });
198
+ for (const entry of entries) {
199
+ const fullPath = join(dir, entry.name);
200
+ if (entry.isDirectory()) {
201
+ yield* walkFiles(fullPath);
202
+ }
203
+ else if (entry.isFile()) {
204
+ yield fullPath;
205
+ }
206
+ }
207
+ }
208
+ // Check each file against the patterns
209
+ for await (const filePath of walkFiles(baseDir)) {
210
+ const relativePath = relative(baseDir, filePath);
211
+ // Check if file matches any pattern (with priority - first match wins for arrays)
212
+ for (const p of patterns) {
213
+ if (minimatch(relativePath, p, { dot: false })) {
214
+ matches.push(filePath);
215
+ break; // Only match once per file
216
+ }
217
+ }
218
+ }
219
+ return matches;
220
+ }
221
+ /**
222
+ * Execute a single conversion stage
223
+ */
224
+ async executeStage(pkg, stage, tempDir, dryRun) {
225
+ try {
226
+ const executor = createFlowExecutor();
227
+ const convertedFiles = [];
228
+ let filesProcessed = 0;
229
+ // Create a temporary package root with source files
230
+ const packageRoot = join(tempDir, 'source');
231
+ await ensureDir(packageRoot);
232
+ // Write package files to temp directory
233
+ for (const file of pkg.files) {
234
+ const filePath = join(packageRoot, file.path);
235
+ await ensureDir(join(filePath, '..'));
236
+ await writeTextFile(filePath, file.content);
237
+ }
238
+ // Build flow context
239
+ const context = {
240
+ workspaceRoot: tempDir, // Use temp dir as workspace
241
+ packageRoot,
242
+ platform: 'claude', // Temporary platform for conversion context
243
+ packageName: pkg.metadata.name,
244
+ direction: 'install', // Always use 'install' direction for conversion (inverted flows handle the logic)
245
+ variables: {
246
+ name: pkg.metadata.name,
247
+ version: pkg.metadata.version || '0.0.0'
248
+ },
249
+ dryRun
250
+ };
251
+ // Execute flows for each matching file
252
+ for (const flow of stage.flows) {
253
+ // Discover files that match the flow's 'from' pattern
254
+ const matchingFiles = await this.discoverMatchingFiles(flow.from, packageRoot);
255
+ logger.info(`Flow pattern matching`, {
256
+ pattern: flow.from,
257
+ matchCount: matchingFiles.length,
258
+ matches: matchingFiles.map(f => relative(packageRoot, f))
259
+ });
260
+ if (matchingFiles.length === 0) {
261
+ logger.debug('No files match flow pattern', {
262
+ pattern: flow.from,
263
+ packageRoot
264
+ });
265
+ continue;
266
+ }
267
+ // Execute flow for each matching file
268
+ for (const sourceFile of matchingFiles) {
269
+ const sourceRelative = relative(packageRoot, sourceFile);
270
+ // Create concrete flow with specific file path
271
+ const concreteFlow = {
272
+ ...flow,
273
+ from: sourceRelative
274
+ };
275
+ const flowResult = await executor.executeFlow(concreteFlow, context);
276
+ if (!flowResult.success) {
277
+ return {
278
+ success: false,
279
+ filesProcessed,
280
+ error: `Flow execution failed for ${sourceRelative}: ${flowResult.error?.message}`
281
+ };
282
+ }
283
+ filesProcessed++;
284
+ // Collect transformed files
285
+ if (typeof flowResult.target === 'string') {
286
+ const targetPath = relative(tempDir, flowResult.target);
287
+ // Read transformed file content
288
+ try {
289
+ const { readTextFile } = await import('../../utils/fs.js');
290
+ const content = await readTextFile(flowResult.target);
291
+ convertedFiles.push({
292
+ path: targetPath,
293
+ content,
294
+ encoding: 'utf8'
295
+ });
296
+ }
297
+ catch (error) {
298
+ logger.warn('Failed to read converted file', {
299
+ target: flowResult.target,
300
+ error
301
+ });
302
+ }
303
+ }
304
+ }
305
+ }
306
+ return {
307
+ success: true,
308
+ filesProcessed,
309
+ convertedFiles: convertedFiles.length > 0 ? convertedFiles : undefined
310
+ };
311
+ }
312
+ catch (error) {
313
+ logger.error('Stage execution failed', { stage: stage.name, error });
314
+ return {
315
+ success: false,
316
+ filesProcessed: 0,
317
+ error: error.message
318
+ };
319
+ }
320
+ }
321
+ }
322
+ /**
323
+ * Create a platform converter instance
324
+ */
325
+ export function createPlatformConverter(workspaceRoot) {
326
+ return new PlatformConverter(workspaceRoot);
327
+ }
328
+ //# sourceMappingURL=platform-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-converter.js","sourceRoot":"","sources":["../../../src/core/flows/platform-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Source Pattern Resolver
3
+ *
4
+ * Resolves source file patterns (including arrays with priority) to actual file paths.
5
+ * Supports glob patterns and priority-based pattern selection.
6
+ */
7
+ import { promises as fs } from 'fs';
8
+ import path from 'path';
9
+ import { minimatch } from 'minimatch';
10
+ import * as fsUtils from '../../utils/fs.js';
11
+ import { logger } from '../../utils/logger.js';
12
+ /**
13
+ * Source Pattern Resolver
14
+ *
15
+ * Handles resolution of single patterns, arrays of patterns (with priority),
16
+ * and glob patterns to actual file paths.
17
+ */
18
+ export class SourcePatternResolver {
19
+ /**
20
+ * Resolve source pattern(s) to file paths
21
+ *
22
+ * For single patterns: returns all matching files
23
+ * For array patterns: returns files from first matching pattern only (priority order)
24
+ *
25
+ * @param pattern - Single pattern or array of patterns with priority
26
+ * @param options - Resolution options
27
+ * @returns Resolution result with paths and warnings
28
+ */
29
+ async resolve(pattern, options) {
30
+ // Handle array of patterns with priority
31
+ if (Array.isArray(pattern)) {
32
+ return this.resolveWithPriority(pattern, options);
33
+ }
34
+ // Single pattern
35
+ const paths = await this.resolveSinglePattern(pattern, options.baseDir);
36
+ return {
37
+ paths,
38
+ warnings: [],
39
+ };
40
+ }
41
+ /**
42
+ * Resolve array of patterns with priority (first match wins)
43
+ *
44
+ * Iterates through patterns in order, returning files from first matching pattern.
45
+ * Logs warnings if lower-priority patterns also match.
46
+ *
47
+ * @param patterns - Array of patterns in priority order
48
+ * @param options - Resolution options
49
+ * @returns Resolution result
50
+ */
51
+ async resolveWithPriority(patterns, options) {
52
+ if (patterns.length === 0) {
53
+ return { paths: [], warnings: ['Empty pattern array provided'] };
54
+ }
55
+ const warnings = [];
56
+ const skippedPatterns = [];
57
+ // Try each pattern in priority order
58
+ for (let i = 0; i < patterns.length; i++) {
59
+ const currentPattern = patterns[i];
60
+ const matches = await this.resolveSinglePattern(currentPattern, options.baseDir);
61
+ if (matches.length > 0) {
62
+ // Found matches - check if lower-priority patterns also match
63
+ for (let j = i + 1; j < patterns.length; j++) {
64
+ const lowerPriorityPattern = patterns[j];
65
+ const lowerMatches = await this.resolveSinglePattern(lowerPriorityPattern, options.baseDir);
66
+ if (lowerMatches.length > 0) {
67
+ const warning = `Pattern "${currentPattern}" matched (priority ${i + 1}). ` +
68
+ `Ignoring lower-priority pattern "${lowerPriorityPattern}" (priority ${j + 1}) ` +
69
+ `which also matched ${lowerMatches.length} file(s).`;
70
+ warnings.push(warning);
71
+ skippedPatterns.push(lowerPriorityPattern);
72
+ if (options.logWarnings !== false) {
73
+ logger.debug(warning);
74
+ }
75
+ }
76
+ }
77
+ return {
78
+ paths: matches,
79
+ warnings,
80
+ matchedPattern: currentPattern,
81
+ skippedPatterns: skippedPatterns.length > 0 ? skippedPatterns : undefined,
82
+ };
83
+ }
84
+ }
85
+ // No patterns matched
86
+ return {
87
+ paths: [],
88
+ warnings: [`No files matched any of the ${patterns.length} pattern(s): ${patterns.join(', ')}`],
89
+ };
90
+ }
91
+ /**
92
+ * Resolve a single pattern to file paths
93
+ *
94
+ * Handles both glob patterns and literal file paths.
95
+ *
96
+ * @param pattern - File pattern (may contain globs)
97
+ * @param baseDir - Base directory for resolution
98
+ * @returns Array of resolved file paths
99
+ */
100
+ async resolveSinglePattern(pattern, baseDir) {
101
+ // Check if pattern contains glob wildcard
102
+ if (this.isGlobPattern(pattern)) {
103
+ return this.resolveGlobPattern(pattern, baseDir);
104
+ }
105
+ // Literal file path - check if it exists
106
+ const resolved = path.join(baseDir, pattern);
107
+ const exists = await fsUtils.exists(resolved);
108
+ return exists ? [resolved] : [];
109
+ }
110
+ /**
111
+ * Check if pattern contains glob wildcards
112
+ *
113
+ * @param pattern - Pattern to check
114
+ * @returns True if pattern contains glob syntax
115
+ */
116
+ isGlobPattern(pattern) {
117
+ return pattern.includes('*') || pattern.includes('?') || pattern.includes('[');
118
+ }
119
+ /**
120
+ * Resolve glob pattern to matching files
121
+ *
122
+ * @param pattern - Glob pattern
123
+ * @param baseDir - Base directory
124
+ * @returns Array of matching file paths
125
+ */
126
+ async resolveGlobPattern(pattern, baseDir) {
127
+ const matches = [];
128
+ // Extract directory and file pattern
129
+ const parts = pattern.split('/');
130
+ const globPart = parts.findIndex(p => this.isGlobPattern(p));
131
+ if (globPart === -1) {
132
+ // No glob found (shouldn't happen, but handle gracefully)
133
+ return [path.join(baseDir, pattern)];
134
+ }
135
+ // Build directory path up to first glob
136
+ const dirPath = path.join(baseDir, ...parts.slice(0, globPart));
137
+ const filePattern = parts.slice(globPart).join('/');
138
+ // Check if directory exists
139
+ if (!await fsUtils.exists(dirPath)) {
140
+ return [];
141
+ }
142
+ // Recursively find matching files
143
+ await this.findMatchingFiles(dirPath, filePattern, baseDir, matches);
144
+ return matches;
145
+ }
146
+ /**
147
+ * Recursively find files matching glob pattern
148
+ *
149
+ * Supports ** for recursive directory matching.
150
+ *
151
+ * @param dir - Current directory
152
+ * @param pattern - Pattern to match
153
+ * @param baseDir - Base directory for relative paths
154
+ * @param matches - Array to accumulate matches
155
+ */
156
+ async findMatchingFiles(dir, pattern, baseDir, matches) {
157
+ try {
158
+ const entries = await fs.readdir(dir, { withFileTypes: true });
159
+ for (const entry of entries) {
160
+ const fullPath = path.join(dir, entry.name);
161
+ const relativePath = path.relative(baseDir, fullPath);
162
+ if (entry.isDirectory()) {
163
+ // Always recurse for ** patterns
164
+ if (pattern.startsWith('**') || pattern.includes('/**/')) {
165
+ await this.findMatchingFiles(fullPath, pattern, baseDir, matches);
166
+ }
167
+ else if (pattern.includes('/')) {
168
+ // For patterns with subdirs, continue searching
169
+ await this.findMatchingFiles(fullPath, pattern, baseDir, matches);
170
+ }
171
+ }
172
+ else if (entry.isFile()) {
173
+ // Test file against pattern
174
+ if (minimatch(relativePath, pattern, { dot: false })) {
175
+ matches.push(fullPath);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ catch (error) {
181
+ // Ignore errors (directory not accessible, etc.)
182
+ logger.debug(`Error reading directory ${dir}: ${error}`);
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Create a source pattern resolver instance
188
+ */
189
+ export function createSourceResolver() {
190
+ return new SourcePatternResolver();
191
+ }
192
+ //# sourceMappingURL=source-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../../../src/core/flows/source-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * TOML Domain Transforms
3
+ *
4
+ * This file previously contained legacy MCP-to-Codex transforms.
5
+ * Those transforms have been replaced by the declarative map pipeline
6
+ * approach defined in platforms.jsonc.
7
+ *
8
+ * The file is kept as a placeholder for future domain-specific transforms
9
+ * if needed.
10
+ */
11
+ /**
12
+ * Register TOML domain transforms
13
+ *
14
+ * Currently no domain transforms are registered.
15
+ * All TOML transformations are handled through:
16
+ * 1. Map pipeline operations (in platforms.jsonc)
17
+ * 2. Generic json-to-toml / toml-to-json transforms (in flow-transforms.ts)
18
+ */
19
+ export function registerTomlDomainTransforms(registry) {
20
+ // No transforms to register
21
+ // Legacy mcp-to-codex-toml and codex-toml-to-mcp have been removed
22
+ }
23
+ //# sourceMappingURL=toml-domain-transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml-domain-transforms.js","sourceRoot":"","sources":["../../../src/core/flows/toml-domain-transforms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAa;IACxD,4BAA4B;IAC5B,mEAAmE;AACrE,CAAC"}