opkg 0.7.9 → 0.8.1
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.
- package/README.md +26 -10
- package/dist/commands/add.js +2 -3
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/configure.js +2 -6
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/install.js +13 -184
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.js +88 -75
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/publish.js +16 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/remove.js +2 -3
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/uninstall.js +1 -2
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/core/add/add-to-source-pipeline.js +0 -32
- package/dist/core/add/add-to-source-pipeline.js.map +1 -1
- package/dist/core/add/package-index-updater.js +3 -2
- package/dist/core/add/package-index-updater.js.map +1 -1
- package/dist/core/dependency-resolver.js +49 -31
- package/dist/core/dependency-resolver.js.map +1 -1
- package/dist/core/flows/flow-executor.js +83 -1
- package/dist/core/flows/flow-executor.js.map +1 -1
- package/dist/core/flows/flow-key-mapper.js +0 -99
- package/dist/core/flows/flow-key-mapper.js.map +1 -1
- package/dist/core/flows/flow-transforms.js +0 -16
- package/dist/core/flows/flow-transforms.js.map +1 -1
- package/dist/core/install/ambiguity-prompts.js +110 -0
- package/dist/core/install/ambiguity-prompts.js.map +1 -0
- package/dist/core/install/base-detector.js +321 -0
- package/dist/core/install/base-detector.js.map +1 -0
- package/dist/core/install/content-detector.js +447 -0
- package/dist/core/install/content-detector.js.map +1 -0
- package/dist/core/install/content-path-parser.js +103 -0
- package/dist/core/install/content-path-parser.js.map +1 -0
- package/dist/core/install/content-type-registry.js +95 -0
- package/dist/core/install/content-type-registry.js.map +1 -0
- package/dist/core/install/convenience-matchers.js +334 -0
- package/dist/core/install/convenience-matchers.js.map +1 -0
- package/dist/core/install/flow-based-installer.js +1 -93
- package/dist/core/install/flow-based-installer.js.map +1 -1
- package/dist/core/install/git-package-loader.js +15 -2
- package/dist/core/install/git-package-loader.js.map +1 -1
- package/dist/core/install/handlers/index.js +6 -0
- package/dist/core/install/handlers/index.js.map +1 -0
- package/dist/core/install/helpers/conflict-detection.js +1 -1
- package/dist/core/install/helpers/file-discovery.js +28 -4
- package/dist/core/install/helpers/file-discovery.js.map +1 -1
- package/dist/core/install/install-errors.js +1 -1
- package/dist/core/install/install-errors.js.map +1 -1
- package/dist/core/install/install-flow.js +7 -13
- package/dist/core/install/install-flow.js.map +1 -1
- package/dist/core/install/install-reporting.js +25 -16
- package/dist/core/install/install-reporting.js.map +1 -1
- package/dist/core/install/intent-parser.js +84 -0
- package/dist/core/install/intent-parser.js.map +1 -0
- package/dist/core/install/marketplace-handler.js +89 -53
- package/dist/core/install/marketplace-handler.js.map +1 -1
- package/dist/core/install/naming-context-builder.js +203 -0
- package/dist/core/install/naming-context-builder.js.map +1 -0
- package/dist/core/install/naming-context.js +77 -0
- package/dist/core/install/naming-context.js.map +1 -0
- package/dist/core/install/operations/conflict-handler.js +0 -34
- package/dist/core/install/operations/conflict-handler.js.map +1 -1
- package/dist/core/install/orchestrator/index.js +3 -0
- package/dist/core/install/orchestrator/index.js.map +1 -0
- package/dist/core/install/orchestrator/orchestrator.js +403 -0
- package/dist/core/install/orchestrator/orchestrator.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/base.js +43 -0
- package/dist/core/install/orchestrator/strategies/base.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/bulk-strategy.js +52 -0
- package/dist/core/install/orchestrator/strategies/bulk-strategy.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/git-strategy.js +108 -0
- package/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/index.js +21 -0
- package/dist/core/install/orchestrator/strategies/index.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/path-strategy.js +61 -0
- package/dist/core/install/orchestrator/strategies/path-strategy.js.map +1 -0
- package/dist/core/install/orchestrator/strategies/registry-strategy.js +38 -0
- package/dist/core/install/orchestrator/strategies/registry-strategy.js.map +1 -0
- package/dist/core/install/orchestrator/types.js +2 -0
- package/dist/core/install/orchestrator/types.js.map +1 -0
- package/dist/core/install/orchestrator.js +332 -0
- package/dist/core/install/orchestrator.js.map +1 -0
- package/dist/core/install/package-name-service.js +194 -0
- package/dist/core/install/package-name-service.js.map +1 -0
- package/dist/core/install/path-package-loader.js +63 -4
- package/dist/core/install/path-package-loader.js.map +1 -1
- package/dist/core/install/platform-resolution.js +2 -1
- package/dist/core/install/platform-resolution.js.map +1 -1
- package/dist/core/install/plugin-detector.js +2 -15
- package/dist/core/install/plugin-detector.js.map +1 -1
- package/dist/core/install/plugin-sources.js +6 -4
- package/dist/core/install/plugin-sources.js.map +1 -1
- package/dist/core/install/plugin-transformer.js +8 -43
- package/dist/core/install/plugin-transformer.js.map +1 -1
- package/dist/core/install/preprocessing/base-resolver.js +86 -0
- package/dist/core/install/preprocessing/base-resolver.js.map +1 -0
- package/dist/core/install/preprocessing/convenience-preprocessor.js +21 -0
- package/dist/core/install/preprocessing/convenience-preprocessor.js.map +1 -0
- package/dist/core/install/preprocessing/index.js +5 -0
- package/dist/core/install/preprocessing/index.js.map +1 -0
- package/dist/core/install/preprocessing/input-classifier.js +133 -0
- package/dist/core/install/preprocessing/input-classifier.js.map +1 -0
- package/dist/core/install/preprocessing/options-normalizer.js +38 -0
- package/dist/core/install/preprocessing/options-normalizer.js.map +1 -0
- package/dist/core/install/remote-flow.js +1 -57
- package/dist/core/install/remote-flow.js.map +1 -1
- package/dist/core/install/resolution/executor.js +152 -0
- package/dist/core/install/resolution/executor.js.map +1 -0
- package/dist/core/install/resolution/graph-builder.js +252 -0
- package/dist/core/install/resolution/graph-builder.js.map +1 -0
- package/dist/core/install/resolution/id-generator.js +70 -0
- package/dist/core/install/resolution/id-generator.js.map +1 -0
- package/dist/core/install/resolution/index.js +11 -0
- package/dist/core/install/resolution/index.js.map +1 -0
- package/dist/core/install/resolution/installation-planner.js +178 -0
- package/dist/core/install/resolution/installation-planner.js.map +1 -0
- package/dist/core/install/resolution/manifest-reader.js +112 -0
- package/dist/core/install/resolution/manifest-reader.js.map +1 -0
- package/dist/core/install/resolution/package-loader.js +168 -0
- package/dist/core/install/resolution/package-loader.js.map +1 -0
- package/dist/core/install/resolution/types.js +6 -0
- package/dist/core/install/resolution/types.js.map +1 -0
- package/dist/core/install/resolvers/content-resolver.js +94 -0
- package/dist/core/install/resolvers/content-resolver.js.map +1 -0
- package/dist/core/install/resolvers/index.js +8 -0
- package/dist/core/install/resolvers/index.js.map +1 -0
- package/dist/core/install/resolvers/target-resolver.js +211 -0
- package/dist/core/install/resolvers/target-resolver.js.map +1 -0
- package/dist/core/install/skill-path-parser.js +96 -0
- package/dist/core/install/skill-path-parser.js.map +1 -0
- package/dist/core/install/skills-detector.js +326 -0
- package/dist/core/install/skills-detector.js.map +1 -0
- package/dist/core/install/skills-marketplace-handler.js +454 -0
- package/dist/core/install/skills-marketplace-handler.js.map +1 -0
- package/dist/core/install/sources/base.js.map +1 -1
- package/dist/core/install/sources/git-source.js +67 -24
- package/dist/core/install/sources/git-source.js.map +1 -1
- package/dist/core/install/sources/loader-factory.js +0 -6
- package/dist/core/install/sources/loader-factory.js.map +1 -1
- package/dist/core/install/sources/path-source.js +79 -13
- package/dist/core/install/sources/path-source.js.map +1 -1
- package/dist/core/install/sources/registry-source.js +0 -5
- package/dist/core/install/sources/registry-source.js.map +1 -1
- package/dist/core/install/sources/workspace-source.js +1 -4
- package/dist/core/install/sources/workspace-source.js.map +1 -1
- package/dist/core/install/strategies/base-strategy.js +47 -0
- package/dist/core/install/strategies/base-strategy.js.map +1 -1
- package/dist/core/install/strategies/conversion-strategy.js +1 -2
- package/dist/core/install/strategies/conversion-strategy.js.map +1 -1
- package/dist/core/install/strategies/flow-based-strategy.js +3 -1
- package/dist/core/install/strategies/flow-based-strategy.js.map +1 -1
- package/dist/core/install/strategies/helpers/result-converter.js +0 -17
- package/dist/core/install/strategies/helpers/result-converter.js.map +1 -1
- package/dist/core/install/strategies/helpers/temp-directory.js +2 -30
- package/dist/core/install/strategies/helpers/temp-directory.js.map +1 -1
- package/dist/core/install/types/index.js +9 -0
- package/dist/core/install/types/index.js.map +1 -0
- package/dist/core/install/types/intent.js +7 -0
- package/dist/core/install/types/intent.js.map +1 -0
- package/dist/core/install/types/source.js +7 -0
- package/dist/core/install/types/source.js.map +1 -0
- package/dist/core/install/types/target.js +7 -0
- package/dist/core/install/types/target.js.map +1 -0
- package/dist/core/install/unified/context-builders.js +167 -86
- package/dist/core/install/unified/context-builders.js.map +1 -1
- package/dist/core/install/unified/context-helpers.js +5 -13
- package/dist/core/install/unified/context-helpers.js.map +1 -1
- package/dist/core/install/unified/index.js +2 -9
- package/dist/core/install/unified/index.js.map +1 -1
- package/dist/core/install/unified/multi-context-pipeline.js +39 -0
- package/dist/core/install/unified/multi-context-pipeline.js.map +1 -0
- package/dist/core/install/unified/phases/execute.js +6 -2
- package/dist/core/install/unified/phases/execute.js.map +1 -1
- package/dist/core/install/unified/phases/load-package.js +61 -5
- package/dist/core/install/unified/phases/load-package.js.map +1 -1
- package/dist/core/install/unified/phases/manifest.js +15 -5
- package/dist/core/install/unified/phases/manifest.js.map +1 -1
- package/dist/core/install/unified/phases/report.js +3 -2
- package/dist/core/install/unified/phases/report.js.map +1 -1
- package/dist/core/install/unified/pipeline.js +20 -8
- package/dist/core/install/unified/pipeline.js.map +1 -1
- package/dist/core/install/v2/detection/content-scanner.js +120 -0
- package/dist/core/install/v2/detection/content-scanner.js.map +1 -0
- package/dist/core/install/v2/detection/manifest-detector.js +100 -0
- package/dist/core/install/v2/detection/manifest-detector.js.map +1 -0
- package/dist/core/install/v2/index.js +55 -0
- package/dist/core/install/v2/index.js.map +1 -0
- package/dist/core/install/v2/patterns/deepest-match.js +134 -0
- package/dist/core/install/v2/patterns/deepest-match.js.map +1 -0
- package/dist/core/install/v2/patterns/pattern-registry.js +130 -0
- package/dist/core/install/v2/patterns/pattern-registry.js.map +1 -0
- package/dist/core/install/v2/pipeline.js +173 -0
- package/dist/core/install/v2/pipeline.js.map +1 -0
- package/dist/core/install/v2/prompts/base-selection.js +73 -0
- package/dist/core/install/v2/prompts/base-selection.js.map +1 -0
- package/dist/core/install/v2/prompts/content-selection.js +115 -0
- package/dist/core/install/v2/prompts/content-selection.js.map +1 -0
- package/dist/core/install/v2/prompts/plugin-selection.js +66 -0
- package/dist/core/install/v2/prompts/plugin-selection.js.map +1 -0
- package/dist/core/install/v2/stages/execute-install.js +271 -0
- package/dist/core/install/v2/stages/execute-install.js.map +1 -0
- package/dist/core/install/v2/stages/fetch-source.js +112 -0
- package/dist/core/install/v2/stages/fetch-source.js.map +1 -0
- package/dist/core/install/v2/stages/parse-input.js +156 -0
- package/dist/core/install/v2/stages/parse-input.js.map +1 -0
- package/dist/core/install/v2/stages/resolve-base.js +119 -0
- package/dist/core/install/v2/stages/resolve-base.js.map +1 -0
- package/dist/core/install/v2/stages/resolve-targets.js +325 -0
- package/dist/core/install/v2/stages/resolve-targets.js.map +1 -0
- package/dist/core/install/v2/types.js +87 -0
- package/dist/core/install/v2/types.js.map +1 -0
- package/dist/core/install/v2/utils/manifest-writer.js +136 -0
- package/dist/core/install/v2/utils/manifest-writer.js.map +1 -0
- package/dist/core/install/validators/index.js +3 -0
- package/dist/core/install/validators/index.js.map +1 -0
- package/dist/core/install/validators/options-validator.js +28 -0
- package/dist/core/install/validators/options-validator.js.map +1 -0
- package/dist/core/install/validators/target-validator.js +19 -0
- package/dist/core/install/validators/target-validator.js.map +1 -0
- package/dist/core/install/version-selection.js +2 -32
- package/dist/core/install/version-selection.js.map +1 -1
- package/dist/core/openpackage.js +6 -6
- package/dist/core/openpackage.js.map +1 -1
- package/dist/core/package-context.js +2 -3
- package/dist/core/package-context.js.map +1 -1
- package/dist/core/platforms.js +3 -95
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/publish/publish-errors.js +55 -0
- package/dist/core/publish/publish-errors.js.map +1 -0
- package/dist/core/publish/publish-output.js +20 -0
- package/dist/core/publish/publish-output.js.map +1 -0
- package/dist/core/publish/publish-pipeline.js +103 -0
- package/dist/core/publish/publish-pipeline.js.map +1 -0
- package/dist/core/publish/publish-types.js +2 -0
- package/dist/core/publish/publish-types.js.map +1 -0
- package/dist/core/publish/publish-upload.js +50 -0
- package/dist/core/publish/publish-upload.js.map +1 -0
- package/dist/core/remote-pull.js +31 -3
- package/dist/core/remote-pull.js.map +1 -1
- package/dist/core/remove/remove-from-source-pipeline.js +0 -32
- package/dist/core/remove/remove-from-source-pipeline.js.map +1 -1
- package/dist/core/scoping/package-scoping.js +3 -3
- package/dist/core/scoping/package-scoping.js.map +1 -1
- package/dist/core/source-resolution/dependency-graph.js +15 -4
- package/dist/core/source-resolution/dependency-graph.js.map +1 -1
- package/dist/core/source-resolution/resolve-mutable-source.js +5 -4
- package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -1
- package/dist/core/uninstall/uninstall-pipeline.js +3 -2
- package/dist/core/uninstall/uninstall-pipeline.js.map +1 -1
- package/dist/index.js +13 -26
- package/dist/index.js.map +1 -1
- package/dist/types/index.js +0 -4
- package/dist/types/index.js.map +1 -1
- package/dist/utils/errors.js +1 -42
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/flow-index-installer.js +27 -6
- package/dist/utils/flow-index-installer.js.map +1 -1
- package/dist/utils/formatters.js +0 -38
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/git-clone.js +48 -22
- package/dist/utils/git-clone.js.map +1 -1
- package/dist/utils/git-url-detection.js +327 -0
- package/dist/utils/git-url-detection.js.map +1 -0
- package/dist/utils/index-based-installer.js +3 -2
- package/dist/utils/index-based-installer.js.map +1 -1
- package/dist/utils/install-error-messages.js +201 -0
- package/dist/utils/install-error-messages.js.map +1 -0
- package/dist/utils/install-helpers.js +14 -5
- package/dist/utils/install-helpers.js.map +1 -1
- package/dist/utils/logger.js +0 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/manifest-paths.js +0 -8
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/package-input.js +4 -4
- package/dist/utils/package-input.js.map +1 -1
- package/dist/utils/package-installation.js +1 -1
- package/dist/utils/package-installation.js.map +1 -1
- package/dist/utils/package-management.js +100 -126
- package/dist/utils/package-management.js.map +1 -1
- package/dist/utils/package-name-resolver.js +146 -0
- package/dist/utils/package-name-resolver.js.map +1 -0
- package/dist/utils/package-name.js +98 -5
- package/dist/utils/package-name.js.map +1 -1
- package/dist/utils/package-yml.js +183 -7
- package/dist/utils/package-yml.js.map +1 -1
- package/dist/utils/path-normalization.js +0 -8
- package/dist/utils/path-normalization.js.map +1 -1
- package/dist/utils/pattern-matcher.js +179 -0
- package/dist/utils/pattern-matcher.js.map +1 -0
- package/dist/utils/platform-file.js +3 -2
- package/dist/utils/platform-file.js.map +1 -1
- package/dist/utils/platform-mapper.js +24 -51
- package/dist/utils/platform-mapper.js.map +1 -1
- package/dist/utils/plugin-naming.js +212 -69
- package/dist/utils/plugin-naming.js.map +1 -1
- package/dist/utils/prompts.js +0 -23
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/registry-entry-filter.js +3 -2
- package/dist/utils/registry-entry-filter.js.map +1 -1
- package/dist/utils/resource-arg-parser.js +228 -0
- package/dist/utils/resource-arg-parser.js.map +1 -0
- package/dist/utils/spinner.js +0 -16
- package/dist/utils/spinner.js.map +1 -1
- package/dist/utils/workspace-index-yml.js +114 -2
- package/dist/utils/workspace-index-yml.js.map +1 -1
- package/package.json +1 -1
- package/platforms.jsonc +2 -1
- package/specs/README.md +5 -4
- package/specs/add/README.md +18 -53
- package/specs/architecture.md +19 -24
- package/specs/cli-options.md +8 -8
- package/specs/commands-overview.md +46 -64
- package/specs/install/git-sources.md +131 -48
- package/specs/install/install-behavior.md +6 -6
- package/specs/install/package-yml-canonical.md +15 -16
- package/specs/install/plugin-installation.md +47 -3
- package/specs/{status → list}/README.md +3 -3
- package/specs/new/README.md +4 -22
- package/specs/new/SUMMARY.md +9 -20
- package/specs/new/scope-behavior.md +14 -16
- package/specs/package/package-index-yml.md +3 -6
- package/specs/package-sources.md +26 -8
- package/specs/platforms/configuration.md +1 -1
- package/specs/platforms/detection.md +2 -2
- package/specs/platforms/directory-layout.md +1 -1
- package/specs/platforms/examples.md +2 -2
- package/specs/platforms/flow-reference.md +1 -1
- package/specs/platforms/flows.md +5 -6
- package/specs/platforms/overview.md +2 -2
- package/specs/platforms/troubleshooting.md +8 -46
- package/specs/platforms/universal-converter.md +2 -2
- package/specs/publish/README.md +177 -0
- package/specs/registry.md +2 -8
- package/specs/remove/README.md +15 -53
- package/specs/set/README.md +1 -1
- package/examples/custom-subdirs-platform.jsonc +0 -157
- package/plans/conversion-context-architecture.md +0 -695
- package/plans/conversion-context-implementation-guide.md +0 -1327
- package/specs/apply/README.md +0 -21
- package/specs/apply/apply-behavior.md +0 -102
- package/specs/apply/apply-command.md +0 -55
- package/specs/apply/conflicts.md +0 -41
- package/specs/apply/index-effects.md +0 -81
- package/specs/push/README.md +0 -20
- package/specs/push/push-behavior.md +0 -204
- package/specs/push/push-errors-and-hints.md +0 -135
- package/specs/push/push-remote-upload.md +0 -93
- package/specs/push/push-scoping.md +0 -40
- package/specs/push/push-version-selection.md +0 -90
- package/specs/save/README.md +0 -44
- package/specs/save/save-conflict-resolution.md +0 -268
- package/specs/save/save-file-discovery.md +0 -103
- package/specs/save/save-frontmatter-overrides.md +0 -77
- package/specs/save/save-modes-inputs.md +0 -25
- package/specs/save/save-naming-scoping.md +0 -93
- package/specs/save/save-package-detection.md +0 -60
- package/specs/save/save-registry-sync.md +0 -36
- package/specs/save/save-versioning.md +0 -80
- package/specs/show/README.md +0 -483
- package/specs/show/show-remote.md +0 -494
package/README.md
CHANGED
|
@@ -78,28 +78,44 @@ Installs all files from a package into the codebase at cwd, formatted and conver
|
|
|
78
78
|
|
|
79
79
|
The install command supports various package sources:
|
|
80
80
|
```bash title="Terminal"
|
|
81
|
-
|
|
81
|
+
# Registry packages
|
|
82
|
+
opkg install essentials # From registry
|
|
83
|
+
opkg install essentials@1.0.0 # Specific version
|
|
84
|
+
|
|
85
|
+
# Local packages
|
|
82
86
|
opkg install ../packages/essentials/ # Local path
|
|
83
87
|
|
|
84
|
-
# GitHub
|
|
85
|
-
opkg install
|
|
88
|
+
# GitHub packages (modern syntax)
|
|
89
|
+
opkg install gh@anthropics/claude-code # GitHub shorthand
|
|
90
|
+
opkg install gh@anthropics/claude-code/plugins/feature # With subdirectory
|
|
91
|
+
opkg install https://github.com/anthropics/claude-code # Direct URL
|
|
86
92
|
|
|
87
|
-
#
|
|
88
|
-
opkg install
|
|
93
|
+
# Other git repositories
|
|
94
|
+
opkg install https://gitlab.com/user/repo.git # GitLab
|
|
95
|
+
opkg install https://example.com/repo.git#v1.0.0 # With version tag
|
|
89
96
|
```
|
|
90
97
|
|
|
98
|
+
For marketplaces, use `--plugins` to install specific plugins non-interactively:
|
|
99
|
+
```bash title="Terminal"
|
|
100
|
+
# Install specific plugins by name (bypasses interactive selection)
|
|
101
|
+
opkg install gh@anthropics/claude-code --plugins plugin1 plugin2
|
|
102
|
+
|
|
103
|
+
# Multiple plugins with space separation
|
|
104
|
+
opkg install gh@user/marketplace --plugins plugin-a plugin-b plugin-c
|
|
105
|
+
```
|
|
106
|
+
|
|
91
107
|
Use the `--global` (or `-g`) option to install files to user scope:
|
|
92
108
|
```bash title="Terminal"
|
|
93
109
|
# Installs to home dir, ex: ~/.cursor/, ~/.opencode/
|
|
94
|
-
opkg install
|
|
95
|
-
```
|
|
110
|
+
opkg install gh@anthropics/claude-code -g
|
|
111
|
+
```
|
|
96
112
|
|
|
97
113
|
### Show installed packages and files
|
|
98
114
|
```bash title="Terminal"
|
|
99
|
-
opkg
|
|
100
|
-
opkg
|
|
115
|
+
opkg list # Lists packages installed to workspace at cwd
|
|
116
|
+
opkg list <package> # Lists installed files for specified package
|
|
101
117
|
```
|
|
102
|
-
Use the
|
|
118
|
+
Use the list command to show an overview of packages and files installed.
|
|
103
119
|
|
|
104
120
|
### Uninstall packages
|
|
105
121
|
```bash title="Terminal"
|
package/dist/commands/add.js
CHANGED
|
@@ -30,14 +30,14 @@ function displayAddResults(data, options) {
|
|
|
30
30
|
console.log(`✓ Added files: ${filesAdded}`);
|
|
31
31
|
}
|
|
32
32
|
// Show hints only for non-workspace-root adds
|
|
33
|
-
if (!
|
|
33
|
+
if (!isWorkspaceRoot) {
|
|
34
34
|
// Check if package is installed in workspace
|
|
35
35
|
readWorkspaceIndex(cwd).then(workspaceIndexRecord => {
|
|
36
36
|
const isInstalled = !!workspaceIndexRecord.index.packages[resolvedName];
|
|
37
37
|
if (isInstalled) {
|
|
38
38
|
console.log(`\n💡 Changes not synced to workspace.`);
|
|
39
39
|
console.log(` To sync changes, run:`);
|
|
40
|
-
console.log(` opkg
|
|
40
|
+
console.log(` opkg install ${resolvedName}`);
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
43
|
console.log(`\n💡 Package not installed in workspace.`);
|
|
@@ -56,7 +56,6 @@ export function setupAddCommand(program) {
|
|
|
56
56
|
.argument('[path]', 'file or directory to add')
|
|
57
57
|
.description('Add files to a mutable package source or workspace package')
|
|
58
58
|
.option('--platform-specific', 'Save platform-specific variants for platform subdir inputs')
|
|
59
|
-
.option('--apply', 'Apply changes to workspace immediately (requires package to be installed)')
|
|
60
59
|
.action(withErrorHandling(async (packageName, pathArg, options) => {
|
|
61
60
|
const result = await runAddToSourcePipeline(packageName, pathArg, options);
|
|
62
61
|
if (!result.success) {
|
package/dist/commands/add.js.map
CHANGED
|
@@ -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,sBAAsB,EAAmD,MAAM,uCAAuC,CAAC;AAChI,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAuB,EAAE,OAA2B;IAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE/F,4CAA4C;IAC5C,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAE/G,uBAAuB;IACvB,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,8CAA8C;IAC9C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,15 +42,11 @@ async function setupProfile(profileName) {
|
|
|
42
42
|
console.log(`✅ Profile '${profileName}' configured successfully`);
|
|
43
43
|
if (profileName === 'default') {
|
|
44
44
|
console.log('');
|
|
45
|
-
console.log('💡 You can now use
|
|
46
|
-
console.log(' opkg push <package-name>');
|
|
47
|
-
console.log(' opkg pull <package-name>');
|
|
45
|
+
console.log('💡 You can now use remote registry features with this profile.');
|
|
48
46
|
}
|
|
49
47
|
else {
|
|
50
48
|
console.log('');
|
|
51
|
-
console.log(
|
|
52
|
-
console.log(` opkg push <package-name> --profile ${profileName}`);
|
|
53
|
-
console.log(` opkg pull <package-name> --profile ${profileName}`);
|
|
49
|
+
console.log(`💡 You can now use remote registry features with --profile ${profileName}`);
|
|
54
50
|
}
|
|
55
51
|
return {
|
|
56
52
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAY/D;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,WAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QAElD,2BAA2B;QAC3B,MAAM,4BAA4B,EAAE,CAAC;QAErC,uBAAuB,EAAE,CAAC;QAE1B,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;YACjC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,8BAA8B,WAAW,IAAI;gBACtD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB;aACvE;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,kCAAkC,WAAW,eAAe;gBACrE,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;aAC5D;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;QAC7D,CAAC;QAED,4BAA4B;QAC5B,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;SAC/C,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,cAAc,CAAC,qBAAqB,CAAC,WAAW,EAAE;YACtD,OAAO,EAAE,QAAQ,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,2BAA2B,CAAC,CAAC;QAElE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,169 +1,6 @@
|
|
|
1
1
|
import { withErrorHandling } from '../utils/errors.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { runUnifiedInstallPipeline } from '../core/install/unified/pipeline.js';
|
|
5
|
-
import { determineResolutionMode } from '../utils/resolution-mode.js';
|
|
6
|
-
import { DIR_PATTERNS, PACKAGE_PATHS } from '../constants/index.js';
|
|
7
|
-
import { normalizePathForProcessing } from '../utils/path-normalization.js';
|
|
8
|
-
import { getLoaderForSource } from '../core/install/sources/loader-factory.js';
|
|
9
|
-
import { logger } from '../utils/logger.js';
|
|
10
|
-
/**
|
|
11
|
-
* Validate that target directory is not inside .openpackage metadata
|
|
12
|
-
*/
|
|
13
|
-
function assertTargetDirOutsideMetadata(targetDir) {
|
|
14
|
-
const normalized = normalizePathForProcessing(targetDir ?? '.');
|
|
15
|
-
if (!normalized || normalized === '.') {
|
|
16
|
-
return; // default install root
|
|
17
|
-
}
|
|
18
|
-
if (normalized === DIR_PATTERNS.OPENPACKAGE ||
|
|
19
|
-
normalized.startsWith(`${DIR_PATTERNS.OPENPACKAGE}/`)) {
|
|
20
|
-
throw new Error(`Installation target '${targetDir}' cannot point inside ${DIR_PATTERNS.OPENPACKAGE} ` +
|
|
21
|
-
`(reserved for metadata like ${PACKAGE_PATHS.INDEX_RELATIVE}). ` +
|
|
22
|
-
`Choose a workspace path outside metadata.`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Validate resolution flags
|
|
27
|
-
*/
|
|
28
|
-
export function validateResolutionFlags(options) {
|
|
29
|
-
if (options.remote && options.local) {
|
|
30
|
-
throw new Error('--remote and --local cannot be used together. Choose one resolution mode.');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Main install command handler
|
|
35
|
-
*/
|
|
36
|
-
async function installCommand(packageInput, options) {
|
|
37
|
-
const cwd = process.cwd();
|
|
38
|
-
const targetDir = '.';
|
|
39
|
-
// Validate inputs
|
|
40
|
-
assertTargetDirOutsideMetadata(targetDir);
|
|
41
|
-
validateResolutionFlags(options);
|
|
42
|
-
// Set resolution mode
|
|
43
|
-
options.resolutionMode = determineResolutionMode(options);
|
|
44
|
-
// Build context(s)
|
|
45
|
-
const contexts = await buildInstallContext(cwd, packageInput, options);
|
|
46
|
-
// Handle bulk install (multiple contexts)
|
|
47
|
-
if (Array.isArray(contexts)) {
|
|
48
|
-
return await runBulkInstall(contexts);
|
|
49
|
-
}
|
|
50
|
-
// For git sources, we need to load the package first to detect if it's a marketplace
|
|
51
|
-
// Marketplaces are detected during loadPackagePhase, so we need to check after loading
|
|
52
|
-
if (contexts.source.type === 'git') {
|
|
53
|
-
// Load package to detect marketplace
|
|
54
|
-
const loader = getLoaderForSource(contexts.source);
|
|
55
|
-
const loaded = await loader.load(contexts.source, options, cwd);
|
|
56
|
-
// Update context with loaded info
|
|
57
|
-
contexts.source.packageName = loaded.packageName;
|
|
58
|
-
contexts.source.version = loaded.version;
|
|
59
|
-
contexts.source.contentRoot = loaded.contentRoot;
|
|
60
|
-
contexts.source.pluginMetadata = loaded.pluginMetadata;
|
|
61
|
-
// Store commitSha for marketplace handling
|
|
62
|
-
if (loaded.sourceMetadata?.commitSha) {
|
|
63
|
-
contexts.source._commitSha = loaded.sourceMetadata.commitSha;
|
|
64
|
-
}
|
|
65
|
-
// Check if marketplace - handle at command level
|
|
66
|
-
if (contexts.source.pluginMetadata?.pluginType === 'marketplace') {
|
|
67
|
-
return await handleMarketplaceInstallation(contexts, options, cwd);
|
|
68
|
-
}
|
|
69
|
-
// Not a marketplace, continue with normal pipeline
|
|
70
|
-
// Create resolved package for the loaded package
|
|
71
|
-
contexts.resolvedPackages = [{
|
|
72
|
-
name: loaded.packageName,
|
|
73
|
-
version: loaded.version,
|
|
74
|
-
pkg: { metadata: loaded.metadata, files: [], _format: undefined },
|
|
75
|
-
isRoot: true,
|
|
76
|
-
source: 'git',
|
|
77
|
-
contentRoot: loaded.contentRoot
|
|
78
|
-
}];
|
|
79
|
-
}
|
|
80
|
-
// Single package install
|
|
81
|
-
return await runUnifiedInstallPipeline(contexts);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Handle marketplace installation with plugin selection
|
|
85
|
-
*/
|
|
86
|
-
async function handleMarketplaceInstallation(context, options, cwd) {
|
|
87
|
-
const { parseMarketplace, promptPluginSelection, installMarketplacePlugins } = await import('../core/install/marketplace-handler.js');
|
|
88
|
-
const { Spinner } = await import('../utils/spinner.js');
|
|
89
|
-
// Load the marketplace package (already loaded, use context data)
|
|
90
|
-
if (!context.source.pluginMetadata?.manifestPath) {
|
|
91
|
-
throw new Error('Marketplace manifest not found');
|
|
92
|
-
}
|
|
93
|
-
const spinner = new Spinner('Loading marketplace');
|
|
94
|
-
spinner.start();
|
|
95
|
-
// Parse marketplace manifest
|
|
96
|
-
const marketplace = await parseMarketplace(context.source.pluginMetadata.manifestPath, {
|
|
97
|
-
repoPath: context.source.contentRoot
|
|
98
|
-
});
|
|
99
|
-
spinner.stop();
|
|
100
|
-
// Prompt user to select plugins
|
|
101
|
-
const selectedPlugins = await promptPluginSelection(marketplace);
|
|
102
|
-
if (selectedPlugins.length === 0) {
|
|
103
|
-
console.log('No plugins selected. Installation cancelled.');
|
|
104
|
-
return { success: true, data: { installed: 0, skipped: 0 } };
|
|
105
|
-
}
|
|
106
|
-
// Install selected plugins using marketplace handler
|
|
107
|
-
// At this point we know it's a git source with a gitUrl
|
|
108
|
-
if (context.source.type !== 'git' || !context.source.gitUrl) {
|
|
109
|
-
throw new Error('Marketplace must be from a git source');
|
|
110
|
-
}
|
|
111
|
-
// Get commitSha from source metadata
|
|
112
|
-
const commitSha = context.source._commitSha || '';
|
|
113
|
-
if (!commitSha) {
|
|
114
|
-
logger.error('Marketplace commit SHA not available', {
|
|
115
|
-
source: context.source,
|
|
116
|
-
hasSourceMetadata: !!context.source.sourceMetadata,
|
|
117
|
-
_commitSha: context.source._commitSha
|
|
118
|
-
});
|
|
119
|
-
throw new Error('Marketplace commit SHA not available. Please report this issue.');
|
|
120
|
-
}
|
|
121
|
-
return await installMarketplacePlugins(context.source.contentRoot, marketplace, selectedPlugins, context.source.gitUrl, context.source.gitRef, commitSha, options, cwd);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Run bulk installation for multiple packages
|
|
125
|
-
*/
|
|
126
|
-
async function runBulkInstall(contexts) {
|
|
127
|
-
if (contexts.length === 0) {
|
|
128
|
-
console.log('⚠️ No packages found in openpackage.yml');
|
|
129
|
-
console.log('\n💡 Tips:');
|
|
130
|
-
console.log(' • Add packages to the "packages" array in openpackage.yml');
|
|
131
|
-
console.log(' • Add development packages to the "dev-packages" array');
|
|
132
|
-
console.log(' • Use "opkg install <package-name>" to install a specific package');
|
|
133
|
-
return { success: true, data: { installed: 0, skipped: 0 } };
|
|
134
|
-
}
|
|
135
|
-
console.log(`✓ Installing ${contexts.length} package${contexts.length === 1 ? '' : 's'} from openpackage.yml`);
|
|
136
|
-
let totalInstalled = 0;
|
|
137
|
-
let totalSkipped = 0;
|
|
138
|
-
const results = [];
|
|
139
|
-
for (const ctx of contexts) {
|
|
140
|
-
try {
|
|
141
|
-
const result = await runUnifiedInstallPipeline(ctx);
|
|
142
|
-
if (result.success) {
|
|
143
|
-
totalInstalled++;
|
|
144
|
-
results.push({ name: ctx.source.packageName, success: true });
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
totalSkipped++;
|
|
148
|
-
results.push({ name: ctx.source.packageName, success: false, error: result.error });
|
|
149
|
-
console.log(`❌ ${ctx.source.packageName}: ${result.error}`);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
totalSkipped++;
|
|
154
|
-
results.push({ name: ctx.source.packageName, success: false, error: String(error) });
|
|
155
|
-
console.log(`❌ ${ctx.source.packageName}: ${error}`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// Display summary
|
|
159
|
-
console.log(`✓ Installation complete: ${totalInstalled} installed${totalSkipped > 0 ? `, ${totalSkipped} failed` : ''}`);
|
|
160
|
-
const allSuccessful = totalSkipped === 0;
|
|
161
|
-
return {
|
|
162
|
-
success: allSuccessful,
|
|
163
|
-
data: { installed: totalInstalled, skipped: totalSkipped, results },
|
|
164
|
-
error: allSuccessful ? undefined : `${totalSkipped} packages failed to install`
|
|
165
|
-
};
|
|
166
|
-
}
|
|
2
|
+
import { createOrchestrator } from '../core/install/orchestrator/index.js';
|
|
3
|
+
import { normalizeInstallOptions } from '../core/install/preprocessing/index.js';
|
|
167
4
|
/**
|
|
168
5
|
* Setup install command
|
|
169
6
|
*/
|
|
@@ -177,31 +14,23 @@ export function setupInstallCommand(program) {
|
|
|
177
14
|
.option('--dry-run', 'preview changes without applying them')
|
|
178
15
|
.option('--force', 'overwrite existing files')
|
|
179
16
|
.option('--conflicts <strategy>', 'conflict handling strategy: keep-both, overwrite, skip, or ask')
|
|
180
|
-
.option('--dev', 'add package to dev-
|
|
17
|
+
.option('--dev', 'add package to dev-dependencies instead of dependencies')
|
|
181
18
|
.option('--platforms <platforms...>', 'prepare specific platforms (e.g., cursor claudecode opencode)')
|
|
182
19
|
.option('--remote', 'pull and install from remote registry, ignoring local versions')
|
|
183
20
|
.option('--local', 'resolve and install using only local registry versions, skipping remote metadata and pulls')
|
|
184
21
|
.option('--profile <profile>', 'profile to use for authentication')
|
|
185
22
|
.option('--api-key <key>', 'API key for authentication (overrides profile)')
|
|
23
|
+
.option('--plugins <names...>', 'install specific plugins from marketplace (bypasses interactive selection)')
|
|
24
|
+
.option('--agents <names...>', 'install specific agents by name (matches frontmatter name or filename)')
|
|
25
|
+
.option('--skills <names...>', 'install specific skills by name (matches SKILL.md frontmatter name or directory name)')
|
|
186
26
|
.action(withErrorHandling(async (packageName, options) => {
|
|
187
|
-
|
|
188
|
-
options
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
const allowedStrategies = [
|
|
195
|
-
'keep-both', 'overwrite', 'skip', 'ask'
|
|
196
|
-
];
|
|
197
|
-
if (!allowedStrategies.includes(normalizedStrategy)) {
|
|
198
|
-
throw new Error(`Invalid --conflicts value '${rawConflictStrategy}'. ` +
|
|
199
|
-
`Use one of: keep-both, overwrite, skip, ask.`);
|
|
200
|
-
}
|
|
201
|
-
options.conflictStrategy = normalizedStrategy;
|
|
202
|
-
}
|
|
203
|
-
// Execute install
|
|
204
|
-
const result = await installCommand(packageName, options);
|
|
27
|
+
const cwd = process.cwd();
|
|
28
|
+
// Normalize all options at CLI boundary
|
|
29
|
+
const normalizedOptions = normalizeInstallOptions(options);
|
|
30
|
+
// Create and execute orchestrator
|
|
31
|
+
const orchestrator = createOrchestrator();
|
|
32
|
+
const result = await orchestrator.execute(packageName, normalizedOptions, cwd);
|
|
33
|
+
// Handle result
|
|
205
34
|
if (!result.success) {
|
|
206
35
|
if (result.error === 'Package not found') {
|
|
207
36
|
return; // Already displayed message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CACP,gBAAgB,EAChB,qIAAqI;QACrI,kCAAkC,CACnC;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;SAC7C,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,CAAC;SAClG,MAAM,CAAC,OAAO,EAAE,yDAAyD,CAAC;SAC1E,MAAM,CAAC,4BAA4B,EAAE,+DAA+D,CAAC;SACrG,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,4FAA4F,CAAC;SAC/G,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,sBAAsB,EAAE,4EAA4E,CAAC;SAC5G,MAAM,CAAC,qBAAqB,EAAE,wEAAwE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,uFAAuF,CAAC;SACtH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAC7B,WAA+B,EAC/B,OAIC,EACD,EAAE;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,wCAAwC;QACxC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE3D,kCAAkC;QAClC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAE/E,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACzC,OAAO,CAAC,4BAA4B;YACtC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,90 +1,103 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { withErrorHandling, ValidationError } from '../utils/errors.js';
|
|
2
|
+
import { runListPipeline } from '../core/list/list-pipeline.js';
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
if
|
|
25
|
-
|
|
26
|
-
|
|
4
|
+
import { parsePackageYml } from '../utils/package-yml.js';
|
|
5
|
+
import { getLocalPackageYmlPath } from '../utils/paths.js';
|
|
6
|
+
// ANSI escape codes for styling
|
|
7
|
+
const DIM = '\x1b[2m';
|
|
8
|
+
const RESET = '\x1b[0m';
|
|
9
|
+
function dim(text) {
|
|
10
|
+
return `${DIM}${text}${RESET}`;
|
|
11
|
+
}
|
|
12
|
+
function printTreeView(workspaceName, workspaceVersion, packages, cwd) {
|
|
13
|
+
// Omit version if it's 0.0.0 (unversioned)
|
|
14
|
+
const version = workspaceVersion && workspaceVersion !== '0.0.0' ? `@${workspaceVersion}` : '';
|
|
15
|
+
console.log(`${workspaceName}${version} ${cwd}`);
|
|
16
|
+
if (packages.length === 0) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
packages.forEach((pkg, index) => {
|
|
20
|
+
const isLast = index === packages.length - 1;
|
|
21
|
+
const treeChar = isLast ? '└──' : '├──';
|
|
22
|
+
// Omit version if it's 0.0.0 (unversioned)
|
|
23
|
+
const pkgVersion = pkg.version && pkg.version !== '0.0.0' ? `@${pkg.version}` : '';
|
|
24
|
+
// Add dimmed status indicator if not synced
|
|
25
|
+
let statusSuffix = '';
|
|
26
|
+
if (pkg.state === 'partial') {
|
|
27
|
+
statusSuffix = dim(` (partial ${pkg.existingFiles}/${pkg.totalFiles})`);
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
version: formatVersionDisplay(entry.version)
|
|
31
|
-
}));
|
|
32
|
-
if (filteredEntries.length === 0) {
|
|
33
|
-
if (options.packageName) {
|
|
34
|
-
console.log(`Package not found: ${options.packageName}`);
|
|
35
|
-
}
|
|
36
|
-
else if (options.filter) {
|
|
37
|
-
console.log(`No packages found matching filter: ${options.filter}`);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
console.log('No packages found. Use "opkg new <package-name>" to create your first package.');
|
|
41
|
-
}
|
|
42
|
-
return { success: true, data: [] };
|
|
29
|
+
else if (pkg.state === 'missing') {
|
|
30
|
+
statusSuffix = dim(' (missing)');
|
|
43
31
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
console.log(`${treeChar} ${pkg.name}${pkgVersion}${statusSuffix}`);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function printDetailedView(pkg) {
|
|
36
|
+
// Omit version if it's 0.0.0 (unversioned)
|
|
37
|
+
const version = pkg.version && pkg.version !== '0.0.0' ? `@${pkg.version}` : '';
|
|
38
|
+
console.log(`${pkg.name}${version}`);
|
|
39
|
+
// Status line
|
|
40
|
+
if (pkg.state === 'partial') {
|
|
41
|
+
console.log(`Status: ${pkg.state} (${pkg.existingFiles}/${pkg.totalFiles} files)`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log(`Status: ${pkg.state}`);
|
|
45
|
+
}
|
|
46
|
+
console.log(`Source: ${pkg.path}`);
|
|
47
|
+
// Show files or error
|
|
48
|
+
if (pkg.state === 'missing') {
|
|
49
|
+
console.log('Error: Source directory not found');
|
|
50
|
+
}
|
|
51
|
+
else if (pkg.fileList && pkg.fileList.length > 0) {
|
|
52
|
+
console.log(`Files (${pkg.fileList.length}):`);
|
|
53
|
+
for (const file of pkg.fileList) {
|
|
54
|
+
console.log(` ${file.source} → ${file.target}`);
|
|
47
55
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
title = options.all ? 'Local packages (all versions):' : 'Local packages (latest versions):';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function listCommand(packageName) {
|
|
59
|
+
const cwd = process.cwd();
|
|
60
|
+
logger.info(`Listing packages for directory: ${cwd}`);
|
|
61
|
+
try {
|
|
62
|
+
const result = await runListPipeline(packageName);
|
|
63
|
+
const packages = result.data?.packages ?? [];
|
|
64
|
+
// If specific package requested, show detailed view
|
|
65
|
+
if (packageName) {
|
|
66
|
+
if (packages.length === 0) {
|
|
67
|
+
throw new ValidationError(`Package '${packageName}' not found in workspace index`);
|
|
61
68
|
}
|
|
62
|
-
|
|
69
|
+
printDetailedView(packages[0]);
|
|
70
|
+
return { success: true, data: { packages } };
|
|
71
|
+
}
|
|
72
|
+
// Otherwise show tree view
|
|
73
|
+
const manifestPath = getLocalPackageYmlPath(cwd);
|
|
74
|
+
let workspaceName = 'Unnamed';
|
|
75
|
+
let workspaceVersion;
|
|
76
|
+
try {
|
|
77
|
+
const manifest = await parsePackageYml(manifestPath);
|
|
78
|
+
workspaceName = manifest.name || 'Unnamed';
|
|
79
|
+
workspaceVersion = manifest.version;
|
|
63
80
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
81
|
+
catch (error) {
|
|
82
|
+
logger.warn(`Failed to read workspace manifest: ${error}`);
|
|
83
|
+
}
|
|
84
|
+
printTreeView(workspaceName, workspaceVersion, packages, cwd);
|
|
85
|
+
return { success: true, data: { packages } };
|
|
68
86
|
}
|
|
69
87
|
catch (error) {
|
|
70
|
-
|
|
71
|
-
|
|
88
|
+
if (error instanceof ValidationError) {
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
throw error;
|
|
72
92
|
}
|
|
73
93
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Setup the list command
|
|
76
|
-
*/
|
|
77
94
|
export function setupListCommand(program) {
|
|
78
95
|
program
|
|
79
|
-
.command('list
|
|
80
|
-
.
|
|
81
|
-
.
|
|
82
|
-
.
|
|
83
|
-
|
|
84
|
-
.option('--all', 'show all versions (default shows only latest)')
|
|
85
|
-
.action(withErrorHandling(async (packageName, options) => {
|
|
86
|
-
options.packageName = packageName;
|
|
87
|
-
await listPackagesCommand(options);
|
|
96
|
+
.command('list')
|
|
97
|
+
.description('Show installed packages and files')
|
|
98
|
+
.argument('[package]', 'Optional package name to show installed per package')
|
|
99
|
+
.action(withErrorHandling(async (packageName) => {
|
|
100
|
+
await listCommand(packageName);
|
|
88
101
|
}));
|
|
89
102
|
}
|
|
90
103
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { withErrorHandling } from '../utils/errors.js';
|
|
2
|
+
import { runPublishPipeline } from '../core/publish/publish-pipeline.js';
|
|
3
|
+
export function setupPublishCommand(program) {
|
|
4
|
+
program
|
|
5
|
+
.command('publish')
|
|
6
|
+
.description('Publish package from current directory to remote registry')
|
|
7
|
+
.option('--profile <profile>', 'profile to use for authentication')
|
|
8
|
+
.option('--api-key <key>', 'API key for authentication (overrides profile)')
|
|
9
|
+
.action(withErrorHandling(async (options) => {
|
|
10
|
+
const result = await runPublishPipeline(options);
|
|
11
|
+
if (!result.success) {
|
|
12
|
+
throw new Error(result.error || 'Publish operation failed');
|
|
13
|
+
}
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|