agentix-cli 0.135.0 → 0.135.1
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/{absorb-eval-WY3YMLS4.js → absorb-eval-YT5TOTC7.js} +2 -2
- package/dist/{agent-3R5NY7I3.js → agent-DRUIMWF5.js} +2 -2
- package/dist/{board-dashboard-U3ZSCO62.js → board-dashboard-2524GN5N.js} +2 -2
- package/dist/chunk-32LIPTHM.js +55 -0
- package/dist/chunk-32LIPTHM.js.map +1 -0
- package/dist/{chunk-5NT44FKL.js → chunk-3D5XUOBL.js} +2 -2
- package/dist/{chunk-EEBK4F6E.js → chunk-3F4GPRGQ.js} +2 -2
- package/dist/{chunk-BQIWMQNU.js → chunk-H4NSB54D.js} +2 -2
- package/dist/chunk-MTX4UPNB.js +3 -0
- package/dist/chunk-MTX4UPNB.js.map +1 -0
- package/dist/{chunk-NY7NHGVT.js → chunk-MUVE3UAS.js} +2 -2
- package/dist/chunk-MWNCS57L.js +2 -0
- package/dist/chunk-MWNCS57L.js.map +1 -0
- package/dist/{chunk-GSKJ57XY.js → chunk-NG72DYJR.js} +80 -80
- package/dist/chunk-NG72DYJR.js.map +1 -0
- package/dist/{chunk-ZGVVYJIK.js → chunk-R6ECKZLE.js} +2 -2
- package/dist/{chunk-MI7WOGH6.js → chunk-R6KLH34H.js} +2 -2
- 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-6WF56ME6.js → chunk-SN7YH4E4.js} +2 -2
- package/dist/{chunk-RVEMX5MJ.js → chunk-TTG3ZW3W.js} +2 -2
- package/dist/{chunk-ZFRXFUP7.js → chunk-UTW56K5I.js} +2 -2
- package/dist/{chunk-H6VWU2HN.js → chunk-UXOGNBGL.js} +2 -2
- package/dist/{chunk-L5UGH4T4.js → chunk-WYEWNN76.js} +3 -3
- package/dist/{chunk-LU7GDHGD.js → chunk-ZEAT2B5B.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/{contributions-KLRJ4ZXV.js → contributions-ZD6ZGTJR.js} +2 -2
- package/dist/enrich-EFIPWA3P.js +16 -0
- package/dist/{enrich-ZB5I7KHN.js.map → enrich-EFIPWA3P.js.map} +1 -1
- package/dist/event-levels-7CY7AJLY.js +3 -0
- package/dist/event-levels-7CY7AJLY.js.map +1 -0
- package/dist/{hub-TILTOOSS.js → hub-MVX3U6A2.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/load-LQ2I2PQI.js +2 -0
- package/dist/model-call-J7JATTMW.js +2 -0
- package/dist/{program-U3HJY7E5.js → program-WOQXOAYQ.js} +194 -194
- package/dist/program-WOQXOAYQ.js.map +1 -0
- package/dist/{promote-RHVZB2QZ.js → promote-X2XQEEQP.js} +2 -2
- package/dist/push-bridge-325SXDGN.js +1 -1
- package/dist/query-RRHYPXOM.js +2 -0
- package/dist/query-runs-WYRNBLLC.js +6 -0
- package/dist/query-runs-WYRNBLLC.js.map +1 -0
- package/dist/{query-settings-2MGUS6AY.js → query-settings-WKVLQEVZ.js} +2 -2
- package/dist/{registry-LZLIPP7N.js → registry-VXK36CCL.js} +2 -2
- package/dist/score-LNJ46A67.js +3 -0
- package/dist/score-LNJ46A67.js.map +1 -0
- package/dist/types-YZX46RES.js +2 -0
- package/dist/{wiki-GCRRINW3.js → wiki-QZ7XNAMJ.js} +2 -2
- package/dist/wiki-enrich-PMG4T6PP.js +2 -0
- package/package.json +1 -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-WWDYDLY2.js +0 -55
- package/dist/chunk-WWDYDLY2.js.map +0 -1
- package/dist/enrich-ZB5I7KHN.js +0 -16
- package/dist/event-levels-CQWHSLMT.js +0 -3
- package/dist/event-levels-CQWHSLMT.js.map +0 -1
- 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/query-OZXZVLO7.js +0 -2
- package/dist/query-runs-7VX3YAC3.js +0 -4
- package/dist/query-runs-7VX3YAC3.js.map +0 -1
- package/dist/score-DZGPLHCL.js +0 -3
- package/dist/score-DZGPLHCL.js.map +0 -1
- package/dist/types-LJZ2YY5W.js +0 -2
- package/dist/wiki-enrich-P5TNWACZ.js +0 -2
- /package/dist/{absorb-eval-WY3YMLS4.js.map → absorb-eval-YT5TOTC7.js.map} +0 -0
- /package/dist/{agent-3R5NY7I3.js.map → agent-DRUIMWF5.js.map} +0 -0
- /package/dist/{board-dashboard-U3ZSCO62.js.map → board-dashboard-2524GN5N.js.map} +0 -0
- /package/dist/{chunk-5NT44FKL.js.map → chunk-3D5XUOBL.js.map} +0 -0
- /package/dist/{chunk-EEBK4F6E.js.map → chunk-3F4GPRGQ.js.map} +0 -0
- /package/dist/{chunk-BQIWMQNU.js.map → chunk-H4NSB54D.js.map} +0 -0
- /package/dist/{chunk-NY7NHGVT.js.map → chunk-MUVE3UAS.js.map} +0 -0
- /package/dist/{chunk-ZGVVYJIK.js.map → chunk-R6ECKZLE.js.map} +0 -0
- /package/dist/{chunk-MI7WOGH6.js.map → chunk-R6KLH34H.js.map} +0 -0
- /package/dist/{chunk-YA3P77LV.js.map → chunk-SKSYII3K.js.map} +0 -0
- /package/dist/{chunk-6WF56ME6.js.map → chunk-SN7YH4E4.js.map} +0 -0
- /package/dist/{chunk-RVEMX5MJ.js.map → chunk-TTG3ZW3W.js.map} +0 -0
- /package/dist/{chunk-ZFRXFUP7.js.map → chunk-UTW56K5I.js.map} +0 -0
- /package/dist/{chunk-H6VWU2HN.js.map → chunk-UXOGNBGL.js.map} +0 -0
- /package/dist/{chunk-L5UGH4T4.js.map → chunk-WYEWNN76.js.map} +0 -0
- /package/dist/{chunk-LU7GDHGD.js.map → chunk-ZEAT2B5B.js.map} +0 -0
- /package/dist/{contributions-KLRJ4ZXV.js.map → contributions-ZD6ZGTJR.js.map} +0 -0
- /package/dist/{hub-TILTOOSS.js.map → hub-MVX3U6A2.js.map} +0 -0
- /package/dist/{load-EOZUZK7U.js.map → load-LQ2I2PQI.js.map} +0 -0
- /package/dist/{model-call-PKV5UAQ7.js.map → model-call-J7JATTMW.js.map} +0 -0
- /package/dist/{promote-RHVZB2QZ.js.map → promote-X2XQEEQP.js.map} +0 -0
- /package/dist/{query-OZXZVLO7.js.map → query-RRHYPXOM.js.map} +0 -0
- /package/dist/{query-settings-2MGUS6AY.js.map → query-settings-WKVLQEVZ.js.map} +0 -0
- /package/dist/{registry-LZLIPP7N.js.map → registry-VXK36CCL.js.map} +0 -0
- /package/dist/{types-LJZ2YY5W.js.map → types-YZX46RES.js.map} +0 -0
- /package/dist/{wiki-GCRRINW3.js.map → wiki-QZ7XNAMJ.js.map} +0 -0
- /package/dist/{wiki-enrich-P5TNWACZ.js.map → wiki-enrich-PMG4T6PP.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
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-
|
|
2
|
-
//# sourceMappingURL=promote-
|
|
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-3D5XUOBL.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-MEFPXHQJ.js";import"./chunk-MUVE3UAS.js";import"./chunk-KEXBEUSU.js";import"./chunk-ROLSSYXE.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-X2XQEEQP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i}from"./chunk-XGOBZCYC.js";import"./chunk-WCXXXAHV.js";import"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk-XGOBZCYC.js";import"./chunk-WCXXXAHV.js";import"./chunk-JWDJMFU6.js";import"./chunk-GRMCAO3Q.js";import"./chunk-KZKDVIOE.js";import"./chunk-QIJLFPWE.js";export{i as PushRosterSync,a as ROSTER_CHECK_MS,b as ROSTER_RESEND_MS,h as handlePushBridge,g as peerOrigins,d as pushBridgeCaller,c as pushOrigin,f as relayTokenProblem,e as scopedPushTarget};
|
|
2
2
|
//# sourceMappingURL=push-bridge-325SXDGN.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j}from"./chunk-32LIPTHM.js";import"./chunk-SKSYII3K.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-MWNCS57L.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{c as AUTO_SUMMARY_COVERAGE,a as CATALOG_SELECTOR_MODEL,b as CATALOG_SYNTH_MODEL,h as DEFAULT_GRAPH_WEIGHT,g as SHARED_CATALOG_LINES,d as agenticQuery,f as catalogPool,i as rankCatalogPool,e as retrieveArticles,j as sharedQueryEnabled};
|
|
2
|
+
//# sourceMappingURL=query-RRHYPXOM.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import"./chunk-QIJLFPWE.js";import{appendFileSync as c,readFileSync as l,renameSync as y,statSync as m,writeFileSync as p}from"fs";var R="_query-runs.jsonl",g=1e6;function S(e){return e==="error"||e==="no-catalog"}function f(e,u,n=g){try{c(e,`${JSON.stringify(u)}
|
|
2
|
+
`),m(e).size>n&&d(e,Math.floor(n/2))}catch{}}function d(e,u){let n=l(e,"utf-8").split(`
|
|
3
|
+
`).filter(Boolean),a=[],i=0;for(let t=n.length-1;t>=0&&(i+=Buffer.byteLength(n[t])+1,!(i>u));t--)a.push(n[t]);let o=`${e}.${process.pid}.tmp`;p(o,a.reverse().map(t=>`${t}
|
|
4
|
+
`).join("")),y(o,e)}async function b(e,u,n,a){let i=Date.now(),o=(t,r)=>f(e,{at:new Date().toISOString(),agent:u,status:t,method:r,source:n,wallMs:Date.now()-i});try{let t=await a();return o(t.status,t.method),t}catch(t){throw o("error"),t}}function h(e,u){let n=e.split(`
|
|
5
|
+
`).filter(Boolean).flatMap(r=>{try{let s=JSON.parse(r);return s&&typeof s.status=="string"&&typeof s.at=="string"?[s]:[]}catch{return[]}}).filter(r=>!u||r.at>=u),a={},i={};for(let r of n){a[r.status]=(a[r.status]??0)+1;let s=r.source??"cli";i[s]=(i[s]??0)+1}let o=n.map(r=>Number(r.wallMs)||0).sort((r,s)=>r-s),t=r=>o.length?o[Math.min(o.length-1,Math.floor(r*o.length))]:0;return{total:n.length,failed:n.filter(r=>S(r.status)).length,byStatus:a,bySource:i,wallMsP50:t(.5),wallMsP95:t(.95)}}export{R as QUERY_RUNS_FILE,g as QUERY_RUNS_MAX_BYTES,S as queryFailed,f as recordQueryRun,h as summariseQueryRuns,b as timedQuery};
|
|
6
|
+
//# sourceMappingURL=query-runs-WYRNBLLC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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, readFileSync, renameSync, statSync, writeFileSync } from \"fs\"\nimport type { AgenticQueryResult } from \"./query\"\n\nexport const QUERY_RUNS_FILE = \"_query-runs.jsonl\"\n\n/** Past this size the file is cut to its newest half, so it never grows without a limit. */\nexport const QUERY_RUNS_MAX_BYTES = 1_000_000\n\nexport type QueryStatus = AgenticQueryResult[\"status\"]\n\n/** Where the query came from: the `wiki query` command or the `agentx_wiki_query` tool. */\nexport type QuerySource = \"cli\" | \"tool\"\n\nexport interface QueryRunRecord {\n at: string\n agent: string\n status: QueryStatus\n method?: string\n /** Missing on lines written before the tool was counted; those came from the CLI. */\n source?: QuerySource\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, maxBytes = QUERY_RUNS_MAX_BYTES): void {\n try {\n appendFileSync(file, `${JSON.stringify(record)}\\n`)\n if (statSync(file).size > maxBytes) trimToNewest(file, Math.floor(maxBytes / 2))\n } catch {\n // best-effort\n }\n}\n\n/** Keep the newest whole lines that fit in `bytes`. Written to a temp file and renamed, so a reader never sees half a file. */\nfunction trimToNewest(file: string, bytes: number): void {\n const lines = readFileSync(file, \"utf-8\").split(\"\\n\").filter(Boolean)\n const kept: string[] = []\n let size = 0\n for (let i = lines.length - 1; i >= 0; i--) {\n size += Buffer.byteLength(lines[i]) + 1\n if (size > bytes) break\n kept.push(lines[i])\n }\n const tmp = `${file}.${process.pid}.tmp`\n writeFileSync(tmp, kept.reverse().map((l) => `${l}\\n`).join(\"\"))\n renameSync(tmp, file)\n}\n\n/**\n * Run one query and record how it ended. A query that throws is recorded\n * as `error` and the error is thrown on, so no query goes uncounted.\n */\nexport async function timedQuery<T extends { status: QueryStatus; method?: string }>(\n file: string,\n agent: string,\n source: QuerySource,\n run: () => Promise<T>,\n): Promise<T> {\n const start = Date.now()\n const record = (status: QueryStatus, method?: string) =>\n recordQueryRun(file, { at: new Date().toISOString(), agent, status, method, source, wallMs: Date.now() - start })\n try {\n const result = await run()\n record(result.status, result.method)\n return result\n } catch (e) {\n record(\"error\")\n throw e\n }\n}\n\nexport interface QueryRunSummary {\n total: number\n failed: number\n byStatus: Record<string, number>\n bySource: 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 const bySource: Record<string, number> = {}\n for (const r of records) {\n byStatus[r.status] = (byStatus[r.status] ?? 0) + 1\n const source = r.source ?? \"cli\"\n bySource[source] = (bySource[source] ?? 0) + 1\n }\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 bySource,\n wallMsP50: pick(0.5),\n wallMsP95: pick(0.95),\n }\n}\n"],"mappings":"4BAQA,OAAS,kBAAAA,EAAgB,gBAAAC,EAAc,cAAAC,EAAY,YAAAC,EAAU,iBAAAC,MAAqB,KAG3E,IAAMC,EAAkB,oBAGlBC,EAAuB,IAkB7B,SAASC,EAAYC,EAA8B,CACxD,OAAOA,IAAW,SAAWA,IAAW,YAC1C,CAGO,SAASC,EAAeC,EAAcC,EAAwBC,EAAWN,EAA4B,CAC1G,GAAI,CACFN,EAAeU,EAAM,GAAG,KAAK,UAAUC,CAAM;AAAA,CAAK,EAC9CR,EAASO,CAAI,EAAE,KAAOE,GAAUC,EAAaH,EAAM,KAAK,MAAME,EAAW,CAAC,CAAC,CACjF,MAAE,CAEF,CACF,CAGA,SAASC,EAAaH,EAAcI,EAAqB,CACvD,IAAMC,EAAQd,EAAaS,EAAM,OAAO,EAAE,MAAM;AAAA,CAAI,EAAE,OAAO,OAAO,EAC9DM,EAAiB,CAAC,EACpBC,EAAO,EACX,QAASC,EAAIH,EAAM,OAAS,EAAGG,GAAK,IAClCD,GAAQ,OAAO,WAAWF,EAAMG,CAAC,CAAC,EAAI,EAClC,EAAAD,EAAOH,IAF0BI,IAGrCF,EAAK,KAAKD,EAAMG,CAAC,CAAC,EAEpB,IAAMC,EAAM,GAAGT,KAAQ,QAAQ,UAC/BN,EAAce,EAAKH,EAAK,QAAQ,EAAE,IAAKI,GAAM,GAAGA;AAAA,CAAK,EAAE,KAAK,EAAE,CAAC,EAC/DlB,EAAWiB,EAAKT,CAAI,CACtB,CAMA,eAAsBW,EACpBX,EACAY,EACAC,EACAC,EACY,CACZ,IAAMC,EAAQ,KAAK,IAAI,EACjBd,EAAS,CAACH,EAAqBkB,IACnCjB,EAAeC,EAAM,CAAE,GAAI,IAAI,KAAK,EAAE,YAAY,EAAG,MAAAY,EAAO,OAAAd,EAAQ,OAAAkB,EAAQ,OAAAH,EAAQ,OAAQ,KAAK,IAAI,EAAIE,CAAM,CAAC,EAClH,GAAI,CACF,IAAME,EAAS,MAAMH,EAAI,EACzB,OAAAb,EAAOgB,EAAO,OAAQA,EAAO,MAAM,EAC5BA,CACT,OAASC,EAAP,CACA,MAAAjB,EAAO,OAAO,EACRiB,CACR,CACF,CAYO,SAASC,EAAmBC,EAAcC,EAAiC,CAChF,IAAMC,EAA4BF,EAAK,MAAM;AAAA,CAAI,EAAE,OAAO,OAAO,EAAE,QAASV,GAAM,CAChF,GAAI,CACF,IAAMa,EAAI,KAAK,MAAMb,CAAC,EACtB,OAAOa,GAAK,OAAOA,EAAE,QAAW,UAAY,OAAOA,EAAE,IAAO,SAAW,CAACA,CAAC,EAAI,CAAC,CAChF,MAAE,CAAQ,MAAO,CAAC,CAAE,CACtB,CAAC,EAAE,OAAQ,GAAM,CAACF,GAAS,EAAE,IAAMA,CAAK,EAClCG,EAAmC,CAAC,EACpCC,EAAmC,CAAC,EAC1C,QAAW,KAAKH,EAAS,CACvBE,EAAS,EAAE,MAAM,GAAKA,EAAS,EAAE,MAAM,GAAK,GAAK,EACjD,IAAMX,EAAS,EAAE,QAAU,MAC3BY,EAASZ,CAAM,GAAKY,EAASZ,CAAM,GAAK,GAAK,EAE/C,IAAMa,EAAKJ,EAAQ,IAAK,GAAM,OAAO,EAAE,MAAM,GAAK,CAAC,EAAE,KAAK,CAACK,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,OAAQ,GAAMzB,EAAY,EAAE,MAAM,CAAC,EAAE,OACrD,SAAA2B,EACA,SAAAC,EACA,UAAWI,EAAK,EAAG,EACnB,UAAWA,EAAK,GAAI,CACtB,CACF","names":["appendFileSync","readFileSync","renameSync","statSync","writeFileSync","QUERY_RUNS_FILE","QUERY_RUNS_MAX_BYTES","queryFailed","status","recordQueryRun","file","record","maxBytes","trimToNewest","bytes","lines","kept","size","i","tmp","l","timedQuery","agent","source","run","start","method","result","e","summariseQueryRuns","text","since","records","r","byStatus","bySource","ms","a","b","pick","q"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as u}from"./chunk-MEFPXHQJ.js";import{c as a}from"./chunk-
|
|
1
|
+
import{b as u}from"./chunk-MEFPXHQJ.js";import{c as a}from"./chunk-SKSYII3K.js";import"./chunk-MWNCS57L.js";import"./chunk-4LWFJ4MZ.js";import"./chunk-BIJHMWXK.js";import"./chunk-6TURWSMN.js";import"./chunk-QD6IICK7.js";import"./chunk-QIJLFPWE.js";import{readFileSync as f}from"fs";import{resolve as d}from"path";var g={shared:!0,method:"auto",summaries:a,notes:{enabled:!1,types:["project","reference"],dirs:{}}};function y(n,t,e=process.cwd()){if(!n.notes.enabled||!t)return;let r=n.notes.dirs[t];return{owner:t,dir:r?d(e,r):new u({baseDir:d(e,".agentx")}).dirOf(t),types:n.notes.types}}function E(n,t,e=process.env,r=process.cwd()){let i=e.AGENTX_AGENT_ID;if(!(!i||i!==t))return y(n,t,r)}function p(n){if(n)try{return f(n,"utf-8").trim().split(`
|
|
2
2
|
`)[0].trim()||void 0}catch{return}}function c(n,t){try{let e=new URL(n);return e.protocol==="https:"&&e.origin===new URL(t).origin}catch{return!1}}var l=n=>n.map(t=>typeof t=="string"?{repo:t}:{repo:t.repo,about:t.about});function h(n,t=process.env){let e=[];for(let r of n.wiki.query.live.sources){if(r.type==="agentx"){let o=n.node.bind.replace(/^0\.0\.0\.0:/,"127.0.0.1:");e.push({type:"agentx",url:r.url??`http://${o}`,peers:r.peers});continue}let i=(r.tokenEnv?t[r.tokenEnv]:void 0)||p(r.tokenFile);if(r.type==="github"){let o=n.channels.github,s=c(r.apiUrl,"https://api.github.com")?o?.token||p(o?.tokenFile):void 0;e.push({type:"github",apiUrl:r.apiUrl,token:i||s||void 0,repos:l(r.repos)})}else{let o=n.channels.gitlab,s=r.url??o?.host;if(!s)continue;let m=o?.host&&(!r.url||c(s,o.host))?o.token:void 0;e.push({type:"gitlab",url:s,token:i||m||void 0,repos:l(r.repos)})}}return e}function v(n,t=process.env){let e=n.wiki.query;return{shared:e.shared,method:e.method,summaries:{candidates:e.candidates,sharedCandidates:e.sharedCandidates,noteCandidates:e.notes.candidates,maxPages:e.maxPages,pageChars:e.pageChars,linkedPages:e.linkedPages,linkedChars:e.linkedChars,navigatorModel:e.navigatorModel,answerModel:e.answerModel,live:{enabled:e.live.enabled,maxReads:e.live.maxReads,timeoutMs:e.live.timeoutMs,plannerModel:e.live.plannerModel,sources:h(n,t)}},notes:{enabled:e.notes.enabled,types:e.notes.types,dirs:Object.fromEntries(Object.entries(n.agents).flatMap(([r,i])=>i.wiki?.notes?.dir?[[r,i.wiki.notes.dir]]:[]))}}}async function M(n){try{let{loadDaemonConfig:t}=await import("./config-GHMRBRDL.js");return v(t(n))}catch{return g}}export{g as DEFAULT_QUERY_SETTINGS,M as loadQuerySettings,c as mayLendToken,y as noteSourceFor,h as resolveLiveSources,v as resolveQuerySettings,E as toolNoteSourceFor};
|
|
3
|
-
//# sourceMappingURL=query-settings-
|
|
3
|
+
//# sourceMappingURL=query-settings-WKVLQEVZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
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-
|
|
2
|
-
//# sourceMappingURL=registry-
|
|
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-WYEWNN76.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-SN7YH4E4.js";import"./chunk-MUVE3UAS.js";import"./chunk-KEXBEUSU.js";import"./chunk-ROLSSYXE.js";import"./chunk-32LIPTHM.js";import"./chunk-SKSYII3K.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-MWNCS57L.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-VXK36CCL.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
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,e)=>{let t=r??{},i=typeof t.question=="string"?t.question.trim():"",u=Array.isArray(t.expect)?t.expect.filter(c=>typeof c=="string"&&!!c.trim()):[];if(!i||u.length===0)throw new Error(`question ${e+1} needs a "question" and a non-empty "expect" list`);return{id:typeof t.id=="string"&&t.id?t.id:`q${e+1}`,question:i,expect:u}})}var l=n=>n.toLowerCase().replace(/[\s ]+/g," ").trim(),m=n=>n.replace(/\D+/g,"");function h(n,s){let o=l(n),r=m(n),e=[],t=[];for(let i of s)(i.split("|").some(c=>{let g=m(c);return!!c.trim()&&o.includes(l(c))||g.length>=5&&r.includes(g)})?e:t).push(i);return{found:e,missing:t}}function x(n,s){let o=s.map(({q:e,answer:t,status:i,citations:u,method:c,ms:g,costUsd:d})=>{let{found:a,missing:f}=h(t,e.expect);return{id:e.id,question:e.question,expect:e.expect,found:a,missing:f,score:a.length/e.expect.length,status:i,answer:t,citations:u,...c?{method:c}:{},...g!==void 0?{ms:g}:{},...d!==void 0?{costUsd:d}:{}}}),r=o.length?o.reduce((e,t)=>e+t.score,0)/o.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:o.filter(e=>e.missing.length===0).length,results:o}}function p(n){let s=e=>e.length?e.reduce((t,i)=>t+i,0)/e.length:void 0,o=n.results.flatMap(e=>e.ms===void 0?[]:[e.ms]),r=n.results.flatMap(e=>e.costUsd===void 0?[]:[e.costUsd]);return{meanMs:s(o),meanCostUsd:s(r),unpriced:n.results.length-r.length}}function R(n,s){let o=new Map(n.results.map(t=>[t.id,t])),r=s.results.map(t=>{let i=o.get(t.id);return{id:t.id,question:t.question,before:i?.score??0,after:t.score,gained:t.found.filter(u=>!i?.found.includes(u)),lost:(i?.found??[]).filter(u=>!t.found.includes(u)),...i?.ms!==void 0||t.ms!==void 0?{ms:{before:i?.ms,after:t.ms}}:{},...i?.costUsd!==void 0||t.costUsd!==void 0?{costUsd:{before:i?.costUsd,after:t.costUsd}}:{}}}),e=new Set(s.results.map(t=>t.id));return{before:n.score,after:s.score,deltas:r,changed:b(n,s),onlyBefore:n.results.filter(t=>!e.has(t.id)).map(t=>t.id),onlyAfter:s.results.filter(t=>!o.has(t.id)).map(t=>t.id),cost:{before:p(n),after:p(s)}}}function b(n,s){if(!n.settings||!s.settings)return"unknown";let o={...n.settings,agent:n.agent,shared:n.shared},r={...s.settings,agent:s.agent,shared:s.shared};return[...new Set([...Object.keys(o),...Object.keys(r)])].filter(e=>o[e]!==r[e]).map(e=>`${e}: ${String(o[e])} \u2192 ${String(r[e])}`)}export{x as buildReport,R as compareReports,h as matchFacts,S as parseQuestionSet,p as runCost};
|
|
3
|
+
//# sourceMappingURL=score-LNJ46A67.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 /** Models of the summaries method. */\n navigatorModel: string\n answerModel: string\n /** Models of the catalog method. With `method: auto` each question's\n * `method` says which pair answered it. Unset in reports written before\n * they were recorded. */\n catalogSelectorModel?: string\n catalogSynthModel?: 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":"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","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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=wiki-
|
|
1
|
+
import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-SN7YH4E4.js";import{a}from"./chunk-MUVE3UAS.js";import"./chunk-KEXBEUSU.js";import"./chunk-ROLSSYXE.js";import{d as c}from"./chunk-32LIPTHM.js";import"./chunk-SKSYII3K.js";import"./chunk-ERULJ2ZL.js";import"./chunk-WPNRDEHW.js";import"./chunk-MWNCS57L.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-QZ7XNAMJ.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentix-cli",
|
|
3
|
-
"version": "0.135.
|
|
3
|
+
"version": "0.135.1",
|
|
4
4
|
"description": "AI operations layer for small and medium businesses. Routes Telegram, WhatsApp, GitLab, GitHub, crons, webhooks, and mesh tasks to AI agents. Web wizard for operators, CLI for engineers. Self-hosted.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|