agentix-cli 0.52.1 → 0.54.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 (138) hide show
  1. package/dist/{App-X6FGYBLX.js → App-VRTLAPRF.js} +2 -2
  2. package/dist/{ChatApp-XMUOXQ2M.js → ChatApp-YENWPZT4.js} +2 -2
  3. package/dist/{agent-KKVMU3VB.js → agent-HVUGHYBF.js} +2 -2
  4. package/dist/{board-dashboard-KETIFTBD.js → board-dashboard-3XJVYDB3.js} +729 -191
  5. package/dist/board-dashboard-3XJVYDB3.js.map +1 -0
  6. package/dist/chunk-2D3RYIDU.js +3 -0
  7. package/dist/chunk-2D3RYIDU.js.map +1 -0
  8. package/dist/{chunk-H7R3F2CO.js → chunk-2TJYZF4E.js} +2 -2
  9. package/dist/chunk-33QV5O6P.js +7 -0
  10. package/dist/chunk-33QV5O6P.js.map +1 -0
  11. package/dist/{chunk-MHBUAU2B.js → chunk-37EABIOJ.js} +2 -2
  12. package/dist/chunk-3RCFUIYR.js +29 -0
  13. package/dist/chunk-3RCFUIYR.js.map +1 -0
  14. package/dist/{chunk-B5UA3X6E.js → chunk-3W2KMI5O.js} +2 -2
  15. package/dist/{chunk-3IUU4YFI.js → chunk-4FFWNPFX.js} +5 -5
  16. package/dist/chunk-4FFWNPFX.js.map +1 -0
  17. package/dist/{chunk-7BQQWI4T.js → chunk-4HNHHKJF.js} +2 -2
  18. package/dist/chunk-6JHA3ZE6.js +1111 -0
  19. package/dist/chunk-6JHA3ZE6.js.map +1 -0
  20. package/dist/{chunk-76NNONUJ.js → chunk-BKDUCPZ3.js} +2 -2
  21. package/dist/{chunk-64UYAWAK.js → chunk-BMSPRUEJ.js} +33 -33
  22. package/dist/chunk-BMSPRUEJ.js.map +1 -0
  23. package/dist/{chunk-NKSCUCVZ.js → chunk-ENRJ2QEH.js} +2 -2
  24. package/dist/{chunk-AWRRBNWQ.js → chunk-HQMISQ7L.js} +2 -2
  25. package/dist/{chunk-E57WKMRR.js → chunk-KLDGJSR5.js} +2 -2
  26. package/dist/{ntfy-ZY2NPGBA.js → chunk-KZKDVIOE.js} +3 -3
  27. package/dist/chunk-KZKDVIOE.js.map +1 -0
  28. package/dist/{chunk-7NF45XCM.js → chunk-M67AN4J7.js} +2 -2
  29. package/dist/{chunk-WKTFP3SK.js → chunk-NO2HOK4B.js} +2 -2
  30. package/dist/chunk-QD6IICK7.js +2 -0
  31. package/dist/chunk-QD6IICK7.js.map +1 -0
  32. package/dist/{chunk-QDPLR3SB.js → chunk-QX4R5WY7.js} +2 -2
  33. package/dist/{chunk-QZ4M2KAC.js → chunk-QYHABRLM.js} +2 -2
  34. package/dist/{chunk-AKAM4BNC.js → chunk-TLFJVLVQ.js} +166 -160
  35. package/dist/chunk-TLFJVLVQ.js.map +1 -0
  36. package/dist/{chunk-YS3Z2Z64.js → chunk-UYMK3XNB.js} +44 -45
  37. package/dist/chunk-UYMK3XNB.js.map +1 -0
  38. package/dist/{chunk-7M7VJMGP.js → chunk-WLRHL2P7.js} +2 -2
  39. package/dist/chunk-WWMFNLKD.js +10 -0
  40. package/dist/chunk-WWMFNLKD.js.map +1 -0
  41. package/dist/{chunk-YPPTPBBV.js → chunk-XWU7O3S5.js} +2 -2
  42. package/dist/{chunk-XOUIZBAQ.js → chunk-ZOJUHPD5.js} +2 -2
  43. package/dist/cli.js +1 -1
  44. package/dist/cli.js.map +1 -1
  45. package/dist/client-N4XQEAVL.js +2 -0
  46. package/dist/{compaction-NWPBPWY2.js → compaction-H5U32UU6.js} +2 -2
  47. package/dist/{config-FGCJVXYX.js → config-KHKIY6LI.js} +2 -2
  48. package/dist/config-mutator-ZZKFQ7HJ.js +2 -0
  49. package/dist/doctor-QICAXIQB.js +2 -0
  50. package/dist/index.d.ts +130 -0
  51. package/dist/index.js +1 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/memory-extract-F76BE6KA.js +2 -0
  54. package/dist/ntfy-52EXHVMD.js +2 -0
  55. package/dist/program-ZWNGK3RB.js +2 -0
  56. package/dist/{promote-NBFF7ZIW.js → promote-H6ZHJXTY.js} +2 -2
  57. package/dist/push-HEDA6P3B.js +2 -0
  58. package/dist/push-HEDA6P3B.js.map +1 -0
  59. package/dist/push-keys-2DTD7YNQ.js +2 -0
  60. package/dist/push-store-LXTYULUF.js +2 -0
  61. package/dist/query-FTE4FLYK.js +2 -0
  62. package/dist/registry-HDOFVNRK.js +2 -0
  63. package/dist/{request-planner-ZEXFARZE.js → request-planner-ABD4WIGM.js} +2 -2
  64. package/dist/{review-candidates-F2HNH2TZ.js → review-candidates-B6574GOJ.js} +2 -2
  65. package/dist/{routing-XSRZ7V23.js → routing-BGKZOHOA.js} +2 -2
  66. package/dist/schedule-tool-UDHXTKWV.js +2 -0
  67. package/dist/scheduler-NQM3HVUY.js +2 -0
  68. package/dist/scheduler-NQM3HVUY.js.map +1 -0
  69. package/dist/{seat-IPDLEUI5.js → seat-VGST5AQB.js} +2 -2
  70. package/dist/seat-VGST5AQB.js.map +1 -0
  71. package/dist/{select-BYOX63CR.js → select-Y7SBUCGJ.js} +2 -2
  72. package/dist/set-enabled-ARKMDLXN.js +2 -0
  73. package/dist/set-enabled-ARKMDLXN.js.map +1 -0
  74. package/dist/{tool-WW4YCMSP.js → tool-5EVYUN2G.js} +2 -2
  75. package/dist/wiki-GREI2TSP.js +2 -0
  76. package/dist/wiki-GREI2TSP.js.map +1 -0
  77. package/package.json +3 -1
  78. package/dist/board-dashboard-KETIFTBD.js.map +0 -1
  79. package/dist/chunk-3IUU4YFI.js.map +0 -1
  80. package/dist/chunk-64UYAWAK.js.map +0 -1
  81. package/dist/chunk-6BXKZY76.js +0 -7
  82. package/dist/chunk-6BXKZY76.js.map +0 -1
  83. package/dist/chunk-7PK32QT5.js +0 -1107
  84. package/dist/chunk-7PK32QT5.js.map +0 -1
  85. package/dist/chunk-AKAM4BNC.js.map +0 -1
  86. package/dist/chunk-HRBKSZ34.js +0 -2
  87. package/dist/chunk-HRBKSZ34.js.map +0 -1
  88. package/dist/chunk-WCNKTV6G.js +0 -28
  89. package/dist/chunk-WCNKTV6G.js.map +0 -1
  90. package/dist/chunk-YS3Z2Z64.js.map +0 -1
  91. package/dist/client-AVQSLPIZ.js +0 -2
  92. package/dist/config-mutator-5JSG3CHW.js +0 -2
  93. package/dist/doctor-VITHTLEC.js +0 -2
  94. package/dist/memory-extract-MGGXIZTE.js +0 -2
  95. package/dist/ntfy-ZY2NPGBA.js.map +0 -1
  96. package/dist/program-MNFDOQGQ.js +0 -2
  97. package/dist/query-XCXR57IV.js +0 -2
  98. package/dist/registry-5ZP3ZNSH.js +0 -2
  99. package/dist/schedule-tool-AKCVLCWK.js +0 -2
  100. package/dist/scheduler-BEGZJWJU.js +0 -2
  101. package/dist/wiki-IVJJQUKB.js +0 -2
  102. /package/dist/{App-X6FGYBLX.js.map → App-VRTLAPRF.js.map} +0 -0
  103. /package/dist/{ChatApp-XMUOXQ2M.js.map → ChatApp-YENWPZT4.js.map} +0 -0
  104. /package/dist/{agent-KKVMU3VB.js.map → agent-HVUGHYBF.js.map} +0 -0
  105. /package/dist/{chunk-H7R3F2CO.js.map → chunk-2TJYZF4E.js.map} +0 -0
  106. /package/dist/{chunk-MHBUAU2B.js.map → chunk-37EABIOJ.js.map} +0 -0
  107. /package/dist/{chunk-B5UA3X6E.js.map → chunk-3W2KMI5O.js.map} +0 -0
  108. /package/dist/{chunk-7BQQWI4T.js.map → chunk-4HNHHKJF.js.map} +0 -0
  109. /package/dist/{chunk-76NNONUJ.js.map → chunk-BKDUCPZ3.js.map} +0 -0
  110. /package/dist/{chunk-NKSCUCVZ.js.map → chunk-ENRJ2QEH.js.map} +0 -0
  111. /package/dist/{chunk-AWRRBNWQ.js.map → chunk-HQMISQ7L.js.map} +0 -0
  112. /package/dist/{chunk-E57WKMRR.js.map → chunk-KLDGJSR5.js.map} +0 -0
  113. /package/dist/{chunk-7NF45XCM.js.map → chunk-M67AN4J7.js.map} +0 -0
  114. /package/dist/{chunk-WKTFP3SK.js.map → chunk-NO2HOK4B.js.map} +0 -0
  115. /package/dist/{chunk-QDPLR3SB.js.map → chunk-QX4R5WY7.js.map} +0 -0
  116. /package/dist/{chunk-QZ4M2KAC.js.map → chunk-QYHABRLM.js.map} +0 -0
  117. /package/dist/{chunk-7M7VJMGP.js.map → chunk-WLRHL2P7.js.map} +0 -0
  118. /package/dist/{chunk-YPPTPBBV.js.map → chunk-XWU7O3S5.js.map} +0 -0
  119. /package/dist/{chunk-XOUIZBAQ.js.map → chunk-ZOJUHPD5.js.map} +0 -0
  120. /package/dist/{client-AVQSLPIZ.js.map → client-N4XQEAVL.js.map} +0 -0
  121. /package/dist/{compaction-NWPBPWY2.js.map → compaction-H5U32UU6.js.map} +0 -0
  122. /package/dist/{config-FGCJVXYX.js.map → config-KHKIY6LI.js.map} +0 -0
  123. /package/dist/{config-mutator-5JSG3CHW.js.map → config-mutator-ZZKFQ7HJ.js.map} +0 -0
  124. /package/dist/{doctor-VITHTLEC.js.map → doctor-QICAXIQB.js.map} +0 -0
  125. /package/dist/{memory-extract-MGGXIZTE.js.map → memory-extract-F76BE6KA.js.map} +0 -0
  126. /package/dist/{program-MNFDOQGQ.js.map → ntfy-52EXHVMD.js.map} +0 -0
  127. /package/dist/{promote-NBFF7ZIW.js.map → program-ZWNGK3RB.js.map} +0 -0
  128. /package/dist/{query-XCXR57IV.js.map → promote-H6ZHJXTY.js.map} +0 -0
  129. /package/dist/{registry-5ZP3ZNSH.js.map → push-keys-2DTD7YNQ.js.map} +0 -0
  130. /package/dist/{routing-XSRZ7V23.js.map → push-store-LXTYULUF.js.map} +0 -0
  131. /package/dist/{schedule-tool-AKCVLCWK.js.map → query-FTE4FLYK.js.map} +0 -0
  132. /package/dist/{scheduler-BEGZJWJU.js.map → registry-HDOFVNRK.js.map} +0 -0
  133. /package/dist/{request-planner-ZEXFARZE.js.map → request-planner-ABD4WIGM.js.map} +0 -0
  134. /package/dist/{review-candidates-F2HNH2TZ.js.map → review-candidates-B6574GOJ.js.map} +0 -0
  135. /package/dist/{seat-IPDLEUI5.js.map → routing-BGKZOHOA.js.map} +0 -0
  136. /package/dist/{wiki-IVJJQUKB.js.map → schedule-tool-UDHXTKWV.js.map} +0 -0
  137. /package/dist/{select-BYOX63CR.js.map → select-Y7SBUCGJ.js.map} +0 -0
  138. /package/dist/{tool-WW4YCMSP.js.map → tool-5EVYUN2G.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -3073,6 +3073,47 @@ declare const daemonConfigSchema: z.ZodObject<{
3073
3073
  defaultPriority?: number | undefined;
3074
3074
  defaultTitle?: string | undefined;
3075
3075
  }>>;
3076
+ /** Web Push to the phone app (/app) — outbound only. The node that hosts
3077
+ * the app holds the subscriptions and sends; any other node sets
3078
+ * `relayTo` and forwards over the mesh. `chatId` "default" means every
3079
+ * subscribed phone, or a device id (tok_…) for one. */
3080
+ push: z.ZodDefault<z.ZodObject<{
3081
+ enabled: z.ZodDefault<z.ZodBoolean>;
3082
+ /** VAPID key pair written by `agentx app push-keys`. Relative paths
3083
+ * resolve from the folder AgentX runs in (the one holding agentx.json). */
3084
+ keysFile: z.ZodDefault<z.ZodString>;
3085
+ /** Contact for the push services: `mailto:you@example.com` or an
3086
+ * https:// URL. Required on the hosting node. */
3087
+ subject: z.ZodOptional<z.ZodString>;
3088
+ /** Mesh peer (id or name) that hosts the phone app. Set it on every
3089
+ * other node; leave it unset on the host. */
3090
+ relayTo: z.ZodOptional<z.ZodString>;
3091
+ /** How long a push service keeps trying an offline phone. */
3092
+ ttlSeconds: z.ZodDefault<z.ZodNumber>;
3093
+ /** Recent pushes kept for the app's Alerts tab. */
3094
+ keepRecent: z.ZodDefault<z.ZodNumber>;
3095
+ /** Push-service hosts a phone may subscribe with (a host or any
3096
+ * subdomain of it). The daemon POSTs to the stored address, so anything
3097
+ * else is refused. Defaults cover Chrome/Android, Firefox, Safari/iOS
3098
+ * and Edge. */
3099
+ allowedHosts: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
3100
+ }, "strip", z.ZodTypeAny, {
3101
+ enabled: boolean;
3102
+ keysFile: string;
3103
+ ttlSeconds: number;
3104
+ keepRecent: number;
3105
+ allowedHosts: string[];
3106
+ subject?: string | undefined;
3107
+ relayTo?: string | undefined;
3108
+ }, {
3109
+ enabled?: boolean | undefined;
3110
+ keysFile?: string | undefined;
3111
+ subject?: string | undefined;
3112
+ relayTo?: string | undefined;
3113
+ ttlSeconds?: number | undefined;
3114
+ keepRecent?: number | undefined;
3115
+ allowedHosts?: string[] | undefined;
3116
+ }>>;
3076
3117
  webrtc: z.ZodDefault<z.ZodObject<{
3077
3118
  enabled: z.ZodDefault<z.ZodBoolean>;
3078
3119
  /** ICE STUN servers for NAT discovery. Default is Google's public STUN. */
@@ -3231,6 +3272,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3231
3272
  } | undefined;
3232
3273
  }>>;
