agentix-cli 0.113.0 → 0.114.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 (112) hide show
  1. package/apps/mac-helper/Resources/AppIcon.png +0 -0
  2. package/apps/mac-voice/Resources/AppIcon.png +0 -0
  3. package/apps/mac-voice/Resources/Info.plist +1 -0
  4. package/apps/mac-voice/build.sh +10 -0
  5. package/dist/{App-5ZI475WY.js → App-Q4UAYL2V.js} +2 -2
  6. package/dist/{ChatApp-PLR7J5D3.js → ChatApp-6KGP57OP.js} +2 -2
  7. package/dist/{agent-GRX75ANW.js → agent-5F4EKGQN.js} +2 -2
  8. package/dist/{board-dashboard-EKJHQKPH.js → board-dashboard-GGW5ZZLT.js} +553 -327
  9. package/dist/board-dashboard-GGW5ZZLT.js.map +1 -0
  10. package/dist/{chunk-QWI3FM5R.js → chunk-4COYYJJY.js} +2 -2
  11. package/dist/{chunk-QAIYUMHW.js → chunk-4VDA4UM7.js} +2 -2
  12. package/dist/{chunk-OZDSQVHU.js → chunk-6WNQY6K2.js} +2 -2
  13. package/dist/{chunk-74CQWVHE.js → chunk-A35RTVMM.js} +2 -2
  14. package/dist/{chunk-DG5I6PPM.js → chunk-BGG3ZSMW.js} +4 -2
  15. package/dist/chunk-BGG3ZSMW.js.map +1 -0
  16. package/dist/{chunk-X7E27RYS.js → chunk-C4S5XQKD.js} +2 -2
  17. package/dist/{chunk-A6B5JRUG.js → chunk-CYKPDILL.js} +2 -2
  18. package/dist/{chunk-XG2XVGSL.js → chunk-FDCTFT2Q.js} +2 -2
  19. package/dist/{chunk-MEXXGNNN.js → chunk-HG6QA6EU.js} +2 -2
  20. package/dist/{chunk-6FJ44HYY.js → chunk-HPY54DU6.js} +2 -2
  21. package/dist/{chunk-JBE4H7PL.js → chunk-ILGLEA3I.js} +2 -2
  22. package/dist/{chunk-THRWE4Y3.js → chunk-J3GXZQXY.js} +2 -2
  23. package/dist/{chunk-V3C2BOYR.js → chunk-LP227A6L.js} +2 -2
  24. package/dist/{chunk-RXQ2XCKP.js → chunk-O2RVUM2B.js} +2 -2
  25. package/dist/{chunk-B37WAFT5.js → chunk-QQIWLN3H.js} +160 -160
  26. package/dist/chunk-QQIWLN3H.js.map +1 -0
  27. package/dist/{chunk-N7HKIMMR.js → chunk-SCJ5ZXEN.js} +2 -2
  28. package/dist/{chunk-4QCYSKPD.js → chunk-VGI4EZTP.js} +2 -2
  29. package/dist/{chunk-DVJW3IWI.js → chunk-VQM77L54.js} +2 -2
  30. package/dist/{chunk-EEOQ5C5N.js → chunk-VTWSW4KB.js} +2 -2
  31. package/dist/{chunk-37EDS7SZ.js → chunk-XTO4GRGN.js} +5 -5
  32. package/dist/{chunk-R43TE2XX.js → chunk-XX7NXI3Y.js} +2 -2
  33. package/dist/{chunk-TXX5W3SH.js → chunk-Y5HBYSJW.js} +2 -2
  34. package/dist/{chunk-TXX5W3SH.js.map → chunk-Y5HBYSJW.js.map} +1 -1
  35. package/dist/{chunk-22LO3GBP.js → chunk-YLKCFW2R.js} +2 -2
  36. package/dist/{chunk-QF377BDS.js → chunk-YU5NDKPA.js} +2 -2
  37. package/dist/cli.js +1 -1
  38. package/dist/{client-DBQ5QNJJ.js → client-QTXWO46T.js} +2 -2
  39. package/dist/{config-4T62LT27.js → config-4XGZYYQP.js} +2 -2
  40. package/dist/config-mutator-QLSA6JOY.js +2 -0
  41. package/dist/{doctor-M32NIOZH.js → doctor-DO262COW.js} +2 -2
  42. package/dist/index.d.ts +49 -0
  43. package/dist/index.js +1 -1
  44. package/dist/processes-5MP32QZT.js +2 -0
  45. package/dist/{program-7MG42JKO.js → program-IEMICVO3.js} +14 -14
  46. package/dist/{promote-DAEKJVWN.js → promote-S7SKOKX2.js} +2 -2
  47. package/dist/{query-MCJYD66I.js → query-GOBQ3GL5.js} +2 -2
  48. package/dist/{registry-AYPPHZ3Z.js → registry-HUJEORRW.js} +2 -2
  49. package/dist/{request-planner-7NKKLY7C.js → request-planner-RYWFGBGK.js} +2 -2
  50. package/dist/{review-candidates-QG2U5YID.js → review-candidates-TXX532LY.js} +2 -2
  51. package/dist/{routing-HBNYDAGE.js → routing-IT4YS6X3.js} +2 -2
  52. package/dist/schedule-tool-FJKH2ERY.js +2 -0
  53. package/dist/scheduler-ALPDUE4H.js +2 -0
  54. package/dist/{seat-PQ7AMPMT.js → seat-LK45MTVI.js} +2 -2
  55. package/dist/{select-J6TO7RED.js → select-4LAHUZ74.js} +2 -2
  56. package/dist/{set-enabled-WXRUHFWW.js → set-enabled-F2K56HQZ.js} +2 -2
  57. package/dist/{tool-I3OGQKAD.js → tool-J4VHHZWN.js} +2 -2
  58. package/dist/{tool-KN2QEPDO.js → tool-W3ODKQM2.js} +2 -2
  59. package/dist/wiki-FZHSX4K3.js +2 -0
  60. package/package.json +1 -1
  61. package/dist/board-dashboard-EKJHQKPH.js.map +0 -1
  62. package/dist/chunk-B37WAFT5.js.map +0 -1
  63. package/dist/chunk-DG5I6PPM.js.map +0 -1
  64. package/dist/config-mutator-ARUEJ6V5.js +0 -2
  65. package/dist/processes-W5VHBP7T.js +0 -2
  66. package/dist/schedule-tool-6S35TPJJ.js +0 -2
  67. package/dist/scheduler-KZ6VVZZA.js +0 -2
  68. package/dist/wiki-2IKLQ6PO.js +0 -2
  69. /package/dist/{App-5ZI475WY.js.map → App-Q4UAYL2V.js.map} +0 -0
  70. /package/dist/{ChatApp-PLR7J5D3.js.map → ChatApp-6KGP57OP.js.map} +0 -0
  71. /package/dist/{agent-GRX75ANW.js.map → agent-5F4EKGQN.js.map} +0 -0
  72. /package/dist/{chunk-QWI3FM5R.js.map → chunk-4COYYJJY.js.map} +0 -0
  73. /package/dist/{chunk-QAIYUMHW.js.map → chunk-4VDA4UM7.js.map} +0 -0
  74. /package/dist/{chunk-OZDSQVHU.js.map → chunk-6WNQY6K2.js.map} +0 -0
  75. /package/dist/{chunk-74CQWVHE.js.map → chunk-A35RTVMM.js.map} +0 -0
  76. /package/dist/{chunk-X7E27RYS.js.map → chunk-C4S5XQKD.js.map} +0 -0
  77. /package/dist/{chunk-A6B5JRUG.js.map → chunk-CYKPDILL.js.map} +0 -0
  78. /package/dist/{chunk-XG2XVGSL.js.map → chunk-FDCTFT2Q.js.map} +0 -0
  79. /package/dist/{chunk-MEXXGNNN.js.map → chunk-HG6QA6EU.js.map} +0 -0
  80. /package/dist/{chunk-6FJ44HYY.js.map → chunk-HPY54DU6.js.map} +0 -0
  81. /package/dist/{chunk-JBE4H7PL.js.map → chunk-ILGLEA3I.js.map} +0 -0
  82. /package/dist/{chunk-THRWE4Y3.js.map → chunk-J3GXZQXY.js.map} +0 -0
  83. /package/dist/{chunk-V3C2BOYR.js.map → chunk-LP227A6L.js.map} +0 -0
  84. /package/dist/{chunk-RXQ2XCKP.js.map → chunk-O2RVUM2B.js.map} +0 -0
  85. /package/dist/{chunk-N7HKIMMR.js.map → chunk-SCJ5ZXEN.js.map} +0 -0
  86. /package/dist/{chunk-4QCYSKPD.js.map → chunk-VGI4EZTP.js.map} +0 -0
  87. /package/dist/{chunk-DVJW3IWI.js.map → chunk-VQM77L54.js.map} +0 -0
  88. /package/dist/{chunk-EEOQ5C5N.js.map → chunk-VTWSW4KB.js.map} +0 -0
  89. /package/dist/{chunk-37EDS7SZ.js.map → chunk-XTO4GRGN.js.map} +0 -0
  90. /package/dist/{chunk-R43TE2XX.js.map → chunk-XX7NXI3Y.js.map} +0 -0
  91. /package/dist/{chunk-22LO3GBP.js.map → chunk-YLKCFW2R.js.map} +0 -0
  92. /package/dist/{chunk-QF377BDS.js.map → chunk-YU5NDKPA.js.map} +0 -0
  93. /package/dist/{client-DBQ5QNJJ.js.map → client-QTXWO46T.js.map} +0 -0
  94. /package/dist/{config-4T62LT27.js.map → config-4XGZYYQP.js.map} +0 -0
  95. /package/dist/{config-mutator-ARUEJ6V5.js.map → config-mutator-QLSA6JOY.js.map} +0 -0
  96. /package/dist/{doctor-M32NIOZH.js.map → doctor-DO262COW.js.map} +0 -0
  97. /package/dist/{processes-W5VHBP7T.js.map → processes-5MP32QZT.js.map} +0 -0
  98. /package/dist/{program-7MG42JKO.js.map → program-IEMICVO3.js.map} +0 -0
  99. /package/dist/{promote-DAEKJVWN.js.map → promote-S7SKOKX2.js.map} +0 -0
  100. /package/dist/{query-MCJYD66I.js.map → query-GOBQ3GL5.js.map} +0 -0
  101. /package/dist/{registry-AYPPHZ3Z.js.map → registry-HUJEORRW.js.map} +0 -0
  102. /package/dist/{request-planner-7NKKLY7C.js.map → request-planner-RYWFGBGK.js.map} +0 -0
  103. /package/dist/{review-candidates-QG2U5YID.js.map → review-candidates-TXX532LY.js.map} +0 -0
  104. /package/dist/{routing-HBNYDAGE.js.map → routing-IT4YS6X3.js.map} +0 -0
  105. /package/dist/{schedule-tool-6S35TPJJ.js.map → schedule-tool-FJKH2ERY.js.map} +0 -0
  106. /package/dist/{scheduler-KZ6VVZZA.js.map → scheduler-ALPDUE4H.js.map} +0 -0
  107. /package/dist/{seat-PQ7AMPMT.js.map → seat-LK45MTVI.js.map} +0 -0
  108. /package/dist/{select-J6TO7RED.js.map → select-4LAHUZ74.js.map} +0 -0
  109. /package/dist/{set-enabled-WXRUHFWW.js.map → set-enabled-F2K56HQZ.js.map} +0 -0
  110. /package/dist/{tool-I3OGQKAD.js.map → tool-J4VHHZWN.js.map} +0 -0
  111. /package/dist/{tool-KN2QEPDO.js.map → tool-W3ODKQM2.js.map} +0 -0
  112. /package/dist/{wiki-2IKLQ6PO.js.map → wiki-FZHSX4K3.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{q as p}from"./chunk-4QCYSKPD.js";import{b as i,c as u,d as l,e as c}from"./chunk-A6B5JRUG.js";import d from"cronstrue";var f=Intl.DateTimeFormat().resolvedOptions().timeZone,m=600,E='Try: "every morning at 9", "weekdays at 6pm", "every 15 minutes", "every monday at 10am", "1st of every month at noon", "daily at 9:30am", "every hour"',g=/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;function w(e){return g.test(e)}function x(e){try{return new Intl.DateTimeFormat("en-US",{timeZone:e}),!0}catch{return!1}}function $(e){return e?e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r==="log"||r==="notify"||r==="disable"):["log"]}function S(e){let r=[...e.onError??["log"]];e.notify&&!r.includes("notify")&&r.push("notify");let t={enabled:e.enabled??!0,schedule:e.parsed.cron,timezone:e.timezone||f,agent:e.agent,prompt:e.prompt,timeout:e.timeout??m,onError:r};return e.model&&(t.model=e.model),e.notify&&(t.notify=e.notify),e.createdBy&&(t.createdBy=e.createdBy),e.approval&&(t.approval=e.approval),t}function P(e){try{return d.toString(e,{use24HourTimeFormat:!1})}catch{return e}}function T(e,r,t=new Date){try{return p(e,t,r)}catch{return null}}function A(e,r){if(!e)return"unknown (no match within a year)";try{return`${new Intl.DateTimeFormat("en-GB",{timeZone:r,weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(e)} (${r})`}catch{return e.toISOString()}}function h(e){return e?.approval?.action==="create"}async function D(e,r={}){let t="",o=await i(n=>{let a=l(n,`crons.${e}`);if(!a)throw new Error(`cron "${e}" not found`);let s=a.approval;if(!s)throw new Error(`cron "${e}" has no pending request`);s.action==="create"?(delete a.approval,a.enabled=!0,t=`${e} approved and enabled (requested by ${s.requestedBy})`):(c(n,`crons.${e}`),t=`${e} deletion approved; job removed (requested by ${s.requestedBy})`)},{configPath:r.configPath,reload:r.reload});return o.success?{success:!0,message:t,result:o}:{success:!1,message:o.error||"failed",result:o}}async function I(e,r={}){let t="",o=await i(n=>{let a=l(n,`crons.${e}`);if(!a)throw new Error(`cron "${e}" not found`);let s=a.approval;if(!s)throw new Error(`cron "${e}" has no pending request`);s.action==="create"?(c(n,`crons.${e}`),t=`${e} rejected; pending job removed`):(delete a.approval,t=`${e} deletion rejected; job kept`)},{configPath:r.configPath,reload:r.reload});return o.success?{success:!0,message:t,result:o}:{success:!1,message:o.error||"failed",result:o}}async function O(e,r,t={}){return i(o=>{let n=l(o,`crons.${e}`);if(!n)throw new Error(`cron "${e}" not found`);if(r&&h(n))throw new Error(`cron "${e}" is awaiting approval; run \`agentx schedule approve ${e}\``);u(o,`crons.${e}.enabled`,r)},{configPath:t.configPath,reload:t.reload})}export{f as a,E as b,w as c,x as d,$ as e,S as f,P as g,T as h,A as i,h as j,D as k,I as l,O as m};
