@wirecat/cli-core 0.293.0 → 0.295.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 (224) hide show
  1. package/README.md +1 -0
  2. package/dist/cli/bot/mcp.js +1 -1
  3. package/dist/cli/bot/mcp.js.map +1 -1
  4. package/dist/cli/bot/watch.js +1 -1
  5. package/dist/cli/bot/watch.js.map +1 -1
  6. package/dist/cli/index.d.ts +0 -1
  7. package/dist/cli/index.d.ts.map +1 -1
  8. package/dist/cli/index.js +0 -1
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/messenger/backfill-command.js +1 -1
  11. package/dist/cli/messenger/backfill-command.js.map +1 -1
  12. package/dist/cli/messenger/mcp-command.js +1 -1
  13. package/dist/cli/messenger/mcp-command.js.map +1 -1
  14. package/dist/cli/messenger/serve-command.js +1 -1
  15. package/dist/cli/messenger/serve-command.js.map +1 -1
  16. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  17. package/dist/cli/messenger/tasks-command.js +66 -11
  18. package/dist/cli/messenger/tasks-command.js.map +1 -1
  19. package/dist/cli/messenger/watch-command.js +1 -1
  20. package/dist/cli/messenger/watch-command.js.map +1 -1
  21. package/dist/cli/program.d.ts.map +1 -1
  22. package/dist/cli/program.js +4 -5
  23. package/dist/cli/program.js.map +1 -1
  24. package/dist/cli/store-settings.d.ts +13 -0
  25. package/dist/cli/store-settings.d.ts.map +1 -1
  26. package/dist/cli/store-settings.js +65 -2
  27. package/dist/cli/store-settings.js.map +1 -1
  28. package/dist/documents/catalog.d.ts +3 -0
  29. package/dist/documents/catalog.d.ts.map +1 -0
  30. package/dist/documents/catalog.js +18 -0
  31. package/dist/documents/catalog.js.map +1 -0
  32. package/dist/documents/index.d.ts +10 -0
  33. package/dist/documents/index.d.ts.map +1 -0
  34. package/dist/documents/index.js +8 -0
  35. package/dist/documents/index.js.map +1 -0
  36. package/dist/documents/model.d.ts +117 -0
  37. package/dist/documents/model.d.ts.map +1 -0
  38. package/dist/documents/model.js +2 -0
  39. package/dist/documents/model.js.map +1 -0
  40. package/dist/documents/scope.d.ts +3 -0
  41. package/dist/documents/scope.d.ts.map +1 -0
  42. package/dist/documents/scope.js +15 -0
  43. package/dist/documents/scope.js.map +1 -0
  44. package/dist/documents.d.ts +1 -0
  45. package/dist/documents.d.ts.map +1 -1
  46. package/dist/documents.js +1 -0
  47. package/dist/documents.js.map +1 -1
  48. package/dist/domain/mentions.d.ts +2 -0
  49. package/dist/domain/mentions.d.ts.map +1 -1
  50. package/dist/domain/mentions.js +16 -13
  51. package/dist/domain/mentions.js.map +1 -1
  52. package/dist/domain/models.d.ts +2 -0
  53. package/dist/domain/models.d.ts.map +1 -1
  54. package/dist/domain/models.js.map +1 -1
  55. package/dist/domain/task-categories.d.ts +5 -0
  56. package/dist/domain/task-categories.d.ts.map +1 -1
  57. package/dist/domain/task-categories.js +473 -24
  58. package/dist/domain/task-categories.js.map +1 -1
  59. package/dist/entities/agenda.d.ts +9 -1
  60. package/dist/entities/agenda.d.ts.map +1 -1
  61. package/dist/entities/agenda.js +4 -1
  62. package/dist/entities/agenda.js.map +1 -1
  63. package/dist/entities/index.d.ts +15 -1
  64. package/dist/entities/index.d.ts.map +1 -1
  65. package/dist/entities/task.d.ts +19 -0
  66. package/dist/entities/task.d.ts.map +1 -1
  67. package/dist/entities/task.js +11 -0
  68. package/dist/entities/task.js.map +1 -1
  69. package/dist/errors/reasons.d.ts +1 -1
  70. package/dist/errors/reasons.d.ts.map +1 -1
  71. package/dist/errors/reasons.js +12 -1
  72. package/dist/errors/reasons.js.map +1 -1
  73. package/dist/files/index.d.ts +4 -4
  74. package/dist/files/index.d.ts.map +1 -1
  75. package/dist/files/index.js +2 -63
  76. package/dist/files/index.js.map +1 -1
  77. package/dist/files/native-lease-inspection.d.ts +3 -0
  78. package/dist/files/native-lease-inspection.d.ts.map +1 -0
  79. package/dist/files/native-lease-inspection.js +64 -0
  80. package/dist/files/native-lease-inspection.js.map +1 -0
  81. package/dist/files/native-lease-owner.d.ts +11 -0
  82. package/dist/files/native-lease-owner.d.ts.map +1 -0
  83. package/dist/files/native-lease-owner.js +54 -0
  84. package/dist/files/native-lease-owner.js.map +1 -0
  85. package/dist/files/native-lease-release.d.ts +5 -0
  86. package/dist/files/native-lease-release.d.ts.map +1 -0
  87. package/dist/files/native-lease-release.js +23 -0
  88. package/dist/files/native-lease-release.js.map +1 -0
  89. package/dist/files/native-writer-lease.d.ts +8 -0
  90. package/dist/files/native-writer-lease.d.ts.map +1 -0
  91. package/dist/files/native-writer-lease.js +74 -0
  92. package/dist/files/native-writer-lease.js.map +1 -0
  93. package/dist/files/ordinary-file.d.ts +7 -0
  94. package/dist/files/ordinary-file.d.ts.map +1 -0
  95. package/dist/files/ordinary-file.js +82 -0
  96. package/dist/files/ordinary-file.js.map +1 -0
  97. package/dist/files/writer-lease.d.ts +33 -0
  98. package/dist/files/writer-lease.d.ts.map +1 -0
  99. package/dist/files/writer-lease.js +2 -0
  100. package/dist/files/writer-lease.js.map +1 -0
  101. package/dist/index.d.ts +1 -1
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/mcp/server.d.ts.map +1 -1
  106. package/dist/mcp/server.js +1 -1
  107. package/dist/mcp/server.js.map +1 -1
  108. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  109. package/dist/mcp/tools/tasks.js +37 -14
  110. package/dist/mcp/tools/tasks.js.map +1 -1
  111. package/dist/mcp/tools.d.ts +2 -0
  112. package/dist/mcp/tools.d.ts.map +1 -1
  113. package/dist/mcp/tools.js +9 -0
  114. package/dist/mcp/tools.js.map +1 -1
  115. package/dist/models/types.d.ts +1 -0
  116. package/dist/models/types.d.ts.map +1 -1
  117. package/dist/models/types.js +3 -1
  118. package/dist/models/types.js.map +1 -1
  119. package/dist/render/messages.d.ts +3 -1
  120. package/dist/render/messages.d.ts.map +1 -1
  121. package/dist/render/messages.js +18 -2
  122. package/dist/render/messages.js.map +1 -1
  123. package/dist/search/lucene/registry.d.ts.map +1 -1
  124. package/dist/search/lucene/registry.js +7 -2
  125. package/dist/search/lucene/registry.js.map +1 -1
  126. package/dist/search/task-similarity.d.ts +15 -2
  127. package/dist/search/task-similarity.d.ts.map +1 -1
  128. package/dist/search/task-similarity.js +29 -10
  129. package/dist/search/task-similarity.js.map +1 -1
  130. package/dist/services/agenda.d.ts +2 -2
  131. package/dist/services/agenda.d.ts.map +1 -1
  132. package/dist/services/agenda.js +4 -0
  133. package/dist/services/agenda.js.map +1 -1
  134. package/dist/services/documents/extraction.d.ts +13 -0
  135. package/dist/services/documents/extraction.d.ts.map +1 -0
  136. package/dist/services/documents/extraction.js +37 -0
  137. package/dist/services/documents/extraction.js.map +1 -0
  138. package/dist/services/documents/ingestion.d.ts +29 -0
  139. package/dist/services/documents/ingestion.d.ts.map +1 -0
  140. package/dist/services/documents/ingestion.js +125 -0
  141. package/dist/services/documents/ingestion.js.map +1 -0
  142. package/dist/services/documents/knowledge.d.ts +58 -0
  143. package/dist/services/documents/knowledge.d.ts.map +1 -0
  144. package/dist/services/documents/knowledge.js +143 -0
  145. package/dist/services/documents/knowledge.js.map +1 -0
  146. package/dist/services/documents/plan.d.ts +11 -0
  147. package/dist/services/documents/plan.d.ts.map +1 -0
  148. package/dist/services/documents/plan.js +200 -0
  149. package/dist/services/documents/plan.js.map +1 -0
  150. package/dist/services/documents/ports.d.ts +24 -0
  151. package/dist/services/documents/ports.d.ts.map +1 -0
  152. package/dist/services/documents/ports.js +2 -0
  153. package/dist/services/documents/ports.js.map +1 -0
  154. package/dist/services/documents/proposals.d.ts +38 -0
  155. package/dist/services/documents/proposals.d.ts.map +1 -0
  156. package/dist/services/documents/proposals.js +52 -0
  157. package/dist/services/documents/proposals.js.map +1 -0
  158. package/dist/services/documents/sync.d.ts +24 -0
  159. package/dist/services/documents/sync.d.ts.map +1 -0
  160. package/dist/services/documents/sync.js +217 -0
  161. package/dist/services/documents/sync.js.map +1 -0
  162. package/dist/services/tasks.d.ts +35 -11
  163. package/dist/services/tasks.d.ts.map +1 -1
  164. package/dist/services/tasks.js +82 -17
  165. package/dist/services/tasks.js.map +1 -1
  166. package/dist/store/index.d.ts +1 -0
  167. package/dist/store/index.d.ts.map +1 -1
  168. package/dist/store/index.js +1 -0
  169. package/dist/store/index.js.map +1 -1
  170. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  171. package/dist/store/sqlite/lucene.js +9 -3
  172. package/dist/store/sqlite/lucene.js.map +1 -1
  173. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  174. package/dist/store/sqlite/manifest.js +1 -0
  175. package/dist/store/sqlite/manifest.js.map +1 -1
  176. package/dist/store/sqlite/mention-links.d.ts +13 -0
  177. package/dist/store/sqlite/mention-links.d.ts.map +1 -0
  178. package/dist/store/sqlite/mention-links.js +32 -0
  179. package/dist/store/sqlite/mention-links.js.map +1 -0
  180. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  181. package/dist/store/sqlite/migrations.generated.js +13 -0
  182. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  183. package/dist/store/sqlite/schema.d.ts +112 -0
  184. package/dist/store/sqlite/schema.d.ts.map +1 -1
  185. package/dist/store/sqlite/schema.js +8 -0
  186. package/dist/store/sqlite/schema.js.map +1 -1
  187. package/dist/store/sqlite/task-candidates.d.ts +2 -0
  188. package/dist/store/sqlite/task-candidates.d.ts.map +1 -1
  189. package/dist/store/sqlite/task-candidates.js +76 -32
  190. package/dist/store/sqlite/task-candidates.js.map +1 -1
  191. package/dist/store/sqlite/task-close-store.d.ts +24 -0
  192. package/dist/store/sqlite/task-close-store.d.ts.map +1 -0
  193. package/dist/store/sqlite/task-close-store.js +57 -0
  194. package/dist/store/sqlite/task-close-store.js.map +1 -0
  195. package/dist/store/sqlite/task-close.d.ts +35 -0
  196. package/dist/store/sqlite/task-close.d.ts.map +1 -0
  197. package/dist/store/sqlite/task-close.js +68 -0
  198. package/dist/store/sqlite/task-close.js.map +1 -0
  199. package/dist/store/sqlite/task-pairs.d.ts +14 -4
  200. package/dist/store/sqlite/task-pairs.d.ts.map +1 -1
  201. package/dist/store/sqlite/task-pairs.js +31 -5
  202. package/dist/store/sqlite/task-pairs.js.map +1 -1
  203. package/dist/store/sqlite/task-relations.d.ts.map +1 -1
  204. package/dist/store/sqlite/task-relations.js +4 -1
  205. package/dist/store/sqlite/task-relations.js.map +1 -1
  206. package/dist/store/sqlite/tasks.d.ts +4 -1
  207. package/dist/store/sqlite/tasks.d.ts.map +1 -1
  208. package/dist/store/sqlite/tasks.js +16 -4
  209. package/dist/store/sqlite/tasks.js.map +1 -1
  210. package/dist/store/sqlite/work-tasks.d.ts +6 -1
  211. package/dist/store/sqlite/work-tasks.d.ts.map +1 -1
  212. package/dist/store/sqlite/work-tasks.js +8 -0
  213. package/dist/store/sqlite/work-tasks.js.map +1 -1
  214. package/dist/store/store.d.ts +1 -0
  215. package/dist/store/store.d.ts.map +1 -1
  216. package/dist/store/store.js +1 -0
  217. package/dist/store/store.js.map +1 -1
  218. package/package.json +3 -3
  219. package/parity.json +34 -0
  220. package/skills/follow-ups/SKILL.md +2 -1
  221. package/dist/mcp/personal.d.ts +0 -8
  222. package/dist/mcp/personal.d.ts.map +0 -1
  223. package/dist/mcp/personal.js +0 -21
  224. package/dist/mcp/personal.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import * as v from "valibot";
