opkg 0.8.4 → 0.9.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 (280) hide show
  1. package/.claude/agents/essentials/code-simplifier.md +52 -0
  2. package/README.md +79 -24
  3. package/dist/commands/add.js +201 -51
  4. package/dist/commands/add.js.map +1 -1
  5. package/dist/commands/install.js +8 -1
  6. package/dist/commands/install.js.map +1 -1
  7. package/dist/commands/list.js +118 -353
  8. package/dist/commands/list.js.map +1 -1
  9. package/dist/commands/new.js +22 -49
  10. package/dist/commands/new.js.map +1 -1
  11. package/dist/commands/publish.js +9 -5
  12. package/dist/commands/publish.js.map +1 -1
  13. package/dist/commands/remove.js +170 -53
  14. package/dist/commands/remove.js.map +1 -1
  15. package/dist/commands/save.js +1 -1
  16. package/dist/commands/save.js.map +1 -1
  17. package/dist/commands/search.js +231 -0
  18. package/dist/commands/search.js.map +1 -0
  19. package/dist/commands/set.js +1 -1
  20. package/dist/commands/set.js.map +1 -1
  21. package/dist/commands/uninstall.js +437 -21
  22. package/dist/commands/uninstall.js.map +1 -1
  23. package/dist/commands/unpublish.js +177 -0
  24. package/dist/commands/unpublish.js.map +1 -0
  25. package/dist/commands/view.js +295 -0
  26. package/dist/commands/view.js.map +1 -0
  27. package/dist/core/add/add-conflict-handler.js +16 -3
  28. package/dist/core/add/add-conflict-handler.js.map +1 -1
  29. package/dist/core/add/add-dependency-flow.js +92 -0
  30. package/dist/core/add/add-dependency-flow.js.map +1 -0
  31. package/dist/core/add/add-input-classifier.js +159 -0
  32. package/dist/core/add/add-input-classifier.js.map +1 -0
  33. package/dist/core/add/add-to-source-pipeline.js +76 -65
  34. package/dist/core/add/add-to-source-pipeline.js.map +1 -1
  35. package/dist/core/dependency-resolver/resolver.js +1 -2
  36. package/dist/core/dependency-resolver/resolver.js.map +1 -1
  37. package/dist/core/directory.js +15 -1
  38. package/dist/core/directory.js.map +1 -1
  39. package/dist/core/execution-context.js +2 -1
  40. package/dist/core/execution-context.js.map +1 -1
  41. package/dist/core/flows/flow-execution-coordinator.js +6 -2
  42. package/dist/core/flows/flow-execution-coordinator.js.map +1 -1
  43. package/dist/core/flows/flow-executor.js +2 -1
  44. package/dist/core/flows/flow-executor.js.map +1 -1
  45. package/dist/core/install/conflicts/file-conflict-resolver.js +610 -0
  46. package/dist/core/install/conflicts/file-conflict-resolver.js.map +1 -0
  47. package/dist/core/install/convenience-matchers.js +66 -22
  48. package/dist/core/install/convenience-matchers.js.map +1 -1
  49. package/dist/core/install/conversion-context.js +1 -1
  50. package/dist/core/install/conversion-coordinator.js +13 -7
  51. package/dist/core/install/conversion-coordinator.js.map +1 -1
  52. package/dist/core/install/file-format-detector.js +28 -3
  53. package/dist/core/install/file-format-detector.js.map +1 -1
  54. package/dist/core/install/flow-based-installer.js +2 -2
  55. package/dist/core/install/flow-based-installer.js.map +1 -1
  56. package/dist/core/install/format-detector.js +27 -5
  57. package/dist/core/install/format-detector.js.map +1 -1
  58. package/dist/core/install/import-flow-converter.js +7 -1
  59. package/dist/core/install/import-flow-converter.js.map +1 -1
  60. package/dist/core/install/install-reporting.js +58 -33
  61. package/dist/core/install/install-reporting.js.map +1 -1
  62. package/dist/core/install/list-handler.js +111 -0
  63. package/dist/core/install/list-handler.js.map +1 -0
  64. package/dist/core/install/marketplace-handler.js +401 -183
  65. package/dist/core/install/marketplace-handler.js.map +1 -1
  66. package/dist/core/install/operations/conflict-handler.js +12 -5
  67. package/dist/core/install/operations/conflict-handler.js.map +1 -1
  68. package/dist/core/install/operations/installation-executor.js +71 -4
  69. package/dist/core/install/operations/installation-executor.js.map +1 -1
  70. package/dist/core/install/orchestrator/index.js +1 -0
  71. package/dist/core/install/orchestrator/index.js.map +1 -1
  72. package/dist/core/install/orchestrator/orchestrator.js +325 -41
  73. package/dist/core/install/orchestrator/orchestrator.js.map +1 -1
  74. package/dist/core/install/orchestrator/strategies/git-strategy.js +4 -2
  75. package/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -1
  76. package/dist/core/install/orchestrator/subsumption-resolver.js +196 -0
  77. package/dist/core/install/orchestrator/subsumption-resolver.js.map +1 -0
  78. package/dist/core/install/preprocessing/base-resolver.js +33 -4
  79. package/dist/core/install/preprocessing/base-resolver.js.map +1 -1
  80. package/dist/core/install/preprocessing/input-classifier.js +36 -101
  81. package/dist/core/install/preprocessing/input-classifier.js.map +1 -1
  82. package/dist/core/install/preprocessing/options-normalizer.js +4 -1
  83. package/dist/core/install/preprocessing/options-normalizer.js.map +1 -1
  84. package/dist/core/install/resolution/executor.js +2 -2
  85. package/dist/core/install/resolution/executor.js.map +1 -1
  86. package/dist/core/install/resolution/graph-builder.js +18 -2
  87. package/dist/core/install/resolution/graph-builder.js.map +1 -1
  88. package/dist/core/install/resource-discoverer.js +233 -0
  89. package/dist/core/install/resource-discoverer.js.map +1 -0
  90. package/dist/core/install/resource-selection-menu.js +264 -0
  91. package/dist/core/install/resource-selection-menu.js.map +1 -0
  92. package/dist/core/install/resource-types.js +5 -0
  93. package/dist/core/install/resource-types.js.map +1 -0
  94. package/dist/core/install/sources/registry-source.js +44 -2
  95. package/dist/core/install/sources/registry-source.js.map +1 -1
  96. package/dist/core/install/strategies/base-strategy.js.map +1 -1
  97. package/dist/core/install/strategies/conversion-strategy.js +4 -4
  98. package/dist/core/install/strategies/conversion-strategy.js.map +1 -1
  99. package/dist/core/install/strategies/flow-based-strategy.js +273 -3
  100. package/dist/core/install/strategies/flow-based-strategy.js.map +1 -1
  101. package/dist/core/install/strategies/helpers/result-converter.js +3 -1
  102. package/dist/core/install/strategies/helpers/result-converter.js.map +1 -1
  103. package/dist/core/install/strategies/helpers/temp-directory.js +12 -0
  104. package/dist/core/install/strategies/helpers/temp-directory.js.map +1 -1
  105. package/dist/core/install/unified/context-builders.js +3 -1
  106. package/dist/core/install/unified/context-builders.js.map +1 -1
  107. package/dist/core/install/unified/phases/conflicts.js +2 -2
  108. package/dist/core/install/unified/phases/conflicts.js.map +1 -1
  109. package/dist/core/install/unified/phases/convert.js +49 -9
  110. package/dist/core/install/unified/phases/convert.js.map +1 -1
  111. package/dist/core/install/unified/phases/execute.js.map +1 -1
  112. package/dist/core/install/unified/phases/report.js +17 -3
  113. package/dist/core/install/unified/phases/report.js.map +1 -1
  114. package/dist/core/install/unified/phases/resolve-dependencies.js +7 -3
  115. package/dist/core/install/unified/phases/resolve-dependencies.js.map +1 -1
  116. package/dist/core/install/validators/options-validator.js +2 -2
  117. package/dist/core/interaction-policy.js +60 -0
  118. package/dist/core/interaction-policy.js.map +1 -0
  119. package/dist/core/list/list-pipeline.js +252 -16
  120. package/dist/core/list/list-pipeline.js.map +1 -1
  121. package/dist/core/list/list-printers.js +245 -0
  122. package/dist/core/list/list-printers.js.map +1 -0
  123. package/dist/core/list/list-tree-renderer.js +143 -0
  124. package/dist/core/list/list-tree-renderer.js.map +1 -0
  125. package/dist/core/list/remote-list-resolver.js +75 -5
  126. package/dist/core/list/remote-list-resolver.js.map +1 -1
  127. package/dist/core/list/scope-data-collector.js +307 -0
  128. package/dist/core/list/scope-data-collector.js.map +1 -0
  129. package/dist/core/list/untracked-files-scanner.js +126 -9
  130. package/dist/core/list/untracked-files-scanner.js.map +1 -1
  131. package/dist/core/list/view-metadata.js +31 -0
  132. package/dist/core/list/view-metadata.js.map +1 -0
  133. package/dist/core/package-creation.js +10 -55
  134. package/dist/core/package-creation.js.map +1 -1
  135. package/dist/core/publish/local-publish-pipeline.js +159 -0
  136. package/dist/core/publish/local-publish-pipeline.js.map +1 -0
  137. package/dist/core/publish/publish-output.js +39 -1
  138. package/dist/core/publish/publish-output.js.map +1 -1
  139. package/dist/core/publish/publish-pipeline.js +153 -25
  140. package/dist/core/publish/publish-pipeline.js.map +1 -1
  141. package/dist/core/registry-writer.js +80 -0
  142. package/dist/core/registry-writer.js.map +1 -0
  143. package/dist/core/remove/removal-confirmation.js +8 -18
  144. package/dist/core/remove/removal-confirmation.js.map +1 -1
  145. package/dist/core/remove/remove-dependency-flow.js +22 -0
  146. package/dist/core/remove/remove-dependency-flow.js.map +1 -0
  147. package/dist/core/remove/remove-from-source-pipeline.js +114 -87
  148. package/dist/core/remove/remove-from-source-pipeline.js.map +1 -1
  149. package/dist/core/remove/remove-input-classifier.js +53 -0
  150. package/dist/core/remove/remove-input-classifier.js.map +1 -0
  151. package/dist/core/resources/disambiguation-prompt.js +56 -0
  152. package/dist/core/resources/disambiguation-prompt.js.map +1 -0
  153. package/dist/core/resources/installed-resources.js +35 -0
  154. package/dist/core/resources/installed-resources.js.map +1 -0
  155. package/dist/core/resources/markdown-metadata.js +24 -0
  156. package/dist/core/resources/markdown-metadata.js.map +1 -0
  157. package/dist/core/resources/resource-builder.js +140 -0
  158. package/dist/core/resources/resource-builder.js.map +1 -0
  159. package/dist/core/resources/resource-catalog.js +20 -0
  160. package/dist/core/resources/resource-catalog.js.map +1 -0
  161. package/dist/core/resources/resource-namespace.js +84 -0
  162. package/dist/core/resources/resource-namespace.js.map +1 -0
  163. package/dist/core/resources/resource-naming.js +29 -0
  164. package/dist/core/resources/resource-naming.js.map +1 -0
  165. package/dist/core/resources/resource-registry.js +48 -0
  166. package/dist/core/resources/resource-registry.js.map +1 -0
  167. package/dist/core/resources/resource-resolver.js +67 -0
  168. package/dist/core/resources/resource-resolver.js.map +1 -0
  169. package/dist/core/resources/scope-traversal.js +52 -0
  170. package/dist/core/resources/scope-traversal.js.map +1 -0
  171. package/dist/core/resources/source-key-classifier.js +22 -0
  172. package/dist/core/resources/source-key-classifier.js.map +1 -0
  173. package/dist/core/uninstall/uninstall-pipeline.js +57 -54
  174. package/dist/core/uninstall/uninstall-pipeline.js.map +1 -1
  175. package/dist/core/uninstall/uninstall-reporter.js +56 -5
  176. package/dist/core/uninstall/uninstall-reporter.js.map +1 -1
  177. package/dist/core/unpublish/local-unpublish-pipeline.js +173 -0
  178. package/dist/core/unpublish/local-unpublish-pipeline.js.map +1 -0
  179. package/dist/core/unpublish/unpublish-output.js +25 -0
  180. package/dist/core/unpublish/unpublish-output.js.map +1 -0
  181. package/dist/core/unpublish/unpublish-pipeline.js +17 -0
  182. package/dist/core/unpublish/unpublish-pipeline.js.map +1 -0
  183. package/dist/core/unpublish/unpublish-types.js +2 -0
  184. package/dist/core/unpublish/unpublish-types.js.map +1 -0
  185. package/dist/index.js +9 -4
  186. package/dist/index.js.map +1 -1
  187. package/dist/types/index.js.map +1 -1
  188. package/dist/utils/clack-multiselect.js +42 -0
  189. package/dist/utils/clack-multiselect.js.map +1 -0
  190. package/dist/utils/clack-wrappers.js +42 -0
  191. package/dist/utils/clack-wrappers.js.map +1 -0
  192. package/dist/utils/cleanup-empty-parents.js +56 -0
  193. package/dist/utils/cleanup-empty-parents.js.map +1 -0
  194. package/dist/utils/directory-preservation.js +4 -2
  195. package/dist/utils/directory-preservation.js.map +1 -1
  196. package/dist/utils/entity-detector.js +78 -0
  197. package/dist/utils/entity-detector.js.map +1 -0
  198. package/dist/utils/expand-directory-selections.js +101 -0
  199. package/dist/utils/expand-directory-selections.js.map +1 -0
  200. package/dist/utils/file-scanner.js +163 -0
  201. package/dist/utils/file-scanner.js.map +1 -0
  202. package/dist/utils/file-selector-with-header.js +253 -0
  203. package/dist/utils/file-selector-with-header.js.map +1 -0
  204. package/dist/utils/flow-index-installer.js +19 -5
  205. package/dist/utils/flow-index-installer.js.map +1 -1
  206. package/dist/utils/formatters.js +27 -8
  207. package/dist/utils/formatters.js.map +1 -1
  208. package/dist/utils/index-based-installer.js +6 -723
  209. package/dist/utils/index-based-installer.js.map +1 -1
  210. package/dist/utils/input-classifier-base.js +173 -0
  211. package/dist/utils/input-classifier-base.js.map +1 -0
  212. package/dist/utils/install-error-messages.js +0 -25
  213. package/dist/utils/install-error-messages.js.map +1 -1
  214. package/dist/utils/interactive-file-selector.js +103 -0
  215. package/dist/utils/interactive-file-selector.js.map +1 -0
  216. package/dist/utils/interactive-package-selector.js +157 -0
  217. package/dist/utils/interactive-package-selector.js.map +1 -0
  218. package/dist/utils/output.js +221 -0
  219. package/dist/utils/output.js.map +1 -0
  220. package/dist/utils/package-installation.js +1 -1
  221. package/dist/utils/package-installation.js.map +1 -1
  222. package/dist/utils/package-management.js +54 -15
  223. package/dist/utils/package-management.js.map +1 -1
  224. package/dist/utils/platform-mapper.js +150 -48
  225. package/dist/utils/platform-mapper.js.map +1 -1
  226. package/dist/utils/plugin-naming.js +95 -0
  227. package/dist/utils/plugin-naming.js.map +1 -1
  228. package/dist/utils/prompts.js +65 -49
  229. package/dist/utils/prompts.js.map +1 -1
  230. package/dist/utils/resource-arg-parser.js +4 -1
  231. package/dist/utils/resource-arg-parser.js.map +1 -1
  232. package/dist/utils/root-file-uninstaller.js +2 -1
  233. package/dist/utils/root-file-uninstaller.js.map +1 -1
  234. package/dist/utils/scope-resolution.js +25 -38
  235. package/dist/utils/scope-resolution.js.map +1 -1
  236. package/dist/utils/smart-multiselect.js +60 -0
  237. package/dist/utils/smart-multiselect.js.map +1 -0
  238. package/dist/utils/source-operation-arguments.js +66 -0
  239. package/dist/utils/source-operation-arguments.js.map +1 -0
  240. package/dist/utils/validation/index.js +5 -0
  241. package/dist/utils/validation/index.js.map +1 -0
  242. package/dist/utils/validation/manifest.js +27 -0
  243. package/dist/utils/validation/manifest.js.map +1 -0
  244. package/dist/utils/validation/package-files.js +15 -0
  245. package/dist/utils/validation/package-files.js.map +1 -0
  246. package/dist/utils/validation/version.js +42 -0
  247. package/dist/utils/validation/version.js.map +1 -0
  248. package/dist/utils/workspace-index-ownership.js +11 -0
  249. package/dist/utils/workspace-index-ownership.js.map +1 -1
  250. package/dist/utils/workspace-package-context.js +68 -0
  251. package/dist/utils/workspace-package-context.js.map +1 -0
  252. package/package.json +3 -1
  253. package/platforms.jsonc +851 -69
  254. package/specs/add/README.md +7 -6
  255. package/specs/commands-overview.md +34 -34
  256. package/specs/install/install-behavior.md +0 -2
  257. package/specs/new/README.md +37 -172
  258. package/specs/new/SUMMARY.md +26 -41
  259. package/specs/publish/README.md +276 -56
  260. package/specs/remove/README.md +37 -26
  261. package/specs/save/README.md +0 -3
  262. package/specs/scope-management.md +4 -4
  263. package/specs/set/README.md +1 -1
  264. package/plans/format-detection/README.md +0 -225
  265. package/plans/format-detection/phase-1-file-detection.md +0 -436
  266. package/plans/format-detection/phase-2-package-detection.md +0 -457
  267. package/plans/format-detection/phase-3-import-flows.md +0 -448
  268. package/plans/format-detection/phase-3-summary.md +0 -271
  269. package/plans/format-detection/phase-4-integration.md +0 -453
  270. package/plans/format-detection/phase-4-summary.md +0 -376
  271. package/plans/format-detection/phase-5-validation.md +0 -642
  272. package/plans/format-detection/phase-6-documentation.md +0 -598
  273. package/plans/save-expansion/README.md +0 -198
  274. package/plans/save-expansion/SUMMARY.md +0 -382
  275. package/plans/save-expansion/phase-1-foundation.md +0 -426
  276. package/plans/save-expansion/phase-2-analysis.md +0 -504
  277. package/plans/save-expansion/phase-3-resolution.md +0 -597
  278. package/plans/save-expansion/phase-4-integration.md +0 -717
  279. package/specs/pack/README.md +0 -77
  280. package/specs/pack/package-name-resolution.md +0 -330
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: code-simplifier
3
+ description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
4
+ model: opus
5
+ ---
6
+
7
+ You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
8
+
9
+ You will analyze recently modified code and apply refinements that:
10
+
11
+ 1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
12
+
13
+ 2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
14
+
15
+ - Use ES modules with proper import sorting and extensions
16
+ - Prefer `function` keyword over arrow functions
17
+ - Use explicit return type annotations for top-level functions
18
+ - Follow proper React component patterns with explicit Props types
19
+ - Use proper error handling patterns (avoid try/catch when possible)
20
+ - Maintain consistent naming conventions
21
+
22
+ 3. **Enhance Clarity**: Simplify code structure by:
23
+
24
+ - Reducing unnecessary complexity and nesting
25
+ - Eliminating redundant code and abstractions
26
+ - Improving readability through clear variable and function names
27
+ - Consolidating related logic
28
+ - Removing unnecessary comments that describe obvious code
29
+ - IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
30
+ - Choose clarity over brevity - explicit code is often better than overly compact code
31
+
32
+ 4. **Maintain Balance**: Avoid over-simplification that could:
33
+
34
+ - Reduce code clarity or maintainability
35
+ - Create overly clever solutions that are hard to understand
36
+ - Combine too many concerns into single functions or components
37
+ - Remove helpful abstractions that improve code organization
38
+ - Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
39
+ - Make the code harder to debug or extend
40
+
41
+ 5. **Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
42
+
43
+ Your refinement process:
44
+
45
+ 1. Identify the recently modified code sections
46
+ 2. Analyze for opportunities to improve elegance and consistency
47
+ 3. Apply project-specific best practices and coding standards
48
+ 4. Ensure all functionality remains unchanged
49
+ 5. Verify the refined code is simpler and more maintainable
50
+ 6. Document only significant changes that affect understanding
51
+
52
+ You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.
package/README.md CHANGED
@@ -104,12 +104,17 @@ opkg install https://github.com/vercel-labs/agent-skills/tree/main/skills/react-
104
104
 
