opkg 0.8.3 → 0.8.5
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 +43 -21
- package/dist/commands/install.js +36 -8
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.js +640 -72
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/save.js +10 -29
- package/dist/commands/save.js.map +1 -1
- package/dist/commands/status.js +169 -78
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.js +92 -5
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/core/config.js +66 -12
- package/dist/core/config.js.map +1 -1
- package/dist/core/flows/flow-source-discovery.js +19 -2
- package/dist/core/flows/flow-source-discovery.js.map +1 -1
- package/dist/core/flows/switch-resolver.js +56 -8
- package/dist/core/flows/switch-resolver.js.map +1 -1
- package/dist/core/install/base-detector.js +0 -9
- package/dist/core/install/base-detector.js.map +1 -1
- package/dist/core/install/convenience-matchers.js +66 -47
- package/dist/core/install/convenience-matchers.js.map +1 -1
- package/dist/core/install/conversion-context.js +163 -0
- package/dist/core/install/conversion-context.js.map +1 -0
- package/dist/core/install/conversion-coordinator.js +267 -0
- package/dist/core/install/conversion-coordinator.js.map +1 -0
- package/dist/core/install/detection-types.js +8 -0
- package/dist/core/install/detection-types.js.map +1 -0
- package/dist/core/install/download-keys.js +1 -2
- package/dist/core/install/download-keys.js.map +1 -1
- package/dist/core/install/file-format-detector.js +292 -0
- package/dist/core/install/file-format-detector.js.map +1 -0
- package/dist/core/install/format-detector.js +87 -19
- package/dist/core/install/format-detector.js.map +1 -1
- package/dist/core/install/format-distribution-analyzer.js +215 -0
- package/dist/core/install/format-distribution-analyzer.js.map +1 -0
- package/dist/core/install/format-group-merger.js +206 -0
- package/dist/core/install/format-group-merger.js.map +1 -0
- package/dist/core/install/import-flow-converter.js +430 -0
- package/dist/core/install/import-flow-converter.js.map +1 -0
- package/dist/core/install/list-handler.js +113 -0
- package/dist/core/install/list-handler.js.map +1 -0
- package/dist/core/install/marketplace-handler.js +41 -28
- package/dist/core/install/marketplace-handler.js.map +1 -1
- package/dist/core/install/operations/conflict-handler.js +0 -6
- package/dist/core/install/operations/conflict-handler.js.map +1 -1
- package/dist/core/install/operations/installation-executor.js +49 -2
- package/dist/core/install/operations/installation-executor.js.map +1 -1
- package/dist/core/install/operations/root-files.js +0 -9
- package/dist/core/install/operations/root-files.js.map +1 -1
- package/dist/core/install/orchestrator/orchestrator.js +19 -3
- package/dist/core/install/orchestrator/orchestrator.js.map +1 -1
- package/dist/core/install/orchestrator/strategies/git-strategy.js +4 -2
- package/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -1
- package/dist/core/install/package-marker-detector.js +185 -0
- package/dist/core/install/package-marker-detector.js.map +1 -0
- package/dist/core/install/path-package-loader.js +0 -9
- package/dist/core/install/path-package-loader.js.map +1 -1
- package/dist/core/install/plugin-detector.js +0 -3
- package/dist/core/install/plugin-detector.js.map +1 -1
- package/dist/core/install/plugin-metadata-resolver.js +0 -7
- package/dist/core/install/plugin-metadata-resolver.js.map +1 -1
- package/dist/core/install/plugin-sources.js +0 -15
- package/dist/core/install/plugin-sources.js.map +1 -1
- package/dist/core/install/plugin-transformer.js +0 -17
- package/dist/core/install/plugin-transformer.js.map +1 -1
- package/dist/core/install/preprocessing/convenience-preprocessor.js +2 -1
- package/dist/core/install/preprocessing/convenience-preprocessor.js.map +1 -1
- package/dist/core/install/preprocessing/input-classifier.js +1 -3
- package/dist/core/install/preprocessing/input-classifier.js.map +1 -1
- package/dist/core/install/preprocessing/options-normalizer.js +3 -0
- package/dist/core/install/preprocessing/options-normalizer.js.map +1 -1
- package/dist/core/install/remote-flow.js +1 -2
- package/dist/core/install/remote-flow.js.map +1 -1
- package/dist/core/install/resolution/executor.js +0 -5
- package/dist/core/install/resolution/executor.js.map +1 -1
- package/dist/core/install/resolution/installation-planner.js +0 -5
- package/dist/core/install/resolution/installation-planner.js.map +1 -1
- package/dist/core/install/resource-discoverer.js +233 -0
- package/dist/core/install/resource-discoverer.js.map +1 -0
- package/dist/core/install/resource-selection-menu.js +299 -0
- package/dist/core/install/resource-selection-menu.js.map +1 -0
- package/dist/core/install/resource-types.js +5 -0
- package/dist/core/install/resource-types.js.map +1 -0
- package/dist/core/install/schema-registry.js +205 -0
- package/dist/core/install/schema-registry.js.map +1 -0
- package/dist/core/install/sources/base.js.map +1 -1
- package/dist/core/install/sources/git-source.js +0 -4
- package/dist/core/install/sources/git-source.js.map +1 -1
- package/dist/core/install/sources/path-source.js +0 -4
- package/dist/core/install/sources/path-source.js.map +1 -1
- package/dist/core/install/sources/registry-source.js +44 -2
- package/dist/core/install/sources/registry-source.js.map +1 -1
- package/dist/core/install/sources/workspace-source.js +0 -2
- package/dist/core/install/sources/workspace-source.js.map +1 -1
- package/dist/core/install/strategies/base-strategy.js +1 -21
- package/dist/core/install/strategies/base-strategy.js.map +1 -1
- package/dist/core/install/strategies/conversion-strategy.js +0 -1
- package/dist/core/install/strategies/conversion-strategy.js.map +1 -1
- package/dist/core/install/strategies/flow-based-strategy.js +0 -4
- package/dist/core/install/strategies/flow-based-strategy.js.map +1 -1
- package/dist/core/install/strategies/helpers/temp-directory.js +37 -8
- package/dist/core/install/strategies/helpers/temp-directory.js.map +1 -1
- package/dist/core/install/strategies/strategy-selector.js +0 -17
- package/dist/core/install/strategies/strategy-selector.js.map +1 -1
- package/dist/core/install/unified/context-builders.js +3 -5
- package/dist/core/install/unified/context-builders.js.map +1 -1
- package/dist/core/install/unified/phases/conflicts.js +0 -2
- package/dist/core/install/unified/phases/conflicts.js.map +1 -1
- package/dist/core/install/unified/phases/convert.js +237 -0
- package/dist/core/install/unified/phases/convert.js.map +1 -0
- package/dist/core/install/unified/phases/execute.js +39 -5
- package/dist/core/install/unified/phases/execute.js.map +1 -1
- package/dist/core/install/unified/phases/load-package.js +2 -19
- package/dist/core/install/unified/phases/load-package.js.map +1 -1
- package/dist/core/install/unified/phases/manifest.js +0 -2
- package/dist/core/install/unified/phases/manifest.js.map +1 -1
- package/dist/core/install/unified/phases/report.js +0 -2
- package/dist/core/install/unified/phases/report.js.map +1 -1
- package/dist/core/install/unified/phases/resolve-dependencies.js +0 -1
- package/dist/core/install/unified/phases/resolve-dependencies.js.map +1 -1
- package/dist/core/install/unified/pipeline.js +15 -4
- package/dist/core/install/unified/pipeline.js.map +1 -1
- package/dist/core/list/list-pipeline.js +441 -32
- package/dist/core/list/list-pipeline.js.map +1 -1
- package/dist/core/list/list-tree-renderer.js +104 -0
- package/dist/core/list/list-tree-renderer.js.map +1 -0
- package/dist/core/list/platform-detection.js +93 -0
- package/dist/core/list/platform-detection.js.map +1 -0
- package/dist/core/list/remote-list-resolver.js +179 -0
- package/dist/core/list/remote-list-resolver.js.map +1 -0
- package/dist/core/list/untracked-files-scanner.js +471 -0
- package/dist/core/list/untracked-files-scanner.js.map +1 -0
- package/dist/core/platforms.js +111 -39
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/resources/installed-resources.js +35 -0
- package/dist/core/resources/installed-resources.js.map +1 -0
- package/dist/core/resources/markdown-metadata.js +24 -0
- package/dist/core/resources/markdown-metadata.js.map +1 -0
- package/dist/core/resources/resource-catalog.js +20 -0
- package/dist/core/resources/resource-catalog.js.map +1 -0
- package/dist/core/resources/resource-naming.js +16 -0
- package/dist/core/resources/resource-naming.js.map +1 -0
- package/dist/core/resources/resource-registry.js +48 -0
- package/dist/core/resources/resource-registry.js.map +1 -0
- package/dist/core/resources/source-key-classifier.js +22 -0
- package/dist/core/resources/source-key-classifier.js.map +1 -0
- package/dist/core/save/save-candidate-builder.js +126 -48
- package/dist/core/save/save-candidate-builder.js.map +1 -1
- package/dist/core/save/save-conflict-analyzer.js +184 -29
- package/dist/core/save/save-conflict-analyzer.js.map +1 -1
- package/dist/core/save/save-conversion-helper.js +522 -0
- package/dist/core/save/save-conversion-helper.js.map +1 -0
- package/dist/core/save/save-group-builder.js +197 -16
- package/dist/core/save/save-group-builder.js.map +1 -1
- package/dist/core/save/save-interactive-resolver.js +143 -28
- package/dist/core/save/save-interactive-resolver.js.map +1 -1
- package/dist/core/save/save-merge-extractor.js +272 -0
- package/dist/core/save/save-merge-extractor.js.map +1 -0
- package/dist/core/save/save-platform-handler.js +57 -17
- package/dist/core/save/save-platform-handler.js.map +1 -1
- package/dist/core/save/save-resolution-executor.js +76 -24
- package/dist/core/save/save-resolution-executor.js.map +1 -1
- package/dist/core/save/save-result-reporter.js +140 -131
- package/dist/core/save/save-result-reporter.js.map +1 -1
- package/dist/core/save/save-to-source-pipeline.js +137 -58
- package/dist/core/save/save-to-source-pipeline.js.map +1 -1
- package/dist/core/save/save-types.js +6 -0
- package/dist/core/save/save-types.js.map +1 -1
- package/dist/core/save/save-write-coordinator.js +416 -49
- package/dist/core/save/save-write-coordinator.js.map +1 -1
- package/dist/core/status/status-pipeline.js +56 -128
- package/dist/core/status/status-pipeline.js.map +1 -1
- package/dist/core/status/tracked-files-collector.js +128 -0
- package/dist/core/status/tracked-files-collector.js.map +1 -0
- package/dist/core/uninstall/uninstall-pipeline.js +49 -1
- package/dist/core/uninstall/uninstall-pipeline.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/entity-detector.js +78 -0
- package/dist/utils/entity-detector.js.map +1 -0
- package/dist/utils/flow-index-installer.js +7 -4
- package/dist/utils/flow-index-installer.js.map +1 -1
- package/dist/utils/formatters.js +1 -1
- package/dist/utils/fs.js +58 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/pattern-matcher.js +16 -0
- package/dist/utils/pattern-matcher.js.map +1 -1
- package/dist/utils/platform-mapper.js +105 -43
- package/dist/utils/platform-mapper.js.map +1 -1
- package/dist/utils/platform-normalization.js +57 -0
- package/dist/utils/platform-normalization.js.map +1 -0
- package/dist/utils/plugin-naming.js +52 -0
- package/dist/utils/plugin-naming.js.map +1 -1
- package/dist/utils/smart-multiselect.js +60 -0
- package/dist/utils/smart-multiselect.js.map +1 -0
- package/dist/utils/telemetry.js +166 -0
- package/dist/utils/telemetry.js.map +1 -0
- package/dist/utils/workspace-index-ownership.js +11 -0
- package/dist/utils/workspace-index-ownership.js.map +1 -1
- package/examples/config.jsonc +53 -0
- package/package.json +2 -1
- package/plans/format-detection/README.md +225 -0
- package/plans/format-detection/phase-1-file-detection.md +436 -0
- package/plans/format-detection/phase-2-package-detection.md +457 -0
- package/plans/format-detection/phase-3-import-flows.md +448 -0
- package/plans/format-detection/phase-3-summary.md +271 -0
- package/plans/format-detection/phase-4-integration.md +453 -0
- package/plans/format-detection/phase-4-summary.md +376 -0
- package/plans/format-detection/phase-5-validation.md +642 -0
- package/plans/format-detection/phase-6-documentation.md +598 -0
- package/plans/save-expansion/README.md +198 -0
- package/plans/save-expansion/SUMMARY.md +382 -0
- package/plans/save-expansion/phase-1-foundation.md +426 -0
- package/plans/save-expansion/phase-2-analysis.md +504 -0
- package/plans/save-expansion/phase-3-resolution.md +597 -0
- package/plans/save-expansion/phase-4-integration.md +717 -0
- package/platforms.jsonc +32 -8
- package/schemas/formats/claude-agent.schema.json +52 -0
- package/schemas/formats/opencode-agent.schema.json +64 -0
- package/schemas/formats/universal-agent.schema.json +29 -0
- package/schemas/platforms-v1.json +47 -4
- package/specs/commands-overview.md +18 -0
- package/specs/save/README.md +192 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
-
<p align="center">
|
|
12
|
+
<p align="center">The package manager for coding agent configs.</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://www.npmjs.com/package/opkg " target="blank">
|
|
15
15
|
<img src="https://img.shields.io/npm/v/opkg?style=flat-square" alt="Npm package for OpenPackage">
|
|
@@ -33,8 +33,7 @@ OpenPackage enables simple, modular management of coding agent configs, providin
|
|
|
33
33
|
|
|
34
34
|
## Why OpenPackage?
|
|
35
35
|
|
|
36
|
-
Modern AI coding tools are powerful and efficient when rules, commands, subagents, and skills are properly setup.
|
|
37
|
-
Unfortunately, these files remain difficult to organize and manage.
|
|
36
|
+
Modern AI coding tools are powerful and efficient when rules, commands, subagents, and skills are properly setup. Unfortunately, these files remain difficult to organize and manage.
|
|
38
37
|
|
|
39
38
|
OpenPackage provides a centralized and universal interface for installing, uninstalling, and packaging coding agent config files for simplified management and distribution.
|
|
40
39
|
|
|
@@ -54,7 +53,7 @@ OpenPackage provides a centralized and universal interface for installing, unins
|
|
|
54
53
|
|
|
55
54
|
At its core, OpenPackage is a lightweight CLI package manager that performs installs and uninstalls of config files, with the ability to keep track of file sources and dependencies, plus packaging capabilities.
|
|
56
55
|
|
|
57
|
-
It's basically a much more powerful, universal, and open source version of Claude Code Plugins.
|
|
56
|
+
It's basically a much more powerful, universal, and open source version of Vercel Skills and Claude Code Plugins.
|
|
58
57
|
|
|
59
58
|
## Install OpenPackage
|
|
60
59
|
|
|
@@ -75,44 +74,61 @@ Installs all files from a specified resource into the codebase at cwd, formatted
|
|
|
75
74
|
#### Install resources (packages, plugins, rules, commands, agents, and skills)
|
|
76
75
|
|
|
77
76
|
```bash title="Terminal"
|
|
78
|
-
#
|
|
79
|
-
opkg install
|
|
77
|
+
# OpenPackage local or remote packages
|
|
78
|
+
opkg install <package-name>
|
|
80
79
|
|
|
81
|
-
#
|
|
82
|
-
opkg install gh@<
|
|
83
|
-
|
|
84
|
-
# Agents and Skills hosted on GitHub
|
|
85
|
-
opkg install gh@<user>/<repo> --plugins <plugin-name> --agents <agent-name>
|
|
86
|
-
opkg install gh@<user>/<repo> --plugins <plugin-name> --skills <agent-name>
|
|
87
|
-
opkg install gh@<user>/<repo> --skills <agent-name>
|
|
80
|
+
# Github repos
|
|
81
|
+
opkg install gh@<owner>/<repo>
|
|
88
82
|
|
|
89
83
|
# GitHub URLs
|
|
90
|
-
opkg install https://github.com/<
|
|
84
|
+
opkg install https://github.com/<owner>/<repo>/<path-to-resource>
|
|
91
85
|
|
|
92
86
|
# Local path to package or Claude Plugin
|
|
93
87
|
opkg install <path-to-dir>
|
|
94
88
|
|
|
89
|
+
# Git URLs
|
|
90
|
+
opkg install git@<host>:<repo>.git
|
|
91
|
+
|
|
95
92
|
# Examples
|
|
93
|
+
opkg install essentials
|
|
96
94
|
opkg install gh@anthropics/claude-code --plugins code-review
|
|
95
|
+
opkg install gh@wshobson/agents --plugins ui-design --agents ui-designer
|
|
96
|
+
opkg install gh@wshobson/agents/plugins/ui-design/agents/ui-designer
|
|
97
97
|
opkg install gh@vercel-labs/agent-skills --skills react-best-practices
|
|
98
98
|
opkg install https://github.com/anthropics/claude-code/tree/main/plugins/code-review
|
|
99
|
+
opkg install https://github.com/wshobson/agents/tree/main/plugins/ui-design/ui-designer.md
|
|
99
100
|
opkg install https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices
|
|
100
101
|
```
|
|
101
102
|
|
|
102
103
|
#### Options
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
| Option | Description |
|
|
106
|
+
| --- | --- |
|
|
107
|
+
| `-g, --global` | Install to user directory instead of project |
|
|
108
|
+
| `-a, --agents <agents...>` | Install specific agents by name |
|
|
109
|
+
| `-s, --skills <skills...>` | Install specific skills by name |
|
|
110
|
+
| `--plugins <plugins...>` | Install specific plugins by name |
|
|
111
|
+
| `--platforms` | Install to only specified platforms |
|
|
112
|
+
| `--remote` | Install from remote source / skip cache |
|
|
109
113
|
|
|
110
114
|
### List installed resources
|
|
111
115
|
```bash title="Terminal"
|
|
112
116
|
opkg list # Lists resources installed to workspace at cwd
|
|
113
117
|
opkg list <package> # Lists installed files for specified resource
|
|
114
118
|
```
|
|
115
|
-
Use the
|
|
119
|
+
Use the list command to show an overview of packages and files installed.
|
|
120
|
+
|
|
121
|
+
#### Options
|
|
122
|
+
|
|
123
|
+
| Option | Description |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| `-p, --project` | Lists only project scoped packages & resource file count |
|
|
126
|
+
| `-g, --global` | Lists only user scoped packages & resource file count |
|
|
127
|
+
| `-a, --all` | Lists all packages recursively (includes nested) |
|
|
128
|
+
| `-f, --files` | Lists all resource files |
|
|
129
|
+
| `-t, --tracked` | Lists all packages & resources tracked by OpenPackage |
|
|
130
|
+
| `-u, --untracked` | Lists all resources not tracked by OpenPackage |
|
|
131
|
+
| `--platforms` | Lists packages & files from specified platforms |
|
|
116
132
|
|
|
117
133
|
### Uninstall packages
|
|
118
134
|
```bash title="Terminal"
|
|
@@ -120,6 +136,12 @@ opkg uninstall <package>
|
|
|
120
136
|
```
|
|
121
137
|
Removes all files for a package from the codebase at cwd.
|
|
122
138
|
|
|
139
|
+
#### Options
|
|
140
|
+
|
|
141
|
+
| Option | Description |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| `-g, --global` | Uninstall from user directory |
|
|
144
|
+
|
|
123
145
|
> [!TIP]
|
|
124
146
|
> Learn more by heading over to the [official docs](https://openpackage.dev/docs).
|
|
125
147
|
|
|
@@ -161,7 +183,7 @@ opkg remove <package> commands/clean.md # Removes file or dir from packa
|
|
|
161
183
|
> [!TIP]
|
|
162
184
|
> Learn more about packages from the [packages doc](https://openpackage.dev/docs/packages) on our official docs.
|
|
163
185
|
|
|
164
|
-
## Supported Platforms
|
|
186
|
+
## Supported Platforms & Files
|
|
165
187
|
|
|
166
188
|
OpenPackage performs installation and platform sync of files for supported AI coding platforms outlined by the table below.
|
|
167
189
|
|
package/dist/commands/install.js
CHANGED
|
@@ -2,6 +2,8 @@ import { withErrorHandling } from '../utils/errors.js';
|
|
|
2
2
|
import { createOrchestrator } from '../core/install/orchestrator/index.js';
|
|
3
3
|
import { normalizeInstallOptions } from '../core/install/preprocessing/index.js';
|
|
4
4
|
import { createExecutionContext } from '../core/execution-context.js';
|
|
5
|
+
import { createTelemetryCollector } from '../utils/telemetry.js';
|
|
6
|
+
import { createHttpClient } from '../utils/http-client.js';
|
|
5
7
|
/**
|
|
6
8
|
* Setup install command
|
|
7
9
|
*/
|
|
@@ -10,34 +12,60 @@ export function setupInstallCommand(program) {
|
|
|
10
12
|
.command('install')
|
|
11
13
|
.alias('i')
|
|
12
14
|
.description('Install packages to workspace')
|
|
13
|
-
.argument('[
|
|
14
|
-
'Supports package@version syntax.')
|
|
15
|
+
.argument('[resource-spec]', 'resource to install (package[@version], gh@owner/repo, https://github.com/owner/repo, /path/to/local, or git@host:repo.git)')
|
|
15
16
|
.option('-g, --global', 'install to home directory (~/) instead of current workspace')
|
|
17
|
+
.option('-a, --agents <names...>', 'install specific agents by name (matches frontmatter name or filename)')
|
|
18
|
+
.option('-s, --skills <names...>', 'install specific skills by name (matches SKILL.md frontmatter name or directory name)')
|
|
19
|
+
.option('-r, --rules <names...>', 'install specific rules by name (matches frontmatter name or filename)')
|
|
20
|
+
.option('-c, --commands <names...>', 'install specific commands by name (matches frontmatter name or filename)')
|
|
21
|
+
.option('--plugins <names...>', 'install specific plugins from marketplace (bypasses interactive selection)')
|
|
22
|
+
.option('--platforms <platforms...>', 'install to specific platforms (e.g., cursor claudecode opencode)')
|
|
16
23
|
.option('--dry-run', 'preview changes without applying them')
|
|
17
24
|
.option('--force', 'overwrite existing files')
|
|
18
25
|
.option('--conflicts <strategy>', 'conflict handling strategy: keep-both, overwrite, skip, or ask')
|
|
19
|
-
.option('--dev', 'add
|
|
20
|
-
.option('--platforms <platforms...>', 'prepare specific platforms (e.g., cursor claudecode opencode)')
|
|
26
|
+
.option('--dev', 'add resource to dev-dependencies (instead of dependencies)')
|
|
21
27
|
.option('--remote', 'pull and install from remote registry, ignoring local versions')
|
|
22
28
|
.option('--local', 'resolve and install using only local registry versions, skipping remote metadata and pulls')
|
|
23
29
|
.option('--profile <profile>', 'profile to use for authentication')
|
|
24
30
|
.option('--api-key <key>', 'API key for authentication (overrides profile)')
|
|
25
|
-
.option('--
|
|
26
|
-
.option('--agents <names...>', 'install specific agents by name (matches frontmatter name or filename)')
|
|
27
|
-
.option('--skills <names...>', 'install specific skills by name (matches SKILL.md frontmatter name or directory name)')
|
|
31
|
+
// .option('--list', 'interactively select resources to install (agents, skills, commands, etc.)')
|
|
28
32
|
.action(withErrorHandling(async (packageName, options, command) => {
|
|
33
|
+
// Validate mutually exclusive options
|
|
34
|
+
if (options.list && (options.agents || options.skills || options.rules || options.commands)) {
|
|
35
|
+
throw new Error('--list cannot be used with --agents, --skills, --rules, or --commands. Use --list for interactive selection or specify filters directly.');
|
|
36
|
+
}
|
|
29
37
|
// Get program-level options (for --cwd)
|
|
30
38
|
const programOpts = command.parent?.opts() || {};
|
|
31
|
-
// Create
|
|
39
|
+
// Create telemetry collector
|
|
40
|
+
const telemetryCollector = await createTelemetryCollector('install');
|
|
41
|
+
// Create execution context with telemetry
|
|
32
42
|
const execContext = await createExecutionContext({
|
|
33
43
|
global: options.global,
|
|
34
44
|
cwd: programOpts.cwd
|
|
35
45
|
});
|
|
46
|
+
// Add telemetry collector to context
|
|
47
|
+
if (telemetryCollector) {
|
|
48
|
+
execContext.telemetryCollector = telemetryCollector;
|
|
49
|
+
}
|
|
36
50
|
// Normalize all options at CLI boundary
|
|
37
51
|
const normalizedOptions = normalizeInstallOptions(options);
|
|
38
52
|
// Create and execute orchestrator with execution context
|
|
39
53
|
const orchestrator = createOrchestrator();
|
|
40
54
|
const result = await orchestrator.execute(packageName, normalizedOptions, execContext);
|
|
55
|
+
// Flush telemetry (truly fire-and-forget, non-blocking)
|
|
56
|
+
if (telemetryCollector && result.success) {
|
|
57
|
+
// Run in background without blocking command completion
|
|
58
|
+
setImmediate(() => {
|
|
59
|
+
createHttpClient({
|
|
60
|
+
apiKey: options.apiKey,
|
|
61
|
+
profile: options.profile
|
|
62
|
+
})
|
|
63
|
+
.then(httpClient => telemetryCollector.flush(httpClient))
|
|
64
|
+
.catch(() => {
|
|
65
|
+
// Silent failure - already logged in telemetry module
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
41
69
|
// Handle result
|
|
42
70
|
if (!result.success) {
|
|
43
71
|
if (result.error === 'Package not found') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|