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.
- package/dist/{App-4UVAI5C5.js → App-D6W6IV2L.js} +2 -2
- package/dist/{ChatApp-COO67WIR.js → ChatApp-X7TNCFGW.js} +2 -2
- package/dist/{absorb-eval-WY3YMLS4.js → absorb-eval-COPVH2M2.js} +2 -2
- package/dist/{agent-3R5NY7I3.js → agent-VCGAUBER.js} +2 -2
- package/dist/{board-dashboard-U3ZSCO62.js → board-dashboard-JZM3FQNV.js} +4 -4
- package/dist/{board-dashboard-U3ZSCO62.js.map → board-dashboard-JZM3FQNV.js.map} +1 -1
- package/dist/chunk-4ZWZ42YE.js +5 -0
- package/dist/{chunk-KXR6GVL7.js.map → chunk-4ZWZ42YE.js.map} +1 -1
- package/dist/{chunk-DYGQF3MI.js → chunk-54OORW5I.js} +2 -2
- package/dist/chunk-54OORW5I.js.map +1 -0
- package/dist/{chunk-RVEMX5MJ.js → chunk-5J5USW2O.js} +2 -2
- package/dist/{chunk-3XVST5XX.js → chunk-5X37CXJF.js} +2 -2
- package/dist/{chunk-4XMALK7X.js → chunk-66DPMVUC.js} +2 -2
- package/dist/{chunk-SSQMFHSM.js → chunk-AK3XOA5N.js} +2 -2
- package/dist/chunk-AKWBDCMU.js +4 -0
- package/dist/chunk-AKWBDCMU.js.map +1 -0
- package/dist/{chunk-6WF56ME6.js → chunk-C43E3YFT.js} +2 -2
- package/dist/{chunk-LU7GDHGD.js → chunk-EVTTAM7S.js} +2 -2
- package/dist/{chunk-K445URSN.js → chunk-FQLSV2C4.js} +2 -2
- package/dist/{chunk-FWDRBUMS.js → chunk-GL3H7XMI.js} +2 -2
- package/dist/{chunk-ZGVVYJIK.js → chunk-H2N7DOPT.js} +2 -2
- package/dist/{chunk-BQIWMQNU.js → chunk-H4NSB54D.js} +2 -2
- package/dist/{chunk-XOUO4XNA.js → chunk-HEJTE7OC.js} +2 -2
- package/dist/{chunk-EEBK4F6E.js → chunk-HH7OFAEM.js} +2 -2
- package/dist/{chunk-QDWEM4DG.js → chunk-HZZW35FY.js} +2 -2
- package/dist/{chunk-RRGITX5B.js → chunk-IPMXIPTS.js} +2 -2
- package/dist/{chunk-MI7WOGH6.js → chunk-K75LFQE3.js} +2 -2
- package/dist/{chunk-ZFRXFUP7.js → chunk-KZXQD6ZK.js} +2 -2
- package/dist/{chunk-P3I7AATX.js → chunk-M5AHI2PZ.js} +2 -2
- package/dist/{chunk-5NT44FKL.js → chunk-M5B4QG6J.js} +2 -2
- package/dist/chunk-MTX4UPNB.js +3 -0
- package/dist/chunk-MTX4UPNB.js.map +1 -0
- package/dist/chunk-MWNCS57L.js +2 -0
- package/dist/chunk-MWNCS57L.js.map +1 -0
- package/dist/chunk-OISCRNMW.js +105 -0
- package/dist/chunk-OISCRNMW.js.map +1 -0
- package/dist/{chunk-ERULJ2ZL.js → chunk-OW5EXDVY.js} +2 -2
- package/dist/chunk-OWNQ2FD4.js +3 -0
- package/dist/chunk-OWNQ2FD4.js.map +1 -0
- package/dist/chunk-PE5V2LI7.js +2 -0
- package/dist/chunk-PE5V2LI7.js.map +1 -0
- package/dist/chunk-PV623BLN.js +55 -0
- package/dist/chunk-PV623BLN.js.map +1 -0
- package/dist/{chunk-L5UGH4T4.js → chunk-QCUJTAAZ.js} +6 -6
- package/dist/{chunk-GSKJ57XY.js → chunk-QTDKNJXD.js} +216 -216
- package/dist/chunk-QTDKNJXD.js.map +1 -0
- package/dist/{chunk-RGZARSHV.js → chunk-ROLSSYXE.js} +1 -1
- package/dist/{chunk-RGZARSHV.js.map → chunk-ROLSSYXE.js.map} +1 -1
- package/dist/{chunk-YA3P77LV.js → chunk-SKSYII3K.js} +2 -2
- package/dist/chunk-U6EJ53DA.js +16 -0
- package/dist/chunk-U6EJ53DA.js.map +1 -0
- package/dist/{chunk-WEPON4FP.js → chunk-UNIXYV3U.js} +2 -2
- package/dist/{chunk-SMAI7U6H.js → chunk-VA24JS2S.js} +2 -2
- package/dist/{chunk-LUYN6RAC.js → chunk-WRJFKA43.js} +2 -2
- package/dist/{chunk-H6VWU2HN.js → chunk-ZPJVDX2U.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/{client-NFPBE6L4.js → client-SMOWSRJY.js} +2 -2
- package/dist/{config-GHMRBRDL.js → config-OGUDWYAA.js} +2 -2
- package/dist/{config-mutate-2XV27EFV.js → config-mutate-BH27TMWK.js} +2 -2
- package/dist/config-mutator-Q62AS2TR.js +2 -0
- package/dist/{contributions-KLRJ4ZXV.js → contributions-H6T65TCY.js} +2 -2
- package/dist/{contributions-KLRJ4ZXV.js.map → contributions-H6T65TCY.js.map} +1 -1
- package/dist/{doctor-UBXVMGJG.js → doctor-ZOXHT7ZQ.js} +2 -2
- package/dist/enrich-R2LIDLPZ.js +2 -0
- package/dist/event-levels-WOYYEWSZ.js +3 -0
- package/dist/event-levels-WOYYEWSZ.js.map +1 -0
- package/dist/fact-proposals-X2O4W7VN.js +2 -0
- package/dist/{follow-up-tool-EARVITTS.js → follow-up-tool-GUBBXNEZ.js} +2 -2
- package/dist/{grants-HIFE6L5N.js → grants-CEUGZBQ4.js} +2 -2
- package/dist/hub-IIW2GBO5.js +2 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ledger-P62U3FHT.js +2 -0
- package/dist/load-LQ2I2PQI.js +2 -0
- package/dist/model-call-J7JATTMW.js +2 -0
- package/dist/{program-U3HJY7E5.js → program-WROQ55F5.js} +233 -231
- package/dist/program-WROQ55F5.js.map +1 -0
- package/dist/promote-HDLU44MX.js +2 -0
- package/dist/push-bridge-325SXDGN.js +1 -1
- package/dist/query-6G27CBZQ.js +2 -0
- package/dist/query-runs-VXS572PQ.js +6 -0
- package/dist/query-runs-VXS572PQ.js.map +1 -0
- package/dist/{query-settings-2MGUS6AY.js → query-settings-G4M75LVQ.js} +3 -3
- package/dist/registry-3RE5SG22.js +2 -0
- package/dist/{request-planner-MFAIVLUQ.js → request-planner-T3VCZVVQ.js} +2 -2
- package/dist/{review-candidates-6WMDVVIZ.js → review-candidates-C3O3CENL.js} +2 -2
- package/dist/rotation-memo-store-Z4D5KRA6.js +2 -0
- package/dist/{rotation-memo-store-A4YW6FSK.js.map → rotation-memo-store-Z4D5KRA6.js.map} +1 -1
- package/dist/{routing-OPCLHIYW.js → routing-LD35TJM5.js} +2 -2
- package/dist/rules-HUUFXQD6.js +24 -0
- package/dist/rules-HUUFXQD6.js.map +1 -0
- package/dist/schedule-tool-46TVGEYU.js +2 -0
- package/dist/{scheduler-G3WWYETY.js → scheduler-I3QB4GI3.js} +2 -2
- package/dist/score-LNJ46A67.js +3 -0
- package/dist/score-LNJ46A67.js.map +1 -0
- package/dist/{seat-3HM4J7IX.js → seat-4Y3EW3KU.js} +2 -2
- package/dist/{select-VEFE2ESF.js → select-LZKN3FER.js} +2 -2
- package/dist/{set-enabled-US5BYKFZ.js → set-enabled-WSTOHJDE.js} +2 -2
- package/dist/{tool-HUSCHORN.js → tool-AKXO2EJU.js} +2 -2
- package/dist/tool-NLMIUOHR.js +4 -0
- package/dist/tool-NLMIUOHR.js.map +1 -0
- package/dist/types-YZX46RES.js +2 -0
- package/dist/wiki-ZS6OHOWQ.js +2 -0
- package/dist/wiki-enrich-NGPFWTVA.js +2 -0
- package/dist/wiki-enrich-NGPFWTVA.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-AKLZ4YO2.js +0 -4
- package/dist/chunk-AKLZ4YO2.js.map +0 -1
- package/dist/chunk-DYGQF3MI.js.map +0 -1
- package/dist/chunk-GSKJ57XY.js.map +0 -1
- package/dist/chunk-JRS5QRZG.js +0 -2
- package/dist/chunk-JRS5QRZG.js.map +0 -1
- package/dist/chunk-JTDUTCUE.js +0 -3
- package/dist/chunk-JTDUTCUE.js.map +0 -1
- package/dist/chunk-KA2UIZXG.js +0 -3
- package/dist/chunk-KA2UIZXG.js.map +0 -1
- package/dist/chunk-KXR6GVL7.js +0 -5
- package/dist/chunk-NY7NHGVT.js +0 -105
- package/dist/chunk-NY7NHGVT.js.map +0 -1
- package/dist/chunk-WWDYDLY2.js +0 -55
- package/dist/chunk-WWDYDLY2.js.map +0 -1
- package/dist/config-mutator-6ITNU5DT.js +0 -2
- package/dist/enrich-ZB5I7KHN.js +0 -16
- package/dist/enrich-ZB5I7KHN.js.map +0 -1
- package/dist/event-levels-CQWHSLMT.js +0 -3
- package/dist/event-levels-CQWHSLMT.js.map +0 -1
- package/dist/fact-proposals-LZWS5KFO.js +0 -2
- package/dist/hub-TILTOOSS.js +0 -2
- package/dist/ledger-CH7R756S.js +0 -2
- package/dist/load-EOZUZK7U.js +0 -2
- package/dist/model-call-PKV5UAQ7.js +0 -2
- package/dist/program-U3HJY7E5.js.map +0 -1
- package/dist/promote-RHVZB2QZ.js +0 -2
- package/dist/query-OZXZVLO7.js +0 -2
- package/dist/query-runs-7VX3YAC3.js +0 -4
- package/dist/query-runs-7VX3YAC3.js.map +0 -1
- package/dist/registry-LZLIPP7N.js +0 -2
- package/dist/rotation-memo-store-A4YW6FSK.js +0 -2
- package/dist/schedule-tool-KPVTMYL3.js +0 -2
- package/dist/score-DZGPLHCL.js +0 -3
- package/dist/score-DZGPLHCL.js.map +0 -1
- package/dist/tool-XLWLXGB5.js +0 -4
- package/dist/tool-XLWLXGB5.js.map +0 -1
- package/dist/types-LJZ2YY5W.js +0 -2
- package/dist/wiki-GCRRINW3.js +0 -2
- package/dist/wiki-enrich-P5TNWACZ.js +0 -2
- /package/dist/{App-4UVAI5C5.js.map → App-D6W6IV2L.js.map} +0 -0
- /package/dist/{ChatApp-COO67WIR.js.map → ChatApp-X7TNCFGW.js.map} +0 -0
- /package/dist/{absorb-eval-WY3YMLS4.js.map → absorb-eval-COPVH2M2.js.map} +0 -0
- /package/dist/{agent-3R5NY7I3.js.map → agent-VCGAUBER.js.map} +0 -0
- /package/dist/{chunk-RVEMX5MJ.js.map → chunk-5J5USW2O.js.map} +0 -0
- /package/dist/{chunk-3XVST5XX.js.map → chunk-5X37CXJF.js.map} +0 -0
- /package/dist/{chunk-4XMALK7X.js.map → chunk-66DPMVUC.js.map} +0 -0
- /package/dist/{chunk-SSQMFHSM.js.map → chunk-AK3XOA5N.js.map} +0 -0
- /package/dist/{chunk-6WF56ME6.js.map → chunk-C43E3YFT.js.map} +0 -0
- /package/dist/{chunk-LU7GDHGD.js.map → chunk-EVTTAM7S.js.map} +0 -0
- /package/dist/{chunk-K445URSN.js.map → chunk-FQLSV2C4.js.map} +0 -0
- /package/dist/{chunk-FWDRBUMS.js.map → chunk-GL3H7XMI.js.map} +0 -0
- /package/dist/{chunk-ZGVVYJIK.js.map → chunk-H2N7DOPT.js.map} +0 -0
- /package/dist/{chunk-BQIWMQNU.js.map → chunk-H4NSB54D.js.map} +0 -0
- /package/dist/{chunk-XOUO4XNA.js.map → chunk-HEJTE7OC.js.map} +0 -0
- /package/dist/{chunk-EEBK4F6E.js.map → chunk-HH7OFAEM.js.map} +0 -0
- /package/dist/{chunk-QDWEM4DG.js.map → chunk-HZZW35FY.js.map} +0 -0
- /package/dist/{chunk-RRGITX5B.js.map → chunk-IPMXIPTS.js.map} +0 -0
- /package/dist/{chunk-MI7WOGH6.js.map → chunk-K75LFQE3.js.map} +0 -0
- /package/dist/{chunk-ZFRXFUP7.js.map → chunk-KZXQD6ZK.js.map} +0 -0
- /package/dist/{chunk-P3I7AATX.js.map → chunk-M5AHI2PZ.js.map} +0 -0
- /package/dist/{chunk-5NT44FKL.js.map → chunk-M5B4QG6J.js.map} +0 -0
- /package/dist/{chunk-ERULJ2ZL.js.map → chunk-OW5EXDVY.js.map} +0 -0
- /package/dist/{chunk-L5UGH4T4.js.map → chunk-QCUJTAAZ.js.map} +0 -0
- /package/dist/{chunk-YA3P77LV.js.map → chunk-SKSYII3K.js.map} +0 -0
- /package/dist/{chunk-WEPON4FP.js.map → chunk-UNIXYV3U.js.map} +0 -0
- /package/dist/{chunk-SMAI7U6H.js.map → chunk-VA24JS2S.js.map} +0 -0
- /package/dist/{chunk-LUYN6RAC.js.map → chunk-WRJFKA43.js.map} +0 -0
- /package/dist/{chunk-H6VWU2HN.js.map → chunk-ZPJVDX2U.js.map} +0 -0
- /package/dist/{client-NFPBE6L4.js.map → client-SMOWSRJY.js.map} +0 -0
- /package/dist/{config-GHMRBRDL.js.map → config-OGUDWYAA.js.map} +0 -0
- /package/dist/{config-mutate-2XV27EFV.js.map → config-mutate-BH27TMWK.js.map} +0 -0
- /package/dist/{config-mutator-6ITNU5DT.js.map → config-mutator-Q62AS2TR.js.map} +0 -0
- /package/dist/{doctor-UBXVMGJG.js.map → doctor-ZOXHT7ZQ.js.map} +0 -0
- /package/dist/{fact-proposals-LZWS5KFO.js.map → enrich-R2LIDLPZ.js.map} +0 -0
- /package/dist/{grants-HIFE6L5N.js.map → fact-proposals-X2O4W7VN.js.map} +0 -0
- /package/dist/{follow-up-tool-EARVITTS.js.map → follow-up-tool-GUBBXNEZ.js.map} +0 -0
- /package/dist/{hub-TILTOOSS.js.map → grants-CEUGZBQ4.js.map} +0 -0
- /package/dist/{ledger-CH7R756S.js.map → hub-IIW2GBO5.js.map} +0 -0
- /package/dist/{load-EOZUZK7U.js.map → ledger-P62U3FHT.js.map} +0 -0
- /package/dist/{model-call-PKV5UAQ7.js.map → load-LQ2I2PQI.js.map} +0 -0
- /package/dist/{promote-RHVZB2QZ.js.map → model-call-J7JATTMW.js.map} +0 -0
- /package/dist/{query-OZXZVLO7.js.map → promote-HDLU44MX.js.map} +0 -0
- /package/dist/{registry-LZLIPP7N.js.map → query-6G27CBZQ.js.map} +0 -0
- /package/dist/{query-settings-2MGUS6AY.js.map → query-settings-G4M75LVQ.js.map} +0 -0
- /package/dist/{routing-OPCLHIYW.js.map → registry-3RE5SG22.js.map} +0 -0
- /package/dist/{request-planner-MFAIVLUQ.js.map → request-planner-T3VCZVVQ.js.map} +0 -0
- /package/dist/{review-candidates-6WMDVVIZ.js.map → review-candidates-C3O3CENL.js.map} +0 -0
- /package/dist/{schedule-tool-KPVTMYL3.js.map → routing-LD35TJM5.js.map} +0 -0
- /package/dist/{scheduler-G3WWYETY.js.map → schedule-tool-46TVGEYU.js.map} +0 -0
- /package/dist/{seat-3HM4J7IX.js.map → scheduler-I3QB4GI3.js.map} +0 -0
- /package/dist/{types-LJZ2YY5W.js.map → seat-4Y3EW3KU.js.map} +0 -0
- /package/dist/{select-VEFE2ESF.js.map → select-LZKN3FER.js.map} +0 -0
- /package/dist/{set-enabled-US5BYKFZ.js.map → set-enabled-WSTOHJDE.js.map} +0 -0
- /package/dist/{tool-HUSCHORN.js.map → tool-AKXO2EJU.js.map} +0 -0
- /package/dist/{wiki-GCRRINW3.js.map → types-YZX46RES.js.map} +0 -0
- /package/dist/{wiki-enrich-P5TNWACZ.js.map → wiki-ZS6OHOWQ.js.map} +0 -0
package/dist/promote-RHVZB2QZ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t}from"./chunk-5NT44FKL.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-MEFPXHQJ.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{b as DEFAULT_PROMOTE_TYPES,a as PROMOTER_OWNER,c as PROMOTION_LEDGER_FILE,j as appendPromotionLedger,s as approveProposal,n as callPromotionLlm,p as estimateTokens,r as evidenceFor,m as getUnpromotedMemories,k as groupCandidates,h as listAllAgentMemories,d as memoryKey,e as memoryStamp,g as mergeSources,f as parseMemoryStamp,l as parsePromotionResponse,i as readPromotionLedger,t as rejectProposal,o as runPromotion,q as sourceKind};
|
|
2
|
-
//# sourceMappingURL=promote-RHVZB2QZ.js.map
|
package/dist/query-OZXZVLO7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h}from"./chunk-WWDYDLY2.js";import"./chunk-YA3P77LV.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-JRS5QRZG.js";import"./chunk-4LWFJ4MZ.js";import"./chunk-BIJHMWXK.js";import"./chunk-4XMALK7X.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-MCI3DIWW.js";import"./chunk-6TURWSMN.js";import"./chunk-QD6IICK7.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 AUTO_SUMMARY_COVERAGE,f as DEFAULT_GRAPH_WEIGHT,e as SHARED_CATALOG_LINES,b as agenticQuery,d as catalogPool,g as rankCatalogPool,c as retrieveArticles,h as sharedQueryEnabled};
|
|
2
|
-
//# sourceMappingURL=query-OZXZVLO7.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import"./chunk-QIJLFPWE.js";import{appendFileSync as l}from"fs";var y="_query-runs.jsonl";function i(r){return r==="error"||r==="no-catalog"}function m(r,n){try{l(r,`${JSON.stringify(n)}
|
|
2
|
-
`)}catch{}}function g(r,n){let u=r.split(`
|
|
3
|
-
`).filter(Boolean).flatMap(t=>{try{let e=JSON.parse(t);return e&&typeof e.status=="string"&&typeof e.at=="string"?[e]:[]}catch{return[]}}).filter(t=>!n||t.at>=n),o={};for(let t of u)o[t.status]=(o[t.status]??0)+1;let s=u.map(t=>Number(t.wallMs)||0).sort((t,e)=>t-e),a=t=>s.length?s[Math.min(s.length-1,Math.floor(t*s.length))]:0;return{total:u.length,failed:u.filter(t=>i(t.status)).length,byStatus:o,wallMsP50:a(.5),wallMsP95:a(.95)}}export{y as QUERY_RUNS_FILE,i as queryFailed,m as recordQueryRun,g as summariseQueryRuns};
|
|
4
|
-
//# sourceMappingURL=query-runs-7VX3YAC3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/wiki/query-runs.ts"],"sourcesContent":["/**\n * `wiki query` outcomes, one line per query in `_query-runs.jsonl` (#603).\n *\n * A failed query used to print plain text and exit 0, so nothing counted\n * it. Each query now appends its status and timing here, and\n * `wiki query-runs` counts them. No question, answer or error text goes\n * in the file.\n */\nimport { appendFileSync } from \"fs\"\nimport type { AgenticQueryResult } from \"./query\"\n\nexport const QUERY_RUNS_FILE = \"_query-runs.jsonl\"\n\nexport type QueryStatus = AgenticQueryResult[\"status\"]\n\nexport interface QueryRunRecord {\n at: string\n agent: string\n status: QueryStatus\n method?: string\n wallMs: number\n}\n\n/** Statuses that mean the query could not run, not that the wiki had no answer. */\nexport function queryFailed(status: QueryStatus): boolean {\n return status === \"error\" || status === \"no-catalog\"\n}\n\n/** Append one record. Never throws: logging must not fail a query. */\nexport function recordQueryRun(file: string, record: QueryRunRecord): void {\n try {\n appendFileSync(file, `${JSON.stringify(record)}\\n`)\n } catch {\n // best-effort\n }\n}\n\nexport interface QueryRunSummary {\n total: number\n failed: number\n byStatus: Record<string, number>\n wallMsP50: number\n wallMsP95: number\n}\n\n/** Count queries by status, on or after `since` (an ISO date or time) when given. */\nexport function summariseQueryRuns(text: string, since?: string): QueryRunSummary {\n const records: QueryRunRecord[] = text.split(\"\\n\").filter(Boolean).flatMap((l) => {\n try {\n const r = JSON.parse(l)\n return r && typeof r.status === \"string\" && typeof r.at === \"string\" ? [r] : []\n } catch { return [] }\n }).filter((r) => !since || r.at >= since)\n const byStatus: Record<string, number> = {}\n for (const r of records) byStatus[r.status] = (byStatus[r.status] ?? 0) + 1\n const ms = records.map((r) => Number(r.wallMs) || 0).sort((a, b) => a - b)\n const pick = (q: number) => (ms.length ? ms[Math.min(ms.length - 1, Math.floor(q * ms.length))] : 0)\n return {\n total: records.length,\n failed: records.filter((r) => queryFailed(r.status)).length,\n byStatus,\n wallMsP50: pick(0.5),\n wallMsP95: pick(0.95),\n }\n}\n"],"mappings":"4BAQA,OAAS,kBAAAA,MAAsB,KAGxB,IAAMC,EAAkB,oBAaxB,SAASC,EAAYC,EAA8B,CACxD,OAAOA,IAAW,SAAWA,IAAW,YAC1C,CAGO,SAASC,EAAeC,EAAcC,EAA8B,CACzE,GAAI,CACFN,EAAeK,EAAM,GAAG,KAAK,UAAUC,CAAM;AAAA,CAAK,CACpD,MAAE,CAEF,CACF,CAWO,SAASC,EAAmBC,EAAcC,EAAiC,CAChF,IAAMC,EAA4BF,EAAK,MAAM;AAAA,CAAI,EAAE,OAAO,OAAO,EAAE,QAASG,GAAM,CAChF,GAAI,CACF,IAAMC,EAAI,KAAK,MAAMD,CAAC,EACtB,OAAOC,GAAK,OAAOA,EAAE,QAAW,UAAY,OAAOA,EAAE,IAAO,SAAW,CAACA,CAAC,EAAI,CAAC,CAChF,MAAE,CAAQ,MAAO,CAAC,CAAE,CACtB,CAAC,EAAE,OAAQA,GAAM,CAACH,GAASG,EAAE,IAAMH,CAAK,EAClCI,EAAmC,CAAC,EAC1C,QAAWD,KAAKF,EAASG,EAASD,EAAE,MAAM,GAAKC,EAASD,EAAE,MAAM,GAAK,GAAK,EAC1E,IAAME,EAAKJ,EAAQ,IAAKE,GAAM,OAAOA,EAAE,MAAM,GAAK,CAAC,EAAE,KAAK,CAACG,EAAGC,IAAMD,EAAIC,CAAC,EACnEC,EAAQC,GAAeJ,EAAG,OAASA,EAAG,KAAK,IAAIA,EAAG,OAAS,EAAG,KAAK,MAAMI,EAAIJ,EAAG,MAAM,CAAC,CAAC,EAAI,EAClG,MAAO,CACL,MAAOJ,EAAQ,OACf,OAAQA,EAAQ,OAAQE,GAAMV,EAAYU,EAAE,MAAM,CAAC,EAAE,OACrD,SAAAC,EACA,UAAWI,EAAK,EAAG,EACnB,UAAWA,EAAK,GAAI,CACtB,CACF","names":["appendFileSync","QUERY_RUNS_FILE","queryFailed","status","recordQueryRun","file","record","summariseQueryRuns","text","since","records","l","r","byStatus","ms","a","b","pick","q"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$ as j,S as a,T as b,U as c,V as d,W as e,X as f,Y as g,Z as h,_ as i,aa as k,ba as l,ca as m,da as n}from"./chunk-L5UGH4T4.js";import"./chunk-QDWEM4DG.js";import"./chunk-QSKG754X.js";import"./chunk-MEFPXHQJ.js";import"./chunk-SZDACK6O.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-SSQMFHSM.js";import"./chunk-LUYN6RAC.js";import"./chunk-3UOTLMXD.js";import"./chunk-36AXN6ZB.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-VWTBHLMX.js";import"./chunk-6WF56ME6.js";import"./chunk-NY7NHGVT.js";import"./chunk-KEXBEUSU.js";import"./chunk-RGZARSHV.js";import"./chunk-WWDYDLY2.js";import"./chunk-YA3P77LV.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-JRS5QRZG.js";import"./chunk-4LWFJ4MZ.js";import"./chunk-BIJHMWXK.js";import"./chunk-K445URSN.js";import"./chunk-4XMALK7X.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-MCI3DIWW.js";import"./chunk-MYVHVJWZ.js";import"./chunk-6TURWSMN.js";import"./chunk-AV7T3SYT.js";import"./chunk-Y5MFVVTM.js";import"./chunk-QD6IICK7.js";import"./chunk-QOYAX2FT.js";import"./chunk-2PJKGZWP.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.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{m as AgentRegistry,a as EDIT_TOOL_INSTRUCTION,h as TRACE_STEP_SUMMARY_BYTES,e as buildEntryMeta,f as buildEventDigest,g as buildWikiContext,i as clipForTrace,b as codingInstructions,l as emitTraceStepsFromStreamEvent,k as firstMissingRequiredTool,d as getGlobalRegistry,n as richReplyPrompt,c as setGlobalRegistry,j as tallyToolUses};
|
|
2
|
-
//# sourceMappingURL=registry-LZLIPP7N.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as o}from"./chunk-KXR6GVL7.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-QIJLFPWE.js";function s(r,n,t){let e=o(t.wikiDir,t.memo,{agentId:t.agentId,origin:t.reason==="continuity"?"continuity-memo":`rotation-memo:${t.reason}`,chat:`${t.channel}:${t.chatId}`});if(e.workState.trim()){let a=t.chatId.split(/[:@.]/).filter(Boolean).slice(0,4);r.addMemory(t.agentId,{agentId:t.agentId,category:"task-state",content:`[Rotation memo \xB7 ${t.reason}] ${e.workState}`,keywords:["rotation-memo",t.channel,...a],source:{channel:t.channel,chatId:t.chatId,sender:"system:rotation",date:new Date().toISOString().slice(0,10)}})}return n.setRotationMemo(t.agentId,t.channel,t.chatId,e.pinned,t.reason),{proposals:e.proposals.length,...e.error?{error:e.error}:{}}}export{s as storeRotationMemo};
|
|
2
|
-
//# sourceMappingURL=rotation-memo-store-A4YW6FSK.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./chunk-RRGITX5B.js";import"./chunk-RKPAVWXF.js";import"./chunk-FWDRBUMS.js";import"./chunk-SSQMFHSM.js";import"./chunk-LUYN6RAC.js";import"./chunk-3UOTLMXD.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-DYGQF3MI.js";import"./chunk-BRK6M6LA.js";import"./chunk-UIBUZ2N3.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";export{b as resolveScheduleCaller,a as runScheduleTool};
|
|
2
|
-
//# sourceMappingURL=schedule-tool-KPVTMYL3.js.map
|
package/dist/score-DZGPLHCL.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import"./chunk-QIJLFPWE.js";function S(n){let s=n.trim();return(s.startsWith("[")?JSON.parse(s):s.split(`
|
|
2
|
-
`).filter(r=>r.trim()).map(r=>JSON.parse(r))).map((r,t)=>{let e=r??{},o=typeof e.question=="string"?e.question.trim():"",u=Array.isArray(e.expect)?e.expect.filter(c=>typeof c=="string"&&!!c.trim()):[];if(!o||u.length===0)throw new Error(`question ${t+1} needs a "question" and a non-empty "expect" list`);return{id:typeof e.id=="string"&&e.id?e.id:`q${t+1}`,question:o,expect:u}})}var l=n=>n.toLowerCase().replace(/[\s ]+/g," ").trim(),m=n=>n.replace(/\D+/g,"");function h(n,s){let i=l(n),r=m(n),t=[],e=[];for(let o of s)(o.split("|").some(c=>{let g=m(c);return!!c.trim()&&i.includes(l(c))||g.length>=5&&r.includes(g)})?t:e).push(o);return{found:t,missing:e}}function x(n,s){let i=s.map(({q:t,answer:e,status:o,citations:u,method:c,ms:g,costUsd:d})=>{let{found:a,missing:f}=h(e,t.expect);return{id:t.id,question:t.question,expect:t.expect,found:a,missing:f,score:a.length/t.expect.length,status:o,answer:e,citations:u,...c?{method:c}:{},...g!==void 0?{ms:g}:{},...d!==void 0?{costUsd:d}:{}}}),r=i.length?i.reduce((t,e)=>t+e.score,0)/i.length:0;return{at:n.at??new Date().toISOString(),questions:n.questions,agent:n.agent,shared:n.shared,...n.settings?{settings:n.settings}:{},score:r,full:i.filter(t=>t.missing.length===0).length,results:i}}function p(n){let s=t=>t.length?t.reduce((e,o)=>e+o,0)/t.length:void 0,i=n.results.flatMap(t=>t.ms===void 0?[]:[t.ms]),r=n.results.flatMap(t=>t.costUsd===void 0?[]:[t.costUsd]);return{meanMs:s(i),meanCostUsd:s(r),unpriced:n.results.length-r.length}}function R(n,s){let i=new Map(n.results.map(e=>[e.id,e])),r=s.results.map(e=>{let o=i.get(e.id);return{id:e.id,question:e.question,before:o?.score??0,after:e.score,gained:e.found.filter(u=>!o?.found.includes(u)),lost:(o?.found??[]).filter(u=>!e.found.includes(u)),...o?.ms!==void 0||e.ms!==void 0?{ms:{before:o?.ms,after:e.ms}}:{},...o?.costUsd!==void 0||e.costUsd!==void 0?{costUsd:{before:o?.costUsd,after:e.costUsd}}:{}}}),t=new Set(s.results.map(e=>e.id));return{before:n.score,after:s.score,deltas:r,changed:b(n,s),onlyBefore:n.results.filter(e=>!t.has(e.id)).map(e=>e.id),onlyAfter:s.results.filter(e=>!i.has(e.id)).map(e=>e.id),cost:{before:p(n),after:p(s)}}}function b(n,s){if(!n.settings||!s.settings)return"unknown";let i={...n.settings,agent:n.agent,shared:n.shared},r={...s.settings,agent:s.agent,shared:s.shared};return[...new Set([...Object.keys(i),...Object.keys(r)])].filter(t=>i[t]!==r[t]).map(t=>`${t}: ${String(i[t])} \u2192 ${String(r[t])}`)}export{x as buildReport,R as compareReports,h as matchFacts,S as parseQuestionSet,p as runCost};
|
|
3
|
-
//# sourceMappingURL=score-DZGPLHCL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/wiki/score.ts"],"sourcesContent":["// --- Score the wiki against a question set (#824) ---\n//\n// The fleet test behind #824 scored the wiki by hand: each agent took 10\n// to 12 real questions from its own past work and checked whether the\n// wiki answered them (47% and 75%). This makes that repeatable, so the\n// same set can be run before and after a week of daily contributions.\n//\n// A question set is JSON (an array) or JSON lines, one question each:\n//\n// {\"id\": \"q1\", \"question\": \"What is the vendor's billing contact's phone?\", \"expect\": [\"+1 555 0100\"]}\n//\n// An answer scores the share of its expected facts it contains. Matching\n// ignores case and spacing; a fact with five or more digits (a phone,\n// an invoice number) also matches on its digits alone. \"a|b\" accepts\n// either spelling (a date or an amount written two ways). Question sets\n// hold real facts, so they belong outside the repository.\n\nexport interface ScoreQuestion {\n id: string\n question: string\n /** Facts a correct answer contains, copied as they should appear. */\n expect: string[]\n}\n\nexport interface ScoreResult {\n id: string\n question: string\n expect: string[]\n found: string[]\n missing: string[]\n /** found / expected, 0–1. */\n score: number\n status: string\n answer: string\n citations: string[]\n /** How the pages were picked for this question. */\n method?: string\n /** Wall time of the question, in milliseconds. */\n ms?: number\n /** Model spend of the question, in dollars. Unset when it is not known\n * (the catalog method, or a call that reported no cost). */\n costUsd?: number\n}\n\n/** What a run was asked with, so two reports show what changed between them. */\nexport interface ScoreSettings {\n method: string\n linkedPages: number\n linkedChars: number\n live: boolean\n notes: boolean\n navigatorModel: string\n answerModel: string\n}\n\nexport interface ScoreReport {\n at: string\n questions: string\n agent: string\n /** Whether the shared wiki was searched too. */\n shared: boolean\n /** Unset in reports written before #863. */\n settings?: ScoreSettings\n /** Mean of the question scores, 0–1. */\n score: number\n /** Questions every expected fact was found for. */\n full: number\n results: ScoreResult[]\n}\n\nexport function parseQuestionSet(text: string): ScoreQuestion[] {\n const trimmed = text.trim()\n const raw: unknown[] = trimmed.startsWith(\"[\")\n ? JSON.parse(trimmed)\n : trimmed.split(\"\\n\").filter((l) => l.trim()).map((l) => JSON.parse(l))\n return raw.map((x, i) => {\n const r = (x ?? {}) as Record<string, unknown>\n const question = typeof r.question === \"string\" ? r.question.trim() : \"\"\n const expect = Array.isArray(r.expect) ? r.expect.filter((e): e is string => typeof e === \"string\" && !!e.trim()) : []\n if (!question || expect.length === 0) throw new Error(`question ${i + 1} needs a \"question\" and a non-empty \"expect\" list`)\n return { id: typeof r.id === \"string\" && r.id ? r.id : `q${i + 1}`, question, expect }\n })\n}\n\nconst norm = (s: string) => s.toLowerCase().replace(/[\\s ]+/g, \" \").trim()\nconst digits = (s: string) => s.replace(/\\D+/g, \"\")\n\n/** Which expected facts the answer contains. */\nexport function matchFacts(answer: string, expect: string[]): { found: string[]; missing: string[] } {\n const text = norm(answer)\n const textDigits = digits(answer)\n const found: string[] = []\n const missing: string[] = []\n for (const fact of expect) {\n // \"2027-03-31|31/03/2027\": any one spelling counts.\n const hit = fact.split(\"|\").some((alt) => {\n const d = digits(alt)\n return (!!alt.trim() && text.includes(norm(alt))) || (d.length >= 5 && textDigits.includes(d))\n })\n ;(hit ? found : missing).push(fact)\n }\n return { found, missing }\n}\n\nexport function buildReport(\n meta: { questions: string; agent: string; shared: boolean; at?: string; settings?: ScoreSettings },\n answers: Array<{ q: ScoreQuestion; answer: string; status: string; citations: string[]; method?: string; ms?: number; costUsd?: number }>,\n): ScoreReport {\n const results = answers.map(({ q, answer, status, citations, method, ms, costUsd }) => {\n const { found, missing } = matchFacts(answer, q.expect)\n return {\n id: q.id, question: q.question, expect: q.expect, found, missing, score: found.length / q.expect.length, status, answer, citations,\n ...(method ? { method } : {}), ...(ms !== undefined ? { ms } : {}), ...(costUsd !== undefined ? { costUsd } : {}),\n }\n })\n const score = results.length ? results.reduce((s, r) => s + r.score, 0) / results.length : 0\n return {\n at: meta.at ?? new Date().toISOString(),\n questions: meta.questions, agent: meta.agent, shared: meta.shared,\n ...(meta.settings ? { settings: meta.settings } : {}),\n score, full: results.filter((r) => r.missing.length === 0).length, results,\n }\n}\n\nexport interface ScoreDelta {\n id: string\n question: string\n before: number\n after: number\n /** Facts the later run found that the earlier one missed. */\n gained: string[]\n lost: string[]\n /** Wall time and spend of the question in each run, when recorded. */\n ms?: { before?: number; after?: number }\n costUsd?: { before?: number; after?: number }\n}\n\n/** Mean time and spend per question of one report, over the questions\n * that recorded them. Unset when none did. */\nexport interface RunCost {\n meanMs?: number\n meanCostUsd?: number\n /** Questions with no recorded spend: the mean leaves them out. */\n unpriced: number\n}\n\nexport function runCost(report: ScoreReport): RunCost {\n const mean = (xs: number[]) => (xs.length ? xs.reduce((a, b) => a + b, 0) / xs.length : undefined)\n const ms = report.results.flatMap((r) => (r.ms === undefined ? [] : [r.ms]))\n const usd = report.results.flatMap((r) => (r.costUsd === undefined ? [] : [r.costUsd]))\n return { meanMs: mean(ms), meanCostUsd: mean(usd), unpriced: report.results.length - usd.length }\n}\n\nexport interface ReportComparison {\n before: number\n after: number\n deltas: ScoreDelta[]\n /** Settings that differ, as \"key: before → after\". Unknown when either\n * report predates recorded settings. A fair test changes one. */\n changed: string[] | \"unknown\"\n /** Question ids only one of the two reports holds. */\n onlyBefore: string[]\n onlyAfter: string[]\n cost: { before: RunCost; after: RunCost }\n}\n\n/** Per-question change between two reports on the same set. */\nexport function compareReports(before: ScoreReport, after: ScoreReport): ReportComparison {\n const prior = new Map(before.results.map((r) => [r.id, r]))\n const deltas = after.results.map((r) => {\n const b = prior.get(r.id)\n return {\n id: r.id, question: r.question,\n before: b?.score ?? 0, after: r.score,\n gained: r.found.filter((f) => !b?.found.includes(f)),\n lost: (b?.found ?? []).filter((f) => !r.found.includes(f)),\n ...(b?.ms !== undefined || r.ms !== undefined ? { ms: { before: b?.ms, after: r.ms } } : {}),\n ...(b?.costUsd !== undefined || r.costUsd !== undefined ? { costUsd: { before: b?.costUsd, after: r.costUsd } } : {}),\n }\n })\n const afterIds = new Set(after.results.map((r) => r.id))\n return {\n before: before.score, after: after.score, deltas,\n changed: settingsChanged(before, after),\n onlyBefore: before.results.filter((r) => !afterIds.has(r.id)).map((r) => r.id),\n onlyAfter: after.results.filter((r) => !prior.has(r.id)).map((r) => r.id),\n cost: { before: runCost(before), after: runCost(after) },\n }\n}\n\nfunction settingsChanged(before: ScoreReport, after: ScoreReport): string[] | \"unknown\" {\n if (!before.settings || !after.settings) return \"unknown\"\n const a: Record<string, unknown> = { ...before.settings, agent: before.agent, shared: before.shared }\n const b: Record<string, unknown> = { ...after.settings, agent: after.agent, shared: after.shared }\n return [...new Set([...Object.keys(a), ...Object.keys(b)])]\n .filter((k) => a[k] !== b[k])\n .map((k) => `${k}: ${String(a[k])} → ${String(b[k])}`)\n}\n"],"mappings":"4BAsEO,SAASA,EAAiBC,EAA+B,CAC9D,IAAMC,EAAUD,EAAK,KAAK,EAI1B,OAHuBC,EAAQ,WAAW,GAAG,EACzC,KAAK,MAAMA,CAAO,EAClBA,EAAQ,MAAM;AAAA,CAAI,EAAE,OAAQC,GAAMA,EAAE,KAAK,CAAC,EAAE,IAAKA,GAAM,KAAK,MAAMA,CAAC,CAAC,GAC7D,IAAI,CAACC,EAAGC,IAAM,CACvB,IAAMC,EAAKF,GAAK,CAAC,EACXG,EAAW,OAAOD,EAAE,UAAa,SAAWA,EAAE,SAAS,KAAK,EAAI,GAChEE,EAAS,MAAM,QAAQF,EAAE,MAAM,EAAIA,EAAE,OAAO,OAAQG,GAAmB,OAAOA,GAAM,UAAY,CAAC,CAACA,EAAE,KAAK,CAAC,EAAI,CAAC,EACrH,GAAI,CAACF,GAAYC,EAAO,SAAW,EAAG,MAAM,IAAI,MAAM,YAAYH,EAAI,oDAAoD,EAC1H,MAAO,CAAE,GAAI,OAAOC,EAAE,IAAO,UAAYA,EAAE,GAAKA,EAAE,GAAK,IAAID,EAAI,IAAK,SAAAE,EAAU,OAAAC,CAAO,CACvF,CAAC,CACH,CAEA,IAAME,EAAQC,GAAcA,EAAE,YAAY,EAAE,QAAQ,UAAW,GAAG,EAAE,KAAK,EACnEC,EAAUD,GAAcA,EAAE,QAAQ,OAAQ,EAAE,EAG3C,SAASE,EAAWC,EAAgBN,EAA0D,CACnG,IAAMP,EAAOS,EAAKI,CAAM,EAClBC,EAAaH,EAAOE,CAAM,EAC1BE,EAAkB,CAAC,EACnBC,EAAoB,CAAC,EAC3B,QAAWC,KAAQV,GAELU,EAAK,MAAM,GAAG,EAAE,KAAMC,GAAQ,CACxC,IAAMC,EAAIR,EAAOO,CAAG,EACpB,MAAQ,CAAC,CAACA,EAAI,KAAK,GAAKlB,EAAK,SAASS,EAAKS,CAAG,CAAC,GAAOC,EAAE,QAAU,GAAKL,EAAW,SAASK,CAAC,CAC9F,CAAC,EACOJ,EAAQC,GAAS,KAAKC,CAAI,EAEpC,MAAO,CAAE,MAAAF,EAAO,QAAAC,CAAQ,CAC1B,CAEO,SAASI,EACdC,EACAC,EACa,CACb,IAAMC,EAAUD,EAAQ,IAAI,CAAC,CAAE,EAAAE,EAAG,OAAAX,EAAQ,OAAAY,EAAQ,UAAAC,EAAW,OAAAC,EAAQ,GAAAC,EAAI,QAAAC,CAAQ,IAAM,CACrF,GAAM,CAAE,MAAAd,EAAO,QAAAC,CAAQ,EAAIJ,EAAWC,EAAQW,EAAE,MAAM,EACtD,MAAO,CACL,GAAIA,EAAE,GAAI,SAAUA,EAAE,SAAU,OAAQA,EAAE,OAAQ,MAAAT,EAAO,QAAAC,EAAS,MAAOD,EAAM,OAASS,EAAE,OAAO,OAAQ,OAAAC,EAAQ,OAAAZ,EAAQ,UAAAa,EACzH,GAAIC,EAAS,CAAE,OAAAA,CAAO,EAAI,CAAC,EAAI,GAAIC,IAAO,OAAY,CAAE,GAAAA,CAAG,EAAI,CAAC,EAAI,GAAIC,IAAY,OAAY,CAAE,QAAAA,CAAQ,EAAI,CAAC,CACjH,CACF,CAAC,EACKC,EAAQP,EAAQ,OAASA,EAAQ,OAAO,CAACb,EAAGL,IAAMK,EAAIL,EAAE,MAAO,CAAC,EAAIkB,EAAQ,OAAS,EAC3F,MAAO,CACL,GAAIF,EAAK,IAAM,IAAI,KAAK,EAAE,YAAY,EACtC,UAAWA,EAAK,UAAW,MAAOA,EAAK,MAAO,OAAQA,EAAK,OAC3D,GAAIA,EAAK,SAAW,CAAE,SAAUA,EAAK,QAAS,EAAI,CAAC,EACnD,MAAAS,EAAO,KAAMP,EAAQ,OAAQlB,GAAMA,EAAE,QAAQ,SAAW,CAAC,EAAE,OAAQ,QAAAkB,CACrE,CACF,CAwBO,SAASQ,EAAQC,EAA8B,CACpD,IAAMC,EAAQC,GAAkBA,EAAG,OAASA,EAAG,OAAO,CAACC,EAAGC,IAAMD,EAAIC,EAAG,CAAC,EAAIF,EAAG,OAAS,OAClFN,EAAKI,EAAO,QAAQ,QAAS3B,GAAOA,EAAE,KAAO,OAAY,CAAC,EAAI,CAACA,EAAE,EAAE,CAAE,EACrEgC,EAAML,EAAO,QAAQ,QAAS3B,GAAOA,EAAE,UAAY,OAAY,CAAC,EAAI,CAACA,EAAE,OAAO,CAAE,EACtF,MAAO,CAAE,OAAQ4B,EAAKL,CAAE,EAAG,YAAaK,EAAKI,CAAG,EAAG,SAAUL,EAAO,QAAQ,OAASK,EAAI,MAAO,CAClG,CAgBO,SAASC,EAAeC,EAAqBC,EAAsC,CACxF,IAAMC,EAAQ,IAAI,IAAIF,EAAO,QAAQ,IAAKlC,GAAM,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EACpDqC,EAASF,EAAM,QAAQ,IAAKnC,GAAM,CACtC,IAAM+B,EAAIK,EAAM,IAAIpC,EAAE,EAAE,EACxB,MAAO,CACL,GAAIA,EAAE,GAAI,SAAUA,EAAE,SACtB,OAAQ+B,GAAG,OAAS,EAAG,MAAO/B,EAAE,MAChC,OAAQA,EAAE,MAAM,OAAQsC,GAAM,CAACP,GAAG,MAAM,SAASO,CAAC,CAAC,EACnD,MAAOP,GAAG,OAAS,CAAC,GAAG,OAAQO,GAAM,CAACtC,EAAE,MAAM,SAASsC,CAAC,CAAC,EACzD,GAAIP,GAAG,KAAO,QAAa/B,EAAE,KAAO,OAAY,CAAE,GAAI,CAAE,OAAQ+B,GAAG,GAAI,MAAO/B,EAAE,EAAG,CAAE,EAAI,CAAC,EAC1F,GAAI+B,GAAG,UAAY,QAAa/B,EAAE,UAAY,OAAY,CAAE,QAAS,CAAE,OAAQ+B,GAAG,QAAS,MAAO/B,EAAE,OAAQ,CAAE,EAAI,CAAC,CACrH,CACF,CAAC,EACKuC,EAAW,IAAI,IAAIJ,EAAM,QAAQ,IAAKnC,GAAMA,EAAE,EAAE,CAAC,EACvD,MAAO,CACL,OAAQkC,EAAO,MAAO,MAAOC,EAAM,MAAO,OAAAE,EAC1C,QAASG,EAAgBN,EAAQC,CAAK,EACtC,WAAYD,EAAO,QAAQ,OAAQlC,GAAM,CAACuC,EAAS,IAAIvC,EAAE,EAAE,CAAC,EAAE,IAAKA,GAAMA,EAAE,EAAE,EAC7E,UAAWmC,EAAM,QAAQ,OAAQnC,GAAM,CAACoC,EAAM,IAAIpC,EAAE,EAAE,CAAC,EAAE,IAAKA,GAAMA,EAAE,EAAE,EACxE,KAAM,CAAE,OAAQ0B,EAAQQ,CAAM,EAAG,MAAOR,EAAQS,CAAK,CAAE,CACzD,CACF,CAEA,SAASK,EAAgBN,EAAqBC,EAA0C,CACtF,GAAI,CAACD,EAAO,UAAY,CAACC,EAAM,SAAU,MAAO,UAChD,IAAML,EAA6B,CAAE,GAAGI,EAAO,SAAU,MAAOA,EAAO,MAAO,OAAQA,EAAO,MAAO,EAC9FH,EAA6B,CAAE,GAAGI,EAAM,SAAU,MAAOA,EAAM,MAAO,OAAQA,EAAM,MAAO,EACjG,MAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,OAAO,KAAKL,CAAC,EAAG,GAAG,OAAO,KAAKC,CAAC,CAAC,CAAC,CAAC,EACvD,OAAQU,GAAMX,EAAEW,CAAC,IAAMV,EAAEU,CAAC,CAAC,EAC3B,IAAKA,GAAM,GAAGA,MAAM,OAAOX,EAAEW,CAAC,CAAC,YAAO,OAAOV,EAAEU,CAAC,CAAC,GAAG,CACzD","names":["parseQuestionSet","text","trimmed","l","x","i","r","question","expect","e","norm","s","digits","matchFacts","answer","textDigits","found","missing","fact","alt","d","buildReport","meta","answers","results","q","status","citations","method","ms","costUsd","score","runCost","report","mean","xs","a","b","usd","compareReports","before","after","prior","deltas","f","afterIds","settingsChanged","k"]}
|
package/dist/tool-XLWLXGB5.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{b as h}from"./chunk-RRGITX5B.js";import"./chunk-RKPAVWXF.js";import{f}from"./chunk-Y4CYQV7G.js";import{b as u}from"./chunk-LLNPKE7H.js";import"./chunk-SHEUCITK.js";import"./chunk-FWDRBUMS.js";import"./chunk-SSQMFHSM.js";import"./chunk-LUYN6RAC.js";import"./chunk-3UOTLMXD.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-DYGQF3MI.js";import"./chunk-BRK6M6LA.js";import"./chunk-UIBUZ2N3.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";var m=new Set(["cron","heartbeat","api","a2a","mesh","approvals","requests"]);function y(e){return typeof e=="string"?e.trim():""}async function A(e,i){let c=i.fetch??fetch,d=i.daemonUrl.replace(/\/$/,""),s=(y(e.action)||"create").toLowerCase(),r=h(e,i.env??process.env);if(s==="status"){let o=y(e.id);if(!o)return"Error: `id` is required for status (the card id you got when you raised it).";try{let n=await c(`${d}/approvals/${encodeURIComponent(o)}`,{signal:AbortSignal.timeout(1e4)}),a=await n.json().catch(()=>({}));if(!n.ok)return`Error: ${a?.error||`HTTP ${n.status}`}`;let t=a.card;if(r&&t.raised_by!==r.agentId)return`Error: card "${o}" was raised by another agent.`;if(t.status==="pending")return`Card ${t.id} is still waiting for the operator. It expires ${t.expires}; then "${t.if_silent}" applies.`;if(t.status==="decided"){let p=t.verdict==="yes"?f(t).join(`
|
|
2
|
-
`):"";return`Card ${t.id}: the operator said ${String(t.verdict).toUpperCase()}.${t.note?` Note: ${t.note}`:""}${p?`
|
|
3
|
-
${p}`:""}`}return`Card ${t.id} expired unanswered; the default applied: ${t.outcome??t.if_silent}.`}catch(n){return`Error: couldn't reach the daemon (${n?.message??n}).`}}if(s!=="create")return`Error: unknown action "${s}". Use create or status.`;if(!r)return"Error: couldn't tell which agent you are. Pass callerAgentId.";let l=r.channel&&r.chatId&&!m.has(r.channel)?{channel:r.channel,chatId:r.chatId,...r.accountId?{accountId:r.accountId}:{}}:void 0,$={title:e.title,ask:e.ask,recommend:e.recommend,if_silent:e.if_silent,expires:e.expires,source:e.source,choices:e.choices,draft:e.draft,say:e.say,context:e.context,raised_by:r.agentId,...l?{reply:l}:{}};try{let o=await c(`${d}/approvals`,{method:"POST",headers:{"Content-Type":"application/json",...u(i.env??process.env)},body:JSON.stringify($),signal:AbortSignal.timeout(1e4)}),n=await o.json().catch(()=>({}));if(!o.ok)return`Error: ${n?.error||`HTTP ${o.status}`}`;let a=n.card;return[`Decision card ${a.id} is in the operator's Approvals inbox.`,`If nobody answers by ${a.expires}, "${a.if_silent}" applies.`,"You will get a message with the result. Tell the requester it is waiting for approval; don't ask the operator again in chat."].join(" ")}catch(o){return`Error: couldn't reach the daemon (${o?.message??o}).`}}export{A as runApprovalTool};
|
|
4
|
-
//# sourceMappingURL=tool-XLWLXGB5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/approvals/tool.ts"],"sourcesContent":["import { resolveScheduleCaller } from \"@/crons/schedule-tool\"\nimport { callerHeaders } from \"@/calls/service\"\nimport { answerLines } from \"./choices\"\n\n// --- Agent-facing `agentx_approval` tool ---\n//\n// Lets an agent raise a decision card instead of asking the operator in\n// chat, and check what happened to one. It talks to the daemon's\n// /approvals endpoints, which never decide: there is no action here that\n// approves or rejects anything.\n\nexport type ApprovalToolAction = \"create\" | \"status\"\n\nexport interface ApprovalToolDeps {\n daemonUrl: string\n fetch?: typeof fetch\n env?: NodeJS.ProcessEnv\n}\n\nconst NON_CHAT_CHANNELS = new Set([\"cron\", \"heartbeat\", \"api\", \"a2a\", \"mesh\", \"approvals\", \"requests\"])\n\nfunction str(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\"\n}\n\n/** Returns the text the agent sees. Every refusal is text, never a throw. */\nexport async function runApprovalTool(args: Record<string, unknown>, deps: ApprovalToolDeps): Promise<string> {\n const doFetch = deps.fetch ?? fetch\n const base = deps.daemonUrl.replace(/\\/$/, \"\")\n const action = (str(args.action) || \"create\").toLowerCase() as ApprovalToolAction\n const caller = resolveScheduleCaller(args, deps.env ?? process.env)\n\n if (action === \"status\") {\n const id = str(args.id)\n if (!id) return \"Error: `id` is required for status (the card id you got when you raised it).\"\n try {\n const res = await doFetch(`${base}/approvals/${encodeURIComponent(id)}`, { signal: AbortSignal.timeout(10_000) })\n const data = await res.json().catch(() => ({})) as any\n if (!res.ok) return `Error: ${data?.error || `HTTP ${res.status}`}`\n const c = data.card\n if (caller && c.raised_by !== caller.agentId) return `Error: card \"${id}\" was raised by another agent.`\n if (c.status === \"pending\") return `Card ${c.id} is still waiting for the operator. It expires ${c.expires}; then \"${c.if_silent}\" applies.`\n if (c.status === \"decided\") {\n const picked = c.verdict === \"yes\" ? answerLines(c).join(\"\\n\") : \"\"\n return `Card ${c.id}: the operator said ${String(c.verdict).toUpperCase()}.${c.note ? ` Note: ${c.note}` : \"\"}${picked ? `\\n${picked}` : \"\"}`\n }\n return `Card ${c.id} expired unanswered; the default applied: ${c.outcome ?? c.if_silent}.`\n } catch (e: any) {\n return `Error: couldn't reach the daemon (${e?.message ?? e}).`\n }\n }\n\n if (action !== \"create\") return `Error: unknown action \"${action}\". Use create or status.`\n if (!caller) return \"Error: couldn't tell which agent you are. Pass callerAgentId.\"\n\n const reply = caller.channel && caller.chatId && !NON_CHAT_CHANNELS.has(caller.channel)\n ? { channel: caller.channel, chatId: caller.chatId, ...(caller.accountId ? { accountId: caller.accountId } : {}) }\n : undefined\n const payload = {\n title: args.title,\n ask: args.ask,\n recommend: args.recommend,\n if_silent: args.if_silent,\n expires: args.expires,\n source: args.source,\n choices: args.choices,\n draft: args.draft,\n say: args.say,\n context: args.context,\n raised_by: caller.agentId,\n ...(reply ? { reply } : {}),\n }\n try {\n const res = await doFetch(`${base}/approvals`, {\n method: \"POST\",\n // The headers name this run: a card moves a request to \"waiting on\n // the owner\" only when it comes from the turn of that request.\n headers: { \"Content-Type\": \"application/json\", ...callerHeaders(deps.env ?? process.env) },\n body: JSON.stringify(payload),\n signal: AbortSignal.timeout(10_000),\n })\n const data = await res.json().catch(() => ({})) as any\n if (!res.ok) return `Error: ${data?.error || `HTTP ${res.status}`}`\n const c = data.card\n return [\n `Decision card ${c.id} is in the operator's Approvals inbox.`,\n `If nobody answers by ${c.expires}, \"${c.if_silent}\" applies.`,\n \"You will get a message with the result. Tell the requester it is waiting for approval; don't ask the operator again in chat.\",\n ].join(\" \")\n } catch (e: any) {\n return `Error: couldn't reach the daemon (${e?.message ?? e}).`\n }\n}\n"],"mappings":"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","names":["NON_CHAT_CHANNELS","str","v","runApprovalTool","args","deps","doFetch","base","action","caller","resolveScheduleCaller","id","res","data","c","picked","answerLines","e","reply","payload","callerHeaders"]}
|
package/dist/types-LJZ2YY5W.js
DELETED
package/dist/wiki-GCRRINW3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-6WF56ME6.js";import{a}from"./chunk-NY7NHGVT.js";import"./chunk-KEXBEUSU.js";import"./chunk-RGZARSHV.js";import{b as c}from"./chunk-WWDYDLY2.js";import"./chunk-YA3P77LV.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-JRS5QRZG.js";import"./chunk-4LWFJ4MZ.js";import"./chunk-BIJHMWXK.js";import"./chunk-4XMALK7X.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-MCI3DIWW.js";import"./chunk-6TURWSMN.js";import"./chunk-QD6IICK7.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{b as WikiHub,a as WikiStore,c as agenticQuery};
|
|
2
|
-
//# sourceMappingURL=wiki-GCRRINW3.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|