opkg 0.5.0 → 0.6.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.
Files changed (272) hide show
  1. package/README.md +49 -8
  2. package/dist/commands/add.js +11 -276
  3. package/dist/commands/add.js.map +1 -1
  4. package/dist/commands/init.js +73 -145
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/install.js +26 -668
  7. package/dist/commands/install.js.map +1 -1
  8. package/dist/commands/pack.js +10 -137
  9. package/dist/commands/pack.js.map +1 -1
  10. package/dist/commands/push.js +14 -8
  11. package/dist/commands/push.js.map +1 -1
  12. package/dist/commands/save.js +12 -167
  13. package/dist/commands/save.js.map +1 -1
  14. package/dist/commands/status.js +2 -2
  15. package/dist/commands/status.js.map +1 -1
  16. package/dist/commands/uninstall.js +5 -5
  17. package/dist/commands/uninstall.js.map +1 -1
  18. package/dist/constants/index.js +18 -45
  19. package/dist/constants/index.js.map +1 -1
  20. package/dist/constants/workspace.js +9 -0
  21. package/dist/constants/workspace.js.map +1 -0
  22. package/dist/core/add/add-conflict-handler.js +68 -0
  23. package/dist/core/add/add-conflict-handler.js.map +1 -0
  24. package/dist/core/add/add-pipeline.js +137 -0
  25. package/dist/core/add/add-pipeline.js.map +1 -0
  26. package/dist/core/add/package-index-updater.js +62 -33
  27. package/dist/core/add/package-index-updater.js.map +1 -1
  28. package/dist/core/add/platform-path-transformer.js +47 -0
  29. package/dist/core/add/platform-path-transformer.js.map +1 -0
  30. package/dist/core/add/source-collector.js +57 -0
  31. package/dist/core/add/source-collector.js.map +1 -0
  32. package/dist/core/dependency-resolver.js +3 -1
  33. package/dist/core/dependency-resolver.js.map +1 -1
  34. package/dist/core/directory.js +2 -2
  35. package/dist/core/directory.js.map +1 -1
  36. package/dist/core/discovery/file-discovery.js +55 -54
  37. package/dist/core/discovery/file-discovery.js.map +1 -1
  38. package/dist/core/discovery/platform-files-discovery.js +32 -17
  39. package/dist/core/discovery/platform-files-discovery.js.map +1 -1
  40. package/dist/core/install/bulk-install-pipeline.js +199 -0
  41. package/dist/core/install/bulk-install-pipeline.js.map +1 -0
  42. package/dist/core/install/canonical-plan.js +123 -0
  43. package/dist/core/install/canonical-plan.js.map +1 -0
  44. package/dist/core/install/dry-run.js +2 -2
  45. package/dist/core/install/dry-run.js.map +1 -1
  46. package/dist/core/install/index.js +3 -0
  47. package/dist/core/install/index.js.map +1 -0
  48. package/dist/core/install/install-errors.js +41 -0
  49. package/dist/core/install/install-errors.js.map +1 -0
  50. package/dist/core/install/install-flow.js +2 -5
  51. package/dist/core/install/install-flow.js.map +1 -1
  52. package/dist/core/install/install-pipeline.js +228 -0
  53. package/dist/core/install/install-pipeline.js.map +1 -0
  54. package/dist/core/install/install-reporting.js +99 -0
  55. package/dist/core/install/install-reporting.js.map +1 -0
  56. package/dist/core/install/platform-resolution.js +6 -6
  57. package/dist/core/install/platform-resolution.js.map +1 -1
  58. package/dist/core/install/remote-flow.js +67 -1
  59. package/dist/core/install/remote-flow.js.map +1 -1
  60. package/dist/core/openpackage.js +16 -8
  61. package/dist/core/openpackage.js.map +1 -1
  62. package/dist/core/package-context.js +246 -0
  63. package/dist/core/package-context.js.map +1 -0
  64. package/dist/core/package.js +3 -2
  65. package/dist/core/package.js.map +1 -1
  66. package/dist/core/platforms.js +126 -217
  67. package/dist/core/platforms.js.map +1 -1
  68. package/dist/core/registry/registry-rename.js +2 -1
  69. package/dist/core/registry/registry-rename.js.map +1 -1
  70. package/dist/core/registry.js +10 -3
  71. package/dist/core/registry.js.map +1 -1
  72. package/dist/core/remote-pull.js +2 -1
  73. package/dist/core/remote-pull.js.map +1 -1
  74. package/dist/core/save/constants.js +4 -0
  75. package/dist/core/save/constants.js.map +1 -1
  76. package/dist/core/save/name-resolution.js +31 -0
  77. package/dist/core/save/name-resolution.js.map +1 -0
  78. package/dist/core/save/package-detection.js +147 -0
  79. package/dist/core/save/package-detection.js.map +1 -0
  80. package/dist/core/save/package-saver.js +46 -43
  81. package/dist/core/save/package-saver.js.map +1 -1
  82. package/dist/core/save/package-yml-generator.js +50 -71
  83. package/dist/core/save/package-yml-generator.js.map +1 -1
  84. package/dist/core/save/root-save-candidates.js.map +1 -1
  85. package/dist/core/save/save-candidate-loader.js +89 -0
  86. package/dist/core/save/save-candidate-loader.js.map +1 -0
  87. package/dist/core/save/save-conflict-resolution.js +72 -410
  88. package/dist/core/save/save-conflict-resolution.js.map +1 -1
  89. package/dist/core/save/save-conflict-resolver.js +277 -0
  90. package/dist/core/save/save-conflict-resolver.js.map +1 -0
  91. package/dist/core/save/save-pipeline.js +151 -0
  92. package/dist/core/save/save-pipeline.js.map +1 -0
  93. package/dist/core/save/save-types.js +2 -0
  94. package/dist/core/save/save-types.js.map +1 -0
  95. package/dist/core/save/save-yml-resolution.js +77 -39
  96. package/dist/core/save/save-yml-resolution.js.map +1 -1
  97. package/dist/core/save/workspace-rename.js +6 -6
  98. package/dist/core/save/workspace-rename.js.map +1 -1
  99. package/dist/core/scoping/package-scoping.js +13 -1
  100. package/dist/core/scoping/package-scoping.js.map +1 -1
  101. package/dist/core/status/status-file-discovery.js +12 -30
  102. package/dist/core/status/status-file-discovery.js.map +1 -1
  103. package/dist/core/sync/platform-sync.js +7 -4
  104. package/dist/core/sync/platform-sync.js.map +1 -1
  105. package/dist/core/sync/root-files-sync.js +59 -1
  106. package/dist/core/sync/root-files-sync.js.map +1 -1
  107. package/dist/core/uninstall/uninstall-file-discovery.js +1 -2
  108. package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
  109. package/dist/types/index.js.map +1 -1
  110. package/dist/utils/file-processing.js +5 -58
  111. package/dist/utils/file-processing.js.map +1 -1
  112. package/dist/utils/index-based-installer.js +15 -33
  113. package/dist/utils/index-based-installer.js.map +1 -1
  114. package/dist/utils/install-file-discovery.js +3 -3
  115. package/dist/utils/install-file-discovery.js.map +1 -1
  116. package/dist/utils/install-orchestrator.js +21 -21
  117. package/dist/utils/install-orchestrator.js.map +1 -1
  118. package/dist/utils/jsonc.js +44 -0
  119. package/dist/utils/jsonc.js.map +1 -0
  120. package/dist/utils/package-copy.js +199 -0
  121. package/dist/utils/package-copy.js.map +1 -0
  122. package/dist/utils/package-filters.js +125 -0
  123. package/dist/utils/package-filters.js.map +1 -0
  124. package/dist/utils/package-index-yml.js +15 -10
  125. package/dist/utils/package-index-yml.js.map +1 -1
  126. package/dist/utils/package-installation.js +4 -113
  127. package/dist/utils/package-installation.js.map +1 -1
  128. package/dist/utils/package-local-files.js +2 -35
  129. package/dist/utils/package-local-files.js.map +1 -1
  130. package/dist/utils/package-management.js +59 -37
  131. package/dist/utils/package-management.js.map +1 -1
  132. package/dist/utils/package-yml.js +24 -0
  133. package/dist/utils/package-yml.js.map +1 -1
  134. package/dist/utils/path-normalization.js +8 -53
  135. package/dist/utils/path-normalization.js.map +1 -1
  136. package/dist/utils/paths.js +17 -9
  137. package/dist/utils/paths.js.map +1 -1
  138. package/dist/utils/platform-file.js +16 -59
  139. package/dist/utils/platform-file.js.map +1 -1
  140. package/dist/utils/platform-mapper.js +29 -41
  141. package/dist/utils/platform-mapper.js.map +1 -1
  142. package/dist/utils/platform-specific-paths.js.map +1 -1
  143. package/dist/utils/platform-utils.js +28 -139
  144. package/dist/utils/platform-utils.js.map +1 -1
  145. package/dist/utils/platform-yaml-merge.js +13 -6
  146. package/dist/utils/platform-yaml-merge.js.map +1 -1
  147. package/dist/utils/registry-entry-filter.js +38 -24
  148. package/dist/utils/registry-entry-filter.js.map +1 -1
  149. package/dist/utils/registry-paths.js +10 -0
  150. package/dist/utils/registry-paths.js.map +1 -0
  151. package/dist/utils/root-file-installer.js +19 -0
  152. package/dist/utils/root-file-installer.js.map +1 -1
  153. package/dist/utils/root-file-registry.js.map +1 -1
  154. package/package.json +3 -2
  155. package/platforms.jsonc +178 -0
  156. package/specs/package/README.md +60 -0
  157. package/specs/package/nested-packages-and-parent-packages.md +79 -0
  158. package/specs/package/package-index-yml.md +171 -0
  159. package/specs/package/package-root-layout.md +78 -0
  160. package/specs/package/registry-payload-and-copy.md +77 -0
  161. package/specs/package/universal-content.md +144 -0
  162. package/specs/platforms.md +193 -0
  163. package/specs/save/README.md +40 -0
  164. package/specs/save/save-conflict-resolution.md +146 -0
  165. package/specs/save/save-file-discovery.md +101 -0
  166. package/specs/save/save-frontmatter-overrides.md +81 -0
  167. package/specs/save/save-modes-inputs.md +53 -0
  168. package/specs/save/save-naming-scoping.md +93 -0
  169. package/specs/save/save-package-detection.md +60 -0
  170. package/specs/save/save-registry-sync.md +126 -0
  171. package/dist/commands/release.js +0 -33
  172. package/dist/commands/release.js.map +0 -1
  173. package/dist/commands/tag.js +0 -311
  174. package/dist/commands/tag.js.map +0 -1
  175. package/dist/commands/update.js +0 -30
  176. package/dist/commands/update.js.map +0 -1
  177. package/dist/core/add/formula-index-updater.js +0 -290
  178. package/dist/core/add/formula-index-updater.js.map +0 -1
  179. package/dist/core/discovery/ai-files-discovery.js +0 -2
  180. package/dist/core/discovery/ai-files-discovery.js.map +0 -1
  181. package/dist/core/discovery/formula-files-discovery.js +0 -14
  182. package/dist/core/discovery/formula-files-discovery.js.map +0 -1
  183. package/dist/core/discovery/index-files-discovery.js +0 -91
  184. package/dist/core/discovery/index-files-discovery.js.map +0 -1
  185. package/dist/core/discovery/md-files-discovery.js +0 -82
  186. package/dist/core/discovery/md-files-discovery.js.map +0 -1
  187. package/dist/core/discovery/package-files-discovery.js +0 -14
  188. package/dist/core/discovery/package-files-discovery.js.map +0 -1
  189. package/dist/core/discovery/platform-discovery.js +0 -84
  190. package/dist/core/discovery/platform-discovery.js.map +0 -1
  191. package/dist/core/discovery/root-files-discovery.js +0 -2
  192. package/dist/core/discovery/root-files-discovery.js.map +0 -1
  193. package/dist/core/formula.js +0 -170
  194. package/dist/core/formula.js.map +0 -1
  195. package/dist/core/git-registry.js +0 -46
  196. package/dist/core/git-registry.js.map +0 -1
  197. package/dist/core/groundzero.js +0 -277
  198. package/dist/core/groundzero.js.map +0 -1
  199. package/dist/core/install/scenario.js +0 -11
  200. package/dist/core/install/scenario.js.map +0 -1
  201. package/dist/core/package-sync.js +0 -219
  202. package/dist/core/package-sync.js.map +0 -1
  203. package/dist/core/save/formula-file-generator.js +0 -167
  204. package/dist/core/save/formula-file-generator.js.map +0 -1
  205. package/dist/core/save/formula-saver.js +0 -52
  206. package/dist/core/save/formula-saver.js.map +0 -1
  207. package/dist/core/save/formula-yml-generator.js +0 -89
  208. package/dist/core/save/formula-yml-generator.js.map +0 -1
  209. package/dist/core/save/formula-yml-versioning.js +0 -108
  210. package/dist/core/save/formula-yml-versioning.js.map +0 -1
  211. package/dist/core/save/generic-file-sync.js +0 -38
  212. package/dist/core/save/generic-file-sync.js.map +0 -1
  213. package/dist/core/save/md-files-sync.js +0 -33
  214. package/dist/core/save/md-files-sync.js.map +0 -1
  215. package/dist/core/save/package-yml-versioning.js +0 -108
  216. package/dist/core/save/package-yml-versioning.js.map +0 -1
  217. package/dist/core/save/platform-sync.js +0 -95
  218. package/dist/core/save/platform-sync.js.map +0 -1
  219. package/dist/core/save/root-files-sync.js +0 -140
  220. package/dist/core/save/root-files-sync.js.map +0 -1
  221. package/dist/core/save/save-candidate-types.js +0 -2
  222. package/dist/core/save/save-candidate-types.js.map +0 -1
  223. package/dist/core/save/save-conflict-types.js +0 -2
  224. package/dist/core/save/save-conflict-types.js.map +0 -1
  225. package/dist/core/save/save-file-discovery.js +0 -5
  226. package/dist/core/save/save-file-discovery.js.map +0 -1
  227. package/dist/core/status-file-discovery.js +0 -175
  228. package/dist/core/status-file-discovery.js.map +0 -1
  229. package/dist/utils/discovery/file-processing.js +0 -156
  230. package/dist/utils/discovery/file-processing.js.map +0 -1
  231. package/dist/utils/discovery/formula-discovery.js +0 -211
  232. package/dist/utils/discovery/formula-discovery.js.map +0 -1
  233. package/dist/utils/discovery/platform-discovery.js +0 -2
  234. package/dist/utils/discovery/platform-discovery.js.map +0 -1
  235. package/dist/utils/formula-discovery.js +0 -102
  236. package/dist/utils/formula-discovery.js.map +0 -1
  237. package/dist/utils/formula-index-yml.js +0 -122
  238. package/dist/utils/formula-index-yml.js.map +0 -1
  239. package/dist/utils/formula-installation.js +0 -110
  240. package/dist/utils/formula-installation.js.map +0 -1
  241. package/dist/utils/formula-local-files.js +0 -38
  242. package/dist/utils/formula-local-files.js.map +0 -1
  243. package/dist/utils/formula-management.js +0 -191
  244. package/dist/utils/formula-management.js.map +0 -1
  245. package/dist/utils/formula-name.js +0 -97
  246. package/dist/utils/formula-name.js.map +0 -1
  247. package/dist/utils/formula-versioning.js +0 -109
  248. package/dist/utils/formula-versioning.js.map +0 -1
  249. package/dist/utils/formula-yml.js +0 -82
  250. package/dist/utils/formula-yml.js.map +0 -1
  251. package/dist/utils/git.js +0 -54
  252. package/dist/utils/git.js.map +0 -1
  253. package/dist/utils/id-based-discovery.js +0 -126
  254. package/dist/utils/id-based-discovery.js.map +0 -1
  255. package/dist/utils/id-based-installer.js +0 -249
  256. package/dist/utils/id-based-installer.js.map +0 -1
  257. package/dist/utils/index-yml-based-installer.js +0 -375
  258. package/dist/utils/index-yml-based-installer.js.map +0 -1
  259. package/dist/utils/index-yml.js +0 -124
  260. package/dist/utils/index-yml.js.map +0 -1
  261. package/dist/utils/md-frontmatter.js +0 -3
  262. package/dist/utils/md-frontmatter.js.map +0 -1
  263. package/dist/utils/package-link-yml.js +0 -92
  264. package/dist/utils/package-link-yml.js.map +0 -1
  265. package/dist/utils/platform-discovery.js +0 -2
  266. package/dist/utils/platform-discovery.js.map +0 -1
  267. package/dist/utils/platform-frontmatter-split.js +0 -15
  268. package/dist/utils/platform-frontmatter-split.js.map +0 -1
  269. package/dist/utils/timestamp-encoder.js +0 -13
  270. package/dist/utils/timestamp-encoder.js.map +0 -1
  271. package/dist/utils/wip-versioning.js +0 -24
  272. package/dist/utils/wip-versioning.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ /**
2
+ * JSONC (JSON with Comments) file utilities
3
+ * Handles reading and parsing JSONC files with comment support
4
+ */
5
+ import { readFileSync } from 'fs';
6
+ import { dirname, join } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import { parse } from 'jsonc-parser';
9
+ import { logger } from './logger.js';
10
+ /**
11
+ * Get the project root directory
12
+ * Works in both development (src/) and production (dist/) environments
13
+ */
14
+ function getProjectRoot() {
15
+ // Get the directory of the current file
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+ // If we're in dist/utils, go up two levels to project root
19
+ // If we're in src/utils, go up two levels to project root
20
+ // Both src/utils and dist/utils are 2 levels deep from root
21
+ return join(__dirname, '..', '..');
22
+ }
23
+ /**
24
+ * Read and parse a JSONC file from the project root
25
+ * @param relativePath - Path relative to project root (e.g., 'platforms.jsonc')
26
+ * @returns Parsed JSON object
27
+ */
28
+ export function readJsoncFileSync(relativePath) {
29
+ const projectRoot = getProjectRoot();
30
+ const fullPath = join(projectRoot, relativePath);
31
+ try {
32
+ const content = readFileSync(fullPath, 'utf-8');
33
+ const parsed = parse(content);
34
+ if (parsed === undefined) {
35
+ throw new Error(`Failed to parse JSONC file: ${relativePath}`);
36
+ }
37
+ return parsed;
38
+ }
39
+ catch (error) {
40
+ logger.error(`Failed to read JSONC file: ${relativePath}`, { error, fullPath });
41
+ throw new Error(`Failed to read JSONC file ${relativePath}: ${error}`);
42
+ }
43
+ }
44
+ //# sourceMappingURL=jsonc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonc.js","sourceRoot":"","sources":["../../src/utils/jsonc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;GAGG;AACH,SAAS,cAAc;IACrB,wCAAwC;IACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,2DAA2D;IAC3D,0DAA0D;IAC1D,4DAA4D;IAC5D,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAc,YAAoB;IACjE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,KAAK,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Package file I/O utilities for reading from and writing to package directories.
3
+ *
4
+ * This module provides two main operations:
5
+ * - readPackageFilesForRegistry: Collect files from a package directory into a
6
+ * registry-ready payload, applying static exclusions and manifest-based filters.
7
+ * - writePackageFilesToDirectory: Write a set of PackageFile entries to disk,
8
+ * syncing the directory contents (removing stale files).
9
+ */
10
+ import { join, relative, dirname } from 'path';
11
+ import { DIR_PATTERNS, FILE_PATTERNS, PACKAGE_PATHS } from '../constants/index.js';
12
+ import { getAllPlatforms, getPlatformDefinition } from '../core/platforms.js';
13
+ import { exists, ensureDir, readTextFile, writeTextFile, walkFiles, remove } from './fs.js';
14
+ import { logger } from './logger.js';
15
+ import { normalizePathForProcessing } from './path-normalization.js';
16
+ import { parsePackageYml } from './package-yml.js';
17
+ import { createPackageFileFilter, isExcludedFromPackage } from './package-filters.js';
18
+ const MANIFEST_RELATIVE_PATHS = Object.freeze([
19
+ FILE_PATTERNS.PACKAGE_YML,
20
+ PACKAGE_PATHS.MANIFEST_RELATIVE
21
+ ]);
22
+ // ─────────────────────────────────────────────────────────────────────────────
23
+ // Reading package files
24
+ // ─────────────────────────────────────────────────────────────────────────────
25
+ /**
26
+ * Read package files from disk and return a registry-ready payload.
27
+ *
28
+ * Applies two layers of filtering:
29
+ * 1. Static exclusions (package index file, packages/** nested dirs).
30
+ * 2. Manifest-based include/exclude patterns from package.yml.
31
+ *
32
+ * @param packageDir - Absolute path to the package root directory.
33
+ * @returns Array of PackageFile entries representing the canonical payload.
34
+ */
35
+ export async function readPackageFilesForRegistry(packageDir) {
36
+ if (!(await exists(packageDir))) {
37
+ return [];
38
+ }
39
+ const manifestFilter = await loadManifestFilter(packageDir);
40
+ const files = [];
41
+ for await (const fullPath of walkFiles(packageDir)) {
42
+ const relativePath = normalizePathForProcessing(relative(packageDir, fullPath));
43
+ // Layer 1: static exclusions (always enforced)
44
+ if (isExcludedFromPackage(relativePath)) {
45
+ logger.debug(`Skipping static-excluded path: ${relativePath}`);
46
+ continue;
47
+ }
48
+ // Layer 2: manifest-based include/exclude
49
+ if (!manifestFilter(relativePath)) {
50
+ logger.debug(`Skipping path by manifest filter: ${relativePath}`);
51
+ continue;
52
+ }
53
+ const content = await readTextFile(fullPath);
54
+ files.push({ path: relativePath, content, encoding: 'utf8' });
55
+ }
56
+ return files;
57
+ }
58
+ /**
59
+ * Build a filter function from the package.yml include/exclude fields.
60
+ * Returns a pass-all filter if no manifest or no patterns are defined.
61
+ */
62
+ async function loadManifestFilter(packageDir) {
63
+ const manifestInfo = await findPackageManifest(packageDir);
64
+ let manifestConfigInclude;
65
+ let manifestConfigExclude;
66
+ if (manifestInfo) {
67
+ try {
68
+ const config = await parsePackageYml(manifestInfo.fullPath);
69
+ manifestConfigInclude = config.include;
70
+ manifestConfigExclude = config.exclude;
71
+ }
72
+ catch (error) {
73
+ logger.warn(`Failed to load manifest filters from ${manifestInfo.fullPath}: ${String(error)}`);
74
+ }
75
+ }
76
+ const defaults = await buildDefaultIncludeConfig(packageDir, manifestInfo);
77
+ const includePatterns = [
78
+ ...defaults.includePatterns,
79
+ ...(manifestConfigInclude ?? [])
80
+ ];
81
+ const excludePatterns = manifestConfigExclude ?? [];
82
+ const baseFilter = createPackageFileFilter({
83
+ include: includePatterns,
84
+ exclude: excludePatterns
85
+ });
86
+ return (relativePath) => {
87
+ const normalized = normalizePathForProcessing(relativePath);
88
+ if (!normalized) {
89
+ return false;
90
+ }
91
+ if (defaults.hardIncludeFiles.has(normalized)) {
92
+ return true;
93
+ }
94
+ return baseFilter(relativePath);
95
+ };
96
+ }
97
+ async function findPackageManifest(packageDir) {
98
+ for (const relativePath of MANIFEST_RELATIVE_PATHS) {
99
+ const fullPath = join(packageDir, relativePath);
100
+ if (await exists(fullPath)) {
101
+ return { fullPath, relativePath };
102
+ }
103
+ }
104
+ return null;
105
+ }
106
+ async function buildDefaultIncludeConfig(packageDir, manifestInfo) {
107
+ const includePatterns = new Set();
108
+ const hardIncludeFiles = new Set();
109
+ // Include package.yml (at .openpackage/package.yml relative to package root)
110
+ includePatterns.add(PACKAGE_PATHS.MANIFEST_RELATIVE);
111
+ hardIncludeFiles.add(normalizePathForProcessing(PACKAGE_PATHS.MANIFEST_RELATIVE));
112
+ if (manifestInfo) {
113
+ includePatterns.add(manifestInfo.relativePath);
114
+ hardIncludeFiles.add(normalizePathForProcessing(manifestInfo.relativePath));
115
+ }
116
+ const rootFiles = new Set([FILE_PATTERNS.AGENTS_MD]);
117
+ const universalSubdirs = new Set();
118
+ for (const platform of getAllPlatforms({ includeDisabled: true })) {
119
+ const definition = getPlatformDefinition(platform);
120
+ if (definition.rootFile) {
121
+ rootFiles.add(definition.rootFile);
122
+ }
123
+ for (const subdirKey of Object.keys(definition.subdirs ?? {})) {
124
+ universalSubdirs.add(subdirKey);
125
+ }
126
+ }
127
+ for (const rootFile of rootFiles) {
128
+ includePatterns.add(rootFile);
129
+ }
130
+ // packageDir is the package root, so look for subdirs at packageDir/.openpackage/<subdir>/
131
+ await Promise.all(Array.from(universalSubdirs).map(async (subdirName) => {
132
+ const absoluteDir = join(packageDir, DIR_PATTERNS.OPENPACKAGE, subdirName);
133
+ if (await exists(absoluteDir)) {
134
+ includePatterns.add(`${DIR_PATTERNS.OPENPACKAGE}/${subdirName}/**`);
135
+ }
136
+ }));
137
+ return {
138
+ includePatterns: Array.from(includePatterns),
139
+ hardIncludeFiles
140
+ };
141
+ }
142
+ /**
143
+ * Write package files to a directory, syncing its contents.
144
+ *
145
+ * - Creates the target directory if it doesn't exist.
146
+ * - Removes files that are no longer part of the payload (except protected paths).
147
+ * - Writes all incoming files, creating subdirectories as needed.
148
+ *
149
+ * @param targetDir - Absolute path to the destination directory.
150
+ * @param files - Array of PackageFile entries to write.
151
+ * @param options - Optional settings (e.g., preserveIndexFile).
152
+ */
153
+ export async function writePackageFilesToDirectory(targetDir, files, options = {}) {
154
+ await ensureDir(targetDir);
155
+ // Build the set of paths that should remain after the write
156
+ const pathsToKeep = new Set(files.map(f => normalizePathForProcessing(f.path)));
157
+ if (options.preserveIndexFile) {
158
+ pathsToKeep.add(FILE_PATTERNS.PACKAGE_INDEX_YML);
159
+ }
160
+ // Remove stale files (but never touch protected paths like packages/**)
161
+ await removeStaleFiles(targetDir, pathsToKeep);
162
+ // Write all incoming files in parallel
163
+ await Promise.all(files.map(file => writeFile(targetDir, file)));
164
+ }
165
+ /**
166
+ * Remove files in targetDir that are not in pathsToKeep and are not protected.
167
+ */
168
+ async function removeStaleFiles(targetDir, pathsToKeep) {
169
+ if (!(await exists(targetDir))) {
170
+ return;
171
+ }
172
+ for await (const fullPath of walkFiles(targetDir)) {
173
+ const relPath = normalizePathForProcessing(relative(targetDir, fullPath));
174
+ // Skip files we want to keep
175
+ if (pathsToKeep.has(relPath)) {
176
+ continue;
177
+ }
178
+ // Never delete protected paths (e.g., packages/**)
179
+ if (isExcludedFromPackage(relPath)) {
180
+ continue;
181
+ }
182
+ try {
183
+ await remove(fullPath);
184
+ logger.debug(`Removed stale file: ${relPath}`);
185
+ }
186
+ catch (error) {
187
+ logger.warn(`Failed to remove stale file ${relPath}: ${error}`);
188
+ }
189
+ }
190
+ }
191
+ /**
192
+ * Write a single PackageFile to disk under targetDir.
193
+ */
194
+ async function writeFile(targetDir, file) {
195
+ const targetPath = join(targetDir, file.path);
196
+ await ensureDir(dirname(targetPath));
197
+ await writeTextFile(targetPath, file.content, file.encoding ?? 'utf8');
198
+ }
199
+ //# sourceMappingURL=package-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-copy.js","sourceRoot":"","sources":["../../src/utils/package-copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { normalizePathForProcessing } from './path-normalization.js';
2
+ import { DIR_PATTERNS, FILE_PATTERNS, OPENPACKAGE_DIRS } from '../constants/index.js';
3
+ const EXCLUDED_DIR_PREFIXES = [
4
+ 'packages', // Nested packages are independent units; never copy inline
5
+ `${DIR_PATTERNS.OPENPACKAGE}/${OPENPACKAGE_DIRS.PACKAGES}` // Current nested package layout under .openpackage/
6
+ ];
7
+ const EXCLUDED_FILES = new Set([FILE_PATTERNS.PACKAGE_INDEX_YML]);
8
+ const MATCH_ALL = () => true;
9
+ const SPECIAL_REGEX_CHARS = /[\\^$+?.()|[\]{}]/g;
10
+ function escapeRegexCharacter(segment) {
11
+ return segment.replace(SPECIAL_REGEX_CHARS, '\\$&');
12
+ }
13
+ function normalizePattern(rawPattern) {
14
+ if (typeof rawPattern !== 'string') {
15
+ return null;
16
+ }
17
+ let pattern = rawPattern.trim();
18
+ if (pattern.length === 0) {
19
+ return null;
20
+ }
21
+ pattern = pattern.replace(/\\/g, '/');
22
+ pattern = pattern.replace(/^\.\/+/, '');
23
+ pattern = pattern.replace(/^\/+/, '');
24
+ pattern = pattern.replace(/\/+/g, '/');
25
+ if (pattern.length === 0) {
26
+ return null;
27
+ }
28
+ if (pattern.endsWith('/')) {
29
+ pattern = `${pattern}**`;
30
+ }
31
+ return pattern;
32
+ }
33
+ function globToRegExp(pattern) {
34
+ let regex = '^';
35
+ for (let i = 0; i < pattern.length; i++) {
36
+ const char = pattern[i];
37
+ if (char === '*') {
38
+ const nextChar = pattern[i + 1];
39
+ if (nextChar === '*') {
40
+ const slashChar = pattern[i + 2];
41
+ if (slashChar === '/') {
42
+ regex += '(?:.*/)?';
43
+ i += 2;
44
+ }
45
+ else {
46
+ regex += '.*';
47
+ i += 1;
48
+ }
49
+ }
50
+ else {
51
+ regex += '[^/]*';
52
+ }
53
+ continue;
54
+ }
55
+ if (char === '?') {
56
+ regex += '[^/]';
57
+ continue;
58
+ }
59
+ regex += escapeRegexCharacter(char);
60
+ }
61
+ regex += '$';
62
+ return new RegExp(regex);
63
+ }
64
+ function compilePatterns(patterns) {
65
+ if (!patterns) {
66
+ return [];
67
+ }
68
+ const compiled = [];
69
+ for (const rawPattern of patterns) {
70
+ const normalized = normalizePattern(rawPattern);
71
+ if (!normalized) {
72
+ continue;
73
+ }
74
+ try {
75
+ compiled.push(globToRegExp(normalized));
76
+ }
77
+ catch {
78
+ // Skip invalid patterns to avoid blocking save/pack flows.
79
+ }
80
+ }
81
+ return compiled;
82
+ }
83
+ function matches(path, patterns) {
84
+ return patterns.some(pattern => pattern.test(path));
85
+ }
86
+ export function isExcludedFromPackage(relativePath) {
87
+ const normalized = normalizePathForProcessing(relativePath);
88
+ if (!normalized) {
89
+ return true;
90
+ }
91
+ const baseName = normalized.split('/').pop();
92
+ if (baseName && EXCLUDED_FILES.has(baseName)) {
93
+ return true;
94
+ }
95
+ return EXCLUDED_DIR_PREFIXES.some(prefix => {
96
+ const normalizedPrefix = normalizePathForProcessing(prefix);
97
+ return (normalized === normalizedPrefix ||
98
+ normalized.startsWith(`${normalizedPrefix}/`));
99
+ });
100
+ }
101
+ export function createPackageFileFilter(config) {
102
+ if (!config) {
103
+ return MATCH_ALL;
104
+ }
105
+ const includePatterns = compilePatterns(config.include);
106
+ const excludePatterns = compilePatterns(config.exclude);
107
+ const hasInclude = includePatterns.length > 0;
108
+ if (!hasInclude && excludePatterns.length === 0) {
109
+ return MATCH_ALL;
110
+ }
111
+ return (relativePath) => {
112
+ const normalized = normalizePathForProcessing(relativePath);
113
+ if (!normalized) {
114
+ return false;
115
+ }
116
+ if (hasInclude && !matches(normalized, includePatterns)) {
117
+ return false;
118
+ }
119
+ if (excludePatterns.length > 0 && matches(normalized, excludePatterns)) {
120
+ return false;
121
+ }
122
+ return true;
123
+ };
124
+ }
125
+ //# sourceMappingURL=package-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-filters.js","sourceRoot":"","sources":["../../src/utils/package-filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,qBAAqB,GAAG;IAC5B,UAAU,EAAE,2DAA2D;IACvE,GAAG,YAAY,CAAC,WAAW,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,oDAAoD;CAChH,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAS1E,MAAM,SAAS,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;AACzC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,GAAG,OAAO,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,KAAK,GAAG,GAAG,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBACtB,KAAK,IAAI,UAAU,CAAC;oBACpB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,IAAI,CAAC;oBACd,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,OAAO,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,MAAM,CAAC;YAChB,SAAS;QACX,CAAC;QAED,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,IAAI,GAAG,CAAC;IACb,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,QAAmB;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,QAAkB;IAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAoB;IACxD,MAAM,UAAU,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7C,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,CACL,UAAU,KAAK,gBAAgB;YAC/B,UAAU,CAAC,UAAU,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA4B;IAClE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -1,14 +1,18 @@
1
1
  import { join, dirname } from 'path';
