agentix-cli 0.76.0 → 0.78.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 (118) hide show
  1. package/dist/{App-NCTXMA2P.js → App-UNWLWLH5.js} +2 -2
  2. package/dist/{ChatApp-CQIQEKZ2.js → ChatApp-UBSOVFRK.js} +2 -2
  3. package/dist/{agent-5GQLISLJ.js → agent-XWWWL5RV.js} +2 -2
  4. package/dist/{board-dashboard-E4CXJUK5.js → board-dashboard-ABEIELBC.js} +4 -4
  5. package/dist/{chunk-7GC42WAK.js → chunk-2XICJMS6.js} +31 -31
  6. package/dist/chunk-2XICJMS6.js.map +1 -0
  7. package/dist/{chunk-GT6ZDLXU.js → chunk-4EJ65BMF.js} +509 -238
  8. package/dist/chunk-4EJ65BMF.js.map +1 -0
  9. package/dist/{chunk-A4ACRRRP.js → chunk-4STRKIUA.js} +2 -2
  10. package/dist/{chunk-SC6Q5M4C.js → chunk-53J2D2ZJ.js} +2 -2
  11. package/dist/{chunk-PK6EBDBU.js → chunk-6HUDHMAC.js} +2 -2
  12. package/dist/{chunk-LQRBGQIR.js → chunk-CL53UVOF.js} +11 -11
  13. package/dist/chunk-CL53UVOF.js.map +1 -0
  14. package/dist/{chunk-62EJKQFX.js → chunk-CPXZWVKN.js} +2 -2
  15. package/dist/{chunk-SZZSUW42.js → chunk-DBXN7I2X.js} +5 -5
  16. package/dist/{chunk-SZZSUW42.js.map → chunk-DBXN7I2X.js.map} +1 -1
  17. package/dist/{chunk-URINHGJF.js → chunk-FSVUSXJB.js} +155 -155
  18. package/dist/chunk-FSVUSXJB.js.map +1 -0
  19. package/dist/{chunk-CW42OBFL.js → chunk-FWDWHZ6H.js} +2 -2
  20. package/dist/{chunk-IYLQBBON.js → chunk-GTZDTKDW.js} +2 -2
  21. package/dist/{chunk-2KOWJNQJ.js → chunk-GX4U2ILS.js} +2 -2
  22. package/dist/{chunk-N3Y3NORE.js → chunk-H4RCKWJA.js} +2 -2
  23. package/dist/{chunk-LQ3PEMBH.js → chunk-IMVW5ZSY.js} +2 -2
  24. package/dist/{chunk-72P53PGX.js → chunk-JQXP3JWF.js} +2 -2
  25. package/dist/{chunk-EAMSULHF.js → chunk-JVJYCR67.js} +2 -2
  26. package/dist/{chunk-B556VD7A.js → chunk-KEPK7ZZ2.js} +2 -2
  27. package/dist/{chunk-QGTQ4PIL.js → chunk-LQJNRSCT.js} +2 -2
  28. package/dist/{chunk-ZPM7SSJM.js → chunk-NWP44FEW.js} +2 -2
  29. package/dist/{chunk-C4CDVE2E.js → chunk-O5U5NVLR.js} +9 -9
  30. package/dist/chunk-O5U5NVLR.js.map +1 -0
  31. package/dist/{chunk-P27P7GFY.js → chunk-R7AS5M32.js} +5 -5
  32. package/dist/{chunk-676OIOHG.js → chunk-SLQZ4AHG.js} +39 -39
  33. package/dist/chunk-SLQZ4AHG.js.map +1 -0
  34. package/dist/{chunk-PDSCFOC4.js → chunk-TVORP6BW.js} +2 -2
  35. package/dist/{chunk-MODPTVA6.js → chunk-U6XM4M5V.js} +2 -2
  36. package/dist/{chunk-SY7ENNNK.js → chunk-WEUF5WRR.js} +2 -2
  37. package/dist/chunk-Y4CYQV7G.js +3 -0
  38. package/dist/chunk-Y4CYQV7G.js.map +1 -0
  39. package/dist/cli.js +1 -1
  40. package/dist/client-OAAE3KM5.js +2 -0
  41. package/dist/{config-QLCPWIJN.js → config-44LINWKG.js} +2 -2
  42. package/dist/config-mutator-P6QEABPU.js +2 -0
  43. package/dist/{doctor-74P5CWVW.js → doctor-OXR3VXX6.js} +2 -2
  44. package/dist/index.d.ts +131 -17
  45. package/dist/index.js +1 -1
  46. package/dist/processes-5EXCTSD5.js +2 -0
  47. package/dist/program-X7ROPRQP.js +2 -0
  48. package/dist/{promote-VFL66JD2.js → promote-72BY34SI.js} +2 -2
  49. package/dist/{query-MCCWN6XA.js → query-AJO3NOO6.js} +2 -2
  50. package/dist/{registry-43X3DQTI.js → registry-AFNYREN2.js} +2 -2
  51. package/dist/{request-planner-GSGBUGNG.js → request-planner-Q74NYFRJ.js} +2 -2
  52. package/dist/{review-candidates-4Z6QTMN2.js → review-candidates-ZBBIPFJT.js} +2 -2
  53. package/dist/{routing-T66LO3JY.js → routing-7VU524EZ.js} +2 -2
  54. package/dist/schedule-tool-6RRXRW5K.js +2 -0
  55. package/dist/scheduler-WA4KTCCU.js +2 -0
  56. package/dist/{seat-4H7TTV5X.js → seat-MKY332GD.js} +2 -2
  57. package/dist/{select-YCVNOR5Q.js → select-FZX63JK5.js} +2 -2
  58. package/dist/{set-enabled-6UGUPYW4.js → set-enabled-RNDSUIYU.js} +2 -2
  59. package/dist/{tool-EID3ZKQK.js → tool-XBSFEGWW.js} +3 -3
  60. package/dist/tool-XBSFEGWW.js.map +1 -0
  61. package/dist/wiki-ZOK6XGIX.js +2 -0
  62. package/package.json +1 -1
  63. package/dist/chunk-676OIOHG.js.map +0 -1
  64. package/dist/chunk-7GC42WAK.js.map +0 -1
  65. package/dist/chunk-C4CDVE2E.js.map +0 -1
  66. package/dist/chunk-GT6ZDLXU.js.map +0 -1
  67. package/dist/chunk-LQRBGQIR.js.map +0 -1
  68. package/dist/chunk-R5BXA7TL.js +0 -3
  69. package/dist/chunk-R5BXA7TL.js.map +0 -1
  70. package/dist/chunk-URINHGJF.js.map +0 -1
  71. package/dist/client-HLCKITQJ.js +0 -2
  72. package/dist/config-mutator-BCTMKRPT.js +0 -2
  73. package/dist/processes-TGFDGQYY.js +0 -2
  74. package/dist/program-ONWCNXKS.js +0 -2
  75. package/dist/schedule-tool-ORNG6HMN.js +0 -2
  76. package/dist/scheduler-VIWJITKR.js +0 -2
  77. package/dist/tool-EID3ZKQK.js.map +0 -1
  78. package/dist/wiki-SHHIVZPT.js +0 -2
  79. /package/dist/{App-NCTXMA2P.js.map → App-UNWLWLH5.js.map} +0 -0
  80. /package/dist/{ChatApp-CQIQEKZ2.js.map → ChatApp-UBSOVFRK.js.map} +0 -0
  81. /package/dist/{agent-5GQLISLJ.js.map → agent-XWWWL5RV.js.map} +0 -0
  82. /package/dist/{board-dashboard-E4CXJUK5.js.map → board-dashboard-ABEIELBC.js.map} +0 -0
  83. /package/dist/{chunk-A4ACRRRP.js.map → chunk-4STRKIUA.js.map} +0 -0
  84. /package/dist/{chunk-SC6Q5M4C.js.map → chunk-53J2D2ZJ.js.map} +0 -0
  85. /package/dist/{chunk-PK6EBDBU.js.map → chunk-6HUDHMAC.js.map} +0 -0
  86. /package/dist/{chunk-62EJKQFX.js.map → chunk-CPXZWVKN.js.map} +0 -0
  87. /package/dist/{chunk-CW42OBFL.js.map → chunk-FWDWHZ6H.js.map} +0 -0
  88. /package/dist/{chunk-IYLQBBON.js.map → chunk-GTZDTKDW.js.map} +0 -0
  89. /package/dist/{chunk-2KOWJNQJ.js.map → chunk-GX4U2ILS.js.map} +0 -0
  90. /package/dist/{chunk-N3Y3NORE.js.map → chunk-H4RCKWJA.js.map} +0 -0
  91. /package/dist/{chunk-LQ3PEMBH.js.map → chunk-IMVW5ZSY.js.map} +0 -0
  92. /package/dist/{chunk-72P53PGX.js.map → chunk-JQXP3JWF.js.map} +0 -0
  93. /package/dist/{chunk-EAMSULHF.js.map → chunk-JVJYCR67.js.map} +0 -0
  94. /package/dist/{chunk-B556VD7A.js.map → chunk-KEPK7ZZ2.js.map} +0 -0
  95. /package/dist/{chunk-QGTQ4PIL.js.map → chunk-LQJNRSCT.js.map} +0 -0
  96. /package/dist/{chunk-ZPM7SSJM.js.map → chunk-NWP44FEW.js.map} +0 -0
  97. /package/dist/{chunk-P27P7GFY.js.map → chunk-R7AS5M32.js.map} +0 -0
  98. /package/dist/{chunk-PDSCFOC4.js.map → chunk-TVORP6BW.js.map} +0 -0
  99. /package/dist/{chunk-MODPTVA6.js.map → chunk-U6XM4M5V.js.map} +0 -0
  100. /package/dist/{chunk-SY7ENNNK.js.map → chunk-WEUF5WRR.js.map} +0 -0
  101. /package/dist/{client-HLCKITQJ.js.map → client-OAAE3KM5.js.map} +0 -0
  102. /package/dist/{config-QLCPWIJN.js.map → config-44LINWKG.js.map} +0 -0
  103. /package/dist/{config-mutator-BCTMKRPT.js.map → config-mutator-P6QEABPU.js.map} +0 -0
  104. /package/dist/{doctor-74P5CWVW.js.map → doctor-OXR3VXX6.js.map} +0 -0
  105. /package/dist/{processes-TGFDGQYY.js.map → processes-5EXCTSD5.js.map} +0 -0
  106. /package/dist/{program-ONWCNXKS.js.map → program-X7ROPRQP.js.map} +0 -0
  107. /package/dist/{promote-VFL66JD2.js.map → promote-72BY34SI.js.map} +0 -0
  108. /package/dist/{query-MCCWN6XA.js.map → query-AJO3NOO6.js.map} +0 -0
  109. /package/dist/{registry-43X3DQTI.js.map → registry-AFNYREN2.js.map} +0 -0
  110. /package/dist/{request-planner-GSGBUGNG.js.map → request-planner-Q74NYFRJ.js.map} +0 -0
  111. /package/dist/{review-candidates-4Z6QTMN2.js.map → review-candidates-ZBBIPFJT.js.map} +0 -0
  112. /package/dist/{routing-T66LO3JY.js.map → routing-7VU524EZ.js.map} +0 -0
  113. /package/dist/{schedule-tool-ORNG6HMN.js.map → schedule-tool-6RRXRW5K.js.map} +0 -0
  114. /package/dist/{scheduler-VIWJITKR.js.map → scheduler-WA4KTCCU.js.map} +0 -0
  115. /package/dist/{seat-4H7TTV5X.js.map → seat-MKY332GD.js.map} +0 -0
  116. /package/dist/{select-YCVNOR5Q.js.map → select-FZX63JK5.js.map} +0 -0
  117. /package/dist/{set-enabled-6UGUPYW4.js.map → set-enabled-RNDSUIYU.js.map} +0 -0
  118. /package/dist/{wiki-SHHIVZPT.js.map → wiki-ZOK6XGIX.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e}from"./chunk-53J2D2ZJ.js";import"./chunk-DBXN7I2X.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-P6QEABPU.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}from"./chunk-N3Y3NORE.js";import"./chunk-S2GAEH2F.js";import"./chunk-SZZSUW42.js";import"./chunk-QIJLFPWE.js";export{f as daemonVoiceCheck,b as doctor,e as nodeVersionSupported,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
