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
@@ -27,10 +27,10 @@ export async function ensureLocalOpenPackageStructure(cwd) {
27
27
  ]);
28
28
  }
29
29
  /**
30
- * Create a basic package.yml file for workspace if it doesn't exist
30
+ * Create a basic openpackage.yml file for workspace if it doesn't exist
31
31
  * Shared utility for both install and save commands
32
- * @param force - If true, overwrite existing package.yml
33
- * @returns the package.yml if it was created, null if it already existed and force=false
32
+ * @param force - If true, overwrite existing openpackage.yml
33
+ * @returns the openpackage.yml if it was created, null if it already existed and force=false
34
34
  */
35
35
  export async function createWorkspacePackageYml(cwd, force = false) {
36
36
  await ensureLocalOpenPackageStructure(cwd);
@@ -43,20 +43,20 @@ export async function createWorkspacePackageYml(cwd, force = false) {
43
43
  };
44
44
  if (await exists(packageYmlPath)) {
45
45
  if (!force) {
46
- return null; // package.yml already exists, no need to create
46
+ return null; // openpackage.yml already exists, no need to create
47
47
  }
48
48
  await writePackageYml(packageYmlPath, basicPackageYml);
49
- logger.info(`Overwrote basic package.yml with name: ${projectName}`);
50
- console.log(`📋 Overwrote basic package.yml in .openpackage/ with name: ${projectName}`);
49
+ logger.info(`Overwrote basic openpackage.yml with name: ${projectName}`);
50
+ console.log(`📋 Overwrote basic openpackage.yml in .openpackage/ with name: ${projectName}`);
51
51
  return basicPackageYml;
52
52
  }
53
53
  await writePackageYml(packageYmlPath, basicPackageYml);
54
- logger.info(`Initialized workspace package.yml`);
55
- console.log(`📋 Initialized workspace package.yml in .openpackage/`);
54
+ logger.info(`Initialized workspace openpackage.yml`);
55
+ console.log(`📋 Initialized workspace openpackage.yml in .openpackage/`);
56
56
  return basicPackageYml;
57
57
  }
58
58
  /**
59
- * Ensure a nested package directory and package.yml exist, optionally prompting for details.
59
+ * Ensure a cached package directory and openpackage.yml exist, optionally prompting for details.
60
60
  * This is for NESTED packages only. Root packages use different flow.
61
61
  */
62
62
  export async function ensurePackageWithYml(cwd, packageName, options = {}) {
@@ -82,12 +82,12 @@ export async function ensurePackageWithYml(cwd, packageName, options = {}) {
82
82
  name: normalizedName,
83
83
  partial: true
84
84
  };
85
- logger.info(`Loaded package.yml for '${normalizedName}' from local registry copy`);
86
- console.log(`✓ Loaded package.yml from local registry for ${normalizedName}`);
85
+ logger.info(`Loaded openpackage.yml for '${normalizedName}' from local registry copy`);
86
+ console.log(`✓ Loaded openpackage.yml from local registry for ${normalizedName}`);
87
87
  }
88
88
  }
89
89
  catch (error) {
90
- logger.debug('Unable to seed package.yml from registry; falling back to prompts', { normalizedName, error });
90
+ logger.debug('Unable to seed openpackage.yml from registry; falling back to prompts', { normalizedName, error });
91
91
  }
92
92
  if (!packageConfig) {
93
93
  if (options.interactive) {
@@ -105,12 +105,6 @@ export async function ensurePackageWithYml(cwd, packageName, options = {}) {
105
105
  partial: true
106
106
  };
107
107
  }
108
- if (!packageConfig.include || packageConfig.include.length === 0) {
109
- packageConfig = {
110
- ...packageConfig,
111
- include: ['**']
112
- };
113
- }
114
108
  await writePackageYml(packageYmlPath, packageConfig);
115
109
  logger.info(`Created new package '${packageConfig.name}${packageConfig.version ? `@${packageConfig.version}` : ''}' at ${relative(cwd, packageDir)}`);
116
110
  }
@@ -128,14 +122,18 @@ export async function ensurePackageWithYml(cwd, packageName, options = {}) {
128
122
  };
129
123
  }
