@illumiarq/lumis 1.2.9 → 1.2.11

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/dist/bridges/project-bridge.d.ts +2 -0
  2. package/dist/bridges/project-bridge.d.ts.map +1 -0
  3. package/dist/bridges/project-bridge.js +174 -0
  4. package/dist/bridges/project-bridge.js.map +1 -0
  5. package/dist/cli.d.ts +1 -16
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +538 -170
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/app/cache-workflows.d.ts +7 -0
  10. package/dist/commands/app/cache-workflows.d.ts.map +1 -0
  11. package/dist/commands/app/cache-workflows.js +139 -0
  12. package/dist/commands/app/cache-workflows.js.map +1 -0
  13. package/dist/commands/app/command-runtime.d.ts +11 -0
  14. package/dist/commands/app/command-runtime.d.ts.map +1 -0
  15. package/dist/commands/app/command-runtime.js +41 -0
  16. package/dist/commands/app/command-runtime.js.map +1 -0
  17. package/dist/commands/app/config-cache.d.ts +3 -0
  18. package/dist/commands/app/config-cache.d.ts.map +1 -0
  19. package/dist/commands/app/config-cache.js +75 -0
  20. package/dist/commands/app/config-cache.js.map +1 -0
  21. package/dist/commands/app/config-publish.d.ts +2 -0
  22. package/dist/commands/app/config-publish.d.ts.map +1 -0
  23. package/dist/commands/app/config-publish.js +68 -0
  24. package/dist/commands/app/config-publish.js.map +1 -0
  25. package/dist/commands/app/config-stubs.d.ts +3 -0
  26. package/dist/commands/app/config-stubs.d.ts.map +1 -0
  27. package/dist/commands/app/config-stubs.js +154 -0
  28. package/dist/commands/app/config-stubs.js.map +1 -0
  29. package/dist/commands/app/database.d.ts +3 -0
  30. package/dist/commands/app/database.d.ts.map +1 -0
  31. package/dist/commands/app/database.js +221 -0
  32. package/dist/commands/app/database.js.map +1 -0
  33. package/dist/commands/app/docs.d.ts +7 -0
  34. package/dist/commands/app/docs.d.ts.map +1 -0
  35. package/dist/commands/app/docs.js +61 -0
  36. package/dist/commands/app/docs.js.map +1 -0
  37. package/dist/commands/app/routes.d.ts +5 -0
  38. package/dist/commands/app/routes.d.ts.map +1 -0
  39. package/dist/commands/app/routes.js +95 -0
  40. package/dist/commands/app/routes.js.map +1 -0
  41. package/dist/commands/app/security.d.ts +3 -0
  42. package/dist/commands/app/security.d.ts.map +1 -0
  43. package/dist/commands/app/security.js +15 -0
  44. package/dist/commands/app/security.js.map +1 -0
  45. package/dist/commands/app/worker-schedule.d.ts +5 -0
  46. package/dist/commands/app/worker-schedule.d.ts.map +1 -0
  47. package/dist/commands/app/worker-schedule.js +94 -0
  48. package/dist/commands/app/worker-schedule.js.map +1 -0
  49. package/dist/commands/app-commands.d.ts +19 -0
  50. package/dist/commands/app-commands.d.ts.map +1 -0
  51. package/dist/commands/app-commands.js +77 -0
  52. package/dist/commands/app-commands.js.map +1 -0
  53. package/dist/commands/build-vercel-fn.d.ts +9 -0
  54. package/dist/commands/build-vercel-fn.d.ts.map +1 -0
  55. package/dist/commands/build-vercel-fn.js +32 -0
  56. package/dist/commands/build-vercel-fn.js.map +1 -0
  57. package/dist/commands/build.d.ts +14 -0
  58. package/dist/commands/build.d.ts.map +1 -0
  59. package/dist/commands/build.js +24 -0
  60. package/dist/commands/build.js.map +1 -0
  61. package/dist/commands/info.d.ts +9 -0
  62. package/dist/commands/info.d.ts.map +1 -0
  63. package/dist/commands/info.js +41 -0
  64. package/dist/commands/info.js.map +1 -0
  65. package/dist/commands/keys.d.ts +3 -0
  66. package/dist/commands/keys.d.ts.map +1 -0
  67. package/dist/commands/keys.js +60 -0
  68. package/dist/commands/keys.js.map +1 -0
  69. package/dist/commands/maintenance.d.ts +9 -0
  70. package/dist/commands/maintenance.d.ts.map +1 -0
  71. package/dist/commands/maintenance.js +38 -0
  72. package/dist/commands/maintenance.js.map +1 -0
  73. package/dist/commands/module-list.d.ts +2 -0
  74. package/dist/commands/module-list.d.ts.map +1 -0
  75. package/dist/commands/module-list.js +27 -0
  76. package/dist/commands/module-list.js.map +1 -0
  77. package/dist/commands/preview.d.ts +14 -0
  78. package/dist/commands/preview.d.ts.map +1 -0
  79. package/dist/commands/preview.js +49 -0
  80. package/dist/commands/preview.js.map +1 -0
  81. package/dist/commands/serve.d.ts +16 -0
  82. package/dist/commands/serve.d.ts.map +1 -0
  83. package/dist/commands/serve.js +61 -0
  84. package/dist/commands/serve.js.map +1 -0
  85. package/dist/{output/ansi.d.ts → console.d.ts} +8 -4
  86. package/dist/console.d.ts.map +1 -0
  87. package/dist/{output/ansi.js → console.js} +12 -4
  88. package/dist/console.js.map +1 -0
  89. package/dist/index.d.ts +15 -19
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +12 -12
  92. package/dist/index.js.map +1 -1
  93. package/dist/paths.d.ts +26 -0
  94. package/dist/paths.d.ts.map +1 -0
  95. package/dist/paths.js +83 -0
  96. package/dist/paths.js.map +1 -0
  97. package/dist/server-wrapper.d.ts +12 -0
  98. package/dist/server-wrapper.d.ts.map +1 -0
  99. package/dist/server-wrapper.js +63 -0
  100. package/dist/server-wrapper.js.map +1 -0
  101. package/dist/vercel-wrapper.d.ts +6 -0
  102. package/dist/vercel-wrapper.d.ts.map +1 -0
  103. package/dist/vercel-wrapper.js +50 -0
  104. package/dist/vercel-wrapper.js.map +1 -0
  105. package/package.json +19 -37
  106. package/README.md +0 -38
  107. package/dist/adapter-loader.d.ts +0 -67
  108. package/dist/adapter-loader.d.ts.map +0 -1
  109. package/dist/adapter-loader.js +0 -273
  110. package/dist/adapter-loader.js.map +0 -1
  111. package/dist/commands/commands.command.d.ts +0 -38
  112. package/dist/commands/commands.command.d.ts.map +0 -1
  113. package/dist/commands/commands.command.js +0 -176
  114. package/dist/commands/commands.command.js.map +0 -1
  115. package/dist/commands/doctor.command.d.ts +0 -9
  116. package/dist/commands/doctor.command.d.ts.map +0 -1
  117. package/dist/commands/doctor.command.js +0 -640
  118. package/dist/commands/doctor.command.js.map +0 -1
  119. package/dist/commands/init.command.d.ts +0 -9
  120. package/dist/commands/init.command.d.ts.map +0 -1
  121. package/dist/commands/init.command.js +0 -121
  122. package/dist/commands/init.command.js.map +0 -1
  123. package/dist/commands/intent.command.d.ts +0 -26
  124. package/dist/commands/intent.command.d.ts.map +0 -1
  125. package/dist/commands/intent.command.js +0 -211
  126. package/dist/commands/intent.command.js.map +0 -1
  127. package/dist/commands/ir-rebuild.command.d.ts +0 -9
  128. package/dist/commands/ir-rebuild.command.d.ts.map +0 -1
  129. package/dist/commands/ir-rebuild.command.js +0 -36
  130. package/dist/commands/ir-rebuild.command.js.map +0 -1
  131. package/dist/commands/ir-show.command.d.ts +0 -9
  132. package/dist/commands/ir-show.command.d.ts.map +0 -1
  133. package/dist/commands/ir-show.command.js +0 -32
  134. package/dist/commands/ir-show.command.js.map +0 -1
  135. package/dist/commands/make.command.d.ts +0 -9
  136. package/dist/commands/make.command.d.ts.map +0 -1
  137. package/dist/commands/make.command.js +0 -93
  138. package/dist/commands/make.command.js.map +0 -1
  139. package/dist/commands/pack.command.d.ts +0 -16
  140. package/dist/commands/pack.command.d.ts.map +0 -1
  141. package/dist/commands/pack.command.js +0 -44
  142. package/dist/commands/pack.command.js.map +0 -1
  143. package/dist/commands/runtime.command.d.ts +0 -6
  144. package/dist/commands/runtime.command.d.ts.map +0 -1
  145. package/dist/commands/runtime.command.js +0 -379
  146. package/dist/commands/runtime.command.js.map +0 -1
  147. package/dist/commands/runtime.d.ts +0 -45
  148. package/dist/commands/runtime.d.ts.map +0 -1
  149. package/dist/commands/runtime.js +0 -66
  150. package/dist/commands/runtime.js.map +0 -1
  151. package/dist/commands/tinker-agent-plan.d.ts +0 -26
  152. package/dist/commands/tinker-agent-plan.d.ts.map +0 -1
  153. package/dist/commands/tinker-agent-plan.js +0 -115
  154. package/dist/commands/tinker-agent-plan.js.map +0 -1
  155. package/dist/commands/tinker-chat-commands.d.ts +0 -19
  156. package/dist/commands/tinker-chat-commands.d.ts.map +0 -1
  157. package/dist/commands/tinker-chat-commands.js +0 -263
  158. package/dist/commands/tinker-chat-commands.js.map +0 -1
  159. package/dist/commands/tinker-chat-runtime.d.ts +0 -30
  160. package/dist/commands/tinker-chat-runtime.d.ts.map +0 -1
  161. package/dist/commands/tinker-chat-runtime.js +0 -227
  162. package/dist/commands/tinker-chat-runtime.js.map +0 -1
  163. package/dist/commands/tinker-classic-mode.d.ts +0 -15
  164. package/dist/commands/tinker-classic-mode.d.ts.map +0 -1
  165. package/dist/commands/tinker-classic-mode.js +0 -160
  166. package/dist/commands/tinker-classic-mode.js.map +0 -1
  167. package/dist/commands/tinker-eval.command.d.ts +0 -3
  168. package/dist/commands/tinker-eval.command.d.ts.map +0 -1
  169. package/dist/commands/tinker-eval.command.js +0 -151
  170. package/dist/commands/tinker-eval.command.js.map +0 -1
  171. package/dist/commands/tinker-repl-display.d.ts +0 -15
  172. package/dist/commands/tinker-repl-display.d.ts.map +0 -1
  173. package/dist/commands/tinker-repl-display.js +0 -147
  174. package/dist/commands/tinker-repl-display.js.map +0 -1
  175. package/dist/commands/tinker-session-runtime.d.ts +0 -27
  176. package/dist/commands/tinker-session-runtime.d.ts.map +0 -1
  177. package/dist/commands/tinker-session-runtime.js +0 -196
  178. package/dist/commands/tinker-session-runtime.js.map +0 -1
  179. package/dist/commands/tinker.command.d.ts +0 -9
  180. package/dist/commands/tinker.command.d.ts.map +0 -1
  181. package/dist/commands/tinker.command.js +0 -142
  182. package/dist/commands/tinker.command.js.map +0 -1
  183. package/dist/commands/use.command.d.ts +0 -10
  184. package/dist/commands/use.command.d.ts.map +0 -1
  185. package/dist/commands/use.command.js +0 -69
  186. package/dist/commands/use.command.js.map +0 -1
  187. package/dist/config-loader.d.ts +0 -68
  188. package/dist/config-loader.d.ts.map +0 -1
  189. package/dist/config-loader.js +0 -81
  190. package/dist/config-loader.js.map +0 -1
  191. package/dist/launcher.d.ts +0 -16
  192. package/dist/launcher.d.ts.map +0 -1
  193. package/dist/launcher.js +0 -301
  194. package/dist/launcher.js.map +0 -1
  195. package/dist/lib/file-scanner.d.ts +0 -8
  196. package/dist/lib/file-scanner.d.ts.map +0 -1
  197. package/dist/lib/file-scanner.js +0 -70
  198. package/dist/lib/file-scanner.js.map +0 -1
  199. package/dist/lib/tinker-memory.d.ts +0 -19
  200. package/dist/lib/tinker-memory.d.ts.map +0 -1
  201. package/dist/lib/tinker-memory.js +0 -107
  202. package/dist/lib/tinker-memory.js.map +0 -1
  203. package/dist/lib/tinker-observer.d.ts +0 -47
  204. package/dist/lib/tinker-observer.d.ts.map +0 -1
  205. package/dist/lib/tinker-observer.js +0 -77
  206. package/dist/lib/tinker-observer.js.map +0 -1
  207. package/dist/lib/tinker-policy.d.ts +0 -21
  208. package/dist/lib/tinker-policy.d.ts.map +0 -1
  209. package/dist/lib/tinker-policy.js +0 -102
  210. package/dist/lib/tinker-policy.js.map +0 -1
  211. package/dist/lib/tinker-replay.d.ts +0 -51
  212. package/dist/lib/tinker-replay.d.ts.map +0 -1
  213. package/dist/lib/tinker-replay.js +0 -123
  214. package/dist/lib/tinker-replay.js.map +0 -1
  215. package/dist/output/ansi.d.ts.map +0 -1
  216. package/dist/output/ansi.js.map +0 -1
  217. package/dist/output/plan-display.d.ts +0 -4
  218. package/dist/output/plan-display.d.ts.map +0 -1
  219. package/dist/output/plan-display.js +0 -49
  220. package/dist/output/plan-display.js.map +0 -1
  221. package/dist/output/result-display.d.ts +0 -5
  222. package/dist/output/result-display.d.ts.map +0 -1
  223. package/dist/output/result-display.js +0 -17
  224. package/dist/output/result-display.js.map +0 -1
  225. package/dist/plugins/tinker-plugin.d.ts +0 -86
  226. package/dist/plugins/tinker-plugin.d.ts.map +0 -1
  227. package/dist/plugins/tinker-plugin.js +0 -42
  228. package/dist/plugins/tinker-plugin.js.map +0 -1
  229. package/dist/router-preferences.d.ts +0 -5
  230. package/dist/router-preferences.d.ts.map +0 -1
  231. package/dist/router-preferences.js +0 -22
  232. package/dist/router-preferences.js.map +0 -1
  233. package/dist/runtime/executor.d.ts +0 -33
  234. package/dist/runtime/executor.d.ts.map +0 -1
  235. package/dist/runtime/executor.js +0 -180
  236. package/dist/runtime/executor.js.map +0 -1
  237. package/dist/runtime/orchestration.d.ts +0 -43
  238. package/dist/runtime/orchestration.d.ts.map +0 -1
  239. package/dist/runtime/orchestration.js +0 -209
  240. package/dist/runtime/orchestration.js.map +0 -1
  241. package/dist/runtime/policy.d.ts +0 -23
  242. package/dist/runtime/policy.d.ts.map +0 -1
  243. package/dist/runtime/policy.js +0 -43
  244. package/dist/runtime/policy.js.map +0 -1
  245. package/dist/runtime/profiles.d.ts +0 -15
  246. package/dist/runtime/profiles.d.ts.map +0 -1
  247. package/dist/runtime/profiles.js +0 -131
  248. package/dist/runtime/profiles.js.map +0 -1
  249. package/dist/runtime/transcripts.d.ts +0 -59
  250. package/dist/runtime/transcripts.d.ts.map +0 -1
  251. package/dist/runtime/transcripts.js +0 -172
  252. package/dist/runtime/transcripts.js.map +0 -1
  253. package/dist/tools/git-diff.d.ts +0 -3
  254. package/dist/tools/git-diff.d.ts.map +0 -1
  255. package/dist/tools/git-diff.js +0 -16
  256. package/dist/tools/git-diff.js.map +0 -1
  257. package/dist/tools/index.d.ts +0 -24
  258. package/dist/tools/index.d.ts.map +0 -1
  259. package/dist/tools/index.js +0 -88
  260. package/dist/tools/index.js.map +0 -1
  261. package/dist/tools/lint.d.ts +0 -3
  262. package/dist/tools/lint.d.ts.map +0 -1
  263. package/dist/tools/lint.js +0 -35
  264. package/dist/tools/lint.js.map +0 -1
  265. package/dist/tools/read-file.d.ts +0 -3
  266. package/dist/tools/read-file.d.ts.map +0 -1
  267. package/dist/tools/read-file.js +0 -47
  268. package/dist/tools/read-file.js.map +0 -1
  269. package/dist/tools/run-command.d.ts +0 -3
  270. package/dist/tools/run-command.d.ts.map +0 -1
  271. package/dist/tools/run-command.js +0 -71
  272. package/dist/tools/run-command.js.map +0 -1
  273. package/dist/tools/run-tests.d.ts +0 -3
  274. package/dist/tools/run-tests.d.ts.map +0 -1
  275. package/dist/tools/run-tests.js +0 -49
  276. package/dist/tools/run-tests.js.map +0 -1
  277. package/dist/tools/tool-dispatch.d.ts +0 -32
  278. package/dist/tools/tool-dispatch.d.ts.map +0 -1
  279. package/dist/tools/tool-dispatch.js +0 -120
  280. package/dist/tools/tool-dispatch.js.map +0 -1
  281. package/dist/tools/typecheck.d.ts +0 -3
  282. package/dist/tools/typecheck.d.ts.map +0 -1
  283. package/dist/tools/typecheck.js +0 -48
  284. package/dist/tools/typecheck.js.map +0 -1
  285. package/dist/tools/types.d.ts +0 -62
  286. package/dist/tools/types.d.ts.map +0 -1
  287. package/dist/tools/types.js +0 -7
  288. package/dist/tools/types.js.map +0 -1
  289. package/dist/tools/write-file.d.ts +0 -15
  290. package/dist/tools/write-file.d.ts.map +0 -1
  291. package/dist/tools/write-file.js +0 -52
  292. package/dist/tools/write-file.js.map +0 -1
  293. package/dist/tracing/types.d.ts +0 -10
  294. package/dist/tracing/types.d.ts.map +0 -1
  295. package/dist/tracing/types.js +0 -2
  296. package/dist/tracing/types.js.map +0 -1
