agentix-cli 0.135.0 → 0.136.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 (204) hide show
  1. package/dist/{App-4UVAI5C5.js → App-D6W6IV2L.js} +2 -2
  2. package/dist/{ChatApp-COO67WIR.js → ChatApp-X7TNCFGW.js} +2 -2
  3. package/dist/{absorb-eval-WY3YMLS4.js → absorb-eval-COPVH2M2.js} +2 -2
  4. package/dist/{agent-3R5NY7I3.js → agent-VCGAUBER.js} +2 -2
  5. package/dist/{board-dashboard-U3ZSCO62.js → board-dashboard-JZM3FQNV.js} +4 -4
  6. package/dist/{board-dashboard-U3ZSCO62.js.map → board-dashboard-JZM3FQNV.js.map} +1 -1
  7. package/dist/chunk-4ZWZ42YE.js +5 -0
  8. package/dist/{chunk-KXR6GVL7.js.map → chunk-4ZWZ42YE.js.map} +1 -1
  9. package/dist/{chunk-DYGQF3MI.js → chunk-54OORW5I.js} +2 -2
  10. package/dist/chunk-54OORW5I.js.map +1 -0
  11. package/dist/{chunk-RVEMX5MJ.js → chunk-5J5USW2O.js} +2 -2
  12. package/dist/{chunk-3XVST5XX.js → chunk-5X37CXJF.js} +2 -2
  13. package/dist/{chunk-4XMALK7X.js → chunk-66DPMVUC.js} +2 -2
  14. package/dist/{chunk-SSQMFHSM.js → chunk-AK3XOA5N.js} +2 -2
  15. package/dist/chunk-AKWBDCMU.js +4 -0
  16. package/dist/chunk-AKWBDCMU.js.map +1 -0
  17. package/dist/{chunk-6WF56ME6.js → chunk-C43E3YFT.js} +2 -2
  18. package/dist/{chunk-LU7GDHGD.js → chunk-EVTTAM7S.js} +2 -2
  19. package/dist/{chunk-K445URSN.js → chunk-FQLSV2C4.js} +2 -2
  20. package/dist/{chunk-FWDRBUMS.js → chunk-GL3H7XMI.js} +2 -2
  21. package/dist/{chunk-ZGVVYJIK.js → chunk-H2N7DOPT.js} +2 -2
  22. package/dist/{chunk-BQIWMQNU.js → chunk-H4NSB54D.js} +2 -2
  23. package/dist/{chunk-XOUO4XNA.js → chunk-HEJTE7OC.js} +2 -2
  24. package/dist/{chunk-EEBK4F6E.js → chunk-HH7OFAEM.js} +2 -2
  25. package/dist/{chunk-QDWEM4DG.js → chunk-HZZW35FY.js} +2 -2
  26. package/dist/{chunk-RRGITX5B.js → chunk-IPMXIPTS.js} +2 -2
  27. package/dist/{chunk-MI7WOGH6.js → chunk-K75LFQE3.js} +2 -2
  28. package/dist/{chunk-ZFRXFUP7.js → chunk-KZXQD6ZK.js} +2 -2
  29. package/dist/{chunk-P3I7AATX.js → chunk-M5AHI2PZ.js} +2 -2
  30. package/dist/{chunk-5NT44FKL.js → chunk-M5B4QG6J.js} +2 -2
  31. package/dist/chunk-MTX4UPNB.js +3 -0
  32. package/dist/chunk-MTX4UPNB.js.map +1 -0
  33. package/dist/chunk-MWNCS57L.js +2 -0
  34. package/dist/chunk-MWNCS57L.js.map +1 -0
  35. package/dist/chunk-OISCRNMW.js +105 -0
  36. package/dist/chunk-OISCRNMW.js.map +1 -0
  37. package/dist/{chunk-ERULJ2ZL.js → chunk-OW5EXDVY.js} +2 -2
  38. package/dist/chunk-OWNQ2FD4.js +3 -0
  39. package/dist/chunk-OWNQ2FD4.js.map +1 -0
  40. package/dist/chunk-PE5V2LI7.js +2 -0
  41. package/dist/chunk-PE5V2LI7.js.map +1 -0
  42. package/dist/chunk-PV623BLN.js +55 -0
  43. package/dist/chunk-PV623BLN.js.map +1 -0
  44. package/dist/{chunk-L5UGH4T4.js → chunk-QCUJTAAZ.js} +6 -6
  45. package/dist/{chunk-GSKJ57XY.js → chunk-QTDKNJXD.js} +216 -216
  46. package/dist/chunk-QTDKNJXD.js.map +1 -0
  47. package/dist/{chunk-RGZARSHV.js → chunk-ROLSSYXE.js} +1 -1
  48. package/dist/{chunk-RGZARSHV.js.map → chunk-ROLSSYXE.js.map} +1 -1
  49. package/dist/{chunk-YA3P77LV.js → chunk-SKSYII3K.js} +2 -2
  50. package/dist/chunk-U6EJ53DA.js +16 -0
  51. package/dist/chunk-U6EJ53DA.js.map +1 -0
  52. package/dist/{chunk-WEPON4FP.js → chunk-UNIXYV3U.js} +2 -2
  53. package/dist/{chunk-SMAI7U6H.js → chunk-VA24JS2S.js} +2 -2
  54. package/dist/{chunk-LUYN6RAC.js → chunk-WRJFKA43.js} +2 -2
  55. package/dist/{chunk-H6VWU2HN.js → chunk-ZPJVDX2U.js} +2 -2
  56. package/dist/cli.js +1 -1
  57. package/dist/{client-NFPBE6L4.js → client-SMOWSRJY.js} +2 -2
  58. package/dist/{config-GHMRBRDL.js → config-OGUDWYAA.js} +2 -2
  59. package/dist/{config-mutate-2XV27EFV.js → config-mutate-BH27TMWK.js} +2 -2
  60. package/dist/config-mutator-Q62AS2TR.js +2 -0
  61. package/dist/{contributions-KLRJ4ZXV.js → contributions-H6T65TCY.js} +2 -2
  62. package/dist/{contributions-KLRJ4ZXV.js.map → contributions-H6T65TCY.js.map} +1 -1
  63. package/dist/{doctor-UBXVMGJG.js → doctor-ZOXHT7ZQ.js} +2 -2
  64. package/dist/enrich-R2LIDLPZ.js +2 -0
  65. package/dist/event-levels-WOYYEWSZ.js +3 -0
  66. package/dist/event-levels-WOYYEWSZ.js.map +1 -0
  67. package/dist/fact-proposals-X2O4W7VN.js +2 -0
  68. package/dist/{follow-up-tool-EARVITTS.js → follow-up-tool-GUBBXNEZ.js} +2 -2
  69. package/dist/{grants-HIFE6L5N.js → grants-CEUGZBQ4.js} +2 -2
  70. package/dist/hub-IIW2GBO5.js +2 -0
  71. package/dist/index.d.ts +15 -0
  72. package/dist/index.js +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/ledger-P62U3FHT.js +2 -0
  75. package/dist/load-LQ2I2PQI.js +2 -0
  76. package/dist/model-call-J7JATTMW.js +2 -0
  77. package/dist/{program-U3HJY7E5.js → program-WROQ55F5.js} +233 -231
  78. package/dist/program-WROQ55F5.js.map +1 -0
  79. package/dist/promote-HDLU44MX.js +2 -0
  80. package/dist/push-bridge-325SXDGN.js +1 -1
  81. package/dist/query-6G27CBZQ.js +2 -0
  82. package/dist/query-runs-VXS572PQ.js +6 -0
  83. package/dist/query-runs-VXS572PQ.js.map +1 -0
  84. package/dist/{query-settings-2MGUS6AY.js → query-settings-G4M75LVQ.js} +3 -3
  85. package/dist/registry-3RE5SG22.js +2 -0
  86. package/dist/{request-planner-MFAIVLUQ.js → request-planner-T3VCZVVQ.js} +2 -2
  87. package/dist/{review-candidates-6WMDVVIZ.js → review-candidates-C3O3CENL.js} +2 -2
  88. package/dist/rotation-memo-store-Z4D5KRA6.js +2 -0
  89. package/dist/{rotation-memo-store-A4YW6FSK.js.map → rotation-memo-store-Z4D5KRA6.js.map} +1 -1
  90. package/dist/{routing-OPCLHIYW.js → routing-LD35TJM5.js} +2 -2
  91. package/dist/rules-HUUFXQD6.js +24 -0
  92. package/dist/rules-HUUFXQD6.js.map +1 -0
  93. package/dist/schedule-tool-46TVGEYU.js +2 -0
  94. package/dist/{scheduler-G3WWYETY.js → scheduler-I3QB4GI3.js} +2 -2
  95. package/dist/score-LNJ46A67.js +3 -0
  96. package/dist/score-LNJ46A67.js.map +1 -0
  97. package/dist/{seat-3HM4J7IX.js → seat-4Y3EW3KU.js} +2 -2
  98. package/dist/{select-VEFE2ESF.js → select-LZKN3FER.js} +2 -2
  99. package/dist/{set-enabled-US5BYKFZ.js → set-enabled-WSTOHJDE.js} +2 -2
  100. package/dist/{tool-HUSCHORN.js → tool-AKXO2EJU.js} +2 -2
  101. package/dist/tool-NLMIUOHR.js +4 -0
  102. package/dist/tool-NLMIUOHR.js.map +1 -0
  103. package/dist/types-YZX46RES.js +2 -0
  104. package/dist/wiki-ZS6OHOWQ.js +2 -0
  105. package/dist/wiki-enrich-NGPFWTVA.js +2 -0
  106. package/dist/wiki-enrich-NGPFWTVA.js.map +1 -0
  107. package/package.json +1 -1
  108. package/dist/chunk-AKLZ4YO2.js +0 -4
  109. package/dist/chunk-AKLZ4YO2.js.map +0 -1
  110. package/dist/chunk-DYGQF3MI.js.map +0 -1
  111. package/dist/chunk-GSKJ57XY.js.map +0 -1
  112. package/dist/chunk-JRS5QRZG.js +0 -2
  113. package/dist/chunk-JRS5QRZG.js.map +0 -1
  114. package/dist/chunk-JTDUTCUE.js +0 -3
  115. package/dist/chunk-JTDUTCUE.js.map +0 -1
  116. package/dist/chunk-KA2UIZXG.js +0 -3
  117. package/dist/chunk-KA2UIZXG.js.map +0 -1
  118. package/dist/chunk-KXR6GVL7.js +0 -5
  119. package/dist/chunk-NY7NHGVT.js +0 -105
  120. package/dist/chunk-NY7NHGVT.js.map +0 -1
  121. package/dist/chunk-WWDYDLY2.js +0 -55
  122. package/dist/chunk-WWDYDLY2.js.map +0 -1
  123. package/dist/config-mutator-6ITNU5DT.js +0 -2
  124. package/dist/enrich-ZB5I7KHN.js +0 -16
  125. package/dist/enrich-ZB5I7KHN.js.map +0 -1
  126. package/dist/event-levels-CQWHSLMT.js +0 -3
  127. package/dist/event-levels-CQWHSLMT.js.map +0 -1
  128. package/dist/fact-proposals-LZWS5KFO.js +0 -2
  129. package/dist/hub-TILTOOSS.js +0 -2
  130. package/dist/ledger-CH7R756S.js +0 -2
  131. package/dist/load-EOZUZK7U.js +0 -2
  132. package/dist/model-call-PKV5UAQ7.js +0 -2
  133. package/dist/program-U3HJY7E5.js.map +0 -1
  134. package/dist/promote-RHVZB2QZ.js +0 -2
  135. package/dist/query-OZXZVLO7.js +0 -2
  136. package/dist/query-runs-7VX3YAC3.js +0 -4
  137. package/dist/query-runs-7VX3YAC3.js.map +0 -1
  138. package/dist/registry-LZLIPP7N.js +0 -2
  139. package/dist/rotation-memo-store-A4YW6FSK.js +0 -2
  140. package/dist/schedule-tool-KPVTMYL3.js +0 -2
  141. package/dist/score-DZGPLHCL.js +0 -3
  142. package/dist/score-DZGPLHCL.js.map +0 -1
  143. package/dist/tool-XLWLXGB5.js +0 -4
  144. package/dist/tool-XLWLXGB5.js.map +0 -1
  145. package/dist/types-LJZ2YY5W.js +0 -2
  146. package/dist/wiki-GCRRINW3.js +0 -2
  147. package/dist/wiki-enrich-P5TNWACZ.js +0 -2
  148. /package/dist/{App-4UVAI5C5.js.map → App-D6W6IV2L.js.map} +0 -0
  149. /package/dist/{ChatApp-COO67WIR.js.map → ChatApp-X7TNCFGW.js.map} +0 -0
  150. /package/dist/{absorb-eval-WY3YMLS4.js.map → absorb-eval-COPVH2M2.js.map} +0 -0
  151. /package/dist/{agent-3R5NY7I3.js.map → agent-VCGAUBER.js.map} +0 -0
  152. /package/dist/{chunk-RVEMX5MJ.js.map → chunk-5J5USW2O.js.map} +0 -0
  153. /package/dist/{chunk-3XVST5XX.js.map → chunk-5X37CXJF.js.map} +0 -0
  154. /package/dist/{chunk-4XMALK7X.js.map → chunk-66DPMVUC.js.map} +0 -0
  155. /package/dist/{chunk-SSQMFHSM.js.map → chunk-AK3XOA5N.js.map} +0 -0
  156. /package/dist/{chunk-6WF56ME6.js.map → chunk-C43E3YFT.js.map} +0 -0
  157. /package/dist/{chunk-LU7GDHGD.js.map → chunk-EVTTAM7S.js.map} +0 -0
  158. /package/dist/{chunk-K445URSN.js.map → chunk-FQLSV2C4.js.map} +0 -0
  159. /package/dist/{chunk-FWDRBUMS.js.map → chunk-GL3H7XMI.js.map} +0 -0
  160. /package/dist/{chunk-ZGVVYJIK.js.map → chunk-H2N7DOPT.js.map} +0 -0
  161. /package/dist/{chunk-BQIWMQNU.js.map → chunk-H4NSB54D.js.map} +0 -0
  162. /package/dist/{chunk-XOUO4XNA.js.map → chunk-HEJTE7OC.js.map} +0 -0
  163. /package/dist/{chunk-EEBK4F6E.js.map → chunk-HH7OFAEM.js.map} +0 -0
  164. /package/dist/{chunk-QDWEM4DG.js.map → chunk-HZZW35FY.js.map} +0 -0
  165. /package/dist/{chunk-RRGITX5B.js.map → chunk-IPMXIPTS.js.map} +0 -0
  166. /package/dist/{chunk-MI7WOGH6.js.map → chunk-K75LFQE3.js.map} +0 -0
  167. /package/dist/{chunk-ZFRXFUP7.js.map → chunk-KZXQD6ZK.js.map} +0 -0
  168. /package/dist/{chunk-P3I7AATX.js.map → chunk-M5AHI2PZ.js.map} +0 -0
  169. /package/dist/{chunk-5NT44FKL.js.map → chunk-M5B4QG6J.js.map} +0 -0
  170. /package/dist/{chunk-ERULJ2ZL.js.map → chunk-OW5EXDVY.js.map} +0 -0
  171. /package/dist/{chunk-L5UGH4T4.js.map → chunk-QCUJTAAZ.js.map} +0 -0
  172. /package/dist/{chunk-YA3P77LV.js.map → chunk-SKSYII3K.js.map} +0 -0
  173. /package/dist/{chunk-WEPON4FP.js.map → chunk-UNIXYV3U.js.map} +0 -0
  174. /package/dist/{chunk-SMAI7U6H.js.map → chunk-VA24JS2S.js.map} +0 -0
  175. /package/dist/{chunk-LUYN6RAC.js.map → chunk-WRJFKA43.js.map} +0 -0
  176. /package/dist/{chunk-H6VWU2HN.js.map → chunk-ZPJVDX2U.js.map} +0 -0
  177. /package/dist/{client-NFPBE6L4.js.map → client-SMOWSRJY.js.map} +0 -0
  178. /package/dist/{config-GHMRBRDL.js.map → config-OGUDWYAA.js.map} +0 -0
  179. /package/dist/{config-mutate-2XV27EFV.js.map → config-mutate-BH27TMWK.js.map} +0 -0
  180. /package/dist/{config-mutator-6ITNU5DT.js.map → config-mutator-Q62AS2TR.js.map} +0 -0
  181. /package/dist/{doctor-UBXVMGJG.js.map → doctor-ZOXHT7ZQ.js.map} +0 -0
  182. /package/dist/{fact-proposals-LZWS5KFO.js.map → enrich-R2LIDLPZ.js.map} +0 -0
  183. /package/dist/{grants-HIFE6L5N.js.map → fact-proposals-X2O4W7VN.js.map} +0 -0
  184. /package/dist/{follow-up-tool-EARVITTS.js.map → follow-up-tool-GUBBXNEZ.js.map} +0 -0
  185. /package/dist/{hub-TILTOOSS.js.map → grants-CEUGZBQ4.js.map} +0 -0
  186. /package/dist/{ledger-CH7R756S.js.map → hub-IIW2GBO5.js.map} +0 -0
  187. /package/dist/{load-EOZUZK7U.js.map → ledger-P62U3FHT.js.map} +0 -0
  188. /package/dist/{model-call-PKV5UAQ7.js.map → load-LQ2I2PQI.js.map} +0 -0
  189. /package/dist/{promote-RHVZB2QZ.js.map → model-call-J7JATTMW.js.map} +0 -0
  190. /package/dist/{query-OZXZVLO7.js.map → promote-HDLU44MX.js.map} +0 -0
  191. /package/dist/{registry-LZLIPP7N.js.map → query-6G27CBZQ.js.map} +0 -0
  192. /package/dist/{query-settings-2MGUS6AY.js.map → query-settings-G4M75LVQ.js.map} +0 -0
  193. /package/dist/{routing-OPCLHIYW.js.map → registry-3RE5SG22.js.map} +0 -0
  194. /package/dist/{request-planner-MFAIVLUQ.js.map → request-planner-T3VCZVVQ.js.map} +0 -0
  195. /package/dist/{review-candidates-6WMDVVIZ.js.map → review-candidates-C3O3CENL.js.map} +0 -0
  196. /package/dist/{schedule-tool-KPVTMYL3.js.map → routing-LD35TJM5.js.map} +0 -0
  197. /package/dist/{scheduler-G3WWYETY.js.map → schedule-tool-46TVGEYU.js.map} +0 -0
  198. /package/dist/{seat-3HM4J7IX.js.map → scheduler-I3QB4GI3.js.map} +0 -0
  199. /package/dist/{types-LJZ2YY5W.js.map → seat-4Y3EW3KU.js.map} +0 -0
  200. /package/dist/{select-VEFE2ESF.js.map → select-LZKN3FER.js.map} +0 -0
  201. /package/dist/{set-enabled-US5BYKFZ.js.map → set-enabled-WSTOHJDE.js.map} +0 -0
  202. /package/dist/{tool-HUSCHORN.js.map → tool-AKXO2EJU.js.map} +0 -0
  203. /package/dist/{wiki-GCRRINW3.js.map → types-YZX46RES.js.map} +0 -0
  204. /package/dist/{wiki-enrich-P5TNWACZ.js.map → wiki-ZS6OHOWQ.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/wiki/event-levels.ts"],"sourcesContent":["// --- Give each event an importance level and the pages it is about (#811) ---\n//\n// Event pages are half the wiki, and until a level is set they all show\n// as `normal` beside decisions and client events. This pass reads the\n// event pages (never the raw entries) and writes, per event:\n// - `importance`: minor, normal or major;\n// - `involves` statements: the people, organisations, assets or\n// projects the event is about, so it shows in their History.\n// The ontology's `importance.rules` decide first, for free. What they\n// leave is sent to a model in batches. Each answer is checked against\n// what the call was shown before a page is written through the store,\n// which keeps the old version. Where only the owner may set `major`, a\n// suggested `major` is stored as a proposal and the event stays `normal`.\n\nimport type { WikiHub } from \"./hub\"\nimport type { WikiArticleMeta } from \"./types\"\nimport { normName, type Entity, type GraphPage, type WikiGraph } from \"./ontology/graph\"\nimport { linkedEntities } from \"./ontology/lens\"\nimport { IMPORTANCE_LEVELS, type Importance, type ImportanceRule, type Ontology, type WikiStatement } from \"./ontology/types\"\nimport { bodyOf } from \"./ontology/view-entity\"\n\nexport const EVENTS_BY = \"wiki-events\"\n/** Statement that records this job set the level; the owner's `set` removes it. */\nconst LEVEL_MARK = \"importance_set\"\n\n/** Types an event can be about. Events, due dates and topics are not. */\nconst ABOUT_SKIP = new Set([\"event\", \"due_date\", \"topic\"])\nconst MAX_CANDIDATES = 10\nconst BODY_CHARS = 320\n\nexport interface EventItem {\n event: Entity\n /** The page the result is written to: one this node owns. */\n page: GraphPage\n /** Entities the event may be about: linked to it, or named in its title. */\n candidates: Entity[]\n}\n\nexport interface EventVerdict {\n importance: Importance\n /** Set when `major` was suggested but only the owner may set it. */\n proposed?: Importance\n /** Titles of the candidates the event is about. */\n about: string[]\n why?: string\n by: \"rule\" | \"model\"\n}\n\nexport interface EventOutcome {\n event: string\n title: string\n date: string\n page?: string\n status: \"written\" | \"dry-run\" | \"no-page\" | \"no-answer\" | \"failed\"\n importance?: Importance\n proposed?: Importance\n about: string[]\n by?: \"rule\" | \"model\"\n why?: string\n dropped: string[]\n}\n\nexport interface EventsRun {\n outcomes: EventOutcome[]\n costUsd: number\n calls: number\n /** Set when the run stopped at its spending cap. */\n capped: boolean\n /** Events without a level that this run did not reach. */\n left: number\n}\n\nexport interface EventsCall {\n (prompt: string): Promise<{ text: string; costUsd: number }>\n}\n\nexport interface EventsOptions {\n /** Entity ids or titles: only events linked to or naming them. */\n about: string[]\n /** Most events per run. */\n max: number\n /** Events per model call. */\n batch: number\n maxCostUsd: number\n dryRun: boolean\n /** Redo events that already have a level set by this job. */\n force: boolean\n /** Skip the model: only the ontology's rules decide. */\n rulesOnly: boolean\n today: string\n}\n\n/** The first rule that matches the event, if any. */\nexport function ruleLevel(rules: ImportanceRule[] | undefined, title: string, tags: string[]): Importance | undefined {\n const have = new Set(tags.map(t => t.toLowerCase()))\n for (const r of rules ?? []) {\n if (!IMPORTANCE_LEVELS.includes(r.level) || (!r.title && !r.tags?.length)) continue\n if (r.title) {\n let re: RegExp\n try { re = new RegExp(r.title, \"i\") } catch { continue } // reported by checkOntology\n if (!re.test(title)) continue\n }\n if (r.tags?.length && !r.tags.some(t => have.has(t.toLowerCase()))) continue\n return r.level\n }\n return undefined\n}\n\n/** Entities whose name appears as whole words in `text`. */\nfunction namedEntities(g: WikiGraph, text: string): Entity[] {\n const hay = ` ${normName(text)} `\n const out: Entity[] = []\n for (const e of g.entities.values()) {\n if (ABOUT_SKIP.has(e.type)) continue\n const name = normName(e.title)\n if (name.length >= 4 && hay.includes(` ${name} `)) out.push(e)\n }\n return out\n}\n\n/** What the event may be about: pages it links to or that link to it,\n * then pages its title names. Linked ones first. */\nexport function eventCandidates(g: WikiGraph, ev: Entity): Entity[] {\n const linked = linkedEntities(g, ev, null).filter(x => !ABOUT_SKIP.has(x.type))\n const named = namedEntities(g, ev.title)\n return [...new Map([...named, ...linked].map(x => [x.id, x])).values()].slice(0, MAX_CANDIDATES)\n}\n\nfunction localPage(hub: Pick<WikiHub, \"syncedFrom\">, e: Entity): GraphPage | undefined {\n return e.pages.find(p => !hub.syncedFrom(p.agentId))\n}\n\n/** True when the level on the event was set by a person or another job. */\nfunction setByOthers(ev: Entity): boolean {\n return ev.pages.some(p => p.article.meta.importance && !(p.article.meta.statements ?? []).some(s => s.by === EVENTS_BY && s.property === LEVEL_MARK))\n}\n\n/** Events this run should look at, newest first. */\nexport function pickEvents(hub: Pick<WikiHub, \"syncedFrom\">, g: WikiGraph, opts: Pick<EventsOptions, \"about\" | \"force\">): { items: EventItem[]; noPage: Entity[] } {\n const scope = new Set<string>()\n for (const name of opts.about) {\n const id = g.names.get(normName(name)) ?? (g.entities.has(name) ? name : undefined)\n if (id) scope.add(id)\n }\n const items: EventItem[] = []\n const noPage: Entity[] = []\n const events = [...g.entities.values()].filter(e => e.type === \"event\").sort((a, b) => (b.date || \"\").localeCompare(a.date || \"\"))\n for (const ev of events) {\n const hasLevel = ev.pages.some(p => p.article.meta.importance)\n // A level a person set is never redone; --force redoes only this job's.\n if (hasLevel && (!opts.force || setByOthers(ev))) continue\n const candidates = eventCandidates(g, ev)\n if (opts.about.length && !candidates.some(c => scope.has(c.id))) continue\n const page = localPage(hub, ev)\n if (!page) { noPage.push(ev); continue }\n items.push({ event: ev, page, candidates })\n }\n return { items, noPage }\n}\n\nconst clip = (s: string, n: number) => (s.length > n ? `${s.slice(0, n)}…` : s)\n\nexport function buildEventsPrompt(items: EventItem[], o: Ontology): string {\n const lines: string[] = [\n \"You are sorting the event pages of a company wiki by importance, and saying what each event is about.\",\n \"\",\n \"Levels:\",\n \"- minor: routine upkeep or a small incident with no lasting effect (a disk filled and was cleaned, a job was restarted, a reminder was sent).\",\n \"- normal: something a person would want in the history of the thing it is about (a delivery, a payment, an outage that was noticed, a meeting with an outcome).\",\n \"- major: a turning point (a client won or lost, a contract signed, a legal or financial deadline missed, data lost, a decision that changes how things are done).\",\n \"When unsure between two levels, pick the lower one.\",\n \"\",\n \"## Events\",\n ]\n items.forEach((it, i) => {\n const body = clip(bodyOf(it.page.article.content).replace(/\\s+/g, \" \").trim(), BODY_CHARS)\n lines.push(`### ${i + 1}. ${it.event.title} (${it.event.date || \"no date\"})`, body || \"(no text)\")\n lines.push(it.candidates.length ? `May be about: ${it.candidates.map(c => `\"${c.title}\" (${c.type})`).join(\", \")}` : \"May be about: nothing listed\", \"\")\n })\n lines.push(\n \"## Task\",\n \"Return one JSON object and nothing else:\",\n `{\"events\": [{\"n\": 1, \"importance\": \"minor\", \"about\": [\"Exact Title\"], \"why\": \"one short reason\"}]}`,\n \"\",\n \"Rules:\",\n `- One item per event, with its number. importance is one of ${IMPORTANCE_LEVELS.join(\", \")}.`,\n \"- about: only titles from that event's own \\\"May be about\\\" list, copied exactly, and only the ones the event really concerns: the machine that failed, the client it was for, the person it happened to. Often one, at most three. Leave it empty when none fits.\",\n \"- why: under 15 words, in English.\",\n ...(o.importance.major_set_by === \"owner\" ? [\"- major is only a suggestion here: the owner confirms it.\"] : []),\n )\n return lines.join(\"\\n\")\n}\n\n/** The JSON object in the reply, fenced or not. */\nfunction parseReply(text: string): Record<string, unknown> | null {\n const fenced = text.match(/```(?:json)?\\s*\\n([\\s\\S]*?)\\n```/)\n const raw = fenced ? fenced[1] : text.slice(text.indexOf(\"{\"), text.lastIndexOf(\"}\") + 1)\n try {\n const v = JSON.parse(raw)\n return v && typeof v === \"object\" && !Array.isArray(v) ? v as Record<string, unknown> : null\n } catch {\n return null\n }\n}\n\n/** Keep `major` for the owner where the ontology says so. */\nfunction withOwnerRule(level: Importance, o: Ontology): Pick<EventVerdict, \"importance\" | \"proposed\"> {\n if (level === \"major\" && o.importance.major_set_by === \"owner\") return { importance: \"normal\", proposed: \"major\" }\n return { importance: level }\n}\n\n/** Per-event verdicts from one reply, keeping only what the call was shown. */\nexport function checkEventsReply(text: string, items: EventItem[], o: Ontology): Map<number, { verdict: EventVerdict; dropped: string[] }> {\n const out = new Map<number, { verdict: EventVerdict; dropped: string[] }>()\n const parsed = parseReply(text)\n for (const raw of Array.isArray(parsed?.events) ? parsed!.events as unknown[] : []) {\n const r = (raw ?? {}) as Record<string, unknown>\n const at = Number(r.n) - 1\n const it = items[at]\n if (!Number.isInteger(at) || !it || out.has(at)) continue\n const level = String(r.importance ?? \"\").trim().toLowerCase() as Importance\n if (!IMPORTANCE_LEVELS.includes(level)) continue\n const dropped: string[] = []\n const allowed = new Map(it.candidates.map(c => [normName(c.title), c.title]))\n const about: string[] = []\n for (const t of Array.isArray(r.about) ? r.about : []) {\n const title = allowed.get(normName(String(t ?? \"\")))\n if (title && !about.includes(title)) about.push(title)\n else if (!title && String(t ?? \"\").trim()) dropped.push(`about ${String(t).trim().slice(0, 80)}: not in the list shown`)\n }\n if (about.length > 3) dropped.push(`about: kept the first 3 of ${about.length}`)\n const why = typeof r.why === \"string\" ? clip(r.why.trim(), 160) : undefined\n out.set(at, { verdict: { ...withOwnerRule(level, o), about: about.slice(0, 3), why: why || undefined, by: \"model\" }, dropped })\n }\n return out\n}\n\n/** Page meta with the level and this job's `involves` facts replaced. */\nexport function eventMeta(meta: WikiArticleMeta, v: EventVerdict, today: string): WikiArticleMeta {\n const kept = (meta.statements ?? []).filter(s => s.by !== EVENTS_BY)\n const taken = new Set(kept.filter(s => s.property === \"involves\").map(s => normName(s.value)))\n const added: WikiStatement[] = v.about\n .filter(t => !taken.has(normName(t)))\n .map(t => ({ property: \"involves\", value: t, checked_at: today, by: EVENTS_BY }))\n // The marker records that this job set the level, so --force may redo it.\n added.push({ property: LEVEL_MARK, value: v.proposed ?? v.importance, checked_at: today, by: EVENTS_BY, ...(v.why ? { note: v.why } : {}) })\n return { ...meta, importance: v.importance, importanceProposed: v.proposed, statements: [...kept, ...added], lastUpdated: today }\n}\n\nexport async function runEvents(hub: WikiHub, g: WikiGraph, call: EventsCall, opts: EventsOptions): Promise<EventsRun> {\n const o = g.ontology\n const { items: all, noPage } = pickEvents(hub, g, opts)\n const items = all.slice(0, opts.max)\n const run: EventsRun = { outcomes: [], costUsd: 0, calls: 0, capped: false, left: all.length - items.length }\n for (const ev of opts.about.length ? noPage : []) {\n run.outcomes.push({ event: ev.id, title: ev.title, date: ev.date, status: \"no-page\", about: [], dropped: [\"its pages are copied from another node\"] })\n }\n\n const write = (it: EventItem, v: EventVerdict, dropped: string[]): void => {\n const where = `${it.page.agentId}/${it.page.article.path}`\n const base: EventOutcome = { event: it.event.id, title: it.event.title, date: it.event.date, page: where, status: \"dry-run\", importance: v.importance, proposed: v.proposed, about: v.about, by: v.by, why: v.why, dropped }\n if (opts.dryRun) { run.outcomes.push(base); return }\n const store = hub.getAgentWiki(it.page.agentId)\n const ok = store.writeArticle(it.page.article.path, eventMeta(it.page.article.meta, v, opts.today), it.page.article.content, it.page.article.meta.owner || it.page.agentId)\n run.outcomes.push({ ...base, status: ok ? \"written\" : \"failed\", dropped: ok ? dropped : [...dropped, \"write refused\"] })\n }\n\n // Rules first: free, and the same answer every run.\n const forModel: EventItem[] = []\n for (const it of items) {\n const level = ruleLevel(o.importance.rules, it.event.title, it.page.article.meta.tags ?? [])\n if (!level) { forModel.push(it); continue }\n // A rule gives the level only; what the title names is what it is about.\n const named = new Set(namedEntities(g, it.event.title).map(e => e.id))\n const about = it.candidates.filter(c => named.has(c.id)).slice(0, 3).map(c => c.title)\n write(it, { ...withOwnerRule(level, o), about, why: \"matched an importance rule\", by: \"rule\" }, [])\n }\n if (opts.rulesOnly) {\n run.left += forModel.length\n return run\n }\n\n for (let i = 0; i < forModel.length; i += opts.batch) {\n const batch = forModel.slice(i, i + opts.batch)\n if (run.costUsd >= opts.maxCostUsd) {\n run.capped = true\n run.left += forModel.length - i\n break\n }\n run.calls++\n let verdicts: ReturnType<typeof checkEventsReply>\n try {\n const reply = await call(buildEventsPrompt(batch, o))\n run.costUsd += reply.costUsd\n verdicts = checkEventsReply(reply.text, batch, o)\n } catch (err) {\n for (const it of batch) {\n run.outcomes.push({ event: it.event.id, title: it.event.title, date: it.event.date, page: `${it.page.agentId}/${it.page.article.path}`, status: \"failed\", about: [], dropped: [(err as Error).message.slice(0, 200)] })\n }\n continue\n }\n batch.forEach((it, at) => {\n const v = verdicts.get(at)\n if (v) write(it, v.verdict, v.dropped)\n else run.outcomes.push({ event: it.event.id, title: it.event.title, date: it.event.date, page: `${it.page.agentId}/${it.page.article.path}`, status: \"no-answer\", about: [], dropped: [\"the reply had no usable item for this event\"] })\n })\n }\n if (!opts.dryRun) {\n for (const agentId of new Set(run.outcomes.filter(x => x.status === \"written\").map(x => x.page!.split(\"/\")[0]))) {\n hub.getAgentWiki(agentId).rebuildIndex()\n }\n }\n return run\n}\n\n/** The owner's own word: set a level on an event and clear any proposal. */\nexport function setEventLevel(hub: WikiHub, g: WikiGraph, name: string, level: Importance, today: string): { ok: boolean; title?: string; page?: string; reason?: string } {\n const id = g.names.get(normName(name)) ?? (g.entities.has(name) ? name : undefined)\n const ev = id ? g.entities.get(id) : undefined\n if (!ev) return { ok: false, reason: `no page is titled \"${name}\"` }\n if (ev.type !== \"event\") return { ok: false, title: ev.title, reason: `\"${ev.title}\" is a ${ev.type}, not an event` }\n const page = localPage(hub, ev)\n if (!page) return { ok: false, title: ev.title, reason: \"its pages are copied from another node; set the level there\" }\n // Dropping this job's marker makes the level the owner's: no run redoes it.\n const statements = (page.article.meta.statements ?? []).filter(s => !(s.by === EVENTS_BY && s.property === LEVEL_MARK))\n const meta: WikiArticleMeta = { ...page.article.meta, importance: level, importanceProposed: undefined, statements: statements.length ? statements : undefined, lastUpdated: today }\n const store = hub.getAgentWiki(page.agentId)\n const ok = store.writeArticle(page.article.path, meta, page.article.content, page.article.meta.owner || page.agentId)\n if (ok) store.rebuildIndex()\n return { ok, title: ev.title, page: `${page.agentId}/${page.article.path}`, reason: ok ? undefined : \"write refused\" }\n}\n\nexport interface AboutSummary {\n title: string\n type: string\n /** Events in its History before this run, and how they split after. */\n before: number\n after: Record<Importance, number>\n}\n\n/** For a pilot: what each named page's History looks like after the run. */\nexport function summariseAbout(g: WikiGraph, run: EventsRun, about: string[]): AboutSummary[] {\n const out: AboutSummary[] = []\n const byEvent = new Map(run.outcomes.filter(x => x.importance).map(x => [x.event, x]))\n for (const name of about) {\n const id = g.names.get(normName(name)) ?? (g.entities.has(name) ? name : undefined)\n const e = id ? g.entities.get(id) : undefined\n if (!e) continue\n const linkedBefore = new Set(linkedEntities(g, e, new Set([\"event\"])).map(x => x.id))\n const after: Record<Importance, number> = { minor: 0, normal: 0, major: 0 }\n const seen = new Set<string>()\n for (const ev of g.entities.values()) {\n if (ev.type !== \"event\") continue\n const o = byEvent.get(ev.id)\n const linkedAfter = linkedBefore.has(ev.id) || !!o?.about.some(t => normName(t) === normName(e.title))\n if (!linkedAfter || seen.has(ev.id)) continue\n seen.add(ev.id)\n after[o?.importance ?? ev.importance]++\n }\n out.push({ title: e.title, type: e.type, before: linkedBefore.size, after })\n }\n return out\n}\n"],"mappings":"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","names":["EVENTS_BY","LEVEL_MARK","ABOUT_SKIP","MAX_CANDIDATES","BODY_CHARS","ruleLevel","rules","title","tags","have","t","IMPORTANCE_LEVELS","re","namedEntities","g","text","hay","normName","out","e","name","eventCandidates","ev","linked","linkedEntities","x","named","localPage","hub","p","setByOthers","s","pickEvents","opts","scope","id","items","noPage","events","a","b","candidates","c","page","clip","n","buildEventsPrompt","o","lines","it","i","body","bodyOf","parseReply","fenced","raw","v","withOwnerRule","level","checkEventsReply","parsed","r","at","dropped","allowed","about","why","eventMeta","meta","today","kept","taken","added","runEvents","call","all","run","write","where","base","ok","forModel","batch","verdicts","reply","err","agentId","setEventLevel","statements","store","summariseAbout","byEvent","linkedBefore","after","seen"]}
@@ -1,2 +0,0 @@
1
- import{a,b,c,d,e,f}from"./chunk-KXR6GVL7.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-QIJLFPWE.js";export{d as approveFactProposal,c as listFactProposals,a as parseClaim,b as proposeFacts,e as rejectFactProposal,f as routeMemo};
2
- //# sourceMappingURL=fact-proposals-LZWS5KFO.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-6WF56ME6.js";import"./chunk-NY7NHGVT.js";import"./chunk-KEXBEUSU.js";import"./chunk-RGZARSHV.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-4XMALK7X.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-MCI3DIWW.js";import"./chunk-QOYAX2FT.js";import"./chunk-2PJKGZWP.js";import"./chunk-7I7IEX4S.js";import"./chunk-DYGQF3MI.js";import"./chunk-BRK6M6LA.js";import"./chunk-UIBUZ2N3.js";import"./chunk-2QNT5JDS.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as WikiHub};
2
- //# sourceMappingURL=hub-TILTOOSS.js.map
@@ -1,2 +0,0 @@
1
- import{b,c,d,e,f}from"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import{a}from"./chunk-ILEC3IAV.js";import"./chunk-QIJLFPWE.js";export{c as FactLedger,a as assertPerson,d as factContradictions,b as factId,e as isStaleFact,f as matchFact};
2
- //# sourceMappingURL=ledger-CH7R756S.js.map
@@ -1,2 +0,0 @@
1
- import{a,b,c,d,e,f,g}from"./chunk-JTDUTCUE.js";import"./chunk-RGZARSHV.js";import"./chunk-QIJLFPWE.js";export{a as ONTOLOGY_FILE,e as checkOntology,b as loadOntology,d as mergeOntology,f as panelFrom,g as panelSource,c as writeDefaultOntology};
2
- //# sourceMappingURL=load-EOZUZK7U.js.map
@@ -1,2 +0,0 @@
1
- import{a,b,c}from"./chunk-JRS5QRZG.js";import"./chunk-6TURWSMN.js";import"./chunk-QIJLFPWE.js";export{a as claudeModelCall,c as firstJsonObject,b as meteredModelCall};
2
- //# sourceMappingURL=model-call-PKV5UAQ7.js.map