130
124
  /**
131
- * Add a package dependency to package.yml with smart placement logic
125
+ * Add a package dependency to openpackage.yml with smart placement logic
132
126
  * Shared utility for both install and save commands
133
127
  */
134
128
  export async function addPackageToYml(cwd, packageName, packageVersion, isDev = false, originalVersion, // The original version/range that was requested
135
- silent = false, include) {
129
+ silent = false, include, path, // Path to local directory or tarball (for path-based dependencies)
130
+ git, // Git source url (mutually exclusive with path/version)
131
+ ref, // Git ref (branch/tag/sha)
132
+ subdirectory // Git subdirectory path (for plugins in marketplaces)
133
+ ) {
136
134
  const packageYmlPath = getLocalPackageYmlPath(cwd);
137
135
  if (!(await exists(packageYmlPath))) {
138
- return; // If no package.yml exists, ignore this step
136
+ return; // If no openpackage.yml exists, ignore this step
139
137
  }
140
138
  const config = await parsePackageYml(packageYmlPath);
141
139
  if (!config.packages)
@@ -165,8 +163,8 @@ silent = false, include) {
165
163
  ? config[currentLocation][existingIndex]?.version
166
164
  : undefined;
167
165
  const shouldOmitVersion = isUnversionedVersion(packageVersion) || isUnversionedVersion(originalVersion);
168
- let versionToWrite = shouldOmitVersion ? undefined : originalVersion;
169
- if (!shouldOmitVersion && packageVersion) {
166
+ let versionToWrite = git ? undefined : shouldOmitVersion ? undefined : originalVersion;
167
+ if (!git && !shouldOmitVersion && packageVersion) {
170
168
  const baseVersion = extractBaseVersion(packageVersion);
171
169
  const defaultRange = createCaretRange(baseVersion);
172
170
  versionToWrite = originalVersion ?? defaultRange;
@@ -214,7 +212,11 @@ silent = false, include) {
214
212
  const dependency = {
215
213
  name: normalizedPackageName,
216
214
  ...(versionToWrite ? { version: versionToWrite } : {}),
217
- ...(includeToWrite ? { include: includeToWrite } : {})
215
+ ...(includeToWrite ? { include: includeToWrite } : {}),
216
+ ...(path ? { path } : {}),
217
+ ...(git ? { git } : {}),
218
+ ...(ref ? { ref } : {}),
219
+ ...(subdirectory ? { subdirectory } : {})
218
220
  };
219
221
  // Determine target location (packages vs dev-packages)
220
222
  let targetArray;
@@ -246,7 +248,7 @@ silent = false, include) {
246
248
  targetArrayRef[existingTargetIndex] = dependency;
247
249
  if (!silent) {
248
250
  logger.info(`Updated existing package dependency: ${nameWithVersion}`);
249
- console.log(`✓ Updated ${nameWithVersion} in main package.yml`);
251
+ console.log(`✓ Updated ${nameWithVersion} in main openpackage.yml`);
250
252
  }
251
253
  }
252
254
  }
@@ -254,7 +256,7 @@ silent = false, include) {
254
256
  targetArrayRef.push(dependency);
255
257
  if (!silent) {
256
258
  logger.info(`Added new package dependency: ${nameWithVersion}`);
257
- console.log(`✓ Added ${nameWithVersion} to main package.yml`);
259
+ console.log(`✓ Added ${nameWithVersion} to main openpackage.yml`);
258
260
  }
259
261
  }
260
262
  await writePackageYml(packageYmlPath, config);
@@ -272,7 +274,7 @@ export async function writeLocalPackageFromRegistry(cwd, packageName, version) {
272
274
  }
273
275
  /**
274
276
  * Copy a subset of package files from the local registry into the project cache (.openpackage/packages/<pkg>/),
275
- * always including package.yml. Used for partial installs.
277
+ * always including openpackage.yml. Used for partial installs.
276
278
  */
277
279
  export async function writePartialLocalPackageFromRegistry(cwd, packageName, version, includePaths) {
278
280
  const pkg = await packageManager.loadPackage(packageName, version);
@@ -293,7 +295,7 @@ export async function writePartialLocalPackageFromRegistry(cwd, packageName, ver
293
295
  });
294
296
  }