2
2
  import * as yaml from 'js-yaml';
3
+ import { FILE_PATTERNS } from '../constants/index.js';
3
4
  import { exists, readTextFile, writeTextFile, ensureDir } from './fs.js';
4
- import { getLocalPackageDir } from './paths.js';
5
+ import { getLocalOpenPackageDir, getLocalPackageContentDir } from './paths.js';
5
6
  import { normalizePathForProcessing } from './path-normalization.js';
6
7
  import { logger } from './logger.js';
7
- export const PACKAGE_INDEX_FILENAME = 'package.index.yml';
8
8
  const HEADER_COMMENT = '# This file is managed by OpenPackage. Do not edit manually.';
9
- export function getPackageIndexPath(cwd, packageName) {
10
- const packageDir = getLocalPackageDir(cwd, packageName);
11
- return join(packageDir, PACKAGE_INDEX_FILENAME);
9
+ export function getPackageIndexPath(cwd, packageName, location = 'nested') {
10
+ if (location === 'root') {
11
+ return join(getLocalOpenPackageDir(cwd), FILE_PATTERNS.PACKAGE_INDEX_YML);
12
+ }
13
+ // Nested: use content directory (cwd/.openpackage/packages/<name>/.openpackage/)
14
+ const contentDir = getLocalPackageContentDir(cwd, packageName);
15
+ return join(contentDir, FILE_PATTERNS.PACKAGE_INDEX_YML);
12
16
  }
13
17
  export function ensureTrailingSlash(value) {
14
18
  return value.endsWith('/') ? value : `${value}/`;
@@ -63,8 +67,9 @@ export function sanitizeIndexData(data) {
63
67
  files: sortMapping(entries)
64
68
  };
65
69
  }
66
- export async function readPackageIndex(cwd, packageName) {
67
- const indexPath = getPackageIndexPath(cwd, packageName);
70
+ export async function readPackageIndex(cwd, packageName, location = 'nested') {
71
+ const canonicalPath = getPackageIndexPath(cwd, packageName, location);
72
+ const indexPath = canonicalPath;
68
73
  if (!(await exists(indexPath))) {
69
74
  return null;
70
75
  }
@@ -82,7 +87,7 @@ export async function readPackageIndex(cwd, packageName) {
82
87
  };
83
88
  }
84
89
  return {
85
- path: indexPath,
90
+ path: canonicalPath,
86
91
  packageName,
87
92
  workspace: sanitized.workspace,
88
93
  files: sanitized.files
@@ -91,7 +96,7 @@ export async function readPackageIndex(cwd, packageName) {
91
96
  catch (error) {
92
97
  logger.warn(`Failed to read package index at ${indexPath}: ${error}`);
93
98
  return {
94
- path: indexPath,
99
+ path: canonicalPath,
95
100
  packageName,
96
101
  workspace: { version: '', hash: undefined },
97
102
  files: {}
@@ -102,7 +107,7 @@ export async function writePackageIndex(record) {
102
107
  const { path: indexPath, files } = record;
103
108
  const workspaceVer = record.workspace?.version;
104
109
  if (!workspaceVer) {
105
- throw new Error('workspace.version is required when writing package.index.yml');
110
+ throw new Error(`workspace.version is required when writing ${FILE_PATTERNS.PACKAGE_INDEX_YML}`);
106
111
  }
107
112
  const workspace = {
108
113
  hash: record.workspace?.hash,
@@ -1 +1 @@
1
- {"version":3,"file":"package-index-yml.js","sourceRoot":"","sources":["../../src/utils/package-index-yml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-index-yml.js","sourceRoot":"","sources":["../../src/utils/package-index-yml.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  import { logger } from './logger.js';
2
2
  import { promptPlatformSelection } from './prompts.js';
3
- import { detectAllPlatforms } from '../core/platforms.js';
4
- import { extractRemoteErrorReason } from './error-reasons.js';
3
+ import { getDetectedPlatforms } from '../core/platforms.js';
5
4
  /**
6
5
  * Detect existing platforms in the project
6
+ * Wrapper around getDetectedPlatforms that adds debug logging
7
7
  */
8
8
  export async function detectPlatforms(targetDir) {
9
- const platformDetectionResults = await detectAllPlatforms(targetDir);
10
- const detectedPlatforms = platformDetectionResults
11
- .filter(result => result.detected)
12
- .map(result => result.name);
9
+ const detectedPlatforms = await getDetectedPlatforms(targetDir);
13
10
  if (detectedPlatforms.length > 0) {
14
11
  logger.debug(`Auto-detected platforms: ${detectedPlatforms.join(', ')}`);
15
12
  }
@@ -21,112 +18,6 @@ export async function detectPlatforms(targetDir) {
21
18
  export async function promptForPlatformSelection() {
22
19
  console.log('\nšŸ¤– Platform Detection');
23
20
  console.log('No AI development platform detected in this project.');
24
- return await promptPlatformSelection();
25
- }
26
- /**
27
- * Display installation summary
28
- */
29
- export function displayInstallationSummary(totalInstalled, totalSkipped, totalPackages, results) {
30
- console.log(`\nāœ“ Installation Summary:`);
31
- console.log(`āœ“ Successfully installed: ${totalInstalled}/${totalPackages} packages`);
32
- if (totalSkipped > 0) {
33
- console.log(`āŒ Failed to install: ${totalSkipped} packages`);
34
- console.log('\nFailed packages:');
35
- results.filter(r => !r.success).forEach(result => {
36
- console.log(` • ${result.name}: ${result.error}`);
37
- });
38
- }
39
- }
40
- /**
41
- * Display installation results
42
- */
43
- export function displayInstallationResults(packageName, resolvedPackages, platformResult, options, mainPackage, allAddedFiles, allUpdatedFiles, rootFileResults, missingPackages, missingPackageOutcomes) {
44
- // Build installation summary
45
- let summaryText = `āœ“ Installed ${packageName}`;
46
- if (mainPackage) {
47
- summaryText += `@${mainPackage.version}`;
48
- }
49
- console.log(`${summaryText}`);
50
- const dependencyPackages = resolvedPackages.filter(f => !f.isRoot);
51
- if (dependencyPackages.length > 0) {
52
- console.log(`āœ“ Installed dependencies: ${dependencyPackages.length}`);
53
- for (const dep of dependencyPackages) {
54
- const packageSpecifier = typeof dep.name === 'string' && dep.name.startsWith('@')
55
- ? dep.name
56
- : `@${dep.name}`;
57
- console.log(` ā”œā”€ā”€ ${packageSpecifier}@${dep.version}`);
58
- }
59
- }
60
- console.log(`āœ“ Total packages processed: ${resolvedPackages.length}`);
61
- // Show detailed file list
62
- if (allAddedFiles && allAddedFiles.length > 0) {
63
- console.log(`āœ“ Added files: ${allAddedFiles.length}`);
64
- const sortedFiles = [...allAddedFiles].sort((a, b) => a.localeCompare(b));
65
- for (const file of sortedFiles) {
66
- console.log(` ā”œā”€ā”€ ${file}`);
67
- }
68
- }
69
- if (allUpdatedFiles && allUpdatedFiles.length > 0) {
70
- console.log(`āœ“ Updated files: ${allUpdatedFiles.length}`);
71
- const sortedFiles = [...allUpdatedFiles].sort((a, b) => a.localeCompare(b));
72
- for (const file of sortedFiles) {
73
- console.log(` ā”œā”€ā”€ ${file}`);
74
- }
75
- }
76
- // Root file installation results
77
- if (rootFileResults) {
78
- const totalRootFiles = rootFileResults.installed.length + rootFileResults.updated.length;
79
- if (totalRootFiles > 0) {
80
- console.log(`āœ“ Root files: ${totalRootFiles} file(s)`);
81
- // Show newly created root files
82
- if (rootFileResults.installed.length > 0) {
83
- const sortedInstalled = [...rootFileResults.installed].sort((a, b) => a.localeCompare(b));
84
- for (const file of sortedInstalled) {
85
- console.log(` ā”œā”€ā”€ ${file} (created)`);
86
- }
87
- }
88
- // Show updated root files
89
- if (rootFileResults.updated.length > 0) {
90
- const sortedUpdated = [...rootFileResults.updated].sort((a, b) => a.localeCompare(b));
91
- for (const file of sortedUpdated) {
92
- console.log(` ā”œā”€ā”€ ${file} (updated)`);
93
- }
94
- }
95
- }
96
- }
97
- // Platform and IDE template output
98
- if (platformResult.created.length > 0) {
99
- console.log(`āœ“ Created platform directories: ${platformResult.created.join(', ')}`);
100
- }
101
- // Report missing packages (displayed last)
102
- if (missingPackages && missingPackages.length > 0) {
103
- console.log(`\nāš ļø Missing dependencies detected:`);
104
- for (const missing of missingPackages) {
105
- const reasonLabel = formatMissingDependencyReason(missingPackageOutcomes?.[missing]);
106
- console.log(` • ${missing} (${reasonLabel})`);
107
- }
108
- console.log(`\nšŸ’” To resolve missing dependencies:`);
109
- console.log(` • Create locally: opkg init && opkg save`);
110
- console.log(` • Pull from remote: opkg pull ${missingPackages.join(' ')}`);
111
- console.log(` • Remove from package.yml`);
112
- console.log('');
113
- }
114
- }
115
- function formatMissingDependencyReason(outcome) {
116
- if (!outcome) {
117
- return 'not found in registry';
118
- }
119
- switch (outcome.reason) {
120
- case 'not-found':
121
- return 'not found in remote registry';
122
- case 'access-denied':
123
- return 'access denied';
124
- case 'network':
125
- return 'network error';
126
- case 'integrity':
127
- return 'integrity check failed';
128
- default:
129
- return extractRemoteErrorReason(outcome.message || 'unknown error');
130
- }
21
+ return (await promptPlatformSelection());
131
22
  }
132
23
  //# sourceMappingURL=package-installation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-installation.js","sourceRoot":"","sources":["../../src/utils/package-installation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-installation.js","sourceRoot":"","sources":["../../src/utils/package-installation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAiB,MAAM,sBAAsB,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEhE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,4BAA4B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAEpE,OAAO,CAAC,MAAM,uBAAuB,EAAE,CAAe,CAAC;AACzD,CAAC"}