opkg 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -186
- package/assets/openpackage_ascii_dark.png +0 -0
- package/assets/openpackage_ascii_light.png +0 -0
- package/dist/commands/add.js +34 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/apply.js +16 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/delete.js +1 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/install.js +177 -8
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/new.js +125 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pack.js +7 -13
- package/dist/commands/pack.js.map +1 -1
- package/dist/commands/pull.js +1 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.js +1 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/remove.js +63 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/save.js +11 -17
- package/dist/commands/save.js.map +1 -1
- package/dist/commands/set.js +33 -0
- package/dist/commands/set.js.map +1 -0
- package/dist/commands/show.js +16 -94
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/status.js +26 -701
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.js +14 -427
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/constants/index.js +72 -16
- package/dist/constants/index.js.map +1 -1
- package/dist/core/add/add-conflict-handler.js +1 -8
- package/dist/core/add/add-conflict-handler.js.map +1 -1
- package/dist/core/add/add-pipeline.js +12 -10
- package/dist/core/add/add-pipeline.js.map +1 -1
- package/dist/core/add/add-to-source-pipeline.js +123 -0
- package/dist/core/add/add-to-source-pipeline.js.map +1 -0
- package/dist/core/add/package-index-updater.js +77 -78
- package/dist/core/add/package-index-updater.js.map +1 -1
- package/dist/core/add/platform-path-transformer.js +6 -4
- package/dist/core/add/platform-path-transformer.js.map +1 -1
- package/dist/core/add/source-collector.js +2 -3
- package/dist/core/add/source-collector.js.map +1 -1
- package/dist/core/apply/apply-pipeline.js +110 -0
- package/dist/core/apply/apply-pipeline.js.map +1 -0
- package/dist/core/dependency-resolver.js +263 -21
- package/dist/core/dependency-resolver.js.map +1 -1
- package/dist/core/discovery/file-discovery.js +1 -2
- package/dist/core/discovery/file-discovery.js.map +1 -1
- package/dist/core/discovery/platform-files-discovery.js +33 -18
- package/dist/core/discovery/platform-files-discovery.js.map +1 -1
- package/dist/core/flows/flow-executor.js +974 -0
- package/dist/core/flows/flow-executor.js.map +1 -0
- package/dist/core/flows/flow-inverter.js +442 -0
- package/dist/core/flows/flow-inverter.js.map +1 -0
- package/dist/core/flows/flow-key-extractor.js +101 -0
- package/dist/core/flows/flow-key-extractor.js.map +1 -0
- package/dist/core/flows/flow-key-mapper.js +382 -0
- package/dist/core/flows/flow-key-mapper.js.map +1 -0
- package/dist/core/flows/flow-transforms.js +632 -0
- package/dist/core/flows/flow-transforms.js.map +1 -0
- package/dist/core/flows/map-pipeline/context.js +73 -0
- package/dist/core/flows/map-pipeline/context.js.map +1 -0
- package/dist/core/flows/map-pipeline/index.js +156 -0
- package/dist/core/flows/map-pipeline/index.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/copy.js +104 -0
- package/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/rename.js +102 -0
- package/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/set.js +50 -0
- package/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/switch.js +79 -0
- package/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/transform.js +543 -0
- package/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/unset.js +65 -0
- package/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
- package/dist/core/flows/map-pipeline/types.js +8 -0
- package/dist/core/flows/map-pipeline/types.js.map +1 -0
- package/dist/core/flows/map-pipeline/utils.js +278 -0
- package/dist/core/flows/map-pipeline/utils.js.map +1 -0
- package/dist/core/flows/platform-converter.js +328 -0
- package/dist/core/flows/platform-converter.js.map +1 -0
- package/dist/core/flows/source-resolver.js +192 -0
- package/dist/core/flows/source-resolver.js.map +1 -0
- package/dist/core/flows/toml-domain-transforms.js +23 -0
- package/dist/core/flows/toml-domain-transforms.js.map +1 -0
- package/dist/core/install/bulk-install-pipeline.js +68 -7
- package/dist/core/install/bulk-install-pipeline.js.map +1 -1
- package/dist/core/install/canonical-plan.js +3 -3
- package/dist/core/install/canonical-plan.js.map +1 -1
- package/dist/core/install/dry-run.js +3 -3
- package/dist/core/install/dry-run.js.map +1 -1
- package/dist/core/install/flow-based-installer.js +1158 -0
- package/dist/core/install/flow-based-installer.js.map +1 -0
- package/dist/core/install/flow-workspace-tracker.js +111 -0
- package/dist/core/install/flow-workspace-tracker.js.map +1 -0
- package/dist/core/install/format-detector.js +228 -0
- package/dist/core/install/format-detector.js.map +1 -0
- package/dist/core/install/git-package-loader.js +20 -0
- package/dist/core/install/git-package-loader.js.map +1 -0
- 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 +34 -14
- package/dist/core/install/install-flow.js.map +1 -1
- package/dist/core/install/install-pipeline.js +52 -17
- package/dist/core/install/install-pipeline.js.map +1 -1
- package/dist/core/install/install-reporting.js +26 -8
- package/dist/core/install/install-reporting.js.map +1 -1
- package/dist/core/install/local-source-resolution.js +103 -0
- package/dist/core/install/local-source-resolution.js.map +1 -0
- package/dist/core/install/marketplace-handler.js +221 -0
- package/dist/core/install/marketplace-handler.js.map +1 -0
- package/dist/core/install/path-install-pipeline.js +241 -0
- package/dist/core/install/path-install-pipeline.js.map +1 -0
- package/dist/core/install/path-package-loader.js +116 -0
- package/dist/core/install/path-package-loader.js.map +1 -0
- package/dist/core/install/plugin-detector.js +72 -0
- package/dist/core/install/plugin-detector.js.map +1 -0
- package/dist/core/install/plugin-to-universal-converter.js +218 -0
- package/dist/core/install/plugin-to-universal-converter.js.map +1 -0
- package/dist/core/install/plugin-transformer.js +191 -0
- package/dist/core/install/plugin-transformer.js.map +1 -0
- package/dist/core/install/version-selection.js +1 -1
- package/dist/core/install/version-selection.js.map +1 -1
- package/dist/core/openpackage.js +40 -22
- package/dist/core/openpackage.js.map +1 -1
- package/dist/core/pack/pack-output.js +62 -0
- package/dist/core/pack/pack-output.js.map +1 -0
- package/dist/core/pack/pack-pipeline.js +186 -0
- package/dist/core/pack/pack-pipeline.js.map +1 -0
- package/dist/core/package-context.js +45 -70
- package/dist/core/package-context.js.map +1 -1
- package/dist/core/package-creation.js +203 -0
- package/dist/core/package-creation.js.map +1 -0
- package/dist/core/package.js +20 -6
- package/dist/core/package.js.map +1 -1
- package/dist/core/platforms.js +665 -209
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/push/push-context.js +1 -1
- package/dist/core/push/push-context.js.map +1 -1
- package/dist/core/push/push-upload.js +2 -2
- package/dist/core/push/push-upload.js.map +1 -1
- package/dist/core/registry.js +6 -6
- package/dist/core/registry.js.map +1 -1
- package/dist/core/remote-pull.js +2 -2
- package/dist/core/remote-pull.js.map +1 -1
- package/dist/core/remove/removal-collector.js +52 -0
- package/dist/core/remove/removal-collector.js.map +1 -0
- package/dist/core/remove/removal-confirmation.js +39 -0
- package/dist/core/remove/removal-confirmation.js.map +1 -0
- package/dist/core/remove/remove-from-source-pipeline.js +173 -0
- package/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
- package/dist/core/save/constants.js +3 -3
- package/dist/core/save/constants.js.map +1 -1
- package/dist/core/save/flow-based-saver.js +270 -0
- package/dist/core/save/flow-based-saver.js.map +1 -0
- package/dist/core/save/name-resolution.js +1 -1
- package/dist/core/save/name-resolution.js.map +1 -1
- package/dist/core/save/package-yml-generator.js +4 -5
- package/dist/core/save/package-yml-generator.js.map +1 -1
- package/dist/core/save/save-candidate-builder.js +215 -0
- package/dist/core/save/save-candidate-builder.js.map +1 -0
- package/dist/core/save/save-candidate-loader.js +12 -11
- package/dist/core/save/save-candidate-loader.js.map +1 -1
- package/dist/core/save/save-conflict-analyzer.js +150 -0
- package/dist/core/save/save-conflict-analyzer.js.map +1 -0
- package/dist/core/save/save-conflict-resolution.js +28 -14
- package/dist/core/save/save-conflict-resolution.js.map +1 -1
- package/dist/core/save/save-conflict-resolver.js +31 -275
- package/dist/core/save/save-conflict-resolver.js.map +1 -1
- package/dist/core/save/save-group-builder.js +52 -0
- package/dist/core/save/save-group-builder.js.map +1 -0
- package/dist/core/save/save-interactive-resolver.js +190 -0
- package/dist/core/save/save-interactive-resolver.js.map +1 -0
- package/dist/core/save/save-pipeline.js +58 -34
- package/dist/core/save/save-pipeline.js.map +1 -1
- package/dist/core/save/save-platform-handler.js +53 -0
- package/dist/core/save/save-platform-handler.js.map +1 -0
- package/dist/core/save/save-resolution-executor.js +145 -0
- package/dist/core/save/save-resolution-executor.js.map +1 -0
- package/dist/core/save/save-result-reporter.js +167 -0
- package/dist/core/save/save-result-reporter.js.map +1 -0
- package/dist/core/save/save-to-source-pipeline.js +154 -0
- package/dist/core/save/save-to-source-pipeline.js.map +1 -0
- package/dist/core/save/save-versioning.js +4 -4
- package/dist/core/save/save-versioning.js.map +1 -1
- package/dist/core/save/save-write-coordinator.js +204 -0
- package/dist/core/save/save-write-coordinator.js.map +1 -0
- package/dist/core/save/save-yml-resolution.js +28 -216
- package/dist/core/save/save-yml-resolution.js.map +1 -1
- package/dist/core/save/workspace-rename.js +7 -8
- package/dist/core/save/workspace-rename.js.map +1 -1
- package/dist/core/set/set-output.js +72 -0
- package/dist/core/set/set-output.js.map +1 -0
- package/dist/core/set/set-pipeline.js +361 -0
- package/dist/core/set/set-pipeline.js.map +1 -0
- package/dist/core/set/set-types.js +5 -0
- package/dist/core/set/set-types.js.map +1 -0
- package/dist/core/show/package-resolver.js +257 -0
- package/dist/core/show/package-resolver.js.map +1 -0
- package/dist/core/show/scope-discovery.js +165 -0
- package/dist/core/show/scope-discovery.js.map +1 -0
- package/dist/core/show/show-output.js +168 -0
- package/dist/core/show/show-output.js.map +1 -0
- package/dist/core/show/show-pipeline.js +113 -0
- package/dist/core/show/show-pipeline.js.map +1 -0
- package/dist/core/show/show-types.js +5 -0
- package/dist/core/show/show-types.js.map +1 -0
- package/dist/core/source-resolution/dependency-graph.js +104 -0
- package/dist/core/source-resolution/dependency-graph.js.map +1 -0
- package/dist/core/source-resolution/resolve-mutable-source.js +109 -0
- package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-package-source.js +29 -0
- package/dist/core/source-resolution/resolve-package-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-registry-version.js +35 -0
- package/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
- package/dist/core/source-resolution/types.js.map +1 -0
- package/dist/core/status/status-file-discovery.js +23 -12
- package/dist/core/status/status-file-discovery.js.map +1 -1
- package/dist/core/status/status-pipeline.js +134 -0
- package/dist/core/status/status-pipeline.js.map +1 -0
- package/dist/core/sync/platform-sync-summary.js +27 -0
- package/dist/core/sync/platform-sync-summary.js.map +1 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
- package/dist/core/uninstall/uninstall-file-discovery.js +11 -6
- package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
- package/dist/core/uninstall/uninstall-pipeline.js +141 -0
- package/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
- package/dist/core/universal-patterns.js +64 -0
- package/dist/core/universal-patterns.js.map +1 -0
- package/dist/index.js +99 -6
- package/dist/index.js.map +1 -1
- package/dist/types/flows.js +8 -0
- package/dist/types/flows.js.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/platform-flows.js +8 -0
- package/dist/types/platform-flows.js.map +1 -0
- package/dist/types/workspace-index.js +6 -0
- package/dist/types/workspace-index.js.map +1 -0
- package/dist/utils/custom-path-resolution.js +160 -0
- package/dist/utils/custom-path-resolution.js.map +1 -0
- package/dist/utils/dependency-coverage.js +1 -1
- package/dist/utils/dependency-coverage.js.map +1 -1
- package/dist/utils/file-processing.js +1 -1
- package/dist/utils/flow-index-installer.js +209 -0
- package/dist/utils/flow-index-installer.js.map +1 -0
- package/dist/utils/formatters.js +47 -1
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/fs.js +17 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-clone-registry.js +88 -0
- package/dist/utils/git-clone-registry.js.map +1 -0
- package/dist/utils/git-clone.js +69 -0
- package/dist/utils/git-clone.js.map +1 -0
- package/dist/utils/git-spec.js +96 -0
- package/dist/utils/git-spec.js.map +1 -0
- package/dist/utils/http-client.js +7 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/index-based-installer.js +356 -163
- package/dist/utils/index-based-installer.js.map +1 -1
- package/dist/utils/install-conflict-handler.js +2 -2
- package/dist/utils/install-conflict-handler.js.map +1 -1
- package/dist/utils/install-file-discovery.js +18 -13
- package/dist/utils/install-file-discovery.js.map +1 -1
- package/dist/utils/install-helpers.js +43 -20
- package/dist/utils/install-helpers.js.map +1 -1
- package/dist/utils/jsonc.js +23 -1
- package/dist/utils/jsonc.js.map +1 -1
- package/dist/utils/manifest-paths.js +1 -1
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/markdown-frontmatter.js +46 -0
- package/dist/utils/markdown-frontmatter.js.map +1 -1
- package/dist/utils/package-copy.js +5 -103
- package/dist/utils/package-copy.js.map +1 -1
- package/dist/utils/package-filters.js +9 -105
- package/dist/utils/package-filters.js.map +1 -1
- package/dist/utils/package-index-yml.js +27 -6
- package/dist/utils/package-index-yml.js.map +1 -1
- package/dist/utils/package-input.js +98 -0
- package/dist/utils/package-input.js.map +1 -0
- package/dist/utils/package-management.js +80 -28
- package/dist/utils/package-management.js.map +1 -1
- package/dist/utils/package-name-resolution.js +327 -0
- package/dist/utils/package-name-resolution.js.map +1 -0
- package/dist/utils/package-name.js +18 -16
- package/dist/utils/package-name.js.map +1 -1
- package/dist/utils/package-versioning.js +2 -33
- package/dist/utils/package-versioning.js.map +1 -1
- package/dist/utils/package-yml.js +19 -28
- package/dist/utils/package-yml.js.map +1 -1
- package/dist/utils/path-resolution.js +102 -0
- package/dist/utils/path-resolution.js.map +1 -0
- package/dist/utils/paths.js +6 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-file.js +36 -24
- package/dist/utils/platform-file.js.map +1 -1
- package/dist/utils/platform-mapper.js +222 -68
- package/dist/utils/platform-mapper.js.map +1 -1
- package/dist/utils/platform-root-files.js +44 -0
- package/dist/utils/platform-root-files.js.map +1 -0
- package/dist/utils/platform-utils.js +35 -54
- package/dist/utils/platform-utils.js.map +1 -1
- package/dist/utils/platform-yaml-merge.js +20 -140
- package/dist/utils/platform-yaml-merge.js.map +1 -1
- package/dist/utils/prompts.js +92 -7
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/registry-entry-filter.js +50 -27
- package/dist/utils/registry-entry-filter.js.map +1 -1
- package/dist/utils/registry-paths.js +5 -4
- package/dist/utils/registry-paths.js.map +1 -1
- package/dist/utils/scope-resolution.js +156 -0
- package/dist/utils/scope-resolution.js.map +1 -0
- package/dist/utils/source-mutability.js +15 -0
- package/dist/utils/source-mutability.js.map +1 -0
- package/dist/utils/tarball.js +29 -4
- package/dist/utils/tarball.js.map +1 -1
- package/dist/utils/version-ranges.js +1 -32
- package/dist/utils/version-ranges.js.map +1 -1
- package/dist/utils/workspace-index-helpers.js +28 -0
- package/dist/utils/workspace-index-helpers.js.map +1 -0
- package/dist/utils/workspace-index-ownership.js +100 -0
- package/dist/utils/workspace-index-ownership.js.map +1 -0
- package/dist/utils/workspace-index-yml.js +173 -0
- package/dist/utils/workspace-index-yml.js.map +1 -0
- package/examples/custom-subdirs-platform.jsonc +157 -0
- package/package.json +7 -2
- package/platforms.jsonc +531 -84
- package/schemas/map-pipeline-v1.json +256 -0
- package/schemas/platforms-v1.json +400 -0
- package/specs/README.md +88 -0
- package/specs/add/README.md +166 -0
- package/specs/agents-claude.md +570 -0
- package/specs/agents-opencode.md +622 -0
- package/specs/apply/README.md +21 -0
- package/specs/apply/apply-behavior.md +58 -0
- package/specs/apply/apply-command.md +51 -0
- package/specs/apply/conflicts.md +41 -0
- package/specs/apply/index-effects.md +81 -0
- package/specs/architecture.md +107 -0
- package/specs/auth/README.md +17 -0
- package/specs/auth/auth-http-contract.md +25 -0
- package/specs/auth/cli/credentials.md +39 -0
- package/specs/auth/cli/login.md +32 -0
- package/specs/auth/cli/logout.md +16 -0
- package/specs/claude-mcp.md +1065 -0
- package/specs/claude-plugins-marketplace.md +363 -0
- package/specs/claude-plugins.md +413 -0
- package/specs/cli-options.md +52 -0
- package/specs/codex-mcp.md +114 -0
- package/specs/commands-overview.md +175 -0
- package/specs/directory-layout.md +95 -0
- package/specs/install/README.md +12 -4
- package/specs/install/git-sources.md +230 -0
- package/specs/install/install-behavior.md +483 -73
- package/specs/install/package-yml-canonical.md +67 -35
- package/specs/install/version-resolution.md +69 -115
- package/specs/new/README.md +769 -0
- package/specs/new/SUMMARY.md +310 -0
- package/specs/new/scope-behavior.md +793 -0
- package/specs/pack/README.md +77 -0
- package/specs/pack/package-name-resolution.md +330 -0
- package/specs/package/README.md +18 -17
- package/specs/package/nested-packages-and-parent-packages.md +32 -31
- package/specs/package/package-index-yml.md +95 -101
- package/specs/package/package-root-layout.md +64 -46
- package/specs/package/registry-payload-and-copy.md +50 -44
- package/specs/package/universal-content.md +33 -56
- package/specs/package-sources.md +248 -0
- package/specs/platforms/README.md +52 -0
- package/specs/platforms/configuration.md +571 -0
- package/specs/platforms/detection.md +552 -0
- package/specs/platforms/directory-layout.md +599 -0
- package/specs/platforms/examples.md +1146 -0
- package/specs/platforms/flow-reference.md +1240 -0
- package/specs/platforms/flows.md +1488 -0
- package/specs/platforms/map-pipeline.md +801 -0
- package/specs/platforms/overview.md +349 -0
- package/specs/platforms/specification.md +700 -0
- package/specs/platforms/troubleshooting.md +697 -0
- package/specs/platforms/universal-converter.md +520 -0
- package/specs/push/README.md +1 -0
- package/specs/push/push-behavior.md +11 -3
- package/specs/push/push-remote-upload.md +1 -1
- package/specs/push/push-scoping.md +1 -1
- package/specs/push/push-version-selection.md +1 -1
- package/specs/registry.md +111 -0
- package/specs/remove/README.md +257 -0
- package/specs/save/README.md +21 -17
- package/specs/save/save-conflict-resolution.md +205 -83
- package/specs/save/save-file-discovery.md +6 -4
- package/specs/save/save-frontmatter-overrides.md +11 -15
- package/specs/save/save-modes-inputs.md +9 -39
- package/specs/save/save-naming-scoping.md +4 -4
- package/specs/save/save-package-detection.md +13 -13
- package/specs/save/save-registry-sync.md +16 -106
- package/specs/save/save-versioning.md +80 -0
- package/specs/scope-management.md +92 -0
- package/specs/set/README.md +520 -0
- package/specs/set/set-behavior.md +563 -0
- package/specs/show/README.md +483 -0
- package/specs/show/show-remote.md +494 -0
- package/specs/status/README.md +38 -0
- package/specs/uninstall/README.md +231 -0
- package/dist/commands/duplicate.js +0 -69
- package/dist/commands/duplicate.js.map +0 -1
- package/dist/commands/init.js +0 -117
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/prune.js +0 -357
- package/dist/commands/prune.js.map +0 -1
- package/dist/commands/tui.js +0 -61
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/install/index.js +0 -3
- package/dist/core/install/index.js.map +0 -1
- package/dist/core/push/push-single-file.js +0 -56
- package/dist/core/push/push-single-file.js.map +0 -1
- package/dist/core/save/package-detection.js +0 -147
- package/dist/core/save/package-detection.js.map +0 -1
- package/dist/core/save/save-single-file.js +0 -124
- package/dist/core/save/save-single-file.js.map +0 -1
- package/dist/core/token-store.js +0 -73
- package/dist/core/token-store.js.map +0 -1
- package/dist/tui/app.js +0 -95
- package/dist/tui/app.js.map +0 -1
- package/dist/tui/components/package-list.js +0 -73
- package/dist/tui/components/package-list.js.map +0 -1
- package/dist/tui/controller.js +0 -365
- package/dist/tui/controller.js.map +0 -1
- package/dist/tui/index.js +0 -12
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/services/file-index.js +0 -64
- package/dist/tui/services/file-index.js.map +0 -1
- package/dist/tui/services/packages.js +0 -18
- package/dist/tui/services/packages.js.map +0 -1
- package/dist/tui/services/save.js +0 -21
- package/dist/tui/services/save.js.map +0 -1
- package/dist/tui/state/app-state.js +0 -15
- package/dist/tui/state/app-state.js.map +0 -1
- package/dist/tui/state.js +0 -17
- package/dist/tui/state.js.map +0 -1
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/views/add-file-modal.js +0 -129
- package/dist/tui/views/add-file-modal.js.map +0 -1
- package/dist/tui/views/file-preview.js +0 -44
- package/dist/tui/views/file-preview.js.map +0 -1
- package/dist/tui/views/list-packages.js +0 -73
- package/dist/tui/views/list-packages.js.map +0 -1
- package/dist/tui/views/main-menu.js +0 -29
- package/dist/tui/views/main-menu.js.map +0 -1
- package/dist/tui/views/manage-view.js +0 -81
- package/dist/tui/views/manage-view.js.map +0 -1
- package/dist/tui/views/package-hub.js +0 -120
- package/dist/tui/views/package-hub.js.map +0 -1
- package/dist/tui/views/placeholder.js +0 -24
- package/dist/tui/views/placeholder.js.map +0 -1
- package/dist/utils/bun-bootstrap.js +0 -72
- package/dist/utils/bun-bootstrap.js.map +0 -1
- package/dist/utils/entity-id.js +0 -19
- package/dist/utils/entity-id.js.map +0 -1
- package/dist/utils/package-local-files.js +0 -5
- package/dist/utils/package-local-files.js.map +0 -1
- package/dist/utils/path-matching.js +0 -74
- package/dist/utils/path-matching.js.map +0 -1
- package/dist/utils/root-file-operations.js +0 -39
- package/dist/utils/root-file-operations.js.map +0 -1
- package/dist/utils/root-file-transformer.js +0 -27
- package/dist/utils/root-file-transformer.js.map +0 -1
- package/dist/utils/yaml-frontmatter.js +0 -25
- package/dist/utils/yaml-frontmatter.js.map +0 -1
- package/specs/auth/auth-device-flow.md +0 -70
- package/specs/login/login-device-flow.md +0 -70
- package/specs/platforms.md +0 -193
- package/specs/save-pack-versioning.md +0 -224
- package/specs/save-pack.md +0 -68
- /package/dist/{tui → core/source-resolution}/types.js +0 -0
package/specs/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
### OpenPackage CLI Specs
|
|
2
|
+
|
|
3
|
+
This directory contains the **canonical** implementation-guiding specifications for the OpenPackage CLI, with the primary architecture being the path-based model. The codebase reflects this (path-based source of truth, mutable vs. immutable sources, unified workspace index, directory-based local registry). Specifications are organized by topic, with top-level overview files providing cohesion.
|
|
4
|
+
|
|
5
|
+
#### Design Principles
|
|
6
|
+
|
|
7
|
+
- **Focused**: Each command serves one clear purpose, avoiding overload.
|
|
8
|
+
- **Surgical**: Strict separation of mutable development sources from immutable distribution snapshots, with enforcement via errors.
|
|
9
|
+
- **Simple**: Paths are the universal source of truth; a single unified index manages all tracking.
|
|
10
|
+
- **Reliable**: Built-in guards prevent common errors, like mutating published registry content.
|
|
11
|
+
|
|
12
|
+
For full philosophy, data flows, and layered model, see [Architecture](architecture.md).
|
|
13
|
+
|
|
14
|
+
#### Key Concepts
|
|
15
|
+
|
|
16
|
+
- **Path-Based Source of Truth**: All packages resolve to a filesystem path. Dependencies use explicit `path:` or infer from `version:` (registry) or `git:` (cloned path). Git sources support subdirectory navigation for monorepos and Claude Code plugins.
|
|
17
|
+
- **Mutable vs. Immutable Sources**:
|
|
18
|
+
- Mutable (e.g., local/global packages dirs): Support editing via `save`/`add`.
|
|
19
|
+
- Immutable (e.g., registry dirs): Read-only; `save`/`add` fail.
|
|
20
|
+
- **Unified Workspace Index**: `.openpackage/openpackage.index.yml` tracks packages, sources, versions, and file mappings across the workspace—no fragmented per-package files.
|
|
21
|
+
- **Directory-Based Local Registry**: `~/.openpackage/registry/<name>/<version>/` for simple, direct access without tarballs.
|
|
22
|
+
|
|
23
|
+
#### Command Flow Diagram
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Workspace ←──apply/install── Source/Registry (mutable or immutable)
|
|
27
|
+
Workspace ──save/add──────→ Source (mutable only; fails on registry)
|
|
28
|
+
Source ────pack───────────→ Registry (immutable snapshot)
|
|
29
|
+
Registry ──push/pull─────→ Remote Registry (future)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Detailed semantics in [Commands Overview](commands-overview.md) and command subdirs (e.g., [Save](save/), [Pack](pack/)).
|
|
33
|
+
|
|
34
|
+
#### Breaking Changes from Prior Versions
|
|
35
|
+
|
|
36
|
+
The architecture introduces breaking changes with no automated migration—re-initialize workspaces:
|
|
37
|
+
- Removed complex WIP versioning (now prereleases in registry), workspace hash tracking, per-package metadata directories, and tarball-based registry.
|
|
38
|
+
- Unified `openpackage.index.yml` replaces scattered index files.
|
|
39
|
+
- All registry storage is directory-based for inspectability and path compatibility.
|
|
40
|
+
- Path-based dependencies and mutability guards replace prior behaviors; re-run `opkg install` for workspaces. Use `opkg new` to create packages.
|
|
41
|
+
- No backward compatibility for removed features like staging mutations or link-only WIP layouts.
|
|
42
|
+
|
|
43
|
+
Consult git history (e.g., commit 9d23bf2) for prior version details. See [Architecture](architecture.md) for removed/retained metadata.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
#### Where to look
|
|
48
|
+
|
|
49
|
+
- **Architecture & Overviews**:
|
|
50
|
+
- High-level design, flows, philosophy: `architecture.md`
|
|
51
|
+
- Command semantics and matrix: `commands-overview.md`
|
|
52
|
+
- Directory structures (global/workspace): `directory-layout.md`
|
|
53
|
+
- **Core Concepts**:
|
|
54
|
+
- Package source types, resolution, mutability: `package-sources.md`
|
|
55
|
+
- Registry storage and operations: `registry.md`
|
|
56
|
+
- Scopes (workspace/global; deferred transitions): `scope-management.md`
|
|
57
|
+
- **Package Structure & Payload**: `package/`
|
|
58
|
+
- Copy rules to/from registry: `registry-payload-and-copy.md`
|
|
59
|
+
- Universal/root content mappings: `universal-content.md`
|
|
60
|
+
- Unified index schema: `package-index-yml.md`
|
|
61
|
+
- Package root layout: `package-root-layout.md`
|
|
62
|
+
- **Commands**:
|
|
63
|
+
- `new` (create packages): `new/`
|
|
64
|
+
- Scope behavior: `scope-behavior.md`
|
|
65
|
+
- `add` (new files to source): `add/`
|
|
66
|
+
- `apply`/`sync`: `apply/`
|
|
67
|
+
- `install` (from registry/git/plugins): `install/`
|
|
68
|
+
- Behavior/scenarios: `install-behavior.md` (includes Claude Code plugin support in §8)
|
|
69
|
+
- Git sources: `git-sources.md` (includes subdirectory syntax and plugin detection)
|
|
70
|
+
- `pack` (to registry): `pack/`
|
|
71
|
+
- `save` (edits to source; WIP versioning): `save/`
|
|
72
|
+
- Versioning details: `save-versioning.md`
|
|
73
|
+
- `set` (update manifest metadata): `set/`
|
|
74
|
+
- Behavior and validation: `set-behavior.md`
|
|
75
|
+
- `push`: `push/`
|
|
76
|
+
- `status`: `status/`
|
|
77
|
+
- `uninstall`: `uninstall/`
|
|
78
|
+
- **Other**:
|
|
79
|
+
- Auth: `auth/`
|
|
80
|
+
- Platforms: `platforms/` - Platform-specific transformations and flows
|
|
81
|
+
- Overview: `platforms/overview.md`
|
|
82
|
+
- Flows: `platforms/flows.md`
|
|
83
|
+
- Universal Converter: `platforms/universal-converter.md` - Cross-platform package conversion
|
|
84
|
+
- Map Pipeline: `platforms/map-pipeline.md`
|
|
85
|
+
- Configuration: `platforms/configuration.md`
|
|
86
|
+
- CLI flags/options: `cli-options.md`
|
|
87
|
+
|
|
88
|
+
---
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Add Command
|
|
2
|
+
|
|
3
|
+
`opkg add` copies new files from anywhere on the filesystem into a mutable package source. Unlike `save` (which syncs workspace edits based on index mappings), `add` operates independently of workspace installation state.
|
|
4
|
+
|
|
5
|
+
## Purpose & Direction
|
|
6
|
+
- **Filesystem → Package Source**: Copy new files from any location to a mutable package.
|
|
7
|
+
- **Independence**: Works with any mutable package (workspace or global), regardless of installation status.
|
|
8
|
+
- **Source-only operation**: Modifies package source only; workspace sync requires explicit `install` + `apply` or `--apply` flag.
|
|
9
|
+
- Complements `save` (edits) for initial/new content addition.
|
|
10
|
+
|
|
11
|
+
## Preconditions
|
|
12
|
+
- Target package must exist as a mutable source:
|
|
13
|
+
- Workspace packages: `./.openpackage/packages/<name>/`
|
|
14
|
+
- Global packages: `~/.openpackage/packages/<name>/`
|
|
15
|
+
- Registry packages are **immutable** and cannot be modified via `add`.
|
|
16
|
+
|
|
17
|
+
## Flow
|
|
18
|
+
1. **Resolve mutable source**:
|
|
19
|
+
- Search workspace packages, then global packages.
|
|
20
|
+
- Error if not found or resolves to immutable registry path.
|
|
21
|
+
- Does **not** require package to be in workspace index.
|
|
22
|
+
|
|
23
|
+
2. **Collect files** from input path(s).
|
|
24
|
+
|
|
25
|
+
3. **Map & copy**:
|
|
26
|
+
- Platform subdirs (e.g., `.cursor/rules/`) → universal (`rules/`).
|
|
27
|
+
- Platform root files (e.g., `CLAUDE.md`) → package root.
|
|
28
|
+
- Other paths → package `root/<relpath>` (prefix for install stripping).
|
|
29
|
+
|
|
30
|
+
4. **Index updates**:
|
|
31
|
+
- `add` does **not** update `openpackage.index.yml`.
|
|
32
|
+
- Index updates happen via `install` or `apply`.
|
|
33
|
+
|
|
34
|
+
5. **Optional --apply**:
|
|
35
|
+
- Triggers `apply` pipeline immediately after add.
|
|
36
|
+
- Requires package to be installed in current workspace.
|
|
37
|
+
- Updates workspace index via `apply`.
|
|
38
|
+
|
|
39
|
+
## Options
|
|
40
|
+
- `--apply`: Apply changes to workspace immediately (requires package installation in current workspace).
|
|
41
|
+
- `--platform-specific`: Save platform-specific variants for platform subdir inputs.
|
|
42
|
+
- Input: `opkg add <pkg> <path>`.
|
|
43
|
+
- Global flags: [CLI Options](../cli-options.md).
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
### Basic add (source-only)
|
|
48
|
+
```bash
|
|
49
|
+
# Add files to workspace package (no workspace sync)
|
|
50
|
+
opkg add my-pkg ./new-helpers/
|
|
51
|
+
|
|
52
|
+
# Add files to global package from any directory
|
|
53
|
+
cd ~/projects/other-repo
|
|
54
|
+
opkg add shared-utils ./config.yml
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Add with immediate apply
|
|
58
|
+
```bash
|
|
59
|
+
# Add and sync to workspace in one step
|
|
60
|
+
# (requires my-pkg to be installed in current workspace)
|
|
61
|
+
opkg add my-pkg .cursor/rules/example.md --apply
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Workflow: Add → Install → Apply
|
|
65
|
+
```bash
|
|
66
|
+
# 1. Add files to package source
|
|
67
|
+
opkg add my-pkg ./docs/guide.md
|
|
68
|
+
|
|
69
|
+
# 2. Install package to current workspace
|
|
70
|
+
opkg install my-pkg
|
|
71
|
+
|
|
72
|
+
# 3. Apply to sync changes to workspace platforms
|
|
73
|
+
opkg apply my-pkg
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Behavior Changes (v2)
|
|
77
|
+
|
|
78
|
+
### Previous behavior (v1)
|
|
79
|
+
- Required package to be installed in current workspace (checked workspace index).
|
|
80
|
+
- Automatically updated `openpackage.index.yml` after copying files.
|
|
81
|
+
- Tightly coupled to workspace state.
|
|
82
|
+
|
|
83
|
+
### Current behavior (v2)
|
|
84
|
+
- Works with any mutable package (workspace or global).
|
|
85
|
+
- Does **not** update workspace index (separation of concerns).
|
|
86
|
+
- Users explicitly control workspace sync via `install` + `apply` or `--apply` flag.
|
|
87
|
+
- Clearer mental model: `add` = modify source, `apply`/`install` = sync to workspace.
|
|
88
|
+
|
|
89
|
+
## Errors
|
|
90
|
+
|
|
91
|
+
### Package not found
|
|
92
|
+
```
|
|
93
|
+
Package 'my-pkg' not found in workspace or global packages.
|
|
94
|
+
Available locations:
|
|
95
|
+
- Workspace packages: ./.openpackage/packages/
|
|
96
|
+
- Global packages: ~/.openpackage/packages/
|
|
97
|
+
|
|
98
|
+
Registry packages are immutable and cannot be modified directly.
|
|
99
|
+
To edit a registry package:
|
|
100
|
+
1. Install it with a mutable source: opkg install my-pkg --path <local-path>
|
|
101
|
+
2. Or copy it to workspace: opkg pull my-pkg
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Immutable source (registry)
|
|
105
|
+
```
|
|
106
|
+
Package 'my-pkg' resolves to a registry path, which is immutable.
|
|
107
|
+
Registry packages cannot be modified via add command.
|
|
108
|
+
Path: ~/.openpackage/registry/my-pkg/1.0.0/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### --apply flag with uninstalled package
|
|
112
|
+
```
|
|
113
|
+
Files added to package source at: ~/.openpackage/packages/my-pkg/
|
|
114
|
+
|
|
115
|
+
However, --apply failed because package 'my-pkg' is not installed in this workspace.
|
|
116
|
+
|
|
117
|
+
To sync changes to your workspace:
|
|
118
|
+
1. Install the package: opkg install my-pkg
|
|
119
|
+
2. Apply the changes: opkg apply my-pkg
|
|
120
|
+
|
|
121
|
+
Or run 'opkg add' without --apply flag to skip workspace sync.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Copy conflicts
|
|
125
|
+
- Prompts user to resolve (overwrite/skip/rename).
|
|
126
|
+
- Use `--force` (if implemented) to auto-overwrite.
|
|
127
|
+
|
|
128
|
+
## Integration
|
|
129
|
+
|
|
130
|
+
### Relationship to other commands
|
|
131
|
+
- **`save`**: Syncs workspace → source based on index mappings (requires installation).
|
|
132
|
+
- **`add`**: Copies filesystem → source independently (no installation required).
|
|
133
|
+
- **`apply`**: Syncs source → workspace platforms + updates index.
|
|
134
|
+
- **`install`**: Materializes package to workspace + updates index.
|
|
135
|
+
- **`pack`**: Creates registry snapshot from source (no workspace interaction).
|
|
136
|
+
|
|
137
|
+
### Workflows
|
|
138
|
+
1. **Adding new content**:
|
|
139
|
+
```bash
|
|
140
|
+
opkg add pkg ./new-files/ # Add to source
|
|
141
|
+
opkg install pkg # Ensure installed
|
|
142
|
+
opkg apply pkg # Sync to workspace
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
2. **Quick add + sync**:
|
|
146
|
+
```bash
|
|
147
|
+
opkg add pkg ./file.md --apply # Add and sync (requires installation)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
3. **Editing existing content**:
|
|
151
|
+
```bash
|
|
152
|
+
# Edit files in workspace, then:
|
|
153
|
+
opkg save pkg # Uses index to sync changes back
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## See Also
|
|
157
|
+
- [Save](../save/) – Workspace → source sync for installed packages
|
|
158
|
+
- [Apply](../apply/) – Source → workspace platform sync
|
|
159
|
+
- [Install](../install/) – Package materialization and dependency resolution
|
|
160
|
+
- [Package Index](../package/package-index-yml.md) – Workspace installation state
|
|
161
|
+
- [Commands Overview](../commands-overview.md) – All command relationships
|
|
162
|
+
|
|
163
|
+
## Implementation
|
|
164
|
+
- Pipeline: `src/core/add/add-to-source-pipeline.ts`
|
|
165
|
+
- Source resolution: `src/core/source-resolution/resolve-mutable-source.ts`
|
|
166
|
+
- Command: `src/commands/add.ts`
|