2
- //# sourceMappingURL=chunk-22LO3GBP.js.map
1
+ import{q as p}from"./chunk-VGI4EZTP.js";import{b as i,c as u,d as l,e as c}from"./chunk-CYKPDILL.js";import d from"cronstrue";var f=Intl.DateTimeFormat().resolvedOptions().timeZone,m=600,E='Try: "every morning at 9", "weekdays at 6pm", "every 15 minutes", "every monday at 10am", "1st of every month at noon", "daily at 9:30am", "every hour"',g=/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;function w(e){return g.test(e)}function x(e){try{return new Intl.DateTimeFormat("en-US",{timeZone:e}),!0}catch{return!1}}function $(e){return e?e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r==="log"||r==="notify"||r==="disable"):["log"]}function S(e){let r=[...e.onError??["log"]];e.notify&&!r.includes("notify")&&r.push("notify");let t={enabled:e.enabled??!0,schedule:e.parsed.cron,timezone:e.timezone||f,agent:e.agent,prompt:e.prompt,timeout:e.timeout??m,onError:r};return e.model&&(t.model=e.model),e.notify&&(t.notify=e.notify),e.createdBy&&(t.createdBy=e.createdBy),e.approval&&(t.approval=e.approval),t}function P(e){try{return d.toString(e,{use24HourTimeFormat:!1})}catch{return e}}function T(e,r,t=new Date){try{return p(e,t,r)}catch{return null}}function A(e,r){if(!e)return"unknown (no match within a year)";try{return`${new Intl.DateTimeFormat("en-GB",{timeZone:r,weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(e)} (${r})`}catch{return e.toISOString()}}function h(e){return e?.approval?.action==="create"}async function D(e,r={}){let t="",o=await i(n=>{let a=l(n,`crons.${e}`);if(!a)throw new Error(`cron "${e}" not found`);let s=a.approval;if(!s)throw new Error(`cron "${e}" has no pending request`);s.action==="create"?(delete a.approval,a.enabled=!0,t=`${e} approved and enabled (requested by ${s.requestedBy})`):(c(n,`crons.${e}`),t=`${e} deletion approved; job removed (requested by ${s.requestedBy})`)},{configPath:r.configPath,reload:r.reload});return o.success?{success:!0,message:t,result:o}:{success:!1,message:o.error||"failed",result:o}}async function I(e,r={}){let t="",o=await i(n=>{let a=l(n,`crons.${e}`);if(!a)throw new Error(`cron "${e}" not found`);let s=a.approval;if(!s)throw new Error(`cron "${e}" has no pending request`);s.action==="create"?(c(n,`crons.${e}`),t=`${e} rejected; pending job removed`):(delete a.approval,t=`${e} deletion rejected; job kept`)},{configPath:r.configPath,reload:r.reload});return o.success?{success:!0,message:t,result:o}:{success:!1,message:o.error||"failed",result:o}}async function O(e,r,t={}){return i(o=>{let n=l(o,`crons.${e}`);if(!n)throw new Error(`cron "${e}" not found`);if(r&&h(n))throw new Error(`cron "${e}" is awaiting approval; run \`agentx schedule approve ${e}\``);u(o,`crons.${e}.enabled`,r)},{configPath:t.configPath,reload:t.reload})}export{f as a,E as b,w as c,x as d,$ as e,S as f,P as g,T as h,A as i,h as j,D as k,I as l,O as m};
2
+ //# sourceMappingURL=chunk-YLKCFW2R.js.map
@@ -48,7 +48,7 @@ The "modified" field is optional and can contain updated values to pass forward.
48
48
  ... (output truncated)`:i;return s.exitCode!==0?{tool_use_id:e.id,content:`Command exited with code ${s.exitCode}:
