agentix-cli 0.74.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/{App-U2MOUDOM.js → App-N2ZWRJKV.js} +2 -2
  2. package/dist/{ChatApp-YY4RGZSI.js → ChatApp-PGQKQBHF.js} +2 -2
  3. package/dist/{agent-HEL3Y4NA.js → agent-UOOL6R4V.js} +2 -2
  4. package/dist/{board-dashboard-GNMELVCM.js → board-dashboard-CDBPGUU3.js} +436 -241
  5. package/dist/board-dashboard-CDBPGUU3.js.map +1 -0
  6. package/dist/{chunk-MMTP7WWU.js → chunk-5B5J3WVW.js} +2 -2
  7. package/dist/{chunk-ROKRMNVL.js → chunk-66VSATH3.js} +2 -2
  8. package/dist/{chunk-DEYXG7OA.js → chunk-6HPJKD3X.js} +2 -2
  9. package/dist/{chunk-RDEDIOAH.js → chunk-APYG4RB3.js} +2 -2
  10. package/dist/{chunk-W7XQCUDK.js → chunk-BAPRRPNU.js} +2 -2
  11. package/dist/{chunk-IEEKRDVW.js → chunk-CUXYJNWT.js} +2 -2
  12. package/dist/chunk-CXZ4YDHJ.js +15 -0
  13. package/dist/chunk-CXZ4YDHJ.js.map +1 -0
  14. package/dist/{chunk-2RGXCUE3.js → chunk-DIHLL45I.js} +5 -5
  15. package/dist/{chunk-HX4AF2N4.js → chunk-GZAGG3ES.js} +2 -2
  16. package/dist/{chunk-E343ELHB.js → chunk-IR2Q63IV.js} +2 -2
  17. package/dist/{chunk-3TQ2WONT.js → chunk-ISBM2C3D.js} +2 -2
  18. package/dist/{chunk-HGEZBEBI.js → chunk-JGEHN4VE.js} +2 -2
  19. package/dist/{chunk-X6MK5VK3.js → chunk-KEJOBB5E.js} +2 -2
  20. package/dist/{chunk-CVEL3UBP.js → chunk-L3MEAKL7.js} +2 -2
  21. package/dist/{chunk-6PUNM3Y7.js → chunk-LWPRFAQX.js} +218 -214
  22. package/dist/chunk-LWPRFAQX.js.map +1 -0
  23. package/dist/{chunk-TUPHLC77.js → chunk-OEUII2QP.js} +2 -2
  24. package/dist/{chunk-BOY572B3.js → chunk-PUU2ESI2.js} +2 -2
  25. package/dist/{chunk-HAUOH34T.js → chunk-S5JGQKON.js} +2 -2
  26. package/dist/{chunk-WIBDEAAB.js → chunk-SKIDVXWG.js} +3 -3
  27. package/dist/chunk-SKIDVXWG.js.map +1 -0
  28. package/dist/{chunk-S4NYBA3M.js → chunk-UBGQ7AOG.js} +2 -2
  29. package/dist/{chunk-JXBXIH23.js → chunk-WC4TPXD3.js} +2 -2
  30. package/dist/{chunk-22TKLH6A.js → chunk-YZVX4RDY.js} +173 -172
  31. package/dist/chunk-YZVX4RDY.js.map +1 -0
  32. package/dist/cli.js +1 -1
  33. package/dist/client-5DVNJ4VZ.js +2 -0
  34. package/dist/config-A23CU2XT.js +2 -0
  35. package/dist/config-mutator-WDZ6F6Q4.js +2 -0
  36. package/dist/doctor-MVV47YVK.js +2 -0
  37. package/dist/index.d.ts +84 -0
  38. package/dist/index.js +1 -1
  39. package/dist/program-EHCDAWI7.js +2 -0
  40. package/dist/{promote-I5QCWYXG.js → promote-KSYTHPYB.js} +2 -2
  41. package/dist/{query-WNOCMO46.js → query-GRLLX7RG.js} +2 -2
  42. package/dist/{registry-KXNT3HID.js → registry-WJRF3D5H.js} +2 -2
  43. package/dist/{request-planner-VAHGNG7U.js → request-planner-G2NJIXQY.js} +2 -2
  44. package/dist/{review-candidates-UQJ3IA2Z.js → review-candidates-F5QKVUQ4.js} +2 -2
  45. package/dist/{routing-AVMCSZXP.js → routing-XIDQWGKT.js} +2 -2
  46. package/dist/schedule-tool-4I3QUXJK.js +2 -0
  47. package/dist/scheduler-LJ32FB5N.js +2 -0
  48. package/dist/{seat-2GOJBTII.js → seat-DNI7G7B2.js} +2 -2
  49. package/dist/{select-GIDPNJAA.js → select-L45K2452.js} +2 -2
  50. package/dist/{set-enabled-QW33PWJV.js → set-enabled-QNSLVBGT.js} +2 -2
  51. package/dist/{tool-RXQ4F6HI.js → tool-544FGIJK.js} +2 -2
  52. package/dist/wiki-WWVSDXSX.js +2 -0
  53. package/package.json +1 -1
  54. package/dist/board-dashboard-GNMELVCM.js.map +0 -1
  55. package/dist/chunk-22TKLH6A.js.map +0 -1
  56. package/dist/chunk-6PUNM3Y7.js.map +0 -1
  57. package/dist/chunk-U7LOXDIP.js +0 -15
  58. package/dist/chunk-U7LOXDIP.js.map +0 -1
  59. package/dist/chunk-WIBDEAAB.js.map +0 -1
  60. package/dist/client-7SK3SEQV.js +0 -2
  61. package/dist/config-6UXC7MPC.js +0 -2
  62. package/dist/config-mutator-QNTAKNI7.js +0 -2
  63. package/dist/doctor-FNM7ZKP3.js +0 -2
  64. package/dist/program-3DYKSCIY.js +0 -2
  65. package/dist/schedule-tool-O47FNQ3A.js +0 -2
  66. package/dist/scheduler-DBAQHLHQ.js +0 -2
  67. package/dist/wiki-T22CW4EY.js +0 -2
  68. /package/dist/{App-U2MOUDOM.js.map → App-N2ZWRJKV.js.map} +0 -0
  69. /package/dist/{ChatApp-YY4RGZSI.js.map → ChatApp-PGQKQBHF.js.map} +0 -0
  70. /package/dist/{agent-HEL3Y4NA.js.map → agent-UOOL6R4V.js.map} +0 -0
  71. /package/dist/{chunk-MMTP7WWU.js.map → chunk-5B5J3WVW.js.map} +0 -0
  72. /package/dist/{chunk-ROKRMNVL.js.map → chunk-66VSATH3.js.map} +0 -0
  73. /package/dist/{chunk-DEYXG7OA.js.map → chunk-6HPJKD3X.js.map} +0 -0
  74. /package/dist/{chunk-RDEDIOAH.js.map → chunk-APYG4RB3.js.map} +0 -0
  75. /package/dist/{chunk-W7XQCUDK.js.map → chunk-BAPRRPNU.js.map} +0 -0
  76. /package/dist/{chunk-IEEKRDVW.js.map → chunk-CUXYJNWT.js.map} +0 -0
  77. /package/dist/{chunk-2RGXCUE3.js.map → chunk-DIHLL45I.js.map} +0 -0
  78. /package/dist/{chunk-HX4AF2N4.js.map → chunk-GZAGG3ES.js.map} +0 -0
  79. /package/dist/{chunk-E343ELHB.js.map → chunk-IR2Q63IV.js.map} +0 -0
  80. /package/dist/{chunk-3TQ2WONT.js.map → chunk-ISBM2C3D.js.map} +0 -0
  81. /package/dist/{chunk-HGEZBEBI.js.map → chunk-JGEHN4VE.js.map} +0 -0
  82. /package/dist/{chunk-X6MK5VK3.js.map → chunk-KEJOBB5E.js.map} +0 -0
  83. /package/dist/{chunk-CVEL3UBP.js.map → chunk-L3MEAKL7.js.map} +0 -0
  84. /package/dist/{chunk-TUPHLC77.js.map → chunk-OEUII2QP.js.map} +0 -0
  85. /package/dist/{chunk-BOY572B3.js.map → chunk-PUU2ESI2.js.map} +0 -0
  86. /package/dist/{chunk-HAUOH34T.js.map → chunk-S5JGQKON.js.map} +0 -0
  87. /package/dist/{chunk-S4NYBA3M.js.map → chunk-UBGQ7AOG.js.map} +0 -0
  88. /package/dist/{chunk-JXBXIH23.js.map → chunk-WC4TPXD3.js.map} +0 -0
  89. /package/dist/{client-7SK3SEQV.js.map → client-5DVNJ4VZ.js.map} +0 -0
  90. /package/dist/{config-6UXC7MPC.js.map → config-A23CU2XT.js.map} +0 -0
  91. /package/dist/{config-mutator-QNTAKNI7.js.map → config-mutator-WDZ6F6Q4.js.map} +0 -0
  92. /package/dist/{doctor-FNM7ZKP3.js.map → doctor-MVV47YVK.js.map} +0 -0
  93. /package/dist/{program-3DYKSCIY.js.map → program-EHCDAWI7.js.map} +0 -0
  94. /package/dist/{promote-I5QCWYXG.js.map → promote-KSYTHPYB.js.map} +0 -0
  95. /package/dist/{query-WNOCMO46.js.map → query-GRLLX7RG.js.map} +0 -0
  96. /package/dist/{registry-KXNT3HID.js.map → registry-WJRF3D5H.js.map} +0 -0
  97. /package/dist/{request-planner-VAHGNG7U.js.map → request-planner-G2NJIXQY.js.map} +0 -0
  98. /package/dist/{review-candidates-UQJ3IA2Z.js.map → review-candidates-F5QKVUQ4.js.map} +0 -0
  99. /package/dist/{routing-AVMCSZXP.js.map → routing-XIDQWGKT.js.map} +0 -0
  100. /package/dist/{schedule-tool-O47FNQ3A.js.map → schedule-tool-4I3QUXJK.js.map} +0 -0
  101. /package/dist/{scheduler-DBAQHLHQ.js.map → scheduler-LJ32FB5N.js.map} +0 -0
  102. /package/dist/{seat-2GOJBTII.js.map → seat-DNI7G7B2.js.map} +0 -0
  103. /package/dist/{select-GIDPNJAA.js.map → select-L45K2452.js.map} +0 -0
  104. /package/dist/{set-enabled-QW33PWJV.js.map → set-enabled-QNSLVBGT.js.map} +0 -0
  105. /package/dist/{tool-RXQ4F6HI.js.map → tool-544FGIJK.js.map} +0 -0
  106. /package/dist/{wiki-T22CW4EY.js.map → wiki-WWVSDXSX.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{a as n}from"./chunk-22TKLH6A.js";import"./chunk-HGEZBEBI.js";import"./chunk-HX4AF2N4.js";import"./chunk-S4NYBA3M.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-SZDACK6O.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-6PUNM3Y7.js";import"./chunk-WIBDEAAB.js";import"./chunk-3TQ2WONT.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-JXBXIH23.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-2RGXCUE3.js";import"./chunk-TUPHLC77.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W7XQCUDK.js";import"./chunk-SFQUP3BP.js";import"./chunk-HAUOH34T.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-BOY572B3.js";import"./chunk-E343ELHB.js";import"./chunk-VWTBHLMX.js";import"./chunk-CVEL3UBP.js";import"./chunk-ROKRMNVL.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-RDEDIOAH.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-MMTP7WWU.js";import"./chunk-X6MK5VK3.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-JHCI6XCJ.js";import"./chunk-DSYKYZMT.js";import"./chunk-U7LOXDIP.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";var r=["SIGINT","SIGTERM"];function o(t=process){for(let i of r)t.on(i,()=>{t.listenerCount(i)<=1&&t.exit(0)})}o();async function s(){let t=await n();if(process.argv.slice(2).length===0){t.outputHelp();return}t.parse()}s();
2
+ import{a as n}from"./chunk-YZVX4RDY.js";import"./chunk-JGEHN4VE.js";import"./chunk-GZAGG3ES.js";import"./chunk-UBGQ7AOG.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-SZDACK6O.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-LWPRFAQX.js";import"./chunk-SKIDVXWG.js";import"./chunk-ISBM2C3D.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-WC4TPXD3.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-DIHLL45I.js";import"./chunk-OEUII2QP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-BAPRRPNU.js";import"./chunk-SFQUP3BP.js";import"./chunk-S5JGQKON.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-VWTBHLMX.js";import"./chunk-L3MEAKL7.js";import"./chunk-66VSATH3.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-APYG4RB3.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-5B5J3WVW.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-JHCI6XCJ.js";import"./chunk-DSYKYZMT.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";var r=["SIGINT","SIGTERM"];function o(t=process){for(let i of r)t.on(i,()=>{t.listenerCount(i)<=1&&t.exit(0)})}o();async function s(){let t=await n();if(process.argv.slice(2).length===0){t.outputHelp();return}t.parse()}s();
3
3
  //# sourceMappingURL=cli.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e,f,g}from"./chunk-JGEHN4VE.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-QIJLFPWE.js";export{b as fetchAgents,d as fetchCrons,c as fetchProcesses,e as killProcess,a as resolveConn,f as sendTask,g as streamTask};
2
+ //# sourceMappingURL=client-5DVNJ4VZ.js.map
@@ -0,0 +1,2 @@
1
+ import{A as h,B as i,D as j,t as a,u as b,v as c,w as d,x as e,y as f,z as g}from"./chunk-CXZ4YDHJ.js";import"./chunk-QIJLFPWE.js";j();export{a as INTEGRATION_KINDS,e as approvalsConfigSchema,d as callsSchema,c as cameraBotSchema,f as daemonConfigSchema,b as eventSubscriptionSchema,g as expandEnvVars,h as loadDaemonConfig,i as validateWorkspaces};
2
+ //# sourceMappingURL=config-A23CU2XT.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e}from"./chunk-IR2Q63IV.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-QIJLFPWE.js";export{b as applyConfigMutation,a as findConfigPath,d as getAtPath,c as setAtPath,e as unsetAtPath};
2
+ //# sourceMappingURL=config-mutator-WDZ6F6Q4.js.map
@@ -0,0 +1,2 @@
1
+ import{b as a,c as b,d as c,e as d,f as e}from"./chunk-GZAGG3ES.js";import"./chunk-BYJ3A55Y.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-QIJLFPWE.js";export{e as daemonVoiceCheck,b as doctor,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
+ //# sourceMappingURL=doctor-MVV47YVK.js.map
package/dist/index.d.ts CHANGED
@@ -3401,12 +3401,52 @@ declare const daemonConfigSchema: z.ZodObject<{
3401
3401
  height: z.ZodDefault<z.ZodNumber>;
3402
3402
  frameRate: z.ZodDefault<z.ZodNumber>;
3403
3403
  maxSeconds: z.ZodDefault<z.ZodNumber>;
3404
+ /** An agent watching the phone camera. The bot keeps only the newest
3405
+ * frame; the agent gets one when asked, and every
3406
+ * frameIntervalSeconds when that is set. */
3407
+ bot: z.ZodDefault<z.ZodObject<{
3408
+ /** Seconds between frames the agent gets by itself. 0: only when asked
3409
+ * ("Look now" on the phone, or the agent's own `agentx camera look`).
3410
+ * Each frame handed over by itself is a turn of the agent, so keep
3411
+ * this high or off. */
3412
+ frameIntervalSeconds: z.ZodDefault<z.ZodNumber>;
3413
+ /** The agent's watch ends after this many minutes, whatever the phone does. */
3414
+ maxSessionMinutes: z.ZodDefault<z.ZodNumber>;
3415
+ /** Frames are shrunk so their longer side is at most this many pixels
3416
+ * before the agent sees them. */
3417
+ maxFrameEdge: z.ZodDefault<z.ZodNumber>;
3418
+ /** Keep the frame files in the agent's workspace after the share ends.
3419
+ * Off: every frame is deleted when the share ends. */
3420
+ keepFrames: z.ZodDefault<z.ZodBoolean>;
3421
+ }, "strip", z.ZodTypeAny, {
3422
+ frameIntervalSeconds: number;
3423
+ maxSessionMinutes: number;
3424
+ maxFrameEdge: number;
3425
+ keepFrames: boolean;
3426
+ }, {
3427
+ frameIntervalSeconds?: number | undefined;
3428
+ maxSessionMinutes?: number | undefined;
3429
+ maxFrameEdge?: number | undefined;
3430
+ keepFrames?: boolean | undefined;
3431
+ }>>;
3404
3432
  }, "strip", z.ZodTypeAny, {
3433
+ bot: {
3434
+ frameIntervalSeconds: number;
3435
+ maxSessionMinutes: number;
3436
+ maxFrameEdge: number;
3437
+ keepFrames: boolean;
3438
+ };
3405
3439
  width: number;
3406
3440
  height: number;
3407
3441
  frameRate: number;
3408
3442
  maxSeconds: number;
3409
3443
  }, {
3444
+ bot?: {
3445
+ frameIntervalSeconds?: number | undefined;
3446
+ maxSessionMinutes?: number | undefined;
3447
+ maxFrameEdge?: number | undefined;
3448
+ keepFrames?: boolean | undefined;
3449
+ } | undefined;
3410
3450
  width?: number | undefined;
3411
3451
  height?: number | undefined;
3412
3452
  frameRate?: number | undefined;
@@ -3441,6 +3481,12 @@ declare const daemonConfigSchema: z.ZodObject<{
3441
3481
  } | undefined;
3442
3482
  };
3443
3483
  camera: {
3484
+ bot: {
3485
+ frameIntervalSeconds: number;
3486
+ maxSessionMinutes: number;
3487
+ maxFrameEdge: number;
3488
+ keepFrames: boolean;
3489
+ };
3444
3490
  width: number;
3445
3491
  height: number;
3446
3492
  frameRate: number;
@@ -3477,6 +3523,12 @@ declare const daemonConfigSchema: z.ZodObject<{
3477
3523
  maxCallMinutes?: number | undefined;
3478
3524
  } | undefined;
3479
3525
  camera?: {
3526
+ bot?: {
3527
+ frameIntervalSeconds?: number | undefined;
3528
+ maxSessionMinutes?: number | undefined;
3529
+ maxFrameEdge?: number | undefined;
3530
+ keepFrames?: boolean | undefined;
3531
+ } | undefined;
3480
3532
  width?: number | undefined;
3481
3533
  height?: number | undefined;
3482
3534
  frameRate?: number | undefined;
@@ -3613,6 +3665,12 @@ declare const daemonConfigSchema: z.ZodObject<{
3613
3665
  } | undefined;
3614
3666
  };
3615
3667
  camera: {
3668
+ bot: {
3669
+ frameIntervalSeconds: number;
3670
+ maxSessionMinutes: number;
3671
+ maxFrameEdge: number;
3672
+ keepFrames: boolean;
3673
+ };
3616
3674
  width: number;
3617
3675
  height: number;
3618
3676
  frameRate: number;
@@ -3751,6 +3809,12 @@ declare const daemonConfigSchema: z.ZodObject<{
3751
3809
  maxCallMinutes?: number | undefined;
3752
3810
  } | undefined;
3753
3811
  camera?: {
3812
+ bot?: {
3813
+ frameIntervalSeconds?: number | undefined;
3814
+ maxSessionMinutes?: number | undefined;
3815
+ maxFrameEdge?: number | undefined;
3816
+ keepFrames?: boolean | undefined;
3817
+ } | undefined;
3754
3818
  width?: number | undefined;
3755
3819
  height?: number | undefined;
3756
3820
  frameRate?: number | undefined;
@@ -6491,6 +6555,12 @@ declare const daemonConfigSchema: z.ZodObject<{
6491
6555
  } | undefined;
6492
6556
  };
6493
6557
  camera: {
6558
+ bot: {
6559
+ frameIntervalSeconds: number;
6560
+ maxSessionMinutes: number;
6561
+ maxFrameEdge: number;
6562
+ keepFrames: boolean;
6563
+ };
6494
6564
  width: number;
6495
6565
  height: number;
6496
6566
  frameRate: number;
@@ -7198,6 +7268,12 @@ declare const daemonConfigSchema: z.ZodObject<{
7198
7268
  maxCallMinutes?: number | undefined;
7199
7269
  } | undefined;
7200
7270
  camera?: {
7271
+ bot?: {
7272
+ frameIntervalSeconds?: number | undefined;
7273
+ maxSessionMinutes?: number | undefined;
7274
+ maxFrameEdge?: number | undefined;
7275
+ keepFrames?: boolean | undefined;
7276
+ } | undefined;
7201
7277
  width?: number | undefined;
7202
7278
  height?: number | undefined;
7203
7279
  frameRate?: number | undefined;
@@ -8172,6 +8248,8 @@ declare class AgentXDaemon {
8172
8248
  private github?;
8173
8249
  private webrtc?;
8174
8250
  private botManager?;
8251
+ /** Agents watching the phone camera (#325); needs channels.webrtc. */
8252
+ private cameraWatch?;
8175
8253
  private workflowDispatcher?;
8176
8254
  private workflowStore?;
8177
8255
  private workflowRuns?;
@@ -8338,6 +8416,12 @@ declare class AgentXDaemon {
8338
8416
  * Focus holds a non-urgent one; the push goes through the router with
8339
8417
  * its title as the first line, as `agentx notify` sends it. */
8340
8418
  private createCallService;
8419
+ /** Agents watching the phone camera (#325 phase 2). The bot joins the
8420
+ * share as `bot:<agentId>` and always offers, since the phone only
8421
+ * answers. A frame the agent gets by itself is answered where the
8422
+ * share's session lives: a chat channel, or the dashboard's Ask
8423
+ * history for the voice session a share the owner started runs in. */
8424
+ private createCameraWatch;
8341
8425
  /**
8342
8426
  * Serve the minimal browser call page. Static HTML; no framework.
8343
8427
  * The page does getUserMedia, RTCPeerConnection, and POSTs/listens signals.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as L}from"./chunk-C245D4BZ.js";import{d as St,e as kt,f as vt,fa as Tt,g as xt,ga as Mt,h as $t,i as Ct,j as Pt,k as bt}from"./chunk-6PUNM3Y7.js";import"./chunk-WIBDEAAB.js";import"./chunk-3TQ2WONT.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-JXBXIH23.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import{T as yt,k as lt,l as ct,m as dt,n as mt,o as pt}from"./chunk-2RGXCUE3.js";import"./chunk-TUPHLC77.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import{A as D,B as z,C as V,a as ye,b as we,c as Se,d as Ae,e as Ie,f as Oe,g as Ne,h as He,i as je,j as Ue,k as _e,l as I,m as q,n as Be,o as qe,p as Ye,q as O,r as ze,s as Ve,t as Xe,u as x,v as Y,w as Qe,x as Ze,y as et,z as wt}from"./chunk-W7XQCUDK.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-HAUOH34T.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-BOY572B3.js";import"./chunk-E343ELHB.js";import"./chunk-VWTBHLMX.js";import"./chunk-CVEL3UBP.js";import{a as ht}from"./chunk-ROKRMNVL.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-RDEDIOAH.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-MMTP7WWU.js";import{f as gt,g as ft}from"./chunk-X6MK5VK3.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import{a as ke,b as ve,c as xe,d as $e,e as Ce,f as Pe,g as be,h as Te,i as Me,j as Re,l as Ee,m as Ge,o as T,p as W}from"./chunk-5MUJZODV.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{b as Fe,c as Le,d as A,e as De}from"./chunk-JHCI6XCJ.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{A as ot,C as nt,x as tt,z as st}from"./chunk-U7LOXDIP.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";W();G();import{execa as Rt}from"execa";import{existsSync as se,promises as X}from"fs";import S from"path";import ie from"node-fetch";async function Et(o,e){let t=o.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${o}. Expected format: owner/repo`);let s=t[0],i=t[1],n=t[2];try{let a=n?`${s}/${i}/${n}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${o}`);let r=S.resolve(e,".skills",`${s}_${i}`);if(se(r))return await ne(r,o);let d=S.resolve(e,".skills");return se(d)?await ne(d,o):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Gt(s,i,n,e)}}async function Gt(o,e,t,s){let i=[];try{let n=`https://api.github.com/repos/${o}/${e}/git/trees/main?recursive=1`,a=await ie(n);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let d=(await a.json()).tree.filter(p=>p.type==="blob"&&p.path.endsWith("SKILL.md"));if(t){let p=d.find(f=>f.path.includes(`/${t}/`)||f.path===`${t}/SKILL.md`);if(p){let f=await oe(o,e,p.path,s);f&&i.push(f)}}else for(let p of d){let f=await oe(o,e,p.path,s);f&&i.push(f)}}catch(n){m.error(`Failed to fetch skills from GitHub: ${n.message}`)}return i}async function oe(o,e,t,s){try{let i=`https://raw.githubusercontent.com/${o}/${e}/main/${t}`,n=await ie(i);if(!n.ok)return null;let a=await n.text(),r=A(a);if(r){r.source="remote",r.packageId=`${o}/${e}`;let d=S.dirname(t),p=S.resolve(s,".skills",`${o}_${e}`,d);await X.mkdir(p,{recursive:!0}),await X.writeFile(S.resolve(p,"SKILL.md"),a),r.path=S.resolve(p,"SKILL.md")}return r}catch{return null}}async function ne(o,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:o,deep:5});for(let n of i)try{let a=S.resolve(o,n),r=await X.readFile(a,"utf8"),d=A(r);d&&(d.source="remote",d.path=a,d.packageId=e,t.push(d))}catch{}return t}async function At(o,e,t,s,i){let n=["---",`name: ${o}`,`description: ${e}`];if(s?.length){n.push("tags:");for(let a of s)n.push(` - ${a}`)}if(i?.length){n.push("globs:");for(let a of i)n.push(` - ${a}`)}return n.push("---"),`${n.join(`
1
+ import{a as L}from"./chunk-C245D4BZ.js";import{d as St,e as kt,f as vt,fa as Tt,g as xt,ga as Mt,h as $t,i as Ct,j as Pt,k as bt}from"./chunk-LWPRFAQX.js";import"./chunk-SKIDVXWG.js";import"./chunk-ISBM2C3D.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-WC4TPXD3.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import{T as yt,k as lt,l as ct,m as dt,n as mt,o as pt}from"./chunk-DIHLL45I.js";import"./chunk-OEUII2QP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import{A as D,B as z,C as V,a as ye,b as we,c as Se,d as Ae,e as Ie,f as Oe,g as Ne,h as He,i as je,j as Ue,k as _e,l as I,m as q,n as Be,o as qe,p as Ye,q as O,r as ze,s as Ve,t as Xe,u as x,v as Y,w as Qe,x as Ze,y as et,z as wt}from"./chunk-BAPRRPNU.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-S5JGQKON.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-VWTBHLMX.js";import"./chunk-L3MEAKL7.js";import{a as ht}from"./chunk-66VSATH3.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-APYG4RB3.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-5B5J3WVW.js";import{f as gt,g as ft}from"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import{a as ke,b as ve,c as xe,d as $e,e as Ce,f as Pe,g as be,h as Te,i as Me,j as Re,l as Ee,m as Ge,o as T,p as W}from"./chunk-5MUJZODV.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{b as Fe,c as Le,d as A,e as De}from"./chunk-JHCI6XCJ.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{A as st,B as ot,D as nt,y as tt}from"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";W();G();import{execa as Rt}from"execa";import{existsSync as se,promises as X}from"fs";import S from"path";import ie from"node-fetch";async function Et(o,e){let t=o.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${o}. Expected format: owner/repo`);let s=t[0],i=t[1],n=t[2];try{let a=n?`${s}/${i}/${n}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${o}`);let r=S.resolve(e,".skills",`${s}_${i}`);if(se(r))return await ne(r,o);let d=S.resolve(e,".skills");return se(d)?await ne(d,o):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Gt(s,i,n,e)}}async function Gt(o,e,t,s){let i=[];try{let n=`https://api.github.com/repos/${o}/${e}/git/trees/main?recursive=1`,a=await ie(n);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let d=(await a.json()).tree.filter(p=>p.type==="blob"&&p.path.endsWith("SKILL.md"));if(t){let p=d.find(f=>f.path.includes(`/${t}/`)||f.path===`${t}/SKILL.md`);if(p){let f=await oe(o,e,p.path,s);f&&i.push(f)}}else for(let p of d){let f=await oe(o,e,p.path,s);f&&i.push(f)}}catch(n){m.error(`Failed to fetch skills from GitHub: ${n.message}`)}return i}async function oe(o,e,t,s){try{let i=`https://raw.githubusercontent.com/${o}/${e}/main/${t}`,n=await ie(i);if(!n.ok)return null;let a=await n.text(),r=A(a);if(r){r.source="remote",r.packageId=`${o}/${e}`;let d=S.dirname(t),p=S.resolve(s,".skills",`${o}_${e}`,d);await X.mkdir(p,{recursive:!0}),await X.writeFile(S.resolve(p,"SKILL.md"),a),r.path=S.resolve(p,"SKILL.md")}return r}catch{return null}}async function ne(o,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:o,deep:5});for(let n of i)try{let a=S.resolve(o,n),r=await X.readFile(a,"utf8"),d=A(r);d&&(d.source="remote",d.path=a,d.packageId=e,t.push(d))}catch{}return t}async function At(o,e,t,s,i){let n=["---",`name: ${o}`,`description: ${e}`];if(s?.length){n.push("tags:");for(let a of s)n.push(` - ${a}`)}if(i?.length){n.push("globs:");for(let a of i)n.push(` - ${a}`)}return n.push("---"),`${n.join(`
2
2
  `)}
3
3
 
4
4
  ${t}`}async function It(o){let{loadLocalSkills:e}=await import("./loader-YFVSSYSL.js");return e(o)}async function Ot(o,e,t,s,i){let a=[{role:"system",content:`You are a skill author for the Agent Skills ecosystem (skills.sh).
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-YZVX4RDY.js";import"./chunk-JGEHN4VE.js";import"./chunk-GZAGG3ES.js";import"./chunk-UBGQ7AOG.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-SZDACK6O.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-LWPRFAQX.js";import"./chunk-SKIDVXWG.js";import"./chunk-ISBM2C3D.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-WC4TPXD3.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-DIHLL45I.js";import"./chunk-OEUII2QP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-BAPRRPNU.js";import"./chunk-SFQUP3BP.js";import"./chunk-S5JGQKON.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-VWTBHLMX.js";import"./chunk-L3MEAKL7.js";import"./chunk-66VSATH3.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-APYG4RB3.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-5B5J3WVW.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-JHCI6XCJ.js";import"./chunk-DSYKYZMT.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as buildProgram};
2
+ //# sourceMappingURL=program-EHCDAWI7.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-JXBXIH23.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-2AXFYDWF.js";import"./chunk-ROKRMNVL.js";import"./chunk-CECHWYJ2.js";import"./chunk-X6MK5VK3.js";import"./chunk-WPNRDEHW.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.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-I5QCWYXG.js.map
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-WC4TPXD3.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-2AXFYDWF.js";import"./chunk-66VSATH3.js";import"./chunk-CECHWYJ2.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-KSYTHPYB.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"./chunk-MMTP7WWU.js";import"./chunk-X6MK5VK3.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_GRAPH_WEIGHT,a as agenticQuery,c as rankCatalogPool};
2
- //# sourceMappingURL=query-WNOCMO46.js.map
1
+ import{a,b,c}from"./chunk-5B5J3WVW.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_GRAPH_WEIGHT,a as agenticQuery,c as rankCatalogPool};
2
+ //# sourceMappingURL=query-GRLLX7RG.js.map
@@ -1,2 +1,2 @@
1
- import{J as a,K as b,L as c,M as d,N as e,O as f,P as g,Q as h,R as i,S as j,T as k,U as l}from"./chunk-2RGXCUE3.js";import"./chunk-TUPHLC77.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-BOY572B3.js";import"./chunk-E343ELHB.js";import"./chunk-VWTBHLMX.js";import"./chunk-CVEL3UBP.js";import"./chunk-ROKRMNVL.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-RDEDIOAH.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-MMTP7WWU.js";import"./chunk-X6MK5VK3.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.js";import"./chunk-U7LOXDIP.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,l as richReplyPrompt,a as setGlobalRegistry,h as tallyToolUses};
2
- //# sourceMappingURL=registry-KXNT3HID.js.map
1
+ import{J as a,K as b,L as c,M as d,N as e,O as f,P as g,Q as h,R as i,S as j,T as k,U as l}from"./chunk-DIHLL45I.js";import"./chunk-OEUII2QP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-VWTBHLMX.js";import"./chunk-L3MEAKL7.js";import"./chunk-66VSATH3.js";import"./chunk-KA2UIZXG.js";import"./chunk-GQ76J72O.js";import"./chunk-ILEC3IAV.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-APYG4RB3.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-5B5J3WVW.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.js";import"./chunk-CXZ4YDHJ.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,l as richReplyPrompt,a as setGlobalRegistry,h as tallyToolUses};
2
+ //# sourceMappingURL=registry-WJRF3D5H.js.map
@@ -1,2 +1,2 @@
1
- import{q as m,t as p,v as d,w as x}from"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import{a as u,f}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.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-VAHGNG7U.js.map
1
+ import{q as m,t as p,v as d,w as x}from"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import{a as u,f}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-G2NJIXQY.js.map
@@ -1,4 +1,4 @@
1
- import{b as I}from"./chunk-3TQ2WONT.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.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(`
1
+ import{b as I}from"./chunk-ISBM2C3D.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-UQJ3IA2Z.js.map
4
+ //# sourceMappingURL=review-candidates-F5QKVUQ4.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"./chunk-RDEDIOAH.js";import"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
2
- //# sourceMappingURL=routing-AVMCSZXP.js.map
1
+ import{a,b}from"./chunk-APYG4RB3.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
2
+ //# sourceMappingURL=routing-XIDQWGKT.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b}from"./chunk-CUXYJNWT.js";import"./chunk-RKPAVWXF.js";import"./chunk-S5JGQKON.js";import"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-QIJLFPWE.js";export{b as resolveScheduleCaller,a as runScheduleTool};
2
+ //# sourceMappingURL=schedule-tool-4I3QUXJK.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-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-LJ32FB5N.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-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.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-2GOJBTII.js.map
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-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-DNI7G7B2.js.map
@@ -1,2 +1,2 @@
1
- import{v as S,w}from"./chunk-DEYXG7OA.js";import"./chunk-FX3D7YON.js";import{a as g,b as h,f as R}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import{e as f}from"./chunk-JHCI6XCJ.js";import"./chunk-U7LOXDIP.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-GIDPNJAA.js.map
1
+ import{v as S,w}from"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import{a as g,b as h,f as R}from"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import{e as f}from"./chunk-JHCI6XCJ.js";import"./chunk-CXZ4YDHJ.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-L45K2452.js.map
@@ -1,2 +1,2 @@
1
- import{b as a}from"./chunk-E343ELHB.js";import"./chunk-U7LOXDIP.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-QW33PWJV.js.map
1
+ import{b as a}from"./chunk-IR2Q63IV.js";import"./chunk-CXZ4YDHJ.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-QNSLVBGT.js.map
@@ -1,2 +1,2 @@
1
- import{b as p}from"./chunk-IEEKRDVW.js";import"./chunk-RKPAVWXF.js";import"./chunk-HAUOH34T.js";import"./chunk-BOY572B3.js";import"./chunk-E343ELHB.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-U7LOXDIP.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-RXQ4F6HI.js.map
1
+ import{b as p}from"./chunk-CUXYJNWT.js";import"./chunk-RKPAVWXF.js";import"./chunk-S5JGQKON.js";import"./chunk-PUU2ESI2.js";import"./chunk-IR2Q63IV.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.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-544FGIJK.js.map
@@ -0,0 +1,2 @@
1
+ import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-L3MEAKL7.js";import{a}from"./chunk-66VSATH3.js";import"./chunk-CECHWYJ2.js";import{a as c}from"./chunk-5B5J3WVW.js";import"./chunk-KEJOBB5E.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-6HPJKD3X.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-QOYAX2FT.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-CXZ4YDHJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as WikiHub,a as WikiStore,c as agenticQuery};
2
+ //# sourceMappingURL=wiki-WWVSDXSX.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentix-cli",
3
- "version": "0.74.0",
3
+ "version": "0.75.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": {