@leemour/cli-messaging 0.155.0 → 0.157.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +5 -7
  2. package/dist/analysis/provider.d.ts +1 -1
  3. package/dist/analysis/provider.d.ts.map +1 -1
  4. package/dist/analysis/provider.js +2 -1
  5. package/dist/analysis/provider.js.map +1 -1
  6. package/dist/cli/agent-evaluation.d.ts +25 -0
  7. package/dist/cli/agent-evaluation.d.ts.map +1 -0
  8. package/dist/cli/agent-evaluation.js +42 -0
  9. package/dist/cli/agent-evaluation.js.map +1 -0
  10. package/dist/cli/analysis-choice.js +2 -2
  11. package/dist/cli/analysis-choice.js.map +1 -1
  12. package/dist/cli/bot/mcp.d.ts.map +1 -1
  13. package/dist/cli/bot/mcp.js +4 -12
  14. package/dist/cli/bot/mcp.js.map +1 -1
  15. package/dist/cli/command-contract.d.ts +85 -0
  16. package/dist/cli/command-contract.d.ts.map +1 -0
  17. package/dist/cli/command-contract.js +211 -0
  18. package/dist/cli/command-contract.js.map +1 -0
  19. package/dist/cli/commands-command.d.ts.map +1 -1
  20. package/dist/cli/commands-command.js +44 -28
  21. package/dist/cli/commands-command.js.map +1 -1
  22. package/dist/cli/context.d.ts +2 -0
  23. package/dist/cli/context.d.ts.map +1 -1
  24. package/dist/cli/context.js +10 -3
  25. package/dist/cli/context.js.map +1 -1
  26. package/dist/cli/deadline.js +3 -4
  27. package/dist/cli/deadline.js.map +1 -1
  28. package/dist/cli/embedding-choice.js +2 -2
  29. package/dist/cli/embedding-choice.js.map +1 -1
  30. package/dist/cli/embedding-keys.d.ts +1 -0
  31. package/dist/cli/embedding-keys.d.ts.map +1 -1
  32. package/dist/cli/embedding-keys.js +4 -0
  33. package/dist/cli/embedding-keys.js.map +1 -1
  34. package/dist/cli/execution.d.ts +26 -0
  35. package/dist/cli/execution.d.ts.map +1 -0
  36. package/dist/cli/execution.js +175 -0
  37. package/dist/cli/execution.js.map +1 -0
  38. package/dist/cli/index.d.ts +7 -3
  39. package/dist/cli/index.d.ts.map +1 -1
  40. package/dist/cli/index.js +7 -3
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/input-policy.d.ts +14 -0
  43. package/dist/cli/input-policy.d.ts.map +1 -0
  44. package/dist/cli/input-policy.js +66 -0
  45. package/dist/cli/input-policy.js.map +1 -0
  46. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  47. package/dist/cli/messenger/chats-command.js +0 -2
  48. package/dist/cli/messenger/chats-command.js.map +1 -1
  49. package/dist/cli/messenger/chats-stats-command.js +1 -1
  50. package/dist/cli/messenger/chats-stats-command.js.map +1 -1
  51. package/dist/cli/messenger/context.d.ts.map +1 -1
  52. package/dist/cli/messenger/context.js +9 -9
  53. package/dist/cli/messenger/context.js.map +1 -1
  54. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  55. package/dist/cli/messenger/conversations-command.js +3 -1
  56. package/dist/cli/messenger/conversations-command.js.map +1 -1
  57. package/dist/cli/messenger/mcp-command.d.ts +0 -1
  58. package/dist/cli/messenger/mcp-command.d.ts.map +1 -1
  59. package/dist/cli/messenger/mcp-command.js +15 -19
  60. package/dist/cli/messenger/mcp-command.js.map +1 -1
  61. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  62. package/dist/cli/messenger/messages-command.js +0 -2
  63. package/dist/cli/messenger/messages-command.js.map +1 -1
  64. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  65. package/dist/cli/messenger/messages-search-command.js +7 -3
  66. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  67. package/dist/cli/messenger/messages-stats-command.js +2 -2
  68. package/dist/cli/messenger/messages-stats-command.js.map +1 -1
  69. package/dist/cli/messenger/replies-command.d.ts.map +1 -1
  70. package/dist/cli/messenger/replies-command.js +15 -1
  71. package/dist/cli/messenger/replies-command.js.map +1 -1
  72. package/dist/cli/messenger/replies-consents-command.d.ts +4 -0
  73. package/dist/cli/messenger/replies-consents-command.d.ts.map +1 -0
  74. package/dist/cli/messenger/replies-consents-command.js +57 -0
  75. package/dist/cli/messenger/replies-consents-command.js.map +1 -0
  76. package/dist/cli/messenger/replies-edit-command.d.ts +1 -1
  77. package/dist/cli/messenger/replies-edit-command.d.ts.map +1 -1
  78. package/dist/cli/messenger/replies-edit-command.js +1 -1
  79. package/dist/cli/messenger/replies-edit-command.js.map +1 -1
  80. package/dist/cli/messenger/search-sync-options.d.ts.map +1 -1
  81. package/dist/cli/messenger/search-sync-options.js +2 -0
  82. package/dist/cli/messenger/search-sync-options.js.map +1 -1
  83. package/dist/cli/messenger/searches-command.d.ts +1 -1
  84. package/dist/cli/messenger/searches-command.d.ts.map +1 -1
  85. package/dist/cli/messenger/searches-command.js +3 -3
  86. package/dist/cli/messenger/searches-command.js.map +1 -1
  87. package/dist/cli/messenger/serve-command.d.ts.map +1 -1
  88. package/dist/cli/messenger/serve-command.js +10 -2
  89. package/dist/cli/messenger/serve-command.js.map +1 -1
  90. package/dist/cli/messenger/stats-command.d.ts.map +1 -1
  91. package/dist/cli/messenger/stats-command.js +9 -1
  92. package/dist/cli/messenger/stats-command.js.map +1 -1
  93. package/dist/cli/messenger/stdin.d.ts.map +1 -1
  94. package/dist/cli/messenger/stdin.js +2 -4
  95. package/dist/cli/messenger/stdin.js.map +1 -1
  96. package/dist/cli/messenger/tasks-command.d.ts +1 -0
  97. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  98. package/dist/cli/messenger/tasks-command.js +4 -3
  99. package/dist/cli/messenger/tasks-command.js.map +1 -1
  100. package/dist/cli/permission-migration.d.ts +0 -1
  101. package/dist/cli/permission-migration.d.ts.map +1 -1
  102. package/dist/cli/permission-migration.js +39 -1
  103. package/dist/cli/permission-migration.js.map +1 -1
  104. package/dist/cli/preview.d.ts +35 -0
  105. package/dist/cli/preview.d.ts.map +1 -0
  106. package/dist/cli/preview.js +40 -0
  107. package/dist/cli/preview.js.map +1 -0
  108. package/dist/cli/program.d.ts +1 -1
  109. package/dist/cli/program.d.ts.map +1 -1
  110. package/dist/cli/program.js +171 -26
  111. package/dist/cli/program.js.map +1 -1
  112. package/dist/cli/result-fields.d.ts +3 -0
  113. package/dist/cli/result-fields.d.ts.map +1 -0
  114. package/dist/cli/result-fields.js +55 -0
  115. package/dist/cli/result-fields.js.map +1 -0
  116. package/dist/kit/index.d.ts +1 -0
  117. package/dist/kit/index.d.ts.map +1 -1
  118. package/dist/kit/index.js +1 -0
  119. package/dist/kit/index.js.map +1 -1
  120. package/dist/kit/mcp-commands-client.d.ts +7 -0
  121. package/dist/kit/mcp-commands-client.d.ts.map +1 -0
  122. package/dist/kit/mcp-commands-client.js +50 -0
  123. package/dist/kit/mcp-commands-client.js.map +1 -0
  124. package/dist/mcp/bot/instructions.d.ts +2 -3
  125. package/dist/mcp/bot/instructions.d.ts.map +1 -1
  126. package/dist/mcp/bot/instructions.js +4 -10
  127. package/dist/mcp/bot/instructions.js.map +1 -1
  128. package/dist/mcp/bot/server.d.ts +0 -6
  129. package/dist/mcp/bot/server.d.ts.map +1 -1
  130. package/dist/mcp/bot/server.js +30 -76
  131. package/dist/mcp/bot/server.js.map +1 -1
  132. package/dist/mcp/bot/tools.d.ts +3 -11
  133. package/dist/mcp/bot/tools.d.ts.map +1 -1
  134. package/dist/mcp/bot/tools.js +7 -22
  135. package/dist/mcp/bot/tools.js.map +1 -1
  136. package/dist/mcp/instructions.d.ts +1 -2
  137. package/dist/mcp/instructions.d.ts.map +1 -1
  138. package/dist/mcp/instructions.js +6 -13
  139. package/dist/mcp/instructions.js.map +1 -1
  140. package/dist/mcp/personal.d.ts +1 -1
  141. package/dist/mcp/personal.d.ts.map +1 -1
  142. package/dist/mcp/personal.js +1 -1
  143. package/dist/mcp/personal.js.map +1 -1
  144. package/dist/mcp/prompts.d.ts.map +1 -1
  145. package/dist/mcp/prompts.js +26 -11
  146. package/dist/mcp/prompts.js.map +1 -1
  147. package/dist/mcp/server.d.ts +3 -23
  148. package/dist/mcp/server.d.ts.map +1 -1
  149. package/dist/mcp/server.js +24 -53
  150. package/dist/mcp/server.js.map +1 -1
  151. package/dist/mcp/surface.d.ts +29 -0
  152. package/dist/mcp/surface.d.ts.map +1 -0
  153. package/dist/mcp/surface.js +125 -0
  154. package/dist/mcp/surface.js.map +1 -0
  155. package/dist/mcp/tool.d.ts +19 -24
  156. package/dist/mcp/tool.d.ts.map +1 -1
  157. package/dist/mcp/tool.js +110 -84
  158. package/dist/mcp/tool.js.map +1 -1
  159. package/dist/mcp/tools/admin.d.ts.map +1 -1
  160. package/dist/mcp/tools/admin.js +1 -10
  161. package/dist/mcp/tools/admin.js.map +1 -1
  162. package/dist/mcp/tools/attachments.d.ts.map +1 -1
  163. package/dist/mcp/tools/attachments.js +1 -2
  164. package/dist/mcp/tools/attachments.js.map +1 -1
  165. package/dist/mcp/tools/chats-read.d.ts.map +1 -1
  166. package/dist/mcp/tools/chats-read.js +1 -2
  167. package/dist/mcp/tools/chats-read.js.map +1 -1
  168. package/dist/mcp/tools/chats.js +1 -1
  169. package/dist/mcp/tools/chats.js.map +1 -1
  170. package/dist/mcp/tools/contacts-write.d.ts.map +1 -1
  171. package/dist/mcp/tools/contacts-write.js +1 -4
  172. package/dist/mcp/tools/contacts-write.js.map +1 -1
  173. package/dist/mcp/tools/conversations.d.ts.map +1 -1
  174. package/dist/mcp/tools/conversations.js +1 -5
  175. package/dist/mcp/tools/conversations.js.map +1 -1
  176. package/dist/mcp/tools/folders.d.ts.map +1 -1
  177. package/dist/mcp/tools/folders.js +1 -4
  178. package/dist/mcp/tools/folders.js.map +1 -1
  179. package/dist/mcp/tools/messages-actions.d.ts.map +1 -1
  180. package/dist/mcp/tools/messages-actions.js +1 -5
  181. package/dist/mcp/tools/messages-actions.js.map +1 -1
  182. package/dist/mcp/tools/messages-delete.d.ts.map +1 -1
  183. package/dist/mcp/tools/messages-delete.js +1 -2
  184. package/dist/mcp/tools/messages-delete.js.map +1 -1
  185. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  186. package/dist/mcp/tools/messages-send.js +1 -2
  187. package/dist/mcp/tools/messages-send.js.map +1 -1
  188. package/dist/mcp/tools/messages.js +1 -1
  189. package/dist/mcp/tools/messages.js.map +1 -1
  190. package/dist/mcp/tools/moderation.d.ts.map +1 -1
  191. package/dist/mcp/tools/moderation.js +1 -2
  192. package/dist/mcp/tools/moderation.js.map +1 -1
  193. package/dist/mcp/tools/polls.d.ts.map +1 -1
  194. package/dist/mcp/tools/polls.js +1 -4
  195. package/dist/mcp/tools/polls.js.map +1 -1
  196. package/dist/mcp/tools/reactions.d.ts.map +1 -1
  197. package/dist/mcp/tools/reactions.js +1 -3
  198. package/dist/mcp/tools/reactions.js.map +1 -1
  199. package/dist/mcp/tools/search.d.ts.map +1 -1
  200. package/dist/mcp/tools/search.js +1 -1
  201. package/dist/mcp/tools/search.js.map +1 -1
  202. package/dist/mcp/tools/searches.d.ts.map +1 -1
  203. package/dist/mcp/tools/searches.js +3 -7
  204. package/dist/mcp/tools/searches.js.map +1 -1
  205. package/dist/mcp/tools/tags.d.ts.map +1 -1
  206. package/dist/mcp/tools/tags.js +1 -4
  207. package/dist/mcp/tools/tags.js.map +1 -1
  208. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  209. package/dist/mcp/tools/tasks.js +2 -5
  210. package/dist/mcp/tools/tasks.js.map +1 -1
  211. package/dist/mcp/tools/topics.d.ts.map +1 -1
  212. package/dist/mcp/tools/topics.js +1 -3
  213. package/dist/mcp/tools/topics.js.map +1 -1
  214. package/dist/models/index.d.ts +1 -0
  215. package/dist/models/index.d.ts.map +1 -1
  216. package/dist/models/index.js +15 -1
  217. package/dist/models/index.js.map +1 -1
  218. package/dist/output.d.ts +3 -1
  219. package/dist/output.d.ts.map +1 -1
  220. package/dist/output.js +13 -3
  221. package/dist/output.js.map +1 -1
  222. package/dist/replies/consents.d.ts +14 -0
  223. package/dist/replies/consents.d.ts.map +1 -0
  224. package/dist/replies/consents.js +26 -0
  225. package/dist/replies/consents.js.map +1 -0
  226. package/dist/replies/dry-run.d.ts +6 -1
  227. package/dist/replies/dry-run.d.ts.map +1 -1
  228. package/dist/replies/dry-run.js +19 -3
  229. package/dist/replies/dry-run.js.map +1 -1
  230. package/dist/replies/rendering.d.ts +17 -0
  231. package/dist/replies/rendering.d.ts.map +1 -0
  232. package/dist/replies/rendering.js +52 -0
  233. package/dist/replies/rendering.js.map +1 -0
  234. package/dist/replies/rules.d.ts +1 -1
  235. package/dist/replies/rules.js +3 -3
  236. package/dist/replies/rules.js.map +1 -1
  237. package/dist/replies/serve.d.ts +5 -2
  238. package/dist/replies/serve.d.ts.map +1 -1
  239. package/dist/replies/serve.js +24 -1
  240. package/dist/replies/serve.js.map +1 -1
  241. package/dist/replies/template.d.ts +38 -0
  242. package/dist/replies/template.d.ts.map +1 -0
  243. package/dist/replies/template.js +167 -0
  244. package/dist/replies/template.js.map +1 -0
  245. package/dist/sends/guarded.d.ts +2 -0
  246. package/dist/sends/guarded.d.ts.map +1 -1
  247. package/dist/sends/guarded.js +37 -3
  248. package/dist/sends/guarded.js.map +1 -1
  249. package/dist/sends/index.d.ts +1 -1
  250. package/dist/sends/index.d.ts.map +1 -1
  251. package/dist/sends/index.js +1 -1
  252. package/dist/sends/index.js.map +1 -1
  253. package/dist/sends/permissions.d.ts +3 -1
  254. package/dist/sends/permissions.d.ts.map +1 -1
  255. package/dist/sends/permissions.js +30 -1
  256. package/dist/sends/permissions.js.map +1 -1
  257. package/dist/skills/validate.d.ts +9 -0
  258. package/dist/skills/validate.d.ts.map +1 -0
  259. package/dist/skills/validate.js +86 -0
  260. package/dist/skills/validate.js.map +1 -0
  261. package/dist/store/sqlite/chats.d.ts.map +1 -1
  262. package/dist/store/sqlite/chats.js +7 -3
  263. package/dist/store/sqlite/chats.js.map +1 -1
  264. package/dist/store/sqlite/schema.d.ts +1 -1
  265. package/dist/store/sqlite/schema.js +1 -1
  266. package/dist/terminal/prompt.d.ts +1 -1
  267. package/dist/terminal/prompt.d.ts.map +1 -1
  268. package/dist/terminal/prompt.js +34 -31
  269. package/dist/terminal/prompt.js.map +1 -1
  270. package/package.json +10 -3
  271. package/parity.json +214 -430
  272. package/skills/link-conversations/SKILL.md +8 -13
  273. package/dist/mcp/confirm.d.ts +0 -30
  274. package/dist/mcp/confirm.d.ts.map +0 -1
  275. package/dist/mcp/confirm.js +0 -92
  276. package/dist/mcp/confirm.js.map +0 -1
  277. package/dist/mcp/http/policy.d.ts +0 -13
  278. package/dist/mcp/http/policy.d.ts.map +0 -1
  279. package/dist/mcp/http/policy.js +0 -18
  280. package/dist/mcp/http/policy.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import { CliError, EXIT_CODES, GENERIC_FAILURE } from "@leemour/cli-core";
