agentix-cli 0.56.0 → 0.57.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 +43 -0
- package/apps/mac-voice/Sources/AgentXVoice/Hotkey.swift +8 -2
- package/apps/mac-voice/Sources/AgentXVoice/HotkeySpec.swift +80 -0
- package/apps/mac-voice/Sources/AgentXVoice/SettingsWindow.swift +518 -0
- package/apps/mac-voice/Sources/AgentXVoice/Speech.swift +8 -2
- package/apps/mac-voice/Sources/AgentXVoice/StatusMenu.swift +4 -1
- package/apps/mac-voice/Sources/AgentXVoice/VoiceSettings.swift +101 -0
- package/apps/mac-voice/Sources/AgentXVoice/main.swift +100 -38
- package/dist/{App-4EM7IPB3.js → App-Z5VOAUXB.js} +2 -2
- package/dist/{ChatApp-FYTEEGSU.js → ChatApp-BE7ONQKS.js} +2 -2
- package/dist/{agent-RZ46ZB4W.js → agent-Q74EISKP.js} +2 -2
- package/dist/{board-dashboard-NRRYCDZW.js → board-dashboard-A7PQOI6C.js} +4 -4
- package/dist/{chunk-W4YMMWJL.js → chunk-2MIOMYT2.js} +2 -2
- package/dist/{chunk-EZN2YXRY.js → chunk-547G3HYQ.js} +2 -2
- package/dist/{chunk-LKJSPO3S.js → chunk-5LLGIX5M.js} +2 -2
- package/dist/{chunk-WOMQ2VGA.js → chunk-5W7NJHCS.js} +2 -2
- package/dist/{chunk-4HEVSWO3.js → chunk-6OABTCRA.js} +2 -2
- package/dist/{chunk-UIVHSYCN.js → chunk-6QNPCVRN.js} +3 -3
- package/dist/chunk-6QNPCVRN.js.map +1 -0
- package/dist/{chunk-CELYD5QW.js → chunk-CQUVUVXR.js} +2 -2
- package/dist/chunk-ERL6AS3O.js +15 -0
- package/dist/chunk-ERL6AS3O.js.map +1 -0
- package/dist/{chunk-EJ5ISSWW.js → chunk-I2LYULR4.js} +5 -5
- package/dist/{chunk-76AHNHWC.js → chunk-KKGFZEXS.js} +2 -2
- package/dist/{chunk-6AK6WKE5.js → chunk-KW7TIOS3.js} +2 -2
- package/dist/{chunk-SA23V7WX.js → chunk-NKMFHEGV.js} +2 -2
- package/dist/{chunk-WKMTT2UY.js → chunk-OZZPJ2YG.js} +197 -188
- package/dist/chunk-OZZPJ2YG.js.map +1 -0
- package/dist/{chunk-IL2XLW4H.js → chunk-POL7RAJQ.js} +13 -13
- package/dist/{chunk-D3LSPFHK.js → chunk-Q6SMLSRO.js} +2 -2
- package/dist/{chunk-723K4SAW.js → chunk-RXEAACVH.js} +2 -2
- package/dist/{chunk-O3XG2NVR.js → chunk-U5YBQJ5Q.js} +2 -2
- package/dist/{chunk-XEOAKD5C.js → chunk-V7ZK6ZIO.js} +2 -2
- package/dist/{chunk-M4AG2YNX.js → chunk-VI7GBDKV.js} +2 -2
- package/dist/{chunk-GSOL2LW6.js → chunk-VVBGPT6W.js} +2 -2
- package/dist/{chunk-C3VRBEJ7.js → chunk-XTD3SZIP.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/client-EFP2PKA3.js +2 -0
- package/dist/config-P6YXC6XZ.js +2 -0
- package/dist/config-mutator-3GKXLTHH.js +2 -0
- package/dist/doctor-JEWMHXYH.js +2 -0
- package/dist/index.d.ts +109 -3
- package/dist/index.js +1 -1
- package/dist/program-7DUQJDSQ.js +2 -0
- package/dist/{promote-T4UJROEH.js → promote-KVPLDSKT.js} +2 -2
- package/dist/query-AGOMCYTT.js +2 -0
- package/dist/{registry-DX2RI7I7.js → registry-AUOI4TW2.js} +2 -2
- package/dist/{request-planner-B7DE7VJR.js → request-planner-LMZ5ZAXC.js} +2 -2
- package/dist/{review-candidates-4YJHIBAF.js → review-candidates-WCBXLLDS.js} +2 -2
- package/dist/{routing-MZG3UODH.js → routing-FBASYKUL.js} +2 -2
- package/dist/schedule-tool-RJRJ63SS.js +2 -0
- package/dist/scheduler-ATA7Z44S.js +2 -0
- package/dist/{seat-2PEI7JRX.js → seat-DBFW3Z5P.js} +2 -2
- package/dist/{select-4KIUR27O.js → select-6CNVVFA5.js} +2 -2
- package/dist/{set-enabled-SE7HQKPF.js → set-enabled-AYZH3KSB.js} +2 -2
- package/dist/{tool-5VMD7IE4.js → tool-PKS4NBZ6.js} +2 -2
- package/dist/wiki-QW6BDNEQ.js +2 -0
- package/package.json +1 -1
- package/dist/chunk-U4H35SJS.js +0 -15
- package/dist/chunk-U4H35SJS.js.map +0 -1
- package/dist/chunk-UIVHSYCN.js.map +0 -1
- package/dist/chunk-WKMTT2UY.js.map +0 -1
- package/dist/client-IA7ZPE56.js +0 -2
- package/dist/config-HPN2F7LH.js +0 -2
- package/dist/config-mutator-7GPTMTVB.js +0 -2
- package/dist/doctor-IBWQVQV4.js +0 -2
- package/dist/program-G6DIFJUF.js +0 -2
- package/dist/query-VUJC4Y5O.js +0 -2
- package/dist/schedule-tool-A4OFQ4YZ.js +0 -2
- package/dist/scheduler-RHJW2V4M.js +0 -2
- package/dist/wiki-2QFLAH4U.js +0 -2
- /package/dist/{App-4EM7IPB3.js.map → App-Z5VOAUXB.js.map} +0 -0
- /package/dist/{ChatApp-FYTEEGSU.js.map → ChatApp-BE7ONQKS.js.map} +0 -0
- /package/dist/{agent-RZ46ZB4W.js.map → agent-Q74EISKP.js.map} +0 -0
- /package/dist/{board-dashboard-NRRYCDZW.js.map → board-dashboard-A7PQOI6C.js.map} +0 -0
- /package/dist/{chunk-W4YMMWJL.js.map → chunk-2MIOMYT2.js.map} +0 -0
- /package/dist/{chunk-EZN2YXRY.js.map → chunk-547G3HYQ.js.map} +0 -0
- /package/dist/{chunk-LKJSPO3S.js.map → chunk-5LLGIX5M.js.map} +0 -0
- /package/dist/{chunk-WOMQ2VGA.js.map → chunk-5W7NJHCS.js.map} +0 -0
- /package/dist/{chunk-4HEVSWO3.js.map → chunk-6OABTCRA.js.map} +0 -0
- /package/dist/{chunk-CELYD5QW.js.map → chunk-CQUVUVXR.js.map} +0 -0
- /package/dist/{chunk-EJ5ISSWW.js.map → chunk-I2LYULR4.js.map} +0 -0
- /package/dist/{chunk-76AHNHWC.js.map → chunk-KKGFZEXS.js.map} +0 -0
- /package/dist/{chunk-6AK6WKE5.js.map → chunk-KW7TIOS3.js.map} +0 -0
- /package/dist/{chunk-SA23V7WX.js.map → chunk-NKMFHEGV.js.map} +0 -0
- /package/dist/{chunk-IL2XLW4H.js.map → chunk-POL7RAJQ.js.map} +0 -0
- /package/dist/{chunk-D3LSPFHK.js.map → chunk-Q6SMLSRO.js.map} +0 -0
- /package/dist/{chunk-723K4SAW.js.map → chunk-RXEAACVH.js.map} +0 -0
- /package/dist/{chunk-O3XG2NVR.js.map → chunk-U5YBQJ5Q.js.map} +0 -0
- /package/dist/{chunk-XEOAKD5C.js.map → chunk-V7ZK6ZIO.js.map} +0 -0
- /package/dist/{chunk-M4AG2YNX.js.map → chunk-VI7GBDKV.js.map} +0 -0
- /package/dist/{chunk-GSOL2LW6.js.map → chunk-VVBGPT6W.js.map} +0 -0
- /package/dist/{chunk-C3VRBEJ7.js.map → chunk-XTD3SZIP.js.map} +0 -0
- /package/dist/{client-IA7ZPE56.js.map → client-EFP2PKA3.js.map} +0 -0
- /package/dist/{config-HPN2F7LH.js.map → config-P6YXC6XZ.js.map} +0 -0
- /package/dist/{config-mutator-7GPTMTVB.js.map → config-mutator-3GKXLTHH.js.map} +0 -0
- /package/dist/{doctor-IBWQVQV4.js.map → doctor-JEWMHXYH.js.map} +0 -0
- /package/dist/{program-G6DIFJUF.js.map → program-7DUQJDSQ.js.map} +0 -0
- /package/dist/{promote-T4UJROEH.js.map → promote-KVPLDSKT.js.map} +0 -0
- /package/dist/{query-VUJC4Y5O.js.map → query-AGOMCYTT.js.map} +0 -0
- /package/dist/{registry-DX2RI7I7.js.map → registry-AUOI4TW2.js.map} +0 -0
- /package/dist/{request-planner-B7DE7VJR.js.map → request-planner-LMZ5ZAXC.js.map} +0 -0
- /package/dist/{review-candidates-4YJHIBAF.js.map → review-candidates-WCBXLLDS.js.map} +0 -0
- /package/dist/{routing-MZG3UODH.js.map → routing-FBASYKUL.js.map} +0 -0
- /package/dist/{schedule-tool-A4OFQ4YZ.js.map → schedule-tool-RJRJ63SS.js.map} +0 -0
- /package/dist/{scheduler-RHJW2V4M.js.map → scheduler-ATA7Z44S.js.map} +0 -0
- /package/dist/{seat-2PEI7JRX.js.map → seat-DBFW3Z5P.js.map} +0 -0
- /package/dist/{select-4KIUR27O.js.map → select-6CNVVFA5.js.map} +0 -0
- /package/dist/{set-enabled-SE7HQKPF.js.map → set-enabled-AYZH3KSB.js.map} +0 -0
- /package/dist/{tool-5VMD7IE4.js.map → tool-PKS4NBZ6.js.map} +0 -0
- /package/dist/{wiki-2QFLAH4U.js.map → wiki-QW6BDNEQ.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1765,22 +1765,37 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1765
1765
|
/** Speak short updates from this agent's real tool steps while it
|
|
1766
1766
|
* works: "on" for everything but cron, "all" to include cron. */
|
|
1767
1767
|
narrate: z.ZodOptional<z.ZodEnum<["off", "on", "all"]>>;
|
|
1768
|
+
/** Speaking speed, 1 = normal. System voices: 175 words a minute times
|
|
1769
|
+
* this. ElevenLabs accepts 0.7 to 1.2 and is held to that range. */
|
|
1770
|
+
rate: z.ZodOptional<z.ZodNumber>;
|
|
1771
|
+
/** Place in the speaking queue: "high" lines go ahead of waiting
|
|
1772
|
+
* "normal" ones, "low" lines after them. Unset: normal. */
|
|
1773
|
+
priority: z.ZodOptional<z.ZodEnum<["high", "normal", "low"]>>;
|
|
1774
|
+
/** AgentX Voice: hold this shortcut and speak to ask this agent, without
|
|
1775
|
+
* changing the agent picked in the menu. */
|
|
1776
|
+
hotkey: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
1768
1777
|
}, "strip", z.ZodTypeAny, {
|
|
1769
1778
|
system?: string | Record<string, string> | undefined;
|
|
1770
1779
|
provider?: "system" | "elevenlabs" | undefined;
|
|
1771
1780
|
style?: string | undefined;
|
|
1781
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
1772
1782
|
elevenlabsVoiceId?: string | undefined;
|
|
1773
1783
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
1774
1784
|
intro?: string | undefined;
|
|
1775
1785
|
narrate?: "all" | "on" | "off" | undefined;
|
|
1786
|
+
rate?: number | undefined;
|
|
1787
|
+
hotkey?: string | undefined;
|
|
1776
1788
|
}, {
|
|
1777
1789
|
system?: string | Record<string, string> | undefined;
|
|
1778
1790
|
provider?: "system" | "elevenlabs" | undefined;
|
|
1779
1791
|
style?: string | undefined;
|
|
1792
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
1780
1793
|
elevenlabsVoiceId?: string | undefined;
|
|
1781
1794
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
1782
1795
|
intro?: string | undefined;
|
|
1783
1796
|
narrate?: "all" | "on" | "off" | undefined;
|
|
1797
|
+
rate?: number | undefined;
|
|
1798
|
+
hotkey?: string | undefined;
|
|
1784
1799
|
}>>;
|
|
1785
1800
|
/** How this agent appears on screen: its own cursor, drawn by the Mac
|
|
1786
1801
|
* helper and click-through, never the person's real mouse. See
|
|
@@ -1875,10 +1890,13 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1875
1890
|
system?: string | Record<string, string> | undefined;
|
|
1876
1891
|
provider?: "system" | "elevenlabs" | undefined;
|
|
1877
1892
|
style?: string | undefined;
|
|
1893
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
1878
1894
|
elevenlabsVoiceId?: string | undefined;
|
|
1879
1895
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
1880
1896
|
intro?: string | undefined;
|
|
1881
1897
|
narrate?: "all" | "on" | "off" | undefined;
|
|
1898
|
+
rate?: number | undefined;
|
|
1899
|
+
hotkey?: string | undefined;
|
|
1882
1900
|
} | undefined;
|
|
1883
1901
|
presence?: {
|
|
1884
1902
|
initial?: string | undefined;
|
|
@@ -1955,10 +1973,13 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1955
1973
|
system?: string | Record<string, string> | undefined;
|
|
1956
1974
|
provider?: "system" | "elevenlabs" | undefined;
|
|
1957
1975
|
style?: string | undefined;
|
|
1976
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
1958
1977
|
elevenlabsVoiceId?: string | undefined;
|
|
1959
1978
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
1960
1979
|
intro?: string | undefined;
|
|
1961
1980
|
narrate?: "all" | "on" | "off" | undefined;
|
|
1981
|
+
rate?: number | undefined;
|
|
1982
|
+
hotkey?: string | undefined;
|
|
1962
1983
|
} | undefined;
|
|
1963
1984
|
presence?: {
|
|
1964
1985
|
initial?: string | undefined;
|
|
@@ -2532,22 +2553,37 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2532
2553
|
/** Speak short updates from this agent's real tool steps while it
|
|
2533
2554
|
* works: "on" for everything but cron, "all" to include cron. */
|
|
2534
2555
|
narrate: z.ZodOptional<z.ZodEnum<["off", "on", "all"]>>;
|
|
2556
|
+
/** Speaking speed, 1 = normal. System voices: 175 words a minute times
|
|
2557
|
+
* this. ElevenLabs accepts 0.7 to 1.2 and is held to that range. */
|
|
2558
|
+
rate: z.ZodOptional<z.ZodNumber>;
|
|
2559
|
+
/** Place in the speaking queue: "high" lines go ahead of waiting
|
|
2560
|
+
* "normal" ones, "low" lines after them. Unset: normal. */
|
|
2561
|
+
priority: z.ZodOptional<z.ZodEnum<["high", "normal", "low"]>>;
|
|
2562
|
+
/** AgentX Voice: hold this shortcut and speak to ask this agent, without
|
|
2563
|
+
* changing the agent picked in the menu. */
|
|
2564
|
+
hotkey: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
2535
2565
|
}, "strip", z.ZodTypeAny, {
|
|
2536
2566
|
system?: string | Record<string, string> | undefined;
|
|
2537
2567
|
provider?: "system" | "elevenlabs" | undefined;
|
|
2538
2568
|
style?: string | undefined;
|
|
2569
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
2539
2570
|
elevenlabsVoiceId?: string | undefined;
|
|
2540
2571
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
2541
2572
|
intro?: string | undefined;
|
|
2542
2573
|
narrate?: "all" | "on" | "off" | undefined;
|
|
2574
|
+
rate?: number | undefined;
|
|
2575
|
+
hotkey?: string | undefined;
|
|
2543
2576
|
}, {
|
|
2544
2577
|
system?: string | Record<string, string> | undefined;
|
|
2545
2578
|
provider?: "system" | "elevenlabs" | undefined;
|
|
2546
2579
|
style?: string | undefined;
|
|
2580
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
2547
2581
|
elevenlabsVoiceId?: string | undefined;
|
|
2548
2582
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
2549
2583
|
intro?: string | undefined;
|
|
2550
2584
|
narrate?: "all" | "on" | "off" | undefined;
|
|
2585
|
+
rate?: number | undefined;
|
|
2586
|
+
hotkey?: string | undefined;
|
|
2551
2587
|
}>>;
|
|
2552
2588
|
/** How this agent appears on screen: its own cursor, drawn by the Mac
|
|
2553
2589
|
* helper and click-through, never the person's real mouse. See
|
|
@@ -2642,10 +2678,13 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2642
2678
|
system?: string | Record<string, string> | undefined;
|
|
2643
2679
|
provider?: "system" | "elevenlabs" | undefined;
|
|
2644
2680
|
style?: string | undefined;
|
|
2681
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
2645
2682
|
elevenlabsVoiceId?: string | undefined;
|
|
2646
2683
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
2647
2684
|
intro?: string | undefined;
|
|
2648
2685
|
narrate?: "all" | "on" | "off" | undefined;
|
|
2686
|
+
rate?: number | undefined;
|
|
2687
|
+
hotkey?: string | undefined;
|
|
2649
2688
|
} | undefined;
|
|
2650
2689
|
presence?: {
|
|
2651
2690
|
initial?: string | undefined;
|
|
@@ -2722,10 +2761,13 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2722
2761
|
system?: string | Record<string, string> | undefined;
|
|
2723
2762
|
provider?: "system" | "elevenlabs" | undefined;
|
|
2724
2763
|
style?: string | undefined;
|
|
2764
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
2725
2765
|
elevenlabsVoiceId?: string | undefined;
|
|
2726
2766
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
2727
2767
|
intro?: string | undefined;
|
|
2728
2768
|
narrate?: "all" | "on" | "off" | undefined;
|
|
2769
|
+
rate?: number | undefined;
|
|
2770
|
+
hotkey?: string | undefined;
|
|
2729
2771
|
} | undefined;
|
|
2730
2772
|
presence?: {
|
|
2731
2773
|
initial?: string | undefined;
|
|
@@ -4358,7 +4400,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4358
4400
|
/** Voices for agents on mesh peers, keyed by remote agent id. The Mac
|
|
4359
4401
|
* speaks for them, so their nodes need no ElevenLabs key. Unset fields
|
|
4360
4402
|
* are derived from the agent card; see src/voice/mesh-voice.ts. */
|
|
4361
|
-
meshVoices: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
4403
|
+
meshVoices: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<Omit<{
|
|
4362
4404
|
/** Overrides the global voice.provider for this agent. */
|
|
4363
4405
|
provider: z.ZodOptional<z.ZodEnum<["system", "elevenlabs"]>>;
|
|
4364
4406
|
/** See systemVoiceSchema. Unset: one is assigned, of the agent's
|
|
@@ -4373,7 +4415,16 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4373
4415
|
/** Speak short updates from this agent's real tool steps while it
|
|
4374
4416
|
* works: "on" for everything but cron, "all" to include cron. */
|
|
4375
4417
|
narrate: z.ZodOptional<z.ZodEnum<["off", "on", "all"]>>;
|
|
4376
|
-
|
|
4418
|
+
/** Speaking speed, 1 = normal. System voices: 175 words a minute times
|
|
4419
|
+
* this. ElevenLabs accepts 0.7 to 1.2 and is held to that range. */
|
|
4420
|
+
rate: z.ZodOptional<z.ZodNumber>;
|
|
4421
|
+
/** Place in the speaking queue: "high" lines go ahead of waiting
|
|
4422
|
+
* "normal" ones, "low" lines after them. Unset: normal. */
|
|
4423
|
+
priority: z.ZodOptional<z.ZodEnum<["high", "normal", "low"]>>;
|
|
4424
|
+
/** AgentX Voice: hold this shortcut and speak to ask this agent, without
|
|
4425
|
+
* changing the agent picked in the menu. */
|
|
4426
|
+
hotkey: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
4427
|
+
}, "priority" | "rate" | "hotkey"> & {
|
|
4377
4428
|
/** What to call the agent aloud, e.g. "Atlas" for "Main Agent". */
|
|
4378
4429
|
name: z.ZodOptional<z.ZodString>;
|
|
4379
4430
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -4411,10 +4462,35 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4411
4462
|
/** What agents call the person they talk with, e.g. a first name.
|
|
4412
4463
|
* Unset: "the user". */
|
|
4413
4464
|
listener: z.ZodOptional<z.ZodString>;
|
|
4465
|
+
/** AgentX Voice speech to text: "auto" uses ElevenLabs when a key is
|
|
4466
|
+
* set and the local Whisper otherwise; "elevenlabs" or "local" pick
|
|
4467
|
+
* one (ElevenLabs still falls back to local when it fails). */
|
|
4468
|
+
stt: z.ZodDefault<z.ZodEnum<["auto", "elevenlabs", "local"]>>;
|
|
4469
|
+
/** AgentX Voice shortcuts: hold `talk` to speak, `stop` silences every
|
|
4470
|
+
* voice, `paste` is smart paste. */
|
|
4471
|
+
hotkeys: z.ZodDefault<z.ZodObject<{
|
|
4472
|
+
talk: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
|
|
4473
|
+
stop: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
|
|
4474
|
+
paste: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
|
|
4475
|
+
}, "strip", z.ZodTypeAny, {
|
|
4476
|
+
stop: string;
|
|
4477
|
+
talk: string;
|
|
4478
|
+
paste: string;
|
|
4479
|
+
}, {
|
|
4480
|
+
stop?: string | undefined;
|
|
4481
|
+
talk?: string | undefined;
|
|
4482
|
+
paste?: string | undefined;
|
|
4483
|
+
}>>;
|
|
4414
4484
|
}, "strip", z.ZodTypeAny, {
|
|
4415
4485
|
provider: "system" | "elevenlabs";
|
|
4416
4486
|
fallback: "system" | "none";
|
|
4417
4487
|
locale: string;
|
|
4488
|
+
stt: "auto" | "local" | "elevenlabs";
|
|
4489
|
+
hotkeys: {
|
|
4490
|
+
stop: string;
|
|
4491
|
+
talk: string;
|
|
4492
|
+
paste: string;
|
|
4493
|
+
};
|
|
4418
4494
|
system?: string | Record<string, string> | undefined;
|
|
4419
4495
|
listener?: string | undefined;
|
|
4420
4496
|
}, {
|
|
@@ -4423,6 +4499,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4423
4499
|
fallback?: "system" | "none" | undefined;
|
|
4424
4500
|
locale?: string | undefined;
|
|
4425
4501
|
listener?: string | undefined;
|
|
4502
|
+
stt?: "auto" | "local" | "elevenlabs" | undefined;
|
|
4503
|
+
hotkeys?: {
|
|
4504
|
+
stop?: string | undefined;
|
|
4505
|
+
talk?: string | undefined;
|
|
4506
|
+
paste?: string | undefined;
|
|
4507
|
+
} | undefined;
|
|
4426
4508
|
}>>;
|
|
4427
4509
|
business: z.ZodOptional<z.ZodObject<{
|
|
4428
4510
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -4606,7 +4688,8 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4606
4688
|
workTickMinutes: z.ZodDefault<z.ZodNumber>;
|
|
4607
4689
|
idleQueueThreshold: z.ZodDefault<z.ZodNumber>;
|
|
4608
4690
|
standup: z.ZodDefault<z.ZodObject<{
|
|
4609
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
4691
|
+
enabled: z.ZodDefault<z.ZodBoolean>; /** Speak short updates from this agent's real tool steps while it
|
|
4692
|
+
* works: "on" for everything but cron, "all" to include cron. */
|
|
4610
4693
|
plansDir: z.ZodDefault<z.ZodString>;
|
|
4611
4694
|
maxAgentsPerDay: z.ZodDefault<z.ZodNumber>;
|
|
4612
4695
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -4899,6 +4982,11 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4899
4982
|
token: z.ZodOptional<z.ZodString>;
|
|
4900
4983
|
daemonUrl: z.ZodDefault<z.ZodString>;
|
|
4901
4984
|
daemons: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
4985
|
+
/**
|
|
4986
|
+
* Canonical kind list — for autocomplete + doctor validation. Open string
|
|
4987
|
+
* schema so new services drop in without a bump; doctor warns when a kind
|
|
4988
|
+
* is outside this list.
|
|
4989
|
+
*/
|
|
4902
4990
|
name: z.ZodString;
|
|
4903
4991
|
url: z.ZodString;
|
|
4904
4992
|
dashboardUrl: z.ZodOptional<z.ZodString>;
|
|
@@ -5762,10 +5850,13 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5762
5850
|
system?: string | Record<string, string> | undefined;
|
|
5763
5851
|
provider?: "system" | "elevenlabs" | undefined;
|
|
5764
5852
|
style?: string | undefined;
|
|
5853
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
5765
5854
|
elevenlabsVoiceId?: string | undefined;
|
|
5766
5855
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
5767
5856
|
intro?: string | undefined;
|
|
5768
5857
|
narrate?: "all" | "on" | "off" | undefined;
|
|
5858
|
+
rate?: number | undefined;
|
|
5859
|
+
hotkey?: string | undefined;
|
|
5769
5860
|
} | undefined;
|
|
5770
5861
|
presence?: {
|
|
5771
5862
|
initial?: string | undefined;
|
|
@@ -5811,6 +5902,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
5811
5902
|
provider: "system" | "elevenlabs";
|
|
5812
5903
|
fallback: "system" | "none";
|
|
5813
5904
|
locale: string;
|
|
5905
|
+
stt: "auto" | "local" | "elevenlabs";
|
|
5906
|
+
hotkeys: {
|
|
5907
|
+
stop: string;
|
|
5908
|
+
talk: string;
|
|
5909
|
+
paste: string;
|
|
5910
|
+
};
|
|
5814
5911
|
system?: string | Record<string, string> | undefined;
|
|
5815
5912
|
listener?: string | undefined;
|
|
5816
5913
|
};
|
|
@@ -6398,10 +6495,13 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6398
6495
|
system?: string | Record<string, string> | undefined;
|
|
6399
6496
|
provider?: "system" | "elevenlabs" | undefined;
|
|
6400
6497
|
style?: string | undefined;
|
|
6498
|
+
priority?: "high" | "normal" | "low" | undefined;
|
|
6401
6499
|
elevenlabsVoiceId?: string | undefined;
|
|
6402
6500
|
gender?: "neutral" | "female" | "male" | undefined;
|
|
6403
6501
|
intro?: string | undefined;
|
|
6404
6502
|
narrate?: "all" | "on" | "off" | undefined;
|
|
6503
|
+
rate?: number | undefined;
|
|
6504
|
+
hotkey?: string | undefined;
|
|
6405
6505
|
} | undefined;
|
|
6406
6506
|
presence?: {
|
|
6407
6507
|
initial?: string | undefined;
|
|
@@ -6449,6 +6549,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
6449
6549
|
fallback?: "system" | "none" | undefined;
|
|
6450
6550
|
locale?: string | undefined;
|
|
6451
6551
|
listener?: string | undefined;
|
|
6552
|
+
stt?: "auto" | "local" | "elevenlabs" | undefined;
|
|
6553
|
+
hotkeys?: {
|
|
6554
|
+
stop?: string | undefined;
|
|
6555
|
+
talk?: string | undefined;
|
|
6556
|
+
paste?: string | undefined;
|
|
6557
|
+
} | undefined;
|
|
6452
6558
|
} | undefined;
|
|
6453
6559
|
graph?: {
|
|
6454
6560
|
enabled?: boolean | undefined;
|
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,la as bt,ma as Tt,na as Mt}from"./chunk-
|
|
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-OZZPJ2YG.js";import"./chunk-6QNPCVRN.js";import"./chunk-RXEAACVH.js";import"./chunk-S7CVSKOX.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-NKMFHEGV.js";import"./chunk-2MIOMYT2.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-I2LYULR4.js";import"./chunk-CQUVUVXR.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import{s as ut}from"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.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-KW7TIOS3.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-6OABTCRA.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-5LLGIX5M.js";import{a as gt,b as ft,e as ht}from"./chunk-XTD3SZIP.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-VVBGPT6W.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-VI7GBDKV.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{p as tt,r as st,s as ot,u as nt}from"./chunk-ERL6AS3O.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).
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./chunk-POL7RAJQ.js";import"./chunk-5W7NJHCS.js";import"./chunk-Q6SMLSRO.js";import"./chunk-KKGFZEXS.js";import"./chunk-Z3IP66SL.js";import"./chunk-KAFO5QZR.js";import"./chunk-RKPAVWXF.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-SZDACK6O.js";import"./chunk-OZZPJ2YG.js";import"./chunk-6QNPCVRN.js";import"./chunk-RXEAACVH.js";import"./chunk-S7CVSKOX.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-NKMFHEGV.js";import"./chunk-2MIOMYT2.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import"./chunk-I2LYULR4.js";import"./chunk-CQUVUVXR.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.js";import"./chunk-KW7TIOS3.js";import"./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-6OABTCRA.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-5LLGIX5M.js";import"./chunk-XTD3SZIP.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-VVBGPT6W.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-VDMYBPYB.js";import"./chunk-DSYKYZMT.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as buildProgram};
|
|
2
|
+
//# sourceMappingURL=program-7DUQJDSQ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=promote-
|
|
1
|
+
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t}from"./chunk-2MIOMYT2.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-XTD3SZIP.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-TFVUOC2C.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_PROMOTE_TYPES,a as PROMOTER_OWNER,c as PROMOTION_LEDGER_FILE,j as appendPromotionLedger,s as approveProposal,n as callPromotionLlm,p as estimateTokens,r as evidenceFor,m as getUnpromotedMemories,k as groupCandidates,h as listAllAgentMemories,d as memoryKey,e as memoryStamp,g as mergeSources,f as parseMemoryStamp,l as parsePromotionResponse,i as readPromotionLedger,t as rejectProposal,o as runPromotion,q as sourceKind};
|
|
2
|
+
//# sourceMappingURL=promote-KVPLDSKT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./chunk-VVBGPT6W.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as agenticQuery};
|
|
2
|
+
//# sourceMappingURL=query-AGOMCYTT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as a,J as b,K as c,L as d,M as e,N as f,O as g,P as h,Q as i,R as j,S as k}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=registry-
|
|
1
|
+
import{I as a,J as b,K as c,L as d,M as e,N as f,O as g,P as h,Q as i,R as j,S as k}from"./chunk-I2LYULR4.js";import"./chunk-CQUVUVXR.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-6OABTCRA.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-5LLGIX5M.js";import"./chunk-XTD3SZIP.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-VVBGPT6W.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{k as AgentRegistry,f as TRACE_STEP_SUMMARY_BYTES,c as buildEntryMeta,d as buildEventDigest,e as buildWikiContext,g as clipForTrace,j as emitTraceStepsFromStreamEvent,i as firstMissingRequiredTool,b as getGlobalRegistry,a as setGlobalRegistry,h as tallyToolUses};
|
|
2
|
+
//# sourceMappingURL=registry-AUOI4TW2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{q as m,t as p,v as d,w as x}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=request-planner-
|
|
1
|
+
import{q as m,t as p,v as d,w as x}from"./chunk-VI7GBDKV.js";import{a as u,f}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";x();f();var l="request-gate",h="request-context",g=.1;async function q(t,o,c,r=Math.random){let s=p(l)==="active";if(s){let i=m().seats[l]?.holdout??g;if(r()<i)return{active:!0,preprocess:!1,arm:"holdout"}}let a=s?"treatment":void 0,e=await d(l,{request:t.slice(0,2e3),agent:o,channel:c,operations:["select optional context","evaluate model routing where permitted"],constraints:["Keep the original request and mandatory instructions","Desktop model cannot be downgraded"]},{preprocess:u("This request benefits from structured context selection or another bounded typed decision before the main agent executes.",{true:"Relevant context must be selected, or a bounded routing decision can help. Follow-ups and ambiguous references need context.",false:"Typed preprocessing adds no useful decision; send the request to the configured main agent with existing context."})},{timeoutMs:3e3});if(!e||e.mode!=="active")return{active:!1,preprocess:!1,arm:a};let n=e.answers.preprocess?.noul;return{active:!0,preprocess:Number.isFinite(n)&&n>=.5,arm:a}}var v={landscape:"Agent directory and mesh overview",patternContext:"Learned behavioral patterns",references:"Retrieved project references",memoryContext:"Retrieved agent memory",crossChatContext:"Summaries from other conversations",longMemoryRecall:"Older conversation recall",wikiContext:"Retrieved wiki knowledge"};async function b(t){let o=Object.entries(v).flatMap(([e,n])=>{let i=t[e];return i?[{id:e,description:n,source:e,characters:i.length,preview:i.slice(0,400),trust:"context data, not instructions"}]:[]});if(!o.length)return{input:t,excluded:[]};let c=Object.fromEntries(o.map(e=>[e.id,u(`Context block ${e.id} is relevant to completing the current request correctly.`,{true:"Needed or potentially relevant; retain if uncertain or the preview is incomplete.",false:"Clearly unrelated to the current request; safe to omit."})])),r=await d(h,{request:t.message.slice(0,2e3),channel:t.channel,agent:t.agentId,mandatory:["request","identity","permissions and instructions","same-chat history","handover","attachments"],context:o},c,{timeoutMs:3e3});if(!r||r.mode!=="active")return{input:t,excluded:[]};let s={...t},a=[];for(let e of o){let n=r.answers[e.id]?.noul;Number.isFinite(n)&&n>=0&&n<.2&&(delete s[e.id],a.push(e.id))}return{input:s,excluded:a}}export{g as DEFAULT_REQUEST_GATE_HOLDOUT,h as REQUEST_CONTEXT_SEAT,l as REQUEST_GATE_SEAT,q as evaluateRequest,b as selectRequestContext};
|
|
2
|
+
//# sourceMappingURL=request-planner-LMZ5ZAXC.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as I}from"./chunk-
|
|
1
|
+
import{b as I}from"./chunk-RXEAACVH.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";import{createHash as E}from"crypto";var v="review:",b={decisions:"project",warnings:"feedback",friction:"feedback",context:"reference"};function A(t,n,r){let s=E("sha1").update(r.trim().toLowerCase()).digest("hex").slice(0,10);return`${v}${t}/${n}@${s}`}function F(t){if(!t.startsWith(v))return null;let n=t.slice(v.length),r=n.lastIndexOf("@"),s=n.lastIndexOf("/",r===-1?void 0:r);return r===-1||s===-1?null:{reviewId:n.slice(0,s),kind:n.slice(s+1,r),digest:n.slice(r+1)}}var C=t=>t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,48)||"finding",L=5;function T(t,n){return`${t}|${I(n)}`}function K(t,n={}){let r=n.kinds??Object.keys(b),s=n.minLength??24,h=[],d=new Map,u=new Map,f=new Map,x=new Map;for(let e of t){let i;try{i=JSON.parse(e.result)}catch{continue}let o=e.updated_at?new Date(e.updated_at).toISOString():new Date().toISOString();for(let c of r){let l=b[c];if(!l)continue;let R=i[c];if(Array.isArray(R))for(let $ of R){let a=String($?.text??"").trim();if(a.length<s)continue;let g=A(e.id,c,a),_=g.slice(g.lastIndexOf("@")),w=`${c}${_}`,y=T(c,a),S=f.get(y)??new Set;if(S.add(e.session_id??e.id),f.set(y,S),d.has(w))continue;let O=String($?.evidence??"").trim(),k={occurrences:1,agentId:e.agent,key:`${e.agent}/${l}_${C(a)}`,stamp:g,memory:{name:C(a),type:l,description:a.slice(0,200),body:"",createdAt:o,updatedAt:o}};x.set(g,{text:a,evidence:O,agent:e.agent,source:e.source}),d.set(w,k),u.set(w,y),h.push(k)}}}for(let[e,i]of d){let o=f.get(u.get(e)??"");i.occurrences=o?.size??1,i.sessions=[...o??[]].slice(0,L);let c=x.get(i.stamp);i.memory.body=D(c,i.occurrences)}let m=new Map;for(let[e,i]of d){let o=u.get(e)??e,c=m.get(o)??[];c.push(i),m.set(o,c)}let M=[...m.values()].sort((e,i)=>i[0].occurrences-e[0].occurrences),p=[];for(let e=0;p.length<h.length;e++){let i=!1;for(let o of M)e<o.length&&(p.push(o[e]),i=!0);if(!i)break}return p}function D(t,n){let r=`${t.agent}${t.source?` via ${t.source}`:""}`,s=[];return n>1?(s.push(`Observed in ${n} separate sessions. Most recently stated as:`),s.push(`> ${t.text}`),s.push(`Recurring across ${n} sessions is what makes this worth recording \u2014 any single occurrence is session state, the repetition is the finding.`)):s.push(t.text),t.evidence&&s.push(`**Evidence:** ${t.evidence}`),s.push(`_From ${n>1?"session reviews":"a session review"} of ${r}._`),s.join(`
|
|
2
2
|
|
|
3
3
|
`)}export{L as MAX_EVIDENCE_SESSIONS,b as PROMOTABLE_KINDS,v as REVIEW_STAMP_PREFIX,F as parseReviewStamp,A as reviewStamp,K as reviewsToCandidates};
|
|
4
|
-
//# sourceMappingURL=review-candidates-
|
|
4
|
+
//# sourceMappingURL=review-candidates-WCBXLLDS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=routing-
|
|
1
|
+
import{a,b}from"./chunk-6OABTCRA.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
|
|
2
|
+
//# sourceMappingURL=routing-FBASYKUL.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"./chunk-V7ZK6ZIO.js";import"./chunk-RKPAVWXF.js";import"./chunk-NKMFHEGV.js";import"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-QIJLFPWE.js";export{b as resolveScheduleCaller,a as runScheduleTool};
|
|
2
|
+
//# sourceMappingURL=schedule-tool-RJRJ63SS.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as a,o as b,p as c,q as d,r as e,s as f}from"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-QIJLFPWE.js";export{a as AGENT_RUN_TIMEOUT_FLOOR,f as CronScheduler,b as agentRunTimeout,e as cronRunId,d as getNextCronDate,c as runLinkIds};
|
|
2
|
+
//# sourceMappingURL=scheduler-ATA7Z44S.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=seat-
|
|
1
|
+
import{o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i}from"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";i();export{h as askSeat,a as configureDecisions,c as decisionsRuntime,f as getSeatMode,d as parseSeatMode,g as recordSeatOutcome,b as resetDecisionsRuntime,e as seatEnvVar};
|
|
2
|
+
//# sourceMappingURL=seat-DBFW3Z5P.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{v as S,w}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=select-
|
|
1
|
+
import{v as S,w}from"./chunk-VI7GBDKV.js";import{a as g,b as h,f as R}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import{d as f}from"./chunk-VDMYBPYB.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";w();R();var p="skill-select";function y(l){return{task:d(l.task,1200),...l.agent?{agent:l.agent}:{},skills:l.candidates.map(t=>({name:t.name,purpose:d(t.description,300),...t.category?{category:t.category}:{},...t.tags?.length?{tags:t.tags.slice(0,8)}:{}}))}}function b(l){let t={};for(let i of l)t[i.name]=d(i.description,300);return{anyRelevant:g("At least one of these skills is about the task at hand.",{true:"The task is the kind of work one of these skills exists for, and following it would change how the work is done \u2014 it names the same system, the same procedure or the same kind of artefact.",false:"None of them is about this task. They may share vocabulary with it, mention the same tools, or belong to the same project without bearing on what is being asked. Sharing words with a task is not being about it."}),best:h(t,"Which skill is this task most about?")}}function v(l){let t=l.anyRelevant,i=l.best,o=Object.entries(i.probabilities??{}).map(([e,s])=>({name:e,p:Number(s)||0})).sort((e,s)=>s.p-e.p);return{anyRelevant:t.noul,name:i.choice,confidence:i.confidence,ranked:o}}function d(l,t){return l.length>t?`${l.slice(0,t)}\u2026`:l}var x=.1,A=12;async function E(l,t,i={}){let o=i.minRelevant??.6,e=f(l,t).filter(n=>n.relevance>=x).slice(0,A),s=e.map(n=>({name:n.skill.frontmatter.name,lexical:n.relevance}));if(e.length===0)return{skill:null,anyRelevant:0,confidence:0,shortlist:s,judged:!1,reason:"no skill mentions anything in this task"};if(e.length===1)return{skill:e[0].skill,anyRelevant:e[0].relevance,confidence:e[0].relevance,shortlist:s,judged:!1,reason:`only ${e[0].skill.frontmatter.name} matched (${e[0].matchReason})`};let r=e.map(n=>({name:n.skill.frontmatter.name,description:n.skill.frontmatter.description,category:n.skill.frontmatter.category??null,tags:n.skill.frontmatter.tags})),m=await S(p,y({task:t,agent:i.agent??null,candidates:r}),b(r),{incumbent:{best:r[0].name},features:{agent:i.agent??"unknown",candidates:r.length}});if(!m)return{skill:e[0].skill,anyRelevant:e[0].relevance,confidence:e[0].relevance,shortlist:s,judged:!1,reason:`seat off \u2014 lexical top match (${e[0].matchReason})`};let a=v(m.answers),c=s.map(n=>({...n,p:a.ranked.find(k=>k.name===n.name)?.p??0})).sort((n,k)=>(k.p??0)-(n.p??0));if(a.anyRelevant<o)return{skill:null,anyRelevant:a.anyRelevant,confidence:a.confidence,shortlist:c,judged:!0,reason:`nothing on the shortlist is about this task (${a.anyRelevant.toFixed(2)} below ${o})`};let u=e.find(n=>n.skill.frontmatter.name===a.name);return u?{skill:u.skill,anyRelevant:a.anyRelevant,confidence:a.confidence,shortlist:c,judged:!0,reason:`${a.name} (confidence ${a.confidence.toFixed(2)})`}:{skill:null,anyRelevant:a.anyRelevant,confidence:a.confidence,shortlist:c,judged:!0,reason:`seat chose "${a.name}", which was not on the shortlist`}}export{E as pickSkillForTask};
|
|
2
|
+
//# sourceMappingURL=select-6CNVVFA5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=set-enabled-
|
|
1
|
+
import{b as a}from"./chunk-547G3HYQ.js";import"./chunk-ERL6AS3O.js";import"./chunk-QIJLFPWE.js";async function i(o,r,s={}){let e=null,n=await a(l=>{let t=l.crons?.[o];if(t?r&&t.approval?.action==="create"?e={ok:!1,status:409,error:`schedule "${o}" is waiting for approval: agentx schedule approve ${o}`}:t.enabled===r&&(e={ok:!0,id:o,enabled:r,changed:!1}):e={ok:!1,status:404,error:`no schedule "${o}"`},e)throw new Error("no write");t.enabled=r,e={ok:!0,id:o,enabled:r,changed:!0}},{configPath:s.configPath,reload:!1});return e&&(!e.ok||!e.changed)?e:n.success?e??{ok:!1,status:500,error:"mutation did not run"}:{ok:!1,status:500,error:n.error||"could not write agentx.json"}}export{i as setCronEnabled};
|
|
2
|
+
//# sourceMappingURL=set-enabled-AYZH3KSB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=tool-
|
|
1
|
+
import{b as p}from"./chunk-V7ZK6ZIO.js";import"./chunk-RKPAVWXF.js";import"./chunk-NKMFHEGV.js";import"./chunk-U5YBQJ5Q.js";import"./chunk-547G3HYQ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-QIJLFPWE.js";var f=new Set(["cron","heartbeat","api","a2a","mesh","approvals"]);function u(t){return typeof t=="string"?t.trim():""}async function y(t,i){let c=i.fetch??fetch,d=i.daemonUrl.replace(/\/$/,""),s=(u(t.action)||"create").toLowerCase(),r=p(t,i.env??process.env);if(s==="status"){let o=u(t.id);if(!o)return"Error: `id` is required for status (the card id you got when you raised it).";try{let n=await c(`${d}/approvals/${encodeURIComponent(o)}`,{signal:AbortSignal.timeout(1e4)}),a=await n.json().catch(()=>({}));if(!n.ok)return`Error: ${a?.error||`HTTP ${n.status}`}`;let e=a.card;return r&&e.raised_by!==r.agentId?`Error: card "${o}" was raised by another agent.`:e.status==="pending"?`Card ${e.id} is still waiting for the operator. It expires ${e.expires}; then "${e.if_silent}" applies.`:e.status==="decided"?`Card ${e.id}: the operator said ${String(e.verdict).toUpperCase()}.${e.note?` Note: ${e.note}`:""}`:`Card ${e.id} expired unanswered; the default applied: ${e.outcome??e.if_silent}.`}catch(n){return`Error: couldn't reach the daemon (${n?.message??n}).`}}if(s!=="create")return`Error: unknown action "${s}". Use create or status.`;if(!r)return"Error: couldn't tell which agent you are. Pass callerAgentId.";let l=r.channel&&r.chatId&&!f.has(r.channel)?{channel:r.channel,chatId:r.chatId,...r.accountId?{accountId:r.accountId}:{}}:void 0,h={title:t.title,ask:t.ask,recommend:t.recommend,if_silent:t.if_silent,expires:t.expires,source:t.source,raised_by:r.agentId,...l?{reply:l}:{}};try{let o=await c(`${d}/approvals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h),signal:AbortSignal.timeout(1e4)}),n=await o.json().catch(()=>({}));if(!o.ok)return`Error: ${n?.error||`HTTP ${o.status}`}`;let a=n.card;return[`Decision card ${a.id} is in the operator's Approvals inbox.`,`If nobody answers by ${a.expires}, "${a.if_silent}" applies.`,"You will get a message with the result. Tell the requester it is waiting for approval; don't ask the operator again in chat."].join(" ")}catch(o){return`Error: couldn't reach the daemon (${o?.message??o}).`}}export{y as runApprovalTool};
|
|
2
|
+
//# sourceMappingURL=tool-PKS4NBZ6.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-5LLGIX5M.js";import{e as a}from"./chunk-XTD3SZIP.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import{a as c}from"./chunk-VVBGPT6W.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-VI7GBDKV.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-ERL6AS3O.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as WikiHub,a as WikiStore,c as agenticQuery};
|
|
2
|
+
//# sourceMappingURL=wiki-QW6BDNEQ.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentix-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.57.0",
|
|
4
4
|
"description": "AI operations layer for small and medium businesses. Routes Telegram, WhatsApp, GitLab, GitHub, crons, webhooks, and mesh tasks to AI agents. Web wizard for operators, CLI for engineers. Self-hosted.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
package/dist/chunk-U4H35SJS.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{a as m,b as H}from"./chunk-QIJLFPWE.js";import{z as a}from"zod";var N,q,G,Z,K,F,V,Y,J,S,w=m(()=>{"use strict";N=a.enum(["mon","tue","wed","thu","fri","sat","sun"]),q=a.object({days:a.array(N).default(["mon","tue","wed","thu","fri"]),start:a.string().regex(/^\d{2}:\d{2}$/),end:a.string().regex(/^\d{2}:\d{2}$/),lunch:a.object({start:a.string().regex(/^\d{2}:\d{2}$/),end:a.string().regex(/^\d{2}:\d{2}$/)}).optional()}),G=a.object({title:a.string(),responsibilities:a.array(a.string()).default([]),sopPath:a.string().optional(),kpis:a.array(a.string()).default([])}),Z=a.object({role:a.string(),reportsTo:a.string().optional(),schedule:q,utilizationTarget:a.number().min(0).max(1).default(.8)}),K=a.object({channel:a.string(),chatId:a.string(),accountId:a.string().optional()}),F=a.discriminatedUnion("type",[a.object({type:a.literal("backlog"),path:a.string().default(".agentx/backlog.md")}),a.object({type:a.literal("gitlab"),projects:a.array(a.string()).default([])}),a.object({type:a.literal("wiki"),path:a.string(),glob:a.string().default("**/*.md")})]),V=a.object({id:a.string(),pm:a.string().optional(),client:a.string().optional()}),Y=a.object({channel:a.string().optional(),chatId:a.string().optional(),username:a.string().optional(),senderId:a.string().optional(),client:a.string(),project:a.string().optional(),displayName:a.string().optional()}),J=a.object({name:a.string().optional(),kind:a.enum(["client","internal","own"]).optional(),respondWithin:a.string().optional(),standing:a.array(a.string()).default([])}),S=a.object({enabled:a.boolean().default(!1),timezone:a.string().default("UTC"),mainChannel:K,workSource:F,roles:a.record(a.string(),G).default({}),orgChart:a.record(a.string(),Z).default({}),projects:a.array(V).default([]),contactMap:a.array(Y).default([]),clients:a.record(a.string(),J).default({}),workTickMinutes:a.number().int().min(1).max(60).default(15),idleQueueThreshold:a.number().int().min(0).default(0),standup:a.object({enabled:a.boolean().default(!0),plansDir:a.string().default(".agentx/plans"),maxAgentsPerDay:a.number().int().min(1).max(100).default(20),dryRun:a.boolean().default(!1)}).default({})})});import{z as l}from"zod";function ot(t,n){let r=new Set(t.labels||[]);if(t.state==="closed"){let i=n.find(s=>s.kind==="closed");if(i)return i.id}for(let i of n)if(i.kind==="scoped-label"&&i.scopedLabel&&r.has(i.scopedLabel))return i.id;for(let i of n)if(i.kind==="label"&&i.mapsToLabel&&r.has(i.mapsToLabel))return i.id;let o=n.find(i=>i.kind==="open-backlog");if(o){let i=o.scopedPrefix+"::";return[...r].some(d=>d.startsWith(i))?null:o.id}return n[0]?.id??null}function at(t,n){let r=[],o=[],i=!1,s=!1;return n.kind==="scoped-label"&&n.scopedLabel?r.push(n.scopedLabel):n.kind==="label"&&n.mapsToLabel?r.push(n.mapsToLabel):n.kind==="closed"&&(i=!0),t&&(t.kind==="scoped-label"&&t.scopedLabel?o.push(t.scopedLabel):t.kind==="label"&&t.mapsToLabel?o.push(t.mapsToLabel):t.kind==="closed"&&n.kind!=="closed"&&(s=!0)),{addLabels:r.length?r:void 0,removeLabels:o.length?o:void 0,closeIssue:i||void 0,reopen:s||void 0}}var X,Q,ee,te,ne,oe,v,ae,k,j=m(()=>{"use strict";X=l.object({name:l.string(),color:l.string().regex(/^#[0-9a-f]{6}$/i).default("#6366f1"),description:l.string().optional()}),Q=l.object({id:l.string().regex(/^[a-z0-9_-]+$/,"column id must be lowercase slug"),title:l.string(),kind:l.enum(["open-backlog","scoped-label","closed","label"]).default("label"),mapsToLabel:l.string().optional(),scopedLabel:l.string().optional(),scopedPrefix:l.string().default("Status"),accent:l.string().optional()}),ee=l.object({enabled:l.boolean().default(!0),staleDoingMinutes:l.number().int().min(1).default(45),respectLunchBreak:l.boolean().default(!0),respectSchedule:l.boolean().default(!0),action:l.enum(["badge","notify"]).default("badge")}),te=l.discriminatedUnion("type",[l.object({type:l.literal("gitlab"),projects:l.array(l.string()).min(1)})]),ne=[{id:"open",title:"Open",kind:"open-backlog",scopedPrefix:"Status",accent:"#6b7280"},{id:"todo",title:"To Do",kind:"scoped-label",scopedLabel:"Status::To Do",scopedPrefix:"Status",accent:"#fb7a35"},{id:"doing",title:"Doing",kind:"scoped-label",scopedLabel:"Status::Doing",scopedPrefix:"Status",accent:"#22c55e"},{id:"onhold",title:"On Hold",kind:"scoped-label",scopedLabel:"Status::On Hold",scopedPrefix:"Status",accent:"#f59e0b"},{id:"review",title:"Review",kind:"scoped-label",scopedLabel:"Status::Review",scopedPrefix:"Status",accent:"#3b82f6"},{id:"closed",title:"Closed",kind:"closed",scopedPrefix:"Status",accent:"#6b7280"}],oe=l.object({id:l.string().regex(/^[a-z0-9_-]+$/,"board id must be lowercase slug"),name:l.string(),source:te,primaryToolLabel:l.string().optional(),labels:l.array(X).default([]),columns:l.array(Q).min(1).default(ne),timeRangeDays:l.number().int().min(1).max(365).default(30),closedWindowDays:l.number().int().min(1).max(365).default(30),reconciliation:ee.default({})}),v=l.array(oe).default([]),ae=l.object({name:l.string(),url:l.string(),dashboardUrl:l.string().optional(),token:l.string().optional(),dashboardToken:l.string().optional()}),k=l.object({enabled:l.boolean().default(!1),port:l.number().int().default(4202),bind:l.string().default("127.0.0.1"),token:l.string().optional(),daemonUrl:l.string().default("http://localhost:18800"),daemons:l.array(ae).default([]),draftAgent:l.string().optional()}).default({})});import{z as re}from"zod";function st(t){return t==="report"||t==="propose"}function le(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).filter(Boolean).map(n=>n.toLowerCase())}function y(t){return le(t).slice(2).join(" ").replace(/\b(merge|pull)\s+requests?\b/g,"mergerequest").split(" ").filter(Boolean)}function C(t){let n=t.replace(/<<-?\s*(['"]?)([A-Za-z_][A-Za-z0-9_]*)\1([\s\S]*?)^\s*\2\s*$/gm,(i,s,d,u)=>!s&&/\$\(|`/.test(u)?i:i.split(`
|
|
2
|
-
`)[0]+`
|
|
3
|
-
`),r="",o=0;for(;o<n.length;){let i=n[o];if(i==="\\"){r+=n.slice(o,o+2),o+=2;continue}if(i==="'"){let s=n.indexOf("'",o+1);if(s<0)return null;r+="''",o=s+1;continue}if(i==='"'){let s=o+1;for(;s<n.length&&n[s]!=='"';)s+=n[s]==="\\"?2:1;if(s>=n.length)return null;let d=n.slice(o+1,s);r+=/\$\(|`/.test(d)?` ${d} `:'""',o=s+1;continue}r+=i,o++}return r}function _(t){return t.split(/\|\||&&|[;|&\n`()]|\$\(|<\(|>\(/).map(n=>n.trim().split(/\s+/).filter(Boolean)).filter(n=>n.length>0)}function R(t){let n=0;for(;n<t.length;){let r=t[n];if(ce.has(r))return[];if(ue.has(r)||/^[A-Za-z_][A-Za-z0-9_]*=/.test(r)){n++;continue}break}return t.slice(n)}function D(t){let n=0;for(;n<t.length&&t[n].startsWith("-");)n+=/^-(C|c)$|^--(git-dir|work-tree|namespace)$/.test(t[n])?2:1;return{sub:t[n],rest:t.slice(n+1)}}function ge(t){let[n,...r]=t,o=n.replace(/^.*\//,"");if(!pe.has(o))return`\`${o}\` is not a read-only command`;let i=s=>r.some(d=>s.test(d));switch(o){case"find":return i(/^-(exec|execdir|ok|okdir|delete|fprint|fprint0|fprintf|fls)$/)?"find with -exec/-delete":null;case"sort":return i(/^(-o|--output)/)?"sort -o writes a file":null;case"git":{if(i(/^(-c|--exec-path|--output)/))return"git option that can execute or write";let{sub:s,rest:d}=D(r);return!s||!fe.has(s)?`git ${s??""} is not read-only`.trim():s==="branch"&&d.some(u=>/^-(d|D|m|M|c|C|f|u)$|^--(delete|move|copy|force|set-upstream|unset-upstream|edit-description)/.test(u)||!u.startsWith("-"))?"git branch that changes branches":s==="tag"&&d.some(u=>!/^(-l|--list|-n\d*|--contains|--points-at|--sort=.*|--merged|--no-merged)$/.test(u))?"git tag that creates or deletes tags":s==="remote"&&d.length>0&&!/^(-v|--verbose|show|get-url)$/.test(d[0])?"git remote that changes remotes":s==="config"&&!d.some(u=>/^(--get|--get-all|--get-regexp|--list|-l)$/.test(u))?"git config write":s==="reflog"&&d.length>0&&!/^(show|-)/.test(d[0])?"git reflog that expires or deletes":null}case"gh":case"glab":{let[s,d]=r.filter(u=>!u.startsWith("-"));if(s==="search")return null;if(s==="api"){let u=r.findIndex(p=>/^(-X|--method)$/.test(p));return u>=0&&!/^GET$/i.test(r[u+1]??"")?`${o} api with a non-GET method`:i(/^-X(?!GET$)\w+|^--method=(?!GET$)/i)?`${o} api with a non-GET method`:i(/^(-f|-F|--field|--raw-field|--input)/)?`${o} api with a request body`:null}return!d||!me.has(d)?`${o} ${s??""} ${d??""} is not read-only`.replace(/\s+/g," ").trim():null}case"curl":{let s=r.findIndex(d=>/^(-X|--request)$/.test(d));return s>=0&&!/^(GET|HEAD|OPTIONS)$/i.test(r[s+1]??"")||i(/^-X(?!GET$|HEAD$)\w+|^--request=(?!GET$|HEAD$)/i)?"curl with a non-GET method":i(/^(-d|--data|--data-\w+|--json|-F|--form|-T|--upload-file|-o|--output|-O|--remote-name|-K|--config)/)?"curl that sends a body or writes a file":null}default:return null}}function be(t){let n=t.replace(/\d*>>?\s*\/dev\/null/g," ").replace(/&>>?\s*\/dev\/null/g," ").replace(/\d*>&\s*\d+/g," ");return/[>]/.test(n)}function he(t){let n=C(t);if(n===null)return c("report","shell","command too irregular to verify as read-only");if(be(n))return c("report","shell","output redirection writes a file");for(let r of _(n)){let o=R(r);if(o.length===0)continue;let i=ge(o);if(i)return c("report","shell",i)}return f}function ye(t){if(ie.has(t.tool))return c("report","write",`${t.tool} modifies files`);if(t.tool==="Bash")return he(t.command??"");if(se.has(t.tool))return f;if(t.tool.startsWith("mcp__")){let n=y(t.tool),r=n.find(o=>de.has(o));return r?c("report","outward",`tool "${t.tool}" can change state (${r})`):n.some(o=>T.has(o))?f:c("report","outward",`tool "${t.tool}" is not recognisably read-only`)}return c("report","tool",`tool "${t.tool}" is not on the read-only list`)}function ke(t){let n=[];for(let o=0;o<t.length;o++){let i=t[o];if(ve.test(i)){o++;continue}if(/^(--force.*|-d|--delete|--mirror|--all|--tags|--prune)$/.test(i)||/^-[a-zA-Z]*f/.test(i))return c("propose","push","force, delete, mirror and tag pushes are act-level actions");i.startsWith("-")||n.push(i)}let r=n.slice(1);if(r.length===0)return c("propose","push","name the feature branch explicitly: git push <remote> <branch>");for(let o of r){if(o.startsWith("+")||o.startsWith(":"))return c("propose","push",`refspec "${o}" force-pushes or deletes`);let i=(o.includes(":")?o.slice(o.indexOf(":")+1):o).replace(/^refs\/heads\//,"");if(we.test(i))return c("propose","push",`pushing to "${i}" is an act-level action; push a feature branch and open a merge request`)}return null}function je(t){for(let r of xe)if(r.re.test(t))return c("propose",r.id,r.reason);let n=C(t);if(n===null)return c("propose","shell","command too irregular to verify");for(let r of _(n)){let o=R(r);if(o.length===0)continue;let i=[A(o[0]),...o.slice(1)].join(" ");for(let s of Se)if(s.re.test(i))return c("propose",s.id,s.reason);if(A(o[0])==="git"){let{sub:s,rest:d}=D(o.slice(1));if(s==="push"){let u=ke(d);if(u)return u}}}return f}function Ae(t){if(t.tool==="Bash")return je(t.command??"");if(t.tool.startsWith("mcp__")){let n=y(t.tool).find(r=>E.has(r));if(n)return c("propose","outward",`tool "${t.tool}" performs an act-level action (${n})`);if($e(y(t.tool)))return c("propose","delegate",`tool "${t.tool}" hands work to another agent, which would run at its own full autonomy`)}return f}function $e(t){return t.includes("delegate")||t.includes("handoff")||t.includes("agent")&&t.some(n=>n==="send"||n==="ask"||n==="message"||n==="task")?!0:t.includes("task")&&!t.some(n=>T.has(n))}function lt(t,n){return t==="report"?ye(n):t==="propose"?Ae(n):f}function dt(t){return t==="report"?"[Autonomy: report] This routine runs read-only. Investigate and report; do not modify files, run mutating commands, or post anywhere. Your final answer is the deliverable. Blocked actions are enforced and logged; if something needs doing, describe it in the report instead.":t==="propose"?"[Autonomy: propose] You may edit files, commit, push a named feature branch, and open a merge request or draft. You may not merge, deploy, delete, force-push, push to protected branches, or operate hosts. These limits are enforced and logged; leave act-level steps as clear recommendations.":""}var $,f,c,ie,se,T,E,de,ue,ce,A,pe,fe,me,xe,Se,we,ve,I=m(()=>{"use strict";$=re.enum(["report","propose","act"]);f={allowed:!0,ruleId:null,reason:null},c=(t,n,r)=>({allowed:!1,ruleId:`autonomy.${t}.${n}`,reason:r}),ie=new Set(["Write","Edit","MultiEdit","NotebookEdit"]),se=new Set(["Read","Glob","Grep","LS","NotebookRead","WebFetch","WebSearch","TodoWrite","TodoRead","Task","Agent","Skill","ToolSearch","BashOutput","KillShell","ExitPlanMode","EnterPlanMode","ListMcpResourcesTool","ReadMcpResourceTool"]);T=new Set(["get","list","search","read","view","fetch","query","find","show","describe","status","diff","inspect","lookup","count","stats","browse","whoami","download"]),E=new Set(["merge","delete","remove","destroy","drop","deploy","publish","release","approve","archive","revoke","purge","close","transfer","force","rollback","restart","erase","unprotect","truncate","wipe","kill","terminate","unpublish","promote"]),de=new Set([...E,"create","update","post","send","write","edit","add","set","comment","reply","push","run","execute","exec","trigger","upload","move","rename","cancel","retry","assign","label","react","invite","notify","schedule","start","stop","submit","save","patch","put","insert","upsert","apply","install","import","mark","toggle","enable","disable","open","commit","sync","reset","store","remember","forget","broadcast","message","call","dispatch","enqueue","resolve","unassign","lock","unlock","pin"]);ue=new Set(["then","do","else","elif","if","while","until","!","{","}","time"]),ce=new Set(["done","fi","esac","for","case","select","in",";;"]);A=t=>t.replace(/^.*\//,""),pe=new Set(["ls","pwd","cd","cat","head","tail","wc","grep","egrep","fgrep","rg","fd","tree","stat","file","du","df","date","whoami","id","hostname","uname","which","type","sort","uniq","cut","tr","diff","cmp","comm","basename","dirname","realpath","readlink","jq","column","nl","seq","true","false","test","[","sleep","ps","uptime","echo","printf","base64","md5","md5sum","shasum","sha256sum","less","more","printenv","dig","nslookup","host","find","git","gh","glab","curl"]),fe=new Set(["status","log","diff","show","rev-parse","ls-files","ls-tree","blame","shortlog","describe","cat-file","grep","branch","tag","remote","config","reflog","rev-list","merge-base","name-rev","show-ref","for-each-ref","whatchanged"]),me=new Set(["view","list","diff","status","checks","ls"]);xe=[{id:"merge",re:/merge_when_pipeline_succeeds|\bauto[_-]merge\b/i,reason:"auto-merging is an act-level action"},{id:"merge",re:/\b(curl|wget|http|gh\s+api|glab\s+api)\b[^\n]*\/merges?\b/i,reason:"calling a merge endpoint is an act-level action"},{id:"delete",re:/(?:^|\W)(drop|truncate)\s+(table|database|schema|index|collection)\b|(?:^|\W)delete\s+from\b|\bflushall\b|\bflushdb\b/i,reason:"destroying data is an act-level action"},{id:"delete",re:/(-X|--request)[\s=]*['"]?DELETE\b/i,reason:"HTTP DELETE is an act-level action"},{id:"delegate",re:/\b(curl|wget|http)\b[^\n]*(localhost|127\.0\.0\.1|\[::1\])[^\n]*\/(ask|task|send|chat|mesh|workflows?|crons?|reload|config)\b/i,reason:"calling the local daemon to dispatch work escapes this routine's limit"}],Se=[{id:"merge",re:/^(gh\s+pr\s+merge|glab\s+mr\s+merge)\b/i,reason:"merging is an act-level action"},{id:"delete",re:/^rm\s+(.*\s)?(-\w*[rR]\w*|--recursive)\b|^(shred|dropdb)\b|^find\b.*\s-delete\b/i,reason:"deleting is an act-level action"},{id:"delete",re:/^git\s+(clean\s+-\w*f|reset\s+--hard|branch\s+(-\w*[dD]\w*|--delete)|tag\s+(-d|--delete)|stash\s+(drop|clear)|remote\s+(remove|rm))\b/i,reason:"deleting is an act-level action"},{id:"delete",re:/^(gh|glab)\s+\S+\s+delete\b|^docker\s+(rm|rmi|volume\s+rm|system\s+prune)\b|^(kubectl\s+delete|aws\s+s3\s+(rm|rb)|gsutil\s+rm)\b|^doctl\s+.*\sdelete\b/i,reason:"deleting is an act-level action"},{id:"deploy",re:/^(kubectl\s+(apply|rollout|scale|set|patch|replace|create|edit)|helm\s+(install|upgrade|rollback|uninstall|delete)|terraform\s+(apply|destroy|import|taint)|pulumi\s+(up|destroy)|docker\s+push|netlify\s+deploy|fly(ctl)?\s+deploy|serverless\s+deploy|vercel\b.*--prod)\b/i,reason:"deploying is an act-level action"},{id:"deploy",re:/^((npm|pnpm|yarn|bun)(\s+run)?|make|just|task|rake)\s+(\S+:)?deploy\b|^((ba|z)?sh|node|python3?)\s+\S*deploy[^\s/]*$|^\S*\/deploy(\.\w+)?\b|^deploy(\.\w+)?\b/i,reason:"deploying is an act-level action"},{id:"deploy",re:/^((npm|pnpm|yarn|bun)\s+publish|cargo\s+publish|twine\s+upload|(gh|glab)\s+release\s+(create|upload|edit)|(npx\s+)?prisma\s+(migrate\s+(deploy|reset)|db\s+push))\b/i,reason:"publishing or migrating is an act-level action"},{id:"prod",re:/^(ssh|scp|sudo|doas|systemctl|launchctl|service|kill|pkill|killall|reboot|shutdown)\b|^rsync\b.*\s\S+:\S*/i,reason:"operating hosts and services is an act-level action"},{id:"delegate",re:/^(agentx|agentix)\s+(ask|send|task|exec|run|chat|mesh|cron|workflow|daemon|config)\b/i,reason:"handing work to another agent or reconfiguring the daemon escapes this routine's limit"}],we=/^(main|master|trunk|develop|development|prod|production|staging|stable|release([/-].*)?|HEAD|@)$/i,ve=/^(-o|--push-option|--repo|--receive-pack|--exec)$/});var Xe={};H(Xe,{INTEGRATION_KINDS:()=>Le,approvalsConfigSchema:()=>B,daemonConfigSchema:()=>W,eventSubscriptionSchema:()=>O,expandEnvVars:()=>h,loadDaemonConfig:()=>Ye,validateWorkspaces:()=>Je});import{z as e}from"zod";import{readFileSync as L,existsSync as g}from"fs";import{resolve as b}from"path";function Te(t){let n=b(t,".env");if(!g(n))return;let r=L(n,"utf-8");for(let o of r.split(`
|
|
4
|
-
`)){let i=o.trim();if(!i||i.startsWith("#"))continue;let s=i.indexOf("=");if(s===-1)continue;let d=i.slice(0,s).trim(),u=i.slice(s+1).trim();process.env[d]||(process.env[d]=u)}}function h(t){if(typeof t=="string")return t.replace(/\$\{(\w+)\}/g,(n,r)=>process.env[r]||"");if(Array.isArray(t))return t.map(h);if(t!==null&&typeof t=="object"){let n={};for(let[r,o]of Object.entries(t))n[r]=h(o);return n}return t}function Ve(t,n){let r=[],o=new Set;for(let i of t){let s=i.path.join("."),d=/^channels\.telegram\.accounts\.([^.]+)\.token$/.exec(s);if(d&&i.message.toLowerCase().includes("required")){let u=d[1],p=`tg:${u}`;if(o.has(p))continue;o.add(p),r.push(`Hint: Telegram account "${u}" is enabled but has no bot token.
|
|
5
|
-
Either:
|
|
6
|
-
A) Open ${n} and set channels.telegram.accounts.${u}.token to your bot token (or "\${TG_${u.toUpperCase()}_BOT_TOKEN}" + the matching .env entry).
|
|
7
|
-
B) If you don't need Telegram on this instance, remove the entire "telegram" block under "channels" (or set channels.telegram.enabled to false AND drop accounts.${u}).`)}}return r}function Ye(t){let n=t?[t]:[b(process.cwd(),"agentx.json"),b(process.cwd(),".agentx/config.json")];Te(process.cwd());let r,o;for(let u of n)if(g(u)){r=L(u,"utf-8"),o=u;break}if(!r||!o)throw new Error(`No config found. Create agentx.json or .agentx/config.json
|
|
8
|
-
Searched: ${n.join(", ")}`);let i;try{i=JSON.parse(r)}catch(u){throw new Error(`Invalid JSON in ${o}: ${u.message}`)}let s=h(i),d=W.safeParse(s);if(!d.success){let u=d.error.issues.map(x=>` ${x.path.join(".")}: ${x.message}`).join(`
|
|
9
|
-
`),p=Ve(d.error.issues,o),U=p.length?`
|
|
10
|
-
|
|
11
|
-
${p.join(`
|
|
12
|
-
|
|
13
|
-
`)}`:"";throw new Error(`Config validation failed (${o}):
|
|
14
|
-
${u}${U}`)}return d.data}function Je(t){let n=[];for(let[r,o]of Object.entries(t.agents)){if(!g(o.workspace)){n.push(`Agent "${r}": workspace not found at ${o.workspace}`);continue}if(o.tier==="claude-code"){let d=b(o.workspace,".claude");g(d)||n.push(`Agent "${r}": no .claude/ directory in workspace ${o.workspace}. Claude Code native features (hooks, MCP, skills) won't be available.`)}let i=o.provider||"claude",s=t.providers[i];!["claude-code","codex-cli","opencode"].includes(o.tier)&&(!s||!s.apiKey)&&n.push(`Agent "${r}": provider "${i}" has no API key configured. Set providers.${i}.apiKey in config or use a CLI-backed tier ("claude-code", "codex-cli", or "opencode").`)}for(let[r,o]of Object.entries(t.crons))t.agents[o.agent]||n.push(`Cron "${r}": references unknown agent "${o.agent}"`);if(t.channels.telegram.enabled)for(let[r,o]of Object.entries(t.channels.telegram.accounts))t.agents[o.agentBinding]||n.push(`Telegram account "${r}": references unknown agent "${o.agentBinding}"`);return n}var Ee,Ce,_e,Re,De,Ie,Le,P,z,M,O,Pe,ze,Me,Oe,Be,We,Ue,He,Ne,qe,Ge,Ze,Ke,Fe,B,W,Qe=m(()=>{w();j();I();Ee=e.object({apiKey:e.string().optional(),defaultModel:e.string().optional(),baseUrl:e.string().optional(),thinking:e.boolean().optional()}),Ce=e.object({type:e.literal("stdio").optional(),command:e.string(),args:e.array(e.string()).default([]),env:e.record(e.string(),e.string()).optional()}),_e=e.object({type:e.literal("http"),url:e.string().url(),headers:e.record(e.string(),e.string()).optional()}),Re=e.union([_e,Ce]),De=e.object({tokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),privateAppTokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),apiKeyEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),refreshTokenEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),clientIdEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),clientSecretEnv:e.string().regex(/^[A-Z][A-Z0-9_]*$/).optional(),auth:e.literal("keyring").optional(),sessionDir:e.string().optional()}).strict(),Ie=e.object({kind:e.string().min(1),label:e.string().min(1),credentials:De.default({}),metadata:e.record(e.string(),e.union([e.string(),e.number(),e.boolean()])).default({}),enabled:e.boolean().default(!0)}),Le=["telegram-bot","whatsapp","gitlab-user","github-user","gmail","hotmail","smtp","hubspot","salesforce","pipedrive","odoo","trello","linear","asana","jira","notion","stripe","sentry","vercel","twilio","custom"],P=e.enum(["system","elevenlabs"]),z=e.union([e.string(),e.record(e.string(),e.string())]),M=e.object({provider:P.optional(),system:z.optional(),elevenlabsVoiceId:e.string().optional(),gender:e.enum(["female","male","neutral"]).optional(),style:e.string().optional(),intro:e.string().optional(),narrate:e.enum(["off","on","all"]).optional()}),O=e.object({kinds:e.array(e.string().min(1)).min(1),agents:e.array(e.string().min(1)).optional(),nodes:e.array(e.string().min(1)).optional(),match:e.string().min(1).optional(),delivery:e.enum(["pull","digest","wake"]).default("pull"),maxPerHour:e.number().int().min(1).max(60).default(4)}),Pe=e.object({name:e.string(),workspace:e.string(),tier:e.enum(["claude-code","codex-cli","opencode","sdk","orchestrator"]).default("claude-code"),provider:e.string().optional(),model:e.string().optional(),systemPrompt:e.string().optional(),mentions:e.array(e.string()).default([]),intents:e.array(e.string()).default([]),maxDelegationDepth:e.number().int().min(0).max(50).default(5),mcp:e.record(e.string(),Re).optional(),codegraph:e.boolean().default(!1),contextStrategy:e.enum(["layered","planner"]).optional(),contextReferences:e.boolean().default(!1),richMessages:e.boolean().default(!0),maxConcurrent:e.number().default(1),maxExecutionMinutes:e.number().int().min(1).max(240).default(20),preSpawnTimeoutSec:e.number().int().min(10).max(3600).default(300),permissionMode:e.string().default("default"),billing:e.enum(["subscription","api"]).default("subscription"),toolUseRequired:e.array(e.string()).default([]),gitlabAutoReply:e.boolean().optional(),persistentProcess:e.boolean().default(!1),queueMode:e.enum(["collect","followup","drop"]).default("collect"),heartbeat:e.object({enabled:e.boolean().default(!1),intervalMinutes:e.number().default(30),prompt:e.string().default("Check inbox, pending tasks, and system health. Report anything that needs attention."),channel:e.string().default("heartbeat")}).default({}),access:e.enum(["private","public"]).default("private"),admin:e.boolean().optional(),subscriptions:e.array(O).default([]),integrations:e.array(Ie).default([]),voice:M.optional(),presence:e.object({color:e.string().regex(/^#[0-9a-fA-F]{6}$/).optional(),initial:e.string().max(2).optional(),label:e.string().optional(),allowActions:e.boolean().optional()}).optional()}),ze=e.object({token:e.string(),agentBinding:e.string(),allowFrom:e.array(e.string()).optional(),pollInbound:e.boolean().default(!0)}),Me=e.object({telegram:e.object({enabled:e.boolean().default(!1),accounts:e.record(e.string(),ze).default({}),policy:e.object({dm:e.enum(["pair","block"]).default("pair"),group:e.enum(["mention-required","all"]).default("mention-required"),allowFrom:e.array(e.string()).optional()}).default({})}).default({}),whatsapp:e.object({enabled:e.boolean().default(!1),sessionDir:e.string().default(".agentx/whatsapp-sessions"),defaultAgent:e.string().optional(),allowFrom:e.array(e.string()).optional(),routes:e.array(e.object({contact:e.string().optional(),group:e.string().optional(),agent:e.string()})).default([]),ingest:e.object({enabled:e.boolean().default(!1),mode:e.enum(["metadata-only","messages"]).default("metadata-only"),allowContacts:e.array(e.string()).default([]),allowGroups:e.array(e.string()).default([]),denyContacts:e.array(e.string()).default([]),denyGroups:e.array(e.string()).default([]),messageCap:e.number().int().min(1).max(500).default(50),historyDays:e.number().int().min(1).max(365).default(30),contactRefreshDays:e.number().int().min(1).max(90).default(7),throttle:e.object({minMsBetweenCalls:e.number().int().min(100).default(1500),maxCallsPerMinute:e.number().int().min(1).default(20),maxChatsPerSweep:e.number().int().min(1).default(25)}).default({}),retentionDays:e.number().int().min(0).default(0)}).default({})}).default({}),gitlab:e.object({enabled:e.boolean().default(!1),webhookPort:e.number().default(18810),webhookSecret:e.string().optional(),host:e.string().default("https://gitlab.com"),token:e.string().optional(),autoReplyLegacy:e.boolean().default(!0),routes:e.array(e.object({project:e.string(),agent:e.string()})).default([]),agentMappings:e.array(e.object({agentId:e.string(),gitlabUsernames:e.array(e.string()).default([]),keywords:e.array(e.string()).default([]),token:e.string().optional(),node:e.string().optional()})).default([]),agentUsernamePrefixes:e.array(e.string().min(1)).default([])}).default({}),github:e.object({enabled:e.boolean().default(!1),autoReplyLegacy:e.boolean().default(!0),token:e.string().optional(),tokenFile:e.string().optional(),appId:e.number().optional(),clientId:e.string().optional(),privateKeyFile:e.string().optional(),webhookSecret:e.string().optional(),routes:e.array(e.object({repo:e.string(),agent:e.string()})).default([]),agentMappings:e.array(e.object({agentId:e.string(),githubUsernames:e.array(e.string()).default([]),token:e.string().optional(),tokenFile:e.string().optional(),node:e.string().optional()})).default([])}).default({}),ntfy:e.object({enabled:e.boolean().default(!1),server:e.string().default("https://ntfy.sh"),topic:e.string().optional(),token:e.string().optional(),defaultPriority:e.number().int().min(1).max(5).default(3),defaultTitle:e.string().optional()}).default({}),push:e.object({enabled:e.boolean().default(!1),keysFile:e.string().default(".agentx/push-keys.json"),subject:e.string().regex(/^(mailto:|https:\/\/)/,"must start with mailto: or https://").optional(),relayTo:e.string().optional(),ttlSeconds:e.number().int().min(0).max(2419200).default(86400),keepRecent:e.number().int().min(0).max(1e3).default(50),allowedHosts:e.array(e.string().min(1)).default(["fcm.googleapis.com","push.services.mozilla.com","push.apple.com","notify.windows.com"])}).default({}),webrtc:e.object({enabled:e.boolean().default(!1),stunServers:e.array(e.string()).default(["stun:stun.l.google.com:19302"]),turnServers:e.array(e.object({urls:e.string(),username:e.string().optional(),credential:e.string().optional()})).default([]),allowedCallers:e.array(e.string()).default([]),ringNotify:e.array(e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()})).default([]),callUrlBase:e.string().optional(),bot:e.object({enabled:e.boolean().default(!1),defaultAgentId:e.string().optional(),whisperBackend:e.enum(["auto","mlx","openai"]).default("auto"),whisperModel:e.string().optional(),whisperLanguage:e.string().default("auto"),mlxBinary:e.string().optional(),transcriptChannel:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),maxCallMinutes:e.number().int().min(1).max(240).default(30)}).default({})}).default({})}),Oe=e.object({enabled:e.boolean().default(!0),schedule:e.string(),timezone:e.string().default("UTC"),agent:e.string(),prompt:e.string().default(""),command:e.string().optional(),timeout:e.number().default(600),model:e.string().optional(),maxOutputTokens:e.number().int().min(50).max(8e3).optional(),autonomy:$.optional(),onError:e.union([e.enum(["log","notify","disable"]),e.array(e.enum(["log","notify","disable"]))]).default("log").transform(t=>Array.isArray(t)?t:[t]),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),fireToken:e.string().optional(),createdBy:e.string().optional(),approval:e.object({action:e.enum(["create","delete"]),requestedBy:e.string(),requestedAt:e.string()}).optional()}).refine(t=>!!(t.command?.trim()||t.prompt?.trim()),{message:"a cron needs either a prompt (dispatch an agent) or a command (run it directly)"}).refine(t=>!(t.command?.trim()&&t.autonomy&&t.autonomy!=="act"),{message:"autonomy applies to agent routines; a command cron runs no agent (remove autonomy or the command)"}),Be=e.object({name:e.string(),triggers:e.array(e.object({pattern:e.string(),channel:e.string().optional()})),allowedContacts:e.array(e.string()).optional(),agent:e.string(),prompt:e.string(),schedule:e.string().optional(),timezone:e.string().default("UTC"),notify:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}),We=e.object({url:e.string(),name:e.string(),token:e.string().optional()}),Ue=e.object({name:e.string(),agent:e.string(),enabled:e.boolean().default(!0)}),He=e.object({enabled:e.boolean().default(!1),peers:e.array(We).default([]),inboxes:e.array(Ue).default([]),discovery:e.enum(["static","mdns"]).default("static"),healthCheck:e.object({interval:e.number().default(60),timeout:e.number().default(10)}).default({}),feed:e.object({enabled:e.boolean().default(!0),skipTypes:e.array(e.string().min(1)).default(["task:step"])}).default({})}),Ne=e.object({enabled:e.boolean().default(!1),baseDir:e.string().default(".agentx/graph"),draftAgent:e.string().optional(),reviewAgent:e.string().optional(),autoApproveStructure:e.enum(["strict","extend-leaves","any"]).default("extend-leaves"),autoApproveConfidence:e.number().min(0).max(1).default(1),classifierModel:e.string().default("claude-haiku-4-5-20251001"),retrievalWeights:e.object({graph:e.number().min(0).default(.6),bm25:e.number().min(0).default(.4)}).default({})}).default({}),qe=e.object({mode:e.enum(["off","shadow","active"]).default("off"),backend:e.string().optional(),model:e.string().optional(),timeoutMs:e.number().int().min(100).default(1e4),temperature:e.number().min(.01).default(1),explore:e.number().min(0).max(1).default(.15),holdout:e.number().min(0).max(1).optional()}).default({}),Ge=e.object({enabled:e.boolean().default(!1),dbPath:e.string().default(".agentx/decisions/decisions.sqlite"),redactState:e.boolean().default(!1),keepStateRows:e.number().int().min(0).default(2e3),defaultBackend:e.string().default("local"),backends:e.object({local:e.object({provider:e.string().default("claude-code"),model:e.string().default("claude-haiku-4-5-20251001"),structureMode:e.enum(["auto","tool","text"]).default("auto"),normalizeProbabilities:e.boolean().default(!0),nRetryMalformedStructure:e.number().int().min(0).max(3).default(1),maxStateChars:e.number().int().min(500).default(24e3)}).default({}),simpleJev:e.object({baseUrl:e.string().default("http://127.0.0.1:8000/v1"),model:e.string().optional(),apiKeyEnv:e.string().optional(),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(6e3),maxChoiceOptions:e.number().int().min(2).max(255).default(50)}).default({}),jev:e.object({baseUrl:e.string().default("https://openrouter.ai/api/alpha"),path:e.string().default("/decisions"),model:e.string().default("jev-latest"),apiKeyEnv:e.string().default("OPENROUTER_API_KEY"),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(9e4),maxChoiceOptions:e.number().int().min(2).max(255).default(255)}).default({}),typesafe:e.object({baseUrl:e.string().default("https://api.typesafe.ai/v1"),path:e.string().default("/systemone"),model:e.string().default("jev-latest"),apiKeyEnv:e.string().default("TYPESAFE_API_KEY"),timeoutMs:e.number().int().min(100).default(3e4),maxStateChars:e.number().int().min(500).default(9e4),maxChoiceOptions:e.number().int().min(2).max(255).default(255)}).default({})}).default({}),seats:e.record(e.string(),qe).default({}),routing:e.object({cheapModel:e.string().optional(),cheapModels:e.object({"claude-code":e.string().optional(),"codex-cli":e.string().optional()}).optional()}).default({})}).default({}),Ze=e.object({longTaskThreshold:e.number().default(30),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional(),channel:e.string().optional(),on:e.object({taskComplete:e.boolean().default(!0),taskError:e.boolean().default(!0),taskQueued:e.boolean().default(!1)}).default({}),local:e.object({banner:e.boolean().default(!0),sound:e.boolean().default(!0),soundName:e.string().regex(/^[\w -]+$/).default("Glass"),volume:e.number().min(0).max(1).default(.4),icon:e.string().optional()}).default({})}).default({}),Ke=e.object({x:e.number(),y:e.number(),width:e.number().positive(),height:e.number().positive()}),Fe=e.object({maxPixels:e.number().int().positive().default(12e5),timeoutMs:e.number().int().positive().default(5e3),intervalMs:e.number().int().positive().default(100),changeThreshold:e.number().min(0).max(1).default(.015),stableMs:e.number().int().nonnegative().default(400),regions:e.record(e.string().regex(/^[a-z][\w-]*$/),Ke).default({}),buffer:e.object({enabled:e.boolean().default(!1),seconds:e.number().positive().max(120).default(10),fps:e.number().positive().max(10).default(2),region:e.string().default("screen"),maxPixels:e.number().int().positive().default(3e5)}).default({})}).default({}),B=e.object({defaultExpiryDays:e.number().positive().max(365).default(3),maxExpiryDays:e.number().positive().max(365).default(30),laterHours:e.number().positive().max(24*30).default(24),notifyAgent:e.boolean().default(!0),digest:e.object({enabled:e.boolean().default(!0),time:e.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"use HH:MM, 24-hour").default("09:00"),timezone:e.string().refine(t=>{try{return new Intl.DateTimeFormat("en-US",{timeZone:t}),!0}catch{return!1}},"unknown timezone").optional(),destination:e.object({channel:e.string(),chatId:e.string(),accountId:e.string().optional()}).optional()}).default({})}).default({}),W=e.object({node:e.object({id:e.string(),name:e.string(),bind:e.string().default("127.0.0.1:18800"),defaultAgent:e.string().optional()}),providers:e.record(e.string(),Ee).default({}),agents:e.record(e.string(),Pe).default({}),channels:Me.default({}),crons:e.record(e.string(),Oe).default({}),services:e.record(e.string(),Be).default({}),notifications:Ze,approvals:B,resume:e.object({enabled:e.boolean().default(!0),maxAgeMinutes:e.number().int().positive().default(30),maxAttempts:e.number().int().min(0).default(1),reportOnlyChannels:e.array(e.string()).default([]),directChannels:e.array(e.string()).default([]),crashLoop:e.object({restarts:e.number().int().positive().default(3),windowMinutes:e.number().positive().default(10)}).default({})}).default({}),reminders:e.object({enabled:e.boolean().default(!1),lists:e.array(e.string().min(1)).default(["AgentX"]),pollSeconds:e.number().int().min(15).default(60),lookbackHours:e.number().positive().default(24),command:e.string().min(1).default("remindctl")}).default({}),events:e.object({ringSize:e.number().int().min(1).max(1e5).default(1e3)}).default({}),screen:Fe,mesh:He.default({}),meshVoices:e.record(e.string(),M.extend({name:e.string().optional()})).default({}),voice:e.object({provider:P.default("system"),fallback:e.enum(["system","none"]).default("system"),system:z.optional(),locale:e.string().default("en"),listener:e.string().optional()}).default({}),business:S.optional(),boards:v,dashboard:k,graph:Ne,decisions:Ge,workflows:e.object({enabled:e.boolean().default(!1),dir:e.string().default(".agentx/workflows"),n8n:e.object({baseUrl:e.string().default(""),apiKey:e.string().default("")}).default({baseUrl:"",apiKey:""}),matching:e.object({enabled:e.boolean().default(!1),mode:e.enum(["suggest","auto"]).default("suggest"),autoRunThreshold:e.number().min(0).max(1).default(.85),suggestThreshold:e.number().min(0).max(1).default(.65)}).default({}),editor:e.enum(["disabled","readonly","edit"]).default("edit")}).default({}),procedures:e.object({enabled:e.boolean().default(!0),dir:e.string().default(".agentx/procedures"),extraction:e.object({enabled:e.boolean().default(!1),onTaskCompletion:e.boolean().default(!1),minOccurrences:e.number().int().min(2).default(3),sinceDays:e.number().int().min(1).default(7),maxClusters:e.number().int().min(1).default(5),via:e.string().optional()}).default({}),injection:e.object({enabled:e.boolean().default(!0),maxProcedures:e.number().int().min(1).default(2),minScore:e.number().min(0).max(1).default(.5)}).default({})}).default({}),webhooks:e.array(e.object({id:e.string().regex(/^[a-z0-9][a-z0-9_-]*$/,"webhook id must be lowercase slug"),source:e.string().min(1),agentId:e.string(),secretEnv:e.string().optional(),description:e.string().optional(),enabled:e.boolean().default(!0),node:e.string().optional(),triggers:e.record(e.string(),e.string()).optional(),defaultWorkflow:e.string().optional()})).default([]),session:e.object({staleMinutes:e.number().int().min(1).max(1440).default(720),maxTurnsPerSession:e.number().int().min(2).max(200).default(40),tierTwoThresholdTokens:e.number().int().min(5e4).max(2e5).default(18e4),contextStrategy:e.enum(["layered","planner"]).default("layered"),maxClaudeCodeDispatchesPerHour:e.number().int().min(1).max(1e4).default(80),maxClaudeCodeDispatchesPer5h:e.number().int().min(1).max(5e4).default(180),continuityStateTurns:e.number().int().min(0).max(5).default(0)}).default({}),plugins:e.array(e.string()).default([]),processPool:e.object({maxIdleSeconds:e.number().int().min(5).max(86400).default(30),maxAgeSeconds:e.number().int().min(60).max(86400).default(2700),sweepIntervalSeconds:e.number().int().min(1).max(300).default(5)}).default({})})});export{ot as a,at as b,j as c,$ as d,st as e,lt as f,dt as g,I as h,Le as i,O as j,B as k,W as l,h as m,Ye as n,Je as o,Xe as p,Qe as q};
|
|
15
|
-
//# sourceMappingURL=chunk-U4H35SJS.js.map
|