agentix-cli 0.129.0 → 0.130.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 (130) hide show
  1. package/dist/{App-G37JNRBW.js → App-DWSHIDN6.js} +2 -2
  2. package/dist/{ChatApp-NCKC7C3L.js → ChatApp-CROSI7JM.js} +2 -2
  3. package/dist/{absorb-eval-ZCWHWKAD.js → absorb-eval-MNGQ752C.js} +2 -2
  4. package/dist/{agent-LJ4SUQCC.js → agent-4AQOFPRD.js} +2 -2
  5. package/dist/{board-dashboard-LZJT4YWV.js → board-dashboard-54A3XTV5.js} +10 -6
  6. package/dist/board-dashboard-54A3XTV5.js.map +1 -0
  7. package/dist/{chunk-VJRITDSQ.js → chunk-242MPMJX.js} +2 -2
  8. package/dist/{chunk-Z5CBUZIW.js → chunk-5KKXJZZ4.js} +2 -2
  9. package/dist/{chunk-AMW2R676.js → chunk-5VKFIBXY.js} +3 -3
  10. package/dist/{chunk-AMW2R676.js.map → chunk-5VKFIBXY.js.map} +1 -1
  11. package/dist/{chunk-ZF5U5KPB.js → chunk-AERIU4AH.js} +2 -2
  12. package/dist/{chunk-AOFTTIZZ.js → chunk-HF4OXA5L.js} +2 -2
  13. package/dist/{chunk-R6UCPHUD.js → chunk-I4GT27UO.js} +2 -2
  14. package/dist/{chunk-M7IJVOJA.js → chunk-I4OQQRY2.js} +3 -3
  15. package/dist/{chunk-BWSB7NOX.js → chunk-J4I5ZJ2V.js} +2 -2
  16. package/dist/chunk-JE5EJGGD.js +4 -0
  17. package/dist/chunk-JE5EJGGD.js.map +1 -0
  18. package/dist/chunk-KBJNJGBP.js +2 -0
  19. package/dist/chunk-KBJNJGBP.js.map +1 -0
  20. package/dist/{chunk-I3RAUJCD.js → chunk-LJWEJ6UZ.js} +23 -14
  21. package/dist/{chunk-I3RAUJCD.js.map → chunk-LJWEJ6UZ.js.map} +1 -1
  22. package/dist/{chunk-X5JTG52Q.js → chunk-LLLBH2HH.js} +2 -2
  23. package/dist/{chunk-ARSVKSC4.js → chunk-MZJY26FW.js} +2 -2
  24. package/dist/{chunk-XIA2ACKX.js → chunk-N2YSVZML.js} +2 -2
  25. package/dist/{chunk-BCUR2TJ7.js → chunk-NR7WLMNI.js} +2 -2
  26. package/dist/{chunk-DVR6PFCJ.js → chunk-Q5FEWCS5.js} +2 -2
  27. package/dist/{chunk-XOQNDWVW.js → chunk-QPYN2UTV.js} +2 -2
  28. package/dist/{chunk-4FMZTM3W.js → chunk-QXZLYCEZ.js} +2 -2
  29. package/dist/{chunk-SCC7HBFZ.js → chunk-RKB7FQJF.js} +2 -2
  30. package/dist/{chunk-4O4GZBKZ.js → chunk-TJDNS5G6.js} +2 -2
  31. package/dist/{chunk-PVUNDNT3.js → chunk-TN5A7PLU.js} +2 -2
  32. package/dist/{chunk-4ZFLYY5P.js → chunk-U2EHJZAZ.js} +2 -2
  33. package/dist/{chunk-YHD4PHFX.js → chunk-UBA2QJCY.js} +6 -6
  34. package/dist/chunk-UBA2QJCY.js.map +1 -0
  35. package/dist/{chunk-EOLEKSN6.js → chunk-UUFJQMHE.js} +2 -2
  36. package/dist/chunk-UUFJQMHE.js.map +1 -0
  37. package/dist/{chunk-CDLJOGVZ.js → chunk-W2HEJKJR.js} +5 -5
  38. package/dist/{chunk-XZN7QBRH.js → chunk-WX67I2KN.js} +2 -2
  39. package/dist/{chunk-CPMQZ6Z7.js → chunk-YHCPBMRH.js} +2 -2
  40. package/dist/cli.js +1 -1
  41. package/dist/{client-A5OK3IFO.js → client-KGWYROLX.js} +2 -2
  42. package/dist/{config-DQ5SILHX.js → config-FNTLKUGA.js} +2 -2
  43. package/dist/{config-mutate-62FCJ3S6.js → config-mutate-7BLOYRZF.js} +2 -2
  44. package/dist/config-mutator-NCLHYPJ3.js +2 -0
  45. package/dist/{contributions-L2YS4AH2.js → contributions-DLUQEAGL.js} +2 -2
  46. package/dist/{doctor-7TPSMMFA.js → doctor-32YP26SJ.js} +2 -2
  47. package/dist/{follow-up-tool-FKWIRFPW.js → follow-up-tool-AQ7NYZZR.js} +2 -2
  48. package/dist/{hub-EU5ECAJB.js → hub-Q3I4ALQ2.js} +2 -2
  49. package/dist/index.d.ts +12 -0
  50. package/dist/index.js +1 -1
  51. package/dist/{notes-2VC47RCK.js → notes-TMAGEDUS.js} +2 -2
  52. package/dist/notes-settings-WMOH2V75.js +2 -0
  53. package/dist/{program-UTSXNAHM.js → program-FESSM5TY.js} +252 -229
  54. package/dist/program-FESSM5TY.js.map +1 -0
  55. package/dist/{promote-XBDWCHLU.js → promote-R7FKN5SY.js} +2 -2
  56. package/dist/{query-UI6GQEL7.js → query-YTKTNXCQ.js} +2 -2
  57. package/dist/{registry-JW6ETTBA.js → registry-7L4RUATA.js} +2 -2
  58. package/dist/{request-planner-SEXYQN7D.js → request-planner-LEUMSI2K.js} +2 -2
  59. package/dist/{review-candidates-PIJWPPHQ.js → review-candidates-MOSGA4IS.js} +2 -2
  60. package/dist/{routing-2V3Y6ZR5.js → routing-FSJ42RZH.js} +2 -2
  61. package/dist/schedule-tool-4T2VZIDW.js +2 -0
  62. package/dist/{scheduler-SVZKDKJV.js → scheduler-6AQDHQI4.js} +2 -2
  63. package/dist/{seat-C6TMCJWI.js → seat-O37EQRHE.js} +2 -2
  64. package/dist/{select-DP64KWO4.js → select-XO2STSQN.js} +2 -2
  65. package/dist/{set-enabled-WCH6FU4N.js → set-enabled-ZNEPEFGF.js} +2 -2
  66. package/dist/{tool-TWQRBV4Y.js → tool-6KMEAY4U.js} +2 -2
  67. package/dist/{tool-WUK3ZOWG.js → tool-PH45YCO5.js} +2 -2
  68. package/dist/wiki-4HD4FZ4W.js +2 -0
  69. package/package.json +1 -1
  70. package/dist/board-dashboard-LZJT4YWV.js.map +0 -1
  71. package/dist/chunk-A347YHEW.js +0 -4
  72. package/dist/chunk-A347YHEW.js.map +0 -1
  73. package/dist/chunk-EOLEKSN6.js.map +0 -1
  74. package/dist/chunk-QUXMLLX5.js +0 -2
  75. package/dist/chunk-QUXMLLX5.js.map +0 -1
  76. package/dist/chunk-YHD4PHFX.js.map +0 -1
  77. package/dist/config-mutator-3ZL5YQSO.js +0 -2
  78. package/dist/notes-settings-X63D5HPM.js +0 -2
  79. package/dist/program-UTSXNAHM.js.map +0 -1
  80. package/dist/schedule-tool-KFZ27JTH.js +0 -2
  81. package/dist/wiki-4LAJ36XR.js +0 -2
  82. /package/dist/{App-G37JNRBW.js.map → App-DWSHIDN6.js.map} +0 -0
  83. /package/dist/{ChatApp-NCKC7C3L.js.map → ChatApp-CROSI7JM.js.map} +0 -0
  84. /package/dist/{absorb-eval-ZCWHWKAD.js.map → absorb-eval-MNGQ752C.js.map} +0 -0
  85. /package/dist/{agent-LJ4SUQCC.js.map → agent-4AQOFPRD.js.map} +0 -0
  86. /package/dist/{chunk-VJRITDSQ.js.map → chunk-242MPMJX.js.map} +0 -0
  87. /package/dist/{chunk-Z5CBUZIW.js.map → chunk-5KKXJZZ4.js.map} +0 -0
  88. /package/dist/{chunk-ZF5U5KPB.js.map → chunk-AERIU4AH.js.map} +0 -0
  89. /package/dist/{chunk-AOFTTIZZ.js.map → chunk-HF4OXA5L.js.map} +0 -0
  90. /package/dist/{chunk-R6UCPHUD.js.map → chunk-I4GT27UO.js.map} +0 -0
  91. /package/dist/{chunk-M7IJVOJA.js.map → chunk-I4OQQRY2.js.map} +0 -0
  92. /package/dist/{chunk-BWSB7NOX.js.map → chunk-J4I5ZJ2V.js.map} +0 -0
  93. /package/dist/{chunk-X5JTG52Q.js.map → chunk-LLLBH2HH.js.map} +0 -0
  94. /package/dist/{chunk-ARSVKSC4.js.map → chunk-MZJY26FW.js.map} +0 -0
  95. /package/dist/{chunk-XIA2ACKX.js.map → chunk-N2YSVZML.js.map} +0 -0
  96. /package/dist/{chunk-BCUR2TJ7.js.map → chunk-NR7WLMNI.js.map} +0 -0
  97. /package/dist/{chunk-DVR6PFCJ.js.map → chunk-Q5FEWCS5.js.map} +0 -0
  98. /package/dist/{chunk-XOQNDWVW.js.map → chunk-QPYN2UTV.js.map} +0 -0
  99. /package/dist/{chunk-4FMZTM3W.js.map → chunk-QXZLYCEZ.js.map} +0 -0
  100. /package/dist/{chunk-SCC7HBFZ.js.map → chunk-RKB7FQJF.js.map} +0 -0
  101. /package/dist/{chunk-4O4GZBKZ.js.map → chunk-TJDNS5G6.js.map} +0 -0
  102. /package/dist/{chunk-PVUNDNT3.js.map → chunk-TN5A7PLU.js.map} +0 -0
  103. /package/dist/{chunk-4ZFLYY5P.js.map → chunk-U2EHJZAZ.js.map} +0 -0
  104. /package/dist/{chunk-CDLJOGVZ.js.map → chunk-W2HEJKJR.js.map} +0 -0
  105. /package/dist/{chunk-XZN7QBRH.js.map → chunk-WX67I2KN.js.map} +0 -0
  106. /package/dist/{chunk-CPMQZ6Z7.js.map → chunk-YHCPBMRH.js.map} +0 -0
  107. /package/dist/{client-A5OK3IFO.js.map → client-KGWYROLX.js.map} +0 -0
  108. /package/dist/{config-DQ5SILHX.js.map → config-FNTLKUGA.js.map} +0 -0
  109. /package/dist/{config-mutate-62FCJ3S6.js.map → config-mutate-7BLOYRZF.js.map} +0 -0
  110. /package/dist/{config-mutator-3ZL5YQSO.js.map → config-mutator-NCLHYPJ3.js.map} +0 -0
  111. /package/dist/{contributions-L2YS4AH2.js.map → contributions-DLUQEAGL.js.map} +0 -0
  112. /package/dist/{doctor-7TPSMMFA.js.map → doctor-32YP26SJ.js.map} +0 -0
  113. /package/dist/{follow-up-tool-FKWIRFPW.js.map → follow-up-tool-AQ7NYZZR.js.map} +0 -0
  114. /package/dist/{hub-EU5ECAJB.js.map → hub-Q3I4ALQ2.js.map} +0 -0
  115. /package/dist/{notes-2VC47RCK.js.map → notes-TMAGEDUS.js.map} +0 -0
  116. /package/dist/{notes-settings-X63D5HPM.js.map → notes-settings-WMOH2V75.js.map} +0 -0
  117. /package/dist/{promote-XBDWCHLU.js.map → promote-R7FKN5SY.js.map} +0 -0
  118. /package/dist/{query-UI6GQEL7.js.map → query-YTKTNXCQ.js.map} +0 -0
  119. /package/dist/{registry-JW6ETTBA.js.map → registry-7L4RUATA.js.map} +0 -0
  120. /package/dist/{request-planner-SEXYQN7D.js.map → request-planner-LEUMSI2K.js.map} +0 -0
  121. /package/dist/{review-candidates-PIJWPPHQ.js.map → review-candidates-MOSGA4IS.js.map} +0 -0
  122. /package/dist/{routing-2V3Y6ZR5.js.map → routing-FSJ42RZH.js.map} +0 -0
  123. /package/dist/{schedule-tool-KFZ27JTH.js.map → schedule-tool-4T2VZIDW.js.map} +0 -0
  124. /package/dist/{scheduler-SVZKDKJV.js.map → scheduler-6AQDHQI4.js.map} +0 -0
  125. /package/dist/{seat-C6TMCJWI.js.map → seat-O37EQRHE.js.map} +0 -0
  126. /package/dist/{select-DP64KWO4.js.map → select-XO2STSQN.js.map} +0 -0
  127. /package/dist/{set-enabled-WCH6FU4N.js.map → set-enabled-ZNEPEFGF.js.map} +0 -0
  128. /package/dist/{tool-TWQRBV4Y.js.map → tool-6KMEAY4U.js.map} +0 -0
  129. /package/dist/{tool-WUK3ZOWG.js.map → tool-PH45YCO5.js.map} +0 -0
  130. /package/dist/{wiki-4LAJ36XR.js.map → wiki-4HD4FZ4W.js.map} +0 -0
