agentix-cli 0.73.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 (105) hide show
  1. package/dist/{App-LXQUWRY6.js → App-N2ZWRJKV.js} +2 -2
  2. package/dist/{ChatApp-PCVXNFEJ.js → ChatApp-PGQKQBHF.js} +2 -2
  3. package/dist/{agent-AJOPKBST.js → agent-UOOL6R4V.js} +2 -2
  4. package/dist/{board-dashboard-A56FT4U6.js → board-dashboard-CDBPGUU3.js} +436 -241
  5. package/dist/board-dashboard-CDBPGUU3.js.map +1 -0
  6. package/dist/{chunk-B45SJSFP.js → chunk-5B5J3WVW.js} +2 -2
  7. package/dist/{chunk-L43CVWCL.js → chunk-66VSATH3.js} +2 -2
  8. package/dist/{chunk-PVNDAEWC.js → chunk-6HPJKD3X.js} +2 -2
  9. package/dist/{chunk-U75OD25W.js → chunk-APYG4RB3.js} +2 -2
  10. package/dist/{chunk-GULZIVVA.js → chunk-BAPRRPNU.js} +2 -2
  11. package/dist/{chunk-PHG5FJOC.js → chunk-CUXYJNWT.js} +2 -2
  12. package/dist/chunk-CXZ4YDHJ.js +15 -0
  13. package/dist/{chunk-MQ5SG3VF.js.map → chunk-CXZ4YDHJ.js.map} +1 -1
  14. package/dist/{chunk-PNTFOROF.js → chunk-DIHLL45I.js} +26 -26
  15. package/dist/{chunk-PNTFOROF.js.map → chunk-DIHLL45I.js.map} +1 -1
  16. package/dist/{chunk-C555JABY.js → chunk-GZAGG3ES.js} +2 -2
  17. package/dist/{chunk-XBLL3T2F.js → chunk-IR2Q63IV.js} +2 -2
  18. package/dist/{chunk-D5BPN3JR.js → chunk-ISBM2C3D.js} +2 -2
  19. package/dist/{chunk-JKGWQNUL.js → chunk-JGEHN4VE.js} +2 -2
  20. package/dist/{chunk-6AUW7HPX.js → chunk-KEJOBB5E.js} +2 -2
  21. package/dist/{chunk-RR2P5FLW.js → chunk-L3MEAKL7.js} +2 -2
  22. package/dist/{chunk-UXH6IX7V.js → chunk-LWPRFAQX.js} +225 -214
  23. package/dist/chunk-LWPRFAQX.js.map +1 -0
  24. package/dist/{chunk-RF3HJHFP.js → chunk-OEUII2QP.js} +2 -2
  25. package/dist/{chunk-WMGB25WL.js → chunk-PUU2ESI2.js} +2 -2
  26. package/dist/{chunk-Y2425AFZ.js → chunk-S5JGQKON.js} +2 -2
  27. package/dist/{chunk-5QCFJ5GO.js → chunk-SKIDVXWG.js} +3 -3
  28. package/dist/chunk-SKIDVXWG.js.map +1 -0
  29. package/dist/{chunk-ZSIWNIUK.js → chunk-UBGQ7AOG.js} +2 -2
  30. package/dist/{chunk-73MVBAFG.js → chunk-WC4TPXD3.js} +2 -2
  31. package/dist/{chunk-XN4ZOLVQ.js → chunk-YZVX4RDY.js} +173 -172
  32. package/dist/chunk-YZVX4RDY.js.map +1 -0
  33. package/dist/cli.js +1 -1
  34. package/dist/client-5DVNJ4VZ.js +2 -0
  35. package/dist/config-A23CU2XT.js +2 -0
  36. package/dist/config-mutator-WDZ6F6Q4.js +2 -0
  37. package/dist/doctor-MVV47YVK.js +2 -0
  38. package/dist/index.d.ts +135 -0
  39. package/dist/index.js +1 -1
  40. package/dist/program-EHCDAWI7.js +2 -0
  41. package/dist/{promote-PWUCBE57.js → promote-KSYTHPYB.js} +2 -2
  42. package/dist/{query-U6QKWGAG.js → query-GRLLX7RG.js} +2 -2
  43. package/dist/{registry-SYY47NXH.js → registry-WJRF3D5H.js} +2 -2
  44. package/dist/{request-planner-BXU5GECQ.js → request-planner-G2NJIXQY.js} +2 -2
  45. package/dist/{review-candidates-TVVYKJ2K.js → review-candidates-F5QKVUQ4.js} +2 -2
  46. package/dist/{routing-O2WE73C7.js → routing-XIDQWGKT.js} +2 -2
  47. package/dist/schedule-tool-4I3QUXJK.js +2 -0
  48. package/dist/scheduler-LJ32FB5N.js +2 -0
  49. package/dist/{seat-OR5IXRA5.js → seat-DNI7G7B2.js} +2 -2
  50. package/dist/{select-LN4TSDRS.js → select-L45K2452.js} +2 -2
  51. package/dist/{set-enabled-6H3YQOVB.js → set-enabled-QNSLVBGT.js} +2 -2
  52. package/dist/{tool-U4PSEWS2.js → tool-544FGIJK.js} +2 -2
  53. package/dist/wiki-WWVSDXSX.js +2 -0
  54. package/package.json +1 -1
  55. package/dist/board-dashboard-A56FT4U6.js.map +0 -1
  56. package/dist/chunk-5QCFJ5GO.js.map +0 -1
  57. package/dist/chunk-MQ5SG3VF.js +0 -15
  58. package/dist/chunk-UXH6IX7V.js.map +0 -1
  59. package/dist/chunk-XN4ZOLVQ.js.map +0 -1
  60. package/dist/client-V7YJR55E.js +0 -2
  61. package/dist/config-HI4ECCSU.js +0 -2
  62. package/dist/config-mutator-OHXSKALT.js +0 -2
  63. package/dist/doctor-IAY3GUHJ.js +0 -2
  64. package/dist/program-IQVDNQS6.js +0 -2
  65. package/dist/schedule-tool-5CSP47M4.js +0 -2
  66. package/dist/scheduler-FBG6Q5L7.js +0 -2
  67. package/dist/wiki-YQFIR7HR.js +0 -2
  68. /package/dist/{App-LXQUWRY6.js.map → App-N2ZWRJKV.js.map} +0 -0
  69. /package/dist/{ChatApp-PCVXNFEJ.js.map → ChatApp-PGQKQBHF.js.map} +0 -0
  70. /package/dist/{agent-AJOPKBST.js.map → agent-UOOL6R4V.js.map} +0 -0
  71. /package/dist/{chunk-B45SJSFP.js.map → chunk-5B5J3WVW.js.map} +0 -0
  72. /package/dist/{chunk-L43CVWCL.js.map → chunk-66VSATH3.js.map} +0 -0
  73. /package/dist/{chunk-PVNDAEWC.js.map → chunk-6HPJKD3X.js.map} +0 -0
  74. /package/dist/{chunk-U75OD25W.js.map → chunk-APYG4RB3.js.map} +0 -0
  75. /package/dist/{chunk-GULZIVVA.js.map → chunk-BAPRRPNU.js.map} +0 -0
  76. /package/dist/{chunk-PHG5FJOC.js.map → chunk-CUXYJNWT.js.map} +0 -0
  77. /package/dist/{chunk-C555JABY.js.map → chunk-GZAGG3ES.js.map} +0 -0
  78. /package/dist/{chunk-XBLL3T2F.js.map → chunk-IR2Q63IV.js.map} +0 -0
  79. /package/dist/{chunk-D5BPN3JR.js.map → chunk-ISBM2C3D.js.map} +0 -0
  80. /package/dist/{chunk-JKGWQNUL.js.map → chunk-JGEHN4VE.js.map} +0 -0
  81. /package/dist/{chunk-6AUW7HPX.js.map → chunk-KEJOBB5E.js.map} +0 -0
  82. /package/dist/{chunk-RR2P5FLW.js.map → chunk-L3MEAKL7.js.map} +0 -0
  83. /package/dist/{chunk-RF3HJHFP.js.map → chunk-OEUII2QP.js.map} +0 -0
  84. /package/dist/{chunk-WMGB25WL.js.map → chunk-PUU2ESI2.js.map} +0 -0
  85. /package/dist/{chunk-Y2425AFZ.js.map → chunk-S5JGQKON.js.map} +0 -0
  86. /package/dist/{chunk-ZSIWNIUK.js.map → chunk-UBGQ7AOG.js.map} +0 -0
  87. /package/dist/{chunk-73MVBAFG.js.map → chunk-WC4TPXD3.js.map} +0 -0
  88. /package/dist/{client-V7YJR55E.js.map → client-5DVNJ4VZ.js.map} +0 -0
  89. /package/dist/{config-HI4ECCSU.js.map → config-A23CU2XT.js.map} +0 -0
  90. /package/dist/{config-mutator-OHXSKALT.js.map → config-mutator-WDZ6F6Q4.js.map} +0 -0
  91. /package/dist/{doctor-IAY3GUHJ.js.map → doctor-MVV47YVK.js.map} +0 -0
  92. /package/dist/{program-IQVDNQS6.js.map → program-EHCDAWI7.js.map} +0 -0
  93. /package/dist/{promote-PWUCBE57.js.map → promote-KSYTHPYB.js.map} +0 -0
  94. /package/dist/{query-U6QKWGAG.js.map → query-GRLLX7RG.js.map} +0 -0
  95. /package/dist/{registry-SYY47NXH.js.map → registry-WJRF3D5H.js.map} +0 -0
  96. /package/dist/{request-planner-BXU5GECQ.js.map → request-planner-G2NJIXQY.js.map} +0 -0
  97. /package/dist/{review-candidates-TVVYKJ2K.js.map → review-candidates-F5QKVUQ4.js.map} +0 -0
  98. /package/dist/{routing-O2WE73C7.js.map → routing-XIDQWGKT.js.map} +0 -0
  99. /package/dist/{schedule-tool-5CSP47M4.js.map → schedule-tool-4I3QUXJK.js.map} +0 -0
  100. /package/dist/{scheduler-FBG6Q5L7.js.map → scheduler-LJ32FB5N.js.map} +0 -0
  101. /package/dist/{seat-OR5IXRA5.js.map → seat-DNI7G7B2.js.map} +0 -0
  102. /package/dist/{select-LN4TSDRS.js.map → select-L45K2452.js.map} +0 -0
  103. /package/dist/{set-enabled-6H3YQOVB.js.map → set-enabled-QNSLVBGT.js.map} +0 -0
  104. /package/dist/{tool-U4PSEWS2.js.map → tool-544FGIJK.js.map} +0 -0
  105. /package/dist/{wiki-YQFIR7HR.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-XN4ZOLVQ.js";import"./chunk-JKGWQNUL.js";import"./chunk-C555JABY.js";import"./chunk-ZSIWNIUK.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-UXH6IX7V.js";import"./chunk-5QCFJ5GO.js";import"./chunk-D5BPN3JR.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-73MVBAFG.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-PNTFOROF.js";import"./chunk-RF3HJHFP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-GULZIVVA.js";import"./chunk-SFQUP3BP.js";import"./chunk-Y2425AFZ.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-WMGB25WL.js";import"./chunk-XBLL3T2F.js";import"./chunk-VWTBHLMX.js";import"./chunk-RR2P5FLW.js";import"./chunk-L43CVWCL.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-U75OD25W.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-B45SJSFP.js";import"./chunk-6AUW7HPX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PVNDAEWC.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-MQ5SG3VF.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;
@@ -4399,9 +4463,46 @@ declare const daemonConfigSchema: z.ZodObject<{
4399
4463
  * AGENTX_DRAIN_TIMEOUT_MS env var, else 300 s. Keep the service
4400
4464
  * manager's stop timeout above it, or it kills the daemon mid-wait. */
4401
4465
  drainTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
4466
+ /** Who may ask for "restart when idle", and what happens to the others.
4467
+ * Unset: any caller may, and onTimeout "restart" is honoured. */
4468
+ restart: z.ZodDefault<z.ZodObject<{
4469
+ /** Regular expression matched against the request's `by`. Requests
4470
+ * from anyone else are held until `window`, or refused when there
4471
+ * is no window. */
4472
+ allowBy: z.ZodOptional<z.ZodString>;
4473
+ /** Local time "HH:MM" at which held requests start an idle-only wait. */
4474
+ window: z.ZodOptional<z.ZodString>;
4475
+ /** How long that wait lasts before it gives up. */
4476
+ windowWaitMinutes: z.ZodDefault<z.ZodNumber>;
4477
+ /** Turn every request into an idle-only one: a wait that runs out
4478
+ * gives up instead of restarting over running work. */
4479
+ forbidOnTimeoutRestart: z.ZodDefault<z.ZodBoolean>;
4480
+ }, "strip", z.ZodTypeAny, {
4481
+ windowWaitMinutes: number;
4482
+ forbidOnTimeoutRestart: boolean;
4483
+ allowBy?: string | undefined;
4484
+ window?: string | undefined;
4485
+ }, {
4486
+ allowBy?: string | undefined;
4487
+ window?: string | undefined;
4488
+ windowWaitMinutes?: number | undefined;
4489
+ forbidOnTimeoutRestart?: boolean | undefined;
4490
+ }>>;
4402
4491
  }, "strip", z.ZodTypeAny, {
4492
+ restart: {
4493
+ windowWaitMinutes: number;
4494
+ forbidOnTimeoutRestart: boolean;
4495
+ allowBy?: string | undefined;
4496
+ window?: string | undefined;
4497
+ };
4403
4498
  drainTimeoutSeconds?: number | undefined;
4404
4499
  }, {
4500
+ restart?: {
4501
+ allowBy?: string | undefined;
4502
+ window?: string | undefined;
4503
+ windowWaitMinutes?: number | undefined;
4504
+ forbidOnTimeoutRestart?: boolean | undefined;
4505
+ } | undefined;
4405
4506
  drainTimeoutSeconds?: number | undefined;
4406
4507
  }>>;
4407
4508
  /** What happens to runs a restart cuts off (agents/resume). Chat messages
@@ -6454,6 +6555,12 @@ declare const daemonConfigSchema: z.ZodObject<{
6454
6555
  } | undefined;
6455
6556
  };
6456
6557
  camera: {
6558
+ bot: {
6559
+ frameIntervalSeconds: number;
6560
+ maxSessionMinutes: number;
6561
+ maxFrameEdge: number;
6562
+ keepFrames: boolean;
6563
+ };
6457
6564
  width: number;
6458
6565
  height: number;
6459
6566
  frameRate: number;
@@ -6576,6 +6683,12 @@ declare const daemonConfigSchema: z.ZodObject<{
6576
6683
  notifyAgent: boolean;
6577
6684
  };
6578
6685
  shutdown: {
6686
+ restart: {
6687
+ windowWaitMinutes: number;
6688
+ forbidOnTimeoutRestart: boolean;
6689
+ allowBy?: string | undefined;
6690
+ window?: string | undefined;
6691
+ };
6579
6692
  drainTimeoutSeconds?: number | undefined;
6580
6693
  };
6581
6694
  reminders: {
@@ -7155,6 +7268,12 @@ declare const daemonConfigSchema: z.ZodObject<{
7155
7268
  maxCallMinutes?: number | undefined;
7156
7269
  } | undefined;
7157
7270
  camera?: {
7271
+ bot?: {
7272
+ frameIntervalSeconds?: number | undefined;
7273
+ maxSessionMinutes?: number | undefined;
7274
+ maxFrameEdge?: number | undefined;
7275
+ keepFrames?: boolean | undefined;
7276
+ } | undefined;
7158
7277
  width?: number | undefined;
7159
7278
  height?: number | undefined;
7160
7279
  frameRate?: number | undefined;
@@ -7276,6 +7395,12 @@ declare const daemonConfigSchema: z.ZodObject<{
7276
7395
  notifyAgent?: boolean | undefined;
7277
7396
  } | undefined;
7278
7397
  shutdown?: {
7398
+ restart?: {
7399
+ allowBy?: string | undefined;
7400
+ window?: string | undefined;
7401
+ windowWaitMinutes?: number | undefined;
7402
+ forbidOnTimeoutRestart?: boolean | undefined;
7403
+ } | undefined;
7279
7404
  drainTimeoutSeconds?: number | undefined;
7280
7405
  } | undefined;
7281
7406
  reminders?: {
@@ -8123,6 +8248,8 @@ declare class AgentXDaemon {
8123
8248
  private github?;
8124
8249
  private webrtc?;
8125
8250
  private botManager?;
8251
+ /** Agents watching the phone camera (#325); needs channels.webrtc. */
8252
+ private cameraWatch?;
8126
8253
  private workflowDispatcher?;
8127
8254
  private workflowStore?;
8128
8255
  private workflowRuns?;
@@ -8177,6 +8304,8 @@ declare class AgentXDaemon {
8177
8304
  * address it was given, else notifications.channel (push or ntfy). */
8178
8305
  private ownerSender;
8179
8306
  /** In-flight work the drain waits for: local agent tasks + mesh forwards. */
8307
+ /** The runs in flight, oldest first: what a restart would cut off. */
8308
+ private runningSummaries;
8180
8309
  private inflightCounts;
8181
8310
  /** Set by start(): the same graceful path a SIGTERM takes. */
8182
8311
  private requestShutdown?;
@@ -8287,6 +8416,12 @@ declare class AgentXDaemon {
8287
8416
  * Focus holds a non-urgent one; the push goes through the router with
8288
8417
  * its title as the first line, as `agentx notify` sends it. */
8289
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;
8290
8425
  /**
8291
8426
  * Serve the minimal browser call page. Static HTML; no framework.
8292
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-UXH6IX7V.js";import"./chunk-5QCFJ5GO.js";import"./chunk-D5BPN3JR.js";import"./chunk-BYJ3A55Y.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-73MVBAFG.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import{R as yt,k as lt,l as ct,m as dt,n as mt,o as pt}from"./chunk-PNTFOROF.js";import"./chunk-RF3HJHFP.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-GULZIVVA.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-Y2425AFZ.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-WMGB25WL.js";import"./chunk-XBLL3T2F.js";import"./chunk-VWTBHLMX.js";import"./chunk-RR2P5FLW.js";import{a as ht}from"./chunk-L43CVWCL.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-U75OD25W.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-B45SJSFP.js";import{f as gt,g as ft}from"./chunk-6AUW7HPX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-PVNDAEWC.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-MQ5SG3VF.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-73MVBAFG.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-2AXFYDWF.js";import"./chunk-L43CVWCL.js";import"./chunk-CECHWYJ2.js";import"./chunk-6AUW7HPX.js";import"./chunk-WPNRDEHW.js";import"./chunk-PVNDAEWC.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-MQ5SG3VF.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-PWUCBE57.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-B45SJSFP.js";import"./chunk-6AUW7HPX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PVNDAEWC.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-MQ5SG3VF.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_GRAPH_WEIGHT,a as agenticQuery,c as rankCatalogPool};
2
- //# sourceMappingURL=query-U6QKWGAG.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{H as a,I as b,J as c,K as d,L as e,M as f,N as g,O as h,P as i,Q as j,R as k,S as l}from"./chunk-PNTFOROF.js";import"./chunk-RF3HJHFP.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-WMGB25WL.js";import"./chunk-XBLL3T2F.js";import"./chunk-VWTBHLMX.js";import"./chunk-RR2P5FLW.js";import"./chunk-L43CVWCL.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-U75OD25W.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-B45SJSFP.js";import"./chunk-6AUW7HPX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PVNDAEWC.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-MQ5SG3VF.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-SYY47NXH.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-PVNDAEWC.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-MQ5SG3VF.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-BXU5GECQ.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-D5BPN3JR.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PVNDAEWC.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-MQ5SG3VF.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-TVVYKJ2K.js.map
4
+ //# sourceMappingURL=review-candidates-F5QKVUQ4.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"./chunk-U75OD25W.js";import"./chunk-PVNDAEWC.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-MQ5SG3VF.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
2
- //# sourceMappingURL=routing-O2WE73C7.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-PVNDAEWC.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-MQ5SG3VF.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-OR5IXRA5.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-PVNDAEWC.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-MQ5SG3VF.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-LN4TSDRS.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-XBLL3T2F.js";import"./chunk-MQ5SG3VF.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-6H3YQOVB.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-PHG5FJOC.js";import"./chunk-RKPAVWXF.js";import"./chunk-Y2425AFZ.js";import"./chunk-WMGB25WL.js";import"./chunk-XBLL3T2F.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-MQ5SG3VF.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-U4PSEWS2.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.73.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": {