agentix-cli 0.70.1 → 0.71.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 (110) hide show
  1. package/apps/mac-voice/Sources/AgentXVoice/CallModel.swift +55 -0
  2. package/apps/mac-voice/Sources/AgentXVoice/Calls.swift +172 -0
  3. package/apps/mac-voice/Sources/AgentXVoice/Panel.swift +28 -3
  4. package/apps/mac-voice/Sources/AgentXVoice/StatusMenu.swift +2 -0
  5. package/apps/mac-voice/Sources/AgentXVoice/main.swift +108 -4
  6. package/dist/{App-LFQTOADB.js → App-PRD5JNO4.js} +2 -2
  7. package/dist/{ChatApp-RNMG2HWX.js → ChatApp-BKS6OJ3L.js} +2 -2
  8. package/dist/{agent-7IW6472I.js → agent-QF2JQ72Z.js} +2 -2
  9. package/dist/{board-dashboard-MYWXVYU3.js → board-dashboard-AROMOAKS.js} +4 -4
  10. package/dist/{chunk-MTPCD4NV.js → chunk-3C2SQDIH.js} +211 -201
  11. package/dist/chunk-3C2SQDIH.js.map +1 -0
  12. package/dist/{chunk-7PWXCN22.js → chunk-4XBYHKYG.js} +2 -2
  13. package/dist/{chunk-YFROK44Z.js → chunk-5Y7QRFSL.js} +2 -2
  14. package/dist/{chunk-RKZGENSE.js → chunk-6LTD7XL5.js} +2 -2
  15. package/dist/{chunk-RN7G3D53.js → chunk-AAA6NGY5.js} +2 -2
  16. package/dist/chunk-AHOGFVHA.js +15 -0
  17. package/dist/{chunk-XXBW7CFN.js.map → chunk-AHOGFVHA.js.map} +1 -1
  18. package/dist/{chunk-D3RJMC37.js → chunk-BO4WLXXC.js} +2 -2
  19. package/dist/{chunk-KTGPH77J.js → chunk-D233M73Q.js} +2 -2
  20. package/dist/{chunk-O2QVQVOV.js → chunk-DJMUP6TK.js} +2 -2
  21. package/dist/{chunk-4J4YVJFH.js → chunk-EMRQ6W5J.js} +2 -2
  22. package/dist/{chunk-N4EIYNN4.js → chunk-HXW4NAWF.js} +2 -2
  23. package/dist/{chunk-KTNOY4LW.js → chunk-IK2XG65P.js} +2 -2
  24. package/dist/{chunk-MOUSATFW.js → chunk-JBVABB26.js} +2 -2
  25. package/dist/{chunk-E6CYC4HQ.js → chunk-JU67IZLC.js} +3 -3
  26. package/dist/chunk-JU67IZLC.js.map +1 -0
  27. package/dist/{chunk-3ZRFES25.js → chunk-K6CHA6JJ.js} +2 -2
  28. package/dist/{chunk-4HCQEGXO.js → chunk-MT3BD6WG.js} +164 -162
  29. package/dist/chunk-MT3BD6WG.js.map +1 -0
  30. package/dist/{chunk-2DWDXT7G.js → chunk-OTMDMGHE.js} +5 -5
  31. package/dist/{chunk-LKA5UUGT.js → chunk-RCKICCTT.js} +2 -2
  32. package/dist/{chunk-5FD7HE2J.js → chunk-SELIVR6U.js} +2 -2
  33. package/dist/{chunk-7334DGUO.js → chunk-SFWA67GQ.js} +2 -2
  34. package/dist/{chunk-FEQ4W4XA.js → chunk-WLX4766Y.js} +2 -2
  35. package/dist/{chunk-DXAWW7ZQ.js → chunk-XJQNIFZ4.js} +2 -2
  36. package/dist/cli.js +1 -1
  37. package/dist/client-UPBQVXYM.js +2 -0
  38. package/dist/config-UY5K6SCL.js +2 -0
  39. package/dist/config-mutator-7KOSRAQF.js +2 -0
  40. package/dist/doctor-GFPSIJGB.js +2 -0
  41. package/dist/index.d.ts +55 -0
  42. package/dist/index.js +1 -1
  43. package/dist/program-XMGZOYX3.js +2 -0
  44. package/dist/{promote-USGFU5NN.js → promote-YLKNYYIU.js} +2 -2
  45. package/dist/{query-NLSKOIWJ.js → query-CVRXEG43.js} +2 -2
  46. package/dist/registry-HZL363TA.js +2 -0
  47. package/dist/{request-planner-VOWMXWRI.js → request-planner-76NCBYBW.js} +2 -2
  48. package/dist/{review-candidates-F6RLNHS2.js → review-candidates-ZUXMX6BJ.js} +2 -2
  49. package/dist/{routing-2LAWEIUG.js → routing-EIGWDKH7.js} +2 -2
  50. package/dist/schedule-tool-PSZMP7C4.js +2 -0
  51. package/dist/scheduler-S24PXNB6.js +2 -0
  52. package/dist/{seat-4LLK2XBM.js → seat-QOY6FA4N.js} +2 -2
  53. package/dist/{select-NJHTHKEQ.js → select-JHKHO5BO.js} +2 -2
  54. package/dist/{set-enabled-HPR6VJCG.js → set-enabled-DVJIUOKX.js} +2 -2
  55. package/dist/{tool-XQMGKZP5.js → tool-WKSLNQ6H.js} +2 -2
  56. package/dist/wiki-PTXUMSIR.js +2 -0
  57. package/package.json +1 -1
  58. package/dist/chunk-4HCQEGXO.js.map +0 -1
  59. package/dist/chunk-E6CYC4HQ.js.map +0 -1
  60. package/dist/chunk-MTPCD4NV.js.map +0 -1
  61. package/dist/chunk-XXBW7CFN.js +0 -15
  62. package/dist/client-IQIBHXVS.js +0 -2
  63. package/dist/config-7AK5TI2D.js +0 -2
  64. package/dist/config-mutator-EI5JNMY4.js +0 -2
  65. package/dist/doctor-CTWQODQG.js +0 -2
  66. package/dist/program-ZKGWGTPV.js +0 -2
  67. package/dist/registry-T7SCVP55.js +0 -2
  68. package/dist/schedule-tool-GOQFT2XQ.js +0 -2
  69. package/dist/scheduler-GJVRJQ7K.js +0 -2
  70. package/dist/wiki-RQ5P4WWJ.js +0 -2
  71. /package/dist/{App-LFQTOADB.js.map → App-PRD5JNO4.js.map} +0 -0
  72. /package/dist/{ChatApp-RNMG2HWX.js.map → ChatApp-BKS6OJ3L.js.map} +0 -0
  73. /package/dist/{agent-7IW6472I.js.map → agent-QF2JQ72Z.js.map} +0 -0
  74. /package/dist/{board-dashboard-MYWXVYU3.js.map → board-dashboard-AROMOAKS.js.map} +0 -0
  75. /package/dist/{chunk-7PWXCN22.js.map → chunk-4XBYHKYG.js.map} +0 -0
  76. /package/dist/{chunk-YFROK44Z.js.map → chunk-5Y7QRFSL.js.map} +0 -0
  77. /package/dist/{chunk-RKZGENSE.js.map → chunk-6LTD7XL5.js.map} +0 -0
  78. /package/dist/{chunk-RN7G3D53.js.map → chunk-AAA6NGY5.js.map} +0 -0
  79. /package/dist/{chunk-D3RJMC37.js.map → chunk-BO4WLXXC.js.map} +0 -0
  80. /package/dist/{chunk-KTGPH77J.js.map → chunk-D233M73Q.js.map} +0 -0
  81. /package/dist/{chunk-O2QVQVOV.js.map → chunk-DJMUP6TK.js.map} +0 -0
  82. /package/dist/{chunk-4J4YVJFH.js.map → chunk-EMRQ6W5J.js.map} +0 -0
  83. /package/dist/{chunk-N4EIYNN4.js.map → chunk-HXW4NAWF.js.map} +0 -0
  84. /package/dist/{chunk-KTNOY4LW.js.map → chunk-IK2XG65P.js.map} +0 -0
  85. /package/dist/{chunk-MOUSATFW.js.map → chunk-JBVABB26.js.map} +0 -0
  86. /package/dist/{chunk-3ZRFES25.js.map → chunk-K6CHA6JJ.js.map} +0 -0
  87. /package/dist/{chunk-2DWDXT7G.js.map → chunk-OTMDMGHE.js.map} +0 -0
  88. /package/dist/{chunk-LKA5UUGT.js.map → chunk-RCKICCTT.js.map} +0 -0
  89. /package/dist/{chunk-5FD7HE2J.js.map → chunk-SELIVR6U.js.map} +0 -0
  90. /package/dist/{chunk-7334DGUO.js.map → chunk-SFWA67GQ.js.map} +0 -0
  91. /package/dist/{chunk-FEQ4W4XA.js.map → chunk-WLX4766Y.js.map} +0 -0
  92. /package/dist/{chunk-DXAWW7ZQ.js.map → chunk-XJQNIFZ4.js.map} +0 -0
  93. /package/dist/{client-IQIBHXVS.js.map → client-UPBQVXYM.js.map} +0 -0
  94. /package/dist/{config-7AK5TI2D.js.map → config-UY5K6SCL.js.map} +0 -0
  95. /package/dist/{config-mutator-EI5JNMY4.js.map → config-mutator-7KOSRAQF.js.map} +0 -0
  96. /package/dist/{doctor-CTWQODQG.js.map → doctor-GFPSIJGB.js.map} +0 -0
  97. /package/dist/{program-ZKGWGTPV.js.map → program-XMGZOYX3.js.map} +0 -0
  98. /package/dist/{promote-USGFU5NN.js.map → promote-YLKNYYIU.js.map} +0 -0
  99. /package/dist/{query-NLSKOIWJ.js.map → query-CVRXEG43.js.map} +0 -0
  100. /package/dist/{registry-T7SCVP55.js.map → registry-HZL363TA.js.map} +0 -0
  101. /package/dist/{request-planner-VOWMXWRI.js.map → request-planner-76NCBYBW.js.map} +0 -0
  102. /package/dist/{review-candidates-F6RLNHS2.js.map → review-candidates-ZUXMX6BJ.js.map} +0 -0
  103. /package/dist/{routing-2LAWEIUG.js.map → routing-EIGWDKH7.js.map} +0 -0
  104. /package/dist/{schedule-tool-GOQFT2XQ.js.map → schedule-tool-PSZMP7C4.js.map} +0 -0
  105. /package/dist/{scheduler-GJVRJQ7K.js.map → scheduler-S24PXNB6.js.map} +0 -0
  106. /package/dist/{seat-4LLK2XBM.js.map → seat-QOY6FA4N.js.map} +0 -0
  107. /package/dist/{select-NJHTHKEQ.js.map → select-JHKHO5BO.js.map} +0 -0
  108. /package/dist/{set-enabled-HPR6VJCG.js.map → set-enabled-DVJIUOKX.js.map} +0 -0
  109. /package/dist/{tool-XQMGKZP5.js.map → tool-WKSLNQ6H.js.map} +0 -0
  110. /package/dist/{wiki-RQ5P4WWJ.js.map → wiki-PTXUMSIR.js.map} +0 -0