3233
3274
  }, "strip", z.ZodTypeAny, {
3275
+ push: {
3276
+ enabled: boolean;
3277
+ keysFile: string;
3278
+ ttlSeconds: number;
3279
+ keepRecent: number;
3280
+ allowedHosts: string[];
3281
+ subject?: string | undefined;
3282
+ relayTo?: string | undefined;
3283
+ };
3234
3284
  gitlab: {
3235
3285
  enabled: boolean;
3236
3286
  host: string;
@@ -3353,6 +3403,15 @@ declare const daemonConfigSchema: z.ZodObject<{
3353
3403
  callUrlBase?: string | undefined;
3354
3404
  };
3355
3405
  }, {
3406
+ push?: {
3407
+ enabled?: boolean | undefined;
3408
+ keysFile?: string | undefined;
3409
+ subject?: string | undefined;
3410
+ relayTo?: string | undefined;
3411
+ ttlSeconds?: number | undefined;
3412
+ keepRecent?: number | undefined;
3413
+ allowedHosts?: string[] | undefined;
3414
+ } | undefined;
3356
3415
  gitlab?: {
3357
3416
  enabled?: boolean | undefined;
3358
3417
  token?: string | undefined;
@@ -3775,6 +3834,10 @@ declare const daemonConfigSchema: z.ZodObject<{
3775
3834
  chatId: string;
3776
3835
  accountId?: string | undefined;
3777
3836
  }>>;
3837
+ /** Channel `agentx notify` and Focus digests use when none is given.
3838
+ * Unset: `push` (the phone app) when channels.push is enabled, else
3839
+ * `ntfy`, so upgrading never points notify at a channel that is off. */
3840
+ channel: z.ZodOptional<z.ZodString>;
3778
3841
  /** Notify on these events */
3779
3842
  on: z.ZodDefault<z.ZodObject<{
3780
3843
  taskComplete: z.ZodDefault<z.ZodBoolean>;
@@ -3827,6 +3890,7 @@ declare const daemonConfigSchema: z.ZodObject<{
3827
3890
  taskQueued: boolean;
3828
3891
  };
3829
3892
  longTaskThreshold: number;
3893
+ channel?: string | undefined;
3830
3894
  destination?: {
3831
3895
  channel: string;
3832
3896
  chatId: string;
@@ -3840,6 +3904,7 @@ declare const daemonConfigSchema: z.ZodObject<{
3840
3904
  volume?: number | undefined;
3841
3905
  icon?: string | undefined;
3842
3906
  } | undefined;
3907
+ channel?: string | undefined;
3843
3908
  on?: {
3844
3909
  taskComplete?: boolean | undefined;
3845
3910
  taskError?: boolean | undefined;
@@ -3980,6 +4045,31 @@ declare const daemonConfigSchema: z.ZodObject<{
3980
4045
  windowMinutes?: number | undefined;
3981
4046
  } | undefined;
3982
4047
  }>>;
4048
+ /** Hand due Apple Reminders back to the agent that created them
4049
+ * (src/reminders). macOS only; reads reminders whose notes end with the
4050
+ * mac-pim skill's `agentx: agent=<id>` trailer. */
4051
+ reminders: z.ZodDefault<z.ZodObject<{
4052
+ enabled: z.ZodDefault<z.ZodBoolean>;
4053
+ /** Reminders lists to watch. */
4054
+ lists: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4055
+ pollSeconds: z.ZodDefault<z.ZodNumber>;
4056
+ /** Overdue by more than this (the daemon was down): reported, not run. */
4057
+ lookbackHours: z.ZodDefault<z.ZodNumber>;
4058
+ /** The remindctl binary, when it isn't on the daemon's PATH. */
4059
+ command: z.ZodDefault<z.ZodString>;
4060
+ }, "strip", z.ZodTypeAny, {
4061
+ enabled: boolean;
4062
+ command: string;
4063
+ lists: string[];
4064
+ pollSeconds: number;
4065
+ lookbackHours: number;
4066
+ }, {
4067
+ enabled?: boolean | undefined;
4068
+ command?: string | undefined;
4069
+ lists?: string[] | undefined;
4070
+ pollSeconds?: number | undefined;
4071
+ lookbackHours?: number | undefined;
4072
+ }>>;
3983
4073
  /** The in-process event bus (src/events). `ringSize` bounds how many
3984
4074
  * recent events GET /events/recent can return. */
3985
4075
  events: z.ZodDefault<z.ZodObject<{
@@ -5647,6 +5737,15 @@ declare const daemonConfigSchema: z.ZodObject<{
5647
5737
  baseUrl?: string | undefined;
5648
5738
  }>;
5649
5739
  channels: {
5740
+ push: {
5741
+ enabled: boolean;
5742
+ keysFile: string;
5743
+ ttlSeconds: number;
5744
+ keepRecent: number;
5745
+ allowedHosts: string[];
5746
+ subject?: string | undefined;
5747
+ relayTo?: string | undefined;
5748
+ };
5650
5749
  gitlab: {
5651
5750
  enabled: boolean;
5652
5751
  host: string;
@@ -5825,6 +5924,7 @@ declare const daemonConfigSchema: z.ZodObject<{
5825
5924
  taskQueued: boolean;
5826
5925
  };
5827
5926
  longTaskThreshold: number;
5927
+ channel?: string | undefined;
5828
5928
  destination?: {
5829
5929
  channel: string;
5830
5930
  chatId: string;
@@ -5847,6 +5947,13 @@ declare const daemonConfigSchema: z.ZodObject<{
5847
5947
  } | undefined;
5848
5948
  };
5849
5949
  };
5950
+ reminders: {
5951
+ enabled: boolean;
5952
+ command: string;
5953
+ lists: string[];
5954
+ pollSeconds: number;
5955
+ lookbackHours: number;
5956
+ };
5850
5957
  events: {
5851
5958
  ringSize: number;
5852
5959
  };
@@ -6248,6 +6355,15 @@ declare const daemonConfigSchema: z.ZodObject<{
6248
6355
  baseUrl?: string | undefined;
6249
6356
  }> | undefined;
6250
6357
  channels?: {
6358
+ push?: {
6359
+ enabled?: boolean | undefined;
6360
+ keysFile?: string | undefined;
6361
+ subject?: string | undefined;
6362
+ relayTo?: string | undefined;
6363
+ ttlSeconds?: number | undefined;
6364
+ keepRecent?: number | undefined;
6365
+ allowedHosts?: string[] | undefined;
6366
+ } | undefined;
6251
6367
  gitlab?: {
6252
6368
  enabled?: boolean | undefined;
6253
6369
  token?: string | undefined;
@@ -6420,6 +6536,7 @@ declare const daemonConfigSchema: z.ZodObject<{
6420
6536
  volume?: number | undefined;
6421
6537
  icon?: string | undefined;
6422
6538
  } | undefined;
6539
+ channel?: string | undefined;
6423
6540
  on?: {
6424
6541
  taskComplete?: boolean | undefined;
6425
6542
  taskError?: boolean | undefined;
@@ -6448,6 +6565,13 @@ declare const daemonConfigSchema: z.ZodObject<{
6448
6565
  } | undefined;
6449
6566
  } | undefined;
6450
6567
  } | undefined;
6568
+ reminders?: {
6569
+ enabled?: boolean | undefined;
6570
+ command?: string | undefined;
6571
+ lists?: string[] | undefined;
6572
+ pollSeconds?: number | undefined;
6573
+ lookbackHours?: number | undefined;
6574
+ } | undefined;
6451
6575
  events?: {
6452
6576
  ringSize?: number | undefined;
6453
6577
  } | undefined;
@@ -7335,6 +7459,9 @@ declare class AgentXDaemon {
7335
7459
  /** Every minute: expire decision cards, tell agents their results, and
7336
7460
  * send the day's digest when due (src/approvals/sweep.ts). */
7337
7461
  private startApprovalsSweep;
7462
+ private stopReminders?;
7463
+ /** Hand due Apple Reminders back to the agent that created them (src/reminders). */
7464
+ private startReminders;
7338
7465
  private scheduleMidnightHook;
7339
7466
  private runDailyCostReport;
7340
7467
  private startChannels;
@@ -7430,6 +7557,9 @@ declare class AgentXDaemon {
7430
7557
  /** Agent-memory HTTP surface — see memory-api.ts. */
7431
7558
  private handleMemoryApi;
7432
7559
  private handleWorkflowEvent;
7560
+ /** Forwards a push to the mesh peer hosting the phone app (its
7561
+ * /channel/send), for PushRelayAdapter. */
7562
+ private relayPush;
7433
7563
  /** Mesh-callable outbound send. A peer's workflow `action.send` invokes
7434
7564
  * this when the channel lives on this node (e.g. peer-server hosts
7435
7565
  * whatsapp; macbook's workflow forwards here). Just unwraps to the local
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as L}from"./chunk-Y57CULGE.js";import{a as St,b as kt,c as vt,d as xt,e as $t,f as Ct,g as Pt,ia as bt,ja as Tt,ka as Mt}from"./chunk-7PK32QT5.js";import"./chunk-WCNKTV6G.js";import"./chunk-NKSCUCVZ.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-S7CVSKOX.js";import"./chunk-B5UA3X6E.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-L53FTKEP.js";import{O as yt,l as lt,m as ct,n as dt,o as mt,p as pt}from"./chunk-64UYAWAK.js";import"./chunk-AWRRBNWQ.js";import"./chunk-N6EWZGIX.js";import"./chunk-WP6KLXTP.js";import"./chunk-DP7RTNDM.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-E57WKMRR.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-QZ4M2KAC.js";import{s as ut}from"./chunk-XOUIZBAQ.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-7BQQWI4T.js";import"./chunk-7NF45XCM.js";import"./chunk-DWADWDMU.js";import"./chunk-WKTFP3SK.js";import"./chunk-HRBKSZ34.js";import"./chunk-VWTBHLMX.js";import"./chunk-7M7VJMGP.js";import{a as gt,b as ft,e as ht}from"./chunk-YPPTPBBV.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-76NNONUJ.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-MHBUAU2B.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-SZJMS7K4.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{a as Fe,b as Le,c as A,d as De}from"./chunk-VDMYBPYB.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{k as tt,m as st,n as ot,p as nt}from"./chunk-3IUU4YFI.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 L}from"./chunk-Y57CULGE.js";import{a as St,b as kt,c as vt,d as xt,e as $t,f as Ct,g as Pt,la as bt,ma as Tt,na as Mt}from"./chunk-6JHA3ZE6.js";import"./chunk-3RCFUIYR.js";import"./chunk-ENRJ2QEH.js";import"./chunk-S7CVSKOX.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-3W2KMI5O.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import{O as yt,l as lt,m as ct,n as dt,o as mt,p as pt}from"./chunk-BMSPRUEJ.js";import"./chunk-HQMISQ7L.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.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-KLDGJSR5.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-QYHABRLM.js";import{s as ut}from"./chunk-ZOJUHPD5.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-4HNHHKJF.js";import"./chunk-M67AN4J7.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-WLRHL2P7.js";import{a as gt,b as ft,e as ht}from"./chunk-XWU7O3S5.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-BKDUCPZ3.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-37EABIOJ.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-SZJMS7K4.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{a as Fe,b as Le,c as A,d as De}from"./chunk-VDMYBPYB.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{k as tt,m as st,n as ot,p as nt}from"./chunk-4FFWNPFX.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-EVHZ2R73.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).