2
2
  import { TASK_TYPES } from "../domain/knowledge.js";
3
3
  import { id, reference, text, time } from "./fields.js";
4
+ import { closeSuggestion } from "./task.js";
4
5
  const agendaChat = v.strictObject({
5
6
  chat: reference,
6
7
  title: v.nullable(text),
@@ -33,8 +34,10 @@ export const agenda = v.strictObject({
33
34
  /** Who works on it now; only the asker's own claims are listed unless the query names claimed:. */
34
35
  claimed_by: v.nullable(text),
35
36
  claimed_until: v.nullable(time),
37
+ /** An agent's close waiting on the owner: `tasks close` confirms it, `tasks reject` refuses it. */
38
+ close_suggestion: v.nullable(closeSuggestion),
36
39
  created_at: time,
37
- reasons: v.array(v.picklist(["overdue", "due", "check", "unplanned"])),
40
+ reasons: v.array(v.picklist(["overdue", "due", "check", "unplanned", "close-suggested"])),
38
41
  })),
39
42
  /** Someone else wrote last, and the owner has not answered. */
40
43
  owed: v.array(agendaChat),
@@ -1 +1 @@
1
- {"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/entities/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpE,yEAAyE;IACzE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,eAAe,EAAE,IAAI;IACrB,8FAA8F;IAC9F,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACxC,+CAA+C;IAC/C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;CACxB,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC;IACnC,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,gGAAgG;IAChG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,YAAY,CAAC;QACb,EAAE;QACF,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1B,wCAAwC;QACxC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,mGAAmG;QACnG,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5B,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;KACvE,CAAC,CACH;IACD,+DAA+D;IAC/D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IACzB,iDAAiD;IACjD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC5B,8FAA8F;IAC9F,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;CAC9B,CAAC,CAAA"}
1
+ {"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/entities/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpE,yEAAyE;IACzE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,eAAe,EAAE,IAAI;IACrB,8FAA8F;IAC9F,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACxC,+CAA+C;IAC/C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;CACxB,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC;IACnC,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,gGAAgG;IAChG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,YAAY,CAAC;QACb,EAAE;QACF,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1B,wCAAwC;QACxC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,mGAAmG;QACnG,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5B,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,mGAAmG;QACnG,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7C,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;KAC1F,CAAC,CACH;IACD,+DAA+D;IAC/D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IACzB,iDAAiD;IACjD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC5B,8FAA8F;IAC9F,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;CAC9B,CAAC,CAAA"}
@@ -1862,6 +1862,13 @@ export declare const ENTITIES: {
1862
1862
  readonly category: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1863
1863
  readonly claimed_by: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1864
1864
  readonly claimed_until: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>, undefined>;
1865
+ readonly close_suggestion: v.OptionalSchema<v.NullableSchema<v.StrictObjectSchema<{
1866
+ readonly as: v.PicklistSchema<["done", "dismissed"], undefined>;
1867
+ readonly by: v.StringSchema<undefined>;
1868
+ readonly certainty: v.NumberSchema<undefined>;
1869
+ readonly reason: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1870
+ readonly at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
1871
+ }, undefined>, undefined>, undefined>;
1865
1872
  readonly created_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
1866
1873
  readonly updated_at: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>;
1867
1874
  }, undefined>;
@@ -2441,8 +2448,15 @@ export declare const ENTITIES: {
2441
2448
  readonly next_check_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>;
2442
2449
  readonly claimed_by: v.NullableSchema<v.StringSchema<undefined>, undefined>;
2443
2450
  readonly claimed_until: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>;
2451
+ readonly close_suggestion: v.NullableSchema<v.StrictObjectSchema<{
2452
+ readonly as: v.PicklistSchema<["done", "dismissed"], undefined>;
2453
+ readonly by: v.StringSchema<undefined>;
2454
+ readonly certainty: v.NumberSchema<undefined>;
2455
+ readonly reason: v.NullableSchema<v.StringSchema<undefined>, undefined>;
2456
+ readonly at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
2457
+ }, undefined>, undefined>;
2444
2458
  readonly created_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
2445
- readonly reasons: v.ArraySchema<v.PicklistSchema<["overdue", "due", "check", "unplanned"], undefined>, undefined>;
2459
+ readonly reasons: v.ArraySchema<v.PicklistSchema<["overdue", "due", "check", "unplanned", "close-suggested"], undefined>, undefined>;
2446
2460
  }, undefined>, undefined>;
2447
2461
  readonly owed: v.ArraySchema<v.StrictObjectSchema<{
2448
2462
  readonly chat: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFX,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAA;AAE9C,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,UAAU,EAAE,OAAO,CAM7B,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,OAAO,EAMR,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,GAAG,EACH,QAAQ,EACR,UAAU,EACV,GAAG,EACH,WAAW,EACX,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,KAAK,EACL,IAAI,EACJ,aAAa,EACb,MAAM,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,GACN,CAAA;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFX,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAA;AAE9C,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,UAAU,EAAE,OAAO,CAM7B,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -1,4 +1,13 @@
1
1
  import * as v from "valibot";
2
+ export declare const closeSuggestion: v.StrictObjectSchema<{
3
+ readonly as: v.PicklistSchema<["done", "dismissed"], undefined>;
4
+ /** The agent's name. */
5
+ readonly by: v.StringSchema<undefined>;
6
+ /** 0–1, as the agent rated it. */
7
+ readonly certainty: v.NumberSchema<undefined>;
8
+ readonly reason: v.NullableSchema<v.StringSchema<undefined>, undefined>;
9
+ readonly at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
10
+ }, undefined>;
2
11
  export declare const task: v.StrictObjectSchema<{
3
12
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
4
13
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
@@ -25,6 +34,16 @@ export declare const task: v.StrictObjectSchema<{
25
34
  /** Who works on it now, and until when; null when nobody does. */
26
35
  readonly claimed_by: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
27
36
  readonly claimed_until: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>, undefined>;
37
+ /** The close an agent would make, waiting on the owner: `tasks close` confirms it, `tasks reject` refuses it. */
38
+ readonly close_suggestion: v.OptionalSchema<v.NullableSchema<v.StrictObjectSchema<{
39
+ readonly as: v.PicklistSchema<["done", "dismissed"], undefined>;
40
+ /** The agent's name. */
41
+ readonly by: v.StringSchema<undefined>;
42
+ /** 0–1, as the agent rated it. */
43
+ readonly certainty: v.NumberSchema<undefined>;
44
+ readonly reason: v.NullableSchema<v.StringSchema<undefined>, undefined>;
45
+ readonly at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
46
+ }, undefined>, undefined>, undefined>;
28
47
  readonly created_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
29
48
  readonly updated_at: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>, undefined>;
30
49
  }, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/entities/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,IAAI;;;IAGf,yHAAyH;;;;;;;;;IASzH,qDAAqD;;IAErD,gCAAgC;;;;;;;IAOhC,4DAA4D;;IAE5D,kEAAkE;;;;;aAKlE,CAAA"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/entities/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,eAAe;;IAE1B,wBAAwB;;IAExB,kCAAkC;;;;aAIlC,CAAA;AAEF,eAAO,MAAM,IAAI;;;IAGf,yHAAyH;;;;;;;;;IASzH,qDAAqD;;IAErD,gCAAgC;;;;;;;IAOhC,4DAA4D;;IAE5D,kEAAkE;;;IAGlE,iHAAiH;;;QAlCjH,wBAAwB;;QAExB,kCAAkC;;;;;;;aAoClC,CAAA"}
@@ -2,6 +2,15 @@ import * as v from "valibot";
2
2
  import { TASK_TYPES } from "../domain/knowledge.js";
3
3
  import { TASK_ORIGINS, TASK_STATES } from "../tasks/index.js";
4
4
  import { id, reference, text, time } from "./fields.js";
5
+ export const closeSuggestion = v.strictObject({
6
+ as: v.picklist(["done", "dismissed"]),
7
+ /** The agent's name. */
8
+ by: text,
9
+ /** 0–1, as the agent rated it. */
10
+ certainty: v.number(),
11
+ reason: v.nullable(text),
12
+ at: time,
13
+ });
5
14
  export const task = v.strictObject({
6
15
  ref: reference,
7
16
  id,
@@ -28,6 +37,8 @@ export const task = v.strictObject({
28
37
  /** Who works on it now, and until when; null when nobody does. */
29
38
  claimed_by: v.optional(v.nullable(text)),
30
39
  claimed_until: v.optional(v.nullable(time)),
40
+ /** The close an agent would make, waiting on the owner: `tasks close` confirms it, `tasks reject` refuses it. */
41
+ close_suggestion: v.optional(v.nullable(closeSuggestion)),
31
42
  created_at: time,
32
43
  updated_at: v.optional(time),
33
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/entities/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC;IACjC,GAAG,EAAE,SAAS;IACd,EAAE;IACF,yHAAyH;IACzH,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzB,qDAAqD;IACrD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,gCAAgC;IAChC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,kEAAkE;IAClE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC7B,CAAC,CAAA"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/entities/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,wBAAwB;IACxB,EAAE,EAAE,IAAI;IACR,kCAAkC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACxB,EAAE,EAAE,IAAI;CACT,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC;IACjC,GAAG,EAAE,SAAS;IACd,EAAE;IACF,yHAAyH;IACzH,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzB,qDAAqD;IACrD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,gCAAgC;IAChC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,kEAAkE;IAClE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,iHAAiH;IACjH,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC7B,CAAC,CAAA"}
@@ -6,7 +6,7 @@ export declare const REASONS: ErrorReason[];
6
6
  * Detail keys an error from this package may carry, until each is registered on its own reason. Not `cause`:
7
7
  * that can hold a provider's or SQLite's raw text.
8
8
  */
9
- export declare const DETAILS: readonly ["allowed", "alternative", "arguments", "at", "available", "batch", "budget", "built", "candidates", "chat", "chat_id", "cli", "complete", "emitted_bytes", "exact", "forum", "guide", "hint", "id", "index", "kind", "limit", "limit_source", "max_bytes", "model", "name", "operation_id", "operation_ids", "partial_output", "path", "permission", "person_ids", "previous_chat_id", "profiles", "provider_error", "provider", "recovery", "reference", "remembered", "retry_at", "runtime", "saved", "scheduled_for", "script", "sent", "sent_count", "settlement_failed", "span", "sqlite", "stage", "standing", "state", "stderr", "term", "total", "upgraded", "wanted"];
9
+ export declare const DETAILS: readonly ["allowed", "alternative", "arguments", "at", "available", "batch", "budget", "built", "candidates", "chat", "chat_id", "cli", "complete", "emitted_bytes", "exact", "forum", "guide", "hint", "id", "index", "kind", "limit", "limit_source", "max_bytes", "model", "name", "operation_id", "operation_ids", "text_limit", "store_refused_in", "partial_output", "path", "permission", "person_ids", "previous_chat_id", "profiles", "provider_error", "provider", "recovery", "reference", "remembered", "retry_at", "runtime", "saved", "scheduled_for", "script", "sent", "sent_count", "settlement_failed", "span", "sqlite", "stage", "standing", "state", "stderr", "term", "total", "upgraded", "wanted"];
10
10
  /** What a CLI adds to the shared registry: its own reasons, and the detail keys its adapters raise. */
11
11
  export interface AppErrors {
12
12
  reasons?: readonly ErrorReason[];
@@ -1 +1 @@
1
- {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../../src/errors/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAgE9D,yFAAyF;AACzF,eAAO,MAAM,OAAO,EAAE,WAAW,EAG/B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,YAClB,SAAS,EACT,aAAa,EACb,WAAW,EACX,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,eAAe,EACf,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,CACA,CAAA;AAEV,uGAAuG;AACvG,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAKD,sHAAsH;AACtH,eAAO,MAAM,cAAc,YAAa,SAAS,KAAG,cAYnD,CAAA"}
1
+ {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../../src/errors/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAyE9D,yFAAyF;AACzF,eAAO,MAAM,OAAO,EAAE,WAAW,EAG/B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,YAClB,SAAS,EACT,aAAa,EACb,WAAW,EACX,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,eAAe,EACf,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,CACA,CAAA;AAEV,uGAAuG;AACvG,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAKD,sHAAsH;AACtH,eAAO,MAAM,cAAc,YAAa,SAAS,KAAG,cAYnD,CAAA"}
@@ -15,6 +15,13 @@ const QUERY = [
15
15
  ["query.topic-scope", "a topic needs its chat in the query"],
16
16
  ].map(([reason, message]) => validation(reason, message));
17
17
  const OTHERS = [
18
+ validation("document.changed", "the document changed while it was read; nothing was saved"),
19
+ ["document.not-imported", "not_found", "the document is not imported in this source account"],
20
+ ["extraction.invalid-proposals", "invalid_response", "the model's memory proposals could not be used"],
21
+ validation("extraction.text-too-long", "the text is too long for memory extraction"),
22
+ ["profile.wrong-account", "authentication_error", "the signed-in source account does not match this profile"],
23
+ validation("store.refused", "the local store refused the document text"),
24
+ validation("catalog.scope-limit", "the selected catalog exceeds its entry limit"),
18
25
  validation("evidence.row-too-large", "one evidence row is over its size limit"),
19
26
  validation("index.not-ready", "the search index is still being built"),
20
27
  validation("input.closed", "the input closed before the answer"),
@@ -46,7 +53,9 @@ const OTHERS = [
46
53
  validation("task.claimed", "someone else holds the task"),
47
54
  validation("task.closed", "the task is already closed"),
48
55
  validation("task.dependency-cycle", "the task would depend on itself"),
49
- validation("task.duplicate-candidates", "open or recent tasks may be the same job: attach to one, or add it as new"),
56
+ validation("task.duplicate-candidates", "open tasks may be the same job: attach to one, or add it as new"),
57
+ validation("task.certainty-required", "an agent closes a task with its certainty, 0 to 1"),
58
+ validation("task.no-close-suggestion", "the task has no agent's close waiting on the owner"),
50
59
  validation("task.merged", "the task was merged into another; use that one"),
51
60
  validation("task.not-merged", "the task was not merged into another"),
52
61
  ["upgrade.install-failed", "provider_error", "the installer failed; the old version stays"],
@@ -94,6 +103,8 @@ export const DETAILS = [
94
103
  "name",
95
104
  "operation_id",
96
105
  "operation_ids",
106
+ "text_limit",
107
+ "store_refused_in",
97
108
  "partial_output",
98
109
  "path",
99
110
  "permission",
@@ -1 +1 @@
1
- {"version":3,"file":"reasons.js","sourceRoot":"","sources":["../../src/errors/reasons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reasons.js","sourceRoot":"","sources":["../../src/errors/reasons.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type FileHandle } from "node:fs/promises";
2
- /** Check the opened object before reading: Windows has no O_NOFOLLOW support. */
3
- export declare const openOrdinaryFile: (path: string) => Promise<FileHandle>;
4
- export declare const syncDirectory: (path: string) => Promise<void>;
1
+ export type { NativeWriterLeaseLayout } from "./native-writer-lease.js";
2
+ export { nativeWriterLeaseStore } from "./native-writer-lease.js";
3
+ export { openOrdinaryFile, syncDirectory } from "./ordinary-file.js";
4
+ export type { WriterLease, WriterLeaseAcquisition, WriterLeaseInfo, WriterLeaseOptions, WriterLeaseStore, } from "./writer-lease.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAA;AAM/D,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,SAAgB,MAAM,KAAG,OAAO,CAAC,UAAU,CA0CvE,CAAA;AAED,eAAO,MAAM,aAAa,SAAgB,MAAM,KAAG,OAAO,CAAC,IAAI,CAU9D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACpE,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA"}
@@ -1,64 +1,3 @@
1
- import { constants } from "node:fs";
2
- import { lstat, open } from "node:fs/promises";
3
- import { CliError } from "@wirecat/cli-base";
4
- // Node 22's Windows path stat uses a 64-bit volume serial; handle stat uses its low DWORD.
5
- const deviceOf = (dev) => (process.platform === "win32" ? BigInt.asUintN(32, dev) : dev);
6
- /** Check the opened object before reading: Windows has no O_NOFOLLOW support. */
7
- export const openOrdinaryFile = async (path) => {
8
- const before = await lstat(path, { bigint: true });
9
- if (before.isSymbolicLink())
10
- throw new CliError("validation_error", "archive path must be an ordinary file without a symlink");
11
- if (!before.isFile())
12
- throw new CliError("validation_error", "archive path must be an ordinary file");
13
- const flags = process.platform === "win32"
14
- ? constants.O_RDONLY
15
- : constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0);
16
- const file = await open(path, flags);
17
- try {
18
- const opened = await file.stat({ bigint: true });
19
- const after = await lstat(path, { bigint: true });
20
- if (!opened.isFile() || !after.isFile() || before.ino !== opened.ino || before.ino !== after.ino)
21
- throw new CliError("validation_error", "archive file changed while opening");
22
- if (process.platform === "win32" && before.dev === 0n && after.dev === 0n) {
23
- // Older Windows path stats omit the device; compare two handles before any content read.
24
- const witness = await open(path, flags);
25
- try {
26
- const identified = await witness.stat({ bigint: true });
27
- const final = await lstat(path, { bigint: true });
28
- if (opened.dev === 0n ||
29
- !identified.isFile() ||
30
- !final.isFile() ||
31
- deviceOf(identified.dev) !== deviceOf(opened.dev) ||
32
- identified.ino !== opened.ino ||
33
- final.ino !== before.ino ||
34
- (final.dev !== 0n && deviceOf(final.dev) !== deviceOf(opened.dev)))
35
- throw new CliError("validation_error", "archive file changed while opening");
36
- }
37
- finally {
38
- await witness.close();
39
- }
40
- }
41
- else if (deviceOf(before.dev) !== deviceOf(opened.dev) || deviceOf(before.dev) !== deviceOf(after.dev)) {
42
- throw new CliError("validation_error", "archive file changed while opening");
43
- }
44
- return file;
45
- }
46
- catch (error) {
47
- await file.close();
48
- throw error;
49
- }
50
- };
51
- export const syncDirectory = async (path) => {
52
- if (process.platform === "win32")
53
- return;
54
- const directory = await open(path, constants.O_RDONLY | (constants.O_DIRECTORY ?? 0) | (constants.O_NOFOLLOW ?? 0));
55
- try {
56
- if (!(await directory.stat()).isDirectory())
57
- throw new CliError("validation_error", "archive publication directory must be ordinary");
58
- await directory.sync();
59
- }
60
- finally {
61
- await directory.close();
62
- }
63
- };
1
+ export { nativeWriterLeaseStore } from "./native-writer-lease.js";
2
+ export { openOrdinaryFile, syncDirectory } from "./ordinary-file.js";
64
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { WriterLeaseStore } from "./writer-lease.js";
2
+ export declare const leaseInspection: (markerDirectory: string) => Pick<WriterLeaseStore, "inspect" | "recover">;
3
+ //# sourceMappingURL=native-lease-inspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-inspection.d.ts","sourceRoot":"","sources":["../../src/files/native-lease-inspection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE1E,eAAO,MAAM,eAAe,oBAAqB,MAAM,KAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAoDrG,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { lstat, readdir, realpath, unlink } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { CliError } from "@wirecat/cli-base";
4
+ import { leaseOwnerStatus, missingLeaseFile, readLeaseOwner } from "./native-lease-owner.js";
5
+ export const leaseInspection = (markerDirectory) => {
6
+ const inspect = async (destination, options = {}) => {
7
+ options.signal?.throwIfAborted();
8
+ const root = await realpath(destination);
9
+ options.signal?.throwIfAborted();
10
+ const folder = join(root, markerDirectory);
11
+ let names;
12
+ try {
13
+ if ((await lstat(folder)).isSymbolicLink())
14
+ throw new Error("symlink");
15
+ names = await readdir(folder);
16
+ }
17
+ catch (error) {
18
+ options.signal?.throwIfAborted();
19
+ if (missingLeaseFile(error))
20
+ return [];
21
+ throw new CliError("configuration_error", "archive lock directory could not be read");
22
+ }
23
+ options.signal?.throwIfAborted();
24
+ const result = [];
25
+ for (const name of names.sort()) {
26
+ options.signal?.throwIfAborted();
27
+ const owner = await readLeaseOwner(join(folder, name), name, options.signal);
28
+ result.push({
29
+ name,
30
+ status: owner ? leaseOwnerStatus(owner) : "unrecognized",
31
+ pid: owner?.pid ?? null,
32
+ host: owner?.host ?? null,
33
+ });
34
+ }
35
+ return result;
36
+ };
37
+ const recover = async (destination, options = {}) => {
38
+ options.signal?.throwIfAborted();
39
+ const root = await realpath(destination);
40
+ const locks = await inspect(root, options);
41
+ const removed = [];
42
+ if (options.apply)
43
+ for (const lock of locks) {
44
+ options.signal?.throwIfAborted();
45
+ if (lock.status !== "stale")
46
+ continue;
47
+ const path = join(root, markerDirectory, lock.name);
48
+ const owner = await readLeaseOwner(path, lock.name, options.signal);
49
+ if (!owner || leaseOwnerStatus(owner) !== "stale")
50
+ continue;
51
+ try {
52
+ await unlink(path);
53
+ removed.push(lock.name);
54
+ }
55
+ catch (error) {
56
+ if (!missingLeaseFile(error))
57
+ throw new CliError("configuration_error", "stale archive lock could not be removed");
58
+ }
59
+ }
60
+ return { locks, removed };
61
+ };
62
+ return { inspect, recover };
63
+ };
64
+ //# sourceMappingURL=native-lease-inspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-inspection.js","sourceRoot":"","sources":["../../src/files/native-lease-inspection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { WriterLeaseInfo } from "./writer-lease.js";
2
+ export interface NativeLeaseOwner {
3
+ version: 1;
4
+ pid: number;
5
+ host: string;
6
+ nonce: string;
7
+ }
8
+ export declare const missingLeaseFile: (error: unknown) => boolean;
9
+ export declare const readLeaseOwner: (path: string, name: string, signal?: AbortSignal) => Promise<NativeLeaseOwner | null>;
10
+ export declare const leaseOwnerStatus: (owner: NativeLeaseOwner) => WriterLeaseInfo["status"];
11
+ //# sourceMappingURL=native-lease-owner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-owner.d.ts","sourceRoot":"","sources":["../../src/files/native-lease-owner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,gBAAgB,UAAW,OAAO,KAAG,OACyC,CAAA;AAE3F,eAAO,MAAM,cAAc,SACnB,MAAM,QACN,MAAM,WACH,WAAW,KACnB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAmCjC,CAAA;AAED,eAAO,MAAM,gBAAgB,UAAW,gBAAgB,KAAG,eAAe,CAAC,QAAQ,CAQlF,CAAA"}
@@ -0,0 +1,54 @@
1
+ import { hostname } from "node:os";
2
+ import { openOrdinaryFile } from "./ordinary-file.js";
3
+ export const missingLeaseFile = (error) => typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
4
+ export const readLeaseOwner = async (path, name, signal) => {
5
+ signal?.throwIfAborted();
6
+ try {
7
+ const file = await openOrdinaryFile(path);
8
+ try {
9
+ if ((await file.stat()).size > 4096)
10
+ return null;
11
+ const buffer = Buffer.alloc(4097);
12
+ let size = 0;
13
+ while (size < buffer.length) {
14
+ signal?.throwIfAborted();
15
+ const { bytesRead } = await file.read(buffer, size, buffer.length - size, size);
16
+ if (bytesRead === 0)
17
+ break;
18
+ size += bytesRead;
19
+ }
20
+ signal?.throwIfAborted();
21
+ if (size > 4096)
22
+ return null;
23
+ const owner = JSON.parse(buffer.subarray(0, size).toString("utf8"));
24
+ if (owner?.version !== 1 ||
25
+ !Number.isSafeInteger(owner.pid) ||
26
+ owner.pid <= 0 ||
27
+ typeof owner.host !== "string" ||
28
+ !owner.host.trim() ||
29
+ !/^[a-f0-9-]{36}$/.test(owner.nonce) ||
30
+ name !== `${owner.pid}-${owner.nonce}.json`)
31
+ return null;
32
+ return owner;
33
+ }
34
+ finally {
35
+ await file.close();
36
+ }
37
+ }
38
+ catch {
39
+ signal?.throwIfAborted();
40
+ return null;
41
+ }
42
+ };
43
+ export const leaseOwnerStatus = (owner) => {
44
+ if (owner.host !== hostname())
45
+ return "foreign";
46
+ try {
47
+ process.kill(owner.pid, 0);
48
+ return "active";
49
+ }
50
+ catch (error) {
51
+ return typeof error === "object" && error !== null && "code" in error && error.code === "ESRCH" ? "stale" : "active";
52
+ }
53
+ };
54
+ //# sourceMappingURL=native-lease-owner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-owner.js","sourceRoot":"","sources":["../../src/files/native-lease-owner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type NativeLeaseOwner } from "./native-lease-owner.js";
2
+ import type { WriterLease } from "./writer-lease.js";
3
+ export declare const ownedNativeLease: (path: string, name: string, owner: NativeLeaseOwner, folder: string, identity: BigIntStats) => WriterLease;
4
+ import type { BigIntStats } from "node:fs";
5
+ //# sourceMappingURL=native-lease-release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-release.d.ts","sourceRoot":"","sources":["../../src/files/native-lease-release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,yBAAyB,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,gBAAgB,SACrB,MAAM,QACN,MAAM,SACL,gBAAgB,UACf,MAAM,YACJ,WAAW,KACpB,WAkBF,CAAA;AAED,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { rmdir, unlink } from "node:fs/promises";
2
+ import { CliError } from "@wirecat/cli-base";
3
+ import { readLeaseOwner } from "./native-lease-owner.js";
4
+ import { sameOrdinaryFile } from "./ordinary-file.js";
5
+ export const ownedNativeLease = (path, name, owner, folder, identity) => {
6
+ let releasing;
7
+ const release = async () => {
8
+ if (!(await sameOrdinaryFile(path, identity)))
9
+ throw new CliError("configuration_error", "owned archive lock changed before release");
10
+ const current = await readLeaseOwner(path, name);
11
+ if (!current || current.host !== owner.host || current.pid !== owner.pid || current.nonce !== owner.nonce)
12
+ throw new CliError("configuration_error", "owned archive lock changed before release");
13
+ await unlink(path);
14
+ await rmdir(folder).catch(() => undefined);
15
+ };
16
+ return {
17
+ release: () => (releasing ??= release().catch((error) => {
18
+ releasing = undefined;
19
+ throw error;
20
+ })),
21
+ };
22
+ };
23
+ //# sourceMappingURL=native-lease-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-lease-release.js","sourceRoot":"","sources":["../../src/files/native-lease-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAyB,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,IAAY,EACZ,KAAuB,EACvB,MAAc,EACd,QAAqB,EACR,EAAE;IACf,IAAI,SAAoC,CAAA;IACxC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,2CAA2C,CAAC,CAAA;QACxF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YACvG,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,2CAA2C,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAClB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC,CAAA;IACD,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CACZ,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,SAAS,GAAG,SAAS,CAAA;YACrB,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,CAAC;KACN,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { WriterLeaseStore } from "./writer-lease.js";
2
+ export interface NativeWriterLeaseLayout {
3
+ markerDirectory: string;
4
+ legacyMarker?: string;
5
+ }
6
+ /** Native PID/nonce markers; cooperating writers must use the same root and marker layout. */
7
+ export declare const nativeWriterLeaseStore: (layout: NativeWriterLeaseLayout) => WriterLeaseStore;
8
+ //# sourceMappingURL=native-writer-lease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-writer-lease.d.ts","sourceRoot":"","sources":["../../src/files/native-writer-lease.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAKD,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,WAAY,uBAAuB,KAAG,gBA0DxE,CAAA"}