@@ -1,15 +0,0 @@
1
- import{a as m,b as V}from"./chunk-QIJLFPWE.js";import{z as s}from"zod";var X,J,Q,ee,te,ne,oe,ae,re,j,E=m(()=>{"use strict";X=s.enum(["mon","tue","wed","thu","fri","sat","sun"]),J=s.object({days:s.array(X).default(["mon","tue","wed","thu","fri"]),start:s.string().regex(/^\d{2}:\d{2}$/),end:s.string().regex(/^\d{2}:\d{2}$/),lunch:s.object({start:s.string().regex(/^\d{2}:\d{2}$/),end:s.string().regex(/^\d{2}:\d{2}$/)}).optional()}),Q=s.object({title:s.string(),responsibilities:s.array(s.string()).default([]),sopPath:s.string().optional(),kpis:s.array(s.string()).default([])}),ee=s.object({role:s.string(),reportsTo:s.string().optional(),schedule:J,utilizationTarget:s.number().min(0).max(1).default(.8)}),te=s.object({channel:s.string(),chatId:s.string(),accountId:s.string().optional()}),ne=s.discriminatedUnion("type",[s.object({type:s.literal("backlog"),path:s.string().default(".agentx/backlog.md")}),s.object({type:s.literal("gitlab"),projects:s.array(s.string()).default([])}),s.object({type:s.literal("wiki"),path:s.string(),glob:s.string().default("**/*.md")})]),oe=s.object({id:s.string(),pm:s.string().optional(),client:s.string().optional()}),ae=s.object({channel:s.string().optional(),chatId:s.string().optional(),username:s.string().optional(),senderId:s.string().optional(),client:s.string(),project:s.string().optional(),displayName:s.string().optional()}),re=s.object({name:s.string().optional(),kind:s.enum(["client","internal","own"]).optional(),respondWithin:s.string().optional(),standing:s.array(s.string()).default([])}),j=s.object({enabled:s.boolean().default(!1),timezone:s.string().default("UTC"),mainChannel:te,workSource:ne,roles:s.record(s.string(),Q).default({}),orgChart:s.record(s.string(),ee).default({}),projects:s.array(oe).default([]),contactMap:s.array(ae).default([]),clients:s.record(s.string(),re).default({}),workTickMinutes:s.number().int().min(1).max(60).default(15),idleQueueThreshold:s.number().int().min(0).default(0),standup:s.object({enabled:s.boolean().default(!0),plansDir:s.string().default(".agentx/plans"),maxAgentsPerDay:s.number().int().min(1).max(100).default(20),dryRun:s.boolean().default(!1)}).default({})})});import{z as u}from"zod";function xt(t,n){let a=new Set(t.labels||[]);if(t.state==="closed"){let r=n.find(i=>i.kind==="closed");if(r)return r.id}for(let r of n)if(r.kind==="scoped-label"&&r.scopedLabel&&a.has(r.scopedLabel))return r.id;for(let r of n)if(r.kind==="label"&&r.mapsToLabel&&a.has(r.mapsToLabel))return r.id;let o=n.find(r=>r.kind==="open-backlog");if(o){let r=o.scopedPrefix+"::";return[...a].some(l=>l.startsWith(r))?null:o.id}return n[0]?.id??null}function St(t,n){let a=[],o=[],r=!1,i=!1;return n.kind==="scoped-label"&&n.scopedLabel?a.push(n.scopedLabel):n.kind==="label"&&n.mapsToLabel?a.push(n.mapsToLabel):n.kind==="closed"&&(r=!0),t&&(t.kind==="scoped-label"&&t.scopedLabel?o.push(t.scopedLabel):t.kind==="label"&&t.mapsToLabel?o.push(t.mapsToLabel):t.kind==="closed"&&n.kind!=="closed"&&(i=!0)),{addLabels:a.length?a:void 0,removeLabels:o.length?o:void 0,closeIssue:r||void 0,reopen:i||void 0}}var ie,se,le,ue,de,ce,A,pe,T,$=m(()=>{"use strict";ie=u.object({name:u.string(),color:u.string().regex(/^#[0-9a-f]{6}$/i).default("#6366f1"),description:u.string().optional()}),se=u.object({id:u.string().regex(/^[a-z0-9_-]+$/,"column id must be lowercase slug"),title:u.string(),kind:u.enum(["open-backlog","scoped-label","closed","label"]).default("label"),mapsToLabel:u.string().optional(),scopedLabel:u.string().optional(),scopedPrefix:u.string().default("Status"),accent:u.string().optional()}),le=u.object({enabled:u.boolean().default(!0),staleDoingMinutes:u.number().int().min(1).default(45),respectLunchBreak:u.boolean().default(!0),respectSchedule:u.boolean().default(!0),action:u.enum(["badge","notify"]).default("badge")}),ue=u.discriminatedUnion("type",[u.object({type:u.literal("gitlab"),projects:u.array(u.string()).min(1)})]),de=[{id:"open",title:"Open",kind:"open-backlog",scopedPrefix:"Status",accent:"#6b7280"},{id:"todo",title:"To Do",kind:"scoped-label",scopedLabel:"Status::To Do",scopedPrefix:"Status",accent:"#fb7a35"},{id:"doing",title:"Doing",kind:"scoped-label",scopedLabel:"Status::Doing",scopedPrefix:"Status",accent:"#22c55e"},{id:"onhold",title:"On Hold",kind:"scoped-label",scopedLabel:"Status::On Hold",scopedPrefix:"Status",accent:"#f59e0b"},{id:"review",title:"Review",kind:"scoped-label",scopedLabel:"Status::Review",scopedPrefix:"Status",accent:"#3b82f6"},{id:"closed",title:"Closed",kind:"closed",scopedPrefix:"Status",accent:"#6b7280"}],ce=u.object({id:u.string().regex(/^[a-z0-9_-]+$/,"board id must be lowercase slug"),name:u.string(),source:ue,primaryToolLabel:u.string().optional(),labels:u.array(ie).default([]),columns:u.array(se).min(1).default(de),timeRangeDays:u.number().int().min(1).max(365).default(30),closedWindowDays:u.number().int().min(1).max(365).default(30),reconciliation:le.default({})}),A=u.array(ce).default([]),pe=u.object({name:u.string(),url:u.string(),dashboardUrl:u.string().optional(),token:u.string().optional(),dashboardToken:u.string().optional()}),T=u.object({enabled:u.boolean().default(!1),port:u.number().int().default(4202),bind:u.string().default("127.0.0.1"),token:u.string().optional(),daemonUrl:u.string().default("http://localhost:18800"),daemons:u.array(pe).default([]),draftAgent:u.string().optional()}).default({})});import{z as me}from"zod";function vt(t){return t==="report"||t==="propose"}function be(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).filter(Boolean).map(n=>n.toLowerCase())}function w(t){return be(t).slice(2).join(" ").replace(/\b(merge|pull)\s+requests?\b/g,"mergerequest").split(" ").filter(Boolean)}function I(t){let n=t.replace(/<<-?\s*(['"]?)([A-Za-z_][A-Za-z0-9_]*)\1([\s\S]*?)^\s*\2\s*$/gm,(r,i,l,d)=>!i&&/\$\(|`/.test(d)?r:r.split(`
2
- `)[0]+`
3
- `),a="",o=0;for(;o<n.length;){let r=n[o];if(r==="\\"){a+=n.slice(o,o+2),o+=2;continue}if(r==="'"){let i=n.indexOf("'",o+1);if(i<0)return null;a+="''",o=i+1;continue}if(r==='"'){let i=o+1;for(;i<n.length&&n[i]!=='"';)i+=n[i]==="\\"?2:1;if(i>=n.length)return null;let l=n.slice(o+1,i);a+=/\$\(|`/.test(l)?` ${l} `:'""',o=i+1;continue}a+=r,o++}return a}function B(t){return t.split(/\|\||&&|[;|&\n`()]|\$\(|<\(|>\(/).map(n=>n.trim().split(/\s+/).filter(Boolean)).filter(n=>n.length>0)}function L(t){let n=0;for(;n<t.length;){let a=t[n];if(xe.has(a))return[];if(ye.has(a)||/^[A-Za-z_][A-Za-z0-9_]*=/.test(a)){n++;continue}break}return t.slice(n)}function P(t){let n=0;for(;n<t.length&&t[n].startsWith("-");)n+=/^-(C|c)$|^--(git-dir|work-tree|namespace)$/.test(t[n])?2:1;return{sub:t[n],rest:t.slice(n+1)}}function ve(t){let[n,...a]=t,o=n.replace(/^.*\//,"");if(!Se.has(o))return`\`${o}\` is not a read-only command`;let r=i=>a.some(l=>i.test(l));switch(o){case"find":return r(/^-(exec|execdir|ok|okdir|delete|fprint|fprint0|fprintf|fls)$/)?"find with -exec/-delete":null;case"sort":return r(/^(-o|--output)/)?"sort -o writes a file":null;case"git":{if(r(/^(-c|--exec-path|--output)/))return"git option that can execute or write";let{sub:i,rest:l}=P(a);return!i||!ke.has(i)?`git ${i??""} is not read-only`.trim():i==="branch"&&l.some(d=>/^-(d|D|m|M|c|C|f|u)$|^--(delete|move|copy|force|set-upstream|unset-upstream|edit-description)/.test(d)||!d.startsWith("-"))?"git branch that changes branches":i==="tag"&&l.some(d=>!/^(-l|--list|-n\d*|--contains|--points-at|--sort=.*|--merged|--no-merged)$/.test(d))?"git tag that creates or deletes tags":i==="remote"&&l.length>0&&!/^(-v|--verbose|show|get-url)$/.test(l[0])?"git remote that changes remotes":i==="config"&&!l.some(d=>/^(--get|--get-all|--get-regexp|--list|-l)$/.test(d))?"git config write":i==="reflog"&&l.length>0&&!/^(show|-)/.test(l[0])?"git reflog that expires or deletes":null}case"gh":case"glab":{let[i,l]=a.filter(d=>!d.startsWith("-"));if(i==="search")return null;if(i==="api"){let d=a.findIndex(p=>/^(-X|--method)$/.test(p));return d>=0&&!/^GET$/i.test(a[d+1]??"")?`${o} api with a non-GET method`:r(/^-X(?!GET$)\w+|^--method=(?!GET$)/i)?`${o} api with a non-GET method`:r(/^(-f|-F|--field|--raw-field|--input)/)?`${o} api with a request body`:null}return!l||!we.has(l)?`${o} ${i??""} ${l??""} is not read-only`.replace(/\s+/g," ").trim():null}case"curl":{let i=a.findIndex(l=>/^(-X|--request)$/.test(l));return i>=0&&!/^(GET|HEAD|OPTIONS)$/i.test(a[i+1]??"")||r(/^-X(?!GET$|HEAD$)\w+|^--request=(?!GET$|HEAD$)/i)?"curl with a non-GET method":r(/^(-d|--data|--data-\w+|--json|-F|--form|-T|--upload-file|-o|--output|-O|--remote-name|-K|--config)/)?"curl that sends a body or writes a file":null}default:return null}}function je(t){let n=t.replace(/\d*>>?\s*\/dev\/null/g," ").replace(/&>>?\s*\/dev\/null/g," ").replace(/\d*>&\s*\d+/g," ");return/[>]/.test(n)}function Ee(t){let n=I(t);if(n===null)return c("report","shell","command too irregular to verify as read-only");if(je(n))return c("report","shell","output redirection writes a file");for(let a of B(n)){let o=L(a);if(o.length===0)continue;let r=ve(o);if(r)return c("report","shell",r)}return f}function Ae(t){if(fe.has(t.tool))return c("report","write",`${t.tool} modifies files`);if(t.tool==="Bash")return Ee(t.command??"");if(ge.has(t.tool))return f;if(t.tool.startsWith("mcp__")){let n=w(t.tool),a=n.find(o=>he.has(o));return a?c("report","outward",`tool "${t.tool}" can change state (${a})`):n.some(o=>D.has(o))?f:c("report","outward",`tool "${t.tool}" is not recognisably read-only`)}return c("report","tool",`tool "${t.tool}" is not on the read-only list`)}function De(t){let n=[];for(let o=0;o<t.length;o++){let r=t[o];if(_e.test(r)){o++;continue}if(/^(--force.*|-d|--delete|--mirror|--all|--tags|--prune)$/.test(r)||/^-[a-zA-Z]*f/.test(r))return c("propose","push","force, delete, mirror and tag pushes are act-level actions");r.startsWith("-")||n.push(r)}let a=n.slice(1);if(a.length===0)return c("propose","push","name the feature branch explicitly: git push <remote> <branch>");for(let o of a){if(o.startsWith("+")||o.startsWith(":"))return c("propose","push",`refspec "${o}" force-pushes or deletes`);let r=(o.includes(":")?o.slice(o.indexOf(":")+1):o).replace(/^refs\/heads\//,"");if(Ce.test(r))return c("propose","push",`pushing to "${r}" is an act-level action; push a feature branch and open a merge request`)}return null}function Re(t){for(let a of Te)if(a.re.test(t))return c("propose",a.id,a.reason);let n=I(t);if(n===null)return c("propose","shell","command too irregular to verify");for(let a of B(n)){let o=L(a);if(o.length===0)continue;let r=[C(o[0]),...o.slice(1)].join(" ");for(let i of $e)if(i.re.test(r))return c("propose",i.id,i.reason);if(C(o[0])==="git"){let{sub:i,rest:l}=P(o.slice(1));if(i==="push"){let d=De(l);if(d)return d}}}return f}function Ie(t){if(t.tool==="Bash")return Re(t.command??"");if(t.tool.startsWith("mcp__")){let n=w(t.tool).find(a=>R.has(a));if(n)return c("propose","outward",`tool "${t.tool}" performs an act-level action (${n})`);if(Be(w(t.tool)))return c("propose","delegate",`tool "${t.tool}" hands work to another agent, which would run at its own full autonomy`)}return f}function Be(t){return t.includes("delegate")||t.includes("handoff")||t.includes("agent")&&t.some(n=>n==="send"||n==="ask"||n==="message"||n==="task")?!0:t.includes("task")&&!t.some(n=>D.has(n))}function jt(t,n){return t==="report"?Ae(n):t==="propose"?Ie(n):f}function Et(t){return t==="report"?"[Autonomy: report] This routine runs read-only. Investigate and report; do not modify files, run mutating commands, or post anywhere. Your final answer is the deliverable. Blocked actions are enforced and logged; if something needs doing, describe it in the report instead.":t==="propose"?"[Autonomy: propose] You may edit files, commit, push a named feature branch, and open a merge request or draft. You may not merge, deploy, delete, force-push, push to protected branches, or operate hosts. These limits are enforced and logged; leave act-level steps as clear recommendations.":""}var _,f,c,fe,ge,D,R,he,ye,xe,C,Se,ke,we,Te,$e,Ce,_e,O=m(()=>{"use strict";_=me.enum(["report","propose","act"]);f={allowed:!0,ruleId:null,reason:null},c=(t,n,a)=>({allowed:!1,ruleId:`autonomy.${t}.${n}`,reason:a}),fe=new Set(["Write","Edit","MultiEdit","NotebookEdit"]),ge=new Set(["Read","Glob","Grep","LS","NotebookRead","WebFetch","WebSearch","TodoWrite","TodoRead","Task","Agent","Skill","ToolSearch","BashOutput","KillShell","ExitPlanMode","EnterPlanMode","ListMcpResourcesTool","ReadMcpResourceTool"]);D=new Set(["get","list","search","read","view","fetch","query","find","show","describe","status","diff","inspect","lookup","count","stats","browse","whoami","download"]),R=new Set(["merge","delete","remove","destroy","drop","deploy","publish","release","approve","archive","revoke","purge","close","transfer","force","rollback","restart","erase","unprotect","truncate","wipe","kill","terminate","unpublish","promote"]),he=new Set([...R,"create","update","post","send","write","edit","add","set","comment","reply","push","run","execute","exec","trigger","upload","move","rename","cancel","retry","assign","label","react","invite","notify","schedule","start","stop","submit","save","patch","put","insert","upsert","apply","install","import","mark","toggle","enable","disable","open","commit","sync","reset","store","remember","forget","broadcast","message","call","dispatch","enqueue","resolve","unassign","lock","unlock","pin"]);ye=new Set(["then","do","else","elif","if","while","until","!","{","}","time"]),xe=new Set(["done","fi","esac","for","case","select","in",";;"]);C=t=>t.replace(/^.*\//,""),Se=new Set(["ls","pwd","cd","cat","head","tail","wc","grep","egrep","fgrep","rg","fd","tree","stat","file","du","df","date","whoami","id","hostname","uname","which","type","sort","uniq","cut","tr","diff","cmp","comm","basename","dirname","realpath","readlink","jq","column","nl","seq","true","false","test","[","sleep","ps","uptime","echo","printf","base64","md5","md5sum","shasum","sha256sum","less","more","printenv","dig","nslookup","host","find","git","gh","glab","curl"]),ke=new Set(["status","log","diff","show","rev-parse","ls-files","ls-tree","blame","shortlog","describe","cat-file","grep","branch","tag","remote","config","reflog","rev-list","merge-base","name-rev","show-ref","for-each-ref","whatchanged"]),we=new Set(["view","list","diff","status","checks","ls"]);Te=[{id:"merge",re:/merge_when_pipeline_succeeds|\bauto[_-]merge\b/i,reason:"auto-merging is an act-level action"},{id:"merge",re:/\b(curl|wget|http|gh\s+api|glab\s+api)\b[^\n]*\/merges?\b/i,reason:"calling a merge endpoint is an act-level action"},{id:"delete",re:/(?:^|\W)(drop|truncate)\s+(table|database|schema|index|collection)\b|(?:^|\W)delete\s+from\b|\bflushall\b|\bflushdb\b/i,reason:"destroying data is an act-level action"},{id:"delete",re:/(-X|--request)[\s=]*['"]?DELETE\b/i,reason:"HTTP DELETE is an act-level action"},{id:"delegate",re:/\b(curl|wget|http)\b[^\n]*(localhost|127\.0\.0\.1|\[::1\])[^\n]*\/(ask|task|send|chat|mesh|workflows?|crons?|reload|config)\b/i,reason:"calling the local daemon to dispatch work escapes this routine's limit"}],$e=[{id:"merge",re:/^(gh\s+pr\s+merge|glab\s+mr\s+merge)\b/i,reason:"merging is an act-level action"},{id:"delete",re:/^rm\s+(.*\s)?(-\w*[rR]\w*|--recursive)\b|^(shred|dropdb)\b|^find\b.*\s-delete\b/i,reason:"deleting is an act-level action"},{id:"delete",re:/^git\s+(clean\s+-\w*f|reset\s+--hard|branch\s+(-\w*[dD]\w*|--delete)|tag\s+(-d|--delete)|stash\s+(drop|clear)|remote\s+(remove|rm))\b/i,reason:"deleting is an act-level action"},{id:"delete",re:/^(gh|glab)\s+\S+\s+delete\b|^docker\s+(rm|rmi|volume\s+rm|system\s+prune)\b|^(kubectl\s+delete|aws\s+s3\s+(rm|rb)|gsutil\s+rm)\b|^doctl\s+.*\sdelete\b/i,reason:"deleting is an act-level action"},{id:"deploy",re:/^(kubectl\s+(apply|rollout|scale|set|patch|replace|create|edit)|helm\s+(install|upgrade|rollback|uninstall|delete)|terraform\s+(apply|destroy|import|taint)|pulumi\s+(up|destroy)|docker\s+push|netlify\s+deploy|fly(ctl)?\s+deploy|serverless\s+deploy|vercel\b.*--prod)\b/i,reason:"deploying is an act-level action"},{id:"deploy",re:/^((npm|pnpm|yarn|bun)(\s+run)?|make|just|task|rake)\s+(\S+:)?deploy\b|^((ba|z)?sh|node|python3?)\s+\S*deploy[^\s/]*$|^\S*\/deploy(\.\w+)?\b|^deploy(\.\w+)?\b/i,reason:"deploying is an act-level action"},{id:"deploy",re:/^((npm|pnpm|yarn|bun)\s+publish|cargo\s+publish|twine\s+upload|(gh|glab)\s+release\s+(create|upload|edit)|(npx\s+)?prisma\s+(migrate\s+(deploy|reset)|db\s+push))\b/i,reason:"publishing or migrating is an act-level action"},{id:"prod",re:/^(ssh|scp|sudo|doas|systemctl|launchctl|service|kill|pkill|killall|reboot|shutdown)\b|^rsync\b.*\s\S+:\S*/i,reason:"operating hosts and services is an act-level action"},{id:"delegate",re:/^(agentx|agentix)\s+(ask|send|task|exec|run|chat|mesh|cron|workflow|daemon|config)\b/i,reason:"handing work to another agent or reconfiguring the daemon escapes this routine's limit"}],Ce=/^(main|master|trunk|develop|development|prod|production|staging|stable|release([/-].*)?|HEAD|@)$/i,_e=/^(-o|--push-option|--repo|--receive-pack|--exec)$/});function Fe(t){let n=String(t??"").trim().toLowerCase();if(!n)return{ok:!1,error:"is empty"};let a=n.split("+").map(i=>i.trim());if(a.some(i=>!i))return{ok:!1,error:`"${t}" has an empty part; write it like opt+space`};let o=Me[a[a.length-1]]??a[a.length-1],r=new Set;for(let i of a.slice(0,-1)){let l=Le[i];if(!l)return{ok:!1,error:`"${i}" is not a modifier; use ctrl, opt, shift or cmd`};if(r.has(l))return{ok:!1,error:`"${t}" names ${l} twice`};r.add(l)}return ze(o)?!M(o)&&!["ctrl","opt","cmd"].some(i=>r.has(i))?{ok:!1,error:`"${t}" needs ctrl, opt or cmd, or it would take that key away from your typing`}:{ok:!0,value:[...Pe.filter(i=>r.has(i)),o].join("+")}:{ok:!1,error:`"${o}" is not a key AgentX Voice can use; use a letter, a digit, f1 to f20, or space, period, comma, slash, return, tab`}}function z(t){let n=Fe(t);return n.ok?void 0:n.error}function Tt(t){let n={ctrl:"\u2303",opt:"\u2325",shift:"\u21E7",cmd:"\u2318"},a={space:"Space",period:".",comma:",",slash:"/",semicolon:";",quote:"'",minus:"-",equal:"=",leftbracket:"[",rightbracket:"]",backslash:"\\",grave:"`",return:"Return",tab:"Tab"},o=t.split("+"),r=o.pop()??"";return o.map(i=>n[i]??i).join("")+(a[r]??r.toUpperCase())}var Le,Pe,Oe,Me,M,ze,b,F=m(()=>{"use strict";Le={ctrl:"ctrl",control:"ctrl",opt:"opt",option:"opt",alt:"opt",shift:"shift",cmd:"cmd",command:"cmd"},Pe=["ctrl","opt","shift","cmd"],Oe=["space","period","comma","slash","semicolon","quote","minus","equal","leftbracket","rightbracket","backslash","grave","return","tab"],Me={".":"period",",":"comma","/":"slash",";":"semicolon","'":"quote","-":"minus","=":"equal","`":"grave",enter:"return"},M=t=>/^f([1-9]|1[0-9]|20)$/.test(t),ze=t=>/^[a-z0-9]$/.test(t)||Oe.includes(t)||M(t);b={talk:"opt+space",stop:"cmd+opt+period",paste:"cmd+opt+v"}});function Ue(t){let n=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t);if(!n)return null;let[a,o,r]=n.slice(1).map(k=>parseInt(k,16)/255),i=Math.max(a,o,r),l=Math.min(a,o,r),d=i-l;return d<.04?null:((i===a?(o-r)/d%6:i===o?(r-a)/d+2:(a-o)/d+4)*60+360)%360}function We(t){let n=Ue(t);if(n===null)return g.find(r=>r.id==="lagoon");let a=g[0],o=360;for(let r of g){let i=Math.abs(r.hue-n),l=Math.min(i,360-i);l<o&&(a=r,o=l)}return a}function Ct(t,n){let a=g.find(o=>o.id===t);return a?{...a,set:!0}:{...We(n),set:!1}}var g,U,W=m(()=>{"use strict";g=[{id:"sunrise",label:"Sunrise",hue:18,colors:["#E8505B","#F2726F","#F79A5A","#FBBF4A","#FFE3A3"]},{id:"desert",label:"Desert",hue:36,colors:["#A4492C","#C8683E","#D9905E","#E7B98A","#F6E3C4"]},{id:"forest",label:"Forest",hue:100,colors:["#2F5D34","#4C7D3A","#6FA046","#9CC25E","#D5EBA4"]},{id:"lagoon",label:"Lagoon",hue:172,colors:["#0B6E73","#0E9594","#1FBFB2","#56DCCB","#B8F4EA"]},{id:"ocean",label:"Ocean",hue:205,colors:["#15457E","#1C6BA8","#2B93CF","#5DBBE8","#BFE6FA"]},{id:"dusk",label:"Dusk",hue:268,colors:["#2E2A7A","#5B3E9E","#8C4FB0","#C8649E","#F4A7B9"]},{id:"blossom",label:"Blossom",hue:330,colors:["#A3245B","#CF3F78","#E8699A","#F49BB8","#FFD6E0"]}],U=g.map(t=>t.id)});var ft={};V(ft,{INTEGRATION_KINDS:()=>Ve,approvalsConfigSchema:()=>G,daemonConfigSchema:()=>Y,eventSubscriptionSchema:()=>Z,expandEnvVars:()=>S,loadDaemonConfig:()=>pt,validateWorkspaces:()=>mt});import{z as e}from"zod";import{readFileSync as H,existsSync as y}from"fs";import{resolve as x}from"path";function He(t){let n=x(t,".env");if(!y(n))return;let a=H(n,"utf-8");for(let o of a.split(`
4
- `)){let r=o.trim();if(!r||r.startsWith("#"))continue;let i=r.indexOf("=");if(i===-1)continue;let l=r.slice(0,i).trim(),d=r.slice(i+1).trim();process.env[l]||(process.env[l]=d)}}function S(t){if(typeof t=="string")return t.replace(/\$\{(\w+)\}/g,(n,a)=>process.env[a]||"");if(Array.isArray(t))return t.map(S);if(t!==null&&typeof t=="object"){let n={};for(let[a,o]of Object.entries(t))n[a]=S(o);return n}return t}function ct(t,n){let a=[],o=new Set;for(let r of t){let i=r.path.join("."),l=/^channels\.telegram\.accounts\.([^.]+)\.token$/.exec(i);if(l&&r.message.toLowerCase().includes("required")){let d=l[1],p=`tg:${d}`;if(o.has(p))continue;o.add(p),a.push(`Hint: Telegram account "${d}" is enabled but has no bot token.
5
- Either:
6
- A) Open ${n} and set channels.telegram.accounts.${d}.token to your bot token (or "\${TG_${d.toUpperCase()}_BOT_TOKEN}" + the matching .env entry).
7
- B) If you don't need Telegram on this instance, remove the entire "telegram" block under "channels" (or set channels.telegram.enabled to false AND drop accounts.${d}).`)}}return a}function pt(t){let n=t?[t]:[x(process.cwd(),"agentx.json"),x(process.cwd(),".agentx/config.json")];He(process.cwd());let a,o;for(let d of n)if(y(d)){a=H(d,"utf-8"),o=d;break}if(!a||!o)throw new Error(`No config found. Create agentx.json or .agentx/config.json
8
- Searched: ${n.join(", ")}`);let r;try{r=JSON.parse(a)}catch(d){throw new Error(`Invalid JSON in ${o}: ${d.message}`)}let i=S(r),l=Y.safeParse(i);if(!l.success){let d=l.error.issues.map(v=>` ${v.path.join(".")}: ${v.message}`).join(`
9
- `),p=ct(l.error.issues,o),k=p.length?`
10
-
11
- ${p.join(`
12
-
13
- `)}`:"";throw new Error(`Config validation failed (${o}):
14
- ${d}${k}`)}return l.data}function mt(t){let n=[];for(let[a,o]of Object.entries(t.agents)){if(!y(o.workspace)){n.push(`Agent "${a}": workspace not found at ${o.workspace}`);continue}if(o.tier==="claude-code"){let l=x(o.workspace,".claude");y(l)||n.push(`Agent "${a}": no .claude/ directory in workspace ${o.workspace}. Claude Code native features (hooks, MCP, skills) won't be available.`)}let r=o.provider||"claude",i=t.providers[r];!["claude-code","codex-cli","opencode"].includes(o.tier)&&(!i||!i.apiKey)&&n.push(`Agent "${a}": provider "${r}" has no API key configured. Set providers.${r}.apiKey in config or use a CLI-backed tier ("claude-code", "codex-cli", or "opencode").`)}for(let[a,o]of Object.entries(t.crons))t.agents[o.agent]||n.push(`Cron "${a}": references unknown agent "${o.agent}"`);if(t.channels.telegram.enabled)for(let[a,o]of Object.entries(t.channels.telegram.accounts))t.agents[o.agentBinding]||n.push(`Telegram account "${a}": references unknown agent "${o.agentBinding}"`);return n}var qe,Ke,Ne,Ze,Ge,Ye,Ve,q,K,h,N,Z,Xe,Je,Qe,et,tt,nt,ot,at,rt,it,st,lt,ut,dt,G,Y,gt=m(()=>{E();$();O();F();W();qe=e.object({apiKey:e.string().optional(),defaultModel:e.string().optional(),baseUrl:e.string().optional(),thinking:e.boolean().optional()}),Ke=e.object({type:e.literal("stdio").optional(),command:e.string(),args:e.array(e.string()).default([]),env:e.record(e.string(),e.string()).optional()}),Ne=e.object({type:e.literal("http"),url:e.string().url(),headers:e.record(e.string(),e.string()).optional()}),Ze=e.union([Ne,Ke]),Ge=e.object({tokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),privateAppTokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),apiKeyEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),refreshTokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),clientIdEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),clientSecretEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),auth:e.literal("keyring").optional(),sessionDir:e.string().optional()}).strict(),Ye=e.object({kind:e.string().min(1),label:e.string().min(1),credentials:Ge.default({}),metadata:e.record(e.string(),e.union([e.string(),e.number(),e.boolean()])).default({}),enabled:e.boolean().default(!0)}),Ve=["telegram-bot","whatsapp","gitlab-user","github-user","gmail","hotmail","smtp","hubspot","salesforce","pipedrive","odoo","trello","linear","asana","jira","notion","stripe","sentry","vercel","twilio","custom"],q=e.enum(["system","elevenlabs"]),K=e.union([e.string(),e.record(e.string(),e.string())]),h=e.string().superRefine((t,n)=>{let a=z(t);a&&n.addIssue({code:e.ZodIssueCode.custom,message:`shortcut ${a}`})}),N=e.object({provider:q.optional(),system:K.optional(),elevenlabsVoiceId:e.string().optional(),gender:e.enum(["female","male","neutral"]).optional(),style:e.string().optional(),intro:e.string().optional(),narrate:e.enum(["off","on","all"]).optional(),rate:e.number().min(.75).max(1.5).optional(),priority:e.enum(["high","normal","low"]).optional(),hotkey:h.optional()}),Z=e.object({kinds:e.array(e.string().min(1)).min(1),agents:e.array(e.string().min(1)).optional(),nodes:e.array(e.string().min(1)).optional(),match:e.string().min(1).optional(),delivery:e.enum(["pull","digest","wake"]).default("pull"),maxPerHour:e.number().int().min(1).max(60).default(4)}),Xe=e.object({name:e.string(),workspace:e.string(),tier:e.enum(["claude-code","codex-cli","opencode","sdk","orchestrator"]).default("claude-code"),provider:e.string().optional(),model:e.string().optional(),systemPrompt:e.string().optional(),mentions:e.array(e.string()).default([]),intents:e.array(e.string()).default([]),maxDelegationDepth:e.number().int().min(0).max(50).default(5),mcp:e.record(e.string(),Ze).optional(),codegraph:e.boolean().default(!1),contextStrategy:e.enum(["layered","planner"]).optional(),contextReferences:e.boolean().default(!1),richMessages:e.boolean().default(!0),maxConcurrent:e.number().default(1),maxExecutionMinutes:e.number().int().min(1).max(240).default(20),preSpawnTimeoutSec:e.number().int().min(10).max(3600).default(300),drainTimeoutSeconds:e.number().int().min(0).max(86400).optional(),permissionMode:e.string().default("default"),billing:e.enum(["subscription","api"]).default("subscription"),toolUseRequired:e.array(e.string()).default([]),gitlabAutoReply:e.boolean().optional(),persistentProcess:e.boolean().default(!1),queueMode:e.enum(["collect","followup","drop"]).default("collect"),heartbeat:e.object({enabled:e.boolean().default(!1),intervalMinutes:e.number().default(30),prompt:e.string().default("Check inbox, pending tasks, and system health. Report anything that needs attention."),channel:e.string().default("heartbeat")}).default({}),access:e.enum(["private","public"]).default("private"),admin:e.boolean().optional(),subscriptions:e.array(Z).default([]),integrations:e.array(Ye).default([]),voice:N.optional(),presence:e.object({color:e.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),palette:e.enum(U).optional(),initial:e.string().max(2).optional(),label:e.string().optional(),allowActions:e.boolean().optional()}).optional()}),Je=e.object({token:e.string(),agentBinding:e.string(),allowFrom:e.array(e.string()).optional(),pollInbound:e.boolean().default(!0)}),Qe=e.object({telegram:e.object({enabled:e.boolean().default(!1),accounts:e.record(e.string(),Je).default({}),policy:e.object({dm:e.enum(["pair","block"]).default("pair"),group:e.enum(["mention-required","all"]).default("mention-required"),allowFrom:e.array(e.string()).optional()}).default({})}).default({}),whatsapp:e.object({enabled:e.boolean().default(!1),sessionDir:e.string().default(".agentx/whatsapp-sessions"),defaultAgent:e.string().optional(),allowFrom:e.array(e.string()).optional(),routes:e.array(e.object({contact:e.string().optional(),group:e.string().optional(),agent:e.string()})).default([]),ingest:e.object({enabled:e.boolean().default(!1),mode:e.enum(["metadata-only","messages"]).default("metadata-only"),allowContacts:e.array(e.string()).default([]),allowGroups:e.array(e.string()).default([]),denyContacts:e.array(e.string()).default([]),denyGroups:e.array(e.string()).default([]),messageCap:e.number().int().min(1).max(500).default(50),historyDays:e.number().int().min(1).max(365).default(30),contactRefreshDays:e.number().int().min(1).max(90).default(7),throttle:e.object({minMsBetweenCalls:e.number().int().min(100).default(1500),maxCallsPerMinute:e.number().int().min(1).default(20),maxChatsPerSweep:e.number().int().min(1).default(25)}).default({}),retentionDays:e.number().int().min(0).default(0)}).default({})}).default({}),gitlab:e.object({enabled:e.boolean().default(!1),webhookPort:e.number().default(18810),webhookSecret:e.string().optional(),host:e.string().default("https://gitlab.com"),token:e.string().optional(),autoReplyLegacy:e.boolean().default(!0),routes:e.array(e.object({project:e.string(),agent:e.string()})).default([]),agentMappings:e.array(e.object({agentId:e.string(),gitlabUsernames:e.array(e.string()).default([]),keywords:e.array(e.string()).default([]),token:e.string().optional(),node:e.string().optional()})).default([]),agentUsernamePrefixes:e.array(e.string().min(1)).default([])}).default({}),github:e.object({enabled:e.boolean().default(!1),autoReplyLegacy:e.boolean().default(!0),token:e.string().optional(),tokenFile:e.string().optional(),appId:e.number().optional(),clientId:e.string().optional(),privateKeyFile:e.string().optional(),webhookSecret:e.string().optional(),routes:e.array(e.object({repo:e.string(),agent:e.string()})).default([]),agentMappings:e.array(e.object({agentId:e.string(),githubUsernames:e.array(e.string()).default([]),token:e.string().optional(),tokenFile:e.string().optional(),node:e.string().optional()})).default([])}).default({}),ntfy:e.object({enabled:e.boolean().default(!1),server:e.string().default("https://ntfy.sh"),topic:e.string().optional(),token:e.string().optional(),defaultPriority:e.number().int().min(1).max(5).default(3),defaultTitle:e.string().optional()}).default({}),push:e.object({enabled:e.boolean().default(!1),keysFile:e.string().default(".agentx/push-keys.json"),subject:e.string().regex(/^(mailto:|https:\/\/)/,"must start with mailto: or https://").optional(),relayTo:e.string().optional(),ttlSeconds:e.number().int().min(0).max(2419200).default(86400),keepRecent:e.number().int().min(0).max(1e3).default(50),allowedHosts:e.array(e.string().min(1)).default(["fcm.googleapis.com","push.services.mozilla.com","push.apple.com","notify.windows.com"])}).default({}),webrtc:e.object({enabled:e.boolean().default(!1),stunServers:e.array(e.string()).default(["stun:stun.l.google.com:19302"]),turnServers:e.array(e.object({urls:e.string(),username:e.string().optional(),credential:e.string().optional()})).default([]),allowedCallers:e.array(e.string()).default([]),ringNotify:e.array(e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()})).default([]),callUrlBase:e.string().optional(),bot:e.object({enabled:e.boolean().default(!1),defaultAgentId:e.string().optional(),whisperBackend:e.enum(["auto","mlx","openai"]).default("auto"),whisperModel:e.string().optional(),whisperLanguage:e.string().default("auto"),mlxBinary:e.string().optional(),transcriptChannel:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),maxCallMinutes:e.number().int().min(1).max(240).default(30)}).default({})}).default({})}),et=e.object({enabled:e.boolean().default(!0),schedule:e.string(),timezone:e.string().default("UTC"),agent:e.string(),prompt:e.string().default(""),command:e.string().optional(),timeout:e.number().default(600),model:e.string().optional(),maxOutputTokens:e.number().int().min(50).max(8e3).optional(),autonomy:_.optional(),onError:e.union([e.enum(["log","notify","disable"]),e.array(e.enum(["log","notify","disable"]))]).default("log").transform(t=>Array.isArray(t)?t:[t]),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),fireToken:e.string().optional(),createdBy:e.string().optional(),approval:e.object({action:e.enum(["create","delete"]),requestedBy:e.string(),requestedAt:e.string()}).optional()}).refine(t=>!!(t.command?.trim()||t.prompt?.trim()),{message:"a cron needs either a prompt (dispatch an agent) or a command (run it directly)"}).refine(t=>!(t.command?.trim()&&t.autonomy&&t.autonomy!=="act"),{message:"autonomy applies to agent routines; a command cron runs no agent (remove autonomy or the command)"}),tt=e.object({name:e.string(),triggers:e.array(e.object({pattern:e.string(),channel:e.string().optional()})),allowedContacts:e.array(e.string()).optional(),agent:e.string(),prompt:e.string(),schedule:e.string().optional(),timezone:e.string().default("UTC"),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}),nt=e.object({url:e.string(),name:e.string(),token:e.string().optional()}),ot=e.object({name:e.string(),agent:e.string(),enabled:e.boolean().default(!0)}),at=e.object({enabled:e.boolean().default(!1),peers:e.array(nt).default([]),inboxes:e.array(ot).default([]),discovery:e.enum(["static","mdns"]).default("static"),healthCheck:e.object({interval:e.number().default(60),timeout:e.number().default(10)}).default({}),feed:e.object({enabled:e.boolean().default(!0),skipTypes:e.array(e.string().min(1)).default(["task:step"])}).default({}),delegation:e.object({asyncWhenHuman:e.boolean().default(!0),timeoutMinutes:e.number().int().min(1).max(240).default(30)}).default({})}),rt=e.object({enabled:e.boolean().default(!1),baseDir:e.string().default(".agentx/graph"),draftAgent:e.string().optional(),reviewAgent:e.string().optional(),autoApproveStructure:e.enum(["strict","extend-leaves","any"]).default("extend-leaves"),autoApproveConfidence:e.number().min(0).max(1).default(1),classifierModel:e.string().default("claude-haiku-4-5-20251001"),retrievalWeights:e.object({graph:e.number().min(0).default(.6),bm25:e.number().min(0).default(.4)}).default({})}).default({}),it=e.object({mode:e.enum(["off","shadow","active"]).default("off"),backend:e.string().optional(),model:e.string().optional(),timeoutMs:e.number().int().min(100).default(1e4),temperature:e.number().min(.01).default(1),explore:e.number().min(0).max(1).default(.15),holdout:e.number().min(0).max(1).optional()}).default({}),st=e.object({enabled:e.boolean().default(!1),dbPath:e.string().default(".agentx/decisions/decisions.sqlite"),redactState:e.boolean().default(!1),keepStateRows:e.number().int().min(0).default(2e3),defaultBackend:e.string().default("local"),backends:e.object({local:e.object({provider:e.string().default("claude-code"),model:e.string().default("claude-haiku-4-5-20251001"),structureMode:e.enum(["auto","tool","text"]).default("auto"),normalizeProbabilities:e.boolean().default(!0),nRetryMalformedStructure:e.number().int().min(0).max(3).default(1),maxStateChars:e.number().int().min(500).default(24e3)}).default({}),simpleJev:e.object({baseUrl:e.string().default("http://127.0.0.1:8000/v1"),model:e.string().optional(),apiKeyEnv:e.string().optional(),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(6e3),maxChoiceOptions:e.number().int().min(2).max(255).default(50)}).default({}),jev:e.object({baseUrl:e.string().default("https://openrouter.ai/api/alpha"),path:e.string().default("/decisions"),model:e.string().default("jev-latest"),apiKeyEnv:e.string().default("OPENROUTER_API_KEY"),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(9e4),maxChoiceOptions:e.number().int().min(2).max(255).default(255)}).default({}),typesafe:e.object({baseUrl:e.string().default("https://api.typesafe.ai/v1"),path:e.string().default("/systemone"),model:e.string().default("jev-latest"),apiKeyEnv:e.string().default("TYPESAFE_API_KEY"),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(9e4),maxChoiceOptions:e.number().int().min(2).max(255).default(255)}).default({})}).default({}),seats:e.record(e.string(),it).default({}),routing:e.object({cheapModel:e.string().optional(),cheapModels:e.object({"claude-code":e.string().optional(),"codex-cli":e.string().optional()}).optional()}).default({})}).default({}),lt=e.object({longTaskThreshold:e.number().default(30),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),channel:e.string().optional(),on:e.object({taskComplete:e.boolean().default(!0),taskError:e.boolean().default(!0),taskQueued:e.boolean().default(!1)}).default({}),local:e.object({banner:e.boolean().default(!0),sound:e.boolean().default(!0),soundName:e.string().regex(/^[\w -]+$/).default("Glass"),volume:e.number().min(0).max(1).default(.4),icon:e.string().optional()}).default({})}).default({}),ut=e.object({x:e.number(),y:e.number(),width:e.number().positive(),height:e.number().positive()}),dt=e.object({maxPixels:e.number().int().positive().default(12e5),timeoutMs:e.number().int().positive().default(5e3),intervalMs:e.number().int().positive().default(100),changeThreshold:e.number().min(0).max(1).default(.015),stableMs:e.number().int().nonnegative().default(400),regions:e.record(e.string().regex(/^[a-z][\w-]*$/),ut).default({}),buffer:e.object({enabled:e.boolean().default(!1),seconds:e.number().positive().max(120).default(10),fps:e.number().positive().max(10).default(2),region:e.string().default("screen"),maxPixels:e.number().int().positive().default(3e5)}).default({})}).default({}),G=e.object({defaultExpiryDays:e.number().positive().max(365).default(3),maxExpiryDays:e.number().positive().max(365).default(30),laterHours:e.number().positive().max(24*30).default(24),notifyAgent:e.boolean().default(!0),digest:e.object({enabled:e.boolean().default(!0),time:e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour").default("09:00"),timezone:e.string().refine(t=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:t}),!0}catch{return!1}},"unknown timezone").optional(),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}).default({})}).default({}),Y=e.object({node:e.object({id:e.string(),name:e.string(),bind:e.string().default("127.0.0.1:18800"),defaultAgent:e.string().optional()}),providers:e.record(e.string(),qe).default({}),agents:e.record(e.string(),Xe).default({}),channels:Qe.default({}),crons:e.record(e.string(),et).default({}),services:e.record(e.string(),tt).default({}),notifications:lt,approvals:G,shutdown:e.object({drainTimeoutSeconds:e.number().int().min(0).max(86400).optional()}).default({}),resume:e.object({enabled:e.boolean().default(!0),maxAgeMinutes:e.number().int().positive().default(30),maxAttempts:e.number().int().min(0).default(1),reportOnlyChannels:e.array(e.string()).default([]),directChannels:e.array(e.string()).default([]),crashLoop:e.object({restarts:e.number().int().positive().default(3),windowMinutes:e.number().positive().default(10)}).default({})}).default({}),reminders:e.object({enabled:e.boolean().default(!1),lists:e.array(e.string().min(1)).default(["AgentX"]),pollSeconds:e.number().int().min(15).default(60),lookbackHours:e.number().positive().default(24),command:e.string().min(1).default("remindctl")}).default({}),demo:e.object({startupTimeoutSeconds:e.number().int().positive().max(3600).optional()}).default({}),events:e.object({ringSize:e.number().int().min(1).max(1e5).default(1e3)}).default({}),screen:dt,mesh:at.default({}),meshVoices:e.record(e.string(),N.omit({rate:!0,priority:!0,hotkey:!0}).extend({name:e.string().optional()})).default({}),voice:e.object({provider:q.default("system"),fallback:e.enum(["system","none"]).default("system"),system:K.optional(),locale:e.string().default("en"),listener:e.string().optional(),stt:e.enum(["auto","elevenlabs","local"]).default("auto"),allowUnmeasured:e.boolean().default(!1),localStt:e.enum(["mlx-whisper","parakeet"]).default("mlx-whisper"),endOfTurn:e.enum(["vad","volume"]).default("vad"),hotkeys:e.object({talk:h.default(b.talk),stop:h.default(b.stop),paste:h.default(b.paste)}).default({}),card:e.object({timeout:e.number().min(0).max(600).default(30),maxHeight:e.number().min(120).max(800).default(320)}).default({})}).default({}),business:j.optional(),boards:A,dashboard:T,graph:rt,decisions:st,workflows:e.object({enabled:e.boolean().default(!1),dir:e.string().default(".agentx/workflows"),n8n:e.object({baseUrl:e.string().default(""),apiKey:e.string().default("")}).default({baseUrl:"",apiKey:""}),matching:e.object({enabled:e.boolean().default(!1),mode:e.enum(["suggest","auto"]).default("suggest"),autoRunThreshold:e.number().min(0).max(1).default(.85),suggestThreshold:e.number().min(0).max(1).default(.65)}).default({}),editor:e.enum(["disabled","readonly","edit"]).default("edit")}).default({}),procedures:e.object({enabled:e.boolean().default(!0),dir:e.string().default(".agentx/procedures"),extraction:e.object({enabled:e.boolean().default(!1),onTaskCompletion:e.boolean().default(!1),minOccurrences:e.number().int().min(2).default(3),sinceDays:e.number().int().min(1).default(7),maxClusters:e.number().int().min(1).default(5),via:e.string().optional()}).default({}),injection:e.object({enabled:e.boolean().default(!0),maxProcedures:e.number().int().min(1).default(2),minScore:e.number().min(0).max(1).default(.5)}).default({})}).default({}),webhooks:e.array(e.object({id:e.string().regex(/^[a-z0-9][a-z0-9_-]*$/,"webhook id must be lowercase slug"),source:e.string().min(1),agentId:e.string(),secretEnv:e.string().optional(),description:e.string().optional(),enabled:e.boolean().default(!0),node:e.string().optional(),triggers:e.record(e.string(),e.string()).optional(),defaultWorkflow:e.string().optional()})).default([]),session:e.object({staleMinutes:e.number().int().min(1).max(1440).default(720),maxTurnsPerSession:e.number().int().min(2).max(200).default(40),tierTwoThresholdTokens:e.number().int().min(5e4).max(2e5).default(18e4),contextStrategy:e.enum(["layered","planner"]).default("layered"),maxClaudeCodeDispatchesPerHour:e.number().int().min(1).max(1e4).default(80),maxClaudeCodeDispatchesPer5h:e.number().int().min(1).max(5e4).default(180),continuityStateTurns:e.number().int().min(0).max(5).default(0)}).default({}),plugins:e.array(e.string()).default([]),processPool:e.object({maxIdleSeconds:e.number().int().min(5).max(86400).default(30),maxAgeSeconds:e.number().int().min(60).max(86400).default(2700),sweepIntervalSeconds:e.number().int().min(1).max(300).default(5)}).default({})})});export{xt as a,St as b,$ as c,_ as d,vt as e,jt as f,Et as g,O as h,Fe as i,Tt as j,b as k,F as l,g as m,U as n,We as o,Ct as p,W as q,Ve as r,Z as s,G as t,Y as u,S as v,pt as w,mt as x,ft as y,gt as z};
15
- //# sourceMappingURL=chunk-XXBW7CFN.js.map
@@ -1,2 +0,0 @@
1
- import{a,b,c,d,e,f,g}from"./chunk-D3RJMC37.js";import"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";export{b as fetchAgents,d as fetchCrons,c as fetchProcesses,e as killProcess,a as resolveConn,f as sendTask,g as streamTask};
2
- //# sourceMappingURL=client-IQIBHXVS.js.map
@@ -1,2 +0,0 @@
1
- import{r as a,s as b,t as c,u as d,v as e,w as f,x as g,z as h}from"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";h();export{a as INTEGRATION_KINDS,c as approvalsConfigSchema,d as daemonConfigSchema,b as eventSubscriptionSchema,e as expandEnvVars,f as loadDaemonConfig,g as validateWorkspaces};
2
- //# sourceMappingURL=config-7AK5TI2D.js.map
@@ -1,2 +0,0 @@
1
- import{a,b,c,d,e}from"./chunk-FEQ4W4XA.js";import"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";export{b as applyConfigMutation,a as findConfigPath,d as getAtPath,c as setAtPath,e as unsetAtPath};
2
- //# sourceMappingURL=config-mutator-EI5JNMY4.js.map
@@ -1,2 +0,0 @@
1
- import{b as a,c as b,d as c,e as d,f as e}from"./chunk-KTNOY4LW.js";import"./chunk-BYJ3A55Y.js";import"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";export{e as daemonVoiceCheck,b as doctor,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
- //# sourceMappingURL=doctor-CTWQODQG.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-4HCQEGXO.js";import"./chunk-D3RJMC37.js";import"./chunk-KTNOY4LW.js";import"./chunk-KTGPH77J.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-SZDACK6O.js";import"./chunk-MTPCD4NV.js";import"./chunk-E6CYC4HQ.js";import"./chunk-BYJ3A55Y.js";import"./chunk-NMFXY3QU.js";import"./chunk-7PWXCN22.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-MOUSATFW.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-2DWDXT7G.js";import"./chunk-RKZGENSE.js";import"./chunk-N6EWZGIX.js";import"./chunk-WP6KLXTP.js";import"./chunk-DP7RTNDM.js";import"./chunk-N4EIYNN4.js";import"./chunk-SFQUP3BP.js";import"./chunk-5FD7HE2J.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-YFROK44Z.js";import"./chunk-FEQ4W4XA.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-3ZRFES25.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-LKA5UUGT.js";import"./chunk-4J4YVJFH.js";import"./chunk-CECHWYJ2.js";import"./chunk-DXAWW7ZQ.js";import"./chunk-RN7G3D53.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-O2QVQVOV.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-JHCI6XCJ.js";import"./chunk-DSYKYZMT.js";import"./chunk-XXBW7CFN.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as buildProgram};
2
- //# sourceMappingURL=program-ZKGWGTPV.js.map
@@ -1,2 +0,0 @@
1
- import{I as a,J as b,K as c,L as d,M as e,N as f,O as g,P as h,Q as i,R as j,S as k,T as l}from"./chunk-2DWDXT7G.js";import"./chunk-RKZGENSE.js";import"./chunk-N6EWZGIX.js";import"./chunk-WP6KLXTP.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-YFROK44Z.js";import"./chunk-FEQ4W4XA.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-3ZRFES25.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-LKA5UUGT.js";import"./chunk-4J4YVJFH.js";import"./chunk-CECHWYJ2.js";import"./chunk-DXAWW7ZQ.js";import"./chunk-RN7G3D53.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-O2QVQVOV.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.js";import"./chunk-XXBW7CFN.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{k as AgentRegistry,f as TRACE_STEP_SUMMARY_BYTES,c as buildEntryMeta,d as buildEventDigest,e as buildWikiContext,g as clipForTrace,j as emitTraceStepsFromStreamEvent,i as firstMissingRequiredTool,b as getGlobalRegistry,l as richReplyPrompt,a as setGlobalRegistry,h as tallyToolUses};
2
- //# sourceMappingURL=registry-T7SCVP55.js.map
@@ -1,2 +0,0 @@
1
- import{a,b}from"./chunk-7334DGUO.js";import"./chunk-RKPAVWXF.js";import"./chunk-5FD7HE2J.js";import"./chunk-YFROK44Z.js";import"./chunk-FEQ4W4XA.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";export{b as resolveScheduleCaller,a as runScheduleTool};
2
- //# sourceMappingURL=schedule-tool-GOQFT2XQ.js.map
@@ -1,2 +0,0 @@
1
- import{n as a,o as b,p as c,q as d,r as e,s as f}from"./chunk-YFROK44Z.js";import"./chunk-FEQ4W4XA.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-XXBW7CFN.js";import"./chunk-QIJLFPWE.js";export{a as AGENT_RUN_TIMEOUT_FLOOR,f as CronScheduler,b as agentRunTimeout,e as cronRunId,d as getNextCronDate,c as runLinkIds};
2
- //# sourceMappingURL=scheduler-GJVRJQ7K.js.map
@@ -1,2 +0,0 @@
1
- import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-LKA5UUGT.js";import{a}from"./chunk-4J4YVJFH.js";import"./chunk-CECHWYJ2.js";import{a as c}from"./chunk-DXAWW7ZQ.js";import"./chunk-RN7G3D53.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-O2QVQVOV.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-XXBW7CFN.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as WikiHub,a as WikiStore,c as agenticQuery};
2
- //# sourceMappingURL=wiki-RQ5P4WWJ.js.map