105
105
  | Option | Description |
106
106
  | --- | --- |
107
- | `-g, --global` | Install to user directory instead of project |
108
- | `-a, --agents <agents...>` | Install specific agents by name |
107
+ | `-g, --global` | Install to home directory (~/) instead of current workspace |
109
108
  | `-s, --skills <skills...>` | Install specific skills by name |
109
+ | `-a, --agents <agents...>` | Install specific agents by name |
110
+ | `-c, --commands <commands...>` | Install specific commands by name |
111
+ | `-r, --rules <rules...>` | Install specific rules by name |
110
112
  | `--plugins <plugins...>` | Install specific plugins by name |
111
- | `--platforms` | Install to only specified platforms |
112
- | `--remote` | Install from remote source / skip cache |
113
+ | `--platforms <platforms...>` | Install to specific platforms (e.g., cursor claudecode opencode) |
114
+ | `-i, --interactive` | Interactively select resources to install |
115
+ | `--dev` | Add resource to dev-dependencies |
116
+ | `--remote` | Pull and install from remote registry, ignoring local versions |
117
+ | `--local` | Resolve and install using only local registry versions |
113
118
 
114
119
  ### List installed resources
115
120
  ```bash title="Terminal"
@@ -122,13 +127,12 @@ Use the list command to show an overview of packages and files installed.
122
127
 
123
128
  | Option | Description |
124
129
  | --- | --- |
125
- | `-p, --project` | Lists only project scoped packages & resource file count |
126
- | `-g, --global` | Lists only user scoped packages & resource file count |
127
- | `-a, --all` | Lists all packages recursively (includes nested) |
128
- | `-f, --files` | Lists all resource files |
129
- | `-t, --tracked` | Lists all packages & resources tracked by OpenPackage |
130
- | `-u, --untracked` | Lists all resources not tracked by OpenPackage |
131
- | `--platforms` | Lists packages & files from specified platforms |
130
+ | `-s, --scope <scope>` | Workspace scope: project or global (default: both) |
131
+ | `-d, --deps` | Show dependency tree (full tree including transitive dependencies) |
132
+ | `-f, --files` | Show individual file paths |
133
+ | `-t, --tracked` | Show only tracked resources (skip untracked scan) |
134
+ | `-u, --untracked` | Show only untracked resources |
135
+ | `--platforms <platforms...>` | Filter by specific platforms (e.g., cursor, claude) |
132
136
 
133
137
  ### Uninstall packages
134
138
  ```bash title="Terminal"
