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
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Remove Command
|
|
2
|
+
|
|
3
|
+
`opkg remove` (alias: `rm`) deletes files and directories from a mutable package source. Unlike `uninstall` (which removes packages from workspace), `remove` operates on package source content independently of installation state.
|
|
4
|
+
|
|
5
|
+
## Purpose & Direction
|
|
6
|
+
- **Package Source → Deletion**: Remove files from mutable package sources.
|
|
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 `apply` or `--apply` flag.
|
|
9
|
+
- Opposite of `add` (which copies files into package sources).
|
|
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 `remove`.
|
|
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 pattern:
|
|
24
|
+
- Single file: `commands/test.md`
|
|
25
|
+
- Directory: `commands/` (all files recursively)
|
|
26
|
+
- Resolves paths relative to package root.
|
|
27
|
+
|
|
28
|
+
3. **Confirm removal**:
|
|
29
|
+
- Display list of files to be removed (up to 20, then summarize).
|
|
30
|
+
- Prompt user for confirmation (unless `--force` or `--dry-run`).
|
|
31
|
+
- Allow cancellation.
|
|
32
|
+
|
|
33
|
+
4. **Remove files**:
|
|
34
|
+
- Delete matched files from package source.
|
|
35
|
+
- Clean up empty parent directories.
|
|
36
|
+
- Track removed files for reporting.
|
|
37
|
+
|
|
38
|
+
5. **Index updates**:
|
|
39
|
+
- `remove` does **not** update `openpackage.index.yml`.
|
|
40
|
+
- Index updates happen via `apply` (if package is installed).
|
|
41
|
+
|
|
42
|
+
6. **Optional --apply**:
|
|
43
|
+
- Triggers `apply` pipeline immediately after removal.
|
|
44
|
+
- Requires package to be installed in current workspace.
|
|
45
|
+
- Updates workspace index via `apply`.
|
|
46
|
+
|
|
47
|
+
## Options
|
|
48
|
+
- `--apply`: Apply changes to workspace immediately (requires package installation in current workspace).
|
|
49
|
+
- `--force`: Skip confirmation prompts.
|
|
50
|
+
- `--dry-run`: Preview what would be removed without actually deleting.
|
|
51
|
+
- Input: `opkg remove <pkg> <path>`.
|
|
52
|
+
- Global flags: [CLI Options](../cli-options.md).
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Basic remove (source-only)
|
|
57
|
+
```bash
|
|
58
|
+
# Remove single file from workspace package (no workspace sync)
|
|
59
|
+
opkg remove my-pkg commands/deprecated.md
|
|
60
|
+
# Or use the alias
|
|
61
|
+
opkg rm my-pkg commands/deprecated.md
|
|
62
|
+
|
|
63
|
+
# Remove directory from global package
|
|
64
|
+
opkg remove shared-utils rules/old/
|
|
65
|
+
|
|
66
|
+
# Remove from any directory (works with global packages)
|
|
67
|
+
cd ~/projects/other-repo
|
|
68
|
+
opkg remove global-pkg agents/legacy.md
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Remove with immediate apply
|
|
72
|
+
```bash
|
|
73
|
+
# Remove and sync to workspace in one step
|
|
74
|
+
# (requires my-pkg to be installed in current workspace)
|
|
75
|
+
opkg remove my-pkg commands/old.md --apply
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Preview before removing
|
|
79
|
+
```bash
|
|
80
|
+
# See what would be removed without actually deleting
|
|
81
|
+
opkg remove my-pkg commands/ --dry-run
|
|
82
|
+
|
|
83
|
+
# Force removal without confirmation
|
|
84
|
+
opkg remove my-pkg agents/deprecated.md --force
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Workflow: Remove → Apply
|
|
88
|
+
```bash
|
|
89
|
+
# 1. Remove files from package source
|
|
90
|
+
opkg remove my-pkg commands/deprecated/
|
|
91
|
+
|
|
92
|
+
# 2. If package is installed, apply to sync deletions
|
|
93
|
+
opkg apply my-pkg
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Behavior Details
|
|
97
|
+
|
|
98
|
+
### Path Resolution
|
|
99
|
+
- Paths are relative to package root
|
|
100
|
+
- Supports both files and directories
|
|
101
|
+
- Directory paths can include trailing slash (optional)
|
|
102
|
+
- Examples:
|
|
103
|
+
- `commands/test.md` - single file
|
|
104
|
+
- `commands/` or `commands` - entire directory
|
|
105
|
+
- `root/tools/helper.sh` - copy-to-root content
|
|
106
|
+
|
|
107
|
+
### Empty Directory Cleanup
|
|
108
|
+
After removing files, `remove` automatically cleans up empty parent directories:
|
|
109
|
+
```
|
|
110
|
+
Before: pkg/deep/nested/dir/file.md
|
|
111
|
+
After: (entire deep/ directory removed if it becomes empty)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
This prevents leaving behind empty directory structures in the package source.
|
|
115
|
+
|
|
116
|
+
### Confirmation Prompt
|
|
117
|
+
Unless `--force` or `--dry-run` is specified, users are prompted:
|
|
118
|
+
```
|
|
119
|
+
The following 3 files will be removed from 'my-pkg':
|
|
120
|
+
|
|
121
|
+
- commands/test1.md
|
|
122
|
+
- commands/test2.md
|
|
123
|
+
- rules/auth.md
|
|
124
|
+
|
|
125
|
+
Do you want to proceed with the removal? (y/N)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
For large removals (>20 files), the display is summarized:
|
|
129
|
+
```
|
|
130
|
+
The following 45 files will be removed from 'my-pkg':
|
|
131
|
+
|
|
132
|
+
- commands/test1.md
|
|
133
|
+
- commands/test2.md
|
|
134
|
+
... (first 20 shown)
|
|
135
|
+
... and 25 more files
|
|
136
|
+
|
|
137
|
+
Do you want to proceed with the removal? (y/N)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Dry-Run Mode
|
|
141
|
+
With `--dry-run`:
|
|
142
|
+
- No files are actually deleted
|
|
143
|
+
- Shows preview of what would be removed
|
|
144
|
+
- Useful for verifying before executing
|
|
145
|
+
- No confirmation prompt needed
|
|
146
|
+
|
|
147
|
+
## Errors
|
|
148
|
+
|
|
149
|
+
### Package not found
|
|
150
|
+
```
|
|
151
|
+
Package 'my-pkg' not found in workspace or global packages.
|
|
152
|
+
Available locations:
|
|
153
|
+
- Workspace packages: ./.openpackage/packages/
|
|
154
|
+
- Global packages: ~/.openpackage/packages/
|
|
155
|
+
|
|
156
|
+
Registry packages are immutable and cannot be modified directly.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Immutable source (registry)
|
|
160
|
+
```
|
|
161
|
+
Package 'my-pkg' resolves to a registry path, which is immutable.
|
|
162
|
+
Registry packages cannot be modified via remove command.
|
|
163
|
+
Path: ~/.openpackage/registry/my-pkg/1.0.0/
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Path not found in package
|
|
167
|
+
```
|
|
168
|
+
Path 'commands/nonexistent.md' not found in package.
|
|
169
|
+
Package source: ~/.openpackage/packages/my-pkg/
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Empty directory
|
|
173
|
+
```
|
|
174
|
+
Directory 'commands/' is empty.
|
|
175
|
+
No files to remove.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### --apply flag with uninstalled package
|
|
179
|
+
```
|
|
180
|
+
Files removed from package source at: ~/.openpackage/packages/my-pkg/
|
|
181
|
+
|
|
182
|
+
However, --apply failed because package 'my-pkg' is not installed in this workspace.
|
|
183
|
+
|
|
184
|
+
To sync deletions to your workspace:
|
|
185
|
+
1. Ensure package is installed: opkg install my-pkg
|
|
186
|
+
2. Apply the changes: opkg apply my-pkg
|
|
187
|
+
|
|
188
|
+
Or run 'opkg remove' without --apply flag to skip workspace sync.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### User cancellation
|
|
192
|
+
```
|
|
193
|
+
Operation cancelled by user.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Integration
|
|
197
|
+
|
|
198
|
+
### Relationship to other commands
|
|
199
|
+
- **`add`**: Opposite operation; add copies TO source, remove deletes FROM source.
|
|
200
|
+
- **`save`**: Syncs workspace → source based on index mappings (requires installation).
|
|
201
|
+
- **`apply`**: Syncs source → workspace platforms + updates index (including deletions).
|
|
202
|
+
- **`install`**: Materializes package to workspace + updates index.
|
|
203
|
+
- **`uninstall`**: Removes package from workspace + index (different from remove).
|
|
204
|
+
- **`pack`**: Creates registry snapshot from source (deletions reflected in new versions).
|
|
205
|
+
|
|
206
|
+
### Comparison with Uninstall
|
|
207
|
+
|
|
208
|
+
| Aspect | `remove` | `uninstall` |
|
|
209
|
+
|--------|----------|-------------|
|
|
210
|
+
| **Target** | Package source files | Workspace files + index |
|
|
211
|
+
| **Mutability** | Requires mutable source | Works with any source |
|
|
212
|
+
| **Installation** | Not required | Required (reads index) |
|
|
213
|
+
| **Index** | No update (unless --apply) | Removes from index |
|
|
214
|
+
| **Source** | Modifies source | Preserves source |
|
|
215
|
+
| **Scope** | Source-only by default | Workspace cleanup |
|
|
216
|
+
| **Purpose** | Content management | Package removal |
|
|
217
|
+
|
|
218
|
+
### Workflows
|
|
219
|
+
|
|
220
|
+
1. **Removing deprecated content**:
|
|
221
|
+
```bash
|
|
222
|
+
opkg remove pkg commands/deprecated/ # Remove from source
|
|
223
|
+
# Or use alias: opkg rm pkg commands/deprecated/
|
|
224
|
+
opkg apply pkg # Sync to workspace (if installed)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
2. **Quick remove + sync**:
|
|
228
|
+
```bash
|
|
229
|
+
opkg remove pkg rules/old.md --apply # Remove and sync (requires installation)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
3. **Cleaning up after uninstall**:
|
|
233
|
+
```bash
|
|
234
|
+
opkg uninstall pkg # Remove from workspace
|
|
235
|
+
opkg remove pkg root/ # Clean up source files
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
4. **Preview before removing**:
|
|
239
|
+
```bash
|
|
240
|
+
opkg remove pkg commands/ --dry-run # Preview
|
|
241
|
+
opkg remove pkg commands/ --force # Execute without prompt
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Implementation
|
|
245
|
+
- Pipeline: `src/core/remove/remove-from-source-pipeline.ts`
|
|
246
|
+
- Collector: `src/core/remove/removal-collector.ts`
|
|
247
|
+
- Confirmation: `src/core/remove/removal-confirmation.ts`
|
|
248
|
+
- Source resolution: `src/core/source-resolution/resolve-mutable-source.ts`
|
|
249
|
+
- Command: `src/commands/remove.ts`
|
|
250
|
+
|
|
251
|
+
## See Also
|
|
252
|
+
- [Add](../add/) – Copy files into package sources (opposite operation)
|
|
253
|
+
- [Apply](../apply/) – Source → workspace platform sync
|
|
254
|
+
- [Uninstall](../uninstall/) – Remove package from workspace
|
|
255
|
+
- [Save](../save/) – Workspace → source sync for installed packages
|
|
256
|
+
- [Package Index](../package/package-index-yml.md) – Workspace installation state
|
|
257
|
+
- [Commands Overview](../commands-overview.md) – All command relationships
|
package/specs/save/README.md
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
### Save Pipeline Specs
|
|
2
2
|
|
|
3
|
-
This directory contains specifications for the
|
|
3
|
+
This directory contains specifications for the **`save` behavior** in the model:
|
|
4
|
+
|
|
5
|
+
- `opkg save`: **Workspace → Source** (sync workspace edits back to a mutable package source)
|
|
4
6
|
|
|
5
7
|
These docs are **behavioral**: they describe features and logic, not specific modules or functions.
|
|
6
8
|
|
|
9
|
+
Key integration: Save ops use effective cwd (shell or --cwd; see [../../cli-options.md]) for workspace/package detection.
|
|
10
|
+
|
|
7
11
|
---
|
|
8
12
|
|
|
9
13
|
#### Pipeline Flow
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
`save` executes in this order:
|
|
12
16
|
|
|
13
|
-
1. **
|
|
14
|
-
2. **
|
|
15
|
-
3. **
|
|
16
|
-
4. **
|
|
17
|
-
5. **
|
|
18
|
-
6. **
|
|
19
|
-
7. **
|
|
17
|
+
1. **Read workspace index** → Load `.openpackage/openpackage.index.yml` and find mappings for the package
|
|
18
|
+
2. **Resolve package source** → Determine the source-of-truth path (`path:`/`git:`/registry) for the package
|
|
19
|
+
3. **Enforce mutability** → `save` must fail for immutable sources (registry paths)
|
|
20
|
+
4. **Build candidates from mappings** → Collect workspace candidates for the mapped file/dir keys
|
|
21
|
+
5. **Parity checking** → Auto-skip candidates that already match source (universal or platform-specific)
|
|
22
|
+
6. **Conflict resolution** → For remaining candidates, choose which workspace candidate becomes universal and which become platform-specific
|
|
23
|
+
7. **Write back to source** → Update the package source tree with resolved content
|
|
20
24
|
|
|
21
25
|
---
|
|
22
26
|
|
|
@@ -24,17 +28,17 @@ The save pipeline executes in this order:
|
|
|
24
28
|
|
|
25
29
|
| File | Topic |
|
|
26
30
|
|------|-------|
|
|
27
|
-
| `save-modes-inputs.md` | Overview,
|
|
28
|
-
| `save-
|
|
29
|
-
| `save-naming-scoping.md` | Name resolution, scoping decisions, and workspace renames |
|
|
30
|
-
| `save-file-discovery.md` | Candidate sources, first vs subsequent saves, grouping |
|
|
31
|
+
| `save-modes-inputs.md` | Overview, inputs, modes, and flags |
|
|
32
|
+
| `save-versioning.md` | WIP prerelease scheme, save/pack computation, invariants |
|
|
31
33
|
| `save-conflict-resolution.md` | Conflict resolution rules and platform-specific selection |
|
|
32
|
-
| `save-frontmatter-overrides.md` | Markdown frontmatter extraction and YAML overrides |
|
|
33
|
-
| `save-registry-sync.md` |
|
|
34
|
+
| `save-frontmatter-overrides.md` | Markdown frontmatter extraction and YAML overrides (when applicable) |
|
|
35
|
+
| `save-registry-sync.md` | Save-to-source specifics: mutability, mapping-driven writes, and error cases |
|
|
34
36
|
|
|
35
37
|
---
|
|
36
38
|
|
|
37
39
|
#### Related Documents
|
|
38
40
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
+
- [Commands Overview](../commands-overview.md) – High-level `save` vs. `pack` split and flows.
|
|
42
|
+
- `save-versioning.md` – WIP prerelease scheme, computation, and pack promotion.
|
|
43
|
+
- `../package/package-index-yml.md` – Unified workspace index schema used by `save`.
|
|
44
|
+
- [Package Sources](../package-sources.md) – Mutability enforcement during resolution.
|