agentix-cli 0.122.0 → 0.124.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 (120) hide show
  1. package/dist/{App-2D5W26LY.js → App-BUYK4EGC.js} +2 -2
  2. package/dist/{ChatApp-FZFZD2XY.js → ChatApp-ZS6EPDDK.js} +2 -2
  3. package/dist/{agent-PCRE3TRK.js → agent-W7UNXO6L.js} +2 -2
  4. package/dist/{board-dashboard-ZDJ4UDW4.js → board-dashboard-3AOENRSG.js} +292 -226
  5. package/dist/board-dashboard-3AOENRSG.js.map +1 -0
  6. package/dist/{chunk-XLCUHG3N.js → chunk-46ACP7A7.js} +71 -69
  7. package/dist/chunk-46ACP7A7.js.map +1 -0
  8. package/dist/{chunk-ZLUROC2Y.js → chunk-46JKX6CT.js} +17 -17
  9. package/dist/chunk-46JKX6CT.js.map +1 -0
  10. package/dist/{chunk-ZWZADDXV.js → chunk-5DFUUYEA.js} +2 -2
  11. package/dist/{chunk-NFS2VR3L.js → chunk-5RE2B5YQ.js} +2 -2
  12. package/dist/{chunk-NYAMY7EA.js → chunk-6GLJIA25.js} +2 -2
  13. package/dist/{chunk-5SLTRG66.js → chunk-6HKLRU62.js} +2 -2
  14. package/dist/{chunk-XBRVV4ZT.js → chunk-6PJ6XHG4.js} +2 -2
  15. package/dist/{chunk-54XX2LSW.js → chunk-AKLZ4YO2.js} +4 -4
  16. package/dist/{chunk-54XX2LSW.js.map → chunk-AKLZ4YO2.js.map} +1 -1
  17. package/dist/{chunk-TYFGL2YS.js → chunk-B3B7KEHJ.js} +2 -2
  18. package/dist/{chunk-EHKI2RKD.js → chunk-BN5QMNON.js} +2 -2
  19. package/dist/{chunk-2UDSIG5K.js → chunk-BSTIA4M6.js} +2 -2
  20. package/dist/{chunk-YCMO3KZ4.js → chunk-CY6ABHF2.js} +2 -2
  21. package/dist/{chunk-BRVQZC6P.js → chunk-FHBPKMCF.js} +2 -2
  22. package/dist/{chunk-C52IPIKJ.js → chunk-INLKJEEN.js} +2 -2
  23. package/dist/chunk-ITATBKUL.js +37 -0
  24. package/dist/chunk-ITATBKUL.js.map +1 -0
  25. package/dist/{chunk-DMPTCBX6.js → chunk-K5QUQNFE.js} +3 -3
  26. package/dist/chunk-K5QUQNFE.js.map +1 -0
  27. package/dist/{chunk-UVV6GUOG.js → chunk-PAM56O25.js} +257 -254
  28. package/dist/chunk-PAM56O25.js.map +1 -0
  29. package/dist/{chunk-SB7WMFJV.js → chunk-QQYXYJOG.js} +2 -2
  30. package/dist/{chunk-WJDFR3WE.js → chunk-VHT7HESZ.js} +2 -2
  31. package/dist/{chunk-QCPSGOSK.js → chunk-WEPON4FP.js} +2 -2
  32. package/dist/{chunk-XX6MLDTL.js → chunk-WMTGAVPW.js} +2 -2
  33. package/dist/{chunk-YUNMSLZN.js → chunk-YL4C63S2.js} +2 -2
  34. package/dist/{chunk-7ZGTRXWS.js → chunk-YSIRJZWF.js} +2 -2
  35. package/dist/cli.js +1 -1
  36. package/dist/{client-TFZEASIJ.js → client-PO5LDFS4.js} +2 -2
  37. package/dist/config-L2RQ6EJX.js +2 -0
  38. package/dist/config-mutator-44OAOZXM.js +2 -0
  39. package/dist/doctor-AU5TCOSG.js +2 -0
  40. package/dist/{editor-chat-4MLCP5D2.js → editor-chat-ELKNLXM6.js} +10 -3
  41. package/dist/{editor-chat-4MLCP5D2.js.map → editor-chat-ELKNLXM6.js.map} +1 -1
  42. package/dist/follow-up-tool-AIOLNUF7.js +6 -0
  43. package/dist/follow-up-tool-AIOLNUF7.js.map +1 -0
  44. package/dist/{grants-NGBKFONG.js → grants-HIFE6L5N.js} +2 -2
  45. package/dist/index.d.ts +80 -3
  46. package/dist/index.js +1 -1
  47. package/dist/{program-CGPPGRMR.js → program-EJWE7NVT.js} +221 -221
  48. package/dist/program-EJWE7NVT.js.map +1 -0
  49. package/dist/{promote-VTVIPRTC.js → promote-DPPNEINZ.js} +2 -2
  50. package/dist/push-bridge-325SXDGN.js +1 -1
  51. package/dist/{query-3CVDT2GZ.js → query-SLUOL6MQ.js} +2 -2
  52. package/dist/{registry-NOJMMWE3.js → registry-UBVBEEDW.js} +2 -2
  53. package/dist/{request-planner-E2Q5O66N.js → request-planner-2G73AJ4S.js} +2 -2
  54. package/dist/{review-candidates-I36HEYKX.js → review-candidates-S34UICQD.js} +2 -2
  55. package/dist/routing-K2LAUFRL.js +2 -0
  56. package/dist/schedule-tool-YRANRFHO.js +2 -0
  57. package/dist/scheduler-L4P4Z55R.js +2 -0
  58. package/dist/{seat-NGY2BMP6.js → seat-ZJT5T2NO.js} +2 -2
  59. package/dist/{select-X7VBGZ6X.js → select-Y23SKHCJ.js} +2 -2
  60. package/dist/{set-enabled-6NP63KCU.js → set-enabled-YWXWSKME.js} +2 -2
  61. package/dist/{tool-EZIILXYL.js → tool-5JTCSRTW.js} +2 -2
  62. package/dist/{tool-WKIF52OH.js → tool-FZEC5FQX.js} +2 -2
  63. package/dist/web/workflow-editor.global.js +1 -1
  64. package/dist/web/workflow-editor.global.js.map +1 -1
  65. package/dist/wiki-ZZ3MU5Y5.js +2 -0
  66. package/package.json +1 -1
  67. package/dist/board-dashboard-ZDJ4UDW4.js.map +0 -1
  68. package/dist/chunk-DMPTCBX6.js.map +0 -1
  69. package/dist/chunk-TLCURHW3.js +0 -28
  70. package/dist/chunk-TLCURHW3.js.map +0 -1
  71. package/dist/chunk-UVV6GUOG.js.map +0 -1
  72. package/dist/chunk-XLCUHG3N.js.map +0 -1
  73. package/dist/chunk-ZLUROC2Y.js.map +0 -1
  74. package/dist/config-IXCOAOPZ.js +0 -2
  75. package/dist/config-mutator-EPYIZVSG.js +0 -2
  76. package/dist/doctor-G5TM5GVF.js +0 -2
  77. package/dist/program-CGPPGRMR.js.map +0 -1
  78. package/dist/routing-KBUZON5R.js +0 -2
  79. package/dist/schedule-tool-GUHHYYTO.js +0 -2
  80. package/dist/scheduler-PGUELFMB.js +0 -2
  81. package/dist/wiki-7BFVMMNR.js +0 -2
  82. /package/dist/{App-2D5W26LY.js.map → App-BUYK4EGC.js.map} +0 -0
  83. /package/dist/{ChatApp-FZFZD2XY.js.map → ChatApp-ZS6EPDDK.js.map} +0 -0
  84. /package/dist/{agent-PCRE3TRK.js.map → agent-W7UNXO6L.js.map} +0 -0
  85. /package/dist/{chunk-ZWZADDXV.js.map → chunk-5DFUUYEA.js.map} +0 -0
  86. /package/dist/{chunk-NFS2VR3L.js.map → chunk-5RE2B5YQ.js.map} +0 -0
  87. /package/dist/{chunk-NYAMY7EA.js.map → chunk-6GLJIA25.js.map} +0 -0
  88. /package/dist/{chunk-5SLTRG66.js.map → chunk-6HKLRU62.js.map} +0 -0
  89. /package/dist/{chunk-XBRVV4ZT.js.map → chunk-6PJ6XHG4.js.map} +0 -0
  90. /package/dist/{chunk-TYFGL2YS.js.map → chunk-B3B7KEHJ.js.map} +0 -0
  91. /package/dist/{chunk-EHKI2RKD.js.map → chunk-BN5QMNON.js.map} +0 -0
  92. /package/dist/{chunk-2UDSIG5K.js.map → chunk-BSTIA4M6.js.map} +0 -0
  93. /package/dist/{chunk-YCMO3KZ4.js.map → chunk-CY6ABHF2.js.map} +0 -0
  94. /package/dist/{chunk-BRVQZC6P.js.map → chunk-FHBPKMCF.js.map} +0 -0
  95. /package/dist/{chunk-C52IPIKJ.js.map → chunk-INLKJEEN.js.map} +0 -0
  96. /package/dist/{chunk-SB7WMFJV.js.map → chunk-QQYXYJOG.js.map} +0 -0
  97. /package/dist/{chunk-WJDFR3WE.js.map → chunk-VHT7HESZ.js.map} +0 -0
  98. /package/dist/{chunk-QCPSGOSK.js.map → chunk-WEPON4FP.js.map} +0 -0
  99. /package/dist/{chunk-XX6MLDTL.js.map → chunk-WMTGAVPW.js.map} +0 -0
  100. /package/dist/{chunk-YUNMSLZN.js.map → chunk-YL4C63S2.js.map} +0 -0
  101. /package/dist/{chunk-7ZGTRXWS.js.map → chunk-YSIRJZWF.js.map} +0 -0
  102. /package/dist/{client-TFZEASIJ.js.map → client-PO5LDFS4.js.map} +0 -0
  103. /package/dist/{config-IXCOAOPZ.js.map → config-L2RQ6EJX.js.map} +0 -0
  104. /package/dist/{config-mutator-EPYIZVSG.js.map → config-mutator-44OAOZXM.js.map} +0 -0
  105. /package/dist/{doctor-G5TM5GVF.js.map → doctor-AU5TCOSG.js.map} +0 -0
  106. /package/dist/{grants-NGBKFONG.js.map → grants-HIFE6L5N.js.map} +0 -0
  107. /package/dist/{promote-VTVIPRTC.js.map → promote-DPPNEINZ.js.map} +0 -0
  108. /package/dist/{query-3CVDT2GZ.js.map → query-SLUOL6MQ.js.map} +0 -0
  109. /package/dist/{registry-NOJMMWE3.js.map → registry-UBVBEEDW.js.map} +0 -0
  110. /package/dist/{request-planner-E2Q5O66N.js.map → request-planner-2G73AJ4S.js.map} +0 -0
  111. /package/dist/{review-candidates-I36HEYKX.js.map → review-candidates-S34UICQD.js.map} +0 -0
  112. /package/dist/{routing-KBUZON5R.js.map → routing-K2LAUFRL.js.map} +0 -0
  113. /package/dist/{schedule-tool-GUHHYYTO.js.map → schedule-tool-YRANRFHO.js.map} +0 -0
  114. /package/dist/{scheduler-PGUELFMB.js.map → scheduler-L4P4Z55R.js.map} +0 -0
  115. /package/dist/{seat-NGY2BMP6.js.map → seat-ZJT5T2NO.js.map} +0 -0
  116. /package/dist/{select-X7VBGZ6X.js.map → select-Y23SKHCJ.js.map} +0 -0
  117. /package/dist/{set-enabled-6NP63KCU.js.map → set-enabled-YWXWSKME.js.map} +0 -0
  118. /package/dist/{tool-EZIILXYL.js.map → tool-5JTCSRTW.js.map} +0 -0
  119. /package/dist/{tool-WKIF52OH.js.map → tool-FZEC5FQX.js.map} +0 -0
  120. /package/dist/{wiki-7BFVMMNR.js.map → wiki-ZZ3MU5Y5.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -910,7 +910,14 @@ declare class AgentXRuntime {
910
910
  private sendJson;
911
911
  }
912
912
 
913
- declare function startMcpServer(): Promise<void>;
913
+ /** The tool sets `agentx serve --tools <set>` offers (#794). `full` is
914
+ * every tool and the default. */
915
+ declare const MCP_TOOL_SETS: readonly ["read", "full"];
916
+ type McpToolSet = (typeof MCP_TOOL_SETS)[number];
917
+
918
+ declare function startMcpServer(opts?: {
919
+ tools?: McpToolSet;
920
+ }): Promise<void>;
914
921
 
915
922
  declare class MemoryHierarchy {
916
923
  private cwd;
@@ -6653,6 +6660,36 @@ declare const daemonConfigSchema: z.ZodObject<{
6653
6660
  autoRunThreshold?: number | undefined;
6654
6661
  suggestThreshold?: number | undefined;
6655
6662
  }>>;
6663
+ /** Follow-up workflows (#788): agents start a saved workflow for a
6664
+ * request, or build one from the owner's words, and the engine
6665
+ * follows each step to the end. */
6666
+ followUp: z.ZodDefault<z.ZodObject<{
6667
+ /** Agents get agentx_workflow and the hint naming a saved workflow
6668
+ * that fits the request. */
6669
+ enabled: z.ZodDefault<z.ZodBoolean>;
6670
+ /** Per agent, by id: false turns it off for that agent. */
6671
+ agents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
6672
+ /** An agent step with no progress for this long gets a reminder. */
6673
+ stallMinutes: z.ZodDefault<z.ZodNumber>;
6674
+ /** Reminders before the step counts as blocked and you are told. */
6675
+ maxNudges: z.ZodDefault<z.ZodNumber>;
6676
+ /** When you approve messages to people: all at once when a run
6677
+ * starts ("start"), or each before it is sent ("step"). A workflow
6678
+ * can set its own `approval`. */
6679
+ approval: z.ZodDefault<z.ZodEnum<["start", "step"]>>;
6680
+ }, "strip", z.ZodTypeAny, {
6681
+ enabled: boolean;
6682
+ agents: Record<string, boolean>;
6683
+ approval: "start" | "step";
6684
+ stallMinutes: number;
6685
+ maxNudges: number;
6686
+ }, {
6687
+ enabled?: boolean | undefined;
6688
+ agents?: Record<string, boolean> | undefined;
6689
+ approval?: "start" | "step" | undefined;
6690
+ stallMinutes?: number | undefined;
6691
+ maxNudges?: number | undefined;
6692
+ }>>;
6656
6693
  /** Controls whether the dashboard exposes the visual editor. "readonly"
6657
6694
  * serves the list + run timelines but strips write controls from the
6658
6695
  * page. "disabled" hides the tab entirely. */
@@ -6660,6 +6697,13 @@ declare const daemonConfigSchema: z.ZodObject<{
6660
6697
  }, "strip", z.ZodTypeAny, {
6661
6698
  dir: string;
6662
6699
  enabled: boolean;
6700
+ followUp: {
6701
+ enabled: boolean;
6702
+ agents: Record<string, boolean>;
6703
+ approval: "start" | "step";
6704
+ stallMinutes: number;
6705
+ maxNudges: number;
6706
+ };
6663
6707
  n8n: {
6664
6708
  apiKey: string;
6665
6709
  baseUrl: string;
@@ -6674,6 +6718,13 @@ declare const daemonConfigSchema: z.ZodObject<{
6674
6718
  }, {
6675
6719
  dir?: string | undefined;
6676
6720
  enabled?: boolean | undefined;
6721
+ followUp?: {
6722
+ enabled?: boolean | undefined;
6723
+ agents?: Record<string, boolean> | undefined;
6724
+ approval?: "start" | "step" | undefined;
6725
+ stallMinutes?: number | undefined;
6726
+ maxNudges?: number | undefined;
6727
+ } | undefined;
6677
6728
  n8n?: {
6678
6729
  apiKey?: string | undefined;
6679
6730
  baseUrl?: string | undefined;
@@ -6902,8 +6953,8 @@ declare const daemonConfigSchema: z.ZodObject<{
6902
6953
  * them while ToolSearch is available, so a list saves only their
6903
6954
  * names (about 300 tokens) unless tool search is off. A tool left
6904
6955
  * off cannot be found even through ToolSearch. `agentx_approval`,
6905
- * `agentx_request`, `agentx_events` and `agentx_attach_next` are
6906
- * always kept, and so are `agentx_agents`, `agentx_recent` and
6956
+ * `agentx_request`, `agentx_events`, `agentx_attach_next` and
6957
+ * `agentx_workflow` are always kept, and so are `agentx_agents`, `agentx_recent` and
6907
6958
  * `agentx_wiki_query` while `contextOnDemand` is on. A name that is
6908
6959
  * not an agentx tool is rejected, so a typo cannot silently drop a
6909
6960
  * reply tool. Only an agentx server started as a command (stdio)
@@ -7863,6 +7914,13 @@ declare const daemonConfigSchema: z.ZodObject<{
7863
7914
  workflows: {
7864
7915
  dir: string;
7865
7916
  enabled: boolean;
7917
+ followUp: {
7918
+ enabled: boolean;
7919
+ agents: Record<string, boolean>;
7920
+ approval: "start" | "step";
7921
+ stallMinutes: number;
7922
+ maxNudges: number;
7923
+ };
7866
7924
  n8n: {
7867
7925
  apiKey: string;
7868
7926
  baseUrl: string;
@@ -8781,6 +8839,13 @@ declare const daemonConfigSchema: z.ZodObject<{
8781
8839
  workflows?: {
8782
8840
  dir?: string | undefined;
8783
8841
  enabled?: boolean | undefined;
8842
+ followUp?: {
8843
+ enabled?: boolean | undefined;
8844
+ agents?: Record<string, boolean> | undefined;
8845
+ approval?: "start" | "step" | undefined;
8846
+ stallMinutes?: number | undefined;
8847
+ maxNudges?: number | undefined;
8848
+ } | undefined;
8784
8849
  n8n?: {
8785
8850
  apiKey?: string | undefined;
8786
8851
  baseUrl?: string | undefined;
@@ -9722,6 +9787,15 @@ declare class AgentXDaemon {
9722
9787
  * closed ones are deleted (src/requests/sweep.ts). Plans first: a
9723
9788
  * blocked step marks its request told, so the owner hears once. */
9724
9789
  private sweepRequests;
9790
+ /** Tell the owner through the notify path: a push to the default
9791
+ * channel, the Mac banner where there is one (#788). */
9792
+ private notifyOwner;
9793
+ /** A card raised for a workflow (#788): a step's answer resumes its
9794
+ * run; a proposed workflow is kept (switched on) on a yes. */
9795
+ private workflowCardResult;
9796
+ /** A follow-up run ended: its request closes with the steps' evidence,
9797
+ * or needs attention (the summary already told the owner). */
9798
+ private workflowRequestEnded;
9725
9799
  /** A check-in pass when one is due, or `force` now. macOS only. */
9726
9800
  runCheckin(force?: PassKind): Promise<PassResult | null>;
9727
9801
  private stopReminders?;
@@ -12248,6 +12322,8 @@ interface RunningTask {
12248
12322
  /** Intent-graph path this request was classified under, once known.
12249
12323
  * Classification runs alongside the turn, so it is absent until then. */
12250
12324
  intentPath?: string[];
12325
+ /** Step autonomy the turn runs at (report | propose | act). Unset = act. */
12326
+ autonomy?: AgentTask["autonomy"];
12251
12327
  }
12252
12328
  type TaskOutputSubscriber = (chunk: string) => void;
12253
12329
  /** Persisted record of a finished task, written to .agentx/task-history. */
@@ -12584,6 +12660,7 @@ declare class AgentRegistry {
12584
12660
  }): {
12585
12661
  taskId: string;
12586
12662
  context: NonNullable<AgentTask["context"]>;
12663
+ autonomy?: AgentTask["autonomy"];
12587
12664
  } | null;
12588
12665
  /** Whether every slot of `agentId` is taken, and by which runs. Lets a
12589
12666
  * synchronous delegation refuse at once when the only slot is held by
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,la as Tt,ma as Mt}from"./chunk-UVV6GUOG.js";import"./chunk-DMPTCBX6.js";import"./chunk-GTJIKXDB.js";import"./chunk-NFS2VR3L.js";import"./chunk-S2GAEH2F.js";import"./chunk-BGG3ZSMW.js";import"./chunk-ZVP6GB4G.js";import"./chunk-XGOBZCYC.js";import"./chunk-WCXXXAHV.js";import"./chunk-LQE73AZR.js";import"./chunk-2D3RYIDU.js";import"./chunk-QCPSGOSK.js";import"./chunk-54XX2LSW.js";import"./chunk-PPUN7YHA.js";import"./chunk-VZLIBDLH.js";import"./chunk-EKJG63EJ.js";import"./chunk-TYFGL2YS.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-EMGB23H5.js";import"./chunk-JWDJMFU6.js";import"./chunk-GRMCAO3Q.js";import"./chunk-KZKDVIOE.js";import{ca as yt,m as lt,n as ct,o as dt,p as mt,q as pt}from"./chunk-XLCUHG3N.js";import"./chunk-TLCURHW3.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-5SLTRG66.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-Y4CYQV7G.js";import"./chunk-LLNPKE7H.js";import"./chunk-SHEUCITK.js";import"./chunk-SB7WMFJV.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-ZWZADDXV.js";import"./chunk-XX6MLDTL.js";import"./chunk-VWTBHLMX.js";import"./chunk-7ZGTRXWS.js";import{a as ht}from"./chunk-XBRVV4ZT.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-C52IPIKJ.js";import"./chunk-MYVHVJWZ.js";import"./chunk-AV7T3SYT.js";import"./chunk-Y5MFVVTM.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-YUNMSLZN.js";import{f as gt,g as ft}from"./chunk-WJDFR3WE.js";import"./chunk-WPNRDEHW.js";import"./chunk-56KNKUFF.js";import{j as it,k as rt,l as at}from"./chunk-EHKI2RKD.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{ia as tt,ka as st,la as ot,na as nt}from"./chunk-ZLUROC2Y.js";import"./chunk-BRK6M6LA.js";import"./chunk-UIBUZ2N3.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,la as Tt,ma as Mt}from"./chunk-PAM56O25.js";import"./chunk-K5QUQNFE.js";import"./chunk-GTJIKXDB.js";import"./chunk-5RE2B5YQ.js";import"./chunk-S2GAEH2F.js";import"./chunk-BGG3ZSMW.js";import"./chunk-ZVP6GB4G.js";import"./chunk-XGOBZCYC.js";import"./chunk-WCXXXAHV.js";import"./chunk-GRMCAO3Q.js";import"./chunk-LQE73AZR.js";import"./chunk-2D3RYIDU.js";import"./chunk-WEPON4FP.js";import"./chunk-AKLZ4YO2.js";import"./chunk-PPUN7YHA.js";import"./chunk-VZLIBDLH.js";import"./chunk-EKJG63EJ.js";import"./chunk-B3B7KEHJ.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-EMGB23H5.js";import"./chunk-JWDJMFU6.js";import"./chunk-KZKDVIOE.js";import{ca as yt,m as lt,n as ct,o as dt,p as mt,q as pt}from"./chunk-46ACP7A7.js";import"./chunk-ITATBKUL.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-6HKLRU62.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-Y4CYQV7G.js";import"./chunk-LLNPKE7H.js";import"./chunk-SHEUCITK.js";import"./chunk-QQYXYJOG.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-5DFUUYEA.js";import"./chunk-WMTGAVPW.js";import"./chunk-VWTBHLMX.js";import"./chunk-YSIRJZWF.js";import{a as ht}from"./chunk-6PJ6XHG4.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-INLKJEEN.js";import"./chunk-MYVHVJWZ.js";import"./chunk-AV7T3SYT.js";import"./chunk-Y5MFVVTM.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-YL4C63S2.js";import{f as gt,g as ft}from"./chunk-VHT7HESZ.js";import"./chunk-WPNRDEHW.js";import"./chunk-56KNKUFF.js";import{j as it,k as rt,l as at}from"./chunk-BN5QMNON.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{ma as tt,oa as st,pa as ot,ra as nt}from"./chunk-46JKX6CT.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).