- //# sourceMappingURL=doctor-74P5CWVW.js.map
1
+ import{b as a,c as b,d as c,e as d,f as e,g as f}from"./chunk-H4RCKWJA.js";import"./chunk-S2GAEH2F.js";import"./chunk-DBXN7I2X.js";import"./chunk-QIJLFPWE.js";export{f as daemonVoiceCheck,b as doctor,e as nodeVersionSupported,a as runDoctorChecks,c as runNotificationChecks,d as runReminderChecks};
2
+ //# sourceMappingURL=doctor-OXR3VXX6.js.map
package/dist/index.d.ts CHANGED
@@ -4429,30 +4429,81 @@ declare const daemonConfigSchema: z.ZodObject<{
4429
4429
  * ready-made choices. Held during Focus. macOS only. */
4430
4430
  popup: z.ZodDefault<z.ZodObject<{
4431
4431
  enabled: z.ZodDefault<z.ZodBoolean>;
4432
+ /** "card": a small web window; "dialog": plain macOS dialogs. */
4433
+ style: z.ZodDefault<z.ZodEnum<["card", "dialog"]>>;
4434
+ /** The card's colours; "system" follows light or dark mode. */
4435
+ theme: z.ZodDefault<z.ZodEnum<["system", "light", "dark"]>>;
4432
4436
  /** Speak a short line when it opens. */
4433
4437
  speak: z.ZodDefault<z.ZodBoolean>;
4434
4438
  /** A macOS voice name for `say -v`. Unset: the system voice. */
4435
4439
  voice: z.ZodOptional<z.ZodString>;
4436
- /** A system sound from /System/Library/Sounds; "" for none. */
4440
+ /** "chime" (a soft chime played by the card), a system sound from
4441
+ * /System/Library/Sounds like Glass, or "" for none. */
4437
4442
  sound: z.ZodDefault<z.ZodString>;
4438
4443
  volume: z.ZodDefault<z.ZodNumber>;
4439
4444
  /** Seconds the popup waits for an answer; then the card stays in the inbox. */
4440
4445
  timeoutSeconds: z.ZodDefault<z.ZodNumber>;
4441
4446
  }, "strip", z.ZodTypeAny, {
4442
4447
  enabled: boolean;
4448
+ style: "card" | "dialog";
4443
4449
  sound: string;
4444
4450
  volume: number;
4451
+ theme: "system" | "light" | "dark";
4445
4452
  speak: boolean;
4446
4453
  timeoutSeconds: number;
4447
4454
  voice?: string | undefined;
4448
4455
  }, {
4449
4456
  enabled?: boolean | undefined;
4457
+ style?: "card" | "dialog" | undefined;
4450
4458
  voice?: string | undefined;
4451
4459
  sound?: string | undefined;
4452
4460
  volume?: number | undefined;
4461
+ theme?: "system" | "light" | "dark" | undefined;
4453
4462
  speak?: boolean | undefined;
4454
4463
  timeoutSeconds?: number | undefined;
4455
4464
  }>>;
4465
+ /** Check-ins (src/approvals/checkin.ts): a few times a day, waiting cards
4466
+ * come back to the Mac card and the operator's open Apple Reminders get
4467
+ * a card written by the agent that owns them. macOS only. */
4468
+ checkin: z.ZodDefault<z.ZodObject<{
4469
+ enabled: z.ZodDefault<z.ZodBoolean>;
4470
+ /** Local times of a normal pass: reminders due soon, and waiting cards. */
4471
+ times: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4472
+ /** Local time of the daily pass: every open reminder. */
4473
+ dailyAt: z.ZodDefault<z.ZodString>;
4474
+ /** IANA timezone for the times. Unset: this machine's. */
4475
+ timezone: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
4476
+ /** The operator's Reminders lists to look at. */
4477
+ lists: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4478
+ /** Agent that writes cards for reminders without an agentx trailer. */
4479
+ agent: z.ZodOptional<z.ZodString>;
4480
+ /** A normal pass takes reminders due within this many hours, or overdue. */
4481
+ dueWithinHours: z.ZodDefault<z.ZodNumber>;
4482
+ /** Most agents one pass asks to write a card, whatever they answer. */
4483
+ maxAsksPerPass: z.ZodDefault<z.ZodNumber>;
4484
+ /** How long an agent may take to write one card. */
4485
+ composeTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
4486
+ }, "strip", z.ZodTypeAny, {
4487
+ enabled: boolean;
4488
+ times: string[];
4489
+ dailyAt: string;
4490
+ lists: string[];
4491
+ dueWithinHours: number;
4492
+ maxAsksPerPass: number;
4493
+ composeTimeoutSeconds: number;
4494
+ agent?: string | undefined;
4495
+ timezone?: string | undefined;
4496
+ }, {
4497
+ enabled?: boolean | undefined;
4498
+ agent?: string | undefined;
4499
+ timezone?: string | undefined;
4500
+ times?: string[] | undefined;
4501
+ dailyAt?: string | undefined;
4502
+ lists?: string[] | undefined;
4503
+ dueWithinHours?: number | undefined;
4504
+ maxAsksPerPass?: number | undefined;
4505
+ composeTimeoutSeconds?: number | undefined;
4506
+ }>>;
4456
4507
  }, "strip", z.ZodTypeAny, {
4457
4508
  digest: {
4458
4509
  enabled: boolean;
@@ -4470,12 +4521,25 @@ declare const daemonConfigSchema: z.ZodObject<{
4470
4521
  notifyAgent: boolean;
4471
4522
  popup: {
4472
4523
  enabled: boolean;
4524
+ style: "card" | "dialog";
4473
4525
  sound: string;
4474
4526
  volume: number;
4527
+ theme: "system" | "light" | "dark";
4475
4528
  speak: boolean;
4476
4529
  timeoutSeconds: number;
4477
4530
  voice?: string | undefined;
4478
4531
  };
4532
+ checkin: {
4533
+ enabled: boolean;
4534
+ times: string[];
4535
+ dailyAt: string;
4536
+ lists: string[];
4537
+ dueWithinHours: number;
4538
+ maxAsksPerPass: number;
4539
+ composeTimeoutSeconds: number;
4540
+ agent?: string | undefined;
4541
+ timezone?: string | undefined;
4542
+ };
4479
4543
  }, {
4480
4544
  digest?: {
4481
4545
  enabled?: boolean | undefined;
@@ -4493,12 +4557,25 @@ declare const daemonConfigSchema: z.ZodObject<{
4493
4557
  notifyAgent?: boolean | undefined;
4494
4558
  popup?: {
4495
4559
  enabled?: boolean | undefined;
4560
+ style?: "card" | "dialog" | undefined;
4496
4561
  voice?: string | undefined;
4497
4562
  sound?: string | undefined;
4498
4563
  volume?: number | undefined;
4564
+ theme?: "system" | "light" | "dark" | undefined;
4499
4565
  speak?: boolean | undefined;
4500
4566
  timeoutSeconds?: number | undefined;
4501
4567
  } | undefined;
4568
+ checkin?: {
4569
+ enabled?: boolean | undefined;
4570
+ agent?: string | undefined;
4571
+ timezone?: string | undefined;
4572
+ times?: string[] | undefined;
4573
+ dailyAt?: string | undefined;
4574
+ lists?: string[] | undefined;
4575
+ dueWithinHours?: number | undefined;
4576
+ maxAsksPerPass?: number | undefined;
4577
+ composeTimeoutSeconds?: number | undefined;
4578
+ } | undefined;
4502
4579
  }>>;
4503
4580
  /** How a daemon stop treats runs still in flight. */
4504
4581
  shutdown: z.ZodDefault<z.ZodObject<{
@@ -4972,6 +5049,10 @@ declare const daemonConfigSchema: z.ZodObject<{
4972
5049
  }, "strip", z.ZodTypeAny, {
4973
5050
  provider: "system" | "elevenlabs";
4974
5051
  fallback: "system" | "none";
5052
+ card: {
5053
+ timeout: number;
5054
+ maxHeight: number;
5055
+ };
4975
5056
  locale: string;
4976
5057
  stt: "auto" | "local" | "elevenlabs";
4977
5058
  allowUnmeasured: boolean;
@@ -4982,16 +5063,16 @@ declare const daemonConfigSchema: z.ZodObject<{
4982
5063
  talk: string;
4983
5064
  paste: string;
4984
5065
  };
4985
- card: {
4986
- timeout: number;
4987
- maxHeight: number;
4988
- };
4989
5066
  system?: string | Record<string, string> | undefined;
4990
5067
  listener?: string | undefined;
4991
5068
  }, {
4992
5069
  system?: string | Record<string, string> | undefined;
4993
5070
  provider?: "system" | "elevenlabs" | undefined;
4994
5071
  fallback?: "system" | "none" | undefined;
5072
+ card?: {
5073
+ timeout?: number | undefined;
5074
+ maxHeight?: number | undefined;
5075
+ } | undefined;
4995
5076
  locale?: string | undefined;
4996
5077
  listener?: string | undefined;
4997
5078
  stt?: "auto" | "local" | "elevenlabs" | undefined;
@@ -5003,10 +5084,6 @@ declare const daemonConfigSchema: z.ZodObject<{
5003
5084
  talk?: string | undefined;
5004
5085
  paste?: string | undefined;
5005
5086
  } | undefined;
5006
- card?: {
5007
- timeout?: number | undefined;
5008
- maxHeight?: number | undefined;
5009
- } | undefined;
5010
5087
  }>>;
5011
5088
  business: z.ZodOptional<z.ZodObject<{
5012
5089
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -6407,6 +6484,10 @@ declare const daemonConfigSchema: z.ZodObject<{
6407
6484
  voice: {
6408
6485
  provider: "system" | "elevenlabs";
6409
6486
  fallback: "system" | "none";
6487
+ card: {
6488
+ timeout: number;
6489
+ maxHeight: number;
6490
+ };
6410
6491
  locale: string;
6411
6492
  stt: "auto" | "local" | "elevenlabs";
6412
6493
  allowUnmeasured: boolean;
@@ -6417,10 +6498,6 @@ declare const daemonConfigSchema: z.ZodObject<{
6417
6498
  talk: string;
6418
6499
  paste: string;
6419
6500
  };
6420
- card: {
6421
- timeout: number;
6422
- maxHeight: number;
6423
- };
6424
6501
  system?: string | Record<string, string> | undefined;
6425
6502
  listener?: string | undefined;
6426
6503
  };
@@ -6727,12 +6804,25 @@ declare const daemonConfigSchema: z.ZodObject<{
6727
6804
  notifyAgent: boolean;
6728
6805
  popup: {
6729
6806
  enabled: boolean;
6807
+ style: "card" | "dialog";
6730
6808
  sound: string;
6731
6809
  volume: number;
6810
+ theme: "system" | "light" | "dark";
6732
6811
  speak: boolean;
6733
6812
  timeoutSeconds: number;
6734
6813
  voice?: string | undefined;
6735
6814
  };
6815
+ checkin: {
6816
+ enabled: boolean;
6817
+ times: string[];
6818
+ dailyAt: string;
6819
+ lists: string[];
6820
+ dueWithinHours: number;
6821
+ maxAsksPerPass: number;
6822
+ composeTimeoutSeconds: number;
6823
+ agent?: string | undefined;
6824
+ timezone?: string | undefined;
6825
+ };
6736
6826
  };
6737
6827
  shutdown: {
6738
6828
  restart: {
@@ -7134,6 +7224,10 @@ declare const daemonConfigSchema: z.ZodObject<{
7134
7224
  system?: string | Record<string, string> | undefined;
7135
7225
  provider?: "system" | "elevenlabs" | undefined;
7136
7226
  fallback?: "system" | "none" | undefined;
7227
+ card?: {
7228
+ timeout?: number | undefined;
7229
+ maxHeight?: number | undefined;
7230
+ } | undefined;
7137
7231
  locale?: string | undefined;
7138
7232
  listener?: string | undefined;
7139
7233
  stt?: "auto" | "local" | "elevenlabs" | undefined;
@@ -7145,10 +7239,6 @@ declare const daemonConfigSchema: z.ZodObject<{
7145
7239
  talk?: string | undefined;
7146
7240
  paste?: string | undefined;
7147
7241
  } | undefined;
7148
- card?: {
7149
- timeout?: number | undefined;
7150
- maxHeight?: number | undefined;
7151
- } | undefined;
7152
7242
  } | undefined;
7153
7243
  graph?: {
7154
7244
  enabled?: boolean | undefined;
@@ -7447,12 +7537,25 @@ declare const daemonConfigSchema: z.ZodObject<{
7447
7537
  notifyAgent?: boolean | undefined;
7448
7538
  popup?: {
7449
7539
  enabled?: boolean | undefined;
7540
+ style?: "card" | "dialog" | undefined;
7450
7541
  voice?: string | undefined;
7451
7542
  sound?: string | undefined;
7452
7543
  volume?: number | undefined;
7544
+ theme?: "system" | "light" | "dark" | undefined;
7453
7545
  speak?: boolean | undefined;
7454
7546
  timeoutSeconds?: number | undefined;
7455
7547
  } | undefined;
7548
+ checkin?: {
7549
+ enabled?: boolean | undefined;
7550
+ agent?: string | undefined;
7551
+ timezone?: string | undefined;
7552
+ times?: string[] | undefined;
7553
+ dailyAt?: string | undefined;
7554
+ lists?: string[] | undefined;
7555
+ dueWithinHours?: number | undefined;
7556
+ maxAsksPerPass?: number | undefined;
7557
+ composeTimeoutSeconds?: number | undefined;
7558
+ } | undefined;
7456
7559
  } | undefined;
7457
7560
  shutdown?: {
7458
7561
  restart?: {
@@ -7965,6 +8068,15 @@ declare class A2AMesh {
7965
8068
  }>;
7966
8069
  }
7967
8070
 
8071
+ type PassKind = "daily" | "check";
8072
+ interface PassResult {
8073
+ kind: PassKind;
8074
+ looked: number;
8075
+ carded: string[];
8076
+ skipped: number;
8077
+ failed: number;
8078
+ }
8079
+
7968
8080
  /**
7969
8081
  * Lifecycle events the daemon emits. Keep this list narrow and stable
7970
8082
  * — every event becomes a public contract once a subscriber depends on
@@ -8413,6 +8525,8 @@ declare class AgentXDaemon {
8413
8525
  /** Every minute: expire decision cards, tell agents their results, and
8414
8526
  * send the day's digest when due (src/approvals/sweep.ts). */
8415
8527
  private startApprovalsSweep;
8528
+ /** A check-in pass when one is due, or `force` now. macOS only. */
8529
+ runCheckin(force?: PassKind): Promise<PassResult | null>;
8416
8530
  private stopReminders?;
8417
8531
  /** Hand due Apple Reminders back to the agent that created them (src/reminders). */
8418
8532
  private startReminders;
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,g as xt,ga as Tt,h as $t,ha as Mt,i as Ct,j as Pt,k as bt}from"./chunk-GT6ZDLXU.js";import"./chunk-7GC42WAK.js";import"./chunk-SY7ENNNK.js";import"./chunk-S2GAEH2F.js";import"./chunk-7XB2CVC3.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-EAMSULHF.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-P27P7GFY.js";import"./chunk-QGTQ4PIL.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-PK6EBDBU.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-R5BXA7TL.js";import"./chunk-A4ACRRRP.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-CW42OBFL.js";import"./chunk-SC6Q5M4C.js";import"./chunk-VWTBHLMX.js";import"./chunk-ZPM7SSJM.js";import{a as ht}from"./chunk-IYLQBBON.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-2KOWJNQJ.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-MODPTVA6.js";import{f as gt,g as ft}from"./chunk-72P53PGX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-PDSCFOC4.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-SZZSUW42.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,g as xt,ga as Tt,h as $t,ha as Mt,i as Ct,j as Pt,k as bt}from"./chunk-4EJ65BMF.js";import"./chunk-2XICJMS6.js";import"./chunk-WEUF5WRR.js";import"./chunk-S2GAEH2F.js";import"./chunk-7XB2CVC3.js";import"./chunk-CL53UVOF.js";import"./chunk-ZVP6GB4G.js";import"./chunk-JVJYCR67.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-R7AS5M32.js";import"./chunk-LQJNRSCT.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-6HUDHMAC.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-Y4CYQV7G.js";import"./chunk-4STRKIUA.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import{s as ut}from"./chunk-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-VWTBHLMX.js";import"./chunk-NWP44FEW.js";import{a as ht}from"./chunk-GTZDTKDW.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-GX4U2ILS.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-U6XM4M5V.js";import{f as gt,g as ft}from"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-TVORP6BW.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-DBXN7I2X.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-CPXZWVKN.js";import"./chunk-O5U5NVLR.js";import"./chunk-CL53UVOF.js";import"./chunk-QIJLFPWE.js";export{a as renderProcessesPage};
2
+ //# sourceMappingURL=processes-5EXCTSD5.js.map
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-FSVUSXJB.js";import"./chunk-KEPK7ZZ2.js";import"./chunk-H4RCKWJA.js";import"./chunk-SLQZ4AHG.js";import"./chunk-Z3IP66SL.js";import"./chunk-O5U5NVLR.js";import"./chunk-RKPAVWXF.js";import"./chunk-SZDACK6O.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-4EJ65BMF.js";import"./chunk-2XICJMS6.js";import"./chunk-WEUF5WRR.js";import"./chunk-S2GAEH2F.js";import"./chunk-7XB2CVC3.js";import"./chunk-CL53UVOF.js";import"./chunk-ZVP6GB4G.js";import"./chunk-JVJYCR67.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-EKJG63EJ.js";import"./chunk-R7AS5M32.js";import"./chunk-LQJNRSCT.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-6HUDHMAC.js";import"./chunk-SFQUP3BP.js";import"./chunk-Y4CYQV7G.js";import"./chunk-4STRKIUA.js";import"./chunk-2AXFYDWF.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-VWTBHLMX.js";import"./chunk-NWP44FEW.js";import"./chunk-GTZDTKDW.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-GX4U2ILS.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-U6XM4M5V.js";import"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-TVORP6BW.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-DBXN7I2X.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as buildProgram};
2
+ //# sourceMappingURL=program-X7ROPRQP.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-EAMSULHF.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-2AXFYDWF.js";import"./chunk-IYLQBBON.js";import"./chunk-CECHWYJ2.js";import"./chunk-72P53PGX.js";import"./chunk-WPNRDEHW.js";import"./chunk-PDSCFOC4.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-SZZSUW42.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-VFL66JD2.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-JVJYCR67.js";import"./chunk-AQASR6KR.js";import"./chunk-DP7RTNDM.js";import"./chunk-2AXFYDWF.js";import"./chunk-GTZDTKDW.js";import"./chunk-CECHWYJ2.js";import"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-TVORP6BW.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-DBXN7I2X.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-72BY34SI.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"./chunk-MODPTVA6.js";import"./chunk-72P53PGX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PDSCFOC4.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-SZZSUW42.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_GRAPH_WEIGHT,a as agenticQuery,c as rankCatalogPool};
2
- //# sourceMappingURL=query-MCCWN6XA.js.map
1
+ import{a,b,c}from"./chunk-U6XM4M5V.js";import"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-TVORP6BW.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-DBXN7I2X.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as DEFAULT_GRAPH_WEIGHT,a as agenticQuery,c as rankCatalogPool};
2
+ //# sourceMappingURL=query-AJO3NOO6.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-P27P7GFY.js";import"./chunk-QGTQ4PIL.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-CW42OBFL.js";import"./chunk-SC6Q5M4C.js";import"./chunk-VWTBHLMX.js";import"./chunk-ZPM7SSJM.js";import"./chunk-IYLQBBON.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-2KOWJNQJ.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-MODPTVA6.js";import"./chunk-72P53PGX.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PDSCFOC4.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-SZZSUW42.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-43X3DQTI.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-R7AS5M32.js";import"./chunk-LQJNRSCT.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-VWTBHLMX.js";import"./chunk-NWP44FEW.js";import"./chunk-GTZDTKDW.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-GX4U2ILS.js";import"./chunk-MYVHVJWZ.js";import"./chunk-DWADWDMU.js";import"./chunk-23A5K5UW.js";import"./chunk-QD6IICK7.js";import"./chunk-CECHWYJ2.js";import"./chunk-U6XM4M5V.js";import"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-TVORP6BW.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-DBXN7I2X.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-AFNYREN2.js.map
@@ -1,2 +1,2 @@
1
- import{q as m,t as p,v as d,w as x}from"./chunk-PDSCFOC4.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-SZZSUW42.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-GSGBUGNG.js.map
1
+ import{q as m,t as p,v as d,w as x}from"./chunk-TVORP6BW.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-DBXN7I2X.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-Q74NYFRJ.js.map
@@ -1,4 +1,4 @@
1
- import{b as I}from"./chunk-SY7ENNNK.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PDSCFOC4.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-SZZSUW42.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-WEUF5WRR.js";import"./chunk-WP6KLXTP.js";import"./chunk-2GIDVZ4H.js";import"./chunk-TVORP6BW.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.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-4Z6QTMN2.js.map
4
+ //# sourceMappingURL=review-candidates-ZBBIPFJT.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"./chunk-2KOWJNQJ.js";import"./chunk-PDSCFOC4.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-SZZSUW42.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
2
- //# sourceMappingURL=routing-T66LO3JY.js.map
1
+ import{a,b}from"./chunk-GX4U2ILS.js";import"./chunk-TVORP6BW.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as cheapModelForEngine,b as routeTaskModel};
2
+ //# sourceMappingURL=routing-7VU524EZ.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b}from"./chunk-IMVW5ZSY.js";import"./chunk-RKPAVWXF.js";import"./chunk-4STRKIUA.js";import"./chunk-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.js";import"./chunk-QIJLFPWE.js";export{b as resolveScheduleCaller,a as runScheduleTool};
2
+ //# sourceMappingURL=schedule-tool-6RRXRW5K.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-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.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-WA4KTCCU.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-PDSCFOC4.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-SZZSUW42.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-4H7TTV5X.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-TVORP6BW.js";import"./chunk-FX3D7YON.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-5MUJZODV.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.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-MKY332GD.js.map
@@ -1,2 +1,2 @@
1
- import{v as S,w}from"./chunk-PDSCFOC4.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-SZZSUW42.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-YCVNOR5Q.js.map
1
+ import{v as S,w}from"./chunk-TVORP6BW.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-DBXN7I2X.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-FZX63JK5.js.map
@@ -1,2 +1,2 @@
1
- import{b as a}from"./chunk-SC6Q5M4C.js";import"./chunk-SZZSUW42.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-6UGUPYW4.js.map
1
+ import{b as a}from"./chunk-53J2D2ZJ.js";import"./chunk-DBXN7I2X.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-RNDSUIYU.js.map
@@ -1,4 +1,4 @@
1
- import{b as u}from"./chunk-LQ3PEMBH.js";import"./chunk-RKPAVWXF.js";import{d as h}from"./chunk-R5BXA7TL.js";import"./chunk-A4ACRRRP.js";import"./chunk-CW42OBFL.js";import"./chunk-SC6Q5M4C.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-SZZSUW42.js";import"./chunk-QIJLFPWE.js";var $=new Set(["cron","heartbeat","api","a2a","mesh","approvals"]);function f(e){return typeof e=="string"?e.trim():""}async function v(e,i){let c=i.fetch??fetch,d=i.daemonUrl.replace(/\/$/,""),s=(f(e.action)||"create").toLowerCase(),r=u(e,i.env??process.env);if(s==="status"){let o=f(e.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 t=a.card;if(r&&t.raised_by!==r.agentId)return`Error: card "${o}" was raised by another agent.`;if(t.status==="pending")return`Card ${t.id} is still waiting for the operator. It expires ${t.expires}; then "${t.if_silent}" applies.`;if(t.status==="decided"){let p=t.verdict==="yes"?h(t).join(`
1
+ import{b as u}from"./chunk-IMVW5ZSY.js";import"./chunk-RKPAVWXF.js";import{f as h}from"./chunk-Y4CYQV7G.js";import"./chunk-4STRKIUA.js";import"./chunk-FWDWHZ6H.js";import"./chunk-53J2D2ZJ.js";import"./chunk-FCPTN6NF.js";import"./chunk-7I7IEX4S.js";import"./chunk-DBXN7I2X.js";import"./chunk-QIJLFPWE.js";var $=new Set(["cron","heartbeat","api","a2a","mesh","approvals"]);function f(e){return typeof e=="string"?e.trim():""}async function v(e,i){let c=i.fetch??fetch,d=i.daemonUrl.replace(/\/$/,""),s=(f(e.action)||"create").toLowerCase(),r=u(e,i.env??process.env);if(s==="status"){let o=f(e.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 t=a.card;if(r&&t.raised_by!==r.agentId)return`Error: card "${o}" was raised by another agent.`;if(t.status==="pending")return`Card ${t.id} is still waiting for the operator. It expires ${t.expires}; then "${t.if_silent}" applies.`;if(t.status==="decided"){let p=t.verdict==="yes"?h(t).join(`
2
2
  `):"";return`Card ${t.id}: the operator said ${String(t.verdict).toUpperCase()}.${t.note?` Note: ${t.note}`:""}${p?`
3
- ${p}`:""}`}return`Card ${t.id} expired unanswered; the default applied: ${t.outcome??t.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&&!$.has(r.channel)?{channel:r.channel,chatId:r.chatId,...r.accountId?{accountId:r.accountId}:{}}:void 0,y={title:e.title,ask:e.ask,recommend:e.recommend,if_silent:e.if_silent,expires:e.expires,source:e.source,choices:e.choices,draft:e.draft,say:e.say,raised_by:r.agentId,...l?{reply:l}:{}};try{let o=await c(`${d}/approvals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y),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{v as runApprovalTool};
4
- //# sourceMappingURL=tool-EID3ZKQK.js.map
3
+ ${p}`:""}`}return`Card ${t.id} expired unanswered; the default applied: ${t.outcome??t.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&&!$.has(r.channel)?{channel:r.channel,chatId:r.chatId,...r.accountId?{accountId:r.accountId}:{}}:void 0,y={title:e.title,ask:e.ask,recommend:e.recommend,if_silent:e.if_silent,expires:e.expires,source:e.source,choices:e.choices,draft:e.draft,say:e.say,context:e.context,raised_by:r.agentId,...l?{reply:l}:{}};try{let o=await c(`${d}/approvals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y),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{v as runApprovalTool};
4
+ //# sourceMappingURL=tool-XBSFEGWW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/approvals/tool.ts"],"sourcesContent":["import { resolveScheduleCaller } from \"@/crons/schedule-tool\"\nimport { answerLines } from \"./choices\"\n\n// --- Agent-facing `agentx_approval` tool ---\n//\n// Lets an agent raise a decision card instead of asking the operator in\n// chat, and check what happened to one. It talks to the daemon's\n// /approvals endpoints, which never decide: there is no action here that\n// approves or rejects anything.\n\nexport type ApprovalToolAction = \"create\" | \"status\"\n\nexport interface ApprovalToolDeps {\n daemonUrl: string\n fetch?: typeof fetch\n env?: NodeJS.ProcessEnv\n}\n\nconst NON_CHAT_CHANNELS = new Set([\"cron\", \"heartbeat\", \"api\", \"a2a\", \"mesh\", \"approvals\"])\n\nfunction str(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\"\n}\n\n/** Returns the text the agent sees. Every refusal is text, never a throw. */\nexport async function runApprovalTool(args: Record<string, unknown>, deps: ApprovalToolDeps): Promise<string> {\n const doFetch = deps.fetch ?? fetch\n const base = deps.daemonUrl.replace(/\\/$/, \"\")\n const action = (str(args.action) || \"create\").toLowerCase() as ApprovalToolAction\n const caller = resolveScheduleCaller(args, deps.env ?? process.env)\n\n if (action === \"status\") {\n const id = str(args.id)\n if (!id) return \"Error: `id` is required for status (the card id you got when you raised it).\"\n try {\n const res = await doFetch(`${base}/approvals/${encodeURIComponent(id)}`, { signal: AbortSignal.timeout(10_000) })\n const data = await res.json().catch(() => ({})) as any\n if (!res.ok) return `Error: ${data?.error || `HTTP ${res.status}`}`\n const c = data.card\n if (caller && c.raised_by !== caller.agentId) return `Error: card \"${id}\" was raised by another agent.`\n if (c.status === \"pending\") return `Card ${c.id} is still waiting for the operator. It expires ${c.expires}; then \"${c.if_silent}\" applies.`\n if (c.status === \"decided\") {\n const picked = c.verdict === \"yes\" ? answerLines(c).join(\"\\n\") : \"\"\n return `Card ${c.id}: the operator said ${String(c.verdict).toUpperCase()}.${c.note ? ` Note: ${c.note}` : \"\"}${picked ? `\\n${picked}` : \"\"}`\n }\n return `Card ${c.id} expired unanswered; the default applied: ${c.outcome ?? c.if_silent}.`\n } catch (e: any) {\n return `Error: couldn't reach the daemon (${e?.message ?? e}).`\n }\n }\n\n if (action !== \"create\") return `Error: unknown action \"${action}\". Use create or status.`\n if (!caller) return \"Error: couldn't tell which agent you are. Pass callerAgentId.\"\n\n const reply = caller.channel && caller.chatId && !NON_CHAT_CHANNELS.has(caller.channel)\n ? { channel: caller.channel, chatId: caller.chatId, ...(caller.accountId ? { accountId: caller.accountId } : {}) }\n : undefined\n const payload = {\n title: args.title,\n ask: args.ask,\n recommend: args.recommend,\n if_silent: args.if_silent,\n expires: args.expires,\n source: args.source,\n choices: args.choices,\n draft: args.draft,\n say: args.say,\n context: args.context,\n raised_by: caller.agentId,\n ...(reply ? { reply } : {}),\n }\n try {\n const res = await doFetch(`${base}/approvals`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n signal: AbortSignal.timeout(10_000),\n })\n const data = await res.json().catch(() => ({})) as any\n if (!res.ok) return `Error: ${data?.error || `HTTP ${res.status}`}`\n const c = data.card\n return [\n `Decision card ${c.id} is in the operator's Approvals inbox.`,\n `If nobody answers by ${c.expires}, \"${c.if_silent}\" applies.`,\n \"You will get a message with the result. Tell the requester it is waiting for approval; don't ask the operator again in chat.\",\n ].join(\" \")\n } catch (e: any) {\n return `Error: couldn't reach the daemon (${e?.message ?? e}).`\n }\n}\n"],"mappings":"gTAkBA,IAAMA,EAAoB,IAAI,IAAI,CAAC,OAAQ,YAAa,MAAO,MAAO,OAAQ,WAAW,CAAC,EAE1F,SAASC,EAAIC,EAAoB,CAC/B,OAAO,OAAOA,GAAM,SAAWA,EAAE,KAAK,EAAI,EAC5C,CAGA,eAAsBC,EAAgBC,EAA+BC,EAAyC,CAC5G,IAAMC,EAAUD,EAAK,OAAS,MACxBE,EAAOF,EAAK,UAAU,QAAQ,MAAO,EAAE,EACvCG,GAAUP,EAAIG,EAAK,MAAM,GAAK,UAAU,YAAY,EACpDK,EAASC,EAAsBN,EAAMC,EAAK,KAAO,QAAQ,GAAG,EAElE,GAAIG,IAAW,SAAU,CACvB,IAAMG,EAAKV,EAAIG,EAAK,EAAE,EACtB,GAAI,CAACO,EAAI,MAAO,+EAChB,GAAI,CACF,IAAMC,EAAM,MAAMN,EAAQ,GAAGC,eAAkB,mBAAmBI,CAAE,IAAK,CAAE,OAAQ,YAAY,QAAQ,GAAM,CAAE,CAAC,EAC1GE,EAAO,MAAMD,EAAI,KAAK,EAAE,MAAM,KAAO,CAAC,EAAE,EAC9C,GAAI,CAACA,EAAI,GAAI,MAAO,UAAUC,GAAM,OAAS,QAAQD,EAAI,WACzD,IAAME,EAAID,EAAK,KACf,GAAIJ,GAAUK,EAAE,YAAcL,EAAO,QAAS,MAAO,gBAAgBE,kCACrE,GAAIG,EAAE,SAAW,UAAW,MAAO,QAAQA,EAAE,oDAAoDA,EAAE,kBAAkBA,EAAE,sBACvH,GAAIA,EAAE,SAAW,UAAW,CAC1B,IAAMC,EAASD,EAAE,UAAY,MAAQE,EAAYF,CAAC,EAAE,KAAK;AAAA,CAAI,EAAI,GACjE,MAAO,QAAQA,EAAE,yBAAyB,OAAOA,EAAE,OAAO,EAAE,YAAY,KAAKA,EAAE,KAAO,UAAUA,EAAE,OAAS,KAAKC,EAAS;AAAA,EAAKA,IAAW,KAE3I,MAAO,QAAQD,EAAE,+CAA+CA,EAAE,SAAWA,EAAE,YACjF,OAASG,EAAP,CACA,MAAO,qCAAqCA,GAAG,SAAWA,KAC5D,EAGF,GAAIT,IAAW,SAAU,MAAO,0BAA0BA,4BAC1D,GAAI,CAACC,EAAQ,MAAO,gEAEpB,IAAMS,EAAQT,EAAO,SAAWA,EAAO,QAAU,CAACT,EAAkB,IAAIS,EAAO,OAAO,EAClF,CAAE,QAASA,EAAO,QAAS,OAAQA,EAAO,OAAQ,GAAIA,EAAO,UAAY,CAAE,UAAWA,EAAO,SAAU,EAAI,CAAC,CAAG,EAC/G,OACEU,EAAU,CACd,MAAOf,EAAK,MACZ,IAAKA,EAAK,IACV,UAAWA,EAAK,UAChB,UAAWA,EAAK,UAChB,QAASA,EAAK,QACd,OAAQA,EAAK,OACb,QAASA,EAAK,QACd,MAAOA,EAAK,MACZ,IAAKA,EAAK,IACV,QAASA,EAAK,QACd,UAAWK,EAAO,QAClB,GAAIS,EAAQ,CAAE,MAAAA,CAAM,EAAI,CAAC,CAC3B,EACA,GAAI,CACF,IAAMN,EAAM,MAAMN,EAAQ,GAAGC,cAAkB,CAC7C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAUY,CAAO,EAC5B,OAAQ,YAAY,QAAQ,GAAM,CACpC,CAAC,EACKN,EAAO,MAAMD,EAAI,KAAK,EAAE,MAAM,KAAO,CAAC,EAAE,EAC9C,GAAI,CAACA,EAAI,GAAI,MAAO,UAAUC,GAAM,OAAS,QAAQD,EAAI,WACzD,IAAME,EAAID,EAAK,KACf,MAAO,CACL,iBAAiBC,EAAE,2CACnB,wBAAwBA,EAAE,aAAaA,EAAE,sBACzC,8HACF,EAAE,KAAK,GAAG,CACZ,OAASG,EAAP,CACA,MAAO,qCAAqCA,GAAG,SAAWA,KAC5D,CACF","names":["NON_CHAT_CHANNELS","str","v","runApprovalTool","args","deps","doFetch","base","action","caller","resolveScheduleCaller","id","res","data","c","picked","answerLines","e","reply","payload"]}
@@ -0,0 +1,2 @@
1
+ import"./chunk-VWTBHLMX.js";import{a as b}from"./chunk-NWP44FEW.js";import{a}from"./chunk-GTZDTKDW.js";import"./chunk-CECHWYJ2.js";import{a as c}from"./chunk-U6XM4M5V.js";import"./chunk-JQXP3JWF.js";import"./chunk-WPNRDEHW.js";import"./chunk-2GIDVZ4H.js";import"./chunk-TVORP6BW.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-DBXN7I2X.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{b as WikiHub,a as WikiStore,c as agenticQuery};
2
+ //# sourceMappingURL=wiki-ZOK6XGIX.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentix-cli",
3
- "version": "0.76.0",
3
+ "version": "0.78.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": {