@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
@@ -0,0 +1,9 @@
1
+ import type { CommandContext } from './runtime.js';
2
+ /**
3
+ * Run Lumis project initialization.
4
+ *
5
+ * @param context - Shared command runtime context.
6
+ * @returns Exit code (0 success, 1 error).
7
+ */
8
+ export declare function executeInitCommand(context: CommandContext): Promise<number>;
9
+ //# sourceMappingURL=init.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../src/commands/init.command.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAIlD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+GjF"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Initialize a Lumis project with a default config, scripts, IR build, and doctor checks.
3
+ */
4
+ import fs from 'node:fs';
5
+ import path from 'node:path';
6
+ import child_process from 'node:child_process';
7
+ import { saveLumisConfig } from '../config-loader.js';
8
+ import { executeDoctorCommand } from './doctor.command.js';
9
+ import { executeIrRebuildCommand } from './ir-rebuild.command.js';
10
+ const DEFAULT_SCRIPT_ENTRY = 'lumis';
11
+ /**
12
+ * Run Lumis project initialization.
13
+ *
14
+ * @param context - Shared command runtime context.
15
+ * @returns Exit code (0 success, 1 error).
16
+ */
17
+ export async function executeInitCommand(context) {
18
+ const configPath = path.join(context.projectRoot, 'lumis.config.json');
19
+ if (fs.existsSync(configPath)) {
20
+ context.writeError(`lumis.config.json already exists at ${configPath}. init aborted.\n`);
21
+ return 1;
22
+ }
23
+ const pack = await context.resolvePack();
24
+ const adapterName = pack?.adapter.name;
25
+ const framework = pack?.manifest.frameworks?.[0];
26
+ const config = {
27
+ ...(adapterName ? { adapter: adapterName } : {}),
28
+ presetPrompts: [],
29
+ context: { include: ['src/**'], exclude: ['node_modules/**'] },
30
+ projectCommands: [],
31
+ };
32
+ try {
33
+ saveLumisConfig(context.projectRoot, config);
34
+ context.write(`Created ${configPath}\n`);
35
+ }
36
+ catch (error) {
37
+ context.writeError(`Failed to write Lumis config: ${String(error)}\n`);
38
+ return 1;
39
+ }
40
+ const packageJsonPath = path.join(context.projectRoot, 'package.json');
41
+ let packageJson = null;
42
+ let packageJsonDirty = false;
43
+ const packDependency = pack?.manifest.name ?? '@lumiarq/pack-lumiarq';
44
+ if (fs.existsSync(packageJsonPath)) {
45
+ try {
46
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
47
+ const scripts = packageJson?.scripts ?? {};
48
+ if (!scripts[DEFAULT_SCRIPT_ENTRY]) {
49
+ scripts[DEFAULT_SCRIPT_ENTRY] = 'lumis';
50
+ packageJson.scripts = scripts;
51
+ packageJsonDirty = true;
52
+ context.write(`Added scripts.${DEFAULT_SCRIPT_ENTRY} to package.json\n`);
53
+ }
54
+ else {
55
+ context.write('package.json script lumis already exists, skipping update.\n');
56
+ }
57
+ if (!packageJson?.dependencies) {
58
+ packageJson.dependencies = {};
59
+ }
60
+ if (!packageJson?.dependencies[packDependency]) {
61
+ packageJson.dependencies[packDependency] = '^1.0.0';
62
+ packageJsonDirty = true;
63
+ context.write(`Added ${packDependency} to package.json dependencies.\n`);
64
+ }
65
+ if (packageJsonDirty) {
66
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
67
+ context.write('Updated package.json with Lumis settings.\n');
68
+ }
69
+ }
70
+ catch (e) {
71
+ context.writeError(`Could not update package.json: ${String(e)}\n`);
72
+ }
73
+ }
74
+ else {
75
+ context.write('No package.json found; skipping script setup.\n');
76
+ }
77
+ if (packageJson && packageJson.dependencies && packageJson.dependencies[packDependency]) {
78
+ const skipAutoInstall = process.env.LUMIS_SKIP_AUTO_INSTALL === '1';
79
+ if (skipAutoInstall) {
80
+ context.write('Auto-install skipped via LUMIS_SKIP_AUTO_INSTALL.\n');
81
+ }
82
+ else {
83
+ try {
84
+ const lockFile = fs.existsSync(path.join(context.projectRoot, 'pnpm-lock.yaml'))
85
+ ? 'pnpm'
86
+ : fs.existsSync(path.join(context.projectRoot, 'yarn.lock'))
87
+ ? 'yarn'
88
+ : fs.existsSync(path.join(context.projectRoot, 'package-lock.json'))
89
+ ? 'npm'
90
+ : 'npm';
91
+ const installCmd = lockFile === 'pnpm' ? 'pnpm install' : lockFile === 'yarn' ? 'yarn install' : 'npm install';
92
+ context.write(`Running ${installCmd} to ensure pack is installed...\n`);
93
+ child_process.execSync(installCmd, {
94
+ cwd: context.projectRoot,
95
+ stdio: 'inherit',
96
+ });
97
+ context.write('Dependency installation step completed.\n');
98
+ }
99
+ catch (e) {
100
+ context.writeError(`Failed to install dependencies automatically: ${String(e)}\n`);
101
+ }
102
+ }
103
+ }
104
+ context.write(`Selected pack: ${pack?.manifest.name ?? 'none'} (${framework ?? 'unknown'})\n`);
105
+ context.write(`Selected adapter: ${adapterName ?? 'none'}\n`);
106
+ context.write('Running initial IR rebuild...\n');
107
+ const rebuildCode = await executeIrRebuildCommand(context);
108
+ if (rebuildCode !== 0) {
109
+ context.writeError('ir rebuild failed during init.\n');
110
+ return rebuildCode;
111
+ }
112
+ context.write('Running doctor checks...\n');
113
+ const doctorCode = await executeDoctorCommand(context);
114
+ if (doctorCode !== 0) {
115
+ context.writeError('doctor checks failed during init.\n');
116
+ return doctorCode;
117
+ }
118
+ context.write('Lumis initialization completed successfully.\n');
119
+ return 0;
120
+ }
121
+ //# sourceMappingURL=init.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../src/commands/init.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Intent command.
3
+ *
4
+ * This command parses a textual intent into the generic ParsedIntent shape,
5
+ * resolves adapter/IR context, and previews an execution plan.
6
+ */
7
+ import { type ParsedIntent } from '@lumiarq/context';
8
+ import type { CommandContext } from './runtime.js';
9
+ /**
10
+ * Lightweight parser for command-line intent text.
11
+ *
12
+ * The adapter remains the source of truth for how intent maps to concrete steps;
13
+ * this parser only normalizes a generic shape so adapters can resolve it.
14
+ *
15
+ * @param raw - Raw intent text passed from the command line.
16
+ * @returns Parsed intent object, or null when input cannot be parsed.
17
+ */
18
+ export declare function parseRawIntent(raw: string): ParsedIntent | null;
19
+ /**
20
+ * Parse, resolve, and preview an intent using the detected adapter.
21
+ *
22
+ * @param context - Shared command runtime context.
23
+ * @returns Exit code (0 success, 1 when input/adapter state is invalid).
24
+ */
25
+ export declare function executeIntentCommand(context: CommandContext): Promise<number>;
26
+ //# sourceMappingURL=intent.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.command.d.ts","sourceRoot":"","sources":["../../src/commands/intent.command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA+BlD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAiC/D;AAuID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCnF"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Intent command.
3
+ *
4
+ * This command parses a textual intent into the generic ParsedIntent shape,
5
+ * resolves adapter/IR context, and previews an execution plan.
6
+ */
7
+ import { createEmptyIR, loadIR } from '@lumiarq/context';
8
+ import { parseIntentWithAI } from '@lumiarq/agent';
9
+ import { createPlanWithAdapter } from '@lumiarq/planner';
10
+ import { applyRouterPreferenceOverrides } from '../router-preferences.js';
11
+ /**
12
+ * Parse a token into the supported generic intent action enum.
13
+ *
14
+ * @param token - First token from raw intent input.
15
+ * @returns Parsed action when valid, otherwise null.
16
+ */
17
+ function parseAction(token) {
18
+ if (!token) {
19
+ return null;
20
+ }
21
+ const lowered = token.toLowerCase();
22
+ if (lowered === 'create' || lowered === 'update' || lowered === 'delete' || lowered === 'query') {
23
+ return lowered;
24
+ }
25
+ return null;
26
+ }
27
+ /**
28
+ * Lightweight parser for command-line intent text.
29
+ *
30
+ * The adapter remains the source of truth for how intent maps to concrete steps;
31
+ * this parser only normalizes a generic shape so adapters can resolve it.
32
+ *
33
+ * @param raw - Raw intent text passed from the command line.
34
+ * @returns Parsed intent object, or null when input cannot be parsed.
35
+ */
36
+ export function parseRawIntent(raw) {
37
+ const trimmed = raw.trim();
38
+ if (!trimmed) {
39
+ return null;
40
+ }
41
+ const tokens = trimmed.split(/\s+/);
42
+ const action = parseAction(tokens[0]);
43
+ if (!action) {
44
+ return null;
45
+ }
46
+ const kind = tokens[1] ?? 'artifact';
47
+ const name = tokens[2];
48
+ const inIndex = tokens.findIndex((token) => token.toLowerCase() === 'in');
49
+ const module = inIndex >= 0 && tokens[inIndex + 1] ? tokens[inIndex + 1] : undefined;
50
+ const withIndex = tokens.findIndex((token) => token.toLowerCase() === 'with');
51
+ const constraints = withIndex >= 0 ? tokens.slice(withIndex + 1).join(' ').split(/\s+and\s+/i).filter(Boolean) : [];
52
+ const subject = {
53
+ kind,
54
+ ...(name ? { name } : {}),
55
+ ...(module ? { attributes: { module } } : {}),
56
+ };
57
+ return {
58
+ raw: trimmed,
59
+ action,
60
+ subjects: [subject],
61
+ constraints,
62
+ };
63
+ }
64
+ function parseIntentOptions(commandArgs) {
65
+ const filtered = [];
66
+ let useAI = false;
67
+ let provider;
68
+ let model;
69
+ for (let index = 0; index < commandArgs.length; index += 1) {
70
+ const token = commandArgs[index];
71
+ if (token === '--ai') {
72
+ useAI = true;
73
+ continue;
74
+ }
75
+ if (token === '--provider') {
76
+ const providerArg = commandArgs[index + 1];
77
+ if (providerArg) {
78
+ provider = providerArg;
79
+ index += 1;
80
+ }
81
+ continue;
82
+ }
83
+ if (token === '--model') {
84
+ const modelArg = commandArgs[index + 1];
85
+ if (modelArg) {
86
+ model = modelArg;
87
+ index += 1;
88
+ }
89
+ continue;
90
+ }
91
+ if (token) {
92
+ filtered.push(token);
93
+ }
94
+ }
95
+ return {
96
+ useAI,
97
+ provider,
98
+ model,
99
+ rawIntent: filtered.join(' ').trim(),
100
+ };
101
+ }
102
+ function resolveAIModel(context, options) {
103
+ if (options.model && options.model.trim().length > 0) {
104
+ return options.model;
105
+ }
106
+ const taskModel = context.config.ai?.taskModels?.intentParse;
107
+ if (taskModel && taskModel.trim().length > 0) {
108
+ return taskModel;
109
+ }
110
+ if (context.config.ai?.defaultModel && context.config.ai.defaultModel.trim().length > 0) {
111
+ return context.config.ai.defaultModel;
112
+ }
113
+ if (context.config.ai?.model && context.config.ai.model.trim().length > 0) {
114
+ return context.config.ai.model;
115
+ }
116
+ return undefined;
117
+ }
118
+ async function parseIntent(context, options) {
119
+ const aiEnabled = options.useAI || context.config.ai?.enabled === true;
120
+ if (!aiEnabled) {
121
+ return { intent: parseRawIntent(options.rawIntent) };
122
+ }
123
+ const provider = options.provider ?? context.config.ai?.provider;
124
+ const model = resolveAIModel(context, options);
125
+ const modelWithProvider = provider && model && !model.includes(':') ? `${provider}:${model}` : model;
126
+ const taskModels = {
127
+ ...(context.config.ai?.taskModels?.intentParse ? { 'intent-parse': context.config.ai.taskModels.intentParse } : {}),
128
+ ...(context.config.ai?.taskModels?.planPropose ? { 'plan-propose': context.config.ai.taskModels.planPropose } : {}),
129
+ ...(context.config.ai?.taskModels?.tokenSuggest ? { 'token-suggest': context.config.ai.taskModels.tokenSuggest } : {}),
130
+ ...(context.config.ai?.taskModels?.templateVariant ? { 'template-variant': context.config.ai.taskModels.templateVariant } : {}),
131
+ };
132
+ const parsed = await parseIntentWithAI(options.rawIntent, {
133
+ ...(modelWithProvider ? { model: modelWithProvider } : {}),
134
+ ...(provider ? { defaultProviderId: provider } : {}),
135
+ ...(context.config.ai?.systemPromptExtra ? { systemPromptExtra: context.config.ai.systemPromptExtra } : {}),
136
+ modelPolicy: {
137
+ ...(context.config.ai?.mode ? { mode: context.config.ai.mode } : {}),
138
+ ...(context.config.ai?.defaultModel || context.config.ai?.model
139
+ ? { defaultModel: context.config.ai.defaultModel ?? context.config.ai.model }
140
+ : {}),
141
+ taskModels,
142
+ },
143
+ });
144
+ const diagnostics = [];
145
+ diagnostics.push(`AI parser: provider=${parsed.diagnostics.provider} model=${parsed.diagnostics.model} confidence=${parsed.diagnostics.confidence.toFixed(2)}`);
146
+ if (parsed.diagnostics.ambiguityReasons.length > 0) {
147
+ diagnostics.push(`AI ambiguity: ${parsed.diagnostics.ambiguityReasons.join('; ')}`);
148
+ }
149
+ return {
150
+ intent: parsed.intent,
151
+ diagnostics,
152
+ };
153
+ }
154
+ /**
155
+ * Render a concise plan preview to stdout.
156
+ *
157
+ * @param context - Shared command runtime context.
158
+ * @param intent - Parsed intent to display.
159
+ * @param estimatedFiles - Estimated number of files affected by the plan.
160
+ * @param stepCount - Number of execution steps in the generated plan.
161
+ * @returns Nothing. Writes formatted preview text to the command output stream.
162
+ */
163
+ function renderPlanPreview(context, intent, estimatedFiles, stepCount) {
164
+ context.write('Intent preview\n');
165
+ context.write(`Raw: ${intent.raw}\n`);
166
+ context.write(`Action: ${intent.action}\n`);
167
+ const subject = intent.subjects[0];
168
+ const module = typeof subject?.attributes?.module === 'string' ? subject.attributes.module : 'n/a';
169
+ context.write(`Subject: kind=${subject?.kind ?? 'n/a'} name=${subject?.name ?? 'n/a'} module=${module}\n`);
170
+ if (intent.constraints.length > 0) {
171
+ context.write(`Constraints: ${intent.constraints.join(', ')}\n`);
172
+ }
173
+ context.write(`Plan steps: ${stepCount}\n`);
174
+ context.write(`Estimated files: ${estimatedFiles}\n`);
175
+ }
176
+ /**
177
+ * Parse, resolve, and preview an intent using the detected adapter.
178
+ *
179
+ * @param context - Shared command runtime context.
180
+ * @returns Exit code (0 success, 1 when input/adapter state is invalid).
181
+ */
182
+ export async function executeIntentCommand(context) {
183
+ const options = parseIntentOptions(context.commandArgs);
184
+ if (!options.rawIntent) {
185
+ context.writeError('Missing intent text.\n');
186
+ context.write('Usage: lumis intent [--ai] [--provider <provider>] [--model <model>] <create|update|delete|query ...>\n');
187
+ return 1;
188
+ }
189
+ const parsed = await parseIntent(context, options);
190
+ const parsedIntent = parsed.intent;
191
+ if (!parsedIntent) {
192
+ context.writeError('Invalid intent. Expected first token to be one of: create, update, delete, query.\n');
193
+ return 1;
194
+ }
195
+ for (const line of parsed.diagnostics ?? []) {
196
+ context.write(`${line}\n`);
197
+ }
198
+ const adapter = await context.resolveAdapter();
199
+ if (!adapter) {
200
+ context.writeError('No compatible adapter/pack detected for this project.\n');
201
+ return 1;
202
+ }
203
+ const ir = applyRouterPreferenceOverrides(loadIR(context.projectRoot) ?? createEmptyIR(context.projectRoot), adapter.name, context.config);
204
+ const plan = await createPlanWithAdapter(parsedIntent, ir, adapter);
205
+ renderPlanPreview(context, parsedIntent, plan.estimatedFiles, plan.steps.length);
206
+ if (plan.steps.length === 0) {
207
+ context.write('Adapter returned no executable steps for this intent.\n');
208
+ }
209
+ return 0;
210
+ }
211
+ //# sourceMappingURL=intent.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.command.js","sourceRoot":"","sources":["../../src/commands/intent.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CommandContext } from './runtime.js';
2
+ /**
3
+ * Rebuild and persist project IR for the current project root.
4
+ *
5
+ * @param context - Shared command runtime context.
6
+ * @returns Exit code (0 success, 1 when no compatible pack is found).
7
+ */
8
+ export declare function executeIrRebuildCommand(context: CommandContext): Promise<number>;
9
+ //# sourceMappingURL=ir-rebuild.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-rebuild.command.d.ts","sourceRoot":"","sources":["../../src/commands/ir-rebuild.command.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBtF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * IR write/rebuild command.
3
+ *
4
+ * Resolves pack+adapter for the current project, rebuilds the project IR, and
5
+ * persists it to `.lumis/ir.json`.
6
+ */
7
+ import { buildIRWithAdapter, saveIR } from '@lumiarq/context';
8
+ import { applyRouterPreferenceOverrides } from '../router-preferences.js';
9
+ /**
10
+ * Rebuild and persist project IR for the current project root.
11
+ *
12
+ * @param context - Shared command runtime context.
13
+ * @returns Exit code (0 success, 1 when no compatible pack is found).
14
+ */
15
+ export async function executeIrRebuildCommand(context) {
16
+ const pack = await context.resolvePack();
17
+ if (!pack) {
18
+ context.writeError('No compatible pack could be detected for this project.\n');
19
+ context.writeError('Ensure your project matches a supported framework or configure lumis.config.ts adapter.\n');
20
+ return 1;
21
+ }
22
+ const adapter = pack.adapter;
23
+ const ir = applyRouterPreferenceOverrides(await buildIRWithAdapter(adapter, context.projectRoot), adapter.name, context.config);
24
+ saveIR(context.projectRoot, ir);
25
+ const moduleCount = ir.modules.length;
26
+ const artifactCount = ir.modules.reduce((sum, module) => sum + module.artifacts.length, 0);
27
+ const packFramework = pack.manifest.frameworks?.[0] ?? 'unknown';
28
+ context.write(`IR rebuilt for ${context.projectRoot}\n`);
29
+ context.write(`Pack: ${pack.manifest.name} (${packFramework})\n`);
30
+ context.write(`Framework: ${ir.framework}\n`);
31
+ context.write(`Modules: ${moduleCount}\n`);
32
+ context.write(`Artifacts: ${artifactCount}\n`);
33
+ context.write('Saved: .lumis/ir.json\n');
34
+ return 0;
35
+ }
36
+ //# sourceMappingURL=ir-rebuild.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-rebuild.command.js","sourceRoot":"","sources":["../../src/commands/ir-rebuild.command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AAEzE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAuB;IACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAA;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,CAAC,UAAU,CAAC,0DAA0D,CAAC,CAAA;QAC9E,OAAO,CAAC,UAAU,CAAC,2FAA2F,CAAC,CAAA;QAC/G,OAAO,CAAC,CAAA;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,MAAM,EAAE,GAAG,8BAA8B,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/H,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAE/B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAE1F,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;IAChE,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;IACxD,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,KAAK,CAAC,CAAA;IACjE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,SAAS,IAAI,CAAC,CAAA;IAC7C,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,KAAK,CAAC,cAAc,aAAa,IAAI,CAAC,CAAA;IAC9C,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAExC,OAAO,CAAC,CAAA;AACT,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CommandContext } from './runtime.js';
2
+ /**
3
+ * Show the currently persisted IR summary.
4
+ *
5
+ * @param context - Shared command runtime context.
6
+ * @returns Exit code (0 success, 1 when IR is not yet generated).
7
+ */
8
+ export declare function executeIrShowCommand(context: CommandContext): Promise<number>;
9
+ //# sourceMappingURL=ir-show.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-show.command.d.ts","sourceRoot":"","sources":["../../src/commands/ir-show.command.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * IR read command.
3
+ *
4
+ * Reads persisted IR from `.lumis/ir.json` and prints a compact summary suitable
5
+ * for terminal inspection and automation logs.
6
+ */
7
+ import { loadIR } from '@lumiarq/context';
8
+ /**
9
+ * Show the currently persisted IR summary.
10
+ *
11
+ * @param context - Shared command runtime context.
12
+ * @returns Exit code (0 success, 1 when IR is not yet generated).
13
+ */
14
+ export async function executeIrShowCommand(context) {
15
+ const ir = loadIR(context.projectRoot);
16
+ if (!ir) {
17
+ context.writeError('No IR found at .lumis/ir.json\n');
18
+ context.write('Run "lumis ir rebuild" to generate the IR first.\n');
19
+ return 1;
20
+ }
21
+ const moduleCount = ir.modules.length;
22
+ const artifactCount = ir.modules.reduce((sum, module) => sum + module.artifacts.length, 0);
23
+ context.write(`IR summary for ${context.projectRoot}\n`);
24
+ context.write(`Framework: ${ir.framework}\n`);
25
+ context.write(`Version: ${ir.irVersion}\n`);
26
+ context.write(`Modules: ${moduleCount}\n`);
27
+ context.write(`Artifacts: ${artifactCount}\n`);
28
+ context.write(`Dependencies: ${ir.dependencies.length}\n`);
29
+ context.write(`Violations: ${ir.violations.length}\n`);
30
+ return 0;
31
+ }
32
+ //# sourceMappingURL=ir-show.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-show.command.js","sourceRoot":"","sources":["../../src/commands/ir-show.command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAIzC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAuB;IACjE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAEtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,OAAO,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAA;QACrD,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACnE,OAAO,CAAC,CAAA;IACT,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAE1F,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;IACxD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,SAAS,IAAI,CAAC,CAAA;IAC7C,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,SAAS,IAAI,CAAC,CAAA;IAC3C,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,KAAK,CAAC,cAAc,aAAa,IAAI,CAAC,CAAA;IAC9C,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAA;IAC1D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAA;IAEtD,OAAO,CAAC,CAAA;AACT,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CommandContext } from './runtime.js';
2
+ /**
3
+ * Execute the make command pipeline.
4
+ *
5
+ * @param context - Shared command runtime context.
6
+ * @returns Exit code: 0 on success, 1 when validation/resolution/execution fails.
7
+ */
8
+ export declare function executeMakeCommand(context: CommandContext): Promise<number>;
9
+ //# sourceMappingURL=make.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make.command.d.ts","sourceRoot":"","sources":["../../src/commands/make.command.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA4BlD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAuEjF"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Artifact generation command.
3
+ *
4
+ * This command takes free-form intent text, resolves the active adapter/pack,
5
+ * plans execution steps, and optionally executes the plan.
6
+ */
7
+ import { executePlan } from '@lumiarq/agent';
8
+ import { createEmptyIR, loadIR, saveIR, updateIRWithAdapter } from '@lumiarq/context';
9
+ import { createPlanWithAdapter } from '@lumiarq/planner';
10
+ import { parseRawIntent } from './intent.command.js';
11
+ import { renderPlanDetail } from '../output/plan-display.js';
12
+ import { renderExecutionResult } from '../output/result-display.js';
13
+ import { applyRouterPreferenceOverrides } from '../router-preferences.js';
14
+ import { runPostMakeRuntimeTasks } from '../runtime/orchestration.js';
15
+ /**
16
+ * Parse CLI arguments for the make command.
17
+ *
18
+ * @param commandArgs - Raw command arguments passed after `make`.
19
+ * @returns Parsed make options including dry-run flag and raw intent text.
20
+ */
21
+ function parseMakeOptions(commandArgs) {
22
+ const dryRun = commandArgs.includes('--dry-run') || commandArgs.includes('-n');
23
+ const filtered = commandArgs.filter((token) => token !== '--dry-run' && token !== '-n');
24
+ return {
25
+ dryRun,
26
+ rawIntent: filtered.join(' ').trim(),
27
+ };
28
+ }
29
+ /**
30
+ * Execute the make command pipeline.
31
+ *
32
+ * @param context - Shared command runtime context.
33
+ * @returns Exit code: 0 on success, 1 when validation/resolution/execution fails.
34
+ */
35
+ export async function executeMakeCommand(context) {
36
+ const options = parseMakeOptions(context.commandArgs);
37
+ if (!options.rawIntent) {
38
+ context.writeError('Missing intent text.\n');
39
+ context.write('Usage: lumis make [--dry-run|-n] <create|update|delete|query ...>\n');
40
+ return 1;
41
+ }
42
+ const parsedIntent = parseRawIntent(options.rawIntent);
43
+ if (!parsedIntent) {
44
+ context.writeError('Invalid intent. Expected first token to be one of: create, update, delete, query.\n');
45
+ return 1;
46
+ }
47
+ const pack = await context.resolvePack();
48
+ const adapter = await context.resolveAdapter();
49
+ if (!adapter) {
50
+ context.writeError('No compatible adapter/pack detected for this project.\n');
51
+ return 1;
52
+ }
53
+ const ir = applyRouterPreferenceOverrides(loadIR(context.projectRoot) ?? createEmptyIR(context.projectRoot), adapter.name, context.config);
54
+ const plan = await createPlanWithAdapter(parsedIntent, ir, adapter);
55
+ const packFramework = pack ? (pack.manifest.frameworks?.[0] ?? 'unknown') : 'unknown';
56
+ const packLabel = pack ? `${pack.manifest.name} (${packFramework})` : adapter.name;
57
+ renderPlanDetail(context, plan, packLabel);
58
+ if (plan.steps.length === 0) {
59
+ context.write('No executable steps were produced for this intent.\n');
60
+ return 0;
61
+ }
62
+ if (options.dryRun) {
63
+ return 0;
64
+ }
65
+ const execution = await executePlan(plan, ir, adapter, {
66
+ ...(context.onTrace ? { onTrace: context.onTrace } : {}),
67
+ updateIR: async (currentIR, changedFile) => updateIRWithAdapter(adapter, currentIR, changedFile),
68
+ });
69
+ renderExecutionResult(context, execution.summary, plan.steps);
70
+ if (execution.summary.failed || execution.summary.rolledBack) {
71
+ context.writeError('Execution failed and rollback was attempted.\n');
72
+ if (execution.summary.failedStepId) {
73
+ context.writeError(`Failed step: ${execution.summary.failedStepId}\n`);
74
+ }
75
+ return 1;
76
+ }
77
+ saveIR(context.projectRoot, execution.ir);
78
+ context.write('Saved IR: .lumis/ir.json\n');
79
+ const runtimeResult = await runPostMakeRuntimeTasks({
80
+ projectRoot: context.projectRoot,
81
+ adapter,
82
+ config: context.config,
83
+ write: context.write,
84
+ writeError: context.writeError,
85
+ ...(context.onTrace ? { onTrace: context.onTrace } : {}),
86
+ });
87
+ if (!runtimeResult.success) {
88
+ context.writeError('Runtime task execution failed. See transcript files under .lumis/transcripts.\n');
89
+ return 1;
90
+ }
91
+ return 0;
92
+ }
93
+ //# sourceMappingURL=make.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make.command.js","sourceRoot":"","sources":["../../src/commands/make.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { CommandContext } from './runtime.js';
2
+ /**
3
+ * Print all built-in packs currently registered in the host runtime.
4
+ *
5
+ * @param context - Shared command runtime context.
6
+ * @returns Exit code (0 success, 1 when no packs are registered).
7
+ */
8
+ export declare function executePackListCommand(context: CommandContext): Promise<number>;
9
+ /**
10
+ * Detect and print the best matching pack for the current project root.
11
+ *
12
+ * @param context - Shared command runtime context.
13
+ * @returns Exit code (0 success, 1 when no compatible pack is detected).
14
+ */
15
+ export declare function executePackDetectCommand(context: CommandContext): Promise<number>;
16
+ //# sourceMappingURL=pack.command.d.ts.map