opkg 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/README.md +109 -186
  2. package/assets/openpackage_ascii_dark.png +0 -0
  3. package/assets/openpackage_ascii_light.png +0 -0
  4. package/dist/commands/add.js +34 -10
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/apply.js +16 -0
  7. package/dist/commands/apply.js.map +1 -0
  8. package/dist/commands/delete.js +1 -1
  9. package/dist/commands/delete.js.map +1 -1
  10. package/dist/commands/install.js +177 -8
  11. package/dist/commands/install.js.map +1 -1
  12. package/dist/commands/list.js +2 -2
  13. package/dist/commands/list.js.map +1 -1
  14. package/dist/commands/login.js +1 -1
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/logout.js +1 -1
  17. package/dist/commands/logout.js.map +1 -1
  18. package/dist/commands/new.js +125 -0
  19. package/dist/commands/new.js.map +1 -0
  20. package/dist/commands/pack.js +7 -13
  21. package/dist/commands/pack.js.map +1 -1
  22. package/dist/commands/pull.js +1 -1
  23. package/dist/commands/pull.js.map +1 -1
  24. package/dist/commands/push.js +1 -1
  25. package/dist/commands/push.js.map +1 -1
  26. package/dist/commands/remove.js +63 -0
  27. package/dist/commands/remove.js.map +1 -0
  28. package/dist/commands/save.js +11 -17
  29. package/dist/commands/save.js.map +1 -1
  30. package/dist/commands/set.js +33 -0
  31. package/dist/commands/set.js.map +1 -0
  32. package/dist/commands/show.js +16 -94
  33. package/dist/commands/show.js.map +1 -1
  34. package/dist/commands/status.js +26 -701
  35. package/dist/commands/status.js.map +1 -1
  36. package/dist/commands/uninstall.js +14 -427
  37. package/dist/commands/uninstall.js.map +1 -1
  38. package/dist/constants/index.js +72 -16
  39. package/dist/constants/index.js.map +1 -1
  40. package/dist/core/add/add-conflict-handler.js +1 -8
  41. package/dist/core/add/add-conflict-handler.js.map +1 -1
  42. package/dist/core/add/add-pipeline.js +12 -10
  43. package/dist/core/add/add-pipeline.js.map +1 -1
  44. package/dist/core/add/add-to-source-pipeline.js +123 -0
  45. package/dist/core/add/add-to-source-pipeline.js.map +1 -0
  46. package/dist/core/add/package-index-updater.js +77 -78
  47. package/dist/core/add/package-index-updater.js.map +1 -1
  48. package/dist/core/add/platform-path-transformer.js +6 -4
  49. package/dist/core/add/platform-path-transformer.js.map +1 -1
  50. package/dist/core/add/source-collector.js +2 -3
  51. package/dist/core/add/source-collector.js.map +1 -1
  52. package/dist/core/apply/apply-pipeline.js +110 -0
  53. package/dist/core/apply/apply-pipeline.js.map +1 -0
  54. package/dist/core/dependency-resolver.js +263 -21
  55. package/dist/core/dependency-resolver.js.map +1 -1
  56. package/dist/core/discovery/file-discovery.js +1 -2
  57. package/dist/core/discovery/file-discovery.js.map +1 -1
  58. package/dist/core/discovery/platform-files-discovery.js +33 -18
  59. package/dist/core/discovery/platform-files-discovery.js.map +1 -1
  60. package/dist/core/flows/flow-executor.js +974 -0
  61. package/dist/core/flows/flow-executor.js.map +1 -0
  62. package/dist/core/flows/flow-inverter.js +442 -0
  63. package/dist/core/flows/flow-inverter.js.map +1 -0
  64. package/dist/core/flows/flow-key-extractor.js +101 -0
  65. package/dist/core/flows/flow-key-extractor.js.map +1 -0
  66. package/dist/core/flows/flow-key-mapper.js +382 -0
  67. package/dist/core/flows/flow-key-mapper.js.map +1 -0
  68. package/dist/core/flows/flow-transforms.js +632 -0
  69. package/dist/core/flows/flow-transforms.js.map +1 -0
  70. package/dist/core/flows/map-pipeline/context.js +73 -0
  71. package/dist/core/flows/map-pipeline/context.js.map +1 -0
  72. package/dist/core/flows/map-pipeline/index.js +156 -0
  73. package/dist/core/flows/map-pipeline/index.js.map +1 -0
  74. package/dist/core/flows/map-pipeline/operations/copy.js +104 -0
  75. package/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
  76. package/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
  77. package/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
  78. package/dist/core/flows/map-pipeline/operations/rename.js +102 -0
  79. package/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
  80. package/dist/core/flows/map-pipeline/operations/set.js +50 -0
  81. package/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
  82. package/dist/core/flows/map-pipeline/operations/switch.js +79 -0
  83. package/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
  84. package/dist/core/flows/map-pipeline/operations/transform.js +543 -0
  85. package/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
  86. package/dist/core/flows/map-pipeline/operations/unset.js +65 -0
  87. package/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
  88. package/dist/core/flows/map-pipeline/types.js +8 -0
  89. package/dist/core/flows/map-pipeline/types.js.map +1 -0
  90. package/dist/core/flows/map-pipeline/utils.js +278 -0
  91. package/dist/core/flows/map-pipeline/utils.js.map +1 -0
  92. package/dist/core/flows/platform-converter.js +328 -0
  93. package/dist/core/flows/platform-converter.js.map +1 -0
  94. package/dist/core/flows/source-resolver.js +192 -0
  95. package/dist/core/flows/source-resolver.js.map +1 -0
  96. package/dist/core/flows/toml-domain-transforms.js +23 -0
  97. package/dist/core/flows/toml-domain-transforms.js.map +1 -0
  98. package/dist/core/install/bulk-install-pipeline.js +68 -7
  99. package/dist/core/install/bulk-install-pipeline.js.map +1 -1
  100. package/dist/core/install/canonical-plan.js +3 -3
  101. package/dist/core/install/canonical-plan.js.map +1 -1
  102. package/dist/core/install/dry-run.js +3 -3
  103. package/dist/core/install/dry-run.js.map +1 -1
  104. package/dist/core/install/flow-based-installer.js +1158 -0
  105. package/dist/core/install/flow-based-installer.js.map +1 -0
  106. package/dist/core/install/flow-workspace-tracker.js +111 -0
  107. package/dist/core/install/flow-workspace-tracker.js.map +1 -0
  108. package/dist/core/install/format-detector.js +228 -0
  109. package/dist/core/install/format-detector.js.map +1 -0
  110. package/dist/core/install/git-package-loader.js +20 -0
  111. package/dist/core/install/git-package-loader.js.map +1 -0
  112. package/dist/core/install/install-errors.js +1 -1
  113. package/dist/core/install/install-errors.js.map +1 -1
  114. package/dist/core/install/install-flow.js +34 -14
  115. package/dist/core/install/install-flow.js.map +1 -1
  116. package/dist/core/install/install-pipeline.js +52 -17
  117. package/dist/core/install/install-pipeline.js.map +1 -1
  118. package/dist/core/install/install-reporting.js +26 -8
  119. package/dist/core/install/install-reporting.js.map +1 -1
  120. package/dist/core/install/local-source-resolution.js +103 -0
  121. package/dist/core/install/local-source-resolution.js.map +1 -0
  122. package/dist/core/install/marketplace-handler.js +221 -0
  123. package/dist/core/install/marketplace-handler.js.map +1 -0
  124. package/dist/core/install/path-install-pipeline.js +241 -0
  125. package/dist/core/install/path-install-pipeline.js.map +1 -0
  126. package/dist/core/install/path-package-loader.js +116 -0
  127. package/dist/core/install/path-package-loader.js.map +1 -0
  128. package/dist/core/install/plugin-detector.js +72 -0
  129. package/dist/core/install/plugin-detector.js.map +1 -0
  130. package/dist/core/install/plugin-to-universal-converter.js +218 -0
  131. package/dist/core/install/plugin-to-universal-converter.js.map +1 -0
  132. package/dist/core/install/plugin-transformer.js +191 -0
  133. package/dist/core/install/plugin-transformer.js.map +1 -0
  134. package/dist/core/install/version-selection.js +1 -1
  135. package/dist/core/install/version-selection.js.map +1 -1
  136. package/dist/core/openpackage.js +40 -22
  137. package/dist/core/openpackage.js.map +1 -1
  138. package/dist/core/pack/pack-output.js +62 -0
  139. package/dist/core/pack/pack-output.js.map +1 -0
  140. package/dist/core/pack/pack-pipeline.js +186 -0
  141. package/dist/core/pack/pack-pipeline.js.map +1 -0
  142. package/dist/core/package-context.js +45 -70
  143. package/dist/core/package-context.js.map +1 -1
  144. package/dist/core/package-creation.js +203 -0
  145. package/dist/core/package-creation.js.map +1 -0
  146. package/dist/core/package.js +20 -6
  147. package/dist/core/package.js.map +1 -1
  148. package/dist/core/platforms.js +665 -209
  149. package/dist/core/platforms.js.map +1 -1
  150. package/dist/core/push/push-context.js +1 -1
  151. package/dist/core/push/push-context.js.map +1 -1
  152. package/dist/core/push/push-upload.js +2 -2
  153. package/dist/core/push/push-upload.js.map +1 -1
  154. package/dist/core/registry.js +6 -6
  155. package/dist/core/registry.js.map +1 -1
  156. package/dist/core/remote-pull.js +2 -2
  157. package/dist/core/remote-pull.js.map +1 -1
  158. package/dist/core/remove/removal-collector.js +52 -0
  159. package/dist/core/remove/removal-collector.js.map +1 -0
  160. package/dist/core/remove/removal-confirmation.js +39 -0
  161. package/dist/core/remove/removal-confirmation.js.map +1 -0
  162. package/dist/core/remove/remove-from-source-pipeline.js +173 -0
  163. package/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
  164. package/dist/core/save/constants.js +3 -3
  165. package/dist/core/save/constants.js.map +1 -1
  166. package/dist/core/save/flow-based-saver.js +270 -0
  167. package/dist/core/save/flow-based-saver.js.map +1 -0
  168. package/dist/core/save/name-resolution.js +1 -1
  169. package/dist/core/save/name-resolution.js.map +1 -1
  170. package/dist/core/save/package-yml-generator.js +4 -5
  171. package/dist/core/save/package-yml-generator.js.map +1 -1
  172. package/dist/core/save/save-candidate-builder.js +215 -0
  173. package/dist/core/save/save-candidate-builder.js.map +1 -0
  174. package/dist/core/save/save-candidate-loader.js +12 -11
  175. package/dist/core/save/save-candidate-loader.js.map +1 -1
  176. package/dist/core/save/save-conflict-analyzer.js +150 -0
  177. package/dist/core/save/save-conflict-analyzer.js.map +1 -0
  178. package/dist/core/save/save-conflict-resolution.js +28 -14
  179. package/dist/core/save/save-conflict-resolution.js.map +1 -1
  180. package/dist/core/save/save-conflict-resolver.js +31 -275
  181. package/dist/core/save/save-conflict-resolver.js.map +1 -1
  182. package/dist/core/save/save-group-builder.js +52 -0
  183. package/dist/core/save/save-group-builder.js.map +1 -0
  184. package/dist/core/save/save-interactive-resolver.js +190 -0
  185. package/dist/core/save/save-interactive-resolver.js.map +1 -0
  186. package/dist/core/save/save-pipeline.js +58 -34
  187. package/dist/core/save/save-pipeline.js.map +1 -1
  188. package/dist/core/save/save-platform-handler.js +53 -0
  189. package/dist/core/save/save-platform-handler.js.map +1 -0
  190. package/dist/core/save/save-resolution-executor.js +145 -0
  191. package/dist/core/save/save-resolution-executor.js.map +1 -0
  192. package/dist/core/save/save-result-reporter.js +167 -0
  193. package/dist/core/save/save-result-reporter.js.map +1 -0
  194. package/dist/core/save/save-to-source-pipeline.js +154 -0
  195. package/dist/core/save/save-to-source-pipeline.js.map +1 -0
  196. package/dist/core/save/save-versioning.js +4 -4
  197. package/dist/core/save/save-versioning.js.map +1 -1
  198. package/dist/core/save/save-write-coordinator.js +204 -0
  199. package/dist/core/save/save-write-coordinator.js.map +1 -0
  200. package/dist/core/save/save-yml-resolution.js +28 -216
  201. package/dist/core/save/save-yml-resolution.js.map +1 -1
  202. package/dist/core/save/workspace-rename.js +7 -8
  203. package/dist/core/save/workspace-rename.js.map +1 -1
  204. package/dist/core/set/set-output.js +72 -0
  205. package/dist/core/set/set-output.js.map +1 -0
  206. package/dist/core/set/set-pipeline.js +361 -0
  207. package/dist/core/set/set-pipeline.js.map +1 -0
  208. package/dist/core/set/set-types.js +5 -0
  209. package/dist/core/set/set-types.js.map +1 -0
  210. package/dist/core/show/package-resolver.js +257 -0
  211. package/dist/core/show/package-resolver.js.map +1 -0
  212. package/dist/core/show/scope-discovery.js +165 -0
  213. package/dist/core/show/scope-discovery.js.map +1 -0
  214. package/dist/core/show/show-output.js +168 -0
  215. package/dist/core/show/show-output.js.map +1 -0
  216. package/dist/core/show/show-pipeline.js +113 -0
  217. package/dist/core/show/show-pipeline.js.map +1 -0
  218. package/dist/core/show/show-types.js +5 -0
  219. package/dist/core/show/show-types.js.map +1 -0
  220. package/dist/core/source-resolution/dependency-graph.js +104 -0
  221. package/dist/core/source-resolution/dependency-graph.js.map +1 -0
  222. package/dist/core/source-resolution/resolve-mutable-source.js +109 -0
  223. package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
  224. package/dist/core/source-resolution/resolve-package-source.js +29 -0
  225. package/dist/core/source-resolution/resolve-package-source.js.map +1 -0
  226. package/dist/core/source-resolution/resolve-registry-version.js +35 -0
  227. package/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
  228. package/dist/core/source-resolution/types.js.map +1 -0
  229. package/dist/core/status/status-file-discovery.js +23 -12
  230. package/dist/core/status/status-file-discovery.js.map +1 -1
  231. package/dist/core/status/status-pipeline.js +134 -0
  232. package/dist/core/status/status-pipeline.js.map +1 -0
  233. package/dist/core/sync/platform-sync-summary.js +27 -0
  234. package/dist/core/sync/platform-sync-summary.js.map +1 -0
  235. package/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
  236. package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
  237. package/dist/core/uninstall/uninstall-file-discovery.js +11 -6
  238. package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
  239. package/dist/core/uninstall/uninstall-pipeline.js +141 -0
  240. package/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
  241. package/dist/core/universal-patterns.js +64 -0
  242. package/dist/core/universal-patterns.js.map +1 -0
  243. package/dist/index.js +99 -6
  244. package/dist/index.js.map +1 -1
  245. package/dist/types/flows.js +8 -0
  246. package/dist/types/flows.js.map +1 -0
  247. package/dist/types/index.js +3 -0
  248. package/dist/types/index.js.map +1 -1
  249. package/dist/types/platform-flows.js +8 -0
  250. package/dist/types/platform-flows.js.map +1 -0
  251. package/dist/types/workspace-index.js +6 -0
  252. package/dist/types/workspace-index.js.map +1 -0
  253. package/dist/utils/custom-path-resolution.js +160 -0
  254. package/dist/utils/custom-path-resolution.js.map +1 -0
  255. package/dist/utils/dependency-coverage.js +1 -1
  256. package/dist/utils/dependency-coverage.js.map +1 -1
  257. package/dist/utils/file-processing.js +1 -1
  258. package/dist/utils/flow-index-installer.js +209 -0
  259. package/dist/utils/flow-index-installer.js.map +1 -0
  260. package/dist/utils/formatters.js +47 -1
  261. package/dist/utils/formatters.js.map +1 -1
  262. package/dist/utils/fs.js +17 -0
  263. package/dist/utils/fs.js.map +1 -1
  264. package/dist/utils/git-clone-registry.js +88 -0
  265. package/dist/utils/git-clone-registry.js.map +1 -0
  266. package/dist/utils/git-clone.js +69 -0
  267. package/dist/utils/git-clone.js.map +1 -0
  268. package/dist/utils/git-spec.js +96 -0
  269. package/dist/utils/git-spec.js.map +1 -0
  270. package/dist/utils/http-client.js +7 -0
  271. package/dist/utils/http-client.js.map +1 -1
  272. package/dist/utils/index-based-installer.js +356 -163
  273. package/dist/utils/index-based-installer.js.map +1 -1
  274. package/dist/utils/install-conflict-handler.js +2 -2
  275. package/dist/utils/install-conflict-handler.js.map +1 -1
  276. package/dist/utils/install-file-discovery.js +18 -13
  277. package/dist/utils/install-file-discovery.js.map +1 -1
  278. package/dist/utils/install-helpers.js +43 -20
  279. package/dist/utils/install-helpers.js.map +1 -1
  280. package/dist/utils/jsonc.js +23 -1
  281. package/dist/utils/jsonc.js.map +1 -1
  282. package/dist/utils/manifest-paths.js +1 -1
  283. package/dist/utils/manifest-paths.js.map +1 -1
  284. package/dist/utils/markdown-frontmatter.js +46 -0
  285. package/dist/utils/markdown-frontmatter.js.map +1 -1
  286. package/dist/utils/package-copy.js +5 -103
  287. package/dist/utils/package-copy.js.map +1 -1
  288. package/dist/utils/package-filters.js +9 -105
  289. package/dist/utils/package-filters.js.map +1 -1
  290. package/dist/utils/package-index-yml.js +27 -6
  291. package/dist/utils/package-index-yml.js.map +1 -1
  292. package/dist/utils/package-input.js +98 -0
  293. package/dist/utils/package-input.js.map +1 -0
  294. package/dist/utils/package-management.js +80 -28
  295. package/dist/utils/package-management.js.map +1 -1
  296. package/dist/utils/package-name-resolution.js +327 -0
  297. package/dist/utils/package-name-resolution.js.map +1 -0
  298. package/dist/utils/package-name.js +18 -16
  299. package/dist/utils/package-name.js.map +1 -1
  300. package/dist/utils/package-versioning.js +2 -33
  301. package/dist/utils/package-versioning.js.map +1 -1
  302. package/dist/utils/package-yml.js +19 -28
  303. package/dist/utils/package-yml.js.map +1 -1
  304. package/dist/utils/path-resolution.js +102 -0
  305. package/dist/utils/path-resolution.js.map +1 -0
  306. package/dist/utils/paths.js +6 -6
  307. package/dist/utils/paths.js.map +1 -1
  308. package/dist/utils/platform-file.js +36 -24
  309. package/dist/utils/platform-file.js.map +1 -1
  310. package/dist/utils/platform-mapper.js +222 -68
  311. package/dist/utils/platform-mapper.js.map +1 -1
  312. package/dist/utils/platform-root-files.js +44 -0
  313. package/dist/utils/platform-root-files.js.map +1 -0
  314. package/dist/utils/platform-utils.js +35 -54
  315. package/dist/utils/platform-utils.js.map +1 -1
  316. package/dist/utils/platform-yaml-merge.js +20 -140
  317. package/dist/utils/platform-yaml-merge.js.map +1 -1
  318. package/dist/utils/prompts.js +92 -7
  319. package/dist/utils/prompts.js.map +1 -1
  320. package/dist/utils/registry-entry-filter.js +50 -27
  321. package/dist/utils/registry-entry-filter.js.map +1 -1
  322. package/dist/utils/registry-paths.js +5 -4
  323. package/dist/utils/registry-paths.js.map +1 -1
  324. package/dist/utils/scope-resolution.js +156 -0
  325. package/dist/utils/scope-resolution.js.map +1 -0
  326. package/dist/utils/source-mutability.js +15 -0
  327. package/dist/utils/source-mutability.js.map +1 -0
  328. package/dist/utils/tarball.js +29 -4
  329. package/dist/utils/tarball.js.map +1 -1
  330. package/dist/utils/version-ranges.js +1 -32
  331. package/dist/utils/version-ranges.js.map +1 -1
  332. package/dist/utils/workspace-index-helpers.js +28 -0
  333. package/dist/utils/workspace-index-helpers.js.map +1 -0
  334. package/dist/utils/workspace-index-ownership.js +100 -0
  335. package/dist/utils/workspace-index-ownership.js.map +1 -0
  336. package/dist/utils/workspace-index-yml.js +173 -0
  337. package/dist/utils/workspace-index-yml.js.map +1 -0
  338. package/examples/custom-subdirs-platform.jsonc +157 -0
  339. package/package.json +7 -2
  340. package/platforms.jsonc +531 -84
  341. package/schemas/map-pipeline-v1.json +256 -0
  342. package/schemas/platforms-v1.json +400 -0
  343. package/specs/README.md +88 -0
  344. package/specs/add/README.md +166 -0
  345. package/specs/agents-claude.md +570 -0
  346. package/specs/agents-opencode.md +622 -0
  347. package/specs/apply/README.md +21 -0
  348. package/specs/apply/apply-behavior.md +58 -0
  349. package/specs/apply/apply-command.md +51 -0
  350. package/specs/apply/conflicts.md +41 -0
  351. package/specs/apply/index-effects.md +81 -0
  352. package/specs/architecture.md +107 -0
  353. package/specs/auth/README.md +17 -0
  354. package/specs/auth/auth-http-contract.md +25 -0
  355. package/specs/auth/cli/credentials.md +39 -0
  356. package/specs/auth/cli/login.md +32 -0
  357. package/specs/auth/cli/logout.md +16 -0
  358. package/specs/claude-mcp.md +1065 -0
  359. package/specs/claude-plugins-marketplace.md +363 -0
  360. package/specs/claude-plugins.md +413 -0
  361. package/specs/cli-options.md +52 -0
  362. package/specs/codex-mcp.md +114 -0
  363. package/specs/commands-overview.md +175 -0
  364. package/specs/directory-layout.md +95 -0
  365. package/specs/install/README.md +12 -4
  366. package/specs/install/git-sources.md +230 -0
  367. package/specs/install/install-behavior.md +483 -73
  368. package/specs/install/package-yml-canonical.md +67 -35
  369. package/specs/install/version-resolution.md +69 -115
  370. package/specs/new/README.md +769 -0
  371. package/specs/new/SUMMARY.md +310 -0
  372. package/specs/new/scope-behavior.md +793 -0
  373. package/specs/pack/README.md +77 -0
  374. package/specs/pack/package-name-resolution.md +330 -0
  375. package/specs/package/README.md +18 -17
  376. package/specs/package/nested-packages-and-parent-packages.md +32 -31
  377. package/specs/package/package-index-yml.md +95 -101
  378. package/specs/package/package-root-layout.md +64 -46
  379. package/specs/package/registry-payload-and-copy.md +50 -44
  380. package/specs/package/universal-content.md +33 -56
  381. package/specs/package-sources.md +248 -0
  382. package/specs/platforms/README.md +52 -0
  383. package/specs/platforms/configuration.md +571 -0
  384. package/specs/platforms/detection.md +552 -0
  385. package/specs/platforms/directory-layout.md +599 -0
  386. package/specs/platforms/examples.md +1146 -0
  387. package/specs/platforms/flow-reference.md +1240 -0
  388. package/specs/platforms/flows.md +1488 -0
  389. package/specs/platforms/map-pipeline.md +801 -0
  390. package/specs/platforms/overview.md +349 -0
  391. package/specs/platforms/specification.md +700 -0
  392. package/specs/platforms/troubleshooting.md +697 -0
  393. package/specs/platforms/universal-converter.md +520 -0
  394. package/specs/push/README.md +1 -0
  395. package/specs/push/push-behavior.md +11 -3
  396. package/specs/push/push-remote-upload.md +1 -1
  397. package/specs/push/push-scoping.md +1 -1
  398. package/specs/push/push-version-selection.md +1 -1
  399. package/specs/registry.md +111 -0
  400. package/specs/remove/README.md +257 -0
  401. package/specs/save/README.md +21 -17
  402. package/specs/save/save-conflict-resolution.md +205 -83
  403. package/specs/save/save-file-discovery.md +6 -4
  404. package/specs/save/save-frontmatter-overrides.md +11 -15
  405. package/specs/save/save-modes-inputs.md +9 -39
  406. package/specs/save/save-naming-scoping.md +4 -4
  407. package/specs/save/save-package-detection.md +13 -13
  408. package/specs/save/save-registry-sync.md +16 -106
  409. package/specs/save/save-versioning.md +80 -0
  410. package/specs/scope-management.md +92 -0
  411. package/specs/set/README.md +520 -0
  412. package/specs/set/set-behavior.md +563 -0
  413. package/specs/show/README.md +483 -0
  414. package/specs/show/show-remote.md +494 -0
  415. package/specs/status/README.md +38 -0
  416. package/specs/uninstall/README.md +231 -0
  417. package/dist/commands/duplicate.js +0 -69
  418. package/dist/commands/duplicate.js.map +0 -1
  419. package/dist/commands/init.js +0 -117
  420. package/dist/commands/init.js.map +0 -1
  421. package/dist/commands/prune.js +0 -357
  422. package/dist/commands/prune.js.map +0 -1
  423. package/dist/commands/tui.js +0 -61
  424. package/dist/commands/tui.js.map +0 -1
  425. package/dist/core/install/index.js +0 -3
  426. package/dist/core/install/index.js.map +0 -1
  427. package/dist/core/push/push-single-file.js +0 -56
  428. package/dist/core/push/push-single-file.js.map +0 -1
  429. package/dist/core/save/package-detection.js +0 -147
  430. package/dist/core/save/package-detection.js.map +0 -1
  431. package/dist/core/save/save-single-file.js +0 -124
  432. package/dist/core/save/save-single-file.js.map +0 -1
  433. package/dist/core/token-store.js +0 -73
  434. package/dist/core/token-store.js.map +0 -1
  435. package/dist/tui/app.js +0 -95
  436. package/dist/tui/app.js.map +0 -1
  437. package/dist/tui/components/package-list.js +0 -73
  438. package/dist/tui/components/package-list.js.map +0 -1
  439. package/dist/tui/controller.js +0 -365
  440. package/dist/tui/controller.js.map +0 -1
  441. package/dist/tui/index.js +0 -12
  442. package/dist/tui/index.js.map +0 -1
  443. package/dist/tui/services/file-index.js +0 -64
  444. package/dist/tui/services/file-index.js.map +0 -1
  445. package/dist/tui/services/packages.js +0 -18
  446. package/dist/tui/services/packages.js.map +0 -1
  447. package/dist/tui/services/save.js +0 -21
  448. package/dist/tui/services/save.js.map +0 -1
  449. package/dist/tui/state/app-state.js +0 -15
  450. package/dist/tui/state/app-state.js.map +0 -1
  451. package/dist/tui/state.js +0 -17
  452. package/dist/tui/state.js.map +0 -1
  453. package/dist/tui/types.js.map +0 -1
  454. package/dist/tui/views/add-file-modal.js +0 -129
  455. package/dist/tui/views/add-file-modal.js.map +0 -1
  456. package/dist/tui/views/file-preview.js +0 -44
  457. package/dist/tui/views/file-preview.js.map +0 -1
  458. package/dist/tui/views/list-packages.js +0 -73
  459. package/dist/tui/views/list-packages.js.map +0 -1
  460. package/dist/tui/views/main-menu.js +0 -29
  461. package/dist/tui/views/main-menu.js.map +0 -1
  462. package/dist/tui/views/manage-view.js +0 -81
  463. package/dist/tui/views/manage-view.js.map +0 -1
  464. package/dist/tui/views/package-hub.js +0 -120
  465. package/dist/tui/views/package-hub.js.map +0 -1
  466. package/dist/tui/views/placeholder.js +0 -24
  467. package/dist/tui/views/placeholder.js.map +0 -1
  468. package/dist/utils/bun-bootstrap.js +0 -72
  469. package/dist/utils/bun-bootstrap.js.map +0 -1
  470. package/dist/utils/entity-id.js +0 -19
  471. package/dist/utils/entity-id.js.map +0 -1
  472. package/dist/utils/package-local-files.js +0 -5
  473. package/dist/utils/package-local-files.js.map +0 -1
  474. package/dist/utils/path-matching.js +0 -74
  475. package/dist/utils/path-matching.js.map +0 -1
  476. package/dist/utils/root-file-operations.js +0 -39
  477. package/dist/utils/root-file-operations.js.map +0 -1
  478. package/dist/utils/root-file-transformer.js +0 -27
  479. package/dist/utils/root-file-transformer.js.map +0 -1
  480. package/dist/utils/yaml-frontmatter.js +0 -25
  481. package/dist/utils/yaml-frontmatter.js.map +0 -1
  482. package/specs/auth/auth-device-flow.md +0 -70
  483. package/specs/login/login-device-flow.md +0 -70
  484. package/specs/platforms.md +0 -193
  485. package/specs/save-pack-versioning.md +0 -224
  486. package/specs/save-pack.md +0 -68
  487. /package/dist/{tui → core/source-resolution}/types.js +0 -0