@@ -140,7 +144,8 @@ Removes all files for a package from the codebase at cwd.
140
144
 
141
145
  | Option | Description |
142
146
  | --- | --- |
143
- | `-g, --global` | Uninstall from user directory |
147
+ | `-g, --global` | Uninstall from home directory (~/) instead of current workspace |
148
+ | `-i, --interactive` | Interactively select items to uninstall |
144
149
 
145
150
  > [!TIP]
146
151
  > Learn more by heading over to the [official docs](https://openpackage.dev/docs).
@@ -151,6 +156,13 @@ Removes all files for a package from the codebase at cwd.
151
156
  opkg new <package>
152
157
  ```
153
158
 
159
+ #### Options
160
+
161
+ | Option | Description |
162
+ | --- | --- |
163
+ | `--scope <scope>` | Package scope: root, project, or global (default: global) |
164
+ | `--path <path>` | Custom path for package directory (overrides scope) |
165
+
154
166
  Then manually add/update/remove files to and from the package following this structure:
155
167
 
156
168
  ```txt title="Structure"
@@ -176,10 +188,27 @@ Then manually add/update/remove files to and from the package following this str
176
188
  You can also use the `add` and `remove` commands to add/remove files to/from a package.
177
189
 
178
190
  ```bash title="Terminal"
179
- opkg add <package> .cursor/commands/clean.md # Adds workspace file or dir to package
180
- opkg remove <package> commands/clean.md # Removes file or dir from package
191
+ opkg add --to <package> # Interactively select files from cwd to add to package
192
+ opkg add .cursor/commands/clean.md --to <package> # Adds workspace file or dir to package
193
+ opkg remove --from <package> # Interactively select files from package to remove
194
+ opkg remove commands/clean.md --from <package> # Removes file or dir from package
181
195
  ```
182
196
 
197
+ #### `add` options
198
+
199
+ | Option | Description |
200
+ | --- | --- |
201
+ | `--to <package-name>` | Target package (for dependency: which manifest; for copy: which package source) |
202
+ | `--dev` | Add to dev-dependencies instead of dependencies |
203
+ | `--copy` | Force copy mode (copy files instead of recording dependency) |
204
+ | `--platform-specific` | Save platform-specific variants for platform subdir inputs |
205
+
206
+ #### `remove` options
207
+
208
+ | Option | Description |
209
+ | --- | --- |
210
+ | `--from <package-name>` | Source package name (defaults to workspace package) |
211
+
183
212
  > [!TIP]
184
213
  > Learn more about packages from the [packages doc](https://openpackage.dev/docs/packages) on our official docs.
185
214
 
@@ -189,20 +218,46 @@ OpenPackage performs installation and platform sync of files for supported AI co
189
218
 
190
219
  | Platform | Directory | Root file | Rules | Commands | Agents | Skills | MCP |
191
220
  | --- | --- | --- | --- | --- | --- | --- | --- |
221
+ | AdaL | .adal/ | | | | | skills/ | settings.json |
222
+ | Amp | .agents/ | | checks/ | | | skills/ | .amp/settings.json |
192
223
  | Antigravity | .agent/ | | rules/ | workflows/ | | skills/ | |
193
- | Augment Code | .augment/ | | rules/ | commands/ | | | |
224
+ | Augment Code | .augment/ | | rules/ | commands/ | | skills/ | |
194
225
  | Claude Code | .claude/ | CLAUDE.md | rules/ | commands/ | agents/ | skills/ | .mcp.json (root) |
195
- | Codex | .codex/ | AGENTS.md | | prompts/ | | skills/ | config.toml |
196
- | Cursor | .cursor/ | AGENTS.md | rules/ | commands/ | agents/ | skills/ | mcp.json |
197
- | Factory | .factory/ | AGENTS.md | | commands/ | droids/ | skills/ | mcp.json |
198
- | Kilo Code | .kilocode/ | AGENTS.md | rules/ | workflows/ | | skills/ | mcp.json |
199
- | Kiro | .kiro/ | | steering/ | | | | settings/mcp.json |
200
- | OpenCode | .opencode/ | AGENTS.md | | command/ | agent/ | skills/ | opencode.json |
201
- | Pi-Mono | .pi/ | AGENTS.md | | agent/prompts/ | | agent/skills/ | |
226
+ | Claude Code Plugin | .claude-plugin/ | | rules/ | commands/ | agents/ | skills/ | .mcp.json (root) |
227
+ | Cline | .cline/ | | | | | skills/ | cline_mcp_settings.json |
228
+ | CodeBuddy | .codebuddy/ | | rules/ | | | skills/ | |
229
+ | Codex CLI | .codex/ | | | prompts/ | | skills/ | config.toml |
230
+ | Command Code | .commandcode/ | | | commands/ | agents/ | skills/ | |
231
+ | Continue | .continue/ | | rules/ | prompts/ | | skills/ | |
232
+ | Crush | .config/crush/ | | | | | skills/ | crush.json (root) |
233
+ | Cursor | .cursor/ | | rules/ | commands/ | agents/ | skills/ | mcp.json |
234
+ | Factory AI | .factory/ | | | commands/ | droids/ | skills/ | settings/mcp.json |
235
+ | GitHub Copilot | .github/ | | | | agents/ | skills/ | |
236
+ | Goose | .goose/ | | | | | skills/ | config.yaml |
237
+ | iFlow CLI | .iflow/ | IFLOW.md | | commands/ | agents/ | skills/ | settings.json |
238
+ | Junie | .junie/ | | | | | skills/ | |
239
+ | Kilo Code | .kilocode/ | | rules/ | workflows/ | | skills/ | mcp.json |
240
+ | Kimi Code CLI | .agents/ | | | | | skills/ | .kimi/mcp.json |
241
+ | Kiro | .kiro/ | | steering/ | | | skills/ | settings/mcp.json |
242
+ | Kode | .kode/ | | | | | skills/ | |
243
+ | MCPJam | .mcpjam/ | | | | | skills/ | |
244
+ | Mistral Vibe | .vibe/ | | | | | skills/ | |
245
+ | Mux | .mux/ | | | | | skills/ | |
246
+ | Neovate | .neovate/ | | | | | skills/ | mcp.json |
247
+ | OpenClaw | .openclaw/ | | | | | skills/ | |
248
+ | OpenCode | .opencode/ | | | commands/ | agents/ | skills/ | opencode.json |
249
+ | OpenHands | .openhands/ | | | | | skills/ | mcp.json |
250
+ | Pi-Mono | .pi/ | | | agent/prompts/ | | agent/skills/ | |
251
+ | Pochi | .pochi/ | | | | | skills/ | |
252
+ | Qoder | .qoder/ | | rules/ | commands/ | agents/ | skills/ | |
202
253
  | Qwen Code | .qwen/ | QWEN.md | | | agents/ | skills/ | settings.json |
203
- | Roo | .roo/ | AGENTS.md | | commands/ | | skills/ | mcp.json |
204
- | Warp | .warp/ | WARP.md | | | | |
254
+ | Replit | .agents/ | replit.md | | | | skills/ | |
255
+ | Roo Code | .roo/ | | | commands/ | | skills/ | mcp.json |
256
+ | Trae | .trae/ | | rules/ | | | skills/ | |
257
+ | Trae CN | .trae-cn/ | | rules/ | | | skills/ | |
258
+ | Warp | .warp/ | WARP.md | | | | | |
205
259
  | Windsurf | .windsurf/ | | rules/ | | | skills/ | |
260
+ | Zencoder | .zencoder/ | | | | | skills/ | |
206
261
 
207
262
  The built-in `platforms.jsonc` defines supported platforms, but can be overridden by user configs:
208
263
  - Global: `~/.openpackage/platforms.jsonc` (`.json`)
@@ -1,70 +1,220 @@
1
+ import { join, relative, resolve } from 'path';
1
2
  import { withErrorHandling } from '../utils/errors.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
+ import { runAddToSourcePipeline, runAddToSourcePipelineBatch } from '../core/add/add-to-source-pipeline.js';
4
+ import { classifyAddInput } from '../core/add/add-input-classifier.js';
5
+ import { runAddDependencyFlow } from '../core/add/add-dependency-flow.js';
6
+ import { formatPathForDisplay, getTreeConnector } from '../utils/formatters.js';
7
+ import { interactiveFileSelect } from '../utils/interactive-file-selector.js';
8
+ import { expandDirectorySelections, hasDirectorySelections } from '../utils/expand-directory-selections.js';
9
+ import { createExecutionContext } from '../core/execution-context.js';
10
+ import { resolveMutableSource } from '../core/source-resolution/resolve-mutable-source.js';
11
+ import { buildWorkspacePackageContext } from '../utils/workspace-package-context.js';
12
+ import { createInteractionPolicy, PromptTier } from '../core/interaction-policy.js';
13
+ import { setOutputMode, output, isInteractive } from '../utils/output.js';
14
+ import { exists } from '../utils/fs.js';
5
15
  /**
6
- * Display add operation results in install-style format
16
+ * Display add operation results.
17
+ * Interactive: flat list in clack note (like uninstall -i).
18
+ * Non-interactive: tree view with connectors.
19
+ * @param skipHeader - When true (interactive add), header was already shown before selection
7
20
  */
8
- function displayAddResults(data, options) {
9
- const cwd = process.cwd();
10
- const { filesAdded, sourcePath, sourceType, packageName: resolvedName, addedFilePaths } = data;
11
- // Determine if this is a workspace root add
12
- const displayPath = formatPathForDisplay(sourcePath, cwd);
13
- const isWorkspaceRoot = displayPath.includes('.openpackage') && !displayPath.includes('.openpackage/packages');
14
- // Main success message
15
- if (isWorkspaceRoot) {
16
- console.log(`✓ Added to workspace package`);
21
+ function displayAddResults(data, skipHeader = false) {
22
+ const { filesAdded, packageName: resolvedName, addedFilePaths, isWorkspaceRoot, sourcePath } = data;
23
+ const target = isWorkspaceRoot ? 'workspace package' : resolvedName;
24
+ if (!skipHeader) {
25
+ const pkgLabel = isWorkspaceRoot ? 'workspace package' : resolvedName;
26
+ const displayPath = formatPathForDisplay(sourcePath, process.cwd());
27
+ const header = `To: ${pkgLabel} (${displayPath})`;
28
+ if (isInteractive())
29
+ output.info(header);
30
+ else
31
+ output.success(header);
17
32
  }
18
- else {
19
- console.log(`✓ Added to ${resolvedName}`);
20
- }
21
- // Display added files in install-style format
22
- if (addedFilePaths && addedFilePaths.length > 0) {
23
- console.log(`✓ Added files: ${addedFilePaths.length}`);
24
- const sortedFiles = [...addedFilePaths].sort((a, b) => a.localeCompare(b));
25
- for (const file of sortedFiles) {
26
- console.log(` ├── ${formatPathForDisplay(file, cwd)}`);
33
+ if (filesAdded > 0) {
34
+ const count = filesAdded === 1 ? '1 file' : `${filesAdded} files`;
35
+ output.success(`Added ${count} to ${target}`);
36
+ const sortedFiles = [...(addedFilePaths || [])].sort((a, b) => a.localeCompare(b));
37
+ const relPaths = sortedFiles.map((f) => relative(sourcePath, f).replace(/\\/g, '/'));
38
+ if (isInteractive()) {
39
+ const maxDisplay = 10;
40
+ const displayPaths = relPaths.slice(0, maxDisplay);
41
+ const more = relPaths.length > maxDisplay ? `\n... and ${relPaths.length - maxDisplay} more` : '';
42
+ output.note(displayPaths.join('\n') + more, 'Added files');
43
+ }
44
+ else {
45
+ for (let i = 0; i < relPaths.length; i++) {
46
+ const connector = getTreeConnector(i === relPaths.length - 1);
47
+ output.message(` ${connector}${relPaths[i]}`);
48
+ }
27
49
  }
28
50
  }
29
51
  else {
30
- console.log(`✓ Added files: ${filesAdded}`);
52
+ output.success(`No new files added to ${target}`);
31
53
  }
32
- // Show hints only for non-workspace-root adds
33
- if (!isWorkspaceRoot) {
34
- // Check if package is installed in workspace
35
- readWorkspaceIndex(cwd).then(workspaceIndexRecord => {
36
- const isInstalled = !!workspaceIndexRecord.index.packages[resolvedName];
37
- if (isInstalled) {
38
- console.log(`\n💡 Changes not synced to workspace.`);
39
- console.log(` To sync changes, run:`);
40
- console.log(` opkg install ${resolvedName}`);
41
- }
42
- else {
43
- console.log(`\n💡 Package not installed in workspace.`);
44
- console.log(` To install and sync, run:`);
45
- console.log(` opkg install ${resolvedName}`);
54
+ }
55
+ function displayDependencyResult(result, classification) {
56
+ const displayPath = formatPathForDisplay(result.targetManifest, process.cwd());
57
+ const header = `To: ${result.packageName} (${displayPath})`;
58
+ if (isInteractive())
59
+ output.info(header);
60
+ else
61
+ output.success(header);
62
+ // Show auto-detection hint for local paths
63
+ if (result.wasAutoDetected) {
64
+ output.info(`Detected package at ${classification.localPath} — adding as dependency.`);
65
+ output.message('To copy files instead, use --copy.');
66
+ }
67
+ const versionSuffix = classification.version ? `@${classification.version}` : '';
68
+ output.success(`Added ${result.packageName}${versionSuffix} to ${result.section}`);
69
+ output.message(`in ${formatPathForDisplay(result.targetManifest, process.cwd())}`);
70
+ }
71
+ /** Check if input looks like a bare name (could be registry or local path) */
72
+ function isBareNameInput(input) {
73
+ return (!input.startsWith('./') &&
74
+ !input.startsWith('../') &&
75
+ !input.startsWith('/') &&
76
+ !input.startsWith('~') &&
77
+ !input.endsWith('/'));
78
+ }
79
+ /**
80
+ * Process a single resource spec through the add pipeline
81
+ */
82
+ async function processAddResource(resourceSpec, options, cwd, execContext) {
83
+ const classification = await classifyAddInput(resourceSpec, cwd, {
84
+ copy: options.copy,
85
+ dev: options.dev,
86
+ });
87
+ if (classification.mode === 'dependency') {
88
+ if (options.platformSpecific) {
89
+ // --platform-specific is only valid for copy mode
90
+ throw new Error('--platform-specific can only be used with --copy or when adding files');
91
+ }
92
+ try {
93
+ const result = await runAddDependencyFlow(classification, {
94
+ dev: options.dev,
95
+ to: options.to,
96
+ });
97
+ displayDependencyResult(result, classification);
98
+ }
99
+ catch (error) {
100
+ const msg = error instanceof Error ? error.message : String(error);
101
+ if (isBareNameInput(resourceSpec)) {
102
+ const localPath = resolve(cwd, resourceSpec);
103
+ if (await exists(localPath)) {
104
+ throw new Error(`${msg}\n\nA local path './${resourceSpec}' exists — did you mean:\n opkg add ./${resourceSpec}`);
105
+ }
46
106
  }
47
- }).catch(() => {
48
- // Ignore errors reading workspace index
107
+ throw error;
108
+ }
109
+ }
110
+ else if (classification.mode === 'workspace-resource') {
111
+ if (options.dev) {
112
+ throw new Error('--dev can only be used when adding a dependency, not when copying files');
113
+ }
114
+ const resource = classification.resolvedResource;
115
+ const ctx = await createExecutionContext({
116
+ global: resource.scope === 'global',
49
117
  });
118
+ const absPath = resource.sourcePath || join(ctx.targetDir, resource.targetFiles[0]);
119
+ const packageName = options.to;
120
+ const result = await runAddToSourcePipeline(packageName, absPath, { ...options, execContext });
121
+ if (!result.success) {
122
+ throw new Error(result.error || 'Add operation failed');
123
+ }
124
+ if (result.data) {
125
+ output.info(`Resolved "${resourceSpec}" from installed workspace resources.`);
126
+ displayAddResults(result.data);
127
+ }
50
128
  }
51
- }
52
- export function setupAddCommand(program) {
53
- program
54
- .command('add')
55
- .argument('[package-name]', 'package name (optional - defaults to workspace package)')
56
- .argument('[path]', 'file or directory to add')
57
- .description('Add files to a mutable package source or workspace package')
58
- .option('--platform-specific', 'Save platform-specific variants for platform subdir inputs')
59
- .action(withErrorHandling(async (packageName, pathArg, options) => {
60
- const result = await runAddToSourcePipeline(packageName, pathArg, options);
129
+ else {
130
+ if (options.dev) {
131
+ throw new Error('--dev can only be used when adding a dependency, not when copying files');
132
+ }
133
+ const packageName = options.to;
134
+ const result = await runAddToSourcePipeline(packageName, classification.copySourcePath, { ...options, execContext });
61
135
  if (!result.success) {
62
136
  throw new Error(result.error || 'Add operation failed');
63
137
  }
64
- // Display results
65
138
  if (result.data) {
66
- displayAddResults(result.data, options);
139
+ displayAddResults(result.data);
140
+ }
141
+ }
142
+ }
143
+ export function setupAddCommand(program) {
144
+ program
145
+ .command('add')
146
+ .argument('[resource-spec]', 'resource to add (package[@version], gh@owner/repo, https://github.com/owner/repo, or /path/to/file). If omitted, shows interactive file selector.')
147
+ .description('Add a dependency to openpackage.yml or copy files to a package')
148
+ .option('--to <package-name>', 'target package (for dependency: which manifest; for copy: which package source)')
149
+ .option('--dev', 'add to dev-dependencies instead of dependencies')
150
+ .option('--copy', 'force copy mode (copy files instead of recording dependency)')
151
+ .option('--platform-specific', 'save platform-specific variants for platform subdir inputs')
152
+ .option('--force', 'overwrite existing files without prompting')
153
+ .action(withErrorHandling(async (resource, options, command) => {
154
+ const cwd = process.cwd();
155
+ const programOpts = command.parent?.opts() || {};
156
+ const execContext = await createExecutionContext({
157
+ global: false,
158
+ cwd: programOpts.cwd,
159
+ });
160
+ const policy = createInteractionPolicy({
161
+ interactive: !resource,
162
+ force: options.force,
163
+ });
164
+ execContext.interactionPolicy = policy;
165
+ // Set output mode: interactive (clack UI) when no resource, plain console otherwise
166
+ setOutputMode(!resource);
167
+ // If no resource provided, show interactive file selector
168
+ if (!resource) {
169
+ if (!policy.canPrompt(PromptTier.OptionalMenu)) {
170
+ throw new Error('<resource-spec> argument is required in non-interactive mode.\n' +
171
+ 'Usage: opkg add <resource-spec> [options]\n\n' +
172
+ 'Examples:\n' +
173
+ ' opkg add ./path/to/file.txt # Add local file\n' +
174
+ ' opkg add gh@owner/repo # Add from GitHub\n' +
175
+ ' opkg add package@version # Add package dependency');
176
+ }
177
+ // Resolve target package and show header before file selection
178
+ let pkgLabel;
179
+ let sourcePath;
180
+ if (options.to) {
181
+ const source = await resolveMutableSource({ cwd, packageName: options.to });
182
+ pkgLabel = source.packageName;
183
+ sourcePath = source.absolutePath;
184
+ }
185
+ else {
186
+ const context = await buildWorkspacePackageContext(cwd);
187
+ pkgLabel = 'workspace package';
188
+ sourcePath = context.packageRootDir;
189
+ }
190
+ const displayPath = formatPathForDisplay(sourcePath, cwd);
191
+ output.step(`To: ${pkgLabel} (${displayPath})`);
192
+ output.connector();
193
+ // Show interactive file selector
194
+ const selectedFiles = await interactiveFileSelect({ cwd, includeDirs: true });
195
+ // Handle cancellation or empty selection
196
+ if (!selectedFiles || selectedFiles.length === 0) {
197
+ return;
198
+ }
199
+ // Expand any directory selections to individual files
200
+ let filesToProcess;
201
+ if (hasDirectorySelections(selectedFiles)) {
202
+ filesToProcess = await expandDirectorySelections(selectedFiles, cwd);
203
+ output.info(`Found ${filesToProcess.length} total file${filesToProcess.length === 1 ? '' : 's'} to add`);
204
+ }
205
+ else {
206
+ filesToProcess = selectedFiles;
207
+ }
208
+ const absPaths = filesToProcess.map((f) => join(cwd, f));
209
+ const result = await runAddToSourcePipelineBatch(options.to, absPaths, cwd, { ...options, execContext });
210
+ if (!result.success)
211
+ throw new Error(result.error || 'Add operation failed');
212
+ if (result.data)
213
+ displayAddResults(result.data, true);
214
+ return;
67
215
  }
216
+ // Process single resource (existing behavior)
217
+ await processAddResource(resource, options, cwd, execContext);
68
218
  }));
69
219
  }
70
220
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -16,17 +16,24 @@ export function setupInstallCommand(program) {
16
16
  .option('-g, --global', 'install to home directory (~/) instead of current workspace')
17
17
  .option('-a, --agents <names...>', 'install specific agents by name (matches frontmatter name or filename)')
18
18
  .option('-s, --skills <names...>', 'install specific skills by name (matches SKILL.md frontmatter name or directory name)')
19
+ .option('-r, --rules <names...>', 'install specific rules by name (matches frontmatter name or filename)')
20
+ .option('-c, --commands <names...>', 'install specific commands by name (matches frontmatter name or filename)')
19
21
  .option('--plugins <names...>', 'install specific plugins from marketplace (bypasses interactive selection)')
20
22
  .option('--platforms <platforms...>', 'install to specific platforms (e.g., cursor claudecode opencode)')
23
+ .option('-i, --interactive', 'interactively select resources to install (agents, skills, commands, etc.)')
21
24
  .option('--dry-run', 'preview changes without applying them')
22
25
  .option('--force', 'overwrite existing files')
23
- .option('--conflicts <strategy>', 'conflict handling strategy: keep-both, overwrite, skip, or ask')
26
+ .option('--conflicts <strategy>', 'conflict handling strategy: namespace, overwrite, skip, or ask')
24
27
  .option('--dev', 'add resource to dev-dependencies (instead of dependencies)')
25
28
  .option('--remote', 'pull and install from remote registry, ignoring local versions')
26
29
  .option('--local', 'resolve and install using only local registry versions, skipping remote metadata and pulls')
27
30
  .option('--profile <profile>', 'profile to use for authentication')
28
31
  .option('--api-key <key>', 'API key for authentication (overrides profile)')
29
32
  .action(withErrorHandling(async (packageName, options, command) => {
33
+ // Validate mutually exclusive options
34
+ if (options.interactive && (options.agents || options.skills || options.rules || options.commands)) {
35
+ throw new Error('--interactive cannot be used with --agents, --skills, --rules, or --commands. Use --interactive for interactive selection or specify filters directly.');
36
+ }
30
37
  // Get program-level options (for --cwd)
31
38
  const programOpts = command.parent?.opts() || {};
32
39
  // Create telemetry collector
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}