49
49
  ${c}`,is_error:!0}:{tool_use_id:e.id,content:c||"(no output)"}}async editFile(e){let t=String(e.input.path||""),o=e.input.edits,n=ge.resolve(this.cwd,t);if(!o||o.length===0)return{tool_use_id:e.id,content:"No edits provided.",is_error:!0};let s=await W.checkFileWrite(t);if(s==="deny")return{tool_use_id:e.id,content:`File write blocked by permissions: ${t}`,is_error:!0};if(s==="skip")return{tool_use_id:e.id,content:`File write skipped (plan mode): ${t}`};if(f.has("pre:file-write")){let a=await f.execute("pre:file-write",{event:"pre:file-write",file:n,cwd:this.cwd});if(a.blocked)return{tool_use_id:e.id,content:a.message||`File edit blocked by pre:file-write hook: ${t}`,is_error:!0}}let i=await re.readFile(n,"utf8"),c=[];for(let a of o)i.includes(a.old_text)?(i=i.replace(a.old_text,a.new_text),c.push(`Replaced: "${a.old_text.slice(0,40)}..."`)):c.push(`Not found: "${a.old_text.slice(0,40)}..."`);return this.options.dryRun||await re.writeFile(n,i,"utf8"),f.has("post:file-write")&&await f.execute("post:file-write",{event:"post:file-write",file:n,fileContent:i,cwd:this.cwd}),{tool_use_id:e.id,content:`Edited ${t}:
50
50
  ${c.join(`
51
- `)}`}}async createFiles(e){let t=e.input,o=t.files||[];return{tool_use_id:e.id,content:t.summary||`Queued ${o.length} file(s) for creation.`,files:o}}async spawnAgent(e){let t=String(e.input.agent_id||""),o=String(e.input.prompt||""),n=Number(e.input.timeout_seconds)||300;if(!t||!o)return{tool_use_id:e.id,content:"agent_id and prompt are required.",is_error:!0};try{let{SubAgentManager:s}=await import("./subagent-XY5N7TUU.js"),{getGlobalRegistry:i}=await import("./registry-AYPPHZ3Z.js"),c=i();if(!c)return{tool_use_id:e.id,content:"Sub-agent spawning requires the daemon to be running.",is_error:!0};let p=await new s(c).spawn({targetAgentId:t,prompt:o,parentAgentId:"orchestrator",timeout:n*1e3});return p.success?{tool_use_id:e.id,content:`Sub-agent "${t}" completed (${Math.round(p.duration/1e3)}s):
51
+ `)}`}}async createFiles(e){let t=e.input,o=t.files||[];return{tool_use_id:e.id,content:t.summary||`Queued ${o.length} file(s) for creation.`,files:o}}async spawnAgent(e){let t=String(e.input.agent_id||""),o=String(e.input.prompt||""),n=Number(e.input.timeout_seconds)||300;if(!t||!o)return{tool_use_id:e.id,content:"agent_id and prompt are required.",is_error:!0};try{let{SubAgentManager:s}=await import("./subagent-XY5N7TUU.js"),{getGlobalRegistry:i}=await import("./registry-HUJEORRW.js"),c=i();if(!c)return{tool_use_id:e.id,content:"Sub-agent spawning requires the daemon to be running.",is_error:!0};let p=await new s(c).spawn({targetAgentId:t,prompt:o,parentAgentId:"orchestrator",timeout:n*1e3});return p.success?{tool_use_id:e.id,content:`Sub-agent "${t}" completed (${Math.round(p.duration/1e3)}s):
52
52
 
53
53
  ${p.content}`}:{tool_use_id:e.id,content:`Sub-agent "${t}" failed: ${p.error}`,is_error:!0}}catch(s){return{tool_use_id:e.id,content:`Failed to spawn sub-agent: ${s.message}`,is_error:!0}}}async askUser(e){let t=String(e.input.question||""),o=e.input.options,n=t;return o?.length&&(n+=`
54
54
  Options: ${o.join(", ")}`),{tool_use_id:e.id,content:"Question sent to user.",followUp:n}}};async function Ae(r){let{provider:e,systemPrompt:t,messages:o,providerOptions:n,cwd:s,maxIterations:i=20,enabledTools:c,interactive:a=!0,overwrite:p=!1,dryRun:l=!1,onProgress:d,abortSignal:u}=r,m=u?{...n,abortSignal:u}:n;if(!e.generateRaw)return dt(r);let I=new se(s,{interactive:a,overwrite:p,dryRun:l,acmeContext:r.acmeContext,abortSignal:u}),D=be(c);if(r.acmeContext)for(let g of at)D.push({name:g.name,description:g.description,input_schema:g.input_schema});let E=new Set;if(r.mcpTools?.length)for(let g of r.mcpTools)D.push({name:g.name,description:g.description,input_schema:g.input_schema}),E.add(g.name);let C=o.filter(g=>g.role!=="system").map(g=>({role:g.role,content:g.content})),B=[],G=0,F=0,A=0,O="",j,_=0;for(;_<i;){if(_++,u?.aborted)throw new Error("cancelled");d?.({type:"iteration_start",iteration:_}),b.step(_,`Agentic loop iteration (${D.length} tools available)`);let g,M=!!e.generateRawStream&&!!d;try{if(M){let T=null,U=null,v="";for await(let x of e.generateRawStream(C,t,D,m))x.type==="text_delta"?(v+=x.text,d?.({type:"text_delta",text:x.text})):x.type==="thinking_delta"?d?.({type:"thinking_delta",text:x.text}):x.type==="raw_result"?T=x.result:x.type==="error"&&(U=x.error);if(U&&!T)throw new Error(U);if(!T)throw new Error("generateRawStream returned no raw_result event");g=T,g._streamedText=v}else g=await e.generateRaw(C,t,D,m)}catch(T){if(T.message?.includes("not available"))return dt(r);throw T}G+=g.usage.input_tokens+g.usage.output_tokens,F+=g.usage.input_tokens,A+=g.usage.output_tokens;let P=g._streamedText;for(let T of g.content)T.type==="text"&&(O+=T.text,P===void 0&&d?.({type:"text_delta",text:T.text}));if(P!==void 0&&delete g._streamedText,g.stop_reason==="end_turn"||g.stop_reason==="max_tokens")break;if(g.stop_reason==="tool_use"){let T=g.content.filter(v=>v.type==="tool_use");if(T.length===0)break;C.push({role:"assistant",content:g.content});let U=[];for(let v of T){d?.({type:"tool_call",name:v.name,id:v.id,input:v.input}),b.step(_,`Tool call: ${v.name}`);let x;if(E.has(v.name)&&r.mcpDispatch){let h=await r.mcpDispatch(v.name,v.input);x={tool_use_id:v.id,content:h.content,is_error:h.isError}}else x=await I.execute({name:v.name,id:v.id,input:v.input});d?.({type:"tool_result",name:v.name,id:v.id,content:x.content.slice(0,200),is_error:x.is_error}),x.files?.length&&(B.push(...x.files),d?.({type:"files_created",files:x.files})),x.followUp&&(j=x.followUp),U.push({type:"tool_result",tool_use_id:x.tool_use_id,content:x.content,is_error:x.is_error})}if(C.push({role:"user",content:U}),j)break;continue}break}return d?.({type:"complete",iterations:_,totalTokens:G}),{files:B,content:O,followUp:j,tokensUsed:G,inputTokens:F||void 0,outputTokens:A||void 0,iterations:_}}async function dt(r){let{provider:e,systemPrompt:t,messages:o,providerOptions:n,maxIterations:s=5}=r,c=[{role:"system",content:t+`
@@ -123,4 +123,4 @@ ${r.projectInstructions}`),r.memoryContext&&o.push(r.memoryContext),o.push(`# Ou
123
123
  Generate output appropriate for: ${e}. Use the \`create_files\` tool to output all files.`),o.join(`
124
124
 
125
125
  `)}export{qe as a,Vt as b,Yt as c,We as d,ze as e,Ve as f,Ye as g,Pe as h,ee as i,Re as j,le as k,te as l,Tt as m,oe as n,Mt as o,f as p,et as q,tt as r,Me as s,de as t,W as u,ne as v,it as w,Ee as x,$e as y,se as z,mt as A,Zn as B,er as C};
126
- //# sourceMappingURL=chunk-QF377BDS.js.map
126
+ //# sourceMappingURL=chunk-YU5NDKPA.js.map
package/dist/cli.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{b as o}from"./chunk-JXF54PT7.js";import"./chunk-QIJLFPWE.js";var s=o(process.versions.node);s&&(console.error(s),process.exit(1));var{buildProgram:r}=await import("./program-7MG42JKO.js"),{installCliSignalExit:i}=await import("./signal-exit-WL7G3EEZ.js");i();var e=await r();process.argv.slice(2).length===0?e.outputHelp():e.parse();
2
+ import{b as o}from"./chunk-JXF54PT7.js";import"./chunk-QIJLFPWE.js";var s=o(process.versions.node);s&&(console.error(s),process.exit(1));var{buildProgram:r}=await import("./program-IEMICVO3.js"),{installCliSignalExit:i}=await import("./signal-exit-WL7G3EEZ.js");i();var e=await r();process.argv.slice(2).length===0?e.outputHelp():e.parse();
3
3
  //# sourceMappingURL=cli.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c,d,e,f,g}from"./chunk-X7E27RYS.js";import"./chunk-TXX5W3SH.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.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-DBQ5QNJJ.js.map
1
+ import{a,b,c,d,e,f,g}from"./chunk-C4S5XQKD.js";import"./chunk-Y5HBYSJW.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.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-QTXWO46T.js.map
@@ -1,2 +1,2 @@
1
- import{$ as c,Z as a,_ as b,aa as d,ba as e,ca as f,da as g,ea as h,fa as i,ga as j,ha as k,ia as l,ja as m,ka as n,ma as o}from"./chunk-TXX5W3SH.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";o();export{a as INTEGRATION_KINDS,j as approvalsConfigSchema,d as callsSchema,c as cameraBotSchema,k as daemonConfigSchema,b as eventSubscriptionSchema,l as expandEnvVars,m as loadDaemonConfig,h as membersConfigSchema,g as peopleConfigSchema,f as personSchema,i as requestStatusConfigSchema,e as requestsConfigSchema,n as validateWorkspaces};
2
- //# sourceMappingURL=config-4T62LT27.js.map
1
+ import{$ as c,Z as a,_ as b,aa as d,ba as e,ca as f,da as g,ea as h,fa as i,ga as j,ha as k,ia as l,ja as m,ka as n,ma as o}from"./chunk-Y5HBYSJW.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";o();export{a as INTEGRATION_KINDS,j as approvalsConfigSchema,d as callsSchema,c as cameraBotSchema,k as daemonConfigSchema,b as eventSubscriptionSchema,l as expandEnvVars,m as loadDaemonConfig,h as membersConfigSchema,g as peopleConfigSchema,f as personSchema,i as requestStatusConfigSchema,e as requestsConfigSchema,n as validateWorkspaces};
2
+ //# sourceMappingURL=config-4XGZYYQP.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e}from"./chunk-CYKPDILL.js";import"./chunk-Y5HBYSJW.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.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-QLSA6JOY.js.map
@@ -1,2 +1,2 @@
1
- import{b as a,c as b,d as c,e as d,f as e}from"./chunk-V3C2BOYR.js";import"./chunk-S2GAEH2F.js";import"./chunk-JXF54PT7.js";import"./chunk-TXX5W3SH.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";export{e as daemonVoiceCheck,b as doctor,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
- //# sourceMappingURL=doctor-M32NIOZH.js.map
1
+ import{b as a,c as b,d as c,e as d,f as e}from"./chunk-LP227A6L.js";import"./chunk-S2GAEH2F.js";import"./chunk-JXF54PT7.js";import"./chunk-Y5HBYSJW.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-QIJLFPWE.js";export{e as daemonVoiceCheck,b as doctor,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
+ //# sourceMappingURL=doctor-DO262COW.js.map
package/dist/index.d.ts CHANGED
@@ -3512,6 +3512,13 @@ declare const daemonConfigSchema: z.ZodObject<{
3512
3512
  height: z.ZodDefault<z.ZodNumber>;
3513
3513
  frameRate: z.ZodDefault<z.ZodNumber>;
3514
3514
  maxSeconds: z.ZodDefault<z.ZodNumber>;
3515
+ /** Ask the watching agent by voice: hold or tap Talk (#687). Off: the
3516
+ * phone shows the text box only. The microphone opens only while
3517
+ * you talk and is never part of the share. */
3518
+ voiceInput: z.ZodDefault<z.ZodBoolean>;
3519
+ /** Say the watching agent's answers aloud on the phone, in the
3520
+ * agent's voice or the phone's own. The owner can mute it there. */
3521
+ speakAnswers: z.ZodDefault<z.ZodBoolean>;
3515
3522
  /** An agent watching the phone camera. The bot keeps only the newest
3516
3523
  * frame; the agent gets one when asked, and every
3517
3524
  * frameIntervalSeconds when that is set. */
@@ -3529,16 +3536,26 @@ declare const daemonConfigSchema: z.ZodObject<{
3529
3536
  /** Keep the frame files in the agent's workspace after the share ends.
3530
3537
  * Off: every frame is deleted when the share ends. */
3531
3538
  keepFrames: z.ZodDefault<z.ZodBoolean>;
3539
+ /** "Keep watching" on the phone (#687): for a task that needs a stream
3540
+ * ("watch while I do this"), the agent gets a frame every this many
3541
+ * seconds, only while the owner has it on. */
3542
+ streamFrameSeconds: z.ZodDefault<z.ZodNumber>;
3543
+ /** "Keep watching" stops by itself after this many seconds. */
3544
+ streamMaxSeconds: z.ZodDefault<z.ZodNumber>;
3532
3545
  }, "strip", z.ZodTypeAny, {
3533
3546
  frameIntervalSeconds: number;
3534
3547
  maxSessionMinutes: number;
3535
3548
  maxFrameEdge: number;
3536
3549
  keepFrames: boolean;
3550
+ streamFrameSeconds: number;
3551
+ streamMaxSeconds: number;
3537
3552
  }, {
3538
3553
  frameIntervalSeconds?: number | undefined;
3539
3554
  maxSessionMinutes?: number | undefined;
3540
3555
  maxFrameEdge?: number | undefined;
3541
3556
  keepFrames?: boolean | undefined;
3557
+ streamFrameSeconds?: number | undefined;
3558
+ streamMaxSeconds?: number | undefined;
3542
3559
  }>>;
3543
3560
  }, "strip", z.ZodTypeAny, {
3544
3561
  bot: {
@@ -3546,22 +3563,30 @@ declare const daemonConfigSchema: z.ZodObject<{
3546
3563
  maxSessionMinutes: number;
3547
3564
  maxFrameEdge: number;
3548
3565
  keepFrames: boolean;
3566
+ streamFrameSeconds: number;
3567
+ streamMaxSeconds: number;
3549
3568
  };
3550
3569
  width: number;
3551
3570
  height: number;
3552
3571
  frameRate: number;
3553
3572
  maxSeconds: number;
3573
+ voiceInput: boolean;
3574
+ speakAnswers: boolean;
3554
3575
  }, {
3555
3576
  bot?: {
3556
3577
  frameIntervalSeconds?: number | undefined;
3557
3578
  maxSessionMinutes?: number | undefined;
3558
3579
  maxFrameEdge?: number | undefined;
3559
3580
  keepFrames?: boolean | undefined;
3581
+ streamFrameSeconds?: number | undefined;
3582
+ streamMaxSeconds?: number | undefined;
3560
3583
  } | undefined;
3561
3584
  width?: number | undefined;
3562
3585
  height?: number | undefined;
3563
3586
  frameRate?: number | undefined;
3564
3587
  maxSeconds?: number | undefined;
3588
+ voiceInput?: boolean | undefined;
3589
+ speakAnswers?: boolean | undefined;
3565
3590
  }>>;
3566
3591
  }, "strip", z.ZodTypeAny, {
3567
3592
  enabled: boolean;
@@ -3571,11 +3596,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3571
3596
  maxSessionMinutes: number;
3572
3597
  maxFrameEdge: number;
3573
3598
  keepFrames: boolean;
3599
+ streamFrameSeconds: number;
3600
+ streamMaxSeconds: number;
3574
3601
  };
3575
3602
  width: number;
3576
3603
  height: number;
3577
3604
  frameRate: number;
3578
3605
  maxSeconds: number;
3606
+ voiceInput: boolean;
3607
+ speakAnswers: boolean;
3579
3608
  };
3580
3609
  stunServers: string[];
3581
3610
  turnServers: {
@@ -3612,11 +3641,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3612
3641
  maxSessionMinutes?: number | undefined;
3613
3642
  maxFrameEdge?: number | undefined;
3614
3643
  keepFrames?: boolean | undefined;
3644
+ streamFrameSeconds?: number | undefined;
3645
+ streamMaxSeconds?: number | undefined;
3615
3646
  } | undefined;
3616
3647
  width?: number | undefined;
3617
3648
  height?: number | undefined;
3618
3649
  frameRate?: number | undefined;
3619
3650
  maxSeconds?: number | undefined;
3651
+ voiceInput?: boolean | undefined;
3652
+ speakAnswers?: boolean | undefined;
3620
3653
  } | undefined;
3621
3654
  stunServers?: string[] | undefined;
3622
3655
  turnServers?: {
@@ -3752,11 +3785,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3752
3785
  maxSessionMinutes: number;
3753
3786
  maxFrameEdge: number;
3754
3787
  keepFrames: boolean;
3788
+ streamFrameSeconds: number;
3789
+ streamMaxSeconds: number;
3755
3790
  };
3756
3791
  width: number;
3757
3792
  height: number;
3758
3793
  frameRate: number;
3759
3794
  maxSeconds: number;
3795
+ voiceInput: boolean;
3796
+ speakAnswers: boolean;
3760
3797
  };