@@ -1,273 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter-loader.js","sourceRoot":"","sources":["../src/adapter-loader.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import type { CommandContext } from './runtime.js';
2
- export type NormalizedCommandEntry = {
3
- source: 'pack' | 'project';
4
- group: 'framework' | 'project';
5
- name: string;
6
- description: string;
7
- args: Array<{
8
- name: string;
9
- required: boolean;
10
- description: string;
11
- }>;
12
- };
13
- /**
14
- * Collect normalized command metadata from both pack and project sources.
15
- *
16
- * @param context - Shared command runtime context.
17
- * @returns Combined normalized command entries sorted by source then name.
18
- */
19
- export declare function collectNormalizedCommands(context: CommandContext): Promise<NormalizedCommandEntry[]>;
20
- /**
21
- * List available pack and project commands.
22
- *
23
- * @param context - Shared command runtime context.
24
- * @returns Exit code 0 when listing succeeds.
25
- */
26
- export declare function executeCommandsListCommand(context: CommandContext): Promise<number>;
27
- /**
28
- * Run a pack or project command by name.
29
- *
30
- * Usage:
31
- * - `lumis commands run pack <name> [key=value ...]`
32
- * - `lumis commands run project <name>`
33
- *
34
- * @param context - Shared command runtime context.
35
- * @returns Exit code 0 on success, otherwise 1.
36
- */
37
- export declare function executeCommandsRunCommand(context: CommandContext): Promise<number>;
38
- //# sourceMappingURL=commands.command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.command.d.ts","sourceRoot":"","sources":["../../src/commands/commands.command.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAQlD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,OAAO,CAAA;QACjB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAoCnC;AA+BD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzF;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCxF"}
@@ -1,176 +0,0 @@
1
- /**
2
- * Framework/project command bridge for Lumis.
3
- *
4
- * Core Lumis commands stay framework-agnostic. Framework-specific commands are
5
- * provided by packs, while project-specific commands are configured locally in
6
- * `lumis.config.ts` under `projectCommands`.
7
- */
8
- import { spawn } from 'node:child_process';
9
- import { once } from 'node:events';
10
- /**
11
- * Collect normalized command metadata from both pack and project sources.
12
- *
13
- * @param context - Shared command runtime context.
14
- * @returns Combined normalized command entries sorted by source then name.
15
- */
16
- export async function collectNormalizedCommands(context) {
17
- const packCommands = await context.resolvePackCommands();
18
- const projectCommands = context.resolveProjectCommands();
19
- const normalizedPack = packCommands.map((command) => ({
20
- source: 'pack',
21
- group: 'framework',
22
- name: command.name,
23
- description: command.description,
24
- args: command.args.map((arg) => ({
25
- name: arg.name,
26
- required: arg.required,
27
- description: arg.description,
28
- })),
29
- }));
30
- const normalizedProject = projectCommands.map((command) => ({
31
- source: 'project',
32
- group: 'project',
33
- name: command.name,
34
- description: command.description,
35
- args: [
36
- {
37
- name: 'shell',
38
- required: true,
39
- description: command.command,
40
- },
41
- ],
42
- }));
43
- return [...normalizedPack, ...normalizedProject].sort((left, right) => {
44
- if (left.source !== right.source) {
45
- return left.source.localeCompare(right.source);
46
- }
47
- return left.name.localeCompare(right.name);
48
- });
49
- }
50
- /**
51
- * Format normalized command entries in a stable text layout.
52
- *
53
- * @param entries - Normalized command records.
54
- * @returns Multi-line human-readable command listing.
55
- */
56
- function formatNormalizedCommands(entries) {
57
- if (entries.length === 0) {
58
- return 'No pack or project commands available.\n';
59
- }
60
- const lines = ['Commands (normalized):'];
61
- for (const entry of entries) {
62
- const args = entry.args.length
63
- ? entry.args
64
- .map((arg) => `${arg.name}${arg.required ? '*' : ''}`)
65
- .join(', ')
66
- : '(none)';
67
- lines.push(`- ${entry.name} [source=${entry.source}, group=${entry.group}]`, ` description: ${entry.description}`, ` args: ${args}`);
68
- }
69
- return `${lines.join('\n')}\n`;
70
- }
71
- /**
72
- * List available pack and project commands.
73
- *
74
- * @param context - Shared command runtime context.
75
- * @returns Exit code 0 when listing succeeds.
76
- */
77
- export async function executeCommandsListCommand(context) {
78
- const normalized = await collectNormalizedCommands(context);
79
- const asJson = context.commandArgs.includes('--json');
80
- if (asJson) {
81
- context.write(`${JSON.stringify(normalized, null, 2)}\n`);
82
- return 0;
83
- }
84
- context.write(formatNormalizedCommands(normalized));
85
- return 0;
86
- }
87
- /**
88
- * Run a pack or project command by name.
89
- *
90
- * Usage:
91
- * - `lumis commands run pack <name> [key=value ...]`
92
- * - `lumis commands run project <name>`
93
- *
94
- * @param context - Shared command runtime context.
95
- * @returns Exit code 0 on success, otherwise 1.
96
- */
97
- export async function executeCommandsRunCommand(context) {
98
- const [scope, name, ...rest] = context.commandArgs;
99
- if (!scope || !name) {
100
- context.writeError('Usage: lumis commands run <pack|project> <name> [args]\n');
101
- return 1;
102
- }
103
- if (scope === 'pack') {
104
- const packCommands = await context.resolvePackCommands();
105
- const command = packCommands.find((entry) => entry.name === name);
106
- if (!command) {
107
- context.writeError(`Pack command not found: ${name}\n`);
108
- return 1;
109
- }
110
- const args = parsePackArgs(rest);
111
- if (!args) {
112
- context.writeError('Pack args must be key=value pairs.\n');
113
- return 1;
114
- }
115
- await command.run(args, context.projectRoot);
116
- context.write(`Executed pack command: ${name}\n`);
117
- return 0;
118
- }
119
- if (scope === 'project') {
120
- const projectCommands = context.resolveProjectCommands();
121
- const command = projectCommands.find((entry) => entry.name === name);
122
- if (!command) {
123
- context.writeError(`Project command not found: ${name}\n`);
124
- return 1;
125
- }
126
- const ok = await runProjectCommand(command, context);
127
- return ok ? 0 : 1;
128
- }
129
- context.writeError(`Unknown command scope: ${scope}. Use pack or project.\n`);
130
- return 1;
131
- }
132
- /**
133
- * Parse `key=value` pairs for pack command argument invocation.
134
- *
135
- * @param rawArgs - Raw argument tokens after command name.
136
- * @returns Parsed key/value map, or null when a token is malformed.
137
- */
138
- function parsePackArgs(rawArgs) {
139
- const entries = [];
140
- for (const token of rawArgs) {
141
- const equalIndex = token.indexOf('=');
142
- if (equalIndex <= 0) {
143
- return null;
144
- }
145
- const key = token.slice(0, equalIndex).trim();
146
- const value = token.slice(equalIndex + 1).trim();
147
- if (!key) {
148
- return null;
149
- }
150
- entries.push([key, value]);
151
- }
152
- return Object.fromEntries(entries);
153
- }
154
- /**
155
- * Run a project-defined shell command in the project root.
156
- *
157
- * @param command - Project command definition from config.
158
- * @param context - Shared command runtime context.
159
- * @returns True when command exits with code 0.
160
- */
161
- async function runProjectCommand(command, context) {
162
- context.write(`Running project command: ${command.name}\n`);
163
- const child = spawn(command.command, {
164
- cwd: context.projectRoot,
165
- shell: true,
166
- stdio: 'inherit',
167
- });
168
- const [exitCode] = (await once(child, 'close'));
169
- if (exitCode !== 0) {
170
- context.writeError(`Project command failed with code ${exitCode ?? 'unknown'}: ${command.name}\n`);
171
- return false;
172
- }
173
- context.write(`Executed project command: ${command.name}\n`);
174
- return true;
175
- }
176
- //# sourceMappingURL=commands.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.command.js","sourceRoot":"","sources":["../../src/commands/commands.command.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { CommandContext } from './runtime.js';
2
- /**
3
- * Run diagnostic checks for host readiness and print a summary.
4
- *
5
- * @param context - Shared command runtime context.
6
- * @returns Exit code 0 when no failing checks exist, otherwise 1.
7
- */
8
- export declare function executeDoctorCommand(context: CommandContext): Promise<number>;
9
- //# sourceMappingURL=doctor.command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.command.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.command.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA8VlD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4XnF"}