@illumiarq/lumis 1.2.7 → 1.2.9

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 (296) hide show
  1. package/README.md +38 -0
  2. package/dist/adapter-loader.d.ts +67 -0
  3. package/dist/adapter-loader.d.ts.map +1 -0
  4. package/dist/adapter-loader.js +273 -0
  5. package/dist/adapter-loader.js.map +1 -0
  6. package/dist/cli.d.ts +16 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +173 -402
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/commands.command.d.ts +38 -0
  11. package/dist/commands/commands.command.d.ts.map +1 -0
  12. package/dist/commands/commands.command.js +176 -0
  13. package/dist/commands/commands.command.js.map +1 -0
  14. package/dist/commands/doctor.command.d.ts +9 -0
  15. package/dist/commands/doctor.command.d.ts.map +1 -0
  16. package/dist/commands/doctor.command.js +640 -0
  17. package/dist/commands/doctor.command.js.map +1 -0
  18. package/dist/commands/init.command.d.ts +9 -0
  19. package/dist/commands/init.command.d.ts.map +1 -0
  20. package/dist/commands/init.command.js +121 -0
  21. package/dist/commands/init.command.js.map +1 -0
  22. package/dist/commands/intent.command.d.ts +26 -0
  23. package/dist/commands/intent.command.d.ts.map +1 -0
  24. package/dist/commands/intent.command.js +211 -0
  25. package/dist/commands/intent.command.js.map +1 -0
  26. package/dist/commands/ir-rebuild.command.d.ts +9 -0
  27. package/dist/commands/ir-rebuild.command.d.ts.map +1 -0
  28. package/dist/commands/ir-rebuild.command.js +36 -0
  29. package/dist/commands/ir-rebuild.command.js.map +1 -0
  30. package/dist/commands/ir-show.command.d.ts +9 -0
  31. package/dist/commands/ir-show.command.d.ts.map +1 -0
  32. package/dist/commands/ir-show.command.js +32 -0
  33. package/dist/commands/ir-show.command.js.map +1 -0
  34. package/dist/commands/make.command.d.ts +9 -0
  35. package/dist/commands/make.command.d.ts.map +1 -0
  36. package/dist/commands/make.command.js +93 -0
  37. package/dist/commands/make.command.js.map +1 -0
  38. package/dist/commands/pack.command.d.ts +16 -0
  39. package/dist/commands/pack.command.d.ts.map +1 -0
  40. package/dist/commands/pack.command.js +44 -0
  41. package/dist/commands/pack.command.js.map +1 -0
  42. package/dist/commands/runtime.command.d.ts +6 -0
  43. package/dist/commands/runtime.command.d.ts.map +1 -0
  44. package/dist/commands/runtime.command.js +379 -0
  45. package/dist/commands/runtime.command.js.map +1 -0
  46. package/dist/commands/runtime.d.ts +45 -0
  47. package/dist/commands/runtime.d.ts.map +1 -0
  48. package/dist/commands/runtime.js +66 -0
  49. package/dist/commands/runtime.js.map +1 -0
  50. package/dist/commands/tinker-agent-plan.d.ts +26 -0
  51. package/dist/commands/tinker-agent-plan.d.ts.map +1 -0
  52. package/dist/commands/tinker-agent-plan.js +115 -0
  53. package/dist/commands/tinker-agent-plan.js.map +1 -0
  54. package/dist/commands/tinker-chat-commands.d.ts +19 -0
  55. package/dist/commands/tinker-chat-commands.d.ts.map +1 -0
  56. package/dist/commands/tinker-chat-commands.js +263 -0
  57. package/dist/commands/tinker-chat-commands.js.map +1 -0
  58. package/dist/commands/tinker-chat-runtime.d.ts +30 -0
  59. package/dist/commands/tinker-chat-runtime.d.ts.map +1 -0
  60. package/dist/commands/tinker-chat-runtime.js +227 -0
  61. package/dist/commands/tinker-chat-runtime.js.map +1 -0
  62. package/dist/commands/tinker-classic-mode.d.ts +15 -0
  63. package/dist/commands/tinker-classic-mode.d.ts.map +1 -0
  64. package/dist/commands/tinker-classic-mode.js +160 -0
  65. package/dist/commands/tinker-classic-mode.js.map +1 -0
  66. package/dist/commands/tinker-eval.command.d.ts +3 -0
  67. package/dist/commands/tinker-eval.command.d.ts.map +1 -0
  68. package/dist/commands/tinker-eval.command.js +151 -0
  69. package/dist/commands/tinker-eval.command.js.map +1 -0
  70. package/dist/commands/tinker-repl-display.d.ts +15 -0
  71. package/dist/commands/tinker-repl-display.d.ts.map +1 -0
  72. package/dist/commands/tinker-repl-display.js +147 -0
  73. package/dist/commands/tinker-repl-display.js.map +1 -0
  74. package/dist/commands/tinker-session-runtime.d.ts +27 -0
  75. package/dist/commands/tinker-session-runtime.d.ts.map +1 -0
  76. package/dist/commands/tinker-session-runtime.js +196 -0
  77. package/dist/commands/tinker-session-runtime.js.map +1 -0
  78. package/dist/commands/tinker.command.d.ts +9 -0
  79. package/dist/commands/tinker.command.d.ts.map +1 -0
  80. package/dist/commands/tinker.command.js +142 -0
  81. package/dist/commands/tinker.command.js.map +1 -0
  82. package/dist/commands/use.command.d.ts +10 -0
  83. package/dist/commands/use.command.d.ts.map +1 -0
  84. package/dist/commands/use.command.js +69 -0
  85. package/dist/commands/use.command.js.map +1 -0
  86. package/dist/config-loader.d.ts +68 -0
  87. package/dist/config-loader.d.ts.map +1 -0
  88. package/dist/config-loader.js +81 -0
  89. package/dist/config-loader.js.map +1 -0
  90. package/dist/index.d.ts +19 -15
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +12 -12
  93. package/dist/index.js.map +1 -1
  94. package/dist/launcher.d.ts +16 -0
  95. package/dist/launcher.d.ts.map +1 -0
  96. package/dist/launcher.js +301 -0
  97. package/dist/launcher.js.map +1 -0
  98. package/dist/lib/file-scanner.d.ts +8 -0
  99. package/dist/lib/file-scanner.d.ts.map +1 -0
  100. package/dist/lib/file-scanner.js +70 -0
  101. package/dist/lib/file-scanner.js.map +1 -0
  102. package/dist/lib/tinker-memory.d.ts +19 -0
  103. package/dist/lib/tinker-memory.d.ts.map +1 -0
  104. package/dist/lib/tinker-memory.js +107 -0
  105. package/dist/lib/tinker-memory.js.map +1 -0
  106. package/dist/lib/tinker-observer.d.ts +47 -0
  107. package/dist/lib/tinker-observer.d.ts.map +1 -0
  108. package/dist/lib/tinker-observer.js +77 -0
  109. package/dist/lib/tinker-observer.js.map +1 -0
  110. package/dist/lib/tinker-policy.d.ts +21 -0
  111. package/dist/lib/tinker-policy.d.ts.map +1 -0
  112. package/dist/lib/tinker-policy.js +102 -0
  113. package/dist/lib/tinker-policy.js.map +1 -0
  114. package/dist/lib/tinker-replay.d.ts +51 -0
  115. package/dist/lib/tinker-replay.d.ts.map +1 -0
  116. package/dist/lib/tinker-replay.js +123 -0
  117. package/dist/lib/tinker-replay.js.map +1 -0
  118. package/dist/{console.d.ts → output/ansi.d.ts} +4 -8
  119. package/dist/output/ansi.d.ts.map +1 -0
  120. package/dist/{console.js → output/ansi.js} +4 -12
  121. package/dist/output/ansi.js.map +1 -0
  122. package/dist/output/plan-display.d.ts +4 -0
  123. package/dist/output/plan-display.d.ts.map +1 -0
  124. package/dist/output/plan-display.js +49 -0
  125. package/dist/output/plan-display.js.map +1 -0
  126. package/dist/output/result-display.d.ts +5 -0
  127. package/dist/output/result-display.d.ts.map +1 -0
  128. package/dist/output/result-display.js +17 -0
  129. package/dist/output/result-display.js.map +1 -0
  130. package/dist/plugins/tinker-plugin.d.ts +86 -0
  131. package/dist/plugins/tinker-plugin.d.ts.map +1 -0
  132. package/dist/plugins/tinker-plugin.js +42 -0
  133. package/dist/plugins/tinker-plugin.js.map +1 -0
  134. package/dist/router-preferences.d.ts +5 -0
  135. package/dist/router-preferences.d.ts.map +1 -0
  136. package/dist/router-preferences.js +22 -0
  137. package/dist/router-preferences.js.map +1 -0
  138. package/dist/runtime/executor.d.ts +33 -0
  139. package/dist/runtime/executor.d.ts.map +1 -0
  140. package/dist/runtime/executor.js +180 -0
  141. package/dist/runtime/executor.js.map +1 -0
  142. package/dist/runtime/orchestration.d.ts +43 -0
  143. package/dist/runtime/orchestration.d.ts.map +1 -0
  144. package/dist/runtime/orchestration.js +209 -0
  145. package/dist/runtime/orchestration.js.map +1 -0
  146. package/dist/runtime/policy.d.ts +23 -0
  147. package/dist/runtime/policy.d.ts.map +1 -0
  148. package/dist/runtime/policy.js +43 -0
  149. package/dist/runtime/policy.js.map +1 -0
  150. package/dist/runtime/profiles.d.ts +15 -0
  151. package/dist/runtime/profiles.d.ts.map +1 -0
  152. package/dist/runtime/profiles.js +131 -0
  153. package/dist/runtime/profiles.js.map +1 -0
  154. package/dist/runtime/transcripts.d.ts +59 -0
  155. package/dist/runtime/transcripts.d.ts.map +1 -0
  156. package/dist/runtime/transcripts.js +172 -0
  157. package/dist/runtime/transcripts.js.map +1 -0
  158. package/dist/tools/git-diff.d.ts +3 -0
  159. package/dist/tools/git-diff.d.ts.map +1 -0
  160. package/dist/tools/git-diff.js +16 -0
  161. package/dist/tools/git-diff.js.map +1 -0
  162. package/dist/tools/index.d.ts +24 -0
  163. package/dist/tools/index.d.ts.map +1 -0
  164. package/dist/tools/index.js +88 -0
  165. package/dist/tools/index.js.map +1 -0
  166. package/dist/tools/lint.d.ts +3 -0
  167. package/dist/tools/lint.d.ts.map +1 -0
  168. package/dist/tools/lint.js +35 -0
  169. package/dist/tools/lint.js.map +1 -0
  170. package/dist/tools/read-file.d.ts +3 -0
  171. package/dist/tools/read-file.d.ts.map +1 -0
  172. package/dist/tools/read-file.js +47 -0
  173. package/dist/tools/read-file.js.map +1 -0
  174. package/dist/tools/run-command.d.ts +3 -0
  175. package/dist/tools/run-command.d.ts.map +1 -0
  176. package/dist/tools/run-command.js +71 -0
  177. package/dist/tools/run-command.js.map +1 -0
  178. package/dist/tools/run-tests.d.ts +3 -0
  179. package/dist/tools/run-tests.d.ts.map +1 -0
  180. package/dist/tools/run-tests.js +49 -0
  181. package/dist/tools/run-tests.js.map +1 -0
  182. package/dist/tools/tool-dispatch.d.ts +32 -0
  183. package/dist/tools/tool-dispatch.d.ts.map +1 -0
  184. package/dist/tools/tool-dispatch.js +120 -0
  185. package/dist/tools/tool-dispatch.js.map +1 -0
  186. package/dist/tools/typecheck.d.ts +3 -0
  187. package/dist/tools/typecheck.d.ts.map +1 -0
  188. package/dist/tools/typecheck.js +48 -0
  189. package/dist/tools/typecheck.js.map +1 -0
  190. package/dist/tools/types.d.ts +62 -0
  191. package/dist/tools/types.d.ts.map +1 -0
  192. package/dist/tools/types.js +7 -0
  193. package/dist/tools/types.js.map +1 -0
  194. package/dist/tools/write-file.d.ts +15 -0
  195. package/dist/tools/write-file.d.ts.map +1 -0
  196. package/dist/tools/write-file.js +52 -0
  197. package/dist/tools/write-file.js.map +1 -0
  198. package/dist/tracing/types.d.ts +10 -0
  199. package/dist/tracing/types.d.ts.map +1 -0
  200. package/dist/tracing/types.js +2 -0
  201. package/dist/tracing/types.js.map +1 -0
  202. package/package.json +37 -19
  203. package/dist/bridges/project-bridge.d.ts +0 -2
  204. package/dist/bridges/project-bridge.d.ts.map +0 -1
  205. package/dist/bridges/project-bridge.js +0 -171
  206. package/dist/bridges/project-bridge.js.map +0 -1
  207. package/dist/commands/app/cache-workflows.d.ts +0 -7
  208. package/dist/commands/app/cache-workflows.d.ts.map +0 -1
  209. package/dist/commands/app/cache-workflows.js +0 -139
  210. package/dist/commands/app/cache-workflows.js.map +0 -1
  211. package/dist/commands/app/command-runtime.d.ts +0 -11
  212. package/dist/commands/app/command-runtime.d.ts.map +0 -1
  213. package/dist/commands/app/command-runtime.js +0 -41
  214. package/dist/commands/app/command-runtime.js.map +0 -1
  215. package/dist/commands/app/config-cache.d.ts +0 -3
  216. package/dist/commands/app/config-cache.d.ts.map +0 -1
  217. package/dist/commands/app/config-cache.js +0 -75
  218. package/dist/commands/app/config-cache.js.map +0 -1
  219. package/dist/commands/app/config-publish.d.ts +0 -2
  220. package/dist/commands/app/config-publish.d.ts.map +0 -1
  221. package/dist/commands/app/config-publish.js +0 -68
  222. package/dist/commands/app/config-publish.js.map +0 -1
  223. package/dist/commands/app/config-stubs.d.ts +0 -3
  224. package/dist/commands/app/config-stubs.d.ts.map +0 -1
  225. package/dist/commands/app/config-stubs.js +0 -154
  226. package/dist/commands/app/config-stubs.js.map +0 -1
  227. package/dist/commands/app/database.d.ts +0 -3
  228. package/dist/commands/app/database.d.ts.map +0 -1
  229. package/dist/commands/app/database.js +0 -221
  230. package/dist/commands/app/database.js.map +0 -1
  231. package/dist/commands/app/docs.d.ts +0 -7
  232. package/dist/commands/app/docs.d.ts.map +0 -1
  233. package/dist/commands/app/docs.js +0 -61
  234. package/dist/commands/app/docs.js.map +0 -1
  235. package/dist/commands/app/routes.d.ts +0 -5
  236. package/dist/commands/app/routes.d.ts.map +0 -1
  237. package/dist/commands/app/routes.js +0 -95
  238. package/dist/commands/app/routes.js.map +0 -1
  239. package/dist/commands/app/security.d.ts +0 -3
  240. package/dist/commands/app/security.d.ts.map +0 -1
  241. package/dist/commands/app/security.js +0 -15
  242. package/dist/commands/app/security.js.map +0 -1
  243. package/dist/commands/app/worker-schedule.d.ts +0 -5
  244. package/dist/commands/app/worker-schedule.d.ts.map +0 -1
  245. package/dist/commands/app/worker-schedule.js +0 -94
  246. package/dist/commands/app/worker-schedule.js.map +0 -1
  247. package/dist/commands/app-commands.d.ts +0 -19
  248. package/dist/commands/app-commands.d.ts.map +0 -1
  249. package/dist/commands/app-commands.js +0 -77
  250. package/dist/commands/app-commands.js.map +0 -1
  251. package/dist/commands/build-vercel-fn.d.ts +0 -9
  252. package/dist/commands/build-vercel-fn.d.ts.map +0 -1
  253. package/dist/commands/build-vercel-fn.js +0 -32
  254. package/dist/commands/build-vercel-fn.js.map +0 -1
  255. package/dist/commands/build.d.ts +0 -14
  256. package/dist/commands/build.d.ts.map +0 -1
  257. package/dist/commands/build.js +0 -24
  258. package/dist/commands/build.js.map +0 -1
  259. package/dist/commands/info.d.ts +0 -2
  260. package/dist/commands/info.d.ts.map +0 -1
  261. package/dist/commands/info.js +0 -25
  262. package/dist/commands/info.js.map +0 -1
  263. package/dist/commands/keys.d.ts +0 -3
  264. package/dist/commands/keys.d.ts.map +0 -1
  265. package/dist/commands/keys.js +0 -60
  266. package/dist/commands/keys.js.map +0 -1
  267. package/dist/commands/maintenance.d.ts +0 -9
  268. package/dist/commands/maintenance.d.ts.map +0 -1
  269. package/dist/commands/maintenance.js +0 -38
  270. package/dist/commands/maintenance.js.map +0 -1
  271. package/dist/commands/module-list.d.ts +0 -2
  272. package/dist/commands/module-list.d.ts.map +0 -1
  273. package/dist/commands/module-list.js +0 -27
  274. package/dist/commands/module-list.js.map +0 -1
  275. package/dist/commands/preview.d.ts +0 -14
  276. package/dist/commands/preview.d.ts.map +0 -1
  277. package/dist/commands/preview.js +0 -49
  278. package/dist/commands/preview.js.map +0 -1
  279. package/dist/commands/serve.d.ts +0 -16
  280. package/dist/commands/serve.d.ts.map +0 -1
  281. package/dist/commands/serve.js +0 -61
  282. package/dist/commands/serve.js.map +0 -1
  283. package/dist/console.d.ts.map +0 -1
  284. package/dist/console.js.map +0 -1
  285. package/dist/paths.d.ts +0 -21
  286. package/dist/paths.d.ts.map +0 -1
  287. package/dist/paths.js +0 -47
  288. package/dist/paths.js.map +0 -1
  289. package/dist/server-wrapper.d.ts +0 -12
  290. package/dist/server-wrapper.d.ts.map +0 -1
  291. package/dist/server-wrapper.js +0 -63
  292. package/dist/server-wrapper.js.map +0 -1
  293. package/dist/vercel-wrapper.d.ts +0 -6
  294. package/dist/vercel-wrapper.d.ts.map +0 -1
  295. package/dist/vercel-wrapper.js +0 -50
  296. package/dist/vercel-wrapper.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # @lumiarq/lumis
