@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,17 +1,16 @@
1
1
  import * as v from "valibot";
2
2
  import { listed } from "../../cli/paging.js";
3
3
  import { servicesFor, storedDeps } from "../../services/index.js";
4
- import { chatOf, limit, READ, refuseAskedLocalWrite, tool } from "../tool.js";
4
+ import { chatOf, limit, READ, tool } from "../tool.js";
5
5
  const LOCAL = { readOnlyHint: false, openWorldHint: false };
6
6
  const ROW = "{ id, name, command, params, language, version, fieldsVersion, createdAt, lastRunAt, runs }";
7
7
  const reference = v.pipe(v.string(), v.minLength(1), v.description("a saved search's name, or the id of any row of searches_history"));
8
8
  export const searchesTools = (messenger) => {
9
- const command = messenger.app.command;
10
9
  const services = (store, account, guard) => servicesFor(storedDeps(messenger, store, account, guard));
11
10
  return {
12
11
  searches_list: tool({
13
12
  title: "List saved searches",
14
- description: `The saved searches, by name; messages_search and messages_stats run one with \`saved\`. Returns { items: [${ROW}], page, limit, hasMore }.`,
13
+ description: `The saved searches, by name; messages_search and stats_messages_show run one with \`saved\`. Returns { items: [${ROW}], page, limit, hasMore }.`,
15
14
  input: v.object({}),
16
15
  annotations: { ...READ, openWorldHint: false },
17
16
  stored: async (store, account, _args, defaults) => listed(await services(store, account, defaults.guard).searches.list()),
@@ -30,7 +29,7 @@ export const searchesTools = (messenger) => {
30
29
  searches_create: tool({
31
30
  title: "Save a search",
32
31
  description: "Saves a search under a name without running it; the query is checked against today's fields. Takes " +
33
- "messages_search's arguments, plus `by` for messages_stats. A taken name is refused unless `replace`. " +
32
+ "messages_search's arguments, plus `by` for stats_messages_show. A taken name is refused unless `replace`. " +
34
33
  `Writes only to the local store. Returns ${ROW}.`,
35
34
  input: v.object({
36
35
  name: v.pipe(v.string(), v.minLength(1), v.description("up to 64 letters a–z, digits and hyphens")),
@@ -48,7 +47,6 @@ export const searchesTools = (messenger) => {
48
47
  }),
49
48
  annotations: { ...LOCAL, destructiveHint: false, idempotentHint: false },
50
49
  stored: async (store, account, { name, replace, ...params }, defaults) => {
51
- refuseAskedLocalWrite(defaults, "searches.create", command);
52
50
  return services(store, account, defaults.guard).searches.create(name, params, { replace: replace === true });
53
51
  },
54
52
  }),
@@ -58,7 +56,6 @@ export const searchesTools = (messenger) => {
58
56
  input: v.object({ name: reference }),
59
57
  annotations: { ...LOCAL, destructiveHint: true, idempotentHint: false },
60
58
  stored: async (store, account, args, defaults) => {
61
- refuseAskedLocalWrite(defaults, "searches.delete", command);
62
59
  return services(store, account, defaults.guard).searches.delete(args.name);
63
60
  },
64
61
  }),
@@ -68,7 +65,6 @@ export const searchesTools = (messenger) => {
68
65
  input: v.object({}),
69
66
  annotations: { ...LOCAL, destructiveHint: true, idempotentHint: true },
70
67
  stored: async (store, account, _args, defaults) => {
71
- refuseAskedLocalWrite(defaults, "searches.clear", command);
72
68
  return services(store, account, defaults.guard).searches.clear();
73
69
  },
74
70
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tags.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,OAAO,EAAE,KAAK,OAAO,EAA6C,MAAM,YAAY,CAAA;AAOpF,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA0DtE,CAAA"}
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tags.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,YAAY,CAAA;AAO7D,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAuDtE,CAAA"}
@@ -2,12 +2,11 @@ import * as v from "valibot";
2
2
  import { listed } from "../../cli/paging.js";
3
3
  import { TAG_TYPES } from "../../domain/tags.js";
4
4
  import { servicesFor, storedDeps } from "../../services/index.js";
5
- import { chatOf, READ, refuseAskedLocalWrite, tool } from "../tool.js";
5
+ import { chatOf, READ, tool } from "../tool.js";
6
6
  const LOCAL = { readOnlyHint: false, idempotentHint: true, openWorldHint: false };
7
7
  const TARGET = "One target: `chat` alone, `contact` (id, @username or name), or `message` with `chat` — or `message` as a " +
8
8
  "msg: locator alone. Writes only to the local store; nothing is sent.";
9
9
  export const tagsTools = (messenger) => {
10
- const command = messenger.app.command;
11
10
  const input = v.object({
12
11
  tags: v.pipe(v.array(v.pipe(v.string(), v.maxLength(64))), v.minLength(1), v.maxLength(32), v.description("tags: 1–32 letters a–z, digits and hyphens; upper case is lowered")),
13
12
  chat: v.optional(chatOf(messenger)),
@@ -38,7 +37,6 @@ export const tagsTools = (messenger) => {
38
37
  input,
39
38
  annotations: { ...LOCAL, destructiveHint: false },
40
39
  stored: async (store, account, args, defaults) => {
41
- refuseAskedLocalWrite(defaults, "tags.add", command);
42
40
  return servicesFor(storedDeps(messenger, store, account, defaults.guard)).tags.add(targetOf(args), args.tags);
43
41
  },
44
42
  }),
@@ -48,7 +46,6 @@ export const tagsTools = (messenger) => {
48
46
  input,
49
47
  annotations: { ...LOCAL, destructiveHint: true },
50
48
  stored: async (store, account, args, defaults) => {
51
- refuseAskedLocalWrite(defaults, "tags.remove", command);
52
49
  return servicesFor(storedDeps(messenger, store, account, defaults.guard)).tags.remove(targetOf(args), args.tags);
53
50
  },
54
51
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/mcp/tools/tags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/mcp/tools/tags.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tasks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAM/D,OAAO,EAAE,KAAK,OAAO,EAAoD,MAAM,YAAY,CAAA;AAQ3F,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA4FvE,CAAA"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tasks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAM/D,OAAO,EAAE,KAAK,OAAO,EAA6B,MAAM,YAAY,CAAA;AAQpE,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAyFvE,CAAA"}
@@ -3,13 +3,12 @@ import * as v from "valibot";
3
3
  import { listed } from "../../cli/paging.js";
4
4
  import { servicesFor, storedDeps } from "../../services/index.js";
5
5
  import { momentOf } from "../../services/moment.js";
6
- import { chatOf, limit, READ, refuseAskedLocalWrite, tool } from "../tool.js";
6
+ import { chatOf, limit, READ, tool } from "../tool.js";
7
7
  const LOCAL = { readOnlyHint: false, openWorldHint: false };
8
8
  const ROW = "{ id, source, sourceKind, account, group, kind, state, reason?, origin, createdAt, dueAt?, closedAt?, closedBy?, " +
9
9
  "message: { senderName, text, timestamp } | null }";
10
10
  const type = v.picklist(TASK_KINDS);
11
11
  export const tasksTools = (messenger) => {
12
- const command = messenger.app.command;
13
12
  const tasks = (store, account, guard) => servicesFor(storedDeps(messenger, store, account, guard)).tasks;
14
13
  return {
15
14
  tasks_list: tool({
@@ -44,7 +43,6 @@ export const tasksTools = (messenger) => {
44
43
  }),
45
44
  annotations: { ...LOCAL, destructiveHint: false, idempotentHint: true },
46
45
  stored: async (store, account, args, defaults) => {
47
- refuseAskedLocalWrite(defaults, "tasks.add", command);
48
46
  const { task, created } = await tasks(store, account, defaults.guard).add(args.message, args.type, "agent");
49
47
  return { ...task, created };
50
48
  },
@@ -60,7 +58,6 @@ export const tasksTools = (messenger) => {
60
58
  }),
61
59
  annotations: { ...LOCAL, destructiveHint: false, idempotentHint: false },
62
60
  stored: async (store, account, args, defaults) => {
63
- refuseAskedLocalWrite(defaults, "tasks.close", command);
64
61
  return tasks(store, account, defaults.guard).close(args.task, {
65
62
  as: args.as,
66
63
  by: "agent",
@@ -68,7 +65,7 @@ export const tasksTools = (messenger) => {
68
65
  });
69
66
  },
70
67
  }),
71
- tasks_stats: tool({
68
+ stats_tasks_show: tool({
72
69
  title: "Task statistics",
73
70
  description: "Per chat: how many tasks are open, when the oldest open one was opened, and the median time to close. " +
74
71
  "Returns { items: [{ group, open, oldestOpenAt?, medianCloseMs? }], page, limit, hasMore }.",
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/mcp/tools/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAgB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE3F,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;AAC3D,MAAM,GAAG,GACP,mHAAmH;IACnH,mDAAmD,CAAA;AACrD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAoB,EAA2B,EAAE;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAA;IACrC,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,OAAmB,EAAE,KAAgB,EAAE,EAAE,CAC3E,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACjE,OAAO;QACL,UAAU,EAAE,IAAI,CAAC;YACf,KAAK,EAAE,YAAY;YACnB,WAAW,EACT,8GAA8G;gBAC9G,2GAA2G;gBAC3G,qBAAqB,GAAG,4BAA4B;YACtD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC1F,WAAW,EAAE,CAAC,CAAC,QAAQ,CACrB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACd,CAAC,CAAC,WAAW,CAAC,6DAA6D,CAAC,CAC7E,CACF;gBACD,KAAK;aACN,CAAC;YACF,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;YAC9C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAC/C,MAAM,CACJ,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;gBAChG,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;aACpC,CAAC,CACH;SACJ,CAAC;QAEF,SAAS,EAAE,IAAI,CAAC;YACd,KAAK,EAAE,YAAY;YACnB,WAAW,EACT,4GAA4G;gBAC5G,yGAAyG;gBACzG,sEAAsE,GAAG,gBAAgB;YAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAC5E,IAAI;aACL,CAAC;YACF,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;YACvE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC/C,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;gBACrD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC3G,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;YAC7B,CAAC;SACF,CAAC;QAEF,WAAW,EAAE,IAAI,CAAC;YAChB,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,0GAA0G;gBAC1G,yGAAyG,GAAG,GAAG;YACjH,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;gBACzF,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACrC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,CAAC;aAC5G,CAAC;YACF,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;YACxE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC/C,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;gBACvD,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC5D,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,EAAE,EAAE,OAAO;oBACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;iBAC9D,CAAC,CAAA;YACJ,CAAC;SACF,CAAC;QAEF,WAAW,EAAE,IAAI,CAAC;YAChB,KAAK,EAAE,iBAAiB;YACxB,WAAW,EACT,wGAAwG;gBACxG,4FAA4F;YAC9F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChF,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;YAC9C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAC/C,MAAM,CACJ,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CACH;SACJ,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/mcp/tools/tasks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/topics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAAqE,MAAM,YAAY,CAAA;AAE5G,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA2BvE,CAAA;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA6B3E,CAAA"}
1
+ {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/topics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAA4D,MAAM,YAAY,CAAA;AAEnG,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA2BvE,CAAA;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA2B3E,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import * as v from "valibot";
2
2
  import { capability } from "../../cli/messenger/port.js";
3
3
  import { onlineDeps, servicesFor } from "../../services/index.js";
4
- import { APPROVE, chatOf, envelope, limit, page, paging, READ, tool, WRITE } from "../tool.js";
4
+ import { chatOf, envelope, limit, page, paging, READ, tool, WRITE } from "../tool.js";
5
5
  export const topicsTools = (messenger) => ({
6
6
  topics_list: tool({
7
7
  title: "A forum group's topics",
@@ -31,7 +31,6 @@ export const topicWriteTools = (messenger) => ({
31
31
  description: "Only when the owner requested this change. A basic group requires explicit upgrade; its id changes. A partial failure reports the new chat id. Only the group owner can enable topics.",
32
32
  input: v.object({ chat: chatOf(messenger), upgrade: v.optional(v.boolean()) }),
33
33
  annotations: WRITE,
34
- _meta: APPROVE,
35
34
  permission: "groups",
36
35
  online: (adapter, args, { guard }) => servicesFor(onlineDeps(messenger, adapter, guard)).topics.enable(args.chat, { upgrade: args.upgrade === true }),
37
36
  }),
@@ -44,7 +43,6 @@ export const topicWriteTools = (messenger) => ({
44
43
  send_id: v.optional(v.pipe(v.string(), v.minLength(1))),
45
44
  }),
46
45
  annotations: WRITE,
47
- _meta: APPROVE,
48
46
  permission: "groups",
49
47
  online: (adapter, args, { guard }) => servicesFor(onlineDeps(messenger, adapter, guard)).topics.create(args.chat, args.title, {
50
48
  ...(args.send_id === undefined ? {} : { sendId: args.send_id }),
@@ -1 +1 @@
1
- {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../src/mcp/tools/topics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../src/mcp/tools/topics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAgB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEnG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC7E,WAAW,EAAE,IAAI,CAAC;QAChB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,gGAAgG;YAChG,wGAAwG;YACxG,0CAA0C;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACrG,KAAK;YACL,IAAI;SACL,CAAC;QACF,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE;YAC7D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,OAAO,EACP,QAAQ,EACR,mBAAmB,CACpB,CAAC,IAAI,EAAE;gBACN,GAAG,MAAM;gBACT,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;aAC5C,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;KACF,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IACjF,aAAa,EAAE,IAAI,CAAC;QAClB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,wLAAwL;QAC1L,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC9E,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;KAClH,CAAC;IACF,aAAa,EAAE,IAAI,CAAC;QAClB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,yLAAyL;QAC3L,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,CAAC;QACF,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;YACtF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAChE,CAAC;KACL,CAAC;CACH,CAAC,CAAA"}
@@ -8,6 +8,7 @@ export interface GatewayDeps {
8
8
  key?: (provider: string, target: ModelTarget) => string | undefined | Promise<string | undefined>;
9
9
  adapters?: Readonly<Record<string, ModelAdapter>>;
10
10
  fetch?: typeof fetch;
11
+ signal?: AbortSignal;
11
12
  }
12
13
  export declare const modelGateway: (deps: GatewayDeps) => {
13
14
  complete: (request: ModelRequest) => Promise<ModelAnswer>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnF,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACjG,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IACjD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED,eAAO,MAAM,YAAY,SAAU,WAAW;IAC5C,QAAQ,YAAkB,YAAY,KAAG,OAAO,CAAC,WAAW,CAAC;CAwC7D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnF,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACjG,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IACjD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,eAAO,MAAM,YAAY,SAAU,WAAW;IAC5C,QAAQ,YAAkB,YAAY,KAAG,OAAO,CAAC,WAAW,CAAC;CAmD7D,CAAA"}
@@ -4,6 +4,8 @@ import { openai } from "./openai.js";
4
4
  export { modelTarget } from "./settings.js";
5
5
  export const modelGateway = (deps) => ({
6
6
  complete: async (request) => {
7
+ if (deps.signal?.aborted)
8
+ throw new CliError("cancelled", "model request cancelled");
7
9
  const target = deps.resolve(request.purpose);
8
10
  if (!target || target.provider === "off")
9
11
  throw new CliError("configuration_error", `models.${request.purpose}.provider is not configured; no model was called`);
@@ -26,8 +28,20 @@ export const modelGateway = (deps) => ({
26
28
  if (!(await deps.consent(request, { ...target, baseUrl })))
27
29
  throw new CliError("permission_error", `model consent for ${request.purpose} is missing; no data was sent`);
28
30
  const apiKey = await deps.key?.(target.provider, target);
31
+ if (deps.signal?.aborted)
32
+ throw new CliError("cancelled", "model request cancelled");
33
+ const fetcher = deps.fetch ?? fetch;
34
+ const cancellable = (input, init) => {
35
+ const signal = init?.signal ?? (input instanceof Request ? input.signal : undefined);
36
+ return fetcher(input, {
37
+ ...init,
38
+ signal: deps.signal ? AbortSignal.any([deps.signal, ...(signal ? [signal] : [])]) : signal,
39
+ });
40
+ };
29
41
  try {
30
- const answer = await adapter.complete({ ...target, baseUrl }, request, options, apiKey, deps.fetch ?? fetch);
42
+ const answer = await adapter.complete({ ...target, baseUrl }, request, options, apiKey, cancellable);
43
+ if (deps.signal?.aborted)
44
+ throw new Error("cancelled");
31
45
  if (typeof answer.text !== "string" || !Number.isSafeInteger(answer.tokens) || answer.tokens < 1)
32
46
  throw new Error("incomplete");
33
47
  return { ...answer, provider: target.provider, model: target.model };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
package/dist/output.d.ts CHANGED
@@ -7,6 +7,8 @@ export interface OutputOptions {
7
7
  /** Whether a person is looking. Defaults to whether stdout is a terminal. */
8
8
  tty?: boolean;
9
9
  color?: boolean;
10
+ env?: NodeJS.ProcessEnv;
11
+ fields?: string;
10
12
  }
11
13
  /**
12
14
  * One place decides the mode, so no command can disagree with another.
@@ -16,7 +18,7 @@ export interface OutputOptions {
16
18
  * instead. In every machine mode **stdout carries JSON and nothing else** — diagnostics are on stderr in all modes, which is what makes
17
19
  * that contract hold by construction rather than by remembering.
18
20
  */
19
- export declare const resolveOutput: ({ json, jsonl, quiet, streams, tty, color }?: OutputOptions) => {
21
+ export declare const resolveOutput: ({ json, jsonl, quiet, streams, tty, color, fields, env, }?: OutputOptions) => {
20
22
  format: "json" | "jsonl" | "pretty";
21
23
  color: boolean;
22
24
  streams: Streams;
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEb,KAAK,OAAO,EAEb,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,iDAAkE,aAAa;;;;;CAQxG,CAAA"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEb,KAAK,OAAO,EAEb,MAAM,mBAAmB,CAAA;AAG1B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,+DASvB,aAAa;;;;;CAkBf,CAAA"}
package/dist/output.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createRenderer, processStreams, singleLine, } from "@leemour/cli-core";
2
+ import { fieldsOf, projectFields } from "./cli/result-fields.js";
2
3
  /**
3
4
  * One place decides the mode, so no command can disagree with another.
4
5
  *
@@ -7,12 +8,21 @@ import { createRenderer, processStreams, singleLine, } from "@leemour/cli-core";
7
8
  * instead. In every machine mode **stdout carries JSON and nothing else** — diagnostics are on stderr in all modes, which is what makes
8
9
  * that contract hold by construction rather than by remembering.
9
10
  */
10
- export const resolveOutput = ({ json, jsonl, quiet, streams = processStreams, tty, color } = {}) => {
11
+ export const resolveOutput = ({ json, jsonl, quiet, streams = processStreams, tty, color, fields, env = process.env, } = {}) => {
11
12
  const interactive = tty ?? process.stdout.isTTY === true;
12
13
  const format = jsonl ? "jsonl" : json || !interactive ? "json" : "pretty";
13
- const painted = color ?? (format === "pretty" && process.env.NO_COLOR === undefined);
14
+ const painted = format === "pretty" && (color ?? (env.NO_COLOR === undefined && env.TERM !== "dumb" && !env.CI));
14
15
  const created = createRenderer({ format, color: painted, streams });
15
- const renderer = format === "pretty" ? oneLineFields(created) : created;
16
+ const paths = fields === undefined ? undefined : fieldsOf(fields);
17
+ const renderer = format === "pretty"
18
+ ? oneLineFields(created)
19
+ : paths
20
+ ? {
21
+ ...created,
22
+ result: (value) => created.result(projectFields(value, paths)),
23
+ stream: (items) => created.stream([...items].map((item) => projectFields(item, paths))),
24
+ }
25
+ : created;
16
26
  return { format, color: painted, streams, renderer: quiet ? silence(renderer) : renderer };
17
27
  };
18
28
  /** Fields a person writes in paragraphs; every other string is a name, a title, an id or a path. */
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import * as v from "valibot";
2
+ import type { AppIdentity } from "../cli/app.js";
3
+ declare const shape: v.StrictObjectSchema<{
4
+ readonly provider: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5
+ readonly deniedChats: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6
+ }, undefined>;
7
+ export type ReplyConsent = v.InferOutput<typeof shape>;
8
+ export declare const replyConsentPathFor: (app: AppIdentity, profile: string, env?: NodeJS.ProcessEnv) => string;
9
+ export declare const readReplyConsent: (path: string) => ReplyConsent;
10
+ export declare const writeReplyConsent: (path: string, consent: ReplyConsent) => void;
11
+ export declare const replyModelIdentity: (provider: string, baseUrl: string) => string;
12
+ export declare const mayModelReply: (path: string, provider: string, chat: string) => boolean;
13
+ export {};
14
+ //# sourceMappingURL=consents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consents.d.ts","sourceRoot":"","sources":["../../src/replies/consents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,QAAA,MAAM,KAAK;;;aAGT,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,CAAC,CAAA;AACtD,eAAO,MAAM,mBAAmB,QAAS,WAAW,WAAW,MAAM,QAAO,MAAM,CAAC,UAAU,WACwB,CAAA;AAErH,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,YAO/C,CAAA;AACD,eAAO,MAAM,iBAAiB,SAAU,MAAM,WAAW,YAAY,SACgB,CAAA;AACrF,eAAO,MAAM,kBAAkB,aAAc,MAAM,WAAW,MAAM,WAAiD,CAAA;AACrH,eAAO,MAAM,aAAa,SAAU,MAAM,YAAY,MAAM,QAAQ,MAAM,YAGzE,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { CliError, resolvePaths, writeSecurely } from "@leemour/cli-core";
4
+ import * as v from "valibot";
5
+ const shape = v.strictObject({
6
+ provider: v.nullable(v.pipe(v.string(), v.minLength(1))),
7
+ deniedChats: v.array(v.pipe(v.string(), v.minLength(1))),
8
+ });
9
+ export const replyConsentPathFor = (app, profile, env = process.env) => join(resolvePaths({ appName: app.appName, prefix: app.envPrefix, env }).config, `${profile}.replies-consents.json`);
10
+ export const readReplyConsent = (path) => {
11
+ if (!existsSync(path))
12
+ return { provider: null, deniedChats: [] };
13
+ try {
14
+ return v.parse(shape, JSON.parse(readFileSync(path, "utf8")));
15
+ }
16
+ catch {
17
+ throw new CliError("configuration_error", "reply model consent is invalid; fix its file before granting consent");
18
+ }
19
+ };
20
+ export const writeReplyConsent = (path, consent) => writeSecurely(path, `${JSON.stringify(v.parse(shape, consent), null, 2)}\n`, 0o600);
21
+ export const replyModelIdentity = (provider, baseUrl) => `${provider}:${baseUrl.replace(/\/+$/, "")}`;
22
+ export const mayModelReply = (path, provider, chat) => {
23
+ const consent = readReplyConsent(path);
24
+ return consent.provider === provider && !consent.deniedChats.includes(chat);
25
+ };
26
+ //# sourceMappingURL=consents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consents.js","sourceRoot":"","sources":["../../src/replies/consents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAgB,EAAE,OAAe,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,EAAE,CAC7G,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,wBAAwB,CAAC,CAAA;AAErH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAgB,EAAE;IAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACjE,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,sEAAsE,CAAC,CAAA;IACnH,CAAC;AACH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,OAAqB,EAAE,EAAE,CACvE,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;AACrH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC7E,CAAC,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import type { Id } from "../domain/models.js";
2
2
  import type { AccountKey, MessageStore } from "../store/store.js";
3
+ import type { ReplyRender } from "./rendering.js";
3
4
  import { type Audience, type ReplyRule, type Tester } from "./rules.js";
5
+ import { type TemplateBlock } from "./template.js";
4
6
  export declare const DRY_RUN_DAYS = 7;
5
7
  export interface WouldReply {
6
8
  locator: string;
@@ -16,6 +18,8 @@ export interface WouldReply {
16
18
  asReply: boolean;
17
19
  /** It would open a task for the message. */
18
20
  task: boolean;
21
+ blocks?: TemplateBlock[];
22
+ reason?: string;
19
23
  }
20
24
  export interface RuleDryRun {
21
25
  id: string;
@@ -36,12 +40,13 @@ export interface DryRun {
36
40
  * The state starts empty and lives only here, so a run changes no file and sends nothing. A rule that
37
41
  * is off is tried as if on: trying it before turning it on is the point.
38
42
  */
39
- export declare const dryRun: (store: MessageStore, account: AccountKey, rules: ReplyRule[], { since, until, only, testers, audience, }: {
43
+ export declare const dryRun: (store: MessageStore, account: AccountKey, rules: ReplyRule[], { since, until, only, testers, audience, render, }: {
40
44
  since: number;
41
45
  until?: number;
42
46
  only?: string;
43
47
  testers: readonly Tester[];
44
48
  audience?: Audience;
49
+ render?: ReplyRender;
45
50
  }) => Promise<DryRun>;
46
51
  /**
47
52
  * What a message does not say about its sender, from the store: a contact is someone with a
@@ -1 +1 @@
1
- {"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/replies/dry-run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,EAAE,EAAW,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,EAAE,KAAK,QAAQ,EAAuC,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AAG5G,eAAO,MAAM,YAAY,IAAI,CAAA;AAG7B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,EAAE,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,EAAE,EAAE;QAAE,EAAE,EAAE,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,4GAA4G;IAC5G,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,UACV,YAAY,WACV,UAAU,SACZ,SAAS,EAAE,8CAOf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,KACnG,OAAO,CAAC,MAAM,CA4EhB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAiB,YAAY,WAAW,UAAU;oBAa/C,EAAE;gBARF,EAAE,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;;EAStD,CAAA"}
1
+ {"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/replies/dry-run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,EAAE,EAAW,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,KAAK,QAAQ,EAAuC,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5G,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAEvE,eAAO,MAAM,YAAY,IAAI,CAAA;AAG7B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,EAAE,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,EAAE,EAAE;QAAE,EAAE,EAAE,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,4GAA4G;IAC5G,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,UACV,YAAY,WACV,UAAU,SACZ,SAAS,EAAE,sDAQf;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,KACA,OAAO,CAAC,MAAM,CA2FhB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAiB,YAAY,WAAW,UAAU;oBAa/C,EAAE;gBARF,EAAE,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;;EAStD,CAAA"}
@@ -3,6 +3,7 @@ import { formatLocator } from "../domain/locator.js";
3
3
  import { decide } from "./decide.js";
4
4
  import { EVERYONE, isTester, outsideAudience } from "./rules.js";
5
5
  import { emptyState, recordReply } from "./state.js";
6
+ import { renderReplyTemplate } from "./template.js";
6
7
  export const DRY_RUN_DAYS = 7;
7
8
  const PAGE = 500;
8
9
  /**
@@ -11,7 +12,7 @@ const PAGE = 500;
11
12
  * The state starts empty and lives only here, so a run changes no file and sends nothing. A rule that
12
13
  * is off is tried as if on: trying it before turning it on is the point.
13
14
  */
14
- export const dryRun = async (store, account, rules, { since, until = Date.now(), only, testers, audience = EVERYONE, }) => {
15
+ export const dryRun = async (store, account, rules, { since, until = Date.now(), only, testers, audience = EVERYONE, render, }) => {
15
16
  const tried = only === undefined ? rules : rules.filter((rule) => rule.id === only);
16
17
  if (only !== undefined && tried.length === 0) {
17
18
  throw new CliError("not_found", `no reply rule "${only}" — the rules are: ${rules.map((one) => one.id).join(", ")}`);
@@ -55,6 +56,18 @@ export const dryRun = async (store, account, rules, { since, until = Date.now(),
55
56
  result.skipped[decision.skip] = (result.skipped[decision.skip] ?? 0) + 1;
56
57
  continue;
57
58
  }
59
+ const rendered = decision.reply === null
60
+ ? undefined
61
+ : render
62
+ ? await render(rule, message, chat, now)
63
+ : await renderReplyTemplate(rule.reply, {
64
+ senderName: message.senderName,
65
+ chat,
66
+ now,
67
+ timezone: rule.when.hours?.timezone,
68
+ data: message.text,
69
+ preview: true,
70
+ });
58
71
  result.would.push({
59
72
  locator: formatLocator({
60
73
  provider: account.provider,
@@ -66,11 +79,14 @@ export const dryRun = async (store, account, rules, { since, until = Date.now(),
66
79
  chatTitle: chat.title,
67
80
  to: { id: sender, name: message.senderName ?? people.get(sender)?.name ?? null },
68
81
  at: message.timestamp,
69
- text: decision.reply?.text ?? null,
82
+ text: rendered?.text ?? null,
70
83
  asReply: decision.reply?.asReply ?? false,
71
84
  task: decision.actions.includes("task"),
85
+ ...(rendered?.blocks.length ? { blocks: rendered.blocks } : {}),
86
+ ...(rendered?.reason ? { reason: rendered.reason } : {}),
72
87
  });
73
- state = recordReply(state, rule, message, now);
88
+ if (decision.actions.includes("task") || rendered?.text)
89
+ state = recordReply(state, rule, message, now);
74
90
  break;
75
91
  }
76
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/replies/dry-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/replies/dry-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { AppIdentity } from "../cli/app.js";
2
+ import type { Chat, Message } from "../domain/models.js";
3
+ import { type ModelSettings } from "../models/index.js";
4
+ import type { ReplyRule } from "./rules.js";
5
+ import { type TemplateResult } from "./template.js";
6
+ export type ReplyChat = Pick<Chat, "id" | "kind"> & {
7
+ title?: string | null;
8
+ };
9
+ export type ReplyRender = (rule: ReplyRule, message: Message, chat: ReplyChat, now: number) => Promise<TemplateResult>;
10
+ export declare const replyRenderer: (app: AppIdentity, profile: string, settings: () => {
11
+ models?: ModelSettings;
12
+ }, env: NodeJS.ProcessEnv, warn: (message: string) => void, options?: {
13
+ ai?: boolean;
14
+ preview?: boolean;
15
+ signal?: AbortSignal;
16
+ }) => ReplyRender;
17
+ //# sourceMappingURL=rendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../src/replies/rendering.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,KAAK,aAAa,EAA+C,MAAM,oBAAoB,CAAA;AAEpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAExE,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAA;AAC7E,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AAEtH,eAAO,MAAM,aAAa,QAEjB,WAAW,WACP,MAAM,YACL,MAAM;IAAE,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,OACrC,MAAM,CAAC,UAAU,QAChB,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,YACtB;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KACjE,WAyDF,CAAA"}