opkg 0.8.2 → 0.8.3

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.
Files changed (100) hide show
  1. package/README.md +3 -3
  2. package/dist/commands/install.js +12 -4
  3. package/dist/commands/install.js.map +1 -1
  4. package/dist/commands/list.js +18 -8
  5. package/dist/commands/list.js.map +1 -1
  6. package/dist/commands/uninstall.js +20 -23
  7. package/dist/commands/uninstall.js.map +1 -1
  8. package/dist/core/cache-manager.js +104 -0
  9. package/dist/core/cache-manager.js.map +1 -0
  10. package/dist/core/dependency-resolver/resolver.js +4 -2
  11. package/dist/core/dependency-resolver/resolver.js.map +1 -1
  12. package/dist/core/execution-context.js +145 -0
  13. package/dist/core/execution-context.js.map +1 -0
  14. package/dist/core/install/git-package-loader.js +2 -1
  15. package/dist/core/install/git-package-loader.js.map +1 -1
  16. package/dist/core/install/marketplace-handler.js +9 -9
  17. package/dist/core/install/marketplace-handler.js.map +1 -1
  18. package/dist/core/install/orchestrator/orchestrator.js +40 -41
  19. package/dist/core/install/orchestrator/orchestrator.js.map +1 -1
  20. package/dist/core/install/orchestrator/strategies/base.js.map +1 -1
  21. package/dist/core/install/orchestrator/strategies/bulk-strategy.js +5 -5
  22. package/dist/core/install/orchestrator/strategies/bulk-strategy.js.map +1 -1
  23. package/dist/core/install/orchestrator/strategies/git-strategy.js +8 -8
  24. package/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -1
  25. package/dist/core/install/orchestrator/strategies/path-strategy.js +5 -5
  26. package/dist/core/install/orchestrator/strategies/path-strategy.js.map +1 -1
  27. package/dist/core/install/orchestrator/strategies/registry-strategy.js +4 -4
  28. package/dist/core/install/orchestrator/strategies/registry-strategy.js.map +1 -1
  29. package/dist/core/install/preprocessing/input-classifier.js +4 -4
  30. package/dist/core/install/preprocessing/input-classifier.js.map +1 -1
  31. package/dist/core/install/resolution/content-root-cache.js +9 -5
  32. package/dist/core/install/resolution/content-root-cache.js.map +1 -1
  33. package/dist/core/install/resolution/executor.js +5 -5
  34. package/dist/core/install/resolution/executor.js.map +1 -1
  35. package/dist/core/install/resolution/graph-builder.js +1 -1
  36. package/dist/core/install/resolution/graph-builder.js.map +1 -1
  37. package/dist/core/install/resolution/installation-planner.js +5 -5
  38. package/dist/core/install/resolution/installation-planner.js.map +1 -1
  39. package/dist/core/install/resolution/package-loader.js +7 -7
  40. package/dist/core/install/resolution/package-loader.js.map +1 -1
  41. package/dist/core/install/sources/base.js.map +1 -1
  42. package/dist/core/install/sources/git-source.js +6 -3
  43. package/dist/core/install/sources/git-source.js.map +1 -1
  44. package/dist/core/install/sources/path-source.js +4 -3
  45. package/dist/core/install/sources/path-source.js.map +1 -1
  46. package/dist/core/install/sources/registry-source.js +3 -3
  47. package/dist/core/install/sources/registry-source.js.map +1 -1
  48. package/dist/core/install/sources/workspace-source.js +5 -5
  49. package/dist/core/install/sources/workspace-source.js.map +1 -1
  50. package/dist/core/install/unified/context-builders.js +30 -28
  51. package/dist/core/install/unified/context-builders.js.map +1 -1
  52. package/dist/core/install/unified/phases/execute.js +2 -2
  53. package/dist/core/install/unified/phases/execute.js.map +1 -1
  54. package/dist/core/install/unified/phases/load-package.js +1 -1
  55. package/dist/core/install/unified/phases/load-package.js.map +1 -1
  56. package/dist/core/install/unified/phases/manifest.js +2 -2
  57. package/dist/core/install/unified/phases/manifest.js.map +1 -1
  58. package/dist/core/install/unified/phases/report.js +1 -1
  59. package/dist/core/install/unified/phases/report.js.map +1 -1
  60. package/dist/core/install/unified/phases/resolve-dependencies.js +3 -2
  61. package/dist/core/install/unified/phases/resolve-dependencies.js.map +1 -1
  62. package/dist/core/install/unified/pipeline.js +1 -1
  63. package/dist/core/install/unified/pipeline.js.map +1 -1
  64. package/dist/core/install/version-selection.js +15 -1
  65. package/dist/core/install/version-selection.js.map +1 -1
  66. package/dist/core/list/list-pipeline.js +12 -11
  67. package/dist/core/list/list-pipeline.js.map +1 -1
  68. package/dist/core/platforms.js +62 -62
  69. package/dist/core/platforms.js.map +1 -1
  70. package/dist/core/remote-pull.js +21 -0
  71. package/dist/core/remote-pull.js.map +1 -1
  72. package/dist/core/uninstall/flow-aware-uninstaller.js +8 -8
  73. package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -1
  74. package/dist/core/uninstall/uninstall-pipeline.js +64 -57
  75. package/dist/core/uninstall/uninstall-pipeline.js.map +1 -1
  76. package/dist/core/uninstall/uninstall-reporter.js +22 -0
  77. package/dist/core/uninstall/uninstall-reporter.js.map +1 -0
  78. package/dist/index.js +5 -15
  79. package/dist/index.js.map +1 -1
  80. package/dist/types/execution-context.js +8 -0
  81. package/dist/types/execution-context.js.map +1 -0
  82. package/dist/types/index.js +1 -0
  83. package/dist/types/index.js.map +1 -1
  84. package/dist/utils/directory-preservation.js +11 -11
  85. package/dist/utils/directory-preservation.js.map +1 -1
  86. package/dist/utils/git-clone.js +98 -1
  87. package/dist/utils/git-clone.js.map +1 -1
  88. package/dist/utils/home-directory.js +71 -0
  89. package/dist/utils/home-directory.js.map +1 -0
  90. package/dist/utils/package-management.js +16 -16
  91. package/dist/utils/package-management.js.map +1 -1
  92. package/dist/utils/paths.js +15 -15
  93. package/dist/utils/paths.js.map +1 -1
  94. package/dist/utils/platform-root-files.js +3 -3
  95. package/dist/utils/platform-root-files.js.map +1 -1
  96. package/dist/utils/root-file-uninstaller.js +9 -25
  97. package/dist/utils/root-file-uninstaller.js.map +1 -1
  98. package/dist/utils/workspace-index-yml.js +4 -4
  99. package/dist/utils/workspace-index-yml.js.map +1 -1
  100. package/package.json +1 -1
