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
package/README.md CHANGED
@@ -1,241 +1,164 @@
1
- # OpenPackage
2
1
 
2
+ <p align="center">
3
+ <a href="https://github.com/enulus/OpenPackage">
4
+ <picture>
5
+ <source srcset="assets/openpackage_ascii_dark.png" media="(prefers-color-scheme: dark)">
6
+ <source srcset="assets/openpackage_ascii_light.png" media="(prefers-color-scheme: light)">
7
+ <img src="assets/openpackage_ascii_light.png" alt="OpenPackage logo" height="64">
8
+ </picture>
9
+ </a>
10
+ </p>
11
+
12
+ <p align="center">Universal plugins for coding agents.</p>
13
+ <p align="center">
3
14
  <a href="https://www.npmjs.com/package/opkg " target="blank">
4
15
  <img src="https://img.shields.io/npm/v/opkg?style=flat-square" alt="Npm package for OpenPackage">
5
16
  </a>
6
- <a href="https://discord.gg/W5H54HZ8Fm" target="blank">
7
- <img src="https://img.shields.io/badge/Discord-%235865F2.svg?&logo=discord&logoColor=white&style=flat-square" alt="OpenPackage Discord">
17
+ <a href="./LICENSE">
18
+ <img alt="License: Apache-2.0" src="https://img.shields.io/github/license/enulus/openpackage?style=flat-square" />
19
+ </a>
20
+ <a href="https://discord.gg/W5H54HZ8Fm" target="blank">
21
+ <img src="https://img.shields.io/badge/Discord-Join%20the%20community-5865F2?logo=discord&logoColor=white&style=flat-square" alt="OpenPackage Discord">
8
22
  </a>
9
23
  <br /><br />
24
+ </p>
10
25
 
