agentix-cli 0.138.0 → 0.139.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 (134) hide show
  1. package/dist/{App-F42CYCKX.js → App-VINKWTYN.js} +2 -2
  2. package/dist/{ChatApp-RPMQBKHV.js → ChatApp-RGHQCRBX.js} +2 -2
  3. package/dist/{absorb-eval-HRPEHJSO.js → absorb-eval-AERHBOQA.js} +2 -2
  4. package/dist/{agent-L5CJF3GH.js → agent-PRHZGF6J.js} +2 -2
  5. package/dist/{board-dashboard-33NGOGWC.js → board-dashboard-GBEBQUFJ.js} +119 -119
  6. package/dist/board-dashboard-GBEBQUFJ.js.map +1 -0
  7. package/dist/{chunk-7V73QTQ7.js → chunk-2BEZU5OF.js} +2 -2
  8. package/dist/{chunk-UPNKRCFX.js → chunk-34XYHSL6.js} +198 -198
  9. package/dist/chunk-34XYHSL6.js.map +1 -0
  10. package/dist/{chunk-VVX4RXMV.js → chunk-7KAQHNLT.js} +2 -2
  11. package/dist/{chunk-6AUWEL6V.js → chunk-ANDEMOYE.js} +2 -2
  12. package/dist/{chunk-TFH6S7IT.js → chunk-AXHP6TMT.js} +2 -2
  13. package/dist/{chunk-375MXG3H.js → chunk-B65EC44C.js} +2 -2
  14. package/dist/{chunk-AGQYUOZY.js → chunk-EJIY45FZ.js} +2 -2
  15. package/dist/{chunk-AP4DADXG.js → chunk-HGU5B7IY.js} +2 -2
  16. package/dist/{chunk-SK47VJMQ.js → chunk-HXLB2XCT.js} +3 -3
  17. package/dist/{chunk-XBARUCG5.js → chunk-IMUTN7PT.js} +2 -2
  18. package/dist/{chunk-LA6P3TUK.js → chunk-J7U3BASX.js} +2 -2
  19. package/dist/{chunk-CZZJEFUM.js → chunk-JAML6222.js} +2 -2
  20. package/dist/{chunk-TVW5ZKJY.js → chunk-JBYLG3CQ.js} +2 -2
  21. package/dist/{chunk-QGSUENRK.js → chunk-JJZVFDG6.js} +2 -2
  22. package/dist/{chunk-DBJUGKX2.js → chunk-JS2LEURJ.js} +2 -2
  23. package/dist/{chunk-7YZL5MUL.js → chunk-KO6BU3B3.js} +2 -2
  24. package/dist/{chunk-MTDVAO5C.js → chunk-LMZCB7TT.js} +2 -2
  25. package/dist/{chunk-HJCFLGVT.js → chunk-MGM33GOW.js} +6 -6
  26. package/dist/{chunk-HJCFLGVT.js.map → chunk-MGM33GOW.js.map} +1 -1
  27. package/dist/{chunk-GAIXI26T.js → chunk-MUC7MMTT.js} +2 -2
  28. package/dist/{chunk-JIJDBCV7.js → chunk-NMYPZR4W.js} +2 -2
  29. package/dist/{chunk-EGPCEQJN.js → chunk-NQGLKWDO.js} +2 -2
  30. package/dist/{chunk-Y7IHOQC7.js → chunk-O6WW7ATO.js} +2 -2
  31. package/dist/chunk-Q4XP5TBI.js +11 -0
  32. package/dist/chunk-Q4XP5TBI.js.map +1 -0
  33. package/dist/{chunk-UPQTTOVQ.js → chunk-QN2OTBVC.js} +2 -2
  34. package/dist/{chunk-4HHHVWDB.js → chunk-RIYQNADV.js} +17 -17
  35. package/dist/chunk-RIYQNADV.js.map +1 -0
  36. package/dist/{chunk-XVYIPVSC.js → chunk-STIZFWDJ.js} +2 -2
  37. package/dist/{chunk-HQH44RGL.js → chunk-XQVL2RYG.js} +2 -2
  38. package/dist/{chunk-7DYVNET6.js → chunk-YMX3QCV7.js} +1 -1
  39. package/dist/chunk-YMX3QCV7.js.map +1 -0
  40. package/dist/{chunk-6VP2KMUM.js → chunk-Z5IHT6RK.js} +2 -2
  41. package/dist/cli.js +1 -1
  42. package/dist/{client-EB55Y6EJ.js → client-2KZWK6YT.js} +2 -2
  43. package/dist/{config-7DRUA5R3.js → config-THFRJMZD.js} +2 -2
  44. package/dist/{config-mutate-GGA7VXXH.js → config-mutate-HXWAXWHC.js} +2 -2
  45. package/dist/config-mutator-JZOAWRBH.js +2 -0
  46. package/dist/{contributions-TZ26MTML.js → contributions-OSIKL25B.js} +2 -2
  47. package/dist/{doctor-GTRZ7GWF.js → doctor-TOSA3RWP.js} +2 -2
  48. package/dist/{follow-up-tool-PNB7KMCY.js → follow-up-tool-QRECR3AH.js} +2 -2
  49. package/dist/{hub-QWJR4E6V.js → hub-XGWCWKMT.js} +2 -2
  50. package/dist/index.d.ts +50 -0
  51. package/dist/index.js +1 -1
  52. package/dist/{program-KMUCHLDU.js → program-7VHY5RVZ.js} +188 -188
  53. package/dist/program-7VHY5RVZ.js.map +1 -0
  54. package/dist/{promote-HAPXWGYH.js → promote-YVWRKIAU.js} +2 -2
  55. package/dist/{push-bridge-276ZLSUT.js → push-bridge-P7HH25VN.js} +2 -2
  56. package/dist/{query-ICLOVLZ3.js → query-X4AFOKZ7.js} +2 -2
  57. package/dist/{query-settings-7AXUOHDL.js → query-settings-HV2RFQK7.js} +2 -2
  58. package/dist/{registry-IUNSHCOL.js → registry-B276QJ75.js} +2 -2
  59. package/dist/{request-planner-TDCLF2CH.js → request-planner-MY6VKTVC.js} +2 -2
  60. package/dist/{review-candidates-QCBXLWG6.js → review-candidates-BRTBB5XV.js} +2 -2
  61. package/dist/{routing-YUP3HHL5.js → routing-CSVLOGNS.js} +2 -2
  62. package/dist/schedule-tool-GUKYTQTY.js +2 -0
  63. package/dist/{scheduler-7NK2FH5V.js → scheduler-OUAVAU4O.js} +2 -2
  64. package/dist/{seat-PTPPQOTP.js → seat-H2QR3CRX.js} +2 -2
  65. package/dist/{select-2XSTWMBR.js → select-EEL5AZ2I.js} +2 -2
  66. package/dist/{set-enabled-SS5Q3OX7.js → set-enabled-IBGEH6U6.js} +2 -2
  67. package/dist/{tool-RK4LDFFH.js → tool-5WCC7SKQ.js} +2 -2
  68. package/dist/{tool-QCMSXEDB.js → tool-UPXUWIMM.js} +2 -2
  69. package/dist/{wiki-Q2E44YAE.js → wiki-ISKHNG3P.js} +2 -2
  70. package/dist/wiki-enrich-7SBCPK2E.js +2 -0
  71. package/package.json +1 -1
  72. package/dist/board-dashboard-33NGOGWC.js.map +0 -1
  73. package/dist/chunk-4HHHVWDB.js.map +0 -1
  74. package/dist/chunk-7DYVNET6.js.map +0 -1
  75. package/dist/chunk-LLNPKE7H.js +0 -11
  76. package/dist/chunk-LLNPKE7H.js.map +0 -1
  77. package/dist/chunk-UPNKRCFX.js.map +0 -1
  78. package/dist/config-mutator-POFVILXH.js +0 -2
  79. package/dist/program-KMUCHLDU.js.map +0 -1
  80. package/dist/schedule-tool-3C22NBMN.js +0 -2
  81. package/dist/wiki-enrich-6ULCDOTX.js +0 -2
  82. /package/dist/{App-F42CYCKX.js.map → App-VINKWTYN.js.map} +0 -0
  83. /package/dist/{ChatApp-RPMQBKHV.js.map → ChatApp-RGHQCRBX.js.map} +0 -0
  84. /package/dist/{absorb-eval-HRPEHJSO.js.map → absorb-eval-AERHBOQA.js.map} +0 -0
  85. /package/dist/{agent-L5CJF3GH.js.map → agent-PRHZGF6J.js.map} +0 -0
  86. /package/dist/{chunk-7V73QTQ7.js.map → chunk-2BEZU5OF.js.map} +0 -0
  87. /package/dist/{chunk-VVX4RXMV.js.map → chunk-7KAQHNLT.js.map} +0 -0
  88. /package/dist/{chunk-6AUWEL6V.js.map → chunk-ANDEMOYE.js.map} +0 -0
  89. /package/dist/{chunk-TFH6S7IT.js.map → chunk-AXHP6TMT.js.map} +0 -0
  90. /package/dist/{chunk-375MXG3H.js.map → chunk-B65EC44C.js.map} +0 -0
  91. /package/dist/{chunk-AGQYUOZY.js.map → chunk-EJIY45FZ.js.map} +0 -0
  92. /package/dist/{chunk-AP4DADXG.js.map → chunk-HGU5B7IY.js.map} +0 -0
  93. /package/dist/{chunk-SK47VJMQ.js.map → chunk-HXLB2XCT.js.map} +0 -0
  94. /package/dist/{chunk-XBARUCG5.js.map → chunk-IMUTN7PT.js.map} +0 -0
  95. /package/dist/{chunk-LA6P3TUK.js.map → chunk-J7U3BASX.js.map} +0 -0
  96. /package/dist/{chunk-CZZJEFUM.js.map → chunk-JAML6222.js.map} +0 -0
  97. /package/dist/{chunk-TVW5ZKJY.js.map → chunk-JBYLG3CQ.js.map} +0 -0
  98. /package/dist/{chunk-QGSUENRK.js.map → chunk-JJZVFDG6.js.map} +0 -0
  99. /package/dist/{chunk-DBJUGKX2.js.map → chunk-JS2LEURJ.js.map} +0 -0
  100. /package/dist/{chunk-7YZL5MUL.js.map → chunk-KO6BU3B3.js.map} +0 -0
  101. /package/dist/{chunk-MTDVAO5C.js.map → chunk-LMZCB7TT.js.map} +0 -0
  102. /package/dist/{chunk-GAIXI26T.js.map → chunk-MUC7MMTT.js.map} +0 -0
  103. /package/dist/{chunk-JIJDBCV7.js.map → chunk-NMYPZR4W.js.map} +0 -0
  104. /package/dist/{chunk-EGPCEQJN.js.map → chunk-NQGLKWDO.js.map} +0 -0
  105. /package/dist/{chunk-Y7IHOQC7.js.map → chunk-O6WW7ATO.js.map} +0 -0
  106. /package/dist/{chunk-UPQTTOVQ.js.map → chunk-QN2OTBVC.js.map} +0 -0
  107. /package/dist/{chunk-XVYIPVSC.js.map → chunk-STIZFWDJ.js.map} +0 -0
  108. /package/dist/{chunk-HQH44RGL.js.map → chunk-XQVL2RYG.js.map} +0 -0
  109. /package/dist/{chunk-6VP2KMUM.js.map → chunk-Z5IHT6RK.js.map} +0 -0
  110. /package/dist/{client-EB55Y6EJ.js.map → client-2KZWK6YT.js.map} +0 -0
  111. /package/dist/{config-7DRUA5R3.js.map → config-THFRJMZD.js.map} +0 -0
  112. /package/dist/{config-mutate-GGA7VXXH.js.map → config-mutate-HXWAXWHC.js.map} +0 -0
  113. /package/dist/{config-mutator-POFVILXH.js.map → config-mutator-JZOAWRBH.js.map} +0 -0
  114. /package/dist/{contributions-TZ26MTML.js.map → contributions-OSIKL25B.js.map} +0 -0
  115. /package/dist/{doctor-GTRZ7GWF.js.map → doctor-TOSA3RWP.js.map} +0 -0
  116. /package/dist/{follow-up-tool-PNB7KMCY.js.map → follow-up-tool-QRECR3AH.js.map} +0 -0
  117. /package/dist/{hub-QWJR4E6V.js.map → hub-XGWCWKMT.js.map} +0 -0
  118. /package/dist/{promote-HAPXWGYH.js.map → promote-YVWRKIAU.js.map} +0 -0
  119. /package/dist/{push-bridge-276ZLSUT.js.map → push-bridge-P7HH25VN.js.map} +0 -0
  120. /package/dist/{query-ICLOVLZ3.js.map → query-X4AFOKZ7.js.map} +0 -0
  121. /package/dist/{query-settings-7AXUOHDL.js.map → query-settings-HV2RFQK7.js.map} +0 -0
  122. /package/dist/{registry-IUNSHCOL.js.map → registry-B276QJ75.js.map} +0 -0
  123. /package/dist/{request-planner-TDCLF2CH.js.map → request-planner-MY6VKTVC.js.map} +0 -0
  124. /package/dist/{review-candidates-QCBXLWG6.js.map → review-candidates-BRTBB5XV.js.map} +0 -0
  125. /package/dist/{routing-YUP3HHL5.js.map → routing-CSVLOGNS.js.map} +0 -0
  126. /package/dist/{schedule-tool-3C22NBMN.js.map → schedule-tool-GUKYTQTY.js.map} +0 -0
  127. /package/dist/{scheduler-7NK2FH5V.js.map → scheduler-OUAVAU4O.js.map} +0 -0
  128. /package/dist/{seat-PTPPQOTP.js.map → seat-H2QR3CRX.js.map} +0 -0
  129. /package/dist/{select-2XSTWMBR.js.map → select-EEL5AZ2I.js.map} +0 -0
  130. /package/dist/{set-enabled-SS5Q3OX7.js.map → set-enabled-IBGEH6U6.js.map} +0 -0
  131. /package/dist/{tool-RK4LDFFH.js.map → tool-5WCC7SKQ.js.map} +0 -0
  132. /package/dist/{tool-QCMSXEDB.js.map → tool-UPXUWIMM.js.map} +0 -0
  133. /package/dist/{wiki-Q2E44YAE.js.map → wiki-ISKHNG3P.js.map} +0 -0
  134. /package/dist/{wiki-enrich-6ULCDOTX.js.map → wiki-enrich-7SBCPK2E.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{b as St,c as At}from"./chunk-QSKG754X.js";import{c as bt}from"./chunk-SZDACK6O.js";import{b as xe}from"./chunk-AFRHKA7B.js";import{b as ht,e as wt,f as yt,i as It,k as vt,l as $t,q as Rt}from"./chunk-DBJUGKX2.js";import{b as ft,d as gt,e as mt}from"./chunk-PE5V2LI7.js";import{e as ut,g as ct,h as pt,i as Re}from"./chunk-GQ76J72O.js";import{a as kt}from"./chunk-GV7S5BAX.js";import{y as at,z as Bn}from"./chunk-MTDVAO5C.js";import{b as st,f as Kn}from"./chunk-72SZI2UW.js";import{a as dt,b as $e,c as Se,d as lt,e as Ae}from"./chunk-QD6IICK7.js";import{c as ot,d as it}from"./chunk-QOYAX2FT.js";import{f as ve,n as Hn}from"./chunk-UIBUZ2N3.js";import{existsSync as qn,mkdirSync as xt,readFileSync as zn,writeFileSync as Jn,renameSync as Yn}from"fs";import{resolve as Pt,dirname as Gn}from"path";var Tt=class{filePath;log;constructor(e={}){let t=e.baseDir??Pt(process.cwd(),".agentx");this.filePath=Pt(t,"handover.json"),this.log=e.log??console.error.bind(console,"[handover]"),xt(t,{recursive:!0})}key(e,t,r){return`${e}::${t}::${r||"-"}`}load(){if(!qn(this.filePath))return{version:1,overrides:{}};try{let e=zn(this.filePath,"utf-8"),t=JSON.parse(e);return!t||typeof t!="object"?{version:1,overrides:{}}:(t.overrides||(t.overrides={}),t)}catch(e){return this.log(`load failed, starting empty: ${e?.message||e}`),{version:1,overrides:{}}}}save(e){xt(Gn(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp-${process.pid}`;Jn(t,JSON.stringify(e,null,2)),Yn(t,this.filePath)}get(e,t,r){let s=this.load().overrides[this.key(e,t,r)];if(s&&!(s.expiresAt&&Date.parse(s.expiresAt)<Date.now()))return s}set(e){if(!e.channel||!e.chatId||!e.toAgent)throw new Error("channel, chatId and toAgent are required");let t=this.load(),r={...e,createdAt:e.createdAt??new Date().toISOString()};return t.overrides[this.key(r.channel,r.chatId,r.accountId)]=r,this.save(t),r}remove(e,t,r){let o=this.load(),s=this.key(e,t,r);return s in o.overrides?(delete o.overrides[s],this.save(o),!0):!1}consumeSummary(e,t,r){let o=this.load(),s=o.overrides[this.key(e,t,r)];if(!s||!s.summary||s.summaryConsumedAt)return;let a=s.summary;return s.summaryConsumedAt=new Date().toISOString(),this.save(o),a}listActive(){let e=this.load(),t=Date.now();return Object.values(e.overrides).filter(r=>!r.expiresAt||Date.parse(r.expiresAt)>=t)}listByAgent(e){let t=this.listActive();return{incoming:t.filter(r=>r.toAgent===e),outgoing:t.filter(r=>r.fromAgent===e)}}};import{readFileSync as Et,writeFileSync as Pe,appendFileSync as Xn,mkdirSync as er,existsSync as Mt,statSync as tr}from"fs";import{resolve as ne}from"path";var Wt="[Agent Memory \u2014 persistent facts from past conversations]",Vn=2400;function Nt(n,e){return n?`UNVERIFIED (${e===null?"age unknown":`${e}d old`}) `:""}function Qn(n,e=Date.now()){let t=gt(n,e),r=n.undated?"UNVERIFIED (never checked) ":Nt(t,ut(n.verifiedAt,e));return{line:`- [wiki ${n.id}] ${r}${n.subject} \xB7 ${n.attribute}: ${n.value} (${n.source}, checked ${n.verifiedAt.slice(0,10)} by ${n.verifiedBy})`,unverified:t}}function Zn(n,e){let r=!n.source.chatId.startsWith("-")&&/^\d+$/.test(n.source.chatId)?"DM":n.source.chatId,o=pt(n,e);return{line:`- [${n.category}] ${Nt(o,ct(n,e))}${n.content} (${r}, ${n.source.date})`,unverified:o}}function Dt(n,e=[],t=Date.now()){let r=[],o=new Set,s=Wt.length,a=!1;for(let i of n){let d=e.length>0?mt(i.content,e):null,l,p,c=d&&Date.parse(i.createdAt)>Date.parse(d.verifiedAt)&&!i.content.toLowerCase().includes(d.value.toLowerCase());if(d&&!c){if(o.has(d.id))continue;o.add(d.id),l=Qn(d,t),p=d.id}else l=Zn(i,t),d&&(l.line+=` [differs from wiki ${d.id}]`);let f=l.unverified&&!a?Re.length:0;if(s+f+l.line.length>Vn)break;r.push({fact:i,...l,...p?{wikiRef:p}:{}}),s+=f+l.line.length,f&&(a=!0)}return r}function Ot(n){if(n.length===0)return"";let e=n.some(t=>t.unverified)?[Re]:[];return[Wt,...e,...n.map(t=>t.line),"[End Memory]"].join(`
1
+ import{b as St,c as At}from"./chunk-QSKG754X.js";import{c as bt}from"./chunk-SZDACK6O.js";import{b as xe}from"./chunk-AFRHKA7B.js";import{b as ht,e as wt,f as yt,i as It,k as vt,l as $t,q as Rt}from"./chunk-JS2LEURJ.js";import{b as ft,d as gt,e as mt}from"./chunk-PE5V2LI7.js";import{e as ut,g as ct,h as pt,i as Re}from"./chunk-GQ76J72O.js";import{a as kt}from"./chunk-GV7S5BAX.js";import{y as at,z as Bn}from"./chunk-LMZCB7TT.js";import{b as st,f as Kn}from"./chunk-72SZI2UW.js";import{a as dt,b as $e,c as Se,d as lt,e as Ae}from"./chunk-QD6IICK7.js";import{c as ot,d as it}from"./chunk-QOYAX2FT.js";import{f as ve,n as Hn}from"./chunk-UIBUZ2N3.js";import{existsSync as qn,mkdirSync as xt,readFileSync as zn,writeFileSync as Jn,renameSync as Yn}from"fs";import{resolve as Pt,dirname as Gn}from"path";var Tt=class{filePath;log;constructor(e={}){let t=e.baseDir??Pt(process.cwd(),".agentx");this.filePath=Pt(t,"handover.json"),this.log=e.log??console.error.bind(console,"[handover]"),xt(t,{recursive:!0})}key(e,t,r){return`${e}::${t}::${r||"-"}`}load(){if(!qn(this.filePath))return{version:1,overrides:{}};try{let e=zn(this.filePath,"utf-8"),t=JSON.parse(e);return!t||typeof t!="object"?{version:1,overrides:{}}:(t.overrides||(t.overrides={}),t)}catch(e){return this.log(`load failed, starting empty: ${e?.message||e}`),{version:1,overrides:{}}}}save(e){xt(Gn(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp-${process.pid}`;Jn(t,JSON.stringify(e,null,2)),Yn(t,this.filePath)}get(e,t,r){let s=this.load().overrides[this.key(e,t,r)];if(s&&!(s.expiresAt&&Date.parse(s.expiresAt)<Date.now()))return s}set(e){if(!e.channel||!e.chatId||!e.toAgent)throw new Error("channel, chatId and toAgent are required");let t=this.load(),r={...e,createdAt:e.createdAt??new Date().toISOString()};return t.overrides[this.key(r.channel,r.chatId,r.accountId)]=r,this.save(t),r}remove(e,t,r){let o=this.load(),s=this.key(e,t,r);return s in o.overrides?(delete o.overrides[s],this.save(o),!0):!1}consumeSummary(e,t,r){let o=this.load(),s=o.overrides[this.key(e,t,r)];if(!s||!s.summary||s.summaryConsumedAt)return;let a=s.summary;return s.summaryConsumedAt=new Date().toISOString(),this.save(o),a}listActive(){let e=this.load(),t=Date.now();return Object.values(e.overrides).filter(r=>!r.expiresAt||Date.parse(r.expiresAt)>=t)}listByAgent(e){let t=this.listActive();return{incoming:t.filter(r=>r.toAgent===e),outgoing:t.filter(r=>r.fromAgent===e)}}};import{readFileSync as Et,writeFileSync as Pe,appendFileSync as Xn,mkdirSync as er,existsSync as Mt,statSync as tr}from"fs";import{resolve as ne}from"path";var Wt="[Agent Memory \u2014 persistent facts from past conversations]",Vn=2400;function Nt(n,e){return n?`UNVERIFIED (${e===null?"age unknown":`${e}d old`}) `:""}function Qn(n,e=Date.now()){let t=gt(n,e),r=n.undated?"UNVERIFIED (never checked) ":Nt(t,ut(n.verifiedAt,e));return{line:`- [wiki ${n.id}] ${r}${n.subject} \xB7 ${n.attribute}: ${n.value} (${n.source}, checked ${n.verifiedAt.slice(0,10)} by ${n.verifiedBy})`,unverified:t}}function Zn(n,e){let r=!n.source.chatId.startsWith("-")&&/^\d+$/.test(n.source.chatId)?"DM":n.source.chatId,o=pt(n,e);return{line:`- [${n.category}] ${Nt(o,ct(n,e))}${n.content} (${r}, ${n.source.date})`,unverified:o}}function Dt(n,e=[],t=Date.now()){let r=[],o=new Set,s=Wt.length,a=!1;for(let i of n){let d=e.length>0?mt(i.content,e):null,l,p,c=d&&Date.parse(i.createdAt)>Date.parse(d.verifiedAt)&&!i.content.toLowerCase().includes(d.value.toLowerCase());if(d&&!c){if(o.has(d.id))continue;o.add(d.id),l=Qn(d,t),p=d.id}else l=Zn(i,t),d&&(l.line+=` [differs from wiki ${d.id}]`);let f=l.unverified&&!a?Re.length:0;if(s+f+l.line.length>Vn)break;r.push({fact:i,...l,...p?{wikiRef:p}:{}}),s+=f+l.line.length,f&&(a=!0)}return r}function Ot(n){if(n.length===0)return"";let e=n.some(t=>t.unverified)?[Re]:[];return[Wt,...e,...n.map(t=>t.line),"[End Memory]"].join(`
2
2
  `)}var Ft=200,nr=7,jt=class{memoryDir;ledger;constructor(e=process.cwd()){this.memoryDir=ne(e,".agentx/memory"),this.ledger=new ft(ne(e,".agentx/wiki")),Mt(this.memoryDir)||er(this.memoryDir,{recursive:!0})}filePath(e){return ne(this.memoryDir,`${e}.jsonl`)}addMemory(e,t){if(t.category==="secret"||$e(t.content))return!1;let r=t.source.trust??dt(t.source.channel),o=t.review??lt(r),s={...t,source:{...t.source,trust:r},...o?{review:o}:{},id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,createdAt:new Date().toISOString()};return Xn(this.filePath(e),JSON.stringify(s)+`
3
3
  `),!0}parsedCache=new Map;getAll(e){let t=this.filePath(e);if(!Mt(t))return[];try{let{mtimeMs:r,size:o}=tr(t),s=this.parsedCache.get(t);if(s&&s.mtimeMs===r&&s.size===o)return s.facts.slice();let i=Et(t,"utf-8").split(`
4
4
  `).filter(d=>d.trim()).map(d=>{try{return JSON.parse(d)}catch{return null}}).filter(d=>d!==null);return this.parsedCache.set(t,{mtimeMs:r,size:o,facts:i}),i.slice()}catch{return[]}}findRelevant(e,t,r=8){let o=this.getAll(t).filter(Ae);if(o.length===0)return[];let s=o.map(g=>`${g.keywords.join(" ")} ${g.content}`),a=ne(this.memoryDir,`${t}_bm25_cache.json`),i=it(s,a),d=ot(e,i),l=new Map(d.map(g=>[g.docIndex,g.score])),c=o.map((g,m)=>{let y=l.get(m)??0;return g.category==="commitment"&&(y+=1),{memory:g,score:y}}).filter(g=>g.score>0);if(c.length===0)return o.slice(-r);let f=c.sort((g,m)=>m.score-g.score).slice(0,r).map(g=>g.memory);if(f.length>0)try{this.recordAccess(t,f.map(g=>g.id))}catch{}return f}buildContext(e){return Ot(this.contextLines(e))}contextFacts(e){return this.contextLines(e).map(t=>t.fact)}contextLines(e){let t=[];try{t=this.ledger.list()}catch{}return Dt(e,t)}recordAccess(e,t){if(t.length===0)return;let r=this.getAll(e),o=new Set(t),s=!1;for(let a of r)if(o.has(a.id)){a.accessCount=(a.accessCount||0)+1,a.lastAccessed=new Date().toISOString();let i=a.intervalDays||1;a.intervalDays=Math.min(i*2,30),a.nextReview=new Date(Date.now()+a.intervalDays*864e5).toISOString(),s=!0}s&&Pe(this.filePath(e),r.map(a=>JSON.stringify(a)).join(`
@@ -38,4 +38,4 @@ ${n.text}`}async function me(n,e){let t=n.channels[e.channel],r={channel:e.chann
38
38
  `).filter(Boolean),o=[];for(let s=r.length-1;s>=0&&o.length<t;s--)try{let a=JSON.parse(r[s]);(!e||a.person===e)&&o.push(a)}catch{}return o}load(){if(Xe(this.file))try{let e=JSON.parse(et(this.file,"utf-8"));if(e&&Array.isArray(e.devices))return e}catch{}return{devices:[]}}save(e){Sn(xn(this.file),{recursive:!0});let t=`${this.file}.${process.pid}.${Tn(4).toString("hex")}.tmp`;Rn(t,JSON.stringify(e,null,2)+`
39
39
  `,{encoding:"utf-8",mode:384}),An(t,this.file)}};import{extname as li}from"path";var Nn=/<agentx-artifact>([\s\S]*?)<\/agentx-artifact>/gi,Dn=/<agentx-artifact>[\s\S]*$/i;function ld(n,e=1/0,t=!1){let r=[],o=String(n??"");if(!/<agentx-artifact>/i.test(o))return{text:o,artifacts:r};let s=o.replace(Nn,(a,i)=>{try{let d=JSON.parse(i.trim());if(d&&typeof d.filename=="string"&&typeof d.mime=="string"&&r.length<e){let l=d.mime,p=l.startsWith("image/")?"image":l==="application/pdf"?"pdf":l.startsWith("text/")?"text":"file";r.push({type:p,filename:d.filename,mime:l})}}catch{}return""});return{text:(t?s.replace(Dn,""):s).trim(),artifacts:r}}function ud(n,e=!1){let t=String(n??""),r=t;if(/<agentx-artifact>/i.test(t)){let o=t.replace(Nn,(s,a)=>{try{let i=JSON.parse(a.trim());return i&&typeof i.filename=="string"?i.filename:""}catch{return""}});r=(e?o.replace(Dn,""):o).trim()}return r.replace(/```[\s\S]*?```|`[^`\n]*`|!\[([^\]\n]*)\]\(([^)\s]+)\)/g,(o,s,a)=>s===void 0||a===void 0?o:`[${s||a}](${a})`)}var ui={".png":{mime:"image/png",kind:"image"},".jpg":{mime:"image/jpeg",kind:"image"},".jpeg":{mime:"image/jpeg",kind:"image"},".gif":{mime:"image/gif",kind:"image"},".webp":{mime:"image/webp",kind:"image"},".svg":{mime:"image/svg+xml",kind:"file"},".pdf":{mime:"application/pdf",kind:"file"},".txt":{mime:"text/plain; charset=utf-8",kind:"file"},".md":{mime:"text/markdown; charset=utf-8",kind:"file"},".csv":{mime:"text/csv; charset=utf-8",kind:"file"},".json":{mime:"application/json",kind:"file"},".mp3":{mime:"audio/mpeg",kind:"audio"},".m4a":{mime:"audio/mp4",kind:"audio"},".wav":{mime:"audio/wav",kind:"audio"},".mp4":{mime:"video/mp4",kind:"video"},".webm":{mime:"video/webm",kind:"video"}},cd={bytes:20*1024*1024,perMessage:20,pathChars:512};function pd(n){return ui[li(n).toLowerCase()]??null}var ci=["[Phone app: showing files]","To show the owner a file you created (a chart, a screenshot, a PDF, a recording), save or copy it into .agentx/outbox/ in your workspace and end your reply with one line per file:",'<agentx-artifact>{"filename":".agentx/outbox/<name.ext>","mime":"<mime/type>"}</agentx-artifact>',"Files outside your workspace (/tmp, your home folder) are refused. Outbox files are removed after 7 days.","The line is removed from the text. Images show in the reply, audio and video get a player, other files an Open link. Allowed: png, jpg, gif, webp, svg, pdf, txt, md, csv, json, mp3, m4a, wav, mp4, webm; up to 20 MB and 20 files per reply.","A picture already on the web can go inline as ![what it shows](https://...)."].join(`
40
40
  `);function fd(n,e,t){return n==="app"&&e&&t!==!1?ci:void 0}import{lstatSync as nt,mkdirSync as pi,readdirSync as fi,realpathSync as tt,unlinkSync as gi}from"fs";import{join as be,resolve as On}from"path";var En=".agentx/outbox",mi=7*24*60*60*1e3;function hi(n,e){try{let t=tt(On(e,n)),r=be(t,En);return tt(r)===r&&nt(r).isDirectory()?r:null}catch{return null}}function wd(n,e={}){let t=e.cwd??process.cwd();if(e.create!==!1)try{let o=tt(On(t,n));nt(be(o,".agentx"),{throwIfNoEntry:!1})?.isSymbolicLink()||pi(be(o,En),{recursive:!0})}catch{return 0}let r=hi(n,t);return r?Mn(r,(e.now??Date.now())-(e.maxAgeMs??mi)):0}function Mn(n,e){let t=0;for(let r of fi(n)){let o=be(n,r);try{let s=nt(o);s.isDirectory()?t+=Mn(o,e):Math.max(s.mtimeMs,s.ctimeMs)<e&&(gi(o),t++)}catch{}}return t}export{Tt as a,jt as b,Ct as c,Di as d,ir as e,Oi as f,T as g,z as h,S as i,oe as j,Ir as k,Oe as l,F as m,Fe as n,Ce as o,Ge as p,To as q,Mo as r,Qe as s,_r as t,Go as u,Na as v,Da as w,Oa as x,Ea as y,Ma as z,Vo as A,Qo as B,Fa as C,ja as D,Ca as E,_a as F,Ha as G,Ka as H,Ba as I,qa as J,za as K,Ja as L,Ya as M,Ga as N,Va as O,Qa as P,Za as Q,ri as R,Xa as S,ed as T,td as U,nd as V,Wn as W,ld as X,ud as Y,cd as Z,pd as _,fd as $,En as aa,wd as ba};
41
- //# sourceMappingURL=chunk-7V73QTQ7.js.map
41
+ //# sourceMappingURL=chunk-2BEZU5OF.js.map