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
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, InputRenderable, InputRenderableEvents, SelectRenderable, SelectRenderableEvents, TextRenderable, } from '@opentui/core';
|
|
2
|
-
export function createAddFileModalView(renderer) {
|
|
3
|
-
const container = new BoxRenderable(renderer, {
|
|
4
|
-
id: 'opkg-add-file-modal',
|
|
5
|
-
width: '100%',
|
|
6
|
-
height: '100%',
|
|
7
|
-
flexDirection: 'column',
|
|
8
|
-
gap: 1,
|
|
9
|
-
visible: false,
|
|
10
|
-
});
|
|
11
|
-
const title = new TextRenderable(renderer, {
|
|
12
|
-
id: 'opkg-add-file-title',
|
|
13
|
-
content: 'Add file to package',
|
|
14
|
-
fg: '#bbbbbb',
|
|
15
|
-
});
|
|
16
|
-
const status = new TextRenderable(renderer, {
|
|
17
|
-
id: 'opkg-add-file-status',
|
|
18
|
-
content: 'Type to search. Enter to add. Esc/b to cancel.',
|
|
19
|
-
fg: '#888888',
|
|
20
|
-
});
|
|
21
|
-
const input = new InputRenderable(renderer, {
|
|
22
|
-
id: 'opkg-add-file-input',
|
|
23
|
-
width: '100%',
|
|
24
|
-
placeholder: 'Search file path...',
|
|
25
|
-
});
|
|
26
|
-
const results = new SelectRenderable(renderer, {
|
|
27
|
-
id: 'opkg-add-file-results',
|
|
28
|
-
width: '100%',
|
|
29
|
-
height: 12,
|
|
30
|
-
showScrollIndicator: true,
|
|
31
|
-
showDescription: false,
|
|
32
|
-
wrapSelection: false,
|
|
33
|
-
options: [],
|
|
34
|
-
});
|
|
35
|
-
container.add(title);
|
|
36
|
-
container.add(status);
|
|
37
|
-
container.add(input);
|
|
38
|
-
container.add(results);
|
|
39
|
-
container.add(new TextRenderable(renderer, {
|
|
40
|
-
id: 'opkg-add-file-hint',
|
|
41
|
-
content: 'Enter=add, Esc/b=cancel, ↑/↓ to navigate matches.',
|
|
42
|
-
fg: '#888888',
|
|
43
|
-
}));
|
|
44
|
-
let onQueryChangeCb = null;
|
|
45
|
-
let onSelectionChangeCb = null;
|
|
46
|
-
let onConfirmCb = null;
|
|
47
|
-
let suppressSelectionNotify = false;
|
|
48
|
-
const getSelectedPath = () => {
|
|
49
|
-
const opt = results.getSelectedOption();
|
|
50
|
-
return opt?.value ?? null;
|
|
51
|
-
};
|
|
52
|
-
input.on(InputRenderableEvents.INPUT, (value) => {
|
|
53
|
-
onQueryChangeCb?.(value ?? '');
|
|
54
|
-
});
|
|
55
|
-
input.on(InputRenderableEvents.ENTER, () => {
|
|
56
|
-
onConfirmCb?.(getSelectedPath());
|
|
57
|
-
});
|
|
58
|
-
results.on(SelectRenderableEvents.SELECTION_CHANGED, () => {
|
|
59
|
-
if (suppressSelectionNotify)
|
|
60
|
-
return;
|
|
61
|
-
onSelectionChangeCb?.(getSelectedPath());
|
|
62
|
-
});
|
|
63
|
-
results.on(SelectRenderableEvents.ITEM_SELECTED, () => {
|
|
64
|
-
onConfirmCb?.(getSelectedPath());
|
|
65
|
-
});
|
|
66
|
-
const setResults = (items) => {
|
|
67
|
-
if (!items.length) {
|
|
68
|
-
results.options = [];
|
|
69
|
-
status.content = 'No matches.';
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
results.options = items.map((item) => ({
|
|
73
|
-
name: item.display,
|
|
74
|
-
description: '',
|
|
75
|
-
value: item.value,
|
|
76
|
-
}));
|
|
77
|
-
suppressSelectionNotify = true;
|
|
78
|
-
results.setSelectedIndex(0);
|
|
79
|
-
suppressSelectionNotify = false;
|
|
80
|
-
onSelectionChangeCb?.(getSelectedPath());
|
|
81
|
-
status.content = `Matches: ${items.length}. Enter=add, Esc/b=cancel.`;
|
|
82
|
-
};
|
|
83
|
-
return {
|
|
84
|
-
container,
|
|
85
|
-
setLoading: (message = 'Indexing files...') => {
|
|
86
|
-
status.content = message;
|
|
87
|
-
},
|
|
88
|
-
setStatus: (message) => {
|
|
89
|
-
status.content = message;
|
|
90
|
-
},
|
|
91
|
-
setResults,
|
|
92
|
-
setPreview: () => {
|
|
93
|
-
// no-op (preview removed)
|
|
94
|
-
},
|
|
95
|
-
setQuery: (value) => {
|
|
96
|
-
input.value = value;
|
|
97
|
-
},
|
|
98
|
-
getQuery: () => input.value ?? '',
|
|
99
|
-
getSelectedPath,
|
|
100
|
-
focusSearch: () => {
|
|
101
|
-
input.focus();
|
|
102
|
-
},
|
|
103
|
-
moveSelection: (delta) => {
|
|
104
|
-
if (delta < 0) {
|
|
105
|
-
results.moveUp(Math.abs(delta));
|
|
106
|
-
}
|
|
107
|
-
else if (delta > 0) {
|
|
108
|
-
results.moveDown(delta);
|
|
109
|
-
}
|
|
110
|
-
onSelectionChangeCb?.(getSelectedPath());
|
|
111
|
-
},
|
|
112
|
-
onQueryChange: (cb) => {
|
|
113
|
-
onQueryChangeCb = cb;
|
|
114
|
-
},
|
|
115
|
-
onSelectionChange: (cb) => {
|
|
116
|
-
onSelectionChangeCb = cb;
|
|
117
|
-
},
|
|
118
|
-
onConfirm: (cb) => {
|
|
119
|
-
onConfirmCb = cb;
|
|
120
|
-
},
|
|
121
|
-
show: () => {
|
|
122
|
-
container.visible = true;
|
|
123
|
-
},
|
|
124
|
-
hide: () => {
|
|
125
|
-
container.visible = false;
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=add-file-modal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-file-modal.js","sourceRoot":"","sources":["../../../src/tui/views/add-file-modal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, TextRenderable } from '@opentui/core';
|
|
2
|
-
export function createFilePreviewView(renderer) {
|
|
3
|
-
const container = new BoxRenderable(renderer, {
|
|
4
|
-
id: 'opkg-file-preview',
|
|
5
|
-
width: '100%',
|
|
6
|
-
height: '100%',
|
|
7
|
-
flexDirection: 'column',
|
|
8
|
-
gap: 1,
|
|
9
|
-
visible: false,
|
|
10
|
-
});
|
|
11
|
-
const title = new TextRenderable(renderer, {
|
|
12
|
-
id: 'opkg-file-preview-title',
|
|
13
|
-
content: 'Preview',
|
|
14
|
-
fg: '#bbbbbb',
|
|
15
|
-
});
|
|
16
|
-
const body = new TextRenderable(renderer, {
|
|
17
|
-
id: 'opkg-file-preview-body',
|
|
18
|
-
content: '',
|
|
19
|
-
fg: '#aaaaaa',
|
|
20
|
-
});
|
|
21
|
-
const hint = new TextRenderable(renderer, {
|
|
22
|
-
id: 'opkg-file-preview-hint',
|
|
23
|
-
content: 'b/Esc to go back.',
|
|
24
|
-
fg: '#888888',
|
|
25
|
-
});
|
|
26
|
-
container.add(title);
|
|
27
|
-
container.add(body);
|
|
28
|
-
container.add(hint);
|
|
29
|
-
return {
|
|
30
|
-
container,
|
|
31
|
-
setContent: (newTitle, newBody) => {
|
|
32
|
-
title.content = newTitle;
|
|
33
|
-
body.content = newBody;
|
|
34
|
-
},
|
|
35
|
-
show: () => {
|
|
36
|
-
container.visible = true;
|
|
37
|
-
},
|
|
38
|
-
hide: () => {
|
|
39
|
-
container.visible = false;
|
|
40
|
-
},
|
|
41
|
-
isVisible: () => container.visible ?? false,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=file-preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-preview.js","sourceRoot":"","sources":["../../../src/tui/views/file-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG9D,MAAM,UAAU,qBAAqB,CAAC,QAAa;IAClD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC7C,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;QACvB,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE;QAC1C,EAAE,EAAE,yBAAyB;QAC7B,OAAO,EAAE,SAAS;QAClB,EAAE,EAAE,SAAS;KACb,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE;QACzC,EAAE,EAAE,wBAAwB;QAC5B,OAAO,EAAE,EAAE;QACX,EAAE,EAAE,SAAS;KACb,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE;QACzC,EAAE,EAAE,wBAAwB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,EAAE,EAAE,SAAS;KACb,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpB,OAAO;QACN,SAAS;QACT,UAAU,EAAE,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;YACjD,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK;KAC3C,CAAC;AACH,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, SelectRenderable, SelectRenderableEvents, TextRenderable, } from '@opentui/core';
|
|
2
|
-
export function createListPackagesView(renderer) {
|
|
3
|
-
const container = new BoxRenderable(renderer, {
|
|
4
|
-
id: 'opkg-list-packages',
|
|
5
|
-
width: '100%',
|
|
6
|
-
height: '100%',
|
|
7
|
-
flexDirection: 'column',
|
|
8
|
-
gap: 1,
|
|
9
|
-
});
|
|
10
|
-
const title = new TextRenderable(renderer, {
|
|
11
|
-
id: 'opkg-list-title',
|
|
12
|
-
content: 'List Local Packages',
|
|
13
|
-
fg: '#bbbbbb',
|
|
14
|
-
});
|
|
15
|
-
const status = new TextRenderable(renderer, {
|
|
16
|
-
id: 'opkg-list-status',
|
|
17
|
-
content: 'Loading packages...',
|
|
18
|
-
fg: '#888888',
|
|
19
|
-
});
|
|
20
|
-
const select = new SelectRenderable(renderer, {
|
|
21
|
-
id: 'opkg-list-select',
|
|
22
|
-
width: '100%',
|
|
23
|
-
height: 12,
|
|
24
|
-
options: [],
|
|
25
|
-
showDescription: true,
|
|
26
|
-
showScrollIndicator: true,
|
|
27
|
-
});
|
|
28
|
-
let onSelect = null;
|
|
29
|
-
select.on(SelectRenderableEvents.ITEM_SELECTED, (_idx, option) => {
|
|
30
|
-
if (option?.value && onSelect) {
|
|
31
|
-
onSelect(option.value);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
container.add(title);
|
|
35
|
-
container.add(status);
|
|
36
|
-
container.add(select);
|
|
37
|
-
const setPackages = (pkgs) => {
|
|
38
|
-
if (!pkgs.length) {
|
|
39
|
-
select.options = [];
|
|
40
|
-
status.content = 'No packages found. Use "opkg init" or save/pack first.';
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
select.options = pkgs.map((pkg) => ({
|
|
44
|
-
name: `${pkg.name}@${pkg.version}`,
|
|
45
|
-
description: pkg.description ?? '',
|
|
46
|
-
value: pkg,
|
|
47
|
-
}));
|
|
48
|
-
status.content = 'Select a package (Enter). Press b/Esc to return.';
|
|
49
|
-
};
|
|
50
|
-
const setLoading = (message = 'Loading packages...') => {
|
|
51
|
-
status.content = message;
|
|
52
|
-
};
|
|
53
|
-
const setError = (message) => {
|
|
54
|
-
status.content = message;
|
|
55
|
-
select.options = [];
|
|
56
|
-
};
|
|
57
|
-
const setOnSelect = (cb) => {
|
|
58
|
-
onSelect = cb;
|
|
59
|
-
};
|
|
60
|
-
const focus = () => {
|
|
61
|
-
select.focus();
|
|
62
|
-
};
|
|
63
|
-
return {
|
|
64
|
-
container,
|
|
65
|
-
select,
|
|
66
|
-
setPackages,
|
|
67
|
-
setLoading,
|
|
68
|
-
setError,
|
|
69
|
-
setOnSelect,
|
|
70
|
-
focus,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=list-packages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-packages.js","sourceRoot":"","sources":["../../../src/tui/views/list-packages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, SelectRenderable, TextRenderable } from '@opentui/core';
|
|
2
|
-
export function createMainMenu(renderer) {
|
|
3
|
-
const mainMenuContainer = new BoxRenderable(renderer, {
|
|
4
|
-
id: 'opkg-main-menu',
|
|
5
|
-
width: '100%',
|
|
6
|
-
height: '100%',
|
|
7
|
-
flexDirection: 'column',
|
|
8
|
-
gap: 1,
|
|
9
|
-
});
|
|
10
|
-
const title = new TextRenderable(renderer, {
|
|
11
|
-
id: 'opkg-main-menu-title',
|
|
12
|
-
content: 'Select an action',
|
|
13
|
-
fg: '#bbbbbb',
|
|
14
|
-
});
|
|
15
|
-
const mainMenuSelect = new SelectRenderable(renderer, {
|
|
16
|
-
id: 'opkg-main-menu-select',
|
|
17
|
-
width: '100%',
|
|
18
|
-
height: 8,
|
|
19
|
-
options: [
|
|
20
|
-
{ name: 'Add / Update Package', description: 'Create package, add files, save/pack', value: 'add-update' },
|
|
21
|
-
{ name: 'List Local Packages', description: 'View packages in local registry', value: 'list' },
|
|
22
|
-
{ name: 'Exit', description: 'Quit the TUI', value: 'exit' },
|
|
23
|
-
],
|
|
24
|
-
});
|
|
25
|
-
mainMenuContainer.add(title);
|
|
26
|
-
mainMenuContainer.add(mainMenuSelect);
|
|
27
|
-
return { mainMenuContainer, mainMenuSelect };
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=main-menu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main-menu.js","sourceRoot":"","sources":["../../../src/tui/views/main-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,UAAU,cAAc,CAAC,QAAa;IAC3C,MAAM,iBAAiB,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QACrD,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;QACvB,GAAG,EAAE,CAAC;KACN,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE;QAC1C,EAAE,EAAE,sBAAsB;QAC1B,OAAO,EAAE,kBAAkB;QAC3B,EAAE,EAAE,SAAS;KACb,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE;QACrD,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC;QACT,OAAO,EAAE;YACR,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,sCAAsC,EAAE,KAAK,EAAE,YAAY,EAAE;YAC1G,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,iCAAiC,EAAE,KAAK,EAAE,MAAM,EAAE;YAC9F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;SAC5D;KACD,CAAC,CAAC;IAEH,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import blessed from 'blessed';
|
|
2
|
-
export function createManageView(state, screen, pkg, // RegistryEntry or Package
|
|
3
|
-
onBack, onAddFile, onSave) {
|
|
4
|
-
const manageBox = blessed.box({
|
|
5
|
-
label: ` Manage Package: ${pkg.name || 'New'}@${pkg.version || 'wip'} `,
|
|
6
|
-
border: 'line',
|
|
7
|
-
style: {
|
|
8
|
-
bg: 'black',
|
|
9
|
-
fg: 'white',
|
|
10
|
-
border: {
|
|
11
|
-
fg: 'yellow'
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
width: 80,
|
|
15
|
-
height: '80%',
|
|
16
|
-
top: 2,
|
|
17
|
-
left: 'center',
|
|
18
|
-
scrollable: true,
|
|
19
|
-
mouse: true,
|
|
20
|
-
keys: true
|
|
21
|
-
});
|
|
22
|
-
screen.append(manageBox);
|
|
23
|
-
// Stub package info
|
|
24
|
-
const infoText = blessed.text({
|
|
25
|
-
content: `Description: ${pkg.description || 'No desc'}\nPlatform: ${pkg.platform || 'universal'}\nStatus: ${state.dirty ? 'Unsaved changes' : 'Saved'}`,
|
|
26
|
-
tags: true,
|
|
27
|
-
style: { fg: 'gray' }
|
|
28
|
-
});
|
|
29
|
-
manageBox.append(infoText);
|
|
30
|
-
// Stub file list (Phase 3: Use discoverPackageFiles())
|
|
31
|
-
const fileList = blessed.list({
|
|
32
|
-
label: ' Files (Phase 3: Real list from discoverPackageFiles) ',
|
|
33
|
-
border: 'line',
|
|
34
|
-
items: ['example-file1.ts', 'package.yml', '➕ Add File (Phase 3)', '← Back'],
|
|
35
|
-
top: 5,
|
|
36
|
-
width: '100%',
|
|
37
|
-
height: 10,
|
|
38
|
-
style: { selected: { bg: 'magenta' } },
|
|
39
|
-
keys: true,
|
|
40
|
-
mouse: true,
|
|
41
|
-
vi: true
|
|
42
|
-
});
|
|
43
|
-
manageBox.append(fileList);
|
|
44
|
-
fileList.on('select', (item, idx) => {
|
|
45
|
-
const selected = fileList.getItem(idx).getText();
|
|
46
|
-
if (selected === '← Back') {
|
|
47
|
-
onBack();
|
|
48
|
-
manageBox.detach();
|
|
49
|
-
screen.render();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
else if (selected === '➕ Add File (Phase 3)') {
|
|
53
|
-
onAddFile();
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
screen.log(`Phase 3 TODO: View file content for ${selected}`);
|
|
57
|
-
});
|
|
58
|
-
// Bottom actions
|
|
59
|
-
const actionsBox = blessed.box({
|
|
60
|
-
label: ' Actions ',
|
|
61
|
-
border: 'line',
|
|
62
|
-
bottom: 0,
|
|
63
|
-
width: '100%',
|
|
64
|
-
height: 3,
|
|
65
|
-
style: { bg: 'black', fg: 'green' },
|
|
66
|
-
content: '{green-fg}💾 Save (calls save-pipeline) 📦 Pack (calls pack logic) Esc: Back{/}'
|
|
67
|
-
});
|
|
68
|
-
manageBox.append(actionsBox);
|
|
69
|
-
// Stub action keys
|
|
70
|
-
manageBox.key(['s'], () => {
|
|
71
|
-
onSave();
|
|
72
|
-
screen.log('Phase 3 TODO: Run save-pipeline for upsert');
|
|
73
|
-
});
|
|
74
|
-
manageBox.key(['p'], () => {
|
|
75
|
-
screen.log('Phase 3 TODO: Run pack for tarball');
|
|
76
|
-
});
|
|
77
|
-
fileList.focus();
|
|
78
|
-
screen.render();
|
|
79
|
-
return manageBox;
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=manage-view.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manage-view.js","sourceRoot":"","sources":["../../../src/tui/views/manage-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, SelectRenderable, SelectRenderableEvents, TextRenderable } from '@opentui/core';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
export function createPackageHubView(renderer) {
|
|
4
|
-
const container = new BoxRenderable(renderer, {
|
|
5
|
-
id: 'opkg-package-hub',
|
|
6
|
-
width: '100%',
|
|
7
|
-
height: '100%',
|
|
8
|
-
flexDirection: 'column',
|
|
9
|
-
gap: 1,
|
|
10
|
-
});
|
|
11
|
-
const title = new TextRenderable(renderer, {
|
|
12
|
-
id: 'opkg-package-hub-title',
|
|
13
|
-
content: 'Add/Update Package',
|
|
14
|
-
fg: '#bbbbbb',
|
|
15
|
-
});
|
|
16
|
-
const packageName = new TextRenderable(renderer, {
|
|
17
|
-
id: 'opkg-package-hub-package',
|
|
18
|
-
content: 'Package: (none selected)',
|
|
19
|
-
fg: '#cccccc',
|
|
20
|
-
});
|
|
21
|
-
const status = new TextRenderable(renderer, {
|
|
22
|
-
id: 'opkg-package-hub-status',
|
|
23
|
-
content: 'No package selected. Choose one from list or create new.',
|
|
24
|
-
fg: '#888888',
|
|
25
|
-
});
|
|
26
|
-
const filesSelect = new SelectRenderable(renderer, {
|
|
27
|
-
id: 'opkg-package-hub-files-select',
|
|
28
|
-
width: '100%',
|
|
29
|
-
height: 12,
|
|
30
|
-
showScrollIndicator: true,
|
|
31
|
-
showDescription: false,
|
|
32
|
-
wrapSelection: false,
|
|
33
|
-
options: [],
|
|
34
|
-
});
|
|
35
|
-
container.add(title);
|
|
36
|
-
container.add(packageName);
|
|
37
|
-
container.add(status);
|
|
38
|
-
container.add(filesSelect);
|
|
39
|
-
let infoLines = [
|
|
40
|
-
'a=add file (planned), Enter=preview, Del=remove, s=save, k=pack, b/Esc=back.',
|
|
41
|
-
];
|
|
42
|
-
const infoRenderables = [];
|
|
43
|
-
const renderInfo = () => {
|
|
44
|
-
// ensure we have renderables for each line
|
|
45
|
-
for (let i = infoRenderables.length; i < infoLines.length; i += 1) {
|
|
46
|
-
const r = new TextRenderable(renderer, {
|
|
47
|
-
id: `opkg-package-hub-line-${i}`,
|
|
48
|
-
content: '',
|
|
49
|
-
fg: '#888888',
|
|
50
|
-
});
|
|
51
|
-
infoRenderables.push(r);
|
|
52
|
-
container.add(r);
|
|
53
|
-
}
|
|
54
|
-
infoRenderables.forEach((r, idx) => {
|
|
55
|
-
if (idx < infoLines.length) {
|
|
56
|
-
r.content = infoLines[idx];
|
|
57
|
-
r.visible = true;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
r.visible = false;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
renderInfo();
|
|
65
|
-
let onEnter = null;
|
|
66
|
-
filesSelect.on(SelectRenderableEvents.ITEM_SELECTED, () => {
|
|
67
|
-
onEnter?.();
|
|
68
|
-
});
|
|
69
|
-
return {
|
|
70
|
-
container,
|
|
71
|
-
setPackageName: (name) => {
|
|
72
|
-
packageName.content = name ? `Package: ${name}` : 'Package: (none selected)';
|
|
73
|
-
},
|
|
74
|
-
setFiles: (paths) => {
|
|
75
|
-
if (!paths.length) {
|
|
76
|
-
filesSelect.options = [];
|
|
77
|
-
status.content = 'No files found in package.';
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const cwd = process.cwd();
|
|
81
|
-
filesSelect.options = paths.map((p) => {
|
|
82
|
-
const display = p.startsWith('/') || p.match(/^[A-Za-z]:[\\/]/)
|
|
83
|
-
? relativeSafe(cwd, p)
|
|
84
|
-
: p;
|
|
85
|
-
return {
|
|
86
|
-
name: display,
|
|
87
|
-
description: '',
|
|
88
|
-
value: p,
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
status.content = `Files (${paths.length}). Enter=preview, Del=remove.`;
|
|
92
|
-
},
|
|
93
|
-
setStatus: (message) => {
|
|
94
|
-
status.content = message;
|
|
95
|
-
},
|
|
96
|
-
getSelectedFile: () => {
|
|
97
|
-
const opt = filesSelect.getSelectedOption();
|
|
98
|
-
return opt?.value ?? null;
|
|
99
|
-
},
|
|
100
|
-
focusFiles: () => {
|
|
101
|
-
filesSelect.focus();
|
|
102
|
-
},
|
|
103
|
-
setEmptyState: (message) => {
|
|
104
|
-
status.content = message;
|
|
105
|
-
filesSelect.options = [];
|
|
106
|
-
},
|
|
107
|
-
setInfoLines: (lines) => {
|
|
108
|
-
infoLines = lines;
|
|
109
|
-
renderInfo();
|
|
110
|
-
},
|
|
111
|
-
onFileEnter: (cb) => {
|
|
112
|
-
onEnter = cb;
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
function relativeSafe(cwd, target) {
|
|
117
|
-
const rel = path.relative(cwd, target);
|
|
118
|
-
return rel === '' ? '.' : rel;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=package-hub.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package-hub.js","sourceRoot":"","sources":["../../../src/tui/views/package-hub.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { BoxRenderable, TextRenderable } from '@opentui/core';
|
|
2
|
-
export function createPlaceholderView(renderer, opts) {
|
|
3
|
-
const container = new BoxRenderable(renderer, {
|
|
4
|
-
id: opts.id,
|
|
5
|
-
width: '100%',
|
|
6
|
-
height: '100%',
|
|
7
|
-
flexDirection: 'column',
|
|
8
|
-
gap: 1,
|
|
9
|
-
});
|
|
10
|
-
container.add(new TextRenderable(renderer, {
|
|
11
|
-
id: `${opts.id}-title`,
|
|
12
|
-
content: opts.title,
|
|
13
|
-
fg: '#bbbbbb',
|
|
14
|
-
}));
|
|
15
|
-
opts.lines.forEach((line, idx) => {
|
|
16
|
-
container.add(new TextRenderable(renderer, {
|
|
17
|
-
id: `${opts.id}-line-${idx}`,
|
|
18
|
-
content: line,
|
|
19
|
-
fg: '#888888',
|
|
20
|
-
}));
|
|
21
|
-
});
|
|
22
|
-
return container;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=placeholder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/tui/views/placeholder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,UAAU,qBAAqB,CACpC,QAAa,EACb,IAAoD;IAEpD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,QAAQ;QACvB,GAAG,EAAE,CAAC;KACN,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE;QAC1C,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ;QACtB,OAAO,EAAE,IAAI,CAAC,KAAK;QACnB,EAAE,EAAE,SAAS;KACb,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAChC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC1C,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE;YAC5B,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,SAAS;SACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
|
-
import { existsSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import { chmod } from 'node:fs/promises';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import os from 'node:os';
|
|
6
|
-
import { logger } from './logger.js';
|
|
7
|
-
const DEFAULT_INSTALL_DIR = join(os.homedir(), '.opkg', 'bun');
|
|
8
|
-
const DEFAULT_BUN_HOME = join(os.homedir(), '.bun'); // bun installer fallback
|
|
9
|
-
const BUN_BIN_NAME = process.platform === 'win32' ? 'bun.exe' : 'bun';
|
|
10
|
-
/**
|
|
11
|
-
* Ensures a Bun binary is available. If Bun is not present on the system,
|
|
12
|
-
* downloads it into a cached directory (DEFAULT_INSTALL_DIR) using the
|
|
13
|
-
* official install script. Returns the path to the Bun executable.
|
|
14
|
-
*/
|
|
15
|
-
export async function ensureBunBinary() {
|
|
16
|
-
// 1) Respect explicit override
|
|
17
|
-
const envOverride = process.env.BUN_BIN;
|
|
18
|
-
if (envOverride) {
|
|
19
|
-
return envOverride;
|
|
20
|
-
}
|
|
21
|
-
// 2) If Bun already on PATH and running under Bun, just use it
|
|
22
|
-
if (process?.versions?.bun) {
|
|
23
|
-
return process.execPath;
|
|
24
|
-
}
|
|
25
|
-
// 3) Check cached installation
|
|
26
|
-
const cachedBin = join(DEFAULT_INSTALL_DIR, 'bin', BUN_BIN_NAME);
|
|
27
|
-
if (existsSync(cachedBin)) {
|
|
28
|
-
return cachedBin;
|
|
29
|
-
}
|
|
30
|
-
// 4) Download via official install script into cache dir
|
|
31
|
-
if (process.platform === 'win32') {
|
|
32
|
-
throw new Error('Automatic Bun bootstrap is not implemented for Windows. Please install Bun manually.');
|
|
33
|
-
}
|
|
34
|
-
logger.info('Bun not found; downloading to cache', { installDir: DEFAULT_INSTALL_DIR });
|
|
35
|
-
mkdirSync(DEFAULT_INSTALL_DIR, { recursive: true });
|
|
36
|
-
await runShellCommand(`curl -fsSL https://bun.sh/install | bash`, { BUN_INSTALL: DEFAULT_INSTALL_DIR });
|
|
37
|
-
if (!existsSync(cachedBin)) {
|
|
38
|
-
const defaultInstalled = join(DEFAULT_BUN_HOME, 'bin', BUN_BIN_NAME);
|
|
39
|
-
if (existsSync(defaultInstalled)) {
|
|
40
|
-
logger.warn('Bun installed to default ~/.bun; using that path instead', { defaultInstalled });
|
|
41
|
-
return defaultInstalled;
|
|
42
|
-
}
|
|
43
|
-
throw new Error(`Failed to install Bun to ${cachedBin}`);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
await chmod(cachedBin, 0o755);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// non-fatal
|
|
50
|
-
}
|
|
51
|
-
return cachedBin;
|
|
52
|
-
}
|
|
53
|
-
async function runShellCommand(cmd, envAdd = {}) {
|
|
54
|
-
return new Promise((resolve, reject) => {
|
|
55
|
-
const child = spawn(cmd, {
|
|
56
|
-
stdio: 'inherit',
|
|
57
|
-
shell: true,
|
|
58
|
-
env: { ...process.env, ...envAdd },
|
|
59
|
-
});
|
|
60
|
-
child.on('error', reject);
|
|
61
|
-
child.on('exit', (code, signal) => {
|
|
62
|
-
if (signal) {
|
|
63
|
-
return reject(new Error(`Command terminated by signal ${signal}`));
|
|
64
|
-
}
|
|
65
|
-
if (code && code !== 0) {
|
|
66
|
-
return reject(new Error(`Command exited with code ${code}`));
|
|
67
|
-
}
|
|
68
|
-
resolve();
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=bun-bootstrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bun-bootstrap.js","sourceRoot":"","sources":["../../src/utils/bun-bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/entity-id.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { nanoid } from 'nanoid';
|
|
2
|
-
/**
|
|
3
|
-
* Entity ID length
|
|
4
|
-
*/
|
|
5
|
-
const ENTITY_ID_LENGTH = 9;
|
|
6
|
-
/**
|
|
7
|
-
* Generate a new entity ID using nanoid with 9 character length
|
|
8
|
-
* This provides a consistent ID format across the application
|
|
9
|
-
*/
|
|
10
|
-
export function generateEntityId() {
|
|
11
|
-
return nanoid(ENTITY_ID_LENGTH);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Validate entity ID format (must be 9 chars, only word chars or hyphen)
|
|
15
|
-
*/
|
|
16
|
-
export function isValidEntityId(id) {
|
|
17
|
-
return typeof id === 'string' && id.length === ENTITY_ID_LENGTH && !/[^\w\-]/.test(id);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=entity-id.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-id.js","sourceRoot":"","sources":["../../src/utils/entity-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC"}
|