2
+
3
+ Lumis is the CLI host package for the Lumiarq code-generation and verification stack.
4
+
5
+ ## What it does
6
+
7
+ - Detects the best framework pack for a project
8
+ - Builds and updates IR from adapters
9
+ - Runs commands like `doctor`, `init`, `runtime`, and `commands`
10
+ - Orchestrates runtime profiles, transcript storage, and post-make tasks
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ npm install -g @lumiarq/lumis
16
+ ```
17
+
18
+ Or run locally in a project:
19
+
20
+ ```bash
21
+ npx @lumiarq/lumis --help
22
+ ```
23
+
24
+ ## Development
25
+
26
+ ```bash
27
+ pnpm install
28
+ pnpm turbo run build
29
+ pnpm turbo run test
30
+ pnpm turbo run typecheck
31
+ ```
32
+
33
+ ## Contributing
34
+
35
+ 1. Open an issue describing the feature or bug.
36
+ 2. Add tests with your change.
37
+ 3. Keep exports stable and update docs for user-facing behavior.
38
+ 4. Run `pnpm turbo run test typecheck build` before creating a PR.
@@ -0,0 +1,67 @@
1
+ import type { LumisAdapter, LumisPackModule } from '@lumiarq/context';
2
+ export declare function getBuiltinPacks(): LumisPackModule[];
3
+ /**
4
+ * Convenience helper for callers that still operate on adapters directly.
5
+ *
6
+ * @returns Built-in adapters derived from the built-in pack registry.
7
+ */
8
+ export declare function getBuiltinAdapters(): LumisAdapter[];
9
+ /**
10
+ * Discover and return all pack modules available to the current project.
11
+ * Combines built-in packs with packs declared in package.json dependencies.
12
+ *
13
+ * @param projectRoot - Path to the project for which to discover packs.
14
+ * @returns Array of discovered pack modules.
15
+ */
16
+ export declare function getAvailablePacks(projectRoot: string): Promise<LumisPackModule[]>;
17
+ /**
18
+ * Lookup a built-in pack by either manifest framework id or adapter name.
19
+ *
20
+ * @param framework - Framework or adapter name to lookup.
21
+ * @returns Matching pack or null if no match is found.
22
+ */
23
+ export declare function getBuiltinPackByFramework(framework: string): LumisPackModule | null;
24
+ export declare function detectBestPack(projectRoot: string, packs?: LumisPackModule[]): Promise<LumisPackModule | null>;
25
+ /**
26
+ * Adapter-only detection path for backward compatibility.
27
+ *
28
+ * @param projectRoot - Path to the project for which to detect an adapter.
29
+ * @param adapters - Optional list of adapters to consider for detection. Defaults to built-in adapters.
30
+ * @returns Best matching adapter, or null when no compatible adapter is detected.
31
+ *
32
+ * Selection strategy: Highest detection confidence wins.
33
+ */
34
+ export declare function detectBestAdapter(projectRoot: string, adapters?: LumisAdapter[]): Promise<LumisAdapter | null>;
35
+ /**
36
+ * Resolve a pack for a project.
37
+ *
38
+ * @param projectRoot - Path to the project for which to resolve a pack.
39
+ * @param options.configuredAdapter - Optional adapter/framework hint from configuration. If provided, we will first attempt to match this to a built-in pack before falling back to detection.
40
+ * @param options.packs - Optional list of packs to consider for resolution. Defaults to built-in packs.
41
+ * @returns Resolved pack module, or null when no compatible pack can be resolved.
42
+ *
43
+ * Resolution strategy:
44
+ * If a configured adapter/framework is provided and matches a built-in pack,
45
+ * it is preferred. Otherwise we fall back to automatic detection.
46
+ */
47
+ export declare function resolvePackForProject(projectRoot: string, options?: {
48
+ configuredAdapter?: string;
49
+ packs?: LumisPackModule[];
50
+ }): Promise<LumisPackModule | null>;
51
+ /**
52
+ * Resolve adapter for a project through pack resolution.
53
+ *
54
+ * @param projectRoot - Path to the project for which to resolve an adapter.
55
+ * @param options.configuredAdapter - Optional adapter/framework hint from configuration. If provided, we will first attempt to match this to a built-in pack before falling back to detection.
56
+ * @param options.packs - Optional list of packs to consider for resolution. Defaults to built-in packs.
57
+ * @returns Resolved adapter, or null when no compatible pack/adapter can be resolved.
58
+ *
59
+ * Resolution strategy:
60
+ * If a configured adapter/framework is provided and matches a built-in pack,
61
+ * it is preferred. Otherwise we fall back to automatic detection.
62
+ */
63
+ export declare function resolveAdapterForProject(projectRoot: string, options?: {
64
+ configuredAdapter?: string;
65
+ packs?: LumisPackModule[];
66
+ }): Promise<LumisAdapter | null>;
67
+ //# sourceMappingURL=adapter-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-loader.d.ts","sourceRoot":"","sources":["../src/adapter-loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AA+GrE,wBAAgB,eAAe,IAAI,eAAe,EAAE,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAEnD;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmBvF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMnF;AA0BD,wBAAsB,cAAc,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmCjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,YAAY,EAAyB,GAC7C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAe9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACT,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;CACzB,GACC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmCjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACT,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;CACzB,GACC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAG9B"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * Adapter/pack loading for the host `lumis` package.
3
+ *
4
+ * This module is intentionally host-owned (not pack-owned) so the CLI/runtime has
5
+ * one place to resolve built-in packs, detect project compatibility, and map to an adapter.
6
+ */
7
+ import fs from 'node:fs';
8
+ import path from 'node:path';
9
+ import { LUMIARQ_SCOPE } from '@lumiarq/context';
10
+ import { LUMIARQ_PACK_MANIFEST, LumiarqAdapter } from '@lumiarq/pack-lumiarq';
11
+ import { NEXTJS_PACK_MANIFEST, NextjsAdapter } from '@lumiarq/pack-nextjs';
12
+ import { DJANGO_PACK_MANIFEST, DjangoAdapter } from '@lumiarq/pack-django';
13
+ import { LARAVEL_PACK_MANIFEST, LaravelAdapter } from '@lumiarq/pack-laravel';
14
+ const BUILTIN_PACKS = [
15
+ {
16
+ manifest: LUMIARQ_PACK_MANIFEST,
17
+ adapter: LumiarqAdapter,
18
+ },
19
+ {
20
+ manifest: NEXTJS_PACK_MANIFEST,
21
+ adapter: NextjsAdapter,
22
+ },
23
+ {
24
+ manifest: DJANGO_PACK_MANIFEST,
25
+ adapter: DjangoAdapter,
26
+ },
27
+ {
28
+ manifest: LARAVEL_PACK_MANIFEST,
29
+ adapter: LaravelAdapter,
30
+ },
31
+ ];
32
+ async function discoverPacksForProject(projectRoot) {
33
+ const packageJsonPath = path.join(projectRoot, 'package.json');
34
+ if (!fs.existsSync(packageJsonPath)) {
35
+ return [];
36
+ }
37
+ let pkgContent;
38
+ try {
39
+ pkgContent = fs.readFileSync(packageJsonPath, 'utf8');
40
+ }
41
+ catch {
42
+ return [];
43
+ }
44
+ let pkg;
45
+ try {
46
+ pkg = JSON.parse(pkgContent);
47
+ }
48
+ catch {
49
+ return [];
50
+ }
51
+ const dependencies = {
52
+ ...(pkg.dependencies ?? {}),
53
+ ...(pkg.devDependencies ?? {}),
54
+ };
55
+ const packs = [];
56
+ for (const depName of Object.keys(dependencies)) {
57
+ if (!depName.startsWith(`${LUMIARQ_SCOPE}/`)) {
58
+ continue;
59
+ }
60
+ if (depName === `${LUMIARQ_SCOPE}/lumis`) {
61
+ continue;
62
+ }
63
+ try {
64
+ // Attempt to resolve a known pack module by name.
65
+ const module = await import(depName);
66
+ const manifest = module.LUMIARQ_PACK_MANIFEST ??
67
+ module.LUMIS_PACK_MANIFEST ??
68
+ module.packManifest ??
69
+ module.default?.manifest;
70
+ const adapter = module.LumiarqAdapter ??
71
+ module.LumisAdapter ??
72
+ module.adapter ??
73
+ module.default?.adapter;
74
+ if (manifest && adapter) {
75
+ packs.push({ manifest, adapter });
76
+ }
77
+ }
78
+ catch {
79
+ // Fallback: if the dependency is a known built-in pack, use that module.
80
+ const fallbackPack = BUILTIN_PACKS.find((p) => p.manifest.name === depName);
81
+ if (fallbackPack) {
82
+ packs.push(fallbackPack);
83
+ }
84
+ }
85
+ }
86
+ return packs;
87
+ }
88
+ /**
89
+ * Return built-in packs sorted by detection priority (highest first).
90
+ *
91
+ * @returns A new array of built-in pack modules sorted by priority descending.
92
+ */
93
+ function getPackFrameworks(pack) {
94
+ return Array.isArray(pack.manifest.frameworks) ? pack.manifest.frameworks : [];
95
+ }
96
+ function getPackPrimaryFramework(pack) {
97
+ return getPackFrameworks(pack)[0] ?? '';
98
+ }
99
+ export function getBuiltinPacks() {
100
+ return [...BUILTIN_PACKS].sort((left, right) => right.manifest.detectionPriority - left.manifest.detectionPriority);
101
+ }
102
+ /**
103
+ * Convenience helper for callers that still operate on adapters directly.
104
+ *
105
+ * @returns Built-in adapters derived from the built-in pack registry.
106
+ */
107
+ export function getBuiltinAdapters() {
108
+ return getBuiltinPacks().map((pack) => pack.adapter);
109
+ }
110
+ /**
111
+ * Discover and return all pack modules available to the current project.
112
+ * Combines built-in packs with packs declared in package.json dependencies.
113
+ *
114
+ * @param projectRoot - Path to the project for which to discover packs.
115
+ * @returns Array of discovered pack modules.
116
+ */
117
+ export async function getAvailablePacks(projectRoot) {
118
+ const discoveredPacks = await discoverPacksForProject(projectRoot);
119
+ const merged = new Map();
120
+ for (const pack of getBuiltinPacks()) {
121
+ const frameworkKey = getPackPrimaryFramework(pack);
122
+ if (frameworkKey) {
123
+ merged.set(frameworkKey, pack);
124
+ }
125
+ }
126
+ for (const pack of discoveredPacks) {
127
+ const frameworkKey = getPackPrimaryFramework(pack);
128
+ if (frameworkKey && !merged.has(frameworkKey)) {
129
+ merged.set(frameworkKey, pack);
130
+ }
131
+ }
132
+ return Array.from(merged.values());
133
+ }
134
+ /**
135
+ * Lookup a built-in pack by either manifest framework id or adapter name.
136
+ *
137
+ * @param framework - Framework or adapter name to lookup.
138
+ * @returns Matching pack or null if no match is found.
139
+ */
140
+ export function getBuiltinPackByFramework(framework) {
141
+ return (BUILTIN_PACKS.find((pack) => getPackFrameworks(pack).includes(framework) || pack.adapter.name === framework) ?? null);
142
+ }
143
+ /**
144
+ * Detect the best matching pack for a project.
145
+ *
146
+ * @param projectRoot - Path to the project for which to detect a pack.
147
+ * @param packs - Optional list of packs to consider for detection. Defaults to built-in packs.
148
+ * @returns Promise<LumisPackModule | null> - Detected pack or null if no compatible pack is found.
149
+ *
150
+ * Selection strategy:
151
+ * 1) Highest adapter detection confidence wins.
152
+ * 2) If equal confidence, higher pack detection priority wins.
153
+ */
154
+ function isLumisCoreCompatible(lumisCoreRange, coreVersion = '1.0.0') {
155
+ if (!lumisCoreRange || lumisCoreRange === '*') {
156
+ return true;
157
+ }
158
+ if (lumisCoreRange.startsWith('^')) {
159
+ const major = lumisCoreRange.slice(1).split('.')[0];
160
+ return coreVersion.startsWith(`${major}.`);
161
+ }
162
+ return lumisCoreRange === coreVersion;
163
+ }
164
+ export async function detectBestPack(projectRoot, packs) {
165
+ const candidates = packs ?? (await getAvailablePacks(projectRoot));
166
+ let best = null;
167
+ for (const pack of candidates) {
168
+ if (!isLumisCoreCompatible(pack.manifest.lumisCore)) {
169
+ continue;
170
+ }
171
+ const detection = await pack.adapter.detect(projectRoot);
172
+ if (!detection.detected) {
173
+ continue;
174
+ }
175
+ const candidate = {
176
+ pack,
177
+ confidence: detection.confidence,
178
+ priority: pack.manifest.detectionPriority,
179
+ };
180
+ if (!best) {
181
+ best = candidate;
182
+ continue;
183
+ }
184
+ const hasHigherConfidence = candidate.confidence > best.confidence;
185
+ const hasSameConfidenceHigherPriority = candidate.confidence === best.confidence && candidate.priority > best.priority;
186
+ if (hasHigherConfidence || hasSameConfidenceHigherPriority) {
187
+ best = candidate;
188
+ }
189
+ }
190
+ return best?.pack ?? null;
191
+ }
192
+ /**
193
+ * Adapter-only detection path for backward compatibility.
194
+ *
195
+ * @param projectRoot - Path to the project for which to detect an adapter.
196
+ * @param adapters - Optional list of adapters to consider for detection. Defaults to built-in adapters.
197
+ * @returns Best matching adapter, or null when no compatible adapter is detected.
198
+ *
199
+ * Selection strategy: Highest detection confidence wins.
200
+ */
201
+ export async function detectBestAdapter(projectRoot, adapters = getBuiltinAdapters()) {
202
+ let best = null;
203
+ for (const adapter of adapters) {
204
+ const detection = await adapter.detect(projectRoot);
205
+ if (!detection.detected) {
206
+ continue;
207
+ }
208
+ if (!best || detection.confidence > best.confidence) {
209
+ best = { adapter, confidence: detection.confidence };
210
+ }
211
+ }
212
+ return best?.adapter ?? null;
213
+ }
214
+ /**
215
+ * Resolve a pack for a project.
216
+ *
217
+ * @param projectRoot - Path to the project for which to resolve a pack.
218
+ * @param options.configuredAdapter - Optional adapter/framework hint from configuration. If provided, we will first attempt to match this to a built-in pack before falling back to detection.
219
+ * @param options.packs - Optional list of packs to consider for resolution. Defaults to built-in packs.
220
+ * @returns Resolved pack module, or null when no compatible pack can be resolved.
221
+ *
222
+ * Resolution strategy:
223
+ * If a configured adapter/framework is provided and matches a built-in pack,
224
+ * it is preferred. Otherwise we fall back to automatic detection.
225
+ */
226
+ export async function resolvePackForProject(projectRoot, options) {
227
+ const configuredAdapter = options?.configuredAdapter;
228
+ const packs = options?.packs ?? (await getAvailablePacks(projectRoot));
229
+ if (configuredAdapter) {
230
+ const configuredPack = packs.find((pack) => getPackFrameworks(pack).includes(configuredAdapter) || pack.adapter.name === configuredAdapter);
231
+ if (configuredPack) {
232
+ return configuredPack;
233
+ }
234
+ }
235
+ // If package.json declares a pack dependency, honor that preference before detection.
236
+ const packageJsonPath = path.join(projectRoot, 'package.json');
237
+ if (fs.existsSync(packageJsonPath)) {
238
+ try {
239
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
240
+ const dependencies = {
241
+ ...(pkg.dependencies ?? {}),
242
+ ...(pkg.devDependencies ?? {}),
243
+ };
244
+ for (const depName of Object.keys(dependencies)) {
245
+ const declaredPack = packs.find((pack) => pack.manifest.name === depName);
246
+ if (declaredPack && isLumisCoreCompatible(declaredPack.manifest.lumisCore)) {
247
+ return declaredPack;
248
+ }
249
+ }
250
+ }
251
+ catch {
252
+ // ignore parse errors and continue to detection
253
+ }
254
+ }
255
+ return detectBestPack(projectRoot, packs);
256
+ }
257
+ /**
258
+ * Resolve adapter for a project through pack resolution.
259
+ *
260
+ * @param projectRoot - Path to the project for which to resolve an adapter.
261
+ * @param options.configuredAdapter - Optional adapter/framework hint from configuration. If provided, we will first attempt to match this to a built-in pack before falling back to detection.
262
+ * @param options.packs - Optional list of packs to consider for resolution. Defaults to built-in packs.
263
+ * @returns Resolved adapter, or null when no compatible pack/adapter can be resolved.
264
+ *
265
+ * Resolution strategy:
266
+ * If a configured adapter/framework is provided and matches a built-in pack,
267
+ * it is preferred. Otherwise we fall back to automatic detection.
268
+ */
269
+ export async function resolveAdapterForProject(projectRoot, options) {
270
+ const pack = await resolvePackForProject(projectRoot, options);
271
+ return pack?.adapter ?? null;
272
+ }
273
+ //# sourceMappingURL=adapter-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-loader.js","sourceRoot":"","sources":["../src/adapter-loader.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,18 @@
1
- #!/usr/bin/env node
1
+ type RunCliOptions = {
2
+ projectRoot?: string;
3
+ write?: (message: string) => void;
4
+ writeError?: (message: string) => void;
5
+ interactiveMode?: 'auto' | 'on' | 'off';
6
+ stdin?: NodeJS.ReadStream;
7
+ stdout?: NodeJS.WriteStream;
8
+ };
9
+ /**
10
+ * Execute the host CLI command flow.
11
+ *
12
+ * @param argv - CLI arguments excluding the node/script prefix.
13
+ * @param options - Optional execution overrides for project root and output writers.
14
+ * @returns Exit code (0 success, non-zero failure).
15
+ */
16
+ export declare function runCli(argv: string[], options?: RunCliOptions): Promise<number>;
2
17
  export {};
3
18
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAuDA,KAAK,aAAa,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;CAC3B,CAAA;AAsED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFzF"}