295
297
  /**
296
- * Update only the include list for an existing dependency in package.yml.
298
+ * Update only the include list for an existing dependency in openpackage.yml.
297
299
  * - include: string[] => set/dedupe
298
300
  * - include: null => clear include field
299
301
  * - include: undefined => no-op
@@ -320,6 +322,37 @@ export async function updatePackageDependencyInclude(cwd, packageName, target, i
320
322
  }
321
323
  await writePackageYml(packageYmlPath, config);
322
324
  }
325
+ /**
326
+ * Remove a dependency entry from openpackage.yml (both packages and dev-packages).
327
+ */
328
+ export async function removePackageFromOpenpackageYml(cwd, packageName) {
329
+ const packageYmlPath = getLocalPackageYmlPath(cwd);
330
+ if (!(await exists(packageYmlPath)))
331
+ return false;
332
+ try {
333
+ const config = await parsePackageYml(packageYmlPath);
334
+ const sections = [DEPENDENCY_ARRAYS.PACKAGES, DEPENDENCY_ARRAYS.DEV_PACKAGES];
335
+ let removed = false;
336
+ for (const section of sections) {
337
+ const arr = config[section];
338
+ if (!arr)
339
+ continue;
340
+ const next = arr.filter(dep => !arePackageNamesEquivalent(dep.name, packageName));
341
+ if (next.length !== arr.length) {
342
+ config[section] = next;
343
+ removed = true;
344
+ }
345
+ }
346
+ if (removed) {
347
+ await writePackageYml(packageYmlPath, config);
348
+ }
349
+ return removed;
350
+ }
351
+ catch (error) {
352
+ logger.warn(`Failed to update openpackage.yml when removing ${packageName}: ${error}`);
353
+ return false;
354
+ }
355
+ }
323
356
  function rangeIncludesVersion(range, version) {
324
357
  if (!range || !version) {
325
358
  return false;
@@ -331,4 +364,23 @@ function rangeIncludesVersion(range, version) {
331
364
  return false;
332
365
  }
333
366
  }
367
+ /**
368
+ * Check if a package is a path-based dependency in the workspace openpackage.yml.
369
+ * Path-based dependencies should be skipped during save operations.
370
+ */
371
+ export async function isPathBasedDependency(cwd, packageName) {
372
+ const packageYmlPath = getLocalPackageYmlPath(cwd);
373
+ if (!(await exists(packageYmlPath))) {
374
+ return false;
375
+ }
376
+ try {
377
+ const config = await parsePackageYml(packageYmlPath);
378
+ const allDeps = [...(config.packages || []), ...(config['dev-packages'] || [])];
379
+ const dep = allDeps.find(d => arePackageNamesEquivalent(d.name, packageName));
380
+ return Boolean(dep?.path);
381
+ }
382
+ catch {
383
+ return false;
384
+ }
385
+ }
334
386
  //# sourceMappingURL=package-management.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-management.js","sourceRoot":"","sources":["../../src/utils/package-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-management.js","sourceRoot":"","sources":["../../src/utils/package-management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,327 @@
1
+ /**
2
+ * @fileoverview Shared package name resolution logic used by both install and pack commands.
3
+ *
4
+ * This module provides a unified way to resolve package names to file system paths by searching
5
+ * across multiple locations with configurable priorities:
6
+ *
7
+ * Search Locations (in order):
8
+ * 1. CWD (current working directory) - if checkCwd=true
9
+ * 2. Workspace packages (.openpackage/packages/) - if searchWorkspace=true
10
+ * 3. Global packages (~/.openpackage/packages/) - if searchGlobal=true
11
+ * 4. Local registry (~/.openpackage/registry/) - if searchRegistry=true
12
+ *
13
+ * Priority Rules:
14
+ * - CWD always wins if name matches and checkCwd=true (pack behavior)
15
+ * - Workspace always wins among remaining sources (both install and pack)
16
+ * - Between global and registry: highest version wins
17
+ * - Tie-breaker: prefer global (mutable) over registry (immutable) on same version
18
+ *
19
+ * Usage Examples:
20
+ *
21
+ * ```typescript
22
+ * // Pack command - prioritize CWD, skip registry (already immutable)
23
+ * const packResult = await resolvePackageByName({
24
+ * cwd: process.cwd(),
25
+ * packageName: 'my-package',
26
+ * checkCwd: true, // Check CWD first (highest priority)
27
+ * searchWorkspace: true, // Then workspace packages
28
+ * searchGlobal: true, // Then global packages
29
+ * searchRegistry: false // Skip registry (already packed)
30
+ * });
31
+ *
32
+ * // Install command - search all sources including registry
33
+ * const installResult = await resolvePackageByName({
34
+ * cwd: process.cwd(),
35
+ * packageName: 'my-package',
36
+ * checkCwd: false, // Don't prioritize CWD
37
+ * searchWorkspace: true, // Check workspace packages
38
+ * searchGlobal: true, // Check global packages
39
+ * searchRegistry: true // Check registry (install needs this)
40
+ * });
41
+ * ```
42
+ */
43
+ import { join } from 'path';
44
+ import * as semver from 'semver';
45
+ import { DIR_PATTERNS, OPENPACKAGE_DIRS, UNVERSIONED } from '../constants/index.js';
46
+ import { isValidPackageDirectory, loadPackageConfig } from '../core/package-context.js';
47
+ import { getOpenPackageDirectories, listPackageVersions, getPackageVersionPath } from '../core/directory.js';
48
+ import { normalizePackageName, SCOPED_PACKAGE_REGEX } from './package-name.js';
49
+ import { logger } from './logger.js';
50
+ /**
51
+ * Helper to construct scoped package paths (@scope/name)
52
+ */
53
+ function getScopedPackagePath(baseDir, packageName) {
54
+ const scopedMatch = packageName.match(SCOPED_PACKAGE_REGEX);
55
+ if (scopedMatch) {
56
+ const [, scope, localName] = scopedMatch;
57
+ return join(baseDir, '@' + scope, localName);
58
+ }
59
+ return join(baseDir, packageName);
60
+ }
61
+ /**
62
+ * Check if CWD is a valid package directory with matching name
63
+ */
64
+ async function checkCwdPackage(cwd, packageName) {
65
+ if (!await isValidPackageDirectory(cwd)) {
66
+ return null;
67
+ }
68
+ const manifest = await loadPackageConfig(cwd);
69
+ if (!manifest) {
70
+ return null;
71
+ }
72
+ // Check if name matches (case-insensitive)
73
+ const normalizedCwdName = normalizePackageName(manifest.name);
74
+ const normalizedTargetName = normalizePackageName(packageName);
75
+ if (normalizedCwdName !== normalizedTargetName) {
76
+ return null;
77
+ }
78
+ logger.debug('Found package in CWD', { packageName, path: cwd, version: manifest.version });
79
+ return {
80
+ path: cwd,
81
+ version: manifest.version || UNVERSIONED,
82
+ type: 'cwd',
83
+ packageName: normalizedCwdName
84
+ };
85
+ }
86
+ /**
87
+ * Check workspace packages directory
88
+ */
89
+ async function checkWorkspacePackage(cwd, packageName) {
90
+ const normalizedName = normalizePackageName(packageName);
91
+ const localPath = getScopedPackagePath(join(cwd, DIR_PATTERNS.OPENPACKAGE, OPENPACKAGE_DIRS.PACKAGES), normalizedName);
92
+ if (!await isValidPackageDirectory(localPath)) {
93
+ return null;
94
+ }
95
+ const manifest = await loadPackageConfig(localPath);
96
+ logger.debug('Found package in workspace', { packageName, path: localPath, version: manifest?.version });
97
+ return {
98
+ path: localPath,
99
+ version: manifest?.version || UNVERSIONED,
100
+ type: 'workspace',
101
+ packageName: normalizedName
102
+ };
103
+ }
104
+ /**
105
+ * Check global packages directory
106
+ */
107
+ async function checkGlobalPackage(packageName) {
108
+ const normalizedName = normalizePackageName(packageName);
109
+ const dirs = getOpenPackageDirectories();
110
+ const globalPath = getScopedPackagePath(join(dirs.data, OPENPACKAGE_DIRS.PACKAGES), normalizedName);
111
+ if (!await isValidPackageDirectory(globalPath)) {
112
+ return null;
113
+ }
114
+ try {
115
+ const manifest = await loadPackageConfig(globalPath);
116
+ logger.debug('Found package in global packages', {
117
+ packageName,
118
+ path: globalPath,
119
+ version: manifest?.version
120
+ });
121
+ return {
122
+ path: globalPath,
123
+ version: manifest?.version || UNVERSIONED,
124
+ type: 'global',
125
+ packageName: normalizedName
126
+ };
127
+ }
128
+ catch (error) {
129
+ logger.warn('Failed to load global package manifest', { packageName, path: globalPath, error });
130
+ return null;
131
+ }
132
+ }
133
+ /**
134
+ * Check local registry (get latest version)
135
+ */
136
+ async function checkRegistryPackage(packageName) {
137
+ const normalizedName = normalizePackageName(packageName);
138
+ try {
139
+ const registryVersions = await listPackageVersions(normalizedName);
140
+ if (registryVersions.length === 0) {
141
+ return null;
142
+ }
143
+ const latestVersion = registryVersions[0]; // Already sorted desc
144
+ const registryPath = getPackageVersionPath(normalizedName, latestVersion);
145
+ logger.debug('Found package in registry', {
146
+ packageName,
147
+ path: registryPath,
148
+ version: latestVersion
149
+ });
150
+ return {
151
+ path: registryPath,
152
+ version: latestVersion,
153
+ type: 'registry',
154
+ packageName: normalizedName
155
+ };
156
+ }
157
+ catch (error) {
158
+ logger.debug('No registry versions found', { packageName });
159
+ return null;
160
+ }
161
+ }
162
+ /**
163
+ * Select the best candidate from multiple package sources
164
+ * Priority rules:
165
+ * 1. CWD always wins (if checked and found)
166
+ * 2. Workspace always wins (among non-CWD)
167
+ * 3. Highest version between global and registry
168
+ * 4. Tie-breaker: prefer global (mutable) over registry (immutable)
169
+ */
170
+ function selectBestCandidate(candidates) {
171
+ if (candidates.length === 0) {
172
+ throw new Error('selectBestCandidate called with empty candidates array');
173
+ }
174
+ if (candidates.length === 1) {
175
+ return candidates[0];
176
+ }
177
+ // CWD always wins if present
178
+ const cwdCandidate = candidates.find(c => c.type === 'cwd');
179
+ if (cwdCandidate) {
180
+ return cwdCandidate;
181
+ }
182
+ // Workspace always wins (among non-CWD)
183
+ const workspaceCandidate = candidates.find(c => c.type === 'workspace');
184
+ if (workspaceCandidate) {
185
+ return workspaceCandidate;
186
+ }
187
+ // Now we only have global and/or registry candidates
188
+ // Handle unversioned packages
189
+ const hasUnversioned = candidates.some(c => c.version === UNVERSIONED);
190
+ if (hasUnversioned) {
191
+ // Prefer versioned over unversioned
192
+ const versioned = candidates.filter(c => c.version !== UNVERSIONED);
193
+ if (versioned.length > 0) {
194
+ // Return highest versioned
195
+ versioned.sort((a, b) => semver.compare(b.version, a.version));
196
+ return versioned[0];
197
+ }
198
+ // All unversioned - prefer global
199
+ const global = candidates.find(c => c.type === 'global');
200
+ return global || candidates[0];
201
+ }
202
+ // Sort by version (highest first), prefer global on tie
203
+ const sorted = [...candidates].sort((a, b) => {
204
+ const versionCompare = semver.compare(b.version, a.version);
205
+ if (versionCompare !== 0)
206
+ return versionCompare;
207
+ // Tie-breaker: same version, prefer global (mutable)
208
+ if (a.type === 'global' && b.type === 'registry')
209
+ return -1;
210
+ if (a.type === 'registry' && b.type === 'global')
211
+ return 1;
212
+ return 0;
213
+ });
214
+ return sorted[0];
215
+ }
216
+ /**
217
+ * Determine the reason why a particular candidate was selected
218
+ */
219
+ function determineSelectionReason(candidates, selected) {
220
+ if (candidates.length === 1) {
221
+ return 'only-source';
222
+ }
223
+ if (selected.type === 'cwd') {
224
+ return 'cwd-match';
225
+ }
226
+ if (selected.type === 'workspace') {
227
+ return 'workspace-override';
228
+ }
229
+ // Compare with other candidates (global vs registry)
230
+ const other = candidates.find(c => c !== selected && c.type !== 'workspace' && c.type !== 'cwd');
231
+ if (!other) {
232
+ return 'only-source';
233
+ }
234
+ // Handle unversioned comparisons
235
+ if (selected.version === UNVERSIONED || other.version === UNVERSIONED) {
236
+ return 'newer-version';
237
+ }
238
+ const versionCompare = semver.compare(selected.version, other.version);
239
+ if (versionCompare > 0) {
240
+ return 'newer-version';
241
+ }
242
+ else if (versionCompare === 0) {
243
+ return 'same-version-prefer-mutable';
244
+ }
245
+ // Shouldn't reach here since we select highest
246
+ return 'newer-version';
247
+ }
248
+ /**
249
+ * Resolve a package name to a file system path.
250
+ *
251
+ * This function searches for packages in various locations based on the provided options:
252
+ * - CWD (current working directory) - if checkCwd is true
253
+ * - Workspace packages (.openpackage/packages/)
254
+ * - Global packages (~/.openpackage/packages/)
255
+ * - Local registry (~/.openpackage/registry/)
256
+ *
257
+ * Priority order:
258
+ * 1. CWD (if name matches and checkCwd=true) - highest priority for pack
259
+ * 2. Workspace packages - always wins among remaining sources
260
+ * 3. Global vs Registry - version comparison, prefer higher version
261
+ * 4. Tie-breaker - same version prefers global (mutable)
262
+ *
263
+ * @param options - Resolution options
264
+ * @returns Resolution result with path and metadata
265
+ */
266
+ export async function resolvePackageByName(options) {
267
+ const { cwd, packageName, checkCwd = false, searchWorkspace = true, searchGlobal = true, searchRegistry = true } = options;
268
+ const candidates = [];
269
+ // 1. Check CWD (highest priority for pack)
270
+ if (checkCwd) {
271
+ const cwdCandidate = await checkCwdPackage(cwd, packageName);
272
+ if (cwdCandidate) {
273
+ candidates.push(cwdCandidate);
274
+ }
275
+ }
276
+ // 2. Check workspace packages
277
+ if (searchWorkspace) {
278
+ const workspaceCandidate = await checkWorkspacePackage(cwd, packageName);
279
+ if (workspaceCandidate) {
280
+ candidates.push(workspaceCandidate);
281
+ }
282
+ }
283
+ // 3. Check global packages
284
+ if (searchGlobal) {
285
+ const globalCandidate = await checkGlobalPackage(packageName);
286
+ if (globalCandidate) {
287
+ candidates.push(globalCandidate);
288
+ }
289
+ }
290
+ // 4. Check local registry
291
+ if (searchRegistry) {
292
+ const registryCandidate = await checkRegistryPackage(packageName);
293
+ if (registryCandidate) {
294
+ candidates.push(registryCandidate);
295
+ }
296
+ }
297
+ // No candidates found
298
+ if (candidates.length === 0) {
299
+ logger.debug('No package found in any location', { packageName, options });
300
+ return { found: false };
301
+ }
302
+ // Select best candidate
303
+ const selected = selectBestCandidate(candidates);
304
+ const reason = determineSelectionReason(candidates, selected);
305
+ logger.info('Resolved package name', {
306
+ packageName,
307
+ selected: {
308
+ type: selected.type,
309
+ version: selected.version,
310
+ path: selected.path
311
+ },
312
+ candidateCount: candidates.length,
313
+ reason
314
+ });
315
+ return {
316
+ found: true,
317
+ path: selected.path,
318
+ version: selected.version,
319
+ sourceType: selected.type,
320
+ resolutionInfo: {
321
+ candidates,
322
+ selected,
323
+ reason
324
+ }
325
+ };
326
+ }
327
+ //# sourceMappingURL=package-name-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-name-resolution.js","sourceRoot":"","sources":["../../src/utils/package-name-resolution.ts"],"names":[],"mappings":"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"}