2
2
  import { describeOptions, describeProgram, flatten } from "@leemour/cli-core/commands";
3
3
  import { Command } from "commander";
4
+ import { commandContract, findCommand } from "./command-contract.js";
4
5
  import { outputFor } from "./context.js";
5
6
  import { rootOf } from "./profile.js";
6
7
  /**
@@ -12,35 +13,50 @@ export const CONTRACT = 0;
12
13
  * The discovery surface an agent reads instead of `--help`. It opens no store, no session and no
13
14
  * settings file: which commands exist does not depend on whether this machine has logged in.
14
15
  */
15
- export const commandsCommand = (app) => new Command("commands")
16
- .description("commands, options and exit codes as JSON — inspect one command path per call")
17
- .argument("[path...]", "one command path, for example: messages search; inspect other groups in separate calls")
18
- .action(function (path) {
19
- const root = rootOf(this);
20
- const { renderer, format } = outputFor(this);
21
- const all = describeProgram(root);
22
- const scoped = path.length > 0 ? scopeOf(root, all, path) : undefined;
23
- const commands = scoped ? [scoped.command] : all;
24
- if (format === "pretty") {
25
- renderer.result(flatten(commands).map(({ usage, summary, description, mutates, state }) => ({
26
- command: usage,
27
- description: summary ?? description,
28
- writes: mutates ? "yes" : "",
29
- ...(state ? { state } : {}),
30
- })));
31
- return;
32
- }
33
- renderer.result({
34
- cli: app.command,
35
- version: app.version,
36
- contract: CONTRACT,
37
- description: root.description(),
38
- globalOptions: describeOptions(root),
39
- ...(scoped ? { scope: scoped.command.path, inheritedOptions: scoped.inheritedOptions } : {}),
40
- commands,
41
- exitCodes: { ok: 0, generic_failure: GENERIC_FAILURE, ...EXIT_CODES },
16
+ export const commandsCommand = (app) => {
17
+ const command = new Command("commands")
18
+ .description("commands, options and exit codes as JSON — inspect one command path per call")
19
+ .argument("[path...]", "one command path, for example: messages search; inspect other groups in separate calls")
20
+ .action(function (path) {
21
+ const root = rootOf(this);
22
+ const { renderer, format } = outputFor(this);
23
+ const all = describeProgram(root);
24
+ const scoped = path.length > 0 ? scopeOf(root, all, path) : undefined;
25
+ const commands = scoped ? [scoped.command] : all;
26
+ if (format === "pretty") {
27
+ renderer.result(flatten(commands).map(({ usage, summary, description, mutates, state }) => ({
28
+ command: usage,
29
+ description: summary ?? description,
30
+ writes: mutates ? "yes" : "",
31
+ ...(state ? { state } : {}),
32
+ })));
33
+ return;
34
+ }
35
+ renderer.result({
36
+ cli: app.command,
37
+ version: app.version,
38
+ contract: CONTRACT,
39
+ description: root.description(),
40
+ globalOptions: describeOptions(root),
41
+ ...(scoped ? { scope: scoped.command.path, inheritedOptions: scoped.inheritedOptions } : {}),
42
+ commands,
43
+ exitCodes: { ok: 0, generic_failure: GENERIC_FAILURE, ...EXIT_CODES },
44
+ });
42
45
  });
43
- });
46
+ command.addCommand(new Command("schema")
47
+ .description("one command's argv and result schemas, effects, permissions and retry guidance")
48
+ .argument("<path...>", "one command path, for example: stats messages show")
49
+ .action(function (path) {
50
+ const { renderer } = outputFor(this);
51
+ renderer.result({
52
+ cli: app.command,
53
+ version: app.version,
54
+ contract: CONTRACT,
55
+ ...commandContract(findCommand(rootOf(this), path)),
56
+ });
57
+ }));
58
+ return command;
59
+ };
44
60
  const scopeOf = (root, all, path) => {
45
61
  let parent = root;
46
62
  let available = all;
@@ -1 +1 @@
1
- {"version":3,"file":"commands-command.js","sourceRoot":"","sources":["../../src/cli/commands-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands-command.js","sourceRoot":"","sources":["../../src/cli/commands-command.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,9 @@ export interface BaseEnvironment {
12
12
  tty?: boolean;
13
13
  env?: NodeJS.ProcessEnv;
14
14
  /** Ends a long-running command — `watch` — in place of Ctrl-C; tests hand one in. */
15
+ commandSignal?: AbortSignal;
15
16
  signal?: AbortSignal;
17
+ trackCloseable?: (closeable: Closeable) => void;
16
18
  /** Where a command reads text it was not given as an argument. */
17
19
  stdin?: NodeJS.ReadableStream & {
18
20
  isTTY?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,eAAe,CAAA;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1E,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,qFAAqF;IACrF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACnD,gGAAgG;IAChG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IACrE,yFAAyF;IACzF,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,uFAAuF;IACvF,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAID,eAAO,MAAM,OAAO,YAAa,OAAO,eAAe,eAAe,KAAG,IAExE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,eAAe,GAAG,eAAe,WAAW,OAAO,KAAG,CAC9C,CAAA;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,SAAS,YAAa,OAAO;;;;;CAOzC,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB;;;;OAIG;IACH;;;OAGG;IACH,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACjH,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;CACtC;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,QAAQ,CAAA;AAEzE,2EAA2E;AAC3E,eAAO,MAAM,WAAW,YAAa,OAAO,mBAAmB,OAAO,KAAG,WAyCxE,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,eAAe,CAAA;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1E,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,qFAAqF;IACrF,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;IAC/C,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACnD,gGAAgG;IAChG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IACrE,yFAAyF;IACzF,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,uFAAuF;IACvF,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAID,eAAO,MAAM,OAAO,YAAa,OAAO,eAAe,eAAe,KAAG,IAExE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,eAAe,GAAG,eAAe,WAAW,OAAO,KAAG,CAC9C,CAAA;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,SAAS,YAAa,OAAO;;;;;CAQzC,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB;;;;OAIG;IACH;;;OAGG;IACH,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACjH,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;CACtC;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,QAAQ,CAAA;AAEzE,2EAA2E;AAC3E,eAAO,MAAM,WAAW,YAAa,OAAO,mBAAmB,OAAO,KAAG,WAmDxE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { resolveOutput } from "../output.js";
2
2
  import { withDeadline } from "./deadline.js";
3
+ import { withAbort } from "./execution.js";
3
4
  import { rootOf } from "./profile.js";
4
5
  import { recorded } from "./runs/recording.js";
5
6
  const environments = new WeakMap();
@@ -9,10 +10,11 @@ export const provide = (program, environment) => {
9
10
  export const environmentOf = (command) => (environments.get(rootOf(command)) ?? {});
10
11
  /** For the commands that print but never need settings or a connection. */
11
12
  export const outputFor = (command) => {
12
- const { streams, tty } = environmentOf(command);
13
+ const { streams, tty, env } = environmentOf(command);
13
14
  return resolveOutput({
14
15
  ...command.optsWithGlobals(),
15
16
  ...(streams ? { streams } : {}),
17
+ ...(env ? { env } : {}),
16
18
  ...(tty === undefined ? {} : { tty }),
17
19
  });
18
20
  };
@@ -23,6 +25,10 @@ export const baseContext = (command, resolveSettings) => {
23
25
  const settings = resolveSettings(command.optsWithGlobals(), { env });
24
26
  const { renderer, format, color, streams } = resolveOutput({
25
27
  ...settings,
28
+ env,
29
+ ...(command.optsWithGlobals().fields
30
+ ? { fields: command.optsWithGlobals().fields }
31
+ : {}),
26
32
  ...(environment.streams ? { streams: environment.streams } : {}),
27
33
  ...(environment.tty === undefined ? {} : { tty: environment.tty }),
28
34
  });
@@ -47,10 +53,11 @@ export const baseContext = (command, resolveSettings) => {
47
53
  format,
48
54
  streams,
49
55
  env,
50
- }, (events) => withDeadline(unbounded ? undefined : settings.commandTimeoutMs, closeables, () => body(events)))
51
- : withDeadline(unbounded ? undefined : settings.commandTimeoutMs, closeables, () => body(() => { })),
56
+ }, (events) => withAbort(environment.commandSignal, () => withDeadline(unbounded ? undefined : settings.commandTimeoutMs, closeables, () => body(events))))
57
+ : withAbort(environment.commandSignal, () => withDeadline(unbounded ? undefined : settings.commandTimeoutMs, closeables, () => body(() => { }))),
52
58
  track: (closeable) => {
53
59
  closeables.push(closeable);
60
+ environment.trackCloseable?.(closeable);
54
61
  },
55
62
  };
56
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CliError } from "@leemour/cli-core";
2
- import { writesInFlight } from "../sends/guarded.js";
2
+ import { stopWrites, withWriteScope } from "../sends/guarded.js";
3
3
  /**
4
4
  * Stops the whole command at `ms`, and **closes what it was holding on the way out**.
5
5
  *
@@ -29,20 +29,19 @@ export const withDeadline = async (ms, closeables, body) => {
29
29
  timer = setTimeout(() => {
30
30
  const pending = [...writes];
31
31
  const cut = pending.filter((write) => !write.preparing);
32
- for (const write of pending)
33
- write.cut();
34
32
  timedOut =
35
33
  cut.length > 0
36
34
  ? new CliError("outcome_unknown", `\`--timeout\` ended the command after ${ms}ms with ${cut.length === 1 ? "a write" : `${cut.length} writes`} ` +
37
35
  "in flight; the messenger may or may not have carried it out — check before repeating it", { operationIds: cut.map((write) => write.operationId), retryable: false })
38
36
  : new CliError("timeout", `the command did not finish within ${ms}ms — \`--timeout\` ended it`);
37
+ stopWrites(writes, timedOut);
39
38
  // Sockets first, then the message: the rejection is what the person reads, and the closing
40
39
  // is what lets the process actually end once they have read it.
41
40
  void Promise.allSettled(closeables.map((closeable) => closeable.close())).then(() => reject(timedOut));
42
41
  }, ms);
43
42
  });
44
43
  try {
45
- return await Promise.race([writesInFlight.run(writes, body), expired]);
44
+ return await Promise.race([withWriteScope(writes, body), expired]);
46
45
  }
47
46
  catch (error) {
48
47
  // Closing rejects the body's own request, and that rejection arrives first.
@@ -1 +1 @@
1
- {"version":3,"file":"deadline.js","sourceRoot":"","sources":["../../src/cli/deadline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOxE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,EAAsB,EACtB,UAAuB,EACvB,IAAsB,EACV,EAAE;IACd,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,IAAI,EAAE,CAAA;IAEnC,IAAI,KAAiC,CAAA;IACrC,IAAI,QAA8B,CAAA;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACvD,KAAK,MAAM,KAAK,IAAI,OAAO;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAA;YACxC,QAAQ;gBACN,GAAG,CAAC,MAAM,GAAG,CAAC;oBACZ,CAAC,CAAC,IAAI,QAAQ,CACV,iBAAiB,EACjB,yCAAyC,EAAE,WAAW,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,SAAS,GAAG;wBAC5G,yFAAyF,EAC3F,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1E;oBACH,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,qCAAqC,EAAE,6BAA6B,CAAC,CAAA;YACnG,2FAA2F;YAC3F,gEAAgE;YAChE,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxG,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,MAAM,QAAQ,IAAI,KAAK,CAAA;IACzB,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"deadline.js","sourceRoot":"","sources":["../../src/cli/deadline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOpF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,EAAsB,EACtB,UAAuB,EACvB,IAAsB,EACV,EAAE;IACd,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,IAAI,EAAE,CAAA;IAEnC,IAAI,KAAiC,CAAA;IACrC,IAAI,QAA8B,CAAA;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACvD,QAAQ;gBACN,GAAG,CAAC,MAAM,GAAG,CAAC;oBACZ,CAAC,CAAC,IAAI,QAAQ,CACV,iBAAiB,EACjB,yCAAyC,EAAE,WAAW,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,SAAS,GAAG;wBAC5G,yFAAyF,EAC3F,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1E;oBACH,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,qCAAqC,EAAE,6BAA6B,CAAC,CAAA;YACnG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5B,2FAA2F;YAC3F,gEAAgE;YAChE,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxG,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,MAAM,QAAQ,IAAI,KAAK,CAAA;IACzB,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAA"}
@@ -2,7 +2,7 @@ import { CliError } from "@leemour/cli-core";
2
2
  import { endpoint } from "../analysis/settings.js";
3
3
  import { DEFAULT_TEXT_MODEL } from "../embeddings/models.js";
4
4
  import { remoteModel } from "../embeddings/remote.js";
5
- import { embeddingKeys } from "./embedding-keys.js";
5
+ import { embeddingKeys, endpointKeyName } from "./embedding-keys.js";
6
6
  /** A local model id, or a remote model with its key from `models text key set`. */
7
7
  export const embeddingChoice = ({ model, provider, baseUrl, dims, concurrency }, app, settings, env, { needKey = true } = {}) => {
8
8
  const flagsChooseProvider = (provider !== undefined && provider !== (settings.embeddingProvider ?? "local")) ||
@@ -26,7 +26,7 @@ export const embeddingChoice = ({ model, provider, baseUrl, dims, concurrency },
26
26
  ...(baseUrl ? { baseUrl } : {}),
27
27
  ...(dims ? { dims } : {}),
28
28
  });
29
- const keyName = baseUrl === undefined ? "openai" : new URL(baseUrl).host;
29
+ const keyName = baseUrl === undefined ? "openai" : endpointKeyName(baseUrl);
30
30
  const key = embeddingKeys(app, env).read(keyName)?.key;
31
31
  if (!key && needKey && baseUrl === undefined) {
32
32
  throw new CliError("authentication_error", `no OpenAI key — \`${app.command} models text key set openai\`, or OPENAI_API_KEY`);
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-choice.js","sourceRoot":"","sources":["../../src/cli/embedding-choice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-choice.js","sourceRoot":"","sources":["../../src/cli/embedding-choice.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type CredentialSource } from "@leemour/cli-core";
2
2
  import { type AppIdentity } from "./app.js";
3
+ export declare const endpointKeyName: (baseUrl: string) => string;
3
4
  /**
4
5
  * An AI provider's API key (phase 5 E11), kept as bot tokens are: the keyring account
5
6
  * `embeddings:<provider>` under the app's own service, then `<PREFIX>_OPENAI_API_KEY` or OpenAI's own
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-keys.d.ts","sourceRoot":"","sources":["../../src/cli/embedding-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAiD,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,UAAU,CAAA;AAEpD;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,WAAW,QAAO,MAAM,CAAC,UAAU;IAelE,IAAI,aAAa,MAAM,KAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,GAAG,KAAK,CAAA;KAAE,GAAG,SAAS;IAQvF,KAAK,aAAa,MAAM,OAAO,MAAM,KAAG,gBAAgB;IACxD,MAAM,aAAa,MAAM,KAAG,gBAAgB,EAAE;CAEjD,CAAA"}
1
+ {"version":3,"file":"embedding-keys.d.ts","sourceRoot":"","sources":["../../src/cli/embedding-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAiD,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,UAAU,CAAA;AAEpD,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,MAGjD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,WAAW,QAAO,MAAM,CAAC,UAAU;IAelE,IAAI,aAAa,MAAM,KAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,GAAG,KAAK,CAAA;KAAE,GAAG,SAAS;IAQvF,KAAK,aAAa,MAAM,OAAO,MAAM,KAAG,gBAAgB;IACxD,MAAM,aAAa,MAAM,KAAG,gBAAgB,EAAE;CAEjD,CAAA"}
@@ -1,5 +1,9 @@
1
1
  import { Credentials, pathsAreOverridden, resolvePaths } from "@leemour/cli-core";
2
2
  import { envName } from "./app.js";
3
+ export const endpointKeyName = (baseUrl) => {
4
+ const host = new URL(baseUrl).host;
5
+ return ["openai", "anthropic"].includes(host) ? `endpoint:${host}` : host;
6
+ };
3
7
  /**
4
8
  * An AI provider's API key (phase 5 E11), kept as bot tokens are: the keyring account
5
9
  * `embeddings:<provider>` under the app's own service, then `<PREFIX>_OPENAI_API_KEY` or OpenAI's own
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-keys.js","sourceRoot":"","sources":["../../src/cli/embedding-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAgB,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,EAAE;IACtF,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAA;IAClE,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE,CACvC,IAAI,WAAW,CAAC;QACd,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM;QACrC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACnC,GAAG;QACH,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC;KACxD,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,cAAc,QAAQ,EAAE,CAAA;IAC9D,OAAO;QACL,IAAI,EAAE,CAAC,QAAgB,EAAiE,EAAE;YACxF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,MAAM;gBAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;YAChE,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvD,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE;gBAClD,CAAC,CAAC,SAAS,CAAA;YACb,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5D,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAW,EAAoB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAC/G,MAAM,EAAE,CAAC,QAAgB,EAAsB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KAClG,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"embedding-keys.js","sourceRoot":"","sources":["../../src/cli/embedding-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAA;AAEpD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAU,EAAE;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;IAClC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3E,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAgB,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,EAAE;IACtF,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAA;IAClE,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE,CACvC,IAAI,WAAW,CAAC;QACd,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM;QACrC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACnC,GAAG;QACH,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC;KACxD,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,cAAc,QAAQ,EAAE,CAAA;IAC9D,OAAO;QACL,IAAI,EAAE,CAAC,QAAgB,EAAiE,EAAE;YACxF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,MAAM;gBAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;YAChE,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvD,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE;gBAClD,CAAC,CAAC,SAAS,CAAA;YACb,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5D,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAW,EAAoB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAC/G,MAAM,EAAE,CAAC,QAAgB,EAAsB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KAClG,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { type Streams } from "@leemour/cli-core";
2
+ import type { Closeable } from "./deadline.js";
3
+ export declare const DEFAULT_COMMAND_MS = 30000;
4
+ export declare const DEFAULT_OUTPUT_BYTES: number;
5
+ export declare const byteCount: (value: string, option: string, zero?: boolean) => number;
6
+ export interface Execution {
7
+ signal: AbortSignal;
8
+ streams: Streams;
9
+ trackCloseable: (closeable: Closeable) => void;
10
+ configure: (options: {
11
+ fields?: string;
12
+ maxOutputBytes: number;
13
+ }) => void;
14
+ start: (timeoutMs?: number) => void;
15
+ race: <T>(body: () => Promise<T>) => Promise<T>;
16
+ abort: (error: unknown) => void;
17
+ failure: () => unknown;
18
+ finish: () => Promise<void>;
19
+ }
20
+ export declare const execution: (streams: Streams, { timeoutMs, fields, maxOutputBytes, }: {
21
+ timeoutMs?: number;
22
+ fields?: string;
23
+ maxOutputBytes?: number;
24
+ }) => Execution;
25
+ export declare const withAbort: <T>(signal: AbortSignal | undefined, body: () => Promise<T>) => Promise<T>;
26
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/cli/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG9C,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,eAAO,MAAM,oBAAoB,QAAkB,CAAA;AAEnD,eAAO,MAAM,SAAS,UAAW,MAAM,UAAU,MAAM,qBAAiB,MAKvE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;IAC9C,SAAS,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED,eAAO,MAAM,SAAS,YACX,OAAO,0CAKb;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,KACA,SA4IF,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,CAAC,UAAU,WAAW,GAAG,SAAS,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAarG,CAAA"}
@@ -0,0 +1,175 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ import { stopWrites, withWriteScope } from "../sends/guarded.js";
3
+ import { fieldsOf, projectFields } from "./result-fields.js";
4
+ export const DEFAULT_COMMAND_MS = 30_000;
5
+ export const DEFAULT_OUTPUT_BYTES = 4 * 1024 * 1024;
6
+ export const byteCount = (value, option, zero = false) => {
7
+ const result = Number(value);
8
+ if (!/^\d+$/.test(value) || !Number.isSafeInteger(result) || result < (zero ? 0 : 1))
9
+ throw new CliError("validation_error", `${option} takes a ${zero ? "non-negative" : "positive"} whole byte count`);
10
+ return result;
11
+ };
12
+ export const execution = (streams, { timeoutMs, fields, maxOutputBytes = DEFAULT_OUTPUT_BYTES, }) => {
13
+ const stop = new AbortController();
14
+ const writes = new Set();
15
+ const closeables = new Set();
16
+ const closing = new WeakMap();
17
+ const originals = new Map();
18
+ let paths = fields === undefined ? undefined : fieldsOf(fields);
19
+ let active = true;
20
+ let bytes = 0;
21
+ let timer;
22
+ let interrupted;
23
+ let reject = () => { };
24
+ const interruption = new Promise((_, fail) => {
25
+ reject = fail;
26
+ });
27
+ void interruption.catch(() => { });
28
+ const abort = (error) => {
29
+ if (stop.signal.aborted)
30
+ return;
31
+ const pending = [...writes];
32
+ const cut = pending.filter((write) => !write.preparing);
33
+ interrupted = cut.length
34
+ ? new CliError("outcome_unknown", "the command ended with a write in flight — check before repeating it", {
35
+ operationIds: cut.map((write) => write.operationId),
36
+ retryable: false,
37
+ })
38
+ : error;
39
+ stopWrites(writes, interrupted);
40
+ reject(interrupted);
41
+ stop.abort(interrupted);
42
+ for (const closeable of closeables)
43
+ void closeable.close().catch(() => { });
44
+ };
45
+ const start = (timeoutMs) => {
46
+ if (timer)
47
+ clearTimeout(timer);
48
+ if (timeoutMs === undefined)
49
+ return;
50
+ timer = setTimeout(() => abort(new CliError("timeout", `the command did not finish within ${timeoutMs}ms`, {
51
+ retryable: false,
52
+ reason: "command_timeout",
53
+ })), timeoutMs);
54
+ };
55
+ start(timeoutMs);
56
+ return {
57
+ configure: (options) => {
58
+ paths = options.fields === undefined ? undefined : fieldsOf(options.fields);
59
+ maxOutputBytes = options.maxOutputBytes;
60
+ },
61
+ start,
62
+ signal: stop.signal,
63
+ trackCloseable: (closeable) => {
64
+ if (closeables.has(closeable))
65
+ return;
66
+ originals.set(closeable, closeable.close);
67
+ const close = closeable.close.bind(closeable);
68
+ closeable.close = () => {
69
+ let pending = closing.get(closeable);
70
+ if (!pending) {
71
+ pending = Promise.resolve().then(close);
72
+ closing.set(closeable, pending);
73
+ }
74
+ return pending;
75
+ };
76
+ closeables.add(closeable);
77
+ },
78
+ streams: {
79
+ ...streams,
80
+ data: (text) => {
81
+ if (stop.signal.aborted)
82
+ throw stop.signal.reason;
83
+ if (!active)
84
+ return;
85
+ let result = text;
86
+ if (paths) {
87
+ try {
88
+ result = JSON.stringify(projectFields(JSON.parse(text), paths));
89
+ }
90
+ catch (error) {
91
+ if (error instanceof CliError)
92
+ throw error;
93
+ throw new CliError("invalid_response", "this output is not a JSON result — --fields cannot project it", {
94
+ retryable: false,
95
+ reason: "projection_unavailable",
96
+ });
97
+ }
98
+ }
99
+ const size = Buffer.byteLength(result) + 1;
100
+ if (maxOutputBytes !== 0 && bytes + size > maxOutputBytes)
101
+ throw new CliError("invalid_response", `machine output exceeds ${maxOutputBytes} bytes — reduce --limit, select --fields or raise --max-output-bytes`, {
102
+ retryable: false,
103
+ reason: "output_limit",
104
+ maxBytes: maxOutputBytes,
105
+ emittedBytes: bytes,
106
+ partialOutput: bytes > 0,
107
+ });
108
+ bytes += size;
109
+ streams.data(result);
110
+ },
111
+ diagnostic: (text) => {
112
+ if (active)
113
+ streams.diagnostic(text);
114
+ },
115
+ },
116
+ race: async (body) => {
117
+ const running = withWriteScope(writes, body);
118
+ try {
119
+ return await Promise.race([running, interruption]);
120
+ }
121
+ catch (error) {
122
+ if (stop.signal.aborted) {
123
+ let grace;
124
+ await Promise.race([
125
+ running.catch(() => { }),
126
+ new Promise((resolve) => {
127
+ grace = setTimeout(resolve, 100);
128
+ }),
129
+ ]);
130
+ if (grace)
131
+ clearTimeout(grace);
132
+ }
133
+ throw interrupted ?? error;
134
+ }
135
+ },
136
+ abort,
137
+ failure: () => interrupted,
138
+ finish: async () => {
139
+ active = false;
140
+ if (timer)
141
+ clearTimeout(timer);
142
+ {
143
+ let grace;
144
+ await Promise.race([
145
+ Promise.allSettled([...closeables].map((one) => one.close())),
146
+ new Promise((resolve) => {
147
+ grace = setTimeout(resolve, 1000);
148
+ }),
149
+ ]);
150
+ if (grace)
151
+ clearTimeout(grace);
152
+ }
153
+ for (const [closeable, close] of originals)
154
+ closeable.close = close;
155
+ },
156
+ };
157
+ };
158
+ export const withAbort = async (signal, body) => {
159
+ if (!signal)
160
+ return body();
161
+ if (signal.aborted)
162
+ throw signal.reason;
163
+ let abort = () => { };
164
+ const interrupted = new Promise((_, reject) => {
165
+ abort = () => reject(signal.reason);
166
+ signal.addEventListener("abort", abort, { once: true });
167
+ });
168
+ try {
169
+ return await Promise.race([body(), interrupted]);
170
+ }
171
+ finally {
172
+ signal.removeEventListener("abort", abort);
173
+ }
174
+ };
175
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/cli/execution.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,12 @@ export { botInstructions } from "../mcp/bot/instructions.js";
3
3
  export { type BotServerOptions, botToolName, createBotServer, type RunBotCommand } from "../mcp/bot/server.js";
4
4
  export { BOT_TOOLS, type BotTool, type BotToolKit, chat as botChatArgument, flag as botFlag, format as botFormat, type Invocation as BotInvocation, limit as botLimit, marks as botMarks, option as botOption, text as botText, withAcross, } from "../mcp/bot/tools.js";
5
5
  export { revokeAll } from "../mcp/http/oauth.js";
6
- export { type HttpConfirmation, httpConfirmationOf, httpServerOptions } from "../mcp/http/policy.js";
7
6
  export { type HttpOptions, MCP_PATH, serveOverHttp } from "../mcp/http/serve.js";
8
- export { answerMcpTool, failMcpTool, McpPicture, type PersonalMcpDefaults, type PersonalMcpRegistration, type PersonalMcpTool, personalMcpConfirmer, personalMcpToolKey, personalMcpTools, registerPersonalMcpTools, warmEmbedders, } from "../mcp/personal.js";
7
+ export { answerMcpTool, failMcpTool, McpPicture, type PersonalMcpDefaults, type PersonalMcpRegistration, type PersonalMcpTool, personalMcpCommand, personalMcpToolKey, personalMcpTools, registerPersonalMcpSurface, registerPersonalMcpTools, warmEmbedders, } from "../mcp/personal.js";
9
8
  export { registerLinkConversationsPrompt } from "../mcp/prompts.js";
10
- export { OVER_HTTP } from "../mcp/server.js";
11
9
  export { answerMessagesSearch, MESSAGES_SEARCH_DESCRIPTION, type MessagesSearchArgs, messagesSearchInput, } from "../mcp/tools/search.js";
12
10
  export { senderFacts } from "../replies/dry-run.js";
11
+ export { type ReplyRender, replyRenderer } from "../replies/rendering.js";
13
12
  export { repliesPathFor } from "../replies/rules.js";
14
13
  export { NO_RULES, NO_TASKS, NOT_ALLOWED, ONLY_TASK, type Replied, type Replier, replyTo } from "../replies/serve.js";
15
14
  export { repliesStatePathFor } from "../replies/state.js";
@@ -19,6 +18,7 @@ export { INBOX_CHATS, newIn, REVIEW_CHATS, reviewIn, unanswered, unreadIn } from
19
18
  export { momentOf } from "../services/moment.js";
20
19
  export { maskedAccount } from "../services/people.js";
21
20
  export { openRequestTask } from "../services/task-rules.js";
21
+ export { type AgentPolicy, type AgentTask, type EvaluationResult, evaluateAgent, type Observation, } from "./agent-evaluation.js";
22
22
  export { type AppIdentity, envName } from "./app.js";
23
23
  export { botAdminsCommand, botMembersCommand } from "./bot/admins.js";
24
24
  export { type ApiCommandInput, type ApiCommands, generatedApiCommand } from "./bot/api.js";
@@ -33,11 +33,14 @@ export { BOT_ACTIONS, type BotAction, type BotAdapter, type BotCallbacks, type B
33
33
  export { botFiles, botsDirectory, ChatRegistry, registryProfiles, type SeenChat } from "./bot/registry.js";
34
34
  export { BotTokenStore, type BotTokenStoreOptions } from "./bot/token.js";
35
35
  export { PressLog, UpdatesCursor } from "./bot/updates.js";
36
+ export { commandContract, type JsonSchema, resultSchemaFor, SCHEMA_DIALECT } from "./command-contract.js";
36
37
  export { CONTRACT, commandsCommand } from "./commands-command.js";
37
38
  export { configCommand, refuseUnknownKey } from "./config-command.js";
38
39
  export { type BaseContext, type BaseEnvironment, baseContext, environmentOf, outputFor, provide, } from "./context.js";
39
40
  export { type Closeable, withDeadline } from "./deadline.js";
41
+ export { withAbort } from "./execution.js";
40
42
  export { isCliFailure, isCommanderFailure } from "./failures.js";
43
+ export { bufferedInput, type InputPolicy, inputPolicy, MAX_BUFFERED_INPUT, MAX_SECRET_INPUT, provideInputPolicy, } from "./input-policy.js";
41
44
  export { accountCommand } from "./messenger/account-command.js";
42
45
  export { accountFileFor, rememberAccount } from "./messenger/accounts.js";
43
46
  export { storeCommand } from "./messenger/archive-commands.js";
@@ -80,6 +83,7 @@ export { knownBeside, knownPermissionKeys, type PermissionKeyOf, unknownPermissi
80
83
  export { migratePermissionConfig, type PermissionMigration } from "./permission-migration.js";
81
84
  export { asFirstWord, commandWords, DEFAULT_PROFILE, liftProfile, refuseCommandName, rootOf, usableProfileName, } from "./profile.js";
82
85
  export { createProgram, type ProgramDefinition, type ProgramOptions, type RunOptions, run } from "./program.js";
86
+ export { fieldsOf, projectFields } from "./result-fields.js";
83
87
  export { runsCommand } from "./runs/command.js";
84
88
  export { type CacheEvent, type DiagnosticEvent, type EventSink, providerErrorKey, type RequestEvent, renderEvent, type WarningEvent, } from "./runs/events.js";
85
89
  export { crashOf, type Recording, type RecordingOptions, recorded, startRecording, wasSettled, } from "./runs/recording.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}