11
- OpenPackage is the package manager for AI coding.
12
-
13
- Save and sync rules, slash commands, agents, and more.
14
- Build reusable packages for use across multiple projects and AI coding platforms.
15
-
16
- Learn more in the official docs: [openpackage.dev/docs](https://openpackage.dev/docs).
17
-
18
- Looking to discover, download, or publish packages?
19
- Check out the official OpenPackage registry: [openpackage.dev/packages](https://openpackage.dev/packages).
26
+ <p align="center">
27
+ Follow <a href="https://x.com/hyericlee">@hyericlee on X</a> for updates Ā· Join the <a href="https://discord.gg/W5H54HZ8Fm">OpenPackage Discord</a> for help and questions.
28
+ </p>
20
29
 
21
- > [!NOTE]
22
- > For latest news and updates, follow the creator's X (Twitter) account
23
- > [@hyericlee](https://x.com/hyericlee)
24
-
25
- ## Installation
26
-
27
- npm
28
- ```bash
29
- npm install -g opkg
30
- ```
31
- ## Use Cases
32
-
33
- ### Reuse files across multiple codebases
34
- Reuse rules, slash commands, and more across multiple codebases.
35
-
36
- #### Single file
37
- ```bash title="Terminal"
38
- # In current codebase
39
- opkg save f specs/nextjs.md
40
- # In another codebase
41
- opkg install f/specs/nextjs.md
42
- ```
43
-
44
- #### Multiple files via package
45
- ```bash title="Terminal"
46
- # In current codebase
47
- opkg save essentials
48
- # In another codebase
49
- opkg install essentials
50
- ```
51
-
52
- > [!NOTE]
53
- > You can also use command `openpackage` instead of `opkg`
54
-
55
- ### Sync files across multiple platforms
56
- Automatically sync your rules, slash commands, and more across multiple platform.
57
- ```bash title="Terminal"
58
- # Current codebase has .cursor, .claude, .opencode directories
59
- opkg save essentials .cursor/commands/essentials
60
- # OpenPackage CLI automatically generates/syncs the same command files across all platforms.
61
-
62
- # Before save:
63
- # .cursor/commands/essentials/cleanup.md
64
-
65
- # After save:
66
- # .cursor/commands/essentials/cleanup.md
67
- # .claude/commands/essentials/cleanup.md
68
- # .opencode/command/essentials/cleanup.md
69
- ```
30
+ # OpenPackage
70
31
 
71
- ### Modular management of files
72
- Create domain specific packages for modular reuse.
73
- ```bash title="Terminal"
74
- # Create typescript package
75
- opkg save typescript .cursor/rules/typescript
32
+ OpenPackage turns your AI coding setups into reusable modules that anyone can instantly install to any platform, any codebase, ensuring consistent workflows across projects and teams. **No API keys. No MCP.**
76
33
 
77
- # Create scalable-nextjs package
78
- opkg save scalable-nextjs .cursor/rules/nextjs
34
+ ## Why OpenPackage?
79
35
 
80
- # Create scalable-nestjs package
81
- opkg save scalable-nestjs .cursor/rules/nestjs
36
+ Modern AI coding tools are powerful, but lack organization, reusability, and efficiency.
37
+ - Rules, commands, subagents, and skills scattered across multiple projects.
38
+ - Familiar workflows rebuilt for each project, incompatible between AI coding platforms.
39
+ - Specs across individuals and codebases, diverging, unversioned, and incohesive.
82
40
 
83
- # Create mongodb package
84
- opkg save mongodb .cursor/rules/mongodb
41
+ OpenPackage takes care of cross-platform conversions, config composition, and portability, freeing you to build more, faster.
85
42
 
86
- # In your NextJS codebase
87
- opkg install typescript
88
- opkg install scalable-nextjs
43
+ - Install & sync pre-built workflows to speed up coding. No more reinventing the wheel.
44
+ - Reuse rules, slash commands, and skills across multiple codebases and platforms.
45
+ - Share and compose packages together to create powerful workflows that continuously evolve.
89
46
 
90
- # In your NestJS codebase
91
- opkg install typescript
92
- opkg install scalable-nestjs
93
- opkg install mongodb
94
- ```
47
+ ## How it works
95
48
 
96
- ## Usage
49
+ At its core, OpenPackage is a lightweight CLI tool for creating versioned, AI coding platform agnostic packages, each contaning sets of coding config files and specs for simplified installs, uninstalls, and distribution. It's basically Claude Code Plugins, but universal, more powerful, and open source.
97
50
 
98
- > [!TIP]
99
- > We highly recommend reading [the packages doc](https://openpackage.dev/docs/packages) to understand how packages work.
51
+ 1. Declare a package
52
+ 2. Add rules, commands, subagents, skills, mcp configs, specs, docs etc.
53
+ 3. Install and sync to multiple codebases
100
54
 
101
- ### Save a file
55
+ ## Use cases
102
56
 
103
- ```bash title="Terminal"
104
- opkg save <package> <path-to-dir-or-file>
105
- ```
106
- Adds the file to the specified package and saves to local registry for reuse and sharing.
57
+ - Install Claude Code Plugins to any coding platform
58
+ - Reuse files and configs across multiple codebases
59
+ - Sync configs across multiple platforms
60
+ - Modular management of specs, rules, commands, agents, skills, and MCPs
107
61
 
108
- ### Create a package
62
+ ## Quick start
109
63
 
110
- #### In a project/workspace
64
+ ### Install
111
65
 
112
- ```bash title="Terminal"
113
- opkg init <package>
114
- ```
115
- Initializes a package at `.openpackage/packages/<package>/` and generates the package's `package.yml` manifest file. This method is ideal for creating/managing multiple packages within existing projects.
116
- ```bash title="Terminal"
117
- opkg add <package> <path-to-dir-or-file>
118
- ```
119
- Use the `add` command to add files from the workspace to a package. You can also directly create/update the package files in `.openpackage/packages/<package>/` (see Package Structure below for details).
66
+ npm
67
+ ```bash
68
+ npm install -g opkg
69
+ ```
120
70
 
71
+ ### Compose a package
121
72
 
122
- #### In a dedicated codebase for the package
123
73
  ```bash title="Terminal"
124
- opkg init
125
- ```
126
- Initializes a package at cwd and generates the package's `package.yml` manifest file. Use this to dedicate the codebase to the package itself (see Package Structure below for details on structuring a package).
74
+ opkg new <package>
75
+ ```
127
76
 
77
+ Then manually add/update/remove files to and from the package following this structure:
128
78
 
129
- ### Save a package
130
- ```bash title="Terminal"
131
- opkg save [package]
132
- ```
133
- Save the set of dirs and files as a package for reuse and cross-platform sync (prerelease).
134
- Also performs sync of universal subdir content across detected AI coding platform dirs.
79
+ ```txt title="Structure"
80
+ <package>
81
+ │
82
+ │ # Package files
83
+ ā”œā”€ā”€ openpackage.yml # The OpenPackage manifest, required
84
+ ā”œā”€ā”€ README.md # LICENSE.md, CONTRIBUTING.md, etc.
85
+ │
86
+ │ # Content files
87
+ ā”œā”€ā”€ rules/ # Rule files
88
+ ā”œā”€ā”€ commands/ # Command files (slash commands)
89
+ ā”œā”€ā”€ agents/ # Agent files (subagents)
90
+ ā”œā”€ā”€ skills/ # Skill files (skills)
91
+ ā”œā”€ā”€ root/ # Any other root dirs or files (Ex: specs/, docs/, tests/, etc.)
92
+ ā”œā”€ā”€ AGENTS.md # Platform root file
93
+ ā”œā”€ā”€ mcp.jsonc # MCP config file
94
+ │
95
+ │ # Custom files
96
+ └── <other> # Customizable via `platforms.jsonc` overrides/extensions
97
+ ```
135
98
 
136
- ### Finalize/pack a package
137
- ```bash title="Terminal"
138
- opkg pack [package]
139
- ```
140
- Save the package as a stable non-prerelease version ready for push (upload).
99
+ You can also use the `add` and `remove` commands to add/remove files to/from a package.
141
100
 
142
- ### List packages
143
101
  ```bash title="Terminal"
144
- opkg list
102
+ opkg add <package> .cursor/commands/clean.md # Adds workspace file or dir to package
103
+ opkg remove <package> commands/clean.md # Removes file or dir from package
145
104
  ```
146
- Use the list command to show all packages currently saved to the local registry.
147
105
 
148
- ### Show package details
149
- ```bash title="Terminal"
150
- opkg show <package>
151
- ```
152
- The show command outputs the details of the package and lists all included files.
106
+ > [!TIP]
107
+ > Learn more about packages from the [packages doc](https://openpackage.dev/docs/packages) on our official docs.
153
108
 
154
- ### Install a package
109
+ ### Install packages
155
110
  ```bash title="Terminal"
156
111
  opkg install <package>
157
112
  ```
158
- Use the install command to add all files under the specified package to the codebase at cwd.
159
-
160
- ### Uninstall a package
161
- ```bash title="Terminal"
162
- opkg uninstall <package>
163
- ```
164
- Use the uninstall command to remove all files for the specified package from the codebase at cwd.
113
+ Installs all files from a package into the codebase at cwd, formatted and converted to per platform conventions and into their respective dirs.
165
114
 
166
- ### Authenticate CLI
115
+ The install command supports various package sources:
167
116
  ```bash title="Terminal"
168
- opkg login
117
+ opkg install essentials # Local/remote registry
118
+ opkg install ../packages/essentials/ # Local path
119
+ opkg install github:https://github.com/enulus/awesome-openpackage.git # GitHub package repo
120
+ opkg install github:https://github.com/anthropics/claude-code.git # GitHub Claude Code Plugins marketplace
169
121
  ```
170
- Use the `login` command to authenticate the CLI for pushing packages to the [official OpenPackage registry](https://openpackage.dev).
171
122
 
172
- ### Push a package to remote
173
- ```bash title="Terminal"
174
- opkg push <package>
175
- ```
176
- Use the `push` command to upload a package to the [official OpenPackage registry](https://openpackage.dev).
177
123
 
178
- ### Pull a package from remote
124
+ ### Uninstall packages
179
125
  ```bash title="Terminal"
180
- opkg pull <package>
126
+ opkg uninstall <package>
181
127
  ```
182
- Use the `pull` command to download a package from the [official OpenPackage registry](https://openpackage.dev) to the local registry.
128
+ Removes all files for a package from the codebase at cwd.
183
129
 
184
130
  > [!TIP]
185
131
  > Learn more by heading over to the [official docs](https://openpackage.dev/docs).
186
132
 
187
- ## Package Structure
188
-
189
- Packages are composed using the following directory structure:
190
-
191
- ```txt title="Structure"
192
- <package>
193
- ā”œā”€ā”€ .openpackage/
194
- │ ā”œā”€ā”€ package.yml # The OpenPackage manifest, required
195
- │ ā”œā”€ā”€ rules/
196
- │ │ └── # Rule files
197
- │ ā”œā”€ā”€ commands/
198
- │ │ └── # Command files (slash commands)
199
- │ ā”œā”€ā”€ agents/
200
- │ │ └── # Agent files (subagents)
201
- │ └── skills/
202
- │ └── # Skill files (Claude Code skills)
203
- ā”œā”€ā”€ <dirs-or-files>
204
- │ └── # Any other root dirs or files (Ex: specs/, docs/, tests/, etc.)
205
- ā”œā”€ā”€ README.md # Metadata files (LICENSE.md, CONTRIBUTING.md, etc.)
206
- └── AGENTS.md # Platform root file
207
- ```
208
-
209
- There are two ways to compose packages:
210
- - In a project workspace: `opkg init <package>` will create a package in `.openpackage/packages/<packages>/`
211
- - In a dedicated package codebase: `opkg init` will create a package at cwd (similar to npm, pypi, etc.)
212
-
213
133
  ## Supported Platforms
214
134
 
215
135
  OpenPackage performs installation and platform sync of files for supported AI coding platforms outlined by the table below.
216
- Files and paths will be automatically converted to platform specific designations during `save` and `install`. The `platforms.jsonc` file includes the specifications for all supported platforms.
217
-
218
- > [!NOTE]
219
- > OpenPackage searches and includes markdown files under supported platform directories as well as any other workspace directories.
220
-
221
- | Platform | Directory | Root file | Rules | Commands | Agents | Skills |
222
- | --- | --- | --- | --- | --- | --- | --- |
223
- | Augment Code | .augment/ | | rules/ | commands/ | | |
224
- | Claude Code | .claude/ | CLAUDE.md | | commands/ | agents/ | skills/ |
225
- | Codex | .codex/ | AGENTS.md | | prompts/ | | |
226
- | Cursor | .cursor/ | AGENTS.md | rules/ | commands/ | | |
227
- | Factory | .factory/ | AGENTS.md | | commands/ | droids/ | |
228
- | Kilo Code | .kilocode/ | AGENTS.md | rules/ | workflows/ | | |
229
- | Kiro | .kiro/ | | steering/ | | | |
230
- | OpenCode | .opencode/ | AGENTS.md | | command/ | agent/ | |
231
- | Qwen Code | .qwen/ | QWEN.md | | | agents/ | |
232
- | Roo | .roo/ | AGENTS.md | | commands/ | | |
233
- | Warp | .warp/ | WARP.md | | | |
234
- | Windsurf | .windsurf/ | | rules/ | | | |
136
+
137
+ | Platform | Directory | Root file | Rules | Commands | Agents | Skills | MCP |
138
+ | --- | --- | --- | --- | --- | --- | --- | --- |
139
+ | Antigravity | .agent/ | | rules/ | workflows/ | | | |
140
+ | Augment Code | .augment/ | | rules/ | commands/ | | | |
141
+ | Claude Code | .claude/ | CLAUDE.md | rules/ | commands/ | agents/ | skills/ | .mcp.json (root) |
142
+ | Codex | .codex/ | AGENTS.md | | prompts/ | | | mcp-servers.toml |
143
+ | Cursor | .cursor/ | AGENTS.md | rules/ | commands/ | agents/ | | mcp.json |
144
+ | Factory | .factory/ | AGENTS.md | | commands/ | droids/ | | mcp.json |
145
+ | Kilo Code | .kilocode/ | AGENTS.md | rules/ | workflows/ | | | mcp.json |
146
+ | Kiro | .kiro/ | | steering/ | | | | settings/mcp.json |
147
+ | OpenCode | .opencode/ | AGENTS.md | | command/ | agent/ | skills/ | opencode.json |
148
+ | Qwen Code | .qwen/ | QWEN.md | | | agents/ | | settings.json |
149
+ | Roo | .roo/ | AGENTS.md | | commands/ | | | mcp.json |
150
+ | Warp | .warp/ | WARP.md | | | | |
151
+ | Windsurf | .windsurf/ | | rules/ | | | | |
152
+
153
+ The built-in `platforms.jsonc` defines supported platforms, but can be overridden by user configs:
154
+ - Global: `~/.openpackage/platforms.jsonc` (`.json`)
155
+ - Workspace: `<cwd>/.openpackage/platforms.jsonc` (`.json`)
156
+
157
+ Deep-merged (local > global > built-in) for per-project customization.
235
158
 
236
159
  ## Contributing
237
160
 
238
- We would love your help building the future of package management for AI coding.
161
+ We would love your help building a more open source and universally compatible agentic coding ecosystem.
239
162
 
240
163
  Feel free to create [PRs](https://github.com/enulus/OpenPackage/pulls) and [Github issues](https://github.com/enulus/OpenPackage/issues) for:
241
164
  - Bugs
@@ -1,21 +1,45 @@
1
1
  import { withErrorHandling } from '../utils/errors.js';
2
- import { runAddPipeline } from '../core/add/add-pipeline.js';
2
+ import { runAddToSourcePipeline } from '../core/add/add-to-source-pipeline.js';
3
+ import { readWorkspaceIndex } from '../utils/workspace-index-yml.js';
4
+ import { formatPathForDisplay } from '../utils/formatters.js';
3
5
  export function setupAddCommand(program) {
4
6
  program
5
7
  .command('add')
6
- .argument('[package-or-path]', 'package name, or path when omitting package name')
7
- .argument('[path]', 'file or directory to add (when first arg is a package name)')
8
- .description('Copy supported workspace files or directories into a local package directory.\n' +
9
- 'Usage examples:\n' +
10
- ' opkg add my-package .cursor/rules/example.md\n' +
11
- ' opkg add my-package ai/helpers/\n' +
12
- ' opkg add ai/helpers/\n')
8
+ .argument('<package-name>', 'package name')
9
+ .argument('<path>', 'file or directory to add')
10
+ .description('Add files to a mutable package source')
13
11
  .option('--platform-specific', 'Save platform-specific variants for platform subdir inputs')
14
- .action(withErrorHandling(async (packageOrPath, pathArg, options) => {
15
- const result = await runAddPipeline(packageOrPath, pathArg, options);
12
+ .option('--apply', 'Apply changes to workspace immediately (requires package to be installed)')
13
+ .action(withErrorHandling(async (packageName, pathArg, options) => {
14
+ const result = await runAddToSourcePipeline(packageName, pathArg, options);
16
15
  if (!result.success) {
17
16
  throw new Error(result.error || 'Add operation failed');
18
17
  }
18
+ // Provide helpful feedback
19
+ if (result.data) {
20
+ const cwd = process.cwd();
21
+ const { filesAdded, sourcePath, sourceType, packageName: resolvedName } = result.data;
22
+ // Format the path for display using unified formatter
23
+ const displayPath = formatPathForDisplay(sourcePath, cwd);
24
+ console.log(`\nāœ“ Added ${filesAdded} file${filesAdded !== 1 ? 's' : ''} to ${resolvedName}`);
25
+ console.log(` Path: ${displayPath}`);
26
+ console.log(` Type: ${sourceType} package`);
27
+ if (!options.apply) {
28
+ // Check if package is installed in workspace
29
+ const workspaceIndexRecord = await readWorkspaceIndex(cwd);
30
+ const isInstalled = !!workspaceIndexRecord.index.packages[resolvedName];
31
+ if (isInstalled) {
32
+ console.log(`\nšŸ’” Changes not synced to workspace.`);
33
+ console.log(` To sync changes, run:`);
34
+ console.log(` opkg apply ${resolvedName}`);
35
+ }
36
+ else {
37
+ console.log(`\nšŸ’” Package not installed in workspace.`);
38
+ console.log(` To install and sync, run:`);
39
+ console.log(` opkg install ${resolvedName}`);
40
+ }
41
+ }
42
+ }
19
43
  }));
20
44
  }
21
45
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAA2B,MAAM,6BAA6B,CAAC;AAEtF,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,mBAAmB,EAAE,kDAAkD,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,6DAA6D,CAAC;SACjF,WAAW,CACV,iFAAiF;QACjF,mBAAmB;QACnB,kDAAkD;QAClD,qCAAqC;QACrC,0BAA0B,CAC3B;SACA,MAAM,CAAC,qBAAqB,EAAE,4DAA4D,CAAC;SAC3F,MAAM,CACL,iBAAiB,CAAC,KAAK,EAAE,aAAiC,EAAE,OAA2B,EAAE,OAA2B,EAAE,EAAE;QACtH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,sBAAsB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,uCAAuC,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;SAC1C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC9C,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,qBAAqB,EAAE,4DAA4D,CAAC;SAC3F,MAAM,CAAC,SAAS,EAAE,2EAA2E,CAAC;SAC9F,MAAM,CACL,iBAAiB,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA2B,EAAE,OAA2B,EAAE,EAAE;QACpH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAEtF,sDAAsD;YACtD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAE1D,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,QAAQ,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,YAAY,EAAE,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,UAAU,CAAC,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,6CAA6C;gBAC7C,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAExE,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { withErrorHandling } from '../utils/errors.js';
2
+ import { runApplyPipeline } from '../core/apply/apply-pipeline.js';
3
+ export function setupApplyCommand(program) {
4
+ program
5
+ .command('apply')
6
+ .description('Apply/sync package across platforms')
7
+ .argument('[package-name]', 'package name to apply (defaults to current/root package)')
8
+ .option('-f, --force', 'overwrite existing files without prompting')
9
+ .option('--dry-run', 'plan apply without writing files')
10
+ .action(withErrorHandling(async (packageName, options) => {
11
+ const result = await runApplyPipeline(packageName, options ?? {});
12
+ if (!result.success)
13
+ throw new Error(result.error || 'Apply operation failed');
14
+ }));
15
+ }
16
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,iCAAiC,CAAC;AAE9F,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,gBAAgB,EAAE,0DAA0D,CAAC;SACtF,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;SACnE,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;SACvD,MAAM,CACL,iBAAiB,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA6B,EAAE,EAAE;QACzF,MAAM,MAAM,GAAkB,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IACjF,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -151,7 +151,7 @@ export function setupDeleteCommand(program) {
151
151
  program
152
152
  .command('delete')
153
153
  .alias('del')
154
- .description('Delete a package from local registry. Supports versioning with package@version syntax and prerelease version deletion.')
154
+ .description('Delete package from local registry')
155
155
  .argument('<package>', 'package name or package@version to delete. Use package@baseVersion to delete all prerelease versions of that base version.')
156
156
  .option('-f, --force', 'skip confirmation prompt')
157
157
  .option('-i, --interactive', 'interactively select version to delete')
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}