@illumiarq/lumis 1.2.10 → 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 -922
  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 -135
  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 -110
  188. package/dist/config-loader.d.ts.map +0 -1
  189. package/dist/config-loader.js +0 -119
  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 -49
  242. package/dist/runtime/policy.d.ts.map +0 -1
  243. package/dist/runtime/policy.js +0 -78
  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,43 +0,0 @@
1
- import type { LumisAdapter } from '@lumiarq/context';
2
- import type { LumisTraceListener } from '../tracing/types.js';
3
- import type { LumisConfig } from '../config-loader.js';
4
- import { executeOnRuntimeProfile } from './executor.js';
5
- export type RuntimeTaskName = 'typecheck' | 'lint' | 'boundaryCheck' | 'build' | 'test';
6
- export type RuntimeTaskExecution = {
7
- task: RuntimeTaskName;
8
- command: string;
9
- result: Awaited<ReturnType<typeof executeOnRuntimeProfile>>;
10
- transcriptPath: string;
11
- };
12
- export type RuntimeOrchestrationResult = {
13
- enabled: boolean;
14
- profileId?: string;
15
- profileKind?: string;
16
- steps: RuntimeTaskExecution[];
17
- success: boolean;
18
- errors: string[];
19
- };
20
- export declare function executeRuntimeTasks(input: {
21
- projectRoot: string;
22
- adapter: LumisAdapter;
23
- config: LumisConfig;
24
- write: (message: string) => void;
25
- writeError: (message: string) => void;
26
- enabled: boolean;
27
- profileId?: string;
28
- requestedTasks?: RuntimeTaskName[];
29
- failOnTaskError?: boolean;
30
- approveRemote?: boolean;
31
- labelPrefix?: string;
32
- processEnv?: NodeJS.ProcessEnv;
33
- onTrace?: LumisTraceListener;
34
- }): Promise<RuntimeOrchestrationResult>;
35
- export declare function runPostMakeRuntimeTasks(input: {
36
- projectRoot: string;
37
- adapter: LumisAdapter;
38
- config: LumisConfig;
39
- write: (message: string) => void;
40
- writeError: (message: string) => void;
41
- onTrace?: LumisTraceListener;
42
- }): Promise<RuntimeOrchestrationResult>;
43
- //# sourceMappingURL=orchestration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestration.d.ts","sourceRoot":"","sources":["../../src/runtime/orchestration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAKvD,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,GAAG,MAAM,CAAA;AAEvF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAA;IAC3D,cAAc,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAoCD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,eAAe,EAAE,CAAA;IAClC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC5B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiLtC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACpD,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC5B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAWtC"}
@@ -1,209 +0,0 @@
1
- import path from 'node:path';
2
- import { executeOnRuntimeProfile } from './executor.js';
3
- import { evaluateRuntimePolicy } from './policy.js';
4
- import { getRuntimeProfile, loadRuntimeProfileStore } from './profiles.js';
5
- import { persistRuntimeTranscript } from './transcripts.js';
6
- function resolveRuntimeTasks(config, adapter) {
7
- const requestedTasks = config.runtime?.postMakeTasks ?? ['typecheck', 'boundaryCheck'];
8
- const resolved = [];
9
- for (const task of requestedTasks) {
10
- const override = config.runtime?.taskCommandOverrides?.[task];
11
- const command = override ?? adapter.buildCommands[task];
12
- if (typeof command === 'string' && command.trim().length > 0) {
13
- resolved.push({ task, command: command.trim() });
14
- }
15
- }
16
- return resolved;
17
- }
18
- function resolveRuntimeTasksWithSelection(config, adapter, requestedTasks) {
19
- if (!requestedTasks || requestedTasks.length === 0) {
20
- return resolveRuntimeTasks(config, adapter);
21
- }
22
- return requestedTasks
23
- .map((task) => {
24
- const override = config.runtime?.taskCommandOverrides?.[task];
25
- const command = override ?? adapter.buildCommands[task];
26
- if (!command || command.trim().length === 0) {
27
- return null;
28
- }
29
- return { task, command: command.trim() };
30
- })
31
- .filter((entry) => entry !== null);
32
- }
33
- export async function executeRuntimeTasks(input) {
34
- const emitTrace = async (event) => {
35
- if (!input.onTrace)
36
- return;
37
- await input.onTrace(event);
38
- };
39
- await emitTrace({
40
- type: 'runtime-task',
41
- status: 'start',
42
- name: 'runtime-orchestration',
43
- context: { enabled: input.enabled },
44
- });
45
- if (!input.enabled) {
46
- await emitTrace({
47
- type: 'runtime-task',
48
- status: 'info',
49
- name: 'runtime-disabled',
50
- });
51
- return {
52
- enabled: false,
53
- steps: [],
54
- success: true,
55
- errors: [],
56
- };
57
- }
58
- const store = loadRuntimeProfileStore(input.projectRoot);
59
- const profile = getRuntimeProfile(store, input.profileId ?? input.config.runtime?.profileId);
60
- if (!profile) {
61
- const error = 'Runtime profile not found. Configure runtime.profileId or defaultProfileId in .lumis/runtime-profiles.json.';
62
- await emitTrace({
63
- type: 'runtime-task',
64
- status: 'failure',
65
- name: 'runtime-profile-not-found',
66
- message: error,
67
- });
68
- input.writeError(`${error}\n`);
69
- return {
70
- enabled: true,
71
- steps: [],
72
- success: false,
73
- errors: [error],
74
- };
75
- }
76
- const policyDecision = evaluateRuntimePolicy({
77
- profile,
78
- config: input.config,
79
- ...(typeof input.approveRemote === 'boolean'
80
- ? { approveRemote: input.approveRemote }
81
- : {}),
82
- ...(input.processEnv ? { processEnv: input.processEnv } : {}),
83
- });
84
- if (!policyDecision.allowExecution) {
85
- const blockingReason = policyDecision.blockingReason ?? 'Runtime policy blocked execution.';
86
- await emitTrace({
87
- type: 'runtime-task',
88
- status: 'failure',
89
- name: 'runtime-policy-blocked',
90
- message: blockingReason,
91
- context: { profileId: profile.id, policyMode: policyDecision.mode },
92
- });
93
- input.writeError(`${blockingReason}\n`);
94
- return {
95
- enabled: true,
96
- profileId: profile.id,
97
- profileKind: profile.kind,
98
- steps: [],
99
- success: false,
100
- errors: [blockingReason],
101
- };
102
- }
103
- if (policyDecision.requiresApproval && policyDecision.approved) {
104
- input.write('Runtime policy: remote execution approved.\n');
105
- }
106
- const commands = resolveRuntimeTasksWithSelection(input.config, input.adapter, input.requestedTasks);
107
- if (commands.length === 0) {
108
- await emitTrace({
109
- type: 'runtime-task',
110
- status: 'info',
111
- name: 'runtime-no-tasks',
112
- context: { profileId: profile.id },
113
- });
114
- input.write('Runtime orchestration enabled, but no buildCommands matched configured tasks.\n');
115
- return {
116
- enabled: true,
117
- profileId: profile.id,
118
- profileKind: profile.kind,
119
- steps: [],
120
- success: true,
121
- errors: [],
122
- };
123
- }
124
- input.write(`Runtime profile: ${profile.name} (${profile.kind})\n`);
125
- const steps = [];
126
- const errors = [];
127
- const failOnTaskError = input.failOnTaskError ?? input.config.runtime?.failOnTaskError !== false;
128
- const labelPrefix = input.labelPrefix ?? 'runtime';
129
- for (const runtimeTask of commands) {
130
- await emitTrace({
131
- type: 'runtime-task',
132
- status: 'start',
133
- name: runtimeTask.task,
134
- context: { command: runtimeTask.command, profileId: profile.id },
135
- });
136
- input.write(`Runtime task [${runtimeTask.task}]: ${runtimeTask.command}\n`);
137
- const result = await executeOnRuntimeProfile({
138
- profile,
139
- command: process.platform === 'win32' ? 'cmd' : 'sh',
140
- args: process.platform === 'win32' ? ['/c', runtimeTask.command] : ['-lc', runtimeTask.command],
141
- cwd: input.projectRoot,
142
- });
143
- const transcriptPath = persistRuntimeTranscript(input.projectRoot, `${labelPrefix}-${runtimeTask.task}`, result);
144
- const relativePath = path.relative(input.projectRoot, transcriptPath);
145
- steps.push({
146
- task: runtimeTask.task,
147
- command: runtimeTask.command,
148
- result,
149
- transcriptPath,
150
- });
151
- if (result.success) {
152
- await emitTrace({
153
- type: 'runtime-task',
154
- status: 'success',
155
- name: runtimeTask.task,
156
- context: { transcriptPath: relativePath },
157
- });
158
- input.write(` [ok] ${runtimeTask.task} (transcript: ${relativePath})\n`);
159
- continue;
160
- }
161
- const error = `${runtimeTask.task} failed with exit code ${result.exitCode ?? 'null'}`;
162
- errors.push(error);
163
- await emitTrace({
164
- type: 'runtime-task',
165
- status: 'failure',
166
- name: runtimeTask.task,
167
- message: error,
168
- context: { transcriptPath: relativePath },
169
- });
170
- input.writeError(` [fail] ${error} (transcript: ${relativePath})\n`);
171
- for (const diagnostic of result.diagnostics) {
172
- input.writeError(` [diag] ${diagnostic}\n`);
173
- }
174
- if (failOnTaskError) {
175
- break;
176
- }
177
- }
178
- const advisoryMode = policyDecision.mode === 'advisory';
179
- if (advisoryMode && errors.length > 0) {
180
- input.writeError('Runtime policy mode is advisory: task failures recorded but execution continues.\n');
181
- }
182
- await emitTrace({
183
- type: 'runtime-task',
184
- status: errors.length === 0 || advisoryMode ? 'success' : 'failure',
185
- name: 'runtime-orchestration-complete',
186
- context: { errors: errors.length, advisoryMode, profileId: profile.id },
187
- });
188
- return {
189
- enabled: true,
190
- profileId: profile.id,
191
- profileKind: profile.kind,
192
- steps,
193
- success: advisoryMode ? true : errors.length === 0,
194
- errors,
195
- };
196
- }
197
- export async function runPostMakeRuntimeTasks(input) {
198
- return executeRuntimeTasks({
199
- projectRoot: input.projectRoot,
200
- adapter: input.adapter,
201
- config: input.config,
202
- write: input.write,
203
- writeError: input.writeError,
204
- ...(input.onTrace ? { onTrace: input.onTrace } : {}),
205
- enabled: input.config.runtime?.enabled === true,
206
- labelPrefix: 'make',
207
- });
208
- }
209
- //# sourceMappingURL=orchestration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/runtime/orchestration.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- import type { RuntimeProfile } from '@lumiarq/context';
2
- import type { LumisConfig } from '../config-loader.js';
3
- export type RuntimePolicyMode = 'strict' | 'advisory';
4
- export type ResolvedRuntimePolicy = {
5
- mode: RuntimePolicyMode;
6
- requireApprovalForRemote: boolean;
7
- approvalEnvVar: string;
8
- commandAllowlist: string[];
9
- };
10
- export type CommandBoundaryDecision = {
11
- allowed: true;
12
- } | {
13
- allowed: false;
14
- advisory: false;
15
- blockingReason: string;
16
- } | {
17
- allowed: true;
18
- advisory: true;
19
- warningReason: string;
20
- };
21
- export type RuntimePolicyDecision = {
22
- mode: RuntimePolicyMode;
23
- requiresApproval: boolean;
24
- approved: boolean;
25
- allowExecution: boolean;
26
- blockingReason?: string;
27
- };
28
- export declare function resolveRuntimePolicy(config: LumisConfig): ResolvedRuntimePolicy;
29
- /**
30
- * Check whether `command` (the program name or full command string) is permitted
31
- * by the allowlist in the resolved policy.
32
- *
33
- * Matching rules:
34
- * - Empty allowlist → all commands allowed.
35
- * - Exact entry (e.g. "pnpm") → matches when command starts with that token.
36
- * - Glob prefix entry ending in " *" (e.g. "pnpm *") → matches when the full
37
- * command string starts with the prefix before " *".
38
- *
39
- * In strict mode a mismatch returns `allowed: false`.
40
- * In advisory mode a mismatch returns `allowed: true` with a warning.
41
- */
42
- export declare function enforceCommandBoundary(command: string, policy: ResolvedRuntimePolicy): CommandBoundaryDecision;
43
- export declare function evaluateRuntimePolicy(input: {
44
- profile: RuntimeProfile;
45
- config: LumisConfig;
46
- approveRemote?: boolean;
47
- processEnv?: NodeJS.ProcessEnv;
48
- }): RuntimePolicyDecision;
49
- //# sourceMappingURL=policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/runtime/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAAA;AAErD,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAA;IACvB,wBAAwB,EAAE,OAAO,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAUD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,qBAAqB,CAY/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,qBAAqB,GAC3B,uBAAuB,CAwBzB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,WAAW,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAC9B,GAAG,qBAAqB,CA4BxB"}
@@ -1,78 +0,0 @@
1
- function isTruthy(value) {
2
- if (!value) {
3
- return false;
4
- }
5
- const normalized = value.trim().toLowerCase();
6
- return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'y';
7
- }
8
- export function resolveRuntimePolicy(config) {
9
- const mode = config.runtime?.policy?.mode ?? 'strict';
10
- const requireApprovalForRemote = config.runtime?.policy?.requireApprovalForRemote !== false;
11
- const approvalEnvVar = config.runtime?.policy?.approvalEnvVar ?? 'LUMIS_RUNTIME_APPROVED';
12
- const commandAllowlist = config.runtime?.policy?.commandAllowlist ?? [];
13
- return {
14
- mode,
15
- requireApprovalForRemote,
16
- approvalEnvVar,
17
- commandAllowlist,
18
- };
19
- }
20
- /**
21
- * Check whether `command` (the program name or full command string) is permitted
22
- * by the allowlist in the resolved policy.
23
- *
24
- * Matching rules:
25
- * - Empty allowlist → all commands allowed.
26
- * - Exact entry (e.g. "pnpm") → matches when command starts with that token.
27
- * - Glob prefix entry ending in " *" (e.g. "pnpm *") → matches when the full
28
- * command string starts with the prefix before " *".
29
- *
30
- * In strict mode a mismatch returns `allowed: false`.
31
- * In advisory mode a mismatch returns `allowed: true` with a warning.
32
- */
33
- export function enforceCommandBoundary(command, policy) {
34
- if (policy.commandAllowlist.length === 0) {
35
- return { allowed: true };
36
- }
37
- const matched = policy.commandAllowlist.some((entry) => {
38
- if (entry.endsWith(' *')) {
39
- const prefix = entry.slice(0, -2);
40
- return command === prefix || command.startsWith(prefix + ' ');
41
- }
42
- return command === entry || command.startsWith(entry + ' ');
43
- });
44
- if (matched) {
45
- return { allowed: true };
46
- }
47
- const reason = `Command "${command}" is not in the runtime policy allowlist. Permitted: ${policy.commandAllowlist.join(', ')}.`;
48
- if (policy.mode === 'advisory') {
49
- return { allowed: true, advisory: true, warningReason: reason };
50
- }
51
- return { allowed: false, advisory: false, blockingReason: reason };
52
- }
53
- export function evaluateRuntimePolicy(input) {
54
- const policy = resolveRuntimePolicy(input.config);
55
- const isRemoteProfile = input.profile.kind !== 'local';
56
- const requiresApproval = isRemoteProfile && policy.requireApprovalForRemote;
57
- const env = input.processEnv ?? process.env;
58
- const approvedByEnv = isTruthy(env[policy.approvalEnvVar]);
59
- const approvedByFlag = input.approveRemote === true;
60
- const approved = !requiresApproval || approvedByEnv || approvedByFlag;
61
- if (!approved) {
62
- return {
63
- mode: policy.mode,
64
- requiresApproval,
65
- approved,
66
- allowExecution: false,
67
- blockingReason: `Runtime profile ${input.profile.id} (${input.profile.kind}) requires explicit approval. ` +
68
- `Set ${policy.approvalEnvVar}=true or pass --approve-remote.`,
69
- };
70
- }
71
- return {
72
- mode: policy.mode,
73
- requiresApproval,
74
- approved,
75
- allowExecution: true,
76
- };
77
- }
78
- //# sourceMappingURL=policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/runtime/policy.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { RuntimeProfile, RuntimeProfileStore } from '@lumiarq/context';
2
- export type RuntimeProfileValidationResult = {
3
- ok: true;
4
- value: RuntimeProfileStore;
5
- } | {
6
- ok: false;
7
- errors: string[];
8
- };
9
- export declare function validateRuntimeProfileStore(input: unknown): RuntimeProfileValidationResult;
10
- export declare function createDefaultRuntimeProfileStore(projectRoot: string): RuntimeProfileStore;
11
- export declare function loadRuntimeProfileStore(projectRoot: string): RuntimeProfileStore;
12
- export declare function saveRuntimeProfileStore(projectRoot: string, store: RuntimeProfileStore): void;
13
- export declare function getRuntimeProfile(store: RuntimeProfileStore, profileId?: string): RuntimeProfile | null;
14
- export declare function redactRuntimeProfileForLogs(profile: RuntimeProfile): RuntimeProfile;
15
- //# sourceMappingURL=profiles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/runtime/profiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EAEpB,MAAM,kBAAkB,CAAA;AAIzB,MAAM,MAAM,8BAA8B,GACtC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAiDnC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,8BAA8B,CAkC1F;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAazF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAoBhF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAI7F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAMvG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAWnF"}
@@ -1,131 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- const PROFILE_STORE_RELATIVE_PATH = path.join('.lumis', 'runtime-profiles.json');
4
- function isObject(value) {
5
- return typeof value === 'object' && value !== null;
6
- }
7
- function asString(value) {
8
- return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
9
- }
10
- function validateProfile(profile, index) {
11
- if (!isObject(profile)) {
12
- return [`profiles[${index}] must be an object`];
13
- }
14
- const id = asString(profile.id);
15
- const name = asString(profile.name);
16
- const kind = asString(profile.kind);
17
- const errors = [];
18
- if (!id)
19
- errors.push(`profiles[${index}].id must be a non-empty string`);
20
- if (!name)
21
- errors.push(`profiles[${index}].name must be a non-empty string`);
22
- if (!kind)
23
- errors.push(`profiles[${index}].kind must be a non-empty string`);
24
- if (kind === 'ssh') {
25
- if (!asString(profile.host)) {
26
- errors.push(`profiles[${index}].host is required for ssh profile`);
27
- }
28
- if (!asString(profile.user)) {
29
- errors.push(`profiles[${index}].user is required for ssh profile`);
30
- }
31
- }
32
- if (kind === 'container') {
33
- if (!asString(profile.image)) {
34
- errors.push(`profiles[${index}].image is required for container profile`);
35
- }
36
- if (!asString(profile.workspacePath)) {
37
- errors.push(`profiles[${index}].workspacePath is required for container profile`);
38
- }
39
- }
40
- if (kind === 'ci' && !asString(profile.provider)) {
41
- errors.push(`profiles[${index}].provider is required for ci profile`);
42
- }
43
- return errors;
44
- }
45
- export function validateRuntimeProfileStore(input) {
46
- if (!isObject(input)) {
47
- return { ok: false, errors: ['profile store must be an object'] };
48
- }
49
- const version = asString(input.version);
50
- const profiles = input.profiles;
51
- const defaultProfileId = input.defaultProfileId;
52
- const errors = [];
53
- if (version !== '1.0') {
54
- errors.push('profile store version must be "1.0"');
55
- }
56
- if (!Array.isArray(profiles)) {
57
- errors.push('profiles must be an array');
58
- }
59
- else {
60
- for (let index = 0; index < profiles.length; index += 1) {
61
- errors.push(...validateProfile(profiles[index], index));
62
- }
63
- }
64
- if (defaultProfileId !== undefined && asString(defaultProfileId) === null) {
65
- errors.push('defaultProfileId must be a non-empty string when provided');
66
- }
67
- if (errors.length > 0) {
68
- return { ok: false, errors };
69
- }
70
- return {
71
- ok: true,
72
- value: input,
73
- };
74
- }
75
- export function createDefaultRuntimeProfileStore(projectRoot) {
76
- return {
77
- version: '1.0',
78
- defaultProfileId: 'local',
79
- profiles: [
80
- {
81
- id: 'local',
82
- name: 'Local shell',
83
- kind: 'local',
84
- workingDirectory: projectRoot,
85
- },
86
- ],
87
- };
88
- }
89
- export function loadRuntimeProfileStore(projectRoot) {
90
- const storePath = path.join(projectRoot, PROFILE_STORE_RELATIVE_PATH);
91
- if (!fs.existsSync(storePath)) {
92
- return createDefaultRuntimeProfileStore(projectRoot);
93
- }
94
- const raw = fs.readFileSync(storePath, 'utf8');
95
- let parsed;
96
- try {
97
- parsed = JSON.parse(raw);
98
- }
99
- catch {
100
- return createDefaultRuntimeProfileStore(projectRoot);
101
- }
102
- const validated = validateRuntimeProfileStore(parsed);
103
- if (!validated.ok) {
104
- return createDefaultRuntimeProfileStore(projectRoot);
105
- }
106
- return validated.value;
107
- }
108
- export function saveRuntimeProfileStore(projectRoot, store) {
109
- const storePath = path.join(projectRoot, PROFILE_STORE_RELATIVE_PATH);
110
- fs.mkdirSync(path.dirname(storePath), { recursive: true });
111
- fs.writeFileSync(storePath, JSON.stringify(store, null, 2), 'utf8');
112
- }
113
- export function getRuntimeProfile(store, profileId) {
114
- const id = profileId ?? store.defaultProfileId;
115
- if (!id) {
116
- return null;
117
- }
118
- return store.profiles.find((profile) => profile.id === id) ?? null;
119
- }
120
- export function redactRuntimeProfileForLogs(profile) {
121
- if (profile.kind !== 'ssh') {
122
- return profile;
123
- }
124
- const sshProfile = profile;
125
- return {
126
- ...sshProfile,
127
- ...(sshProfile.privateKeyEnvVar ? { privateKeyEnvVar: '[REDACTED_ENV_VAR]' } : {}),
128
- ...(sshProfile.passwordEnvVar ? { passwordEnvVar: '[REDACTED_ENV_VAR]' } : {}),
129
- };
130
- }
131
- //# sourceMappingURL=profiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/runtime/profiles.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import type { RuntimeExecutionResult } from './executor.js';
2
- export type PersistedRuntimeTranscript = {
3
- version: '1.0';
4
- createdAt: string;
5
- command: string;
6
- args: string[];
7
- profileId: string;
8
- profileKind: RuntimeExecutionResult['profileKind'];
9
- success: boolean;
10
- exitCode: number | null;
11
- durationMs: number;
12
- diagnostics: string[];
13
- stdout: string;
14
- stderr: string;
15
- transcript: RuntimeExecutionResult['transcript'];
16
- redactedProfile: RuntimeExecutionResult['redactedProfile'];
17
- };
18
- export type RuntimeTranscriptIndexEntry = {
19
- id: string;
20
- createdAt: string;
21
- label: string;
22
- profileId: string;
23
- profileKind: RuntimeExecutionResult['profileKind'];
24
- transcriptFile: string;
25
- success: boolean;
26
- exitCode: number | null;
27
- durationMs: number;
28
- };
29
- export type RuntimeTranscriptIndex = {
30
- version: '1.0';
31
- updatedAt: string;
32
- entries: RuntimeTranscriptIndexEntry[];
33
- };
34
- export type RuntimeTranscriptSummary = {
35
- total: number;
36
- successful: number;
37
- failed: number;
38
- latestEntry: RuntimeTranscriptIndexEntry | null;
39
- };
40
- export type PruneRuntimeTranscriptsOptions = {
41
- keep?: number;
42
- maxAgeDays?: number;
43
- profileId?: string;
44
- label?: string;
45
- dryRun?: boolean;
46
- };
47
- export type PruneRuntimeTranscriptsResult = {
48
- removedEntries: RuntimeTranscriptIndexEntry[];
49
- keptEntries: RuntimeTranscriptIndexEntry[];
50
- missingFilesRemoved: number;
51
- indexPath: string;
52
- };
53
- export declare function persistRuntimeTranscript(projectRoot: string, label: string, result: RuntimeExecutionResult): string;
54
- export declare function loadRuntimeTranscriptIndex(projectRoot: string): RuntimeTranscriptIndex;
55
- export declare function saveRuntimeTranscriptIndex(projectRoot: string, index: RuntimeTranscriptIndex): void;
56
- export declare function appendRuntimeTranscriptIndex(projectRoot: string, entry: RuntimeTranscriptIndexEntry): void;
57
- export declare function summarizeRuntimeTranscripts(index: RuntimeTranscriptIndex): RuntimeTranscriptSummary;
58
- export declare function pruneRuntimeTranscripts(projectRoot: string, options?: PruneRuntimeTranscriptsOptions): PruneRuntimeTranscriptsResult;
59
- //# sourceMappingURL=transcripts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcripts.d.ts","sourceRoot":"","sources":["../../src/runtime/transcripts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE3D,MAAM,MAAM,0BAA0B,GAAG;IACxC,OAAO,EAAE,KAAK,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAA;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAChD,eAAe,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAA;IAClD,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,KAAK,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,2BAA2B,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,2BAA2B,GAAG,IAAI,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,cAAc,EAAE,2BAA2B,EAAE,CAAA;IAC7C,WAAW,EAAE,2BAA2B,EAAE,CAAA;IAC1C,mBAAmB,EAAE,MAAM,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAiBD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAsCnH;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CA4BtF;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAInG;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAU1G;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,GAAG,wBAAwB,CAUnG;AAsBD,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,8BAAmC,GAC1C,6BAA6B,CAyD/B"}