3761
3798
  stunServers: string[];
3762
3799
  turnServers: {
@@ -3900,11 +3937,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3900
3937
  maxSessionMinutes?: number | undefined;
3901
3938
  maxFrameEdge?: number | undefined;
3902
3939
  keepFrames?: boolean | undefined;
3940
+ streamFrameSeconds?: number | undefined;
3941
+ streamMaxSeconds?: number | undefined;
3903
3942
  } | undefined;
3904
3943
  width?: number | undefined;
3905
3944
  height?: number | undefined;
3906
3945
  frameRate?: number | undefined;
3907
3946
  maxSeconds?: number | undefined;
3947
+ voiceInput?: boolean | undefined;
3948
+ speakAnswers?: boolean | undefined;
3908
3949
  } | undefined;
3909
3950
  stunServers?: string[] | undefined;
3910
3951
  turnServers?: {
@@ -7253,11 +7294,15 @@ declare const daemonConfigSchema: z.ZodObject<{
7253
7294
  maxSessionMinutes: number;
7254
7295
  maxFrameEdge: number;
7255
7296
  keepFrames: boolean;
7297
+ streamFrameSeconds: number;
7298
+ streamMaxSeconds: number;
7256
7299
  };
7257
7300
  width: number;
7258
7301
  height: number;
7259
7302
  frameRate: number;
7260
7303
  maxSeconds: number;
7304
+ voiceInput: boolean;
7305
+ speakAnswers: boolean;
7261
7306
  };
