agentix-cli 0.53.0 → 0.55.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.
- package/apps/mac-voice/Sources/AgentXVoice/AgentClient.swift +26 -0
- package/apps/mac-voice/Sources/AgentXVoice/StatusMenu.swift +55 -3
- package/apps/mac-voice/Sources/AgentXVoice/main.swift +136 -13
- package/dist/{App-R62ZQVSF.js → App-4EM7IPB3.js} +2 -2
- package/dist/{ChatApp-AS567EFE.js → ChatApp-FYTEEGSU.js} +2 -2
- package/dist/{agent-H4NB4BUA.js → agent-RZ46ZB4W.js} +2 -2
- package/dist/{board-dashboard-E3MUVNVQ.js → board-dashboard-NRRYCDZW.js} +1097 -215
- package/dist/board-dashboard-NRRYCDZW.js.map +1 -0
- package/dist/chunk-2D3RYIDU.js +3 -0
- package/dist/chunk-2D3RYIDU.js.map +1 -0
- package/dist/{chunk-KB7YIM3W.js → chunk-4HEVSWO3.js} +2 -2
- package/dist/{chunk-7DPKPBRJ.js → chunk-6AK6WKE5.js} +2 -2
- package/dist/{chunk-TH5KNJLA.js → chunk-723K4SAW.js} +2 -2
- package/dist/{chunk-OMTRHHZJ.js → chunk-76AHNHWC.js} +44 -45
- package/dist/chunk-76AHNHWC.js.map +1 -0
- package/dist/{chunk-KJWBQZT7.js → chunk-C3VRBEJ7.js} +2 -2
- package/dist/{chunk-C5JXPMTW.js → chunk-CELYD5QW.js} +2 -2
- package/dist/{chunk-FSZXY53Z.js → chunk-D3LSPFHK.js} +2 -2
- package/dist/chunk-EJ5ISSWW.js +151 -0
- package/dist/chunk-EJ5ISSWW.js.map +1 -0
- package/dist/{chunk-FS4WBYY3.js → chunk-EZN2YXRY.js} +2 -2
- package/dist/{chunk-QU6ZUKAD.js → chunk-GSOL2LW6.js} +2 -2
- package/dist/{chunk-7OWXFLAM.js → chunk-JC5Q5MPI.js} +171 -164
- package/dist/chunk-JC5Q5MPI.js.map +1 -0
- package/dist/{chunk-SABOPOYX.js → chunk-K4RDE6YU.js} +211 -197
- package/dist/chunk-K4RDE6YU.js.map +1 -0
- package/dist/{ntfy-ZY2NPGBA.js → chunk-KZKDVIOE.js} +3 -3
- package/dist/chunk-KZKDVIOE.js.map +1 -0
- package/dist/{chunk-VD4TMPJI.js → chunk-LKJSPO3S.js} +2 -2
- package/dist/{chunk-NF52Q3TV.js → chunk-M4AG2YNX.js} +2 -2
- package/dist/{chunk-WKTFP3SK.js → chunk-NO2HOK4B.js} +2 -2
- package/dist/{chunk-KFG6WWFS.js → chunk-O3XG2NVR.js} +18 -18
- package/dist/{chunk-KFG6WWFS.js.map → chunk-O3XG2NVR.js.map} +1 -1
- package/dist/chunk-QD6IICK7.js +2 -0
- package/dist/chunk-QD6IICK7.js.map +1 -0
- package/dist/{chunk-PGJL5V6Y.js → chunk-SA23V7WX.js} +2 -2
- package/dist/chunk-U4H35SJS.js +15 -0
- package/dist/chunk-U4H35SJS.js.map +1 -0
- package/dist/chunk-UIVHSYCN.js +29 -0
- package/dist/chunk-UIVHSYCN.js.map +1 -0
- package/dist/{chunk-6OOK7Y4S.js → chunk-W4YMMWJL.js} +2 -2
- package/dist/chunk-WOMQ2VGA.js +5 -0
- package/dist/{chunk-OV35MJKS.js.map → chunk-WOMQ2VGA.js.map} +1 -1
- package/dist/chunk-WWMFNLKD.js +10 -0
- package/dist/chunk-WWMFNLKD.js.map +1 -0
- package/dist/chunk-X5C5W3E4.js +3 -0
- package/dist/chunk-X5C5W3E4.js.map +1 -0
- package/dist/{chunk-CCMM5TP4.js → chunk-XEOAKD5C.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client-IA7ZPE56.js +2 -0
- package/dist/{compaction-NWPBPWY2.js → compaction-H5U32UU6.js} +2 -2
- package/dist/config-HPN2F7LH.js +2 -0
- package/dist/config-mutator-7GPTMTVB.js +2 -0
- package/dist/doctor-IBWQVQV4.js +2 -0
- package/dist/index.d.ts +273 -19
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/memory-extract-F76BE6KA.js +2 -0
- package/dist/ntfy-52EXHVMD.js +2 -0
- package/dist/program-D5TAPSIH.js +2 -0
- package/dist/{promote-DJFMTLRC.js → promote-T4UJROEH.js} +2 -2
- package/dist/push-HEDA6P3B.js +2 -0
- package/dist/push-HEDA6P3B.js.map +1 -0
- package/dist/push-keys-2DTD7YNQ.js +2 -0
- package/dist/push-store-LXTYULUF.js +2 -0
- package/dist/query-VUJC4Y5O.js +2 -0
- package/dist/registry-DX2RI7I7.js +2 -0
- package/dist/{request-planner-2H7HCUCZ.js → request-planner-B7DE7VJR.js} +2 -2
- package/dist/{review-candidates-U7R64OCS.js → review-candidates-4YJHIBAF.js} +2 -2
- package/dist/routing-MZG3UODH.js +2 -0
- package/dist/schedule-tool-A4OFQ4YZ.js +2 -0
- package/dist/scheduler-RHJW2V4M.js +2 -0
- package/dist/scheduler-RHJW2V4M.js.map +1 -0
- package/dist/seat-2PEI7JRX.js +2 -0
- package/dist/seat-2PEI7JRX.js.map +1 -0
- package/dist/{select-XGK27RPP.js → select-4KIUR27O.js} +2 -2
- package/dist/{set-enabled-7YGN2FAZ.js → set-enabled-SE7HQKPF.js} +2 -2
- package/dist/subscriptions-RYVPHVIV.js +2 -0
- package/dist/subscriptions-RYVPHVIV.js.map +1 -0
- package/dist/{tool-HKDIZ6I4.js → tool-5VMD7IE4.js} +2 -2
- package/dist/wiki-2QFLAH4U.js +2 -0
- package/dist/wiki-2QFLAH4U.js.map +1 -0
- package/package.json +3 -1
- package/dist/board-dashboard-E3MUVNVQ.js.map +0 -1
- package/dist/chunk-47EEUZBK.js +0 -15
- package/dist/chunk-47EEUZBK.js.map +0 -1
- package/dist/chunk-7OWXFLAM.js.map +0 -1
- package/dist/chunk-D4HAR3L3.js +0 -28
- package/dist/chunk-D4HAR3L3.js.map +0 -1
- package/dist/chunk-HRBKSZ34.js +0 -2
- package/dist/chunk-HRBKSZ34.js.map +0 -1
- package/dist/chunk-IDYP7G7Z.js +0 -150
- package/dist/chunk-IDYP7G7Z.js.map +0 -1
- package/dist/chunk-OMTRHHZJ.js.map +0 -1
- package/dist/chunk-OV35MJKS.js +0 -5
- package/dist/chunk-SABOPOYX.js.map +0 -1
- package/dist/client-XTQDYMOX.js +0 -2
- package/dist/config-3SW4V44Z.js +0 -2
- package/dist/config-mutator-H32FXUYJ.js +0 -2
- package/dist/doctor-J6RCHFVE.js +0 -2
- package/dist/memory-extract-MGGXIZTE.js +0 -2
- package/dist/ntfy-ZY2NPGBA.js.map +0 -1
- package/dist/program-SQTOPCQW.js +0 -2
- package/dist/query-UAZUMU4N.js +0 -2
- package/dist/registry-4OUBA2TY.js +0 -2
- package/dist/routing-LVQH6WOJ.js +0 -2
- package/dist/schedule-tool-2BONJVCJ.js +0 -2
- package/dist/scheduler-7CEXDECA.js +0 -2
- package/dist/seat-2KGFNCIW.js +0 -2
- package/dist/wiki-6YT7B5HU.js +0 -2
- /package/dist/{App-R62ZQVSF.js.map → App-4EM7IPB3.js.map} +0 -0
- /package/dist/{ChatApp-AS567EFE.js.map → ChatApp-FYTEEGSU.js.map} +0 -0
- /package/dist/{agent-H4NB4BUA.js.map → agent-RZ46ZB4W.js.map} +0 -0
- /package/dist/{chunk-KB7YIM3W.js.map → chunk-4HEVSWO3.js.map} +0 -0
- /package/dist/{chunk-7DPKPBRJ.js.map → chunk-6AK6WKE5.js.map} +0 -0
- /package/dist/{chunk-TH5KNJLA.js.map → chunk-723K4SAW.js.map} +0 -0
- /package/dist/{chunk-KJWBQZT7.js.map → chunk-C3VRBEJ7.js.map} +0 -0
- /package/dist/{chunk-C5JXPMTW.js.map → chunk-CELYD5QW.js.map} +0 -0
- /package/dist/{chunk-FSZXY53Z.js.map → chunk-D3LSPFHK.js.map} +0 -0
- /package/dist/{chunk-FS4WBYY3.js.map → chunk-EZN2YXRY.js.map} +0 -0
- /package/dist/{chunk-QU6ZUKAD.js.map → chunk-GSOL2LW6.js.map} +0 -0
- /package/dist/{chunk-VD4TMPJI.js.map → chunk-LKJSPO3S.js.map} +0 -0
- /package/dist/{chunk-NF52Q3TV.js.map → chunk-M4AG2YNX.js.map} +0 -0
- /package/dist/{chunk-WKTFP3SK.js.map → chunk-NO2HOK4B.js.map} +0 -0
- /package/dist/{chunk-PGJL5V6Y.js.map → chunk-SA23V7WX.js.map} +0 -0
- /package/dist/{chunk-6OOK7Y4S.js.map → chunk-W4YMMWJL.js.map} +0 -0
- /package/dist/{chunk-CCMM5TP4.js.map → chunk-XEOAKD5C.js.map} +0 -0
- /package/dist/{client-XTQDYMOX.js.map → client-IA7ZPE56.js.map} +0 -0
- /package/dist/{compaction-NWPBPWY2.js.map → compaction-H5U32UU6.js.map} +0 -0
- /package/dist/{config-3SW4V44Z.js.map → config-HPN2F7LH.js.map} +0 -0
- /package/dist/{config-mutator-H32FXUYJ.js.map → config-mutator-7GPTMTVB.js.map} +0 -0
- /package/dist/{doctor-J6RCHFVE.js.map → doctor-IBWQVQV4.js.map} +0 -0
- /package/dist/{memory-extract-MGGXIZTE.js.map → memory-extract-F76BE6KA.js.map} +0 -0
- /package/dist/{program-SQTOPCQW.js.map → ntfy-52EXHVMD.js.map} +0 -0
- /package/dist/{promote-DJFMTLRC.js.map → program-D5TAPSIH.js.map} +0 -0
- /package/dist/{query-UAZUMU4N.js.map → promote-T4UJROEH.js.map} +0 -0
- /package/dist/{registry-4OUBA2TY.js.map → push-keys-2DTD7YNQ.js.map} +0 -0
- /package/dist/{routing-LVQH6WOJ.js.map → push-store-LXTYULUF.js.map} +0 -0
- /package/dist/{schedule-tool-2BONJVCJ.js.map → query-VUJC4Y5O.js.map} +0 -0
- /package/dist/{scheduler-7CEXDECA.js.map → registry-DX2RI7I7.js.map} +0 -0
- /package/dist/{request-planner-2H7HCUCZ.js.map → request-planner-B7DE7VJR.js.map} +0 -0
- /package/dist/{review-candidates-U7R64OCS.js.map → review-candidates-4YJHIBAF.js.map} +0 -0
- /package/dist/{seat-2KGFNCIW.js.map → routing-MZG3UODH.js.map} +0 -0
- /package/dist/{wiki-6YT7B5HU.js.map → schedule-tool-A4OFQ4YZ.js.map} +0 -0
- /package/dist/{select-XGK27RPP.js.map → select-4KIUR27O.js.map} +0 -0
- /package/dist/{set-enabled-7YGN2FAZ.js.map → set-enabled-SE7HQKPF.js.map} +0 -0
- /package/dist/{tool-HKDIZ6I4.js.map → tool-5VMD7IE4.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1635,6 +1635,35 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1635
1635
|
* agents or by the operator. It never approves anything: approval of a
|
|
1636
1636
|
* create/delete request stays operator-only (`agentx schedule approve`). */
|
|
1637
1637
|
admin: z.ZodOptional<z.ZodBoolean>;
|
|
1638
|
+
/** Events on the bus this agent wants to hear about (issue #165). */
|
|
1639
|
+
subscriptions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1640
|
+
/** Envelope `kind` ("agent", "run") or `type` ("task:completed"); "*" matches all. */
|
|
1641
|
+
kinds: z.ZodArray<z.ZodString, "many">;
|
|
1642
|
+
/** Only events published for these agent ids. */
|
|
1643
|
+
agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1644
|
+
/** Only events published by these nodes (`node.name`). */
|
|
1645
|
+
nodes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1646
|
+
/** Only events whose summary contains this text (case-insensitive). */
|
|
1647
|
+
match: z.ZodOptional<z.ZodString>;
|
|
1648
|
+
delivery: z.ZodDefault<z.ZodEnum<["pull", "digest", "wake"]>>;
|
|
1649
|
+
/** wake only: no wake when the agent was already woken this many times
|
|
1650
|
+
* in the past hour. */
|
|
1651
|
+
maxPerHour: z.ZodDefault<z.ZodNumber>;
|
|
1652
|
+
}, "strip", z.ZodTypeAny, {
|
|
1653
|
+
kinds: string[];
|
|
1654
|
+
delivery: "pull" | "digest" | "wake";
|
|
1655
|
+
maxPerHour: number;
|
|
1656
|
+
match?: string | undefined;
|
|
1657
|
+
agents?: string[] | undefined;
|
|
1658
|
+
nodes?: string[] | undefined;
|
|
1659
|
+
}, {
|
|
1660
|
+
kinds: string[];
|
|
1661
|
+
match?: string | undefined;
|
|
1662
|
+
agents?: string[] | undefined;
|
|
1663
|
+
nodes?: string[] | undefined;
|
|
1664
|
+
delivery?: "pull" | "digest" | "wake" | undefined;
|
|
1665
|
+
maxPerHour?: number | undefined;
|
|
1666
|
+
}>, "many">>;
|
|
1638
1667
|
/** Per-agent third-party integrations registry. Declares which services
|
|
1639
1668
|
* this agent has credentials for (telegram-bot, hubspot, gitlab-user,
|
|
1640
1669
|
* gmail, etc.). Secrets stay in env vars / keyring; this block holds
|
|
@@ -1802,6 +1831,14 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1802
1831
|
intervalMinutes: number;
|
|
1803
1832
|
};
|
|
1804
1833
|
access: "private" | "public";
|
|
1834
|
+
subscriptions: {
|
|
1835
|
+
kinds: string[];
|
|
1836
|
+
delivery: "pull" | "digest" | "wake";
|
|
1837
|
+
maxPerHour: number;
|
|
1838
|
+
match?: string | undefined;
|
|
1839
|
+
agents?: string[] | undefined;
|
|
1840
|
+
nodes?: string[] | undefined;
|
|
1841
|
+
}[];
|
|
1805
1842
|
integrations: {
|
|
1806
1843
|
enabled: boolean;
|
|
1807
1844
|
credentials: {
|
|
@@ -1890,6 +1927,14 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1890
1927
|
} | undefined;
|
|
1891
1928
|
access?: "private" | "public" | undefined;
|
|
1892
1929
|
admin?: boolean | undefined;
|
|
1930
|
+
subscriptions?: {
|
|
1931
|
+
kinds: string[];
|
|
1932
|
+
match?: string | undefined;
|
|
1933
|
+
agents?: string[] | undefined;
|
|
1934
|
+
nodes?: string[] | undefined;
|
|
1935
|
+
delivery?: "pull" | "digest" | "wake" | undefined;
|
|
1936
|
+
maxPerHour?: number | undefined;
|
|
1937
|
+
}[] | undefined;
|
|
1893
1938
|
integrations?: {
|
|
1894
1939
|
label: string;
|
|
1895
1940
|
kind: string;
|
|
@@ -2357,6 +2402,35 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2357
2402
|
* agents or by the operator. It never approves anything: approval of a
|
|
2358
2403
|
* create/delete request stays operator-only (`agentx schedule approve`). */
|
|
2359
2404
|
admin: z.ZodOptional<z.ZodBoolean>;
|
|
2405
|
+
/** Events on the bus this agent wants to hear about (issue #165). */
|
|
2406
|
+
subscriptions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
2407
|
+
/** Envelope `kind` ("agent", "run") or `type` ("task:completed"); "*" matches all. */
|
|
2408
|
+
kinds: z.ZodArray<z.ZodString, "many">;
|
|
2409
|
+
/** Only events published for these agent ids. */
|
|
2410
|
+
agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2411
|
+
/** Only events published by these nodes (`node.name`). */
|
|
2412
|
+
nodes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2413
|
+
/** Only events whose summary contains this text (case-insensitive). */
|
|
2414
|
+
match: z.ZodOptional<z.ZodString>;
|
|
2415
|
+
delivery: z.ZodDefault<z.ZodEnum<["pull", "digest", "wake"]>>;
|
|
2416
|
+
/** wake only: no wake when the agent was already woken this many times
|
|
2417
|
+
* in the past hour. */
|
|
2418
|
+
maxPerHour: z.ZodDefault<z.ZodNumber>;
|
|
2419
|
+
}, "strip", z.ZodTypeAny, {
|
|
2420
|
+
kinds: string[];
|
|
2421
|
+
delivery: "pull" | "digest" | "wake";
|
|
2422
|
+
maxPerHour: number;
|
|
2423
|
+
match?: string | undefined;
|
|
2424
|
+
agents?: string[] | undefined;
|
|
2425
|
+
nodes?: string[] | undefined;
|
|
2426
|
+
}, {
|
|
2427
|
+
kinds: string[];
|
|
2428
|
+
match?: string | undefined;
|
|
2429
|
+
agents?: string[] | undefined;
|
|
2430
|
+
nodes?: string[] | undefined;
|
|
2431
|
+
delivery?: "pull" | "digest" | "wake" | undefined;
|
|
2432
|
+
maxPerHour?: number | undefined;
|
|
2433
|
+
}>, "many">>;
|
|
2360
2434
|
/** Per-agent third-party integrations registry. Declares which services
|
|
2361
2435
|
* this agent has credentials for (telegram-bot, hubspot, gitlab-user,
|
|
2362
2436
|
* gmail, etc.). Secrets stay in env vars / keyring; this block holds
|
|
@@ -2524,6 +2598,14 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2524
2598
|
intervalMinutes: number;
|
|
2525
2599
|
};
|
|
2526
2600
|
access: "private" | "public";
|
|
2601
|
+
subscriptions: {
|
|
2602
|
+
kinds: string[];
|
|
2603
|
+
delivery: "pull" | "digest" | "wake";
|
|
2604
|
+
maxPerHour: number;
|
|
2605
|
+
match?: string | undefined;
|
|
2606
|
+
agents?: string[] | undefined;
|
|
2607
|
+
nodes?: string[] | undefined;
|
|
2608
|
+
}[];
|
|
2527
2609
|
integrations: {
|
|
2528
2610
|
enabled: boolean;
|
|
2529
2611
|
credentials: {
|
|
@@ -2612,6 +2694,14 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2612
2694
|
} | undefined;
|
|
2613
2695
|
access?: "private" | "public" | undefined;
|
|
2614
2696
|
admin?: boolean | undefined;
|
|
2697
|
+
subscriptions?: {
|
|
2698
|
+
kinds: string[];
|
|
2699
|
+
match?: string | undefined;
|
|
2700
|
+
agents?: string[] | undefined;
|
|
2701
|
+
nodes?: string[] | undefined;
|
|
2702
|
+
delivery?: "pull" | "digest" | "wake" | undefined;
|
|
2703
|
+
maxPerHour?: number | undefined;
|
|
2704
|
+
}[] | undefined;
|
|
2615
2705
|
integrations?: {
|
|
2616
2706
|
label: string;
|
|
2617
2707
|
kind: string;
|
|
@@ -3073,6 +3163,47 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3073
3163
|
defaultPriority?: number | undefined;
|
|
3074
3164
|
defaultTitle?: string | undefined;
|
|
3075
3165
|
}>>;
|
|
3166
|
+
/** Web Push to the phone app (/app) — outbound only. The node that hosts
|
|
3167
|
+
* the app holds the subscriptions and sends; any other node sets
|
|
3168
|
+
* `relayTo` and forwards over the mesh. `chatId` "default" means every
|
|
3169
|
+
* subscribed phone, or a device id (tok_…) for one. */
|
|
3170
|
+
push: z.ZodDefault<z.ZodObject<{
|
|
3171
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
3172
|
+
/** VAPID key pair written by `agentx app push-keys`. Relative paths
|
|
3173
|
+
* resolve from the folder AgentX runs in (the one holding agentx.json). */
|
|
3174
|
+
keysFile: z.ZodDefault<z.ZodString>;
|
|
3175
|
+
/** Contact for the push services: `mailto:you@example.com` or an
|
|
3176
|
+
* https:// URL. Required on the hosting node. */
|
|
3177
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
3178
|
+
/** Mesh peer (id or name) that hosts the phone app. Set it on every
|
|
3179
|
+
* other node; leave it unset on the host. */
|
|
3180
|
+
relayTo: z.ZodOptional<z.ZodString>;
|
|
3181
|
+
/** How long a push service keeps trying an offline phone. */
|
|
3182
|
+
ttlSeconds: z.ZodDefault<z.ZodNumber>;
|
|
3183
|
+
/** Recent pushes kept for the app's Alerts tab. */
|
|
3184
|
+
keepRecent: z.ZodDefault<z.ZodNumber>;
|
|
3185
|
+
/** Push-service hosts a phone may subscribe with (a host or any
|
|
3186
|
+
* subdomain of it). The daemon POSTs to the stored address, so anything
|
|
3187
|
+
* else is refused. Defaults cover Chrome/Android, Firefox, Safari/iOS
|
|
3188
|
+
* and Edge. */
|
|
3189
|
+
allowedHosts: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
3190
|
+
}, "strip", z.ZodTypeAny, {
|
|
3191
|
+
enabled: boolean;
|
|
3192
|
+
keysFile: string;
|
|
3193
|
+
ttlSeconds: number;
|
|
3194
|
+
keepRecent: number;
|
|
3195
|
+
allowedHosts: string[];
|
|
3196
|
+
subject?: string | undefined;
|
|
3197
|
+
relayTo?: string | undefined;
|
|
3198
|
+
}, {
|
|
3199
|
+
enabled?: boolean | undefined;
|
|
3200
|
+
keysFile?: string | undefined;
|
|
3201
|
+
subject?: string | undefined;
|
|
3202
|
+
relayTo?: string | undefined;
|
|
3203
|
+
ttlSeconds?: number | undefined;
|
|
3204
|
+
keepRecent?: number | undefined;
|
|
3205
|
+
allowedHosts?: string[] | undefined;
|
|
3206
|
+
}>>;
|
|
3076
3207
|
webrtc: z.ZodDefault<z.ZodObject<{
|
|
3077
3208
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
3078
3209
|
/** ICE STUN servers for NAT discovery. Default is Google's public STUN. */
|
|
@@ -3231,6 +3362,15 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3231
3362
|
} | undefined;
|
|
3232
3363
|
}>>;
|
|
3233
3364
|
}, "strip", z.ZodTypeAny, {
|
|
3365
|
+
push: {
|
|
3366
|
+
enabled: boolean;
|
|
3367
|
+
keysFile: string;
|
|
3368
|
+
ttlSeconds: number;
|
|
3369
|
+
keepRecent: number;
|
|
3370
|
+
allowedHosts: string[];
|
|
3371
|
+
subject?: string | undefined;
|
|
3372
|
+
relayTo?: string | undefined;
|
|
3373
|
+
};
|
|
3234
3374
|
gitlab: {
|
|
3235
3375
|
enabled: boolean;
|
|
3236
3376
|
host: string;
|
|
@@ -3353,6 +3493,15 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3353
3493
|
callUrlBase?: string | undefined;
|
|
3354
3494
|
};
|
|
3355
3495
|
}, {
|
|
3496
|
+
push?: {
|
|
3497
|
+
enabled?: boolean | undefined;
|
|
3498
|
+
keysFile?: string | undefined;
|
|
3499
|
+
subject?: string | undefined;
|
|
3500
|
+
relayTo?: string | undefined;
|
|
3501
|
+
ttlSeconds?: number | undefined;
|
|
3502
|
+
keepRecent?: number | undefined;
|
|
3503
|
+
allowedHosts?: string[] | undefined;
|
|
3504
|
+
} | undefined;
|
|
3356
3505
|
gitlab?: {
|
|
3357
3506
|
enabled?: boolean | undefined;
|
|
3358
3507
|
token?: string | undefined;
|
|
@@ -3775,6 +3924,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3775
3924
|
chatId: string;
|
|
3776
3925
|
accountId?: string | undefined;
|
|
3777
3926
|
}>>;
|
|
3927
|
+
/** Channel `agentx notify` and Focus digests use when none is given.
|
|
3928
|
+
* Unset: `push` (the phone app) when channels.push is enabled, else
|
|
3929
|
+
* `ntfy`, so upgrading never points notify at a channel that is off. */
|
|
3930
|
+
channel: z.ZodOptional<z.ZodString>;
|
|
3778
3931
|
/** Notify on these events */
|
|
3779
3932
|
on: z.ZodDefault<z.ZodObject<{
|
|
3780
3933
|
taskComplete: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -3827,6 +3980,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3827
3980
|
taskQueued: boolean;
|
|
3828
3981
|
};
|
|
3829
3982
|
longTaskThreshold: number;
|
|
3983
|
+
channel?: string | undefined;
|
|
3830
3984
|
destination?: {
|
|
3831
3985
|
channel: string;
|
|
3832
3986
|
chatId: string;
|
|
@@ -3840,6 +3994,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3840
3994
|
volume?: number | undefined;
|
|
3841
3995
|
icon?: string | undefined;
|
|
3842
3996
|
} | undefined;
|
|
3997
|
+
channel?: string | undefined;
|
|
3843
3998
|
on?: {
|
|
3844
3999
|
taskComplete?: boolean | undefined;
|
|
3845
4000
|
taskError?: boolean | undefined;
|
|
@@ -3902,10 +4057,6 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3902
4057
|
} | undefined;
|
|
3903
4058
|
}>>;
|
|
3904
4059
|
}, "strip", z.ZodTypeAny, {
|
|
3905
|
-
defaultExpiryDays: number;
|
|
3906
|
-
maxExpiryDays: number;
|
|
3907
|
-
laterHours: number;
|
|
3908
|
-
notifyAgent: boolean;
|
|
3909
4060
|
digest: {
|
|
3910
4061
|
enabled: boolean;
|
|
3911
4062
|
time: string;
|
|
@@ -3916,11 +4067,11 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3916
4067
|
accountId?: string | undefined;
|
|
3917
4068
|
} | undefined;
|
|
3918
4069
|
};
|
|
4070
|
+
defaultExpiryDays: number;
|
|
4071
|
+
maxExpiryDays: number;
|
|
4072
|
+
laterHours: number;
|
|
4073
|
+
notifyAgent: boolean;
|
|
3919
4074
|
}, {
|
|
3920
|
-
defaultExpiryDays?: number | undefined;
|
|
3921
|
-
maxExpiryDays?: number | undefined;
|
|
3922
|
-
laterHours?: number | undefined;
|
|
3923
|
-
notifyAgent?: boolean | undefined;
|
|
3924
4075
|
digest?: {
|
|
3925
4076
|
enabled?: boolean | undefined;
|
|
3926
4077
|
timezone?: string | undefined;
|
|
@@ -3931,6 +4082,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3931
4082
|
accountId?: string | undefined;
|
|
3932
4083
|
} | undefined;
|
|
3933
4084
|
} | undefined;
|
|
4085
|
+
defaultExpiryDays?: number | undefined;
|
|
4086
|
+
maxExpiryDays?: number | undefined;
|
|
4087
|
+
laterHours?: number | undefined;
|
|
4088
|
+
notifyAgent?: boolean | undefined;
|
|
3934
4089
|
}>>;
|
|
3935
4090
|
/** What happens to runs a restart cuts off (agents/resume). Chat messages
|
|
3936
4091
|
* are resumed in their chat; scheduled jobs never are (the next run
|
|
@@ -4144,6 +4299,19 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4144
4299
|
timeout?: number | undefined;
|
|
4145
4300
|
interval?: number | undefined;
|
|
4146
4301
|
}>>;
|
|
4302
|
+
/** Peer event feed (#166): follow each healthy peer's /events and merge
|
|
4303
|
+
* its own events into this node's bus. `skipTypes` are left out on the
|
|
4304
|
+
* peer's side; per-step agent activity is too chatty to cross the mesh. */
|
|
4305
|
+
feed: z.ZodDefault<z.ZodObject<{
|
|
4306
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
4307
|
+
skipTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
4308
|
+
}, "strip", z.ZodTypeAny, {
|
|
4309
|
+
enabled: boolean;
|
|
4310
|
+
skipTypes: string[];
|
|
4311
|
+
}, {
|
|
4312
|
+
enabled?: boolean | undefined;
|
|
4313
|
+
skipTypes?: string[] | undefined;
|
|
4314
|
+
}>>;
|
|
4147
4315
|
}, "strip", z.ZodTypeAny, {
|
|
4148
4316
|
enabled: boolean;
|
|
4149
4317
|
peers: {
|
|
@@ -4161,6 +4329,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4161
4329
|
timeout: number;
|
|
4162
4330
|
interval: number;
|
|
4163
4331
|
};
|
|
4332
|
+
feed: {
|
|
4333
|
+
enabled: boolean;
|
|
4334
|
+
skipTypes: string[];
|
|
4335
|
+
};
|
|
4164
4336
|
}, {
|
|
4165
4337
|
enabled?: boolean | undefined;
|
|
4166
4338
|
peers?: {
|
|
@@ -4178,6 +4350,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4178
4350
|
timeout?: number | undefined;
|
|
4179
4351
|
interval?: number | undefined;
|
|
4180
4352
|
} | undefined;
|
|
4353
|
+
feed?: {
|
|
4354
|
+
enabled?: boolean | undefined;
|
|
4355
|
+
skipTypes?: string[] | undefined;
|
|
4356
|
+
} | undefined;
|
|
4181
4357
|
}>>;
|
|
4182
4358
|
/** Voices for agents on mesh peers, keyed by remote agent id. The Mac
|
|
4183
4359
|
* speaks for them, so their nodes need no ElevenLabs key. Unset fields
|
|
@@ -5542,6 +5718,14 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5542
5718
|
intervalMinutes: number;
|
|
5543
5719
|
};
|
|
5544
5720
|
access: "private" | "public";
|
|
5721
|
+
subscriptions: {
|
|
5722
|
+
kinds: string[];
|
|
5723
|
+
delivery: "pull" | "digest" | "wake";
|
|
5724
|
+
maxPerHour: number;
|
|
5725
|
+
match?: string | undefined;
|
|
5726
|
+
agents?: string[] | undefined;
|
|
5727
|
+
nodes?: string[] | undefined;
|
|
5728
|
+
}[];
|
|
5545
5729
|
integrations: {
|
|
5546
5730
|
enabled: boolean;
|
|
5547
5731
|
credentials: {
|
|
@@ -5618,6 +5802,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5618
5802
|
timeout: number;
|
|
5619
5803
|
interval: number;
|
|
5620
5804
|
};
|
|
5805
|
+
feed: {
|
|
5806
|
+
enabled: boolean;
|
|
5807
|
+
skipTypes: string[];
|
|
5808
|
+
};
|
|
5621
5809
|
};
|
|
5622
5810
|
voice: {
|
|
5623
5811
|
provider: "system" | "elevenlabs";
|
|
@@ -5672,6 +5860,15 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5672
5860
|
baseUrl?: string | undefined;
|
|
5673
5861
|
}>;
|
|
5674
5862
|
channels: {
|
|
5863
|
+
push: {
|
|
5864
|
+
enabled: boolean;
|
|
5865
|
+
keysFile: string;
|
|
5866
|
+
ttlSeconds: number;
|
|
5867
|
+
keepRecent: number;
|
|
5868
|
+
allowedHosts: string[];
|
|
5869
|
+
subject?: string | undefined;
|
|
5870
|
+
relayTo?: string | undefined;
|
|
5871
|
+
};
|
|
5675
5872
|
gitlab: {
|
|
5676
5873
|
enabled: boolean;
|
|
5677
5874
|
host: string;
|
|
@@ -5850,6 +6047,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5850
6047
|
taskQueued: boolean;
|
|
5851
6048
|
};
|
|
5852
6049
|
longTaskThreshold: number;
|
|
6050
|
+
channel?: string | undefined;
|
|
5853
6051
|
destination?: {
|
|
5854
6052
|
channel: string;
|
|
5855
6053
|
chatId: string;
|
|
@@ -5857,10 +6055,6 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5857
6055
|
} | undefined;
|
|
5858
6056
|
};
|
|
5859
6057
|
approvals: {
|
|
5860
|
-
defaultExpiryDays: number;
|
|
5861
|
-
maxExpiryDays: number;
|
|
5862
|
-
laterHours: number;
|
|
5863
|
-
notifyAgent: boolean;
|
|
5864
6058
|
digest: {
|
|
5865
6059
|
enabled: boolean;
|
|
5866
6060
|
time: string;
|
|
@@ -5871,6 +6065,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5871
6065
|
accountId?: string | undefined;
|
|
5872
6066
|
} | undefined;
|
|
5873
6067
|
};
|
|
6068
|
+
defaultExpiryDays: number;
|
|
6069
|
+
maxExpiryDays: number;
|
|
6070
|
+
laterHours: number;
|
|
6071
|
+
notifyAgent: boolean;
|
|
5874
6072
|
};
|
|
5875
6073
|
reminders: {
|
|
5876
6074
|
enabled: boolean;
|
|
@@ -6172,6 +6370,14 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6172
6370
|
} | undefined;
|
|
6173
6371
|
access?: "private" | "public" | undefined;
|
|
6174
6372
|
admin?: boolean | undefined;
|
|
6373
|
+
subscriptions?: {
|
|
6374
|
+
kinds: string[];
|
|
6375
|
+
match?: string | undefined;
|
|
6376
|
+
agents?: string[] | undefined;
|
|
6377
|
+
nodes?: string[] | undefined;
|
|
6378
|
+
delivery?: "pull" | "digest" | "wake" | undefined;
|
|
6379
|
+
maxPerHour?: number | undefined;
|
|
6380
|
+
}[] | undefined;
|
|
6175
6381
|
integrations?: {
|
|
6176
6382
|
label: string;
|
|
6177
6383
|
kind: string;
|
|
@@ -6232,6 +6438,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6232
6438
|
timeout?: number | undefined;
|
|
6233
6439
|
interval?: number | undefined;
|
|
6234
6440
|
} | undefined;
|
|
6441
|
+
feed?: {
|
|
6442
|
+
enabled?: boolean | undefined;
|
|
6443
|
+
skipTypes?: string[] | undefined;
|
|
6444
|
+
} | undefined;
|
|
6235
6445
|
} | undefined;
|
|
6236
6446
|
voice?: {
|
|
6237
6447
|
system?: string | Record<string, string> | undefined;
|
|
@@ -6280,6 +6490,15 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6280
6490
|
baseUrl?: string | undefined;
|
|
6281
6491
|
}> | undefined;
|
|
6282
6492
|
channels?: {
|
|
6493
|
+
push?: {
|
|
6494
|
+
enabled?: boolean | undefined;
|
|
6495
|
+
keysFile?: string | undefined;
|
|
6496
|
+
subject?: string | undefined;
|
|
6497
|
+
relayTo?: string | undefined;
|
|
6498
|
+
ttlSeconds?: number | undefined;
|
|
6499
|
+
keepRecent?: number | undefined;
|
|
6500
|
+
allowedHosts?: string[] | undefined;
|
|
6501
|
+
} | undefined;
|
|
6283
6502
|
gitlab?: {
|
|
6284
6503
|
enabled?: boolean | undefined;
|
|
6285
6504
|
token?: string | undefined;
|
|
@@ -6452,6 +6671,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6452
6671
|
volume?: number | undefined;
|
|
6453
6672
|
icon?: string | undefined;
|
|
6454
6673
|
} | undefined;
|
|
6674
|
+
channel?: string | undefined;
|
|
6455
6675
|
on?: {
|
|
6456
6676
|
taskComplete?: boolean | undefined;
|
|
6457
6677
|
taskError?: boolean | undefined;
|
|
@@ -6465,10 +6685,6 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6465
6685
|
} | undefined;
|
|
6466
6686
|
} | undefined;
|
|
6467
6687
|
approvals?: {
|
|
6468
|
-
defaultExpiryDays?: number | undefined;
|
|
6469
|
-
maxExpiryDays?: number | undefined;
|
|
6470
|
-
laterHours?: number | undefined;
|
|
6471
|
-
notifyAgent?: boolean | undefined;
|
|
6472
6688
|
digest?: {
|
|
6473
6689
|
enabled?: boolean | undefined;
|
|
6474
6690
|
timezone?: string | undefined;
|
|
@@ -6479,6 +6695,10 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6479
6695
|
accountId?: string | undefined;
|
|
6480
6696
|
} | undefined;
|
|
6481
6697
|
} | undefined;
|
|
6698
|
+
defaultExpiryDays?: number | undefined;
|
|
6699
|
+
maxExpiryDays?: number | undefined;
|
|
6700
|
+
laterHours?: number | undefined;
|
|
6701
|
+
notifyAgent?: boolean | undefined;
|
|
6482
6702
|
} | undefined;
|
|
6483
6703
|
reminders?: {
|
|
6484
6704
|
enabled?: boolean | undefined;
|
|
@@ -6909,6 +7129,9 @@ declare class A2AMesh {
|
|
|
6909
7129
|
senderAgentId?: string;
|
|
6910
7130
|
freshSession?: boolean;
|
|
6911
7131
|
context?: Record<string, unknown>;
|
|
7132
|
+
/** Aborts the peer call; the peer's /task treats it as a disconnect
|
|
7133
|
+
* and interrupts the run. */
|
|
7134
|
+
signal?: AbortSignal;
|
|
6912
7135
|
}): AsyncGenerator<{
|
|
6913
7136
|
event: string;
|
|
6914
7137
|
data: any;
|
|
@@ -7148,6 +7371,10 @@ declare class TypedEventBus {
|
|
|
7148
7371
|
private envelopeListeners;
|
|
7149
7372
|
private ring;
|
|
7150
7373
|
private node;
|
|
7374
|
+
/** Envelopes taken in from mesh peers, keyed `${node}:${id}`, so the
|
|
7375
|
+
* live stream and a catch-up read never deliver one event twice. Map
|
|
7376
|
+
* insertion order makes the oldest key the first to drop. */
|
|
7377
|
+
private seen;
|
|
7151
7378
|
constructor();
|
|
7152
7379
|
/** Set the publishing node name and ring size (daemon boot / reload). */
|
|
7153
7380
|
configure(opts: {
|
|
@@ -7159,6 +7386,19 @@ declare class TypedEventBus {
|
|
|
7159
7386
|
emit<E extends EventName>(event: E, payload: AgentXEvents[E]): boolean;
|
|
7160
7387
|
/** The single publish API. Returns the envelope as delivered. */
|
|
7161
7388
|
publish(input: PublishInput): EventEnvelope;
|
|
7389
|
+
/** Name this bus publishes under. An envelope whose `node` differs came
|
|
7390
|
+
* from a mesh peer (see ingest). */
|
|
7391
|
+
get nodeName(): string;
|
|
7392
|
+
/** True for envelopes this node published itself. */
|
|
7393
|
+
isLocal(e: EventEnvelope): boolean;
|
|
7394
|
+
/** Take in an envelope published on a mesh peer. It keeps its id, node
|
|
7395
|
+
* and root, lands in the ring and reaches `subscribe` listeners, but
|
|
7396
|
+
* never the typed `on` listeners: the peer records its own traces.
|
|
7397
|
+
* Returns false for an event already taken in, or one that claims to
|
|
7398
|
+
* come from this node (an echo). */
|
|
7399
|
+
ingest(input: EventEnvelope): boolean;
|
|
7400
|
+
/** Whether an event id is still in this node's ring buffer. */
|
|
7401
|
+
hasRecent(id: string): boolean;
|
|
7162
7402
|
/** Receive every envelope. Returns an unsubscribe function. */
|
|
7163
7403
|
subscribe(fn: EnvelopeListener): () => void;
|
|
7164
7404
|
recent(q?: RecentQuery): EventEnvelope[];
|
|
@@ -7278,6 +7518,7 @@ declare class AgentXDaemon {
|
|
|
7278
7518
|
private hooks;
|
|
7279
7519
|
private landscape;
|
|
7280
7520
|
private heartbeat;
|
|
7521
|
+
private stopEventWaker?;
|
|
7281
7522
|
private business?;
|
|
7282
7523
|
private httpServer?;
|
|
7283
7524
|
private attachSweep?;
|
|
@@ -7320,6 +7561,8 @@ declare class AgentXDaemon {
|
|
|
7320
7561
|
* dashboard) filter by kind / workflow / actor. Created eagerly so
|
|
7321
7562
|
* early boot events don't fall through. */
|
|
7322
7563
|
readonly events: EventBus;
|
|
7564
|
+
/** Follows each healthy peer's event feed into the local bus (#166). */
|
|
7565
|
+
private peerFeed?;
|
|
7323
7566
|
private log;
|
|
7324
7567
|
private sseClients;
|
|
7325
7568
|
private configPath?;
|
|
@@ -7472,6 +7715,9 @@ declare class AgentXDaemon {
|
|
|
7472
7715
|
/** Agent-memory HTTP surface — see memory-api.ts. */
|
|
7473
7716
|
private handleMemoryApi;
|
|
7474
7717
|
private handleWorkflowEvent;
|
|
7718
|
+
/** Forwards a push to the mesh peer hosting the phone app (its
|
|
7719
|
+
* /channel/send), for PushRelayAdapter. */
|
|
7720
|
+
private relayPush;
|
|
7475
7721
|
/** Mesh-callable outbound send. A peer's workflow `action.send` invokes
|
|
7476
7722
|
* this when the channel lives on this node (e.g. peer-server hosts
|
|
7477
7723
|
* whatsapp; macbook's workflow forwards here). Just unwraps to the local
|
|
@@ -9702,6 +9948,13 @@ declare class AgentRegistry {
|
|
|
9702
9948
|
* on WorkflowDispatcher. */
|
|
9703
9949
|
private workflowAutoRunner?;
|
|
9704
9950
|
private messageQueue;
|
|
9951
|
+
/**
|
|
9952
|
+
* Voice chats a waiting question has claimed between its wait ending and
|
|
9953
|
+
* the chat being marked running (the rate limiter awaits in between).
|
|
9954
|
+
* Without the claim, two questions waiting on one chat could both see it
|
|
9955
|
+
* free and run at once.
|
|
9956
|
+
*/
|
|
9957
|
+
private voiceClaims;
|
|
9705
9958
|
/** Intent Knowledge Graph classifier. Null when graph.enabled=false. */
|
|
9706
9959
|
private classifier?;
|
|
9707
9960
|
private graphStore?;
|
|
@@ -9923,6 +10176,9 @@ declare class AgentRegistry {
|
|
|
9923
10176
|
channel: string;
|
|
9924
10177
|
chatId: string;
|
|
9925
10178
|
} | null;
|
|
10179
|
+
/** Stop every in-flight run of `agentId` in one chat. Used when a streaming
|
|
10180
|
+
* caller disconnects (the phone app's Stop). Returns how many it aborted. */
|
|
10181
|
+
cancelChatTasks(agentId: string, channel: string, chatId: string, reason?: string): number;
|
|
9926
10182
|
/**
|
|
9927
10183
|
* Queue a follow-up correction/update for an in-flight task. The message
|
|
9928
10184
|
* lands in the per-session MessageQueue and is dispatched after the
|
|
@@ -9988,9 +10244,7 @@ declare class AgentRegistry {
|
|
|
9988
10244
|
byAgent: Record<string, {
|
|
9989
10245
|
tasks: number;
|
|
9990
10246
|
input: number;
|
|
9991
|
-
output: number;
|
|
9992
|
-
* the requested agent before returning "Unknown agent". Duck-typed so
|
|
9993
|
-
* we don't create a circular import with src/a2a/mesh.ts. */
|
|
10247
|
+
output: number;
|
|
9994
10248
|
cacheRead: number;
|
|
9995
10249
|
cacheCreate: number;
|
|
9996
10250
|
total: number;
|
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,
|
|
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-K4RDE6YU.js";import"./chunk-UIVHSYCN.js";import"./chunk-723K4SAW.js";import"./chunk-S7CVSKOX.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-SA23V7WX.js";import"./chunk-W4YMMWJL.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import{S as yt,l as lt,m as ct,n as dt,o as mt,p as pt}from"./chunk-EJ5ISSWW.js";import"./chunk-CELYD5QW.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import{s as ut}from"./chunk-O3XG2NVR.js";import"./chunk-EZN2YXRY.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-6AK6WKE5.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-4HEVSWO3.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-LKJSPO3S.js";import{a as gt,b as ft,e as ht}from"./chunk-C3VRBEJ7.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-GSOL2LW6.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-M4AG2YNX.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.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{l as tt,n as st,o as ot,q as nt}from"./chunk-U4H35SJS.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).
|