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,494 @@
|
|
|
1
|
+
# Show Remote Support
|
|
2
|
+
|
|
3
|
+
Specification for remote package metadata display in the `show` command.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Remote support allows users to inspect packages from the remote registry without downloading them. This is useful for:
|
|
8
|
+
- **Discovery**: Browse available packages before installing
|
|
9
|
+
- **Verification**: Check package details before committing to download
|
|
10
|
+
- **Comparison**: See what's available remotely vs locally
|
|
11
|
+
- **Access Check**: Verify authentication and permissions
|
|
12
|
+
|
|
13
|
+
## Design Goals
|
|
14
|
+
|
|
15
|
+
1. **Fast by Default**: Metadata-only fetching (2-5 KB, ~200-500ms)
|
|
16
|
+
2. **Bandwidth Efficient**: Don't download tarballs unless requested
|
|
17
|
+
3. **Optional Completeness**: Allow full download for file list if needed
|
|
18
|
+
4. **Clear UX**: Indicate source (local vs remote) and limitations
|
|
19
|
+
5. **Consistent API**: Reuse existing remote-pull infrastructure
|
|
20
|
+
|
|
21
|
+
## Command Syntax
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Default: Local search first, fall back to remote if not found
|
|
25
|
+
opkg show <package>
|
|
26
|
+
|
|
27
|
+
# Force remote lookup (skip local search)
|
|
28
|
+
opkg show <package> --remote
|
|
29
|
+
|
|
30
|
+
# Remote with full download (for complete info)
|
|
31
|
+
opkg show <package> --remote --download
|
|
32
|
+
|
|
33
|
+
# Authentication options
|
|
34
|
+
opkg show <package> --remote --profile <profile>
|
|
35
|
+
opkg show <package> --remote --api-key <key>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Behavior Modes
|
|
39
|
+
|
|
40
|
+
### Mode 1: Default (Local-First)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
opkg show my-package
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Flow**:
|
|
47
|
+
1. Search local sources (CWD → Workspace → Global → Registry)
|
|
48
|
+
2. If found: Display local package info (current behavior)
|
|
49
|
+
3. If not found: Display message and try remote
|
|
50
|
+
4. If remote found: Display remote metadata
|
|
51
|
+
5. If remote not found: Error
|
|
52
|
+
|
|
53
|
+
**Output Example**:
|
|
54
|
+
```
|
|
55
|
+
⚠️ Package 'my-package' not found locally
|
|
56
|
+
💡 Checking remote registry...
|
|
57
|
+
|
|
58
|
+
✓ Package: my-package
|
|
59
|
+
✓ Version: 1.2.3
|
|
60
|
+
✓ Source: remote registry (https://registry.openpackage.dev)
|
|
61
|
+
✓ Type: immutable (remote)
|
|
62
|
+
✓ Description: Example package
|
|
63
|
+
✓ Keywords: example, demo
|
|
64
|
+
✓ Private: No
|
|
65
|
+
✓ Tarball Size: 2.45 MB
|
|
66
|
+
✓ Created: 2025-12-01 10:30:00
|
|
67
|
+
✓ Updated: 2025-12-15 14:20:00
|
|
68
|
+
✓ Available Versions (15):
|
|
69
|
+
• 1.2.3 (current)
|
|
70
|
+
• 1.2.2
|
|
71
|
+
• 1.2.1
|
|
72
|
+
• ...
|
|
73
|
+
✓ Download Access: Yes
|
|
74
|
+
|
|
75
|
+
💡 To install this package locally, run:
|
|
76
|
+
opkg install my-package@1.2.3
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Note**: File list not available (metadata only).
|
|
80
|
+
|
|
81
|
+
### Mode 2: Remote-Only
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
opkg show my-package --remote
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Flow**:
|
|
88
|
+
1. Skip local search entirely
|
|
89
|
+
2. Fetch remote metadata
|
|
90
|
+
3. Display remote package info
|
|
91
|
+
|
|
92
|
+
**Use Case**:
|
|
93
|
+
- Check latest remote version even if local copy exists
|
|
94
|
+
- Verify what's published vs what's local
|
|
95
|
+
- Check remote availability before pushing
|
|
96
|
+
|
|
97
|
+
### Mode 3: Remote with Download
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
opkg show my-package --remote --download
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Flow**:
|
|
104
|
+
1. Fetch remote metadata
|
|
105
|
+
2. Download tarball to temp directory
|
|
106
|
+
3. Extract and display complete info (including file list)
|
|
107
|
+
4. Clean up temp files
|
|
108
|
+
|
|
109
|
+
**Output Includes**:
|
|
110
|
+
- All metadata fields
|
|
111
|
+
- Complete file list
|
|
112
|
+
- Dependencies from manifest
|
|
113
|
+
- All fields that local show displays
|
|
114
|
+
|
|
115
|
+
**Use Case**:
|
|
116
|
+
- Need to see file list before installing
|
|
117
|
+
- Inspect package structure remotely
|
|
118
|
+
- Verify contents match expectations
|
|
119
|
+
|
|
120
|
+
## Remote Metadata Structure
|
|
121
|
+
|
|
122
|
+
Based on `/packages/pull/by-name/{name}` endpoint:
|
|
123
|
+
|
|
124
|
+
### Available in Metadata Response
|
|
125
|
+
|
|
126
|
+
✅ **Package Info**:
|
|
127
|
+
- `name`: Package name
|
|
128
|
+
- `description`: Description text
|
|
129
|
+
- `keywords`: Array of keywords
|
|
130
|
+
- `isPrivate`: Privacy flag
|
|
131
|
+
- `createdAt`: Package creation timestamp
|
|
132
|
+
- `updatedAt`: Last update timestamp
|
|
133
|
+
|
|
134
|
+
✅ **Version Info**:
|
|
135
|
+
- `version`: Version number
|
|
136
|
+
- `tarballSize`: Size in bytes
|
|
137
|
+
- `createdAt`: Version creation timestamp
|
|
138
|
+
- `updatedAt`: Version update timestamp
|
|
139
|
+
|
|
140
|
+
✅ **Availability**:
|
|
141
|
+
- `availableVersions`: Array of version strings
|
|
142
|
+
- `downloadUrl`: Present if user has access
|
|
143
|
+
- `downloads`: Array of download info
|
|
144
|
+
|
|
145
|
+
### NOT Available in Metadata
|
|
146
|
+
|
|
147
|
+
❌ **File List**: Not included in metadata response
|
|
148
|
+
❌ **File Contents**: Not included in metadata response
|
|
149
|
+
❌ **Dependencies**: Only in manifest inside tarball
|
|
150
|
+
❌ **Full openpackage.yml**: Only in tarball
|
|
151
|
+
|
|
152
|
+
## Display Format
|
|
153
|
+
|
|
154
|
+
### Metadata-Only Display
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
✓ Package: <name>
|
|
158
|
+
✓ Version: <version>
|
|
159
|
+
✓ Source: remote registry (<registry-url>)
|
|
160
|
+
✓ Type: immutable (remote)
|
|
161
|
+
✓ Description: <description>
|
|
162
|
+
✓ Keywords: <keywords>
|
|
163
|
+
✓ Private: <Yes/No>
|
|
164
|
+
✓ Tarball Size: <size in MB>
|
|
165
|
+
✓ Created: <formatted-timestamp>
|
|
166
|
+
✓ Updated: <formatted-timestamp>
|
|
167
|
+
✓ Available Versions (<count>):
|
|
168
|
+
• <version> (current)
|
|
169
|
+
• <version>
|
|
170
|
+
• ...
|
|
171
|
+
✓ Download Access: <Yes/No>
|
|
172
|
+
|
|
173
|
+
⚠️ File list not available (metadata only)
|
|
174
|
+
💡 Use --download flag to see complete package details
|
|
175
|
+
💡 To install this package locally, run:
|
|
176
|
+
opkg install <name>@<version>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### With Download Display
|
|
180
|
+
|
|
181
|
+
Same as local show, plus:
|
|
182
|
+
```
|
|
183
|
+
✓ Source: remote registry (downloaded)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
All fields from local show are available.
|
|
187
|
+
|
|
188
|
+
## Implementation Architecture
|
|
189
|
+
|
|
190
|
+
### Module: `src/core/show/show-remote.ts` (New)
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
/**
|
|
194
|
+
* Remote package display for show command
|
|
195
|
+
*/
|
|
196
|
+
|
|
197
|
+
export interface ShowRemoteOptions {
|
|
198
|
+
download?: boolean;
|
|
199
|
+
profile?: string;
|
|
200
|
+
apiKey?: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Show package from remote registry
|
|
205
|
+
*
|
|
206
|
+
* @param packageName - Package name
|
|
207
|
+
* @param version - Optional version
|
|
208
|
+
* @param options - Remote options
|
|
209
|
+
*/
|
|
210
|
+
export async function showRemotePackage(
|
|
211
|
+
packageName: string,
|
|
212
|
+
version: string | undefined,
|
|
213
|
+
options: ShowRemoteOptions
|
|
214
|
+
): Promise<CommandResult>
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Display remote metadata-only information
|
|
218
|
+
*/
|
|
219
|
+
function displayRemoteMetadata(
|
|
220
|
+
response: PullPackageResponse,
|
|
221
|
+
registryUrl: string
|
|
222
|
+
): void
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Download and display complete remote package info
|
|
226
|
+
*/
|
|
227
|
+
async function showRemoteWithDownload(
|
|
228
|
+
metadata: RemotePackageMetadataSuccess,
|
|
229
|
+
options: ShowRemoteOptions
|
|
230
|
+
): Promise<CommandResult>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Integration Points
|
|
234
|
+
|
|
235
|
+
Reuses existing infrastructure:
|
|
236
|
+
- `fetchRemotePackageMetadata()` from `remote-pull.ts`
|
|
237
|
+
- `downloadPackageTarball()` from `remote-pull.ts`
|
|
238
|
+
- `extractPackageFromTarball()` from `tarball.ts`
|
|
239
|
+
- `authManager` for authentication
|
|
240
|
+
- `createHttpClient()` for HTTP requests
|
|
241
|
+
|
|
242
|
+
### Flow Diagram
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
show-pipeline.ts
|
|
246
|
+
↓
|
|
247
|
+
[Local search enabled?]
|
|
248
|
+
├─ Yes → Try local resolution
|
|
249
|
+
│ ├─ Found → Display local
|
|
250
|
+
│ └─ Not found → Fall back to remote
|
|
251
|
+
└─ No (--remote flag) → Skip to remote
|
|
252
|
+
|
|
253
|
+
[Remote fetch]
|
|
254
|
+
↓
|
|
255
|
+
fetchRemotePackageMetadata()
|
|
256
|
+
↓
|
|
257
|
+
[--download flag?]
|
|
258
|
+
├─ Yes → Download tarball to temp
|
|
259
|
+
│ ├─ Extract files
|
|
260
|
+
│ ├─ Display complete info
|
|
261
|
+
│ └─ Cleanup temp
|
|
262
|
+
└─ No → Display metadata only
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Error Handling
|
|
266
|
+
|
|
267
|
+
### Network Errors
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
Error: Network error while fetching package 'my-package': fetch failed
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
User-friendly message for connectivity issues.
|
|
274
|
+
|
|
275
|
+
### Not Found
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
Error: Package 'my-package' not found in remote registry
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Clear 404 handling.
|
|
282
|
+
|
|
283
|
+
### Access Denied
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
Error: Access denied to package 'my-package'. You may need to login or use a different profile.
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Handles 401/403 with authentication hints.
|
|
290
|
+
|
|
291
|
+
### Authentication Required
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
Error: Remote registry requires authentication. Run:
|
|
295
|
+
opkg login
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Prompts user to authenticate.
|
|
299
|
+
|
|
300
|
+
## Performance Considerations
|
|
301
|
+
|
|
302
|
+
### Metadata-Only (Default)
|
|
303
|
+
|
|
304
|
+
| Metric | Value |
|
|
305
|
+
|--------|-------|
|
|
306
|
+
| Network I/O | 2-5 KB |
|
|
307
|
+
| Latency | 200-500ms |
|
|
308
|
+
| Disk I/O | None |
|
|
309
|
+
| Memory | Minimal (~1 MB) |
|
|
310
|
+
|
|
311
|
+
Fast enough for interactive use.
|
|
312
|
+
|
|
313
|
+
### With Download
|
|
314
|
+
|
|
315
|
+
| Metric | Value |
|
|
316
|
+
|--------|-------|
|
|
317
|
+
| Network I/O | 100 KB - 10 MB+ (tarball size) |
|
|
318
|
+
| Latency | 1-10s+ (depends on size) |
|
|
319
|
+
| Disk I/O | Write to temp, then delete |
|
|
320
|
+
| Memory | Tarball size + extraction (~2-3x) |
|
|
321
|
+
|
|
322
|
+
Slower but provides complete information.
|
|
323
|
+
|
|
324
|
+
## User Experience
|
|
325
|
+
|
|
326
|
+
### Discovery Workflow
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# 1. Check if package exists remotely
|
|
330
|
+
opkg show new-tool --remote
|
|
331
|
+
|
|
332
|
+
# 2. See if it has what I need (metadata only)
|
|
333
|
+
# → Check description, keywords, size
|
|
334
|
+
|
|
335
|
+
# 3. Need more details? Download for file list
|
|
336
|
+
opkg show new-tool --remote --download
|
|
337
|
+
|
|
338
|
+
# 4. Satisfied? Install it
|
|
339
|
+
opkg install new-tool
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Comparison Workflow
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
# Check local version
|
|
346
|
+
opkg show my-package
|
|
347
|
+
|
|
348
|
+
# Check remote version
|
|
349
|
+
opkg show my-package --remote
|
|
350
|
+
|
|
351
|
+
# Compare output manually or with diff
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Future Enhancements
|
|
355
|
+
|
|
356
|
+
### JSON Output Mode
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
opkg show my-package --remote --json > metadata.json
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Enables scripting and tool integration.
|
|
363
|
+
|
|
364
|
+
### Comparison Mode
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
opkg show my-package --compare
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Automatically shows local vs remote side-by-side.
|
|
371
|
+
|
|
372
|
+
### Batch Show
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
opkg show pkg1 pkg2 pkg3 --remote
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
Show multiple packages in one command.
|
|
379
|
+
|
|
380
|
+
### Cache Metadata
|
|
381
|
+
|
|
382
|
+
Cache remote metadata responses for faster repeated queries:
|
|
383
|
+
- Cache duration: 5-15 minutes
|
|
384
|
+
- Cache location: `~/.openpackage/cache/metadata/`
|
|
385
|
+
- Invalidation: Manual or time-based
|
|
386
|
+
|
|
387
|
+
## Testing Strategy
|
|
388
|
+
|
|
389
|
+
### Unit Tests
|
|
390
|
+
- Remote metadata fetching
|
|
391
|
+
- Error handling (not found, access denied, network)
|
|
392
|
+
- Display formatting (metadata-only)
|
|
393
|
+
- Download and display (with temp cleanup)
|
|
394
|
+
|
|
395
|
+
### Integration Tests
|
|
396
|
+
- End-to-end remote show
|
|
397
|
+
- Authentication scenarios
|
|
398
|
+
- Fallback from local to remote
|
|
399
|
+
- Download mode with extraction
|
|
400
|
+
|
|
401
|
+
### Manual Testing
|
|
402
|
+
- Various package types (public, private, scoped)
|
|
403
|
+
- Different registry configurations
|
|
404
|
+
- Network failure scenarios
|
|
405
|
+
- Large packages (download mode)
|
|
406
|
+
|
|
407
|
+
## Security Considerations
|
|
408
|
+
|
|
409
|
+
1. **Authentication**: Uses existing auth infrastructure (profiles, API keys)
|
|
410
|
+
2. **HTTPS Only**: All remote requests over HTTPS
|
|
411
|
+
3. **No Arbitrary Downloads**: Only downloads from configured registry
|
|
412
|
+
4. **Temp File Cleanup**: Always cleanup temp files, even on error
|
|
413
|
+
5. **Input Validation**: Validate package names before remote fetch
|
|
414
|
+
|
|
415
|
+
## Rollout Plan
|
|
416
|
+
|
|
417
|
+
### Phase 1: Metadata-Only (Recommended First)
|
|
418
|
+
- Implement `--remote` flag
|
|
419
|
+
- Metadata-only display
|
|
420
|
+
- Auto-fallback from local to remote
|
|
421
|
+
- Basic error handling
|
|
422
|
+
|
|
423
|
+
### Phase 2: Download Support
|
|
424
|
+
- Implement `--download` flag
|
|
425
|
+
- Temp file management
|
|
426
|
+
- Complete display with file list
|
|
427
|
+
|
|
428
|
+
### Phase 3: Enhancements
|
|
429
|
+
- JSON output mode
|
|
430
|
+
- Comparison mode
|
|
431
|
+
- Metadata caching
|
|
432
|
+
|
|
433
|
+
## Related Specs
|
|
434
|
+
|
|
435
|
+
- [Show Command](./README.md) - Main show command spec
|
|
436
|
+
- [Install Behavior](../install/install-behavior.md) - Remote resolution patterns
|
|
437
|
+
- [Registry](../registry.md) - Registry structure
|
|
438
|
+
- [Package Sources](../package-sources.md) - Source types
|
|
439
|
+
|
|
440
|
+
## Examples
|
|
441
|
+
|
|
442
|
+
### Public Package
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
opkg show lodash --remote
|
|
446
|
+
|
|
447
|
+
✓ Package: lodash
|
|
448
|
+
✓ Version: 4.17.21
|
|
449
|
+
✓ Source: remote registry (https://registry.openpackage.dev)
|
|
450
|
+
✓ Type: immutable (remote)
|
|
451
|
+
✓ Description: Lodash modular utilities
|
|
452
|
+
✓ Keywords: modules, stdlib, util
|
|
453
|
+
✓ Private: No
|
|
454
|
+
✓ Tarball Size: 1.2 MB
|
|
455
|
+
✓ Created: 2024-01-15 09:00:00
|
|
456
|
+
✓ Updated: 2024-06-20 14:30:00
|
|
457
|
+
✓ Available Versions (50):
|
|
458
|
+
• 4.17.21 (current)
|
|
459
|
+
• 4.17.20
|
|
460
|
+
• ...
|
|
461
|
+
✓ Download Access: Yes
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
### Private Package (With Auth)
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
opkg show @company/internal-tool --remote --profile work
|
|
468
|
+
|
|
469
|
+
✓ Package: @company/internal-tool
|
|
470
|
+
✓ Version: 2.1.0
|
|
471
|
+
✓ Source: remote registry (https://registry.openpackage.dev)
|
|
472
|
+
✓ Type: immutable (remote)
|
|
473
|
+
✓ Private: Yes
|
|
474
|
+
✓ Tarball Size: 512 KB
|
|
475
|
+
✓ Download Access: Yes
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Package Not Found
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
opkg show non-existent --remote
|
|
482
|
+
|
|
483
|
+
Error: Package 'non-existent' not found in remote registry
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Network Error
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
opkg show my-package --remote
|
|
490
|
+
|
|
491
|
+
Error: Network error while fetching package 'my-package': fetch failed
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
Retry or check connection.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Status Command
|
|
2
|
+
|
|
3
|
+
`opkg status` reports the state of installed packages, validating sources and sync status via hashes. Helps debug drifts between source and workspace.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
- N/A direction: Read-only inspection.
|
|
7
|
+
- Uses unified index to check all packages.
|
|
8
|
+
|
|
9
|
+
## Flow
|
|
10
|
+
1. Read `.openpackage/openpackage.index.yml`.
|
|
11
|
+
2. For each package:
|
|
12
|
+
- Resolve/validate source path exists.
|
|
13
|
+
- Compare source files vs. workspace mappings using content hashes.
|
|
14
|
+
- Classify: Synced (✅), Modified (⚠️ workspace changed), Missing (❌ source/path issue).
|
|
15
|
+
3. Output table/report; optional verbose.
|
|
16
|
+
|
|
17
|
+
## Output Example
|
|
18
|
+
```
|
|
19
|
+
✅ my-rules@1.0.0 synced ./.openpackage/packages/my-rules/
|
|
20
|
+
⚠️ shared@1.2.3 modified ~/.openpackage/packages/shared/
|
|
21
|
+
❌ community@1.0.0 missing ~/.openpackage/registry/community/1.0.0/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Options
|
|
25
|
+
- `--verbose`: File-level details.
|
|
26
|
+
- `--json`: Machine-readable.
|
|
27
|
+
- Filter by package.
|
|
28
|
+
|
|
29
|
+
## Errors
|
|
30
|
+
- Corrupt index: Repair hints.
|
|
31
|
+
- Path access issues.
|
|
32
|
+
|
|
33
|
+
## Integration
|
|
34
|
+
- Ties to index schema [Package Index](package/package-index-yml.md).
|
|
35
|
+
- Useful before save (see modified) or uninstall.
|
|
36
|
+
- See [Commands Overview](commands-overview.md).
|
|
37
|
+
|
|
38
|
+
Impl: [Status Pipeline](../core/status/status-pipeline.ts).
|