@@ -50,5 +50,5 @@ Searched: ${n.join(", ")}`);let o;try{o=JSON.parse(t)}catch(u){throw new Error(`
50
50
  ${m.join(`
51
51
 
52
52
  `)}`:"";throw new Error(`Config validation failed (${r}):
53
- ${u}${b}`)}return Ke(l.data)}function _n(a){let n=[];for(let[t,r]of Object.entries(a.agents)){if(!v(r.workspace)){n.push(`Agent "${t}": workspace not found at ${r.workspace}`);continue}if(r.tier==="claude-code"){let l=I(r.workspace,".claude");v(l)||n.push(`Agent "${t}": no .claude/ directory in workspace ${r.workspace}. Claude Code native features (hooks, MCP, skills) won't be available.`)}let o=r.provider||"claude",i=a.providers[o];!["claude-code","codex-cli","opencode"].includes(r.tier)&&(!i||!i.apiKey)&&n.push(`Agent "${t}": provider "${o}" has no API key configured. Set providers.${o}.apiKey in config or use a CLI-backed tier ("claude-code", "codex-cli", or "opencode").`)}for(let[t,r]of Object.entries(a.crons))a.agents[r.agent]||n.push(`Cron "${t}": references unknown agent "${r.agent}"`);if(a.channels.telegram.enabled)for(let[t,r]of Object.entries(a.channels.telegram.accounts))a.agents[r.agentBinding]||n.push(`Telegram account "${t}": references unknown agent "${r.agentBinding}"`);return n}function Ke(a,n=En()){let t=Object.entries(a.agents).filter(([,l])=>l.wiki?.contribute?.enabled).map(([l])=>l).sort();if(t.length===0)return a;let r=a.wiki.contributions,o=(l,u)=>$e.parse({schedule:l,timezone:r.timezone,agent:t[0],command:u,timeout:3600,onError:"log"}),i={[He]:o(r.schedule,`${n} wiki contribute --all`),[We]:o(r.mergeSchedule,`${n} wiki contributions merge`)};return{...a,crons:{...i,...a.crons}}}function En(){let a=process.argv[1]??"";return/[\\/]cli\.(?:c|m)?js$/.test(a)?`"${process.execPath}" "${a}"`:"agentx"}var ve,Qt,en,tn,nn,an,rn,on,Ce,Oe,R,je,Le,sn,ln,Ne,dn,$e,un,cn,mn,gn,fn,pn,bn,hn,qe,xn,yn,Sn,Pe,De,Me,Be,Ue,Fe,ze,He,We,An=g(()=>{H();X();Ze();Y();ee();ae();oe();le();Te();Re();ve=e.array(e.string().min(1)).superRefine((a,n)=>{let t=Ae(a);t.length&&n.addIssue({code:e.ZodIssueCode.custom,message:`not an agentx tool: ${t.join(", ")}. Use the names the agentx server lists, without "mcp__agentx__".`})}),Qt=e.object({apiKey:e.string().optional(),defaultModel:e.string().optional(),baseUrl:e.string().optional(),thinking:e.boolean().optional()}),en=e.object({type:e.literal("stdio").optional(),command:e.string(),args:e.array(e.string()).default([]),env:e.record(e.string(),e.string()).optional()}),tn=e.object({type:e.literal("http"),url:e.string().url(),headers:e.record(e.string(),e.string()).optional()}),nn=e.union([tn,en]),an=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(),rn=e.object({kind:e.string().min(1),label:e.string().min(1),credentials:an.default({}),metadata:e.record(e.string(),e.union([e.string(),e.number(),e.boolean()])).default({}),enabled:e.boolean().default(!0)}),on=["telegram-bot","whatsapp","gitlab-user","github-user","gmail","hotmail","smtp","hubspot","salesforce","pipedrive","odoo","trello","linear","asana","jira","notion","stripe","sentry","vercel","twilio","custom"],Ce=e.enum(["system","elevenlabs"]),Oe=e.union([e.string(),e.record(e.string(),e.string())]),R=e.string().superRefine((a,n)=>{let t=G(a);t&&n.addIssue({code:e.ZodIssueCode.custom,message:`shortcut ${t}`})}),je=e.object({provider:Ce.optional(),system:Oe.optional(),fallbacks:e.array(e.string().min(1)).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:R.optional()}),Le=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)}),sn=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(),nn).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(),wiki:e.object({contribute:e.object({enabled:e.boolean().default(!1),maxPatches:e.number().int().min(1).max(200).default(30),maxCostUsd:e.number().min(0).max(20).optional(),model:e.string().optional()}).default({}),absorb:e.object({enabled:e.boolean().default(!0)}).default({})}).optional(),permissionMode:e.string().default("default"),billing:e.enum(["subscription","api"]).default("subscription"),cloudSessions:e.object({enabled:e.boolean().default(!1),maxPerDay:e.number().int().min(0).default(0),openHours:e.number().min(1).max(168).default(24),launchTimeoutSeconds:e.number().int().min(10).max(600).default(120)}).default({}),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(Le).default([]),integrations:e.array(rn).default([]),voice:je.optional(),presence:e.object({color:e.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),palette:e.enum(O).optional(),initial:e.string().max(2).optional(),label:e.string().optional(),allowActions:e.boolean().optional()}).optional()}),ln=e.object({token:e.string(),agentBinding:e.string(),allowFrom:e.array(e.string()).optional(),pollInbound:e.boolean().default(!0)}),Ne=e.object({frameIntervalSeconds:e.number().int().min(0).max(3600).default(0),maxSessionMinutes:e.number().int().min(1).max(240).default(10),maxFrameEdge:e.number().int().min(160).max(3840).default(1024),keepFrames:e.boolean().default(!1),streamFrameSeconds:e.number().int().min(2).max(60).default(5),streamMaxSeconds:e.number().int().min(10).max(600).default(60)}).default({}),dn=e.object({telegram:e.object({enabled:e.boolean().default(!1),accounts:e.record(e.string(),ln).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),cloudSessions:e.boolean().default(!1),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([]),issueActions:e.array(e.string().min(1)).default(["opened","reopened","assigned"]),pullRequestActions:e.array(e.string().min(1)).default(["opened","reopened","ready_for_review"]),ignoreOwnChanges:e.boolean().default(!0),debounceSeconds:e.number().min(0).max(3600).default(30)}).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({}),camera:e.object({width:e.number().int().min(160).max(3840).default(1280),height:e.number().int().min(120).max(2160).default(720),frameRate:e.number().int().min(1).max(60).default(15),maxSeconds:e.number().int().min(10).max(7200).default(600),voiceInput:e.boolean().default(!0),speakAnswers:e.boolean().default(!0),bot:Ne}).default({})}).default({})}),$e=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:D.optional(),onError:e.union([e.enum(["log","notify","disable"]),e.array(e.enum(["log","notify","disable"]))]).default("log").transform(a=>Array.isArray(a)?a:[a]),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),deliverResult:e.boolean().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(a=>!!(a.command?.trim()||a.prompt?.trim()),{message:"a cron needs either a prompt (dispatch an agent) or a command (run it directly)"}).refine(a=>!(a.command?.trim()&&a.autonomy&&a.autonomy!=="act"),{message:"autonomy applies to agent routines; a command cron runs no agent (remove autonomy or the command)"}),un=e.object({enabled:e.boolean().default(!1),inbox:e.string().min(1).optional(),crons:e.array(e.string().min(1)).default([]),maxNotesPerRun:e.number().int().min(1).max(100).default(20),maxDeferrals:e.number().int().min(1).max(20).default(3)}).refine(a=>!a.enabled||!!a.inbox,{message:"wikiNotes.enabled needs wikiNotes.inbox: the agent that runs the wiki observe/sweep schedule"}),cn=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()}),mn=e.object({url:e.string(),name:e.string(),token:e.string().optional()}),gn=e.object({name:e.string(),agent:e.string(),enabled:e.boolean().default(!0)}),fn=e.object({enabled:e.boolean().default(!1),peers:e.array(mn).default([]),inboxes:e.array(gn).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),requeueRelayOnRestart:e.boolean().default(!0)}).default({})}),pn=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({}),bn=e.object({mode:e.enum(["off","shadow","active"]).default("off"),backend:e.string().optional(),model:e.string().optional(),timeoutMs:e.number().int().min(100).optional(),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({}),hn=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(),bn).default({}),routing:e.object({cheapModel:e.string().optional(),cheapModels:e.object({"claude-code":e.string().optional(),"codex-cli":e.string().optional()}).optional()}).default({})}).default({}),qe=e.object({allow:e.array(e.string()).default([]),maxPerHour:e.number().int().min(1).max(60).default(3),ringSeconds:e.number().int().min(10).max(300).default(45),maxCallMinutes:e.number().int().min(1).max(240).default(30),ringSound:e.string().regex(/^[\w -]+$/).default("Submarine"),summary:e.boolean().default(!0)}).default({}),xn=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({}),yn=e.object({x:e.number(),y:e.number(),width:e.number().positive(),height:e.number().positive()}),Sn=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-]*$/),yn).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({}),Pe=e.object({enabled:e.boolean().default(!1),channels:e.array(e.string().min(1)).default([]),from:e.array(e.string().regex(/^[a-z0-9_-]+:\S+$/i,"use channel:id, for example telegram:123456789")).default([]),staleAfterHours:e.number().positive().max(24*365).default(24),retentionDays:e.number().positive().max(3650).default(90),plans:e.object({enabled:e.boolean().default(!0),stallMinutes:e.number().positive().max(7*24*60).default(30),maxNudges:e.number().int().min(0).max(20).default(3),approveKinds:e.array(e.string().regex(/^[a-z][a-z0-9_-]{0,30}$/,"a step kind: a short lower-case word")).default(["message"]),disabledAgents:e.array(e.string().min(1)).default([])}).default({})}).default({}),De=e.object({id:e.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"lower-case letters, digits, - and _"),name:e.string().min(1).max(80),say:e.string().trim().min(1).max(120).optional(),role:e.enum(["owner","member","client","guest"]).default("member"),identities:e.array(e.string().regex(/^[A-Za-z][\w-]*:\S.*$/,"write it as channel:id")).default([]),agents:e.array(e.string().min(1)).default([]),deny:e.object({tools:e.array(e.string().min(1)).default([]),skills:e.array(e.string().min(1)).default([])}).strict().default({})}),Me=e.array(De).default([]).superRefine((a,n)=>{let t=_e(a);t&&n.addIssue({code:e.ZodIssueCode.custom,message:t})}),Be=e.object({logRetentionDays:e.number().int().min(1).max(3650).default(90)}).default({}),Ue=e.object({channels:e.array(e.string().min(1)).default([])}).default({}),Fe=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),forwardTo:e.string().min(1).optional(),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(a=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:a}),!0}catch{return!1}},"unknown timezone").optional(),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}).default({}),popup:e.object({enabled:e.boolean().default(!1),style:e.enum(["card","dialog"]).default("card"),theme:e.enum(["system","light","dark"]).default("system"),speak:e.boolean().default(!0),voice:e.string().regex(/^[\w .()-]+$/,"a voice name, as `say -v '?'` lists them").optional(),sound:e.string().regex(/^[\w -]*$/,"a sound name, like chime or Glass").default("chime"),volume:e.number().min(0).max(1).default(.4),timeoutSeconds:e.number().int().min(10).max(3600).default(600)}).default({}),checkin:e.object({enabled:e.boolean().default(!1),times:e.array(e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour")).default(["11:00","14:00","17:00"]),dailyAt:e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour").default("09:00"),timezone:e.string().refine(a=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:a}),!0}catch{return!1}},"unknown timezone").optional(),lists:e.array(e.string().min(1)).default(["Reminders"]),agent:e.string().min(1).optional(),dueWithinHours:e.number().positive().max(24*30).default(24),maxAsksPerPass:e.number().int().min(1).max(20).default(5),composeTimeoutSeconds:e.number().int().min(30).max(3600).default(300)}).default({})}).default({}),ze=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(),Qt).default({}),agents:e.record(e.string(),sn).default({}),wiki:e.object({contributions:e.object({schedule:e.string().default("40 22 * * *"),mergeSchedule:e.string().default("20 23 * * *"),timezone:e.string().default("UTC"),maxCostUsd:e.number().min(0).max(20).default(.5),model:e.string().default("sonnet")}).default({}),query:e.object({shared:e.boolean().default(!0)}).default({})}).default({}),channels:dn.default({}),crons:e.record(e.string(),$e).default({}),wikiNotes:un.default({}),services:e.record(e.string(),cn).default({}),notifications:xn,calls:qe,whatsappTriage:se,approvals:Fe,shutdown:e.object({drainTimeoutSeconds:e.number().int().min(0).max(86400).optional(),restart:e.object({allowBy:e.string().optional(),window:e.string().regex(/^\d{1,2}:\d{2}$/,"window must be HH:MM").optional(),windowWaitMinutes:e.number().int().min(1).max(1440).default(180),forbidOnTimeoutRestart:e.boolean().default(!1)}).default({})}).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({}),requests:Pe,people:Me,members:Be,requestStatus:Ue,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({}),app:e.object({android:e.object({packageName:e.string().regex(/^[a-zA-Z][\w]*(\.[a-zA-Z][\w]*)+$/,"must look like com.example.app").default("dev.agentx.phone"),certFingerprints:e.array(e.string().regex(/^([0-9A-Fa-f]{2}:){31}[0-9A-Fa-f]{2}$/,"must be 32 hex pairs separated by colons")).default([])}).default({}),places:e.object({enabled:e.boolean().default(!0),file:e.string().min(1).default(".agentx/places.json"),defaultRadiusMeters:e.number().int().min(50).max(5e4).default(150),minRadiusMeters:e.number().int().min(50).max(5e4).default(100),maxRadiusMeters:e.number().int().min(50).max(5e4).default(5e3),maxPlaces:e.number().int().min(1).max(100).default(50),maxRulesPerPlace:e.number().int().min(1).max(50).default(10),cooldownMinutes:e.number().int().min(0).max(1440).default(10),maxEventAgeMinutes:e.number().int().min(1).max(1440).default(30),syncMinutes:e.number().int().min(15).max(1440).default(60)}).default({})}).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:Sn,mesh:fn.default({}),meshVoices:e.record(e.string(),je.omit({rate:!0,priority:!0,hotkey:!0}).extend({name:e.string().optional()})).default({}),voice:e.object({provider:Ce.default("system"),fallback:e.enum(["system","none"]).default("system"),system:Oe.optional(),locale:e.string().default("en"),listener:e.string().optional(),pronunciations:e.array(e.object({written:e.string().trim().min(1).max(80),spoken:e.string().trim().min(1).max(120),languages:e.array(e.enum(["en","fr","ar"])).optional()}).strict()).max(200).default([]),pointer:e.boolean().default(!0),stt:e.enum(["auto","elevenlabs","local"]).default("auto"),allowUnmeasured:e.boolean().default(!1),spokenMaxChars:e.number().int().min(300).max(1500).default(j),noiseFilter:e.object({enabled:e.boolean().default(!0),markers:e.array(e.string()).default(L)}).default({}),localStt:e.enum(["mlx-whisper","parakeet"]).default("mlx-whisper"),endOfTurn:e.enum(["vad","volume"]).default("vad"),hotkeys:e.object({talk:R.default(w.talk),stop:R.default(w.stop),paste:R.default(w.paste)}).default({}),look:e.enum(V).default("orb"),startReduced:e.boolean().default(!1),stroll:e.boolean().default(!1),animations:e.enum(J).default("sometimes"),palette:e.enum(O).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:z.optional(),boards:W,dashboard:K,graph:pn,decisions:hn,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({}),followUp:e.object({enabled:e.boolean().default(!0),agents:e.record(e.boolean()).default({}),stallMinutes:e.number().positive().max(7*24*60).default(30),maxNudges:e.number().int().min(0).max(20).default(2),approval:e.enum(["start","step"]).default("step")}).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),tierTwoThresholdTokensByChannel:e.record(e.number().int().min(5e4).max(2e5)).default({}),contextStrategy:e.enum(["layered","planner"]).default("layered"),maxClaudeCodeDispatchesPerHour:e.number().int().min(0).max(1e4).optional(),maxClaudeCodeDispatchesPer5h:e.number().int().min(0).max(5e4).optional(),continuityStateTurns:e.number().int().min(0).max(5).default(0),profileByChannel:e.record(e.enum(["full","lean"])).default({}),lean:e.object({mcpServers:e.array(e.string().min(1)).default(["agentx"]),settingSources:e.array(e.enum(["user","project","local"])).default(["project","local"]),contextOnDemand:e.boolean().default(!0),tools:e.array(e.string().min(1)).default([]),toolsByChannel:e.record(e.array(e.string().min(1))).default({}),agentxTools:ve.default([]),agentxToolsByChannel:e.record(ve).default({})}).default({}),triage:e.object({models:e.object({"claude-code":e.string().min(1).optional(),"codex-cli":e.string().min(1).optional()}).default({}),actions:e.array(e.string().min(1)).default(["labeled","unlabeled","closed"])}).default({}),memoryIndexMaxChars:e.number().int().min(0).max(2e5).default(0),resumeGate:e.object({mode:e.enum(["off","shadow","active"]).default("off"),freshTokens:e.number().int().min(1e3).max(2e5).default(3e4),cacheTtlMinutes:e.number().int().min(1).max(1440).default(60),cacheWriteFactor:e.number().min(1).max(4).default(2),margin:e.number().min(1).max(10).default(1.5)}).default({}),observationPack:e.object({enabled:e.boolean().default(!1),limitBytes:e.number().int().min(1024).max(1048576).default(10240),headBytes:e.number().int().min(0).max(65536).default(1024),tailBytes:e.number().int().min(0).max(65536).default(1024),tools:e.array(e.string().min(1)).default(["Bash","Grep","Read","WebFetch","mcp__.*"]),retentionDays:e.number().int().min(0).max(3650).default(0)}).default({})}).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({})});He="wiki-contribute",We="wiki-contribute-merge"});export{Cn as a,On as b,X as c,xt as d,Ln as e,w as f,Y as g,S as h,V as i,J as j,O as k,$n as l,ee as m,te as n,ne as o,Mn as p,ae as q,Un as r,Fn as s,oe as t,se as u,le as v,x as w,f as x,N as y,Xn as z,de as A,ue as B,Yn as C,Vn as D,T as E,Jn as F,me as G,pe as H,Mt as I,ra as J,ye as K,oa as L,zt as M,ia as N,Se as O,ca as P,A as Q,ma as R,we as S,Xt as T,Zt as U,Ee as V,ga as W,fa as X,pa as Y,Te as Z,Vt as _,ha as $,xa as aa,Re as ba,on as ca,Le as da,Ne as ea,qe as fa,Pe as ga,De as ha,Me as ia,Be as ja,Ue as ka,Fe as la,ze as ma,C as na,wn as oa,_n as pa,He as qa,We as ra,Ke as sa,Tn as ta,An as ua};
54
- //# sourceMappingURL=chunk-EOLEKSN6.js.map
53
+ ${u}${b}`)}return Ke(l.data)}function _n(a){let n=[];for(let[t,r]of Object.entries(a.agents)){if(!v(r.workspace)){n.push(`Agent "${t}": workspace not found at ${r.workspace}`);continue}if(r.tier==="claude-code"){let l=I(r.workspace,".claude");v(l)||n.push(`Agent "${t}": no .claude/ directory in workspace ${r.workspace}. Claude Code native features (hooks, MCP, skills) won't be available.`)}let o=r.provider||"claude",i=a.providers[o];!["claude-code","codex-cli","opencode"].includes(r.tier)&&(!i||!i.apiKey)&&n.push(`Agent "${t}": provider "${o}" has no API key configured. Set providers.${o}.apiKey in config or use a CLI-backed tier ("claude-code", "codex-cli", or "opencode").`)}for(let[t,r]of Object.entries(a.crons))a.agents[r.agent]||n.push(`Cron "${t}": references unknown agent "${r.agent}"`);if(a.channels.telegram.enabled)for(let[t,r]of Object.entries(a.channels.telegram.accounts))a.agents[r.agentBinding]||n.push(`Telegram account "${t}": references unknown agent "${r.agentBinding}"`);return n}function Ke(a,n=En()){let t=Object.entries(a.agents).filter(([,l])=>l.wiki?.contribute?.enabled).map(([l])=>l).sort();if(t.length===0)return a;let r=a.wiki.contributions,o=(l,u)=>$e.parse({schedule:l,timezone:r.timezone,agent:t[0],command:u,timeout:3600,onError:"log"}),i={[He]:o(r.schedule,`${n} wiki contribute --all`),[We]:o(r.mergeSchedule,`${n} wiki contributions merge`)};return{...a,crons:{...i,...a.crons}}}function En(){let a=process.argv[1]??"";return/[\\/]cli\.(?:c|m)?js$/.test(a)?`"${process.execPath}" "${a}"`:"agentx"}var ve,Qt,en,tn,nn,an,rn,on,Ce,Oe,R,je,Le,sn,ln,Ne,dn,$e,un,cn,mn,gn,fn,pn,bn,hn,qe,xn,yn,Sn,Pe,De,Me,Be,Ue,Fe,ze,He,We,An=g(()=>{H();X();Ze();Y();ee();ae();oe();le();Te();Re();ve=e.array(e.string().min(1)).superRefine((a,n)=>{let t=Ae(a);t.length&&n.addIssue({code:e.ZodIssueCode.custom,message:`not an agentx tool: ${t.join(", ")}. Use the names the agentx server lists, without "mcp__agentx__".`})}),Qt=e.object({apiKey:e.string().optional(),defaultModel:e.string().optional(),baseUrl:e.string().optional(),thinking:e.boolean().optional()}),en=e.object({type:e.literal("stdio").optional(),command:e.string(),args:e.array(e.string()).default([]),env:e.record(e.string(),e.string()).optional()}),tn=e.object({type:e.literal("http"),url:e.string().url(),headers:e.record(e.string(),e.string()).optional()}),nn=e.union([tn,en]),an=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(),rn=e.object({kind:e.string().min(1),label:e.string().min(1),credentials:an.default({}),metadata:e.record(e.string(),e.union([e.string(),e.number(),e.boolean()])).default({}),enabled:e.boolean().default(!0)}),on=["telegram-bot","whatsapp","gitlab-user","github-user","gmail","hotmail","smtp","hubspot","salesforce","pipedrive","odoo","trello","linear","asana","jira","notion","stripe","sentry","vercel","twilio","custom"],Ce=e.enum(["system","elevenlabs"]),Oe=e.union([e.string(),e.record(e.string(),e.string())]),R=e.string().superRefine((a,n)=>{let t=G(a);t&&n.addIssue({code:e.ZodIssueCode.custom,message:`shortcut ${t}`})}),je=e.object({provider:Ce.optional(),system:Oe.optional(),fallbacks:e.array(e.string().min(1)).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:R.optional()}),Le=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)}),sn=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(),nn).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(),wiki:e.object({contribute:e.object({enabled:e.boolean().default(!1),maxPatches:e.number().int().min(1).max(200).default(30),maxCostUsd:e.number().min(0).max(20).optional(),model:e.string().optional()}).default({}),absorb:e.object({enabled:e.boolean().default(!0)}).default({})}).optional(),permissionMode:e.string().default("default"),billing:e.enum(["subscription","api"]).default("subscription"),cloudSessions:e.object({enabled:e.boolean().default(!1),maxPerDay:e.number().int().min(0).default(0),openHours:e.number().min(1).max(168).default(24),launchTimeoutSeconds:e.number().int().min(10).max(600).default(120)}).default({}),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(Le).default([]),integrations:e.array(rn).default([]),voice:je.optional(),presence:e.object({color:e.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),palette:e.enum(O).optional(),initial:e.string().max(2).optional(),label:e.string().optional(),allowActions:e.boolean().optional()}).optional()}),ln=e.object({token:e.string(),agentBinding:e.string(),allowFrom:e.array(e.string()).optional(),pollInbound:e.boolean().default(!0)}),Ne=e.object({frameIntervalSeconds:e.number().int().min(0).max(3600).default(0),maxSessionMinutes:e.number().int().min(1).max(240).default(10),maxFrameEdge:e.number().int().min(160).max(3840).default(1024),keepFrames:e.boolean().default(!1),streamFrameSeconds:e.number().int().min(2).max(60).default(5),streamMaxSeconds:e.number().int().min(10).max(600).default(60)}).default({}),dn=e.object({telegram:e.object({enabled:e.boolean().default(!1),accounts:e.record(e.string(),ln).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),cloudSessions:e.boolean().default(!1),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([]),issueActions:e.array(e.string().min(1)).default(["opened","reopened","assigned"]),pullRequestActions:e.array(e.string().min(1)).default(["opened","reopened","ready_for_review"]),ignoreOwnChanges:e.boolean().default(!0),debounceSeconds:e.number().min(0).max(3600).default(30)}).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({}),camera:e.object({width:e.number().int().min(160).max(3840).default(1280),height:e.number().int().min(120).max(2160).default(720),frameRate:e.number().int().min(1).max(60).default(15),maxSeconds:e.number().int().min(10).max(7200).default(600),voiceInput:e.boolean().default(!0),speakAnswers:e.boolean().default(!0),bot:Ne}).default({})}).default({})}),$e=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:D.optional(),onError:e.union([e.enum(["log","notify","disable"]),e.array(e.enum(["log","notify","disable"]))]).default("log").transform(a=>Array.isArray(a)?a:[a]),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),deliverResult:e.boolean().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(a=>!!(a.command?.trim()||a.prompt?.trim()),{message:"a cron needs either a prompt (dispatch an agent) or a command (run it directly)"}).refine(a=>!(a.command?.trim()&&a.autonomy&&a.autonomy!=="act"),{message:"autonomy applies to agent routines; a command cron runs no agent (remove autonomy or the command)"}),un=e.object({enabled:e.boolean().default(!1),inbox:e.string().min(1).optional(),crons:e.array(e.string().min(1)).default([]),absorbAgent:e.string().min(1).optional(),maxNotesPerRun:e.number().int().min(1).max(100).default(20),maxDeferrals:e.number().int().min(1).max(20).default(3)}).refine(a=>!a.enabled||!!a.inbox,{message:"wikiNotes.enabled needs wikiNotes.inbox: the agent that runs the wiki observe/sweep schedule"}),cn=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()}),mn=e.object({url:e.string(),name:e.string(),token:e.string().optional()}),gn=e.object({name:e.string(),agent:e.string(),enabled:e.boolean().default(!0)}),fn=e.object({enabled:e.boolean().default(!1),peers:e.array(mn).default([]),inboxes:e.array(gn).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),requeueRelayOnRestart:e.boolean().default(!0)}).default({})}),pn=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({}),bn=e.object({mode:e.enum(["off","shadow","active"]).default("off"),backend:e.string().optional(),model:e.string().optional(),timeoutMs:e.number().int().min(100).optional(),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({}),hn=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(),bn).default({}),routing:e.object({cheapModel:e.string().optional(),cheapModels:e.object({"claude-code":e.string().optional(),"codex-cli":e.string().optional()}).optional()}).default({})}).default({}),qe=e.object({allow:e.array(e.string()).default([]),maxPerHour:e.number().int().min(1).max(60).default(3),ringSeconds:e.number().int().min(10).max(300).default(45),maxCallMinutes:e.number().int().min(1).max(240).default(30),ringSound:e.string().regex(/^[\w -]+$/).default("Submarine"),summary:e.boolean().default(!0)}).default({}),xn=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({}),yn=e.object({x:e.number(),y:e.number(),width:e.number().positive(),height:e.number().positive()}),Sn=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-]*$/),yn).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({}),Pe=e.object({enabled:e.boolean().default(!1),channels:e.array(e.string().min(1)).default([]),from:e.array(e.string().regex(/^[a-z0-9_-]+:\S+$/i,"use channel:id, for example telegram:123456789")).default([]),staleAfterHours:e.number().positive().max(24*365).default(24),retentionDays:e.number().positive().max(3650).default(90),plans:e.object({enabled:e.boolean().default(!0),stallMinutes:e.number().positive().max(7*24*60).default(30),maxNudges:e.number().int().min(0).max(20).default(3),approveKinds:e.array(e.string().regex(/^[a-z][a-z0-9_-]{0,30}$/,"a step kind: a short lower-case word")).default(["message"]),disabledAgents:e.array(e.string().min(1)).default([])}).default({})}).default({}),De=e.object({id:e.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"lower-case letters, digits, - and _"),name:e.string().min(1).max(80),say:e.string().trim().min(1).max(120).optional(),role:e.enum(["owner","member","client","guest"]).default("member"),identities:e.array(e.string().regex(/^[A-Za-z][\w-]*:\S.*$/,"write it as channel:id")).default([]),agents:e.array(e.string().min(1)).default([]),deny:e.object({tools:e.array(e.string().min(1)).default([]),skills:e.array(e.string().min(1)).default([])}).strict().default({})}),Me=e.array(De).default([]).superRefine((a,n)=>{let t=_e(a);t&&n.addIssue({code:e.ZodIssueCode.custom,message:t})}),Be=e.object({logRetentionDays:e.number().int().min(1).max(3650).default(90)}).default({}),Ue=e.object({channels:e.array(e.string().min(1)).default([])}).default({}),Fe=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),forwardTo:e.string().min(1).optional(),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(a=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:a}),!0}catch{return!1}},"unknown timezone").optional(),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}).default({}),popup:e.object({enabled:e.boolean().default(!1),style:e.enum(["card","dialog"]).default("card"),theme:e.enum(["system","light","dark"]).default("system"),speak:e.boolean().default(!0),voice:e.string().regex(/^[\w .()-]+$/,"a voice name, as `say -v '?'` lists them").optional(),sound:e.string().regex(/^[\w -]*$/,"a sound name, like chime or Glass").default("chime"),volume:e.number().min(0).max(1).default(.4),timeoutSeconds:e.number().int().min(10).max(3600).default(600)}).default({}),checkin:e.object({enabled:e.boolean().default(!1),times:e.array(e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour")).default(["11:00","14:00","17:00"]),dailyAt:e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour").default("09:00"),timezone:e.string().refine(a=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:a}),!0}catch{return!1}},"unknown timezone").optional(),lists:e.array(e.string().min(1)).default(["Reminders"]),agent:e.string().min(1).optional(),dueWithinHours:e.number().positive().max(24*30).default(24),maxAsksPerPass:e.number().int().min(1).max(20).default(5),composeTimeoutSeconds:e.number().int().min(30).max(3600).default(300)}).default({})}).default({}),ze=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(),Qt).default({}),agents:e.record(e.string(),sn).default({}),wiki:e.object({contributions:e.object({schedule:e.string().default("40 22 * * *"),mergeSchedule:e.string().default("20 23 * * *"),timezone:e.string().default("UTC"),maxCostUsd:e.number().min(0).max(20).default(.5),model:e.string().default("sonnet")}).default({}),query:e.object({shared:e.boolean().default(!0)}).default({})}).default({}),channels:dn.default({}),crons:e.record(e.string(),$e).default({}),wikiNotes:un.default({}),services:e.record(e.string(),cn).default({}),notifications:xn,calls:qe,whatsappTriage:se,approvals:Fe,shutdown:e.object({drainTimeoutSeconds:e.number().int().min(0).max(86400).optional(),restart:e.object({allowBy:e.string().optional(),window:e.string().regex(/^\d{1,2}:\d{2}$/,"window must be HH:MM").optional(),windowWaitMinutes:e.number().int().min(1).max(1440).default(180),forbidOnTimeoutRestart:e.boolean().default(!1)}).default({})}).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({}),requests:Pe,people:Me,members:Be,requestStatus:Ue,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({}),app:e.object({android:e.object({packageName:e.string().regex(/^[a-zA-Z][\w]*(\.[a-zA-Z][\w]*)+$/,"must look like com.example.app").default("dev.agentx.phone"),certFingerprints:e.array(e.string().regex(/^([0-9A-Fa-f]{2}:){31}[0-9A-Fa-f]{2}$/,"must be 32 hex pairs separated by colons")).default([])}).default({}),places:e.object({enabled:e.boolean().default(!0),file:e.string().min(1).default(".agentx/places.json"),defaultRadiusMeters:e.number().int().min(50).max(5e4).default(150),minRadiusMeters:e.number().int().min(50).max(5e4).default(100),maxRadiusMeters:e.number().int().min(50).max(5e4).default(5e3),maxPlaces:e.number().int().min(1).max(100).default(50),maxRulesPerPlace:e.number().int().min(1).max(50).default(10),cooldownMinutes:e.number().int().min(0).max(1440).default(10),maxEventAgeMinutes:e.number().int().min(1).max(1440).default(30),syncMinutes:e.number().int().min(15).max(1440).default(60)}).default({})}).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:Sn,mesh:fn.default({}),meshVoices:e.record(e.string(),je.omit({rate:!0,priority:!0,hotkey:!0}).extend({name:e.string().optional()})).default({}),voice:e.object({provider:Ce.default("system"),fallback:e.enum(["system","none"]).default("system"),system:Oe.optional(),locale:e.string().default("en"),listener:e.string().optional(),pronunciations:e.array(e.object({written:e.string().trim().min(1).max(80),spoken:e.string().trim().min(1).max(120),languages:e.array(e.enum(["en","fr","ar"])).optional()}).strict()).max(200).default([]),pointer:e.boolean().default(!0),stt:e.enum(["auto","elevenlabs","local"]).default("auto"),allowUnmeasured:e.boolean().default(!1),spokenMaxChars:e.number().int().min(300).max(1500).default(j),noiseFilter:e.object({enabled:e.boolean().default(!0),markers:e.array(e.string()).default(L)}).default({}),localStt:e.enum(["mlx-whisper","parakeet"]).default("mlx-whisper"),endOfTurn:e.enum(["vad","volume"]).default("vad"),hotkeys:e.object({talk:R.default(w.talk),stop:R.default(w.stop),paste:R.default(w.paste)}).default({}),look:e.enum(V).default("orb"),startReduced:e.boolean().default(!1),stroll:e.boolean().default(!1),animations:e.enum(J).default("sometimes"),palette:e.enum(O).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:z.optional(),boards:W,dashboard:K,graph:pn,decisions:hn,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({}),followUp:e.object({enabled:e.boolean().default(!0),agents:e.record(e.boolean()).default({}),stallMinutes:e.number().positive().max(7*24*60).default(30),maxNudges:e.number().int().min(0).max(20).default(2),approval:e.enum(["start","step"]).default("step")}).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),tierTwoThresholdTokensByChannel:e.record(e.number().int().min(5e4).max(2e5)).default({}),contextStrategy:e.enum(["layered","planner"]).default("layered"),maxClaudeCodeDispatchesPerHour:e.number().int().min(0).max(1e4).optional(),maxClaudeCodeDispatchesPer5h:e.number().int().min(0).max(5e4).optional(),continuityStateTurns:e.number().int().min(0).max(5).default(0),profileByChannel:e.record(e.enum(["full","lean"])).default({}),lean:e.object({mcpServers:e.array(e.string().min(1)).default(["agentx"]),settingSources:e.array(e.enum(["user","project","local"])).default(["project","local"]),contextOnDemand:e.boolean().default(!0),tools:e.array(e.string().min(1)).default([]),toolsByChannel:e.record(e.array(e.string().min(1))).default({}),agentxTools:ve.default([]),agentxToolsByChannel:e.record(ve).default({})}).default({}),triage:e.object({models:e.object({"claude-code":e.string().min(1).optional(),"codex-cli":e.string().min(1).optional()}).default({}),actions:e.array(e.string().min(1)).default(["labeled","unlabeled","closed"])}).default({}),memoryIndexMaxChars:e.number().int().min(0).max(2e5).default(0),resumeGate:e.object({mode:e.enum(["off","shadow","active"]).default("off"),freshTokens:e.number().int().min(1e3).max(2e5).default(3e4),cacheTtlMinutes:e.number().int().min(1).max(1440).default(60),cacheWriteFactor:e.number().min(1).max(4).default(2),margin:e.number().min(1).max(10).default(1.5)}).default({}),observationPack:e.object({enabled:e.boolean().default(!1),limitBytes:e.number().int().min(1024).max(1048576).default(10240),headBytes:e.number().int().min(0).max(65536).default(1024),tailBytes:e.number().int().min(0).max(65536).default(1024),tools:e.array(e.string().min(1)).default(["Bash","Grep","Read","WebFetch","mcp__.*"]),retentionDays:e.number().int().min(0).max(3650).default(0)}).default({})}).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({})});He="wiki-contribute",We="wiki-contribute-merge"});export{Cn as a,On as b,X as c,xt as d,Ln as e,w as f,Y as g,S as h,V as i,J as j,O as k,$n as l,ee as m,te as n,ne as o,Mn as p,ae as q,Un as r,Fn as s,oe as t,se as u,le as v,x as w,f as x,N as y,Xn as z,de as A,ue as B,Yn as C,Vn as D,T as E,Jn as F,me as G,pe as H,Mt as I,ra as J,ye as K,oa as L,zt as M,ia as N,Se as O,ca as P,A as Q,ma as R,we as S,Xt as T,Zt as U,Ee as V,ga as W,fa as X,pa as Y,Te as Z,Vt as _,ha as $,xa as aa,Re as ba,on as ca,Le as da,Ne as ea,qe as fa,Pe as ga,De as ha,Me as ia,Be as ja,Ue as ka,Fe as la,ze as ma,C as na,wn as oa,_n as pa,He as qa,We as ra,Ke as sa,Tn as ta,An as ua};
54
+ //# sourceMappingURL=chunk-UUFJQMHE.js.map