@@ -0,0 +1,697 @@
1
+ # Platform Troubleshooting
2
+
3
+ Debug, validate, and fix common issues with the platform system.
4
+
5
+ ## Common Errors
6
+
7
+ ### Error: "Platform not detected"
8
+
9
+ **Symptom:**
10
+ ```bash
11
+ opkg status
12
+ # Output:
13
+ ✗ Cursor not detected
14
+ ```
15
+
16
+ **Possible causes:**
17
+
18
+ 1. **Root directory missing**
19
+ ```bash
20
+ # Check if directory exists
21
+ ls -la .cursor
22
+ ```
23
+
24
+ **Solution:** Create directory
25
+ ```bash
26
+ mkdir .cursor
27
+ ```
28
+
29
+ 2. **Root file missing** (for platforms with root files)
30
+ ```bash
31
+ # Check if root file exists
32
+ ls -la CLAUDE.md
33
+ ```
34
+
35
+ **Solution:** Create root file or root directory
36
+
37
+ 3. **Wrong directory name** (case-sensitive on Linux/Mac)
38
+ ```bash
39
+ # Wrong:
40
+ .Cursor/ # Capital C
41
+ .cursor_v2/ # Different name
42
+
43
+ # Correct:
44
+ .cursor/
45
+ ```
46
+
47
+ 4. **Custom rootDir not created**
48
+ ```jsonc
49
+ {
50
+ "cursor": {
51
+ "rootDir": ".cursor-custom"
52
+ }
53
+ }
54
+ ```
55
+
56
+ **Solution:** Create custom directory
57
+ ```bash
58
+ mkdir .cursor-custom
59
+ ```
60
+
61
+ ### Error: "Flows not executing"
62
+
63
+ **Symptom:** Files not transformed or written to workspace.
64
+
65
+ **Possible causes:**
66
+
67
+ 1. **Platform disabled**
68
+ ```jsonc
69
+ {
70
+ "cursor": {
71
+ "enabled": false // ← Problem
72
+ }
73
+ }
74
+ ```
75
+
76
+ **Solution:** Remove or set to `true`
77
+
78
+ 2. **Conditional flow not met**
79
+ ```jsonc
80
+ {
81
+ "when": { "platform": "claude" } // But Cursor detected
82
+ }
83
+ ```
84
+
85
+ **Solution:** Check condition matches detected platforms
86
+
87
+ 3. **Invalid flow syntax**
88
+ ```bash
89
+ opkg validate platforms --strict
90
+ ```
91
+
92
+ **Solution:** Fix validation errors
93
+
94
+ 4. **Source file missing in package**
95
+ ```jsonc
96
+ {
97
+ "from": "rules/nonexistent.md" // File doesn't exist
98
+ }
99
+ ```
100
+
101
+ **Solution:** Verify source files exist in package
102
+
103
+ ### Error: "Invalid flow schema"
104
+
105
+ **Symptom:**
106
+ ```
107
+ Error: Flow missing required field 'from'
108
+ Error: Flow missing required field 'to'
109
+ ```
110
+
111
+ **Solution:** Add required fields
112
+ ```jsonc
113
+ {
114
+ "from": "rules/**/*.md", // Required
115
+ "to": ".cursor/rules/**/*.mdc" // Required
116
+ }
117
+ ```
118
+
119
+ ### Error: "Transform not found"
120
+
121
+ **Symptom:**
122
+ ```
123
+ Error: Unknown transform 'unknown-transform' in pipe
124
+ Available: [jsonc, yaml, toml, merge, ...]
125
+ ```
126
+
127
+ **Solution:** Use valid transform name
128
+ ```jsonc
129
+ {
130
+ "pipe": ["yaml"] // Valid built-in transform
131
+ }
132
+ ```
133
+
134
+ See [Flow Reference](./flow-reference.md#built-in-transforms) for all transforms.
135
+
136
+ ### Error: "Invalid JSONPath"
137
+
138
+ **Symptom:**
139
+ ```
140
+ Error: Invalid JSONPath expression: '$.invalid..path'
141
+ ```
142
+
143
+ **Solution:** Fix JSONPath syntax
144
+ ```jsonc
145
+ {
146
+ "path": "$.servers" // Valid JSONPath
147
+ }
148
+ ```
149
+
150
+ **Common JSONPath patterns:**
151
+ ```jsonc
152
+ "$.editor" // Extract editor object
153
+ "$.servers.*" // All servers
154
+ "$.servers[0]" // First server
155
+ "$.servers[?(@.enabled)]" // Filter servers
156
+ ```
157
+
158
+ ### Error: "Circular dependency"
159
+
160
+ **Symptom:**
161
+ ```
162
+ Error: Circular dependency detected: A → B → A
163
+ ```
164
+
165
+ **Solution:** Remove circular references in flows. Flows should be unidirectional (package → workspace).
166
+
167
+ ### Warning: "Package overwrites content"
168
+
169
+ **Symptom:**
170
+ ```
171
+ Warning: Package @user/b overwrites content from @user/a in .cursor/mcp.json
172
+ ```
173
+
174
+ **Not an error** - Expected behavior for multi-package composition.
175
+
176
+ **Solutions:**
177
+
178
+ 1. **Use namespace isolation**
179
+ ```jsonc
180
+ {
181
+ "namespace": true,
182
+ "merge": "deep"
183
+ }
184
+ ```
185
+
186
+ 2. **Use deep merge** (if not already)
187
+ ```jsonc
188
+ {
189
+ "merge": "deep"
190
+ }
191
+ ```
192
+
193
+ 3. **Review package priority** - Later packages override earlier ones
194
+
195
+ ## Validation
196
+
197
+ ### Validate Configuration
198
+
199
+ ```bash
200
+ # Basic validation
201
+ opkg validate platforms
202
+
203
+ # Comprehensive validation
204
+ opkg validate platforms --strict
205
+ ```
206
+
207
+ **What it checks:**
208
+ - Required fields present
209
+ - Valid types
210
+ - Transform names exist
211
+ - JSONPath syntax valid
212
+ - No circular dependencies
213
+ - Schema compliance
214
+
215
+ **Example output:**
216
+ ```
217
+ ✓ Configuration valid
218
+ ✓ Platform 'cursor': 4 flows valid
219
+ ✓ Platform 'claude': 3 flows valid
220
+ ✗ Platform 'custom': Flow 1 missing 'to' field
221
+ ```
222
+
223
+ ### Validate Specific Platform
224
+
225
+ ```bash
226
+ opkg validate platforms --platform=cursor
227
+ ```
228
+
229
+ ### JSON Output for Scripting
230
+
231
+ ```bash
232
+ opkg validate platforms --json
233
+ ```
234
+
235
+ ```json
236
+ {
237
+ "valid": false,
238
+ "errors": [
239
+ {
240
+ "platform": "custom",
241
+ "flow": 1,
242
+ "error": "Missing required field 'to'"
243
+ }
244
+ ]
245
+ }
246
+ ```
247
+
248
+ ## Debugging
249
+
250
+ ### Enable Debug Logging
251
+
252
+ ```bash
253
+ # Debug flow execution
254
+ DEBUG=opkg:flows opkg install @user/package
255
+
256
+ # Debug all platform operations
257
+ DEBUG=opkg:platforms,opkg:flows opkg install @user/package
258
+
259
+ # Debug everything
260
+ DEBUG=opkg:* opkg install @user/package
261
+ ```
262
+
263
+ **Example output:**
264
+ ```
265
+ [flows] Loading platforms config...
266
+ [flows] Detected platforms: cursor, claude
267
+ [flows] Executing flow: rules/**/*.md → .cursor/rules/**/*.mdc
268
+ [flows] Matched file: rules/typescript.md
269
+ [flows] Loading source: rules/typescript.md
270
+ [flows] Parsing format: markdown
271
+ [flows] Applying transforms: none
272
+ [flows] Writing target: .cursor/rules/typescript.mdc
273
+ [flows] ✓ Success
274
+ ```
275
+
276
+ ### Dry-Run Mode
277
+
278
+ Preview without writing files:
279
+
280
+ ```bash
281
+ opkg install @user/package --dry-run
282
+ ```
283
+
284
+ **Output:**
285
+ ```
286
+ Would create:
287
+ .cursor/rules/typescript.mdc
288
+ .cursor/rules/python.mdc
289
+ .cursor/mcp.json (merged)
290
+
291
+ Would update:
292
+ .cursor/settings.json (deep merge)
293
+
294
+ Would skip:
295
+ .windsurf/ (platform not detected)
296
+ ```
297
+
298
+ ### Inspect Flow Execution
299
+
300
+ Show detailed flow information:
301
+
302
+ ```bash
303
+ opkg show platforms --platform=cursor
304
+ ```
305
+
306
+ **Output:**
307
+ ```
308
+ Platform: Cursor
309
+ ID: cursor
310
+ Root Directory: .cursor
311
+ Enabled: true
312
+
313
+ Flows:
314
+ 1. rules/**/*.md → .cursor/rules/**/*.mdc
315
+ 2. mcp.jsonc → .cursor/mcp.json
316
+ - namespace: true
317
+ - merge: deep
318
+ 3. settings.jsonc → .cursor/settings.json
319
+ - map: theme → workbench.colorTheme
320
+ - merge: deep
321
+ ```
322
+
323
+ ### Check Platform Detection
324
+
325
+ ```bash
326
+ opkg status
327
+ ```
328
+
329
+ **Output:**
330
+ ```
331
+ Detected platforms:
332
+ ✓ Cursor (.cursor/)
333
+ ✓ Claude (CLAUDE.md)
334
+ ✗ Windsurf
335
+ ✗ Gemini
336
+ ```
337
+
338
+ ### List Available Platforms
339
+
340
+ ```bash
341
+ opkg platforms list
342
+ ```
343
+
344
+ **Output:**
345
+ ```
346
+ Available platforms:
347
+ cursor Cursor enabled
348
+ claude Claude Code enabled
349
+ windsurf Windsurf enabled
350
+ gemini Gemini Code disabled
351
+ ```
352
+
353
+ ## Common Issues
354
+
355
+ ### Issue: Files in Wrong Directory
356
+
357
+ **Problem:**
358
+ ```
359
+ Expected: .cursor/rules/typescript.mdc
360
+ Actual: .cursor/typescript.mdc
361
+ ```
362
+
363
+ **Cause:** Incorrect `to` path
364
+
365
+ **Solution:** Check flow target includes subdirectory
366
+ ```jsonc
367
+ {
368
+ "from": "rules/**/*.md",
369
+ "to": ".cursor/rules/**/*.mdc" // Include 'rules/' subdirectory
370
+ }
371
+ ```
372
+
373
+ ### Issue: Extension Not Changed
374
+
375
+ **Problem:**
376
+ ```
377
+ Expected: typescript.mdc
378
+ Actual: typescript.md
379
+ ```
380
+
381
+ **Cause:** Target extension not specified
382
+
383
+ **Solution:** Specify correct extension in flow
384
+ ```jsonc
385
+ {
386
+ "from": "rules/**/*.md",
387
+ "to": ".cursor/rules/**/*.mdc" // Explicit .mdc extension
388
+ }
389
+ ```
390
+
391
+ ### Issue: Merge Not Working
392
+
393
+ **Problem:** New content replaces existing instead of merging
394
+
395
+ **Cause:** Missing or wrong merge strategy
396
+
397
+ **Solution:** Use explicit merge strategy
398
+ ```jsonc
399
+ {
400
+ "from": "mcp.jsonc",
401
+ "to": ".cursor/mcp.json",
402
+ "merge": "deep" // Explicitly set merge
403
+ }
404
+ ```
405
+
406
+ **Remember:**
407
+ - Default merge strategy is `"replace"` for arrays/primitives
408
+ - Use `"deep"` for object composition
409
+ - Use `"shallow"` for top-level merge only
410
+
411
+ ### Issue: Keys Not Mapping
412
+
413
+ **Problem:** Keys not renamed as expected
414
+
415
+ **Cause:** Incorrect key mapping syntax
416
+
417
+ **Solution:** Use correct dot notation
418
+ ```jsonc
419
+ {
420
+ "map": {
421
+ "theme": "workbench.colorTheme" // Correct: dot notation
422
+ }
423
+ }
424
+ ```
425
+
426
+ **Common mistakes:**
427
+ ```jsonc
428
+ {
429
+ "map": {
430
+ "theme": "workbench/colorTheme" // Wrong: slash
431
+ "theme": "workbench->colorTheme" // Wrong: arrow
432
+ }
433
+ }
434
+ ```
435
+
436
+ ### Issue: Format Not Converting
437
+
438
+ **Problem:** YAML stays YAML instead of converting to JSON
439
+
440
+ **Cause:** Target extension doesn't match desired format
441
+
442
+ **Solution:** Use correct target extension
443
+ ```jsonc
444
+ {
445
+ "from": "config.yaml",
446
+ "to": ".cursor/config.json" // .json extension triggers conversion
447
+ }
448
+ ```
449
+
450
+ **Auto-detected formats:**
451
+ - `.json`, `.jsonc` → JSON
452
+ - `.yaml`, `.yml` → YAML
453
+ - `.toml` → TOML
454
+ - `.md` → Markdown
455
+
456
+ ### Issue: Namespace Not Applied
457
+
458
+ **Problem:** Content not wrapped in namespace
459
+
460
+ **Cause:** `namespace` not specified
461
+
462
+ **Solution:** Enable namespace
463
+ ```jsonc
464
+ {
465
+ "from": "mcp.jsonc",
466
+ "to": ".cursor/mcp.json",
467
+ "namespace": true, // Add this
468
+ "merge": "deep"
469
+ }
470
+ ```
471
+
472
+ ### Issue: Conditional Flow Always Skipped
473
+
474
+ **Problem:** Flow never executes
475
+
476
+ **Cause:** Condition never true
477
+
478
+ **Debug:**
479
+ ```bash
480
+ opkg status # Check detected platforms
481
+ ```
482
+
483
+ **Solution:** Fix condition to match environment
484
+ ```jsonc
485
+ {
486
+ "when": { "platform": "cursor" } // Make sure Cursor is detected
487
+ }
488
+ ```
489
+
490
+ ### Issue: Multiple Packages Conflicting
491
+
492
+ **Problem:** Last package overwrites previous packages
493
+
494
+ **Cause:** No namespace isolation
495
+
496
+ **Solution:** Use namespace + merge
497
+ ```jsonc
498
+ {
499
+ "namespace": true,
500
+ "merge": "deep"
501
+ }
502
+ ```
503
+
504
+ ### Issue: Performance Slow
505
+
506
+ **Problem:** Installation takes too long
507
+
508
+ **Possible causes:**
509
+
510
+ 1. **Too many platforms enabled**
511
+
512
+ **Solution:** Disable unused platforms
513
+ ```jsonc
514
+ {
515
+ "unused-platform": { "enabled": false }
516
+ }
517
+ ```
518
+
519
+ 2. **Complex flows on all files**
520
+
521
+ **Solution:** Use conditionals to skip unnecessary work
522
+ ```jsonc
523
+ {
524
+ "when": { "exists": "config.yaml" }
525
+ }
526
+ ```
527
+
528
+ 3. **Deep merges on large files**
529
+
530
+ **Solution:** Use shallow merge if possible
531
+ ```jsonc
532
+ {
533
+ "merge": "shallow"
534
+ }
535
+ ```
536
+
537
+ ## Performance Tips
538
+
539
+ ### 1. Simple Flows Are Fastest
540
+
541
+ ```jsonc
542
+ {
543
+ "from": "rules/**/*.md",
544
+ "to": ".cursor/rules/**/*.mdc"
545
+ }
546
+ ```
547
+
548
+ Direct copy with no transforms is optimized.
549
+
550
+ ### 2. Use Conditionals
551
+
552
+ Skip unnecessary work:
553
+
554
+ ```jsonc
555
+ {
556
+ "when": { "platform": "cursor" } // Skip if Cursor not detected
557
+ }
558
+ ```
559
+
560
+ ### 3. Multi-Target Reuses Parsing
561
+
562
+ ```jsonc
563
+ {
564
+ "from": "config.yaml",
565
+ "to": {
566
+ ".cursor/config.json": {},
567
+ ".claude/config.json": {}
568
+ }
569
+ }
570
+ ```
571
+
572
+ Source parsed once, serialized twice.
573
+
574
+ ### 4. Disable Unused Platforms
575
+
576
+ ```jsonc
577
+ {
578
+ "windsurf": { "enabled": false },
579
+ "cline": { "enabled": false }
580
+ }
581
+ ```
582
+
583
+ ### 5. Shallow Merge When Possible
584
+
585
+ ```jsonc
586
+ {
587
+ "merge": "shallow" // Faster than deep
588
+ }
589
+ ```
590
+
591
+ ## Validation Checklist
592
+
593
+ Before deploying configuration:
594
+
595
+ - [ ] Run `opkg validate platforms --strict`
596
+ - [ ] Test with `--dry-run`
597
+ - [ ] Check platform detection with `opkg status`
598
+ - [ ] Verify files written to correct locations
599
+ - [ ] Test with multiple packages for conflicts
600
+ - [ ] Enable debug logging for complex flows
601
+ - [ ] Document custom flows with comments
602
+
603
+ ## Getting Help
604
+
605
+ ### CLI Help
606
+
607
+ ```bash
608
+ opkg --help
609
+ opkg platforms --help
610
+ opkg validate --help
611
+ ```
612
+
613
+ ### Show Configuration
614
+
615
+ ```bash
616
+ # Show merged configuration
617
+ opkg show platforms
618
+
619
+ # Show specific platform
620
+ opkg show platforms --platform=cursor
621
+
622
+ # JSON output
623
+ opkg show platforms --json
624
+ ```
625
+
626
+ ### Report Issues
627
+
628
+ When reporting issues, include:
629
+
630
+ 1. **Configuration files**
631
+ ```bash
632
+ cat .openpackage/platforms.jsonc
633
+ ```
634
+
635
+ 2. **Platform detection**
636
+ ```bash
637
+ opkg status
638
+ ```
639
+
640
+ 3. **Validation output**
641
+ ```bash
642
+ opkg validate platforms --strict
643
+ ```
644
+
645
+ 4. **Debug logs**
646
+ ```bash
647
+ DEBUG=opkg:* opkg install @user/package 2>&1 | tee debug.log
648
+ ```
649
+
650
+ 5. **Package structure**
651
+ ```bash
652
+ tree -L 2 node_modules/@user/package
653
+ ```
654
+
655
+ ## Quick Reference
656
+
657
+ ### Debug Commands
658
+
659
+ ```bash
660
+ # Validate configuration
661
+ opkg validate platforms --strict
662
+
663
+ # Check detection
664
+ opkg status
665
+
666
+ # Show platform details
667
+ opkg show platforms --platform=cursor
668
+
669
+ # Dry-run installation
670
+ opkg install @user/package --dry-run
671
+
672
+ # Enable debug logging
673
+ DEBUG=opkg:flows opkg install @user/package
674
+
675
+ # List all platforms
676
+ opkg platforms list
677
+ ```
678
+
679
+ ### Common Fixes
680
+
681
+ | Problem | Solution |
682
+ |---------|----------|
683
+ | Platform not detected | Create root directory or root file |
684
+ | Flows not executing | Check `enabled: true`, validate flows |
685
+ | Files in wrong place | Check `to` path in flow |
686
+ | Extensions wrong | Specify extension in `to` path |
687
+ | Merge not working | Add `"merge": "deep"` |
688
+ | Keys not mapping | Use dot notation in `map` |
689
+ | Format not converting | Check target extension |
690
+ | Conflicts between packages | Use `"namespace": true` |
691
+
692
+ ## Next Steps
693
+
694
+ - **Review configuration:** [Configuration](./configuration.md)
695
+ - **Learn flow syntax:** [Flows](./flows.md)
696
+ - **See examples:** [Examples](./examples.md)
697
+ - **View flow reference:** [Flow Reference](./flow-reference.md)