7262
7307
  stunServers: string[];
7263
7308
  turnServers: {
@@ -8149,11 +8194,15 @@ declare const daemonConfigSchema: z.ZodObject<{
8149
8194
  maxSessionMinutes?: number | undefined;
8150
8195
  maxFrameEdge?: number | undefined;
8151
8196
  keepFrames?: boolean | undefined;
8197
+ streamFrameSeconds?: number | undefined;
8198
+ streamMaxSeconds?: number | undefined;
8152
8199
  } | undefined;
8153
8200
  width?: number | undefined;
8154
8201
  height?: number | undefined;
8155
8202
  frameRate?: number | undefined;
8156
8203
  maxSeconds?: number | undefined;
8204
+ voiceInput?: boolean | undefined;
8205
+ speakAnswers?: boolean | undefined;
8157
8206
  } | undefined;
8158
8207
  stunServers?: string[] | undefined;
8159
8208
  turnServers?: {
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as St,b as kt,c as vt,d as xt,e as $t,f as Ct,g as Pt,h as bt,ia as Tt,ja as Mt}from"./chunk-B37WAFT5.js";import"./chunk-OZDSQVHU.js";import"./chunk-EEOQ5C5N.js";import"./chunk-S2GAEH2F.js";import"./chunk-GTJIKXDB.js";import"./chunk-DG5I6PPM.js";import"./chunk-ZVP6GB4G.js";import"./chunk-PPUN7YHA.js";import"./chunk-VZLIBDLH.js";import"./chunk-EKJG63EJ.js";import"./chunk-QWI3FM5R.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-ACFQBLPX.js";import"./chunk-LQE73AZR.js";import"./chunk-2D3RYIDU.js";import"./chunk-QLWGLRT5.js";import"./chunk-JIT5GPTX.js";import{ca as yt,m as lt,n as ct,o as dt,p as mt,q as pt}from"./chunk-37EDS7SZ.js";import"./chunk-THRWE4Y3.js";import"./chunk-GLQLCBJS.js";import"./chunk-6W74CHNW.js";import{a as L}from"./chunk-UG2OF2EI.js";import{A as D,B as z,C as V,a as ye,b as we,c as Se,d as Ae,e as Ie,f as Oe,g as Ne,h as He,i as je,j as Ue,k as _e,l as I,m as q,n as Be,o as qe,p as Ye,q as O,r as ze,s as Ve,t as Xe,u as x,v as Y,w as Qe,x as Ze,y as et,z as wt}from"./chunk-QF377BDS.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-LLNPKE7H.js";import"./chunk-SHEUCITK.js";import"./chunk-Y4CYQV7G.js";import"./chunk-22LO3GBP.js";import"./chunk-GV7S5BAX.js";import"./chunk-SZDACK6O.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-4QCYSKPD.js";import"./chunk-A6B5JRUG.js";import"./chunk-VWTBHLMX.js";import"./chunk-DVJW3IWI.js";import{a as ht}from"./chunk-R43TE2XX.js";import"./chunk-36AXN6ZB.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-GSX4NK2N.js";import"./chunk-MEXXGNNN.js";import"./chunk-MYVHVJWZ.js";import"./chunk-AV7T3SYT.js";import"./chunk-Y5MFVVTM.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-RXQ2XCKP.js";import{f as gt,g as ft}from"./chunk-JBE4H7PL.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-74CQWVHE.js";import"./chunk-72SZI2UW.js";import"./chunk-FX3D7YON.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import{a as ke,b as ve,c as xe,d as $e,e as Ce,f as Pe,g as be,h as Te,i as Me,j as Re,l as Ee,m as Ge,o as T,p as W}from"./chunk-2PJKGZWP.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{b as Fe,c as Le,d as A,e as De}from"./chunk-JHCI6XCJ.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{ha as tt,ja as st,ka as ot,ma as nt}from"./chunk-TXX5W3SH.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";W();G();import{execa as Rt}from"execa";import{existsSync as se,promises as X}from"fs";import S from"path";import ie from"node-fetch";async function Et(o,e){let t=o.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${o}. Expected format: owner/repo`);let s=t[0],i=t[1],n=t[2];try{let a=n?`${s}/${i}/${n}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${o}`);let r=S.resolve(e,".skills",`${s}_${i}`);if(se(r))return await ne(r,o);let d=S.resolve(e,".skills");return se(d)?await ne(d,o):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Gt(s,i,n,e)}}async function Gt(o,e,t,s){let i=[];try{let n=`https://api.github.com/repos/${o}/${e}/git/trees/main?recursive=1`,a=await ie(n);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let d=(await a.json()).tree.filter(p=>p.type==="blob"&&p.path.endsWith("SKILL.md"));if(t){let p=d.find(f=>f.path.includes(`/${t}/`)||f.path===`${t}/SKILL.md`);if(p){let f=await oe(o,e,p.path,s);f&&i.push(f)}}else for(let p of d){let f=await oe(o,e,p.path,s);f&&i.push(f)}}catch(n){m.error(`Failed to fetch skills from GitHub: ${n.message}`)}return i}async function oe(o,e,t,s){try{let i=`https://raw.githubusercontent.com/${o}/${e}/main/${t}`,n=await ie(i);if(!n.ok)return null;let a=await n.text(),r=A(a);if(r){r.source="remote",r.packageId=`${o}/${e}`;let d=S.dirname(t),p=S.resolve(s,".skills",`${o}_${e}`,d);await X.mkdir(p,{recursive:!0}),await X.writeFile(S.resolve(p,"SKILL.md"),a),r.path=S.resolve(p,"SKILL.md")}return r}catch{return null}}async function ne(o,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:o,deep:5});for(let n of i)try{let a=S.resolve(o,n),r=await X.readFile(a,"utf8"),d=A(r);d&&(d.source="remote",d.path=a,d.packageId=e,t.push(d))}catch{}return t}async function At(o,e,t,s,i){let n=["---",`name: ${o}`,`description: ${e}`];if(s?.length){n.push("tags:");for(let a of s)n.push(` - ${a}`)}if(i?.length){n.push("globs:");for(let a of i)n.push(` - ${a}`)}return n.push("---"),`${n.join(`
1
+ import{a as St,b as kt,c as vt,d as xt,e as $t,f as Ct,g as Pt,h as bt,ia as Tt,ja as Mt}from"./chunk-QQIWLN3H.js";import"./chunk-6WNQY6K2.js";import"./chunk-VTWSW4KB.js";import"./chunk-S2GAEH2F.js";import"./chunk-GTJIKXDB.js";import"./chunk-BGG3ZSMW.js";import"./chunk-ZVP6GB4G.js";import"./chunk-PPUN7YHA.js";import"./chunk-VZLIBDLH.js";import"./chunk-EKJG63EJ.js";import"./chunk-4COYYJJY.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-ACFQBLPX.js";import"./chunk-LQE73AZR.js";import"./chunk-2D3RYIDU.js";import"./chunk-QLWGLRT5.js";import"./chunk-JIT5GPTX.js";import{ca as yt,m as lt,n as ct,o as dt,p as mt,q as pt}from"./chunk-XTO4GRGN.js";import"./chunk-J3GXZQXY.js";import"./chunk-GLQLCBJS.js";import"./chunk-6W74CHNW.js";import{a as L}from"./chunk-UG2OF2EI.js";import{A as D,B as z,C as V,a as ye,b as we,c as Se,d as Ae,e as Ie,f as Oe,g as Ne,h as He,i as je,j as Ue,k as _e,l as I,m as q,n as Be,o as qe,p as Ye,q as O,r as ze,s as Ve,t as Xe,u as x,v as Y,w as Qe,x as Ze,y as et,z as wt}from"./chunk-YU5NDKPA.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-LLNPKE7H.js";import"./chunk-SHEUCITK.js";import"./chunk-Y4CYQV7G.js";import"./chunk-YLKCFW2R.js";import"./chunk-GV7S5BAX.js";import"./chunk-SZDACK6O.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-VGI4EZTP.js";import"./chunk-CYKPDILL.js";import"./chunk-VWTBHLMX.js";import"./chunk-VQM77L54.js";import{a as ht}from"./chunk-XX7NXI3Y.js";import"./chunk-36AXN6ZB.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-GSX4NK2N.js";import"./chunk-HG6QA6EU.js";import"./chunk-MYVHVJWZ.js";import"./chunk-AV7T3SYT.js";import"./chunk-Y5MFVVTM.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-O2RVUM2B.js";import{f as gt,g as ft}from"./chunk-ILGLEA3I.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-A35RTVMM.js";import"./chunk-72SZI2UW.js";import"./chunk-FX3D7YON.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import{a as ke,b as ve,c as xe,d as $e,e as Ce,f as Pe,g as be,h as Te,i as Me,j as Re,l as Ee,m as Ge,o as T,p as W}from"./chunk-2PJKGZWP.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{b as Fe,c as Le,d as A,e as De}from"./chunk-JHCI6XCJ.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{ha as tt,ja as st,ka as ot,ma as nt}from"./chunk-Y5HBYSJW.js";import"./chunk-UIBUZ2N3.js";import"./chunk-BRK6M6LA.js";import"./chunk-2QNT5JDS.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";W();G();import{execa as Rt}from"execa";import{existsSync as se,promises as X}from"fs";import S from"path";import ie from"node-fetch";async function Et(o,e){let t=o.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${o}. Expected format: owner/repo`);let s=t[0],i=t[1],n=t[2];try{let a=n?`${s}/${i}/${n}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${o}`);let r=S.resolve(e,".skills",`${s}_${i}`);if(se(r))return await ne(r,o);let d=S.resolve(e,".skills");return se(d)?await ne(d,o):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Gt(s,i,n,e)}}async function Gt(o,e,t,s){let i=[];try{let n=`https://api.github.com/repos/${o}/${e}/git/trees/main?recursive=1`,a=await ie(n);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let d=(await a.json()).tree.filter(p=>p.type==="blob"&&p.path.endsWith("SKILL.md"));if(t){let p=d.find(f=>f.path.includes(`/${t}/`)||f.path===`${t}/SKILL.md`);if(p){let f=await oe(o,e,p.path,s);f&&i.push(f)}}else for(let p of d){let f=await oe(o,e,p.path,s);f&&i.push(f)}}catch(n){m.error(`Failed to fetch skills from GitHub: ${n.message}`)}return i}async function oe(o,e,t,s){try{let i=`https://raw.githubusercontent.com/${o}/${e}/main/${t}`,n=await ie(i);if(!n.ok)return null;let a=await n.text(),r=A(a);if(r){r.source="remote",r.packageId=`${o}/${e}`;let d=S.dirname(t),p=S.resolve(s,".skills",`${o}_${e}`,d);await X.mkdir(p,{recursive:!0}),await X.writeFile(S.resolve(p,"SKILL.md"),a),r.path=S.resolve(p,"SKILL.md")}return r}catch{return null}}async function ne(o,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:o,deep:5});for(let n of i)try{let a=S.resolve(o,n),r=await X.readFile(a,"utf8"),d=A(r);d&&(d.source="remote",d.path=a,d.packageId=e,t.push(d))}catch{}return t}async function At(o,e,t,s,i){let n=["---",`name: ${o}`,`description: ${e}`];if(s?.length){n.push("tags:");for(let a of s)n.push(` - ${a}`)}if(i?.length){n.push("globs:");for(let a of i)n.push(` - ${a}`)}return n.push("---"),`${n.join(`
2
2
  `)}
3
3
 
4
4
  ${t}`}async function It(o){let{loadLocalSkills:e}=await import("./loader-YFVSSYSL.js");return e(o)}async function Ot(o,e,t,s,i){let a=[{role:"system",content:`You are a skill author for the Agent Skills ecosystem (skills.sh).
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-4VDA4UM7.js";import"./chunk-SCJ5ZXEN.js";import"./chunk-BGG3ZSMW.js";import"./chunk-QIJLFPWE.js";export{a as renderProcessesPage};
2
+ //# sourceMappingURL=processes-5MP32QZT.js.map