package/README.md CHANGED
@@ -76,9 +76,9 @@ Installs all files from a specified resource into the codebase at cwd, formatted
76
76
 
77
77
  ```bash title="Terminal"
78
78
  # Packages or Marketplaces
79
- opkg install gh@<user>/<repo> --plugins <plugin-name>
79
+ opkg install gh@<user>/<repo>
80
80
 
81
- # Packages or Claude Code plugins hosted on GitHub
81
+ # Packages or Claude Plugins hosted on GitHub
82
82
  opkg install gh@<user>/<repo> --plugins <plugin-name>
83
83
 
84
84
  # Agents and Skills hosted on GitHub
@@ -89,7 +89,7 @@ opkg install gh@<user>/<repo> --skills <agent-name>
89
89
  # GitHub URLs
90
90
  opkg install https://github.com/<user>/<repo>/<path-to-resource>
91
91
 
92
- # Local path to package or Claude Code plugin
92
+ # Local path to package or Claude Plugin
93
93
  opkg install <path-to-dir>
94
94
 
95
95
  # Examples
@@ -1,6 +1,7 @@
1
1
  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
+ import { createExecutionContext } from '../core/execution-context.js';
4
5
  /**
5
6
  * Setup install command
6
7
  */
@@ -11,6 +12,7 @@ export function setupInstallCommand(program) {
11
12
  .description('Install packages to workspace')
12
13
  .argument('[package-name]', 'name of the package to install (optional - installs workspace-level files and all packages from openpackage.yml if not specified). ' +
13
14
  'Supports package@version syntax.')
15
+ .option('-g, --global', 'install to home directory (~/) instead of current workspace')
14
16
  .option('--dry-run', 'preview changes without applying them')
15
17
  .option('--force', 'overwrite existing files')
16
18
  .option('--conflicts <strategy>', 'conflict handling strategy: keep-both, overwrite, skip, or ask')
@@ -23,13 +25,19 @@ export function setupInstallCommand(program) {
23
25
  .option('--plugins <names...>', 'install specific plugins from marketplace (bypasses interactive selection)')
24
26
  .option('--agents <names...>', 'install specific agents by name (matches frontmatter name or filename)')
25
27
  .option('--skills <names...>', 'install specific skills by name (matches SKILL.md frontmatter name or directory name)')
26
- .action(withErrorHandling(async (packageName, options) => {
27
- const cwd = process.cwd();
28
+ .action(withErrorHandling(async (packageName, options, command) => {
29
+ // Get program-level options (for --cwd)
30
+ const programOpts = command.parent?.opts() || {};
31
+ // Create execution context
32
+ const execContext = await createExecutionContext({
33
+ global: options.global,
34
+ cwd: programOpts.cwd
35
+ });
28
36
  // Normalize all options at CLI boundary
29
37
  const normalizedOptions = normalizeInstallOptions(options);
30
- // Create and execute orchestrator
38
+ // Create and execute orchestrator with execution context
31
39
  const orchestrator = createOrchestrator();
32
- const result = await orchestrator.execute(packageName, normalizedOptions, cwd);
40
+ const result = await orchestrator.execute(packageName, normalizedOptions, execContext);
33
41
  // Handle result
34
42
  if (!result.success) {
35
43
  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;AAEjF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CACP,gBAAgB,EAChB,qIAAqI;QACrI,kCAAkC,CACnC;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;SAC7C,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,CAAC;SAClG,MAAM,CAAC,OAAO,EAAE,yDAAyD,CAAC;SAC1E,MAAM,CAAC,4BAA4B,EAAE,+DAA+D,CAAC;SACrG,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,4FAA4F,CAAC;SAC/G,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,sBAAsB,EAAE,4EAA4E,CAAC;SAC5G,MAAM,CAAC,qBAAqB,EAAE,wEAAwE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,uFAAuF,CAAC;SACtH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAC7B,WAA+B,EAC/B,OAIC,EACD,EAAE;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,wCAAwC;QACxC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE3D,kCAAkC;QAClC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAE/E,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACzC,OAAO,CAAC,4BAA4B;YACtC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
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;AAEtE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CACP,gBAAgB,EAChB,qIAAqI;QACrI,kCAAkC,CACnC;SACA,MAAM,CAAC,cAAc,EAAE,6DAA6D,CAAC;SACrF,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;SAC7C,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,CAAC;SAClG,MAAM,CAAC,OAAO,EAAE,yDAAyD,CAAC;SAC1E,MAAM,CAAC,4BAA4B,EAAE,+DAA+D,CAAC;SACrG,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,4FAA4F,CAAC;SAC/G,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,sBAAsB,EAAE,4EAA4E,CAAC;SAC5G,MAAM,CAAC,qBAAqB,EAAE,wEAAwE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,uFAAuF,CAAC;SACtH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAC7B,WAA+B,EAC/B,OAIC,EACD,OAAgB,EAChB,EAAE;QACF,wCAAwC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,WAAW,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE3D,yDAAyD;QACzD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAEvF,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACzC,OAAO,CAAC,4BAA4B;YACtC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -3,6 +3,7 @@ import { runListPipeline } from '../core/list/list-pipeline.js';
3
3
  import { logger } from '../utils/logger.js';
4
4
  import { parsePackageYml } from '../utils/package-yml.js';
5
5
  import { getLocalPackageYmlPath } from '../utils/paths.js';
6
+ import { createExecutionContext, getDisplayTargetDir } from '../core/execution-context.js';
6
7
  // ANSI escape codes for styling
7
8
  const DIM = '\x1b[2m';
8
9
  const RESET = '\x1b[0m';
@@ -55,11 +56,19 @@ function printDetailedView(pkg) {
55
56
  }
56
57
  }
57
58
  }
58
- async function listCommand(packageName) {
59
- const cwd = process.cwd();
60
- logger.info(`Listing packages for directory: ${cwd}`);
59
+ async function listCommand(packageName, options, command) {
60
+ // Get program-level options (for --cwd)
61
+ const programOpts = command.parent?.opts() || {};
62
+ // Create execution context
63
+ const execContext = await createExecutionContext({
64
+ global: options.global,
65
+ cwd: programOpts.cwd
66
+ });
67
+ const displayDir = getDisplayTargetDir(execContext);
68
+ logger.info(`Listing packages for directory: ${displayDir}`);
61
69
  try {
62
- const result = await runListPipeline(packageName);
70
+ // Run list pipeline with execution context
71
+ const result = await runListPipeline(packageName, execContext);
63
72
  const packages = result.data?.packages ?? [];
64
73
  // If specific package requested, show detailed view
65
74
  if (packageName) {
@@ -70,7 +79,7 @@ async function listCommand(packageName) {
70
79
  return { success: true, data: { packages } };
71
80
  }
72
81
  // Otherwise show tree view
73
- const manifestPath = getLocalPackageYmlPath(cwd);
82
+ const manifestPath = getLocalPackageYmlPath(execContext.targetDir);
74
83
  let workspaceName = 'Unnamed';
75
84
  let workspaceVersion;
76
85
  try {
@@ -81,7 +90,7 @@ async function listCommand(packageName) {
81
90
  catch (error) {
82
91
  logger.warn(`Failed to read workspace manifest: ${error}`);
83
92
  }
84
- printTreeView(workspaceName, workspaceVersion, packages, cwd);
93
+ printTreeView(workspaceName, workspaceVersion, packages, displayDir);
85
94
  return { success: true, data: { packages } };
86
95
  }
87
96
  catch (error) {
@@ -96,8 +105,9 @@ export function setupListCommand(program) {
96
105
  .command('list')
97
106
  .description('Show installed packages and files')
98
107
  .argument('[package]', 'Optional package name to show installed per package')
99
- .action(withErrorHandling(async (packageName) => {
100
- await listCommand(packageName);
108
+ .option('-g, --global', 'list packages installed in home directory (~/) instead of current workspace')
109
+ .action(withErrorHandling(async (packageName, options, command) => {
110
+ await listCommand(packageName, options, command);
101
111
  }));
102
112
  }
103
113
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,25 @@
1
1
  import { withErrorHandling, ValidationError } from '../utils/errors.js';
2
2
  import { runUninstallPipeline } from '../core/uninstall/uninstall-pipeline.js';
3
- import { formatPathForDisplay } from '../utils/formatters.js';
4
- async function uninstallPackageCommand(packageName, options) {
5
- // No validation - let the pipeline normalize and look up the package
6
- const result = await runUninstallPipeline(packageName, options);
3
+ import { reportUninstallResult } from '../core/uninstall/uninstall-reporter.js';
4
+ import { createExecutionContext } from '../core/execution-context.js';
5
+ async function uninstallPackageCommand(packageName, options, command) {
6
+ // Get program-level options (for --cwd)
7
+ const programOpts = command.parent?.opts() || {};
8
+ // Create execution context
9
+ const execContext = await createExecutionContext({
10
+ global: options.global,
11
+ cwd: programOpts.cwd
12
+ });
13
+ // Run uninstall pipeline with execution context
14
+ const result = await runUninstallPipeline(packageName, options, execContext);
7
15
  if (!result.success) {
8
16
  throw new ValidationError(result.error || 'Uninstall failed');
9
17
  }
10
- console.log(`✓ Uninstalled ${packageName}`);
11
- const removedFiles = result.data?.removedFiles ?? [];
12
- const rootFilesUpdated = result.data?.rootFilesUpdated ?? [];
13
- if (removedFiles.length > 0) {
14
- console.log(`✓ Removed files: ${removedFiles.length}`);
15
- const sortedFiles = [...removedFiles].sort((a, b) => a.localeCompare(b));
16
- for (const file of sortedFiles) {
17
- console.log(` ├── ${formatPathForDisplay(file)}`);
18
- }
19
- }
20
- if (rootFilesUpdated.length > 0) {
21
- console.log(`✓ Updated root files: ${rootFilesUpdated.length}`);
22
- const sortedFiles = [...rootFilesUpdated].sort((a, b) => a.localeCompare(b));
23
- for (const file of sortedFiles) {
24
- console.log(` ├── ${formatPathForDisplay(file)} (updated)`);
25
- }
26
- }
18
+ reportUninstallResult({
19
+ packageName,
20
+ removedFiles: result.data?.removedFiles ?? [],
21
+ rootFilesUpdated: result.data?.rootFilesUpdated ?? []
22
+ });
27
23
  }
28
24
  export function setupUninstallCommand(program) {
29
25
  program
@@ -31,9 +27,10 @@ export function setupUninstallCommand(program) {
31
27
  .alias('un')
32
28
  .description('Remove installed package files')
33
29
  .argument('<package-name>', 'name of the package to uninstall')
30
+ .option('-g, --global', 'uninstall from home directory (~/) instead of current workspace')
34
31
  .option('--dry-run', 'preview changes without applying them')
35
- .action(withErrorHandling(async (packageName, options) => {
36
- await uninstallPackageCommand(packageName, options);
32
+ .action(withErrorHandling(async (packageName, options, command) => {
33
+ await uninstallPackageCommand(packageName, options, command);
37
34
  }));
38
35
  }
39
36
  //# sourceMappingURL=uninstall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,OAAyB;IAEzB,qEAAqE;IACrE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,gBAAgB,IAAI,EAAE,CAAC;IAE7D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,yBAAyB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAyB,EAAE,EAAE;QACjF,MAAM,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,OAAyB,EACzB,OAAgB;IAEhB,wCAAwC;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEjD,2BAA2B;IAC3B,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,WAAW,CAAC,GAAG;KACrB,CAAC,CAAC;IAEH,gDAAgD;IAChD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,qBAAqB,CAAC;QACpB,WAAW;QACX,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE;QAC7C,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,gBAAgB,IAAI,EAAE;KACtD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC9D,MAAM,CAAC,cAAc,EAAE,iEAAiE,CAAC;SACzF,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAyB,EAAE,OAAgB,EAAE,EAAE;QACnG,MAAM,uBAAuB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { homedir } from 'os';
2
+ import { join } from 'path';
3
+ import { exists, ensureDir, readTextFile, writeTextFile } from '../utils/fs.js';
4
+ import { computeGitUrlHash } from '../utils/git-cache.js';
5
+ import { logger } from '../utils/logger.js';
6
+ import { getPackageVersionPath } from './directory.js';
7
+ const METADATA_TTL_MS = 10 * 60 * 1000; // 10 minutes
8
+ function getGitRefsCacheDir() {
9
+ return join(homedir(), '.openpackage', 'cache', 'git-refs');
10
+ }
11
+ function getMetadataCacheDir() {
12
+ return join(homedir(), '.openpackage', 'cache', 'metadata');
13
+ }
14
+ function getGitRefCachePath(url) {
15
+ const urlHash = computeGitUrlHash(url);
16
+ return join(getGitRefsCacheDir(), `${urlHash}.json`);
17
+ }
18
+ function getMetadataCachePath(name) {
19
+ const safeName = name.replace(/\//g, '__');
20
+ return join(getMetadataCacheDir(), `${safeName}.json`);
21
+ }
22
+ function isExpired(fetchedAt, ttlMs) {
23
+ const fetchedTime = new Date(fetchedAt).getTime();
24
+ return Date.now() - fetchedTime > ttlMs;
25
+ }
26
+ async function readJsonFile(filePath) {
27
+ if (!(await exists(filePath))) {
28
+ return null;
29
+ }
30
+ try {
31
+ const content = await readTextFile(filePath);
32
+ return JSON.parse(content);
33
+ }
34
+ catch (error) {
35
+ logger.warn(`Failed to read cache file at ${filePath}`, { error });
36
+ return null;
37
+ }
38
+ }
39
+ async function writeJsonFile(filePath, data) {
40
+ const dir = join(filePath, '..');
41
+ await ensureDir(dir);
42
+ await writeTextFile(filePath, JSON.stringify(data, null, 2));
43
+ }
44
+ export function createCacheManager() {
45
+ return {
46
+ async getCachedCommitForRef(url, ref) {
47
+ const cachePath = getGitRefCachePath(url);
48
+ const cache = await readJsonFile(cachePath);
49
+ if (!cache?.refs?.[ref]) {
50
+ return null;
51
+ }
52
+ // Return cached commit - caller decides whether to trust based on ref immutability
53
+ // (git-clone.ts only uses this for immutable refs like semver tags)
54
+ return cache.refs[ref].commit;
55
+ },
56
+ async cacheRefCommit(url, ref, commit) {
57
+ const cachePath = getGitRefCachePath(url);
58
+ let cache = await readJsonFile(cachePath);
59
+ if (!cache) {
60
+ cache = { refs: {} };
61
+ }
62
+ cache.refs[ref] = {
63
+ commit,
64
+ fetchedAt: new Date().toISOString(),
65
+ };
66
+ await writeJsonFile(cachePath, cache);
67
+ logger.debug(`Cached git ref ${ref} -> ${commit.substring(0, 7)}`, { url });
68
+ },
69
+ async getLocalPackagePath(name, version) {
70
+ const packagePath = getPackageVersionPath(name, version);
71
+ if (await exists(packagePath)) {
72
+ return packagePath;
73
+ }
74
+ return null;
75
+ },
76
+ async hasLocalPackage(name, version) {
77
+ const packagePath = getPackageVersionPath(name, version);
78
+ return await exists(packagePath);
79
+ },
80
+ async getCachedMetadata(name) {
81
+ const cachePath = getMetadataCachePath(name);
82
+ const cache = await readJsonFile(cachePath);
83
+ if (!cache) {
84
+ return null;
85
+ }
86
+ if (isExpired(cache.fetchedAt, METADATA_TTL_MS)) {
87
+ logger.debug(`Metadata cache expired for ${name}`, { fetchedAt: cache.fetchedAt });
88
+ return null;
89
+ }
90
+ return cache;
91
+ },
92
+ async cacheMetadata(name, versions, etag) {
93
+ const cachePath = getMetadataCachePath(name);
94
+ const cache = {
95
+ versions,
96
+ fetchedAt: new Date().toISOString(),
97
+ ...(etag && { etag }),
98
+ };
99
+ await writeJsonFile(cachePath, cache);
100
+ logger.debug(`Cached metadata for ${name}`, { versionCount: versions.length });
101
+ },
102
+ };
103
+ }
104
+ //# sourceMappingURL=cache-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/core/cache-manager.ts"],"names":[],"mappings":"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"}
@@ -158,7 +158,8 @@ export async function resolveDependencies(packageName, targetDir, isRoot = true,
158
158
  const ref = embeddedRef || dep.ref;
159
159
  const result = await loadPackageFromGit({
160
160
  url: gitUrl,
161
- ref
161
+ ref,
162
+ skipCache: resolverOptions.skipCache
162
163
  });
163
164
  if (result.isMarketplace) {
164
165
  logger.error(`Dependency '${dep.name}' points to a Claude Code plugin marketplace, which cannot be used as a dependency`);
@@ -591,7 +592,8 @@ export async function resolveDependencies(packageName, targetDir, isRoot = true,
591
592
  const ref = embeddedRef || dep.ref;
592
593
  const result = await loadPackageFromGit({
593
594
  url: gitUrl,
594
- ref
595
+ ref,
596
+ skipCache: resolverOptions.skipCache
595
597
  });
596
598
  if (result.isMarketplace) {
597
599
  logger.error(`Dependency '${dep.name}' points to a Claude Code plugin marketplace, which cannot be used as a dependency`);
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/dependency-resolver/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/core/dependency-resolver/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Execution Context Module
3
+ *
4
+ * Central module for all directory resolution logic.
5
+ * Creates and validates ExecutionContext for commands.
6
+ *
7
+ * This is the single source of truth for determining:
8
+ * - Where to resolve input arguments (sourceCwd)
9
+ * - Where to write output files (targetDir)
10
+ */
11
+ import { resolve } from 'path';
12
+ import { stat, access, constants as fsConstants } from 'fs/promises';
13
+ import { getHomeDirectory, isHomeDirectory, normalizePathWithTilde } from '../utils/home-directory.js';
14
+ import { logger } from '../utils/logger.js';
15
+ /**
16
+ * Create an ExecutionContext from command options.
17
+ *
18
+ * Priority logic:
19
+ * 1. If --global: targetDir = home directory
20
+ * 2. Else if --cwd: targetDir = resolve(cwd)
21
+ * 3. Else: targetDir = process.cwd()
22
+ *
23
+ * sourceCwd is always process.cwd() (original working directory)
24
+ *
25
+ * @param options - Command options (global, cwd flags)
26
+ * @returns Validated ExecutionContext
27
+ * @throws Error if validation fails
28
+ */
29
+ export async function createExecutionContext(options = {}) {
30
+ // sourceCwd is always the original working directory
31
+ const sourceCwd = process.cwd();
32
+ // Determine targetDir based on options
33
+ let targetDir;
34
+ let isGlobal;
35
+ if (options.global) {
36
+ targetDir = getHomeDirectory();
37
+ isGlobal = true;
38
+ // Log warning if both flags present
39
+ if (options.cwd) {
40
+ logger.info('--global option present, ignoring --cwd', {
41
+ cwd: options.cwd,
42
+ targetDir
43
+ });
44
+ }
45
+ }
46
+ else if (options.cwd) {
47
+ targetDir = resolve(sourceCwd, options.cwd);
48
+ isGlobal = isHomeDirectory(targetDir);
49
+ }
50
+ else {
51
+ targetDir = sourceCwd;
52
+ isGlobal = isHomeDirectory(targetDir);
53
+ }
54
+ // Create context
55
+ const context = {
56
+ sourceCwd,
57
+ targetDir,
58
+ isGlobal
59
+ };
60
+ // Validate context
61
+ await validateExecutionContext(context);
62
+ // Log context creation
63
+ logger.debug('Created execution context', {
64
+ sourceCwd: context.sourceCwd,
65
+ targetDir: context.targetDir,
66
+ isGlobal: context.isGlobal
67
+ });
68
+ return context;
69
+ }
70
+ /**
71
+ * Validate an ExecutionContext.
72
+ *
73
+ * Checks:
74
+ * - targetDir exists and is a directory
75
+ * - targetDir is writable
76
+ * - sourceCwd exists and is readable
77
+ *
78
+ * @param context - ExecutionContext to validate
79
+ * @throws Error with helpful message if validation fails
80
+ */
81
+ async function validateExecutionContext(context) {
82
+ // Validate targetDir
83
+ try {
84
+ const targetStat = await stat(context.targetDir);
85
+ if (!targetStat.isDirectory()) {
86
+ throw new Error(`Target path is not a directory: ${context.targetDir}`);
87
+ }
88
+ // Check if writable
89
+ await access(context.targetDir, fsConstants.W_OK);
90
+ }
91
+ catch (error) {
92
+ if (error.code === 'ENOENT') {
93
+ throw new Error(`Target directory does not exist: ${context.targetDir}\n\n` +
94
+ `Hint: Create the directory or specify a different target with --cwd`);
95
+ }
96
+ if (error.code === 'EACCES') {
97
+ throw new Error(`Target directory is not writable: ${context.targetDir}\n\n` +
98
+ `Hint: Check directory permissions`);
99
+ }
100
+ throw new Error(`Invalid target directory: ${context.targetDir}\n` +
101
+ `Error: ${error instanceof Error ? error.message : String(error)}`);
102
+ }
103
+ // Validate sourceCwd
104
+ try {
105
+ const sourceStat = await stat(context.sourceCwd);
106
+ if (!sourceStat.isDirectory()) {
107
+ throw new Error(`Source working directory is not a directory: ${context.sourceCwd}`);
108
+ }
109
+ // Check if readable
110
+ await access(context.sourceCwd, fsConstants.R_OK);
111
+ }
112
+ catch (error) {
113
+ throw new Error(`Invalid source working directory: ${context.sourceCwd}\n` +
114
+ `Error: ${error instanceof Error ? error.message : String(error)}`);
115
+ }
116
+ }
117
+ /**
118
+ * Generate context variables for platform flows and conditional logic.
119
+ *
120
+ * Variables:
121
+ * - $$targetRoot: Normalized target path (with ~/ if home)
122
+ * - $$sourceCwd: Original working directory
123
+ * - $$isGlobal: Global flag for convenience
124
+ *
125
+ * @param context - ExecutionContext
126
+ * @returns Map of context variables
127
+ */
128
+ export function getContextVariables(context) {
129
+ return {
130
+ $$targetRoot: normalizePathWithTilde(context.targetDir),
131
+ $$sourceCwd: context.sourceCwd,
132
+ $$isGlobal: context.isGlobal
133
+ };
134
+ }
135
+ /**
136
+ * Get display-friendly target directory path.
137
+ * Shows ~/ for home directory.
138
+ *
139
+ * @param context - ExecutionContext
140
+ * @returns Display-friendly path
141
+ */
142
+ export function getDisplayTargetDir(context) {
143
+ return normalizePathWithTilde(context.targetDir);
144
+ }
145
+ //# sourceMappingURL=execution-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/core/execution-context.ts"],"names":[],"mappings":"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"}