@maudecode/talaria-web-contracts 1.18.0 → 1.19.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 (82) hide show
  1. package/dist/gateway-session.d.ts +229 -0
  2. package/dist/gateway-session.js +46 -0
  3. package/dist/gateway-session.js.map +1 -0
  4. package/dist/index.d.ts +3 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/openapi.js +4 -0
  8. package/dist/openapi.js.map +1 -1
  9. package/dist/router.d.ts +4265 -220
  10. package/dist/routes/automation.d.ts +104 -24
  11. package/dist/routes/automation.js +6 -3
  12. package/dist/routes/automation.js.map +1 -1
  13. package/dist/routes/chat.d.ts +1338 -43
  14. package/dist/routes/chat.js +5 -1
  15. package/dist/routes/chat.js.map +1 -1
  16. package/dist/routes/core.d.ts +17 -6
  17. package/dist/routes/core.js +2 -2
  18. package/dist/routes/core.js.map +1 -1
  19. package/dist/routes/raw.js +1 -1
  20. package/dist/routes/raw.js.map +1 -1
  21. package/dist/routes/sessions.d.ts +2367 -156
  22. package/dist/routes/sessions.js +18 -7
  23. package/dist/routes/sessions.js.map +1 -1
  24. package/dist/routes/settings.d.ts +427 -9
  25. package/dist/routes/settings.js +2 -2
  26. package/dist/routes/settings.js.map +1 -1
  27. package/dist/routes/tools.d.ts +645 -18
  28. package/dist/routes/tools.js +65 -8
  29. package/dist/routes/tools.js.map +1 -1
  30. package/dist/run-status.d.ts +39 -0
  31. package/dist/run-status.js +13 -0
  32. package/dist/run-status.js.map +1 -0
  33. package/dist/sidecar/methods.d.ts +1074 -17
  34. package/dist/sidecar/methods.js +9 -2
  35. package/dist/sidecar/methods.js.map +1 -1
  36. package/dist/sidecar/namespaces.d.ts +1469 -33
  37. package/dist/sidecar/namespaces.js +298 -31
  38. package/dist/sidecar/namespaces.js.map +1 -1
  39. package/dist/sidecar/runtime.d.ts +61 -0
  40. package/dist/sidecar/runtime.js +20 -0
  41. package/dist/sidecar/runtime.js.map +1 -1
  42. package/dist/sidecar/version.d.ts +1 -1
  43. package/dist/sidecar/version.js +1 -1
  44. package/dist/speed.d.ts +14 -0
  45. package/dist/speed.js +6 -0
  46. package/dist/speed.js.map +1 -0
  47. package/dist/sse.d.ts +797 -5
  48. package/dist/sse.js +24 -7
  49. package/dist/sse.js.map +1 -1
  50. package/dist/transcribe-stream.d.ts +34 -0
  51. package/dist/transcribe-stream.js +23 -0
  52. package/dist/transcribe-stream.js.map +1 -0
  53. package/dist/views.d.ts +2097 -127
  54. package/dist/views.js +273 -47
  55. package/dist/views.js.map +1 -1
  56. package/fixtures/sidecar/aux.json +134 -0
  57. package/fixtures/sidecar/chat.json +14 -0
  58. package/fixtures/sidecar/checkpoints.json +6 -6
  59. package/fixtures/sidecar/commands.json +216 -108
  60. package/fixtures/sidecar/config.json +15 -0
  61. package/fixtures/sidecar/connectors.json +218 -0
  62. package/fixtures/sidecar/cron.json +1001 -31
  63. package/fixtures/sidecar/gateway.json +39 -0
  64. package/fixtures/sidecar/goals.json +5 -3
  65. package/fixtures/sidecar/kanban.json +139 -49
  66. package/fixtures/sidecar/memory.json +50 -0
  67. package/fixtures/sidecar/models.json +122 -0
  68. package/fixtures/sidecar/personalities.json +92 -0
  69. package/fixtures/sidecar/plugins.json +116 -27
  70. package/fixtures/sidecar/process.json +31 -0
  71. package/fixtures/sidecar/profiles.json +2 -0
  72. package/fixtures/sidecar/providers.json +14 -1
  73. package/fixtures/sidecar/rpc.json +35 -1
  74. package/fixtures/sidecar/runtime.json +130 -14
  75. package/fixtures/sidecar/skills.json +256 -13
  76. package/fixtures/sidecar/state_db.json +19 -2
  77. package/fixtures/sidecar/stt.json +62 -1
  78. package/fixtures/sidecar/text.json +20 -2
  79. package/fixtures/sidecar/toolsets.json +468 -0
  80. package/fixtures/sidecar/usage.json +22 -2
  81. package/fixtures/sidecar/write_approval.json +98 -0
  82. package/package.json +1 -1
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "result": {
23
23
  "job": {
24
- "id": "5b7d7ff9ceb0",
24
+ "id": "9dc6d23bb99b",
25
25
  "name": "hello",
26
26
  "prompt": "say hi",
27
27
  "skills": [],
@@ -49,8 +49,8 @@
49
49
  "state": "scheduled",
50
50
  "paused_at": null,
51
51
  "paused_reason": null,
52
- "created_at": "2026-10-11T12:29:08.624751-04:00",
53
- "next_run_at": "2026-10-11T13:29:08.630084-04:00",
52
+ "created_at": "2026-10-14T00:43:30.238713-04:00",
53
+ "next_run_at": "2026-10-14T01:43:30.239935-04:00",
54
54
  "last_run_at": null,
55
55
  "last_status": null,
56
56
  "last_error": null,
@@ -168,10 +168,10 @@
168
168
  },
169
169
  {
170
170
  "params": {
171
- "job_id": "5b7d7ff9ceb0"
171
+ "job_id": "9dc6d23bb99b"
172
172
  },
173
173
  "result": {
174
- "job_id": "5b7d7ff9ceb0",
174
+ "job_id": "9dc6d23bb99b",
175
175
  "running": false,
176
176
  "elapsed": 0.0
177
177
  }
@@ -181,11 +181,11 @@
181
181
  {
182
182
  "params": {
183
183
  "profile_home": "<home>",
184
- "job_id": "5b7d7ff9ceb0"
184
+ "job_id": "9dc6d23bb99b"
185
185
  },
186
186
  "result": {
187
187
  "job": {
188
- "id": "5b7d7ff9ceb0",
188
+ "id": "9dc6d23bb99b",
189
189
  "name": "hello",
190
190
  "prompt": "say hi",
191
191
  "skills": [],
@@ -213,8 +213,8 @@
213
213
  "state": "scheduled",
214
214
  "paused_at": null,
215
215
  "paused_reason": null,
216
- "created_at": "2026-10-11T12:29:08.624751-04:00",
217
- "next_run_at": "2026-10-11T13:29:08.630084-04:00",
216
+ "created_at": "2026-10-14T00:43:30.238713-04:00",
217
+ "next_run_at": "2026-10-14T01:43:30.239935-04:00",
218
218
  "last_run_at": null,
219
219
  "last_status": null,
220
220
  "last_error": null,
@@ -238,7 +238,7 @@
238
238
  {
239
239
  "params": {
240
240
  "profile_home": "<home>",
241
- "job_id": "5b7d7ff9ceb0",
241
+ "job_id": "9dc6d23bb99b",
242
242
  "updates": {
243
243
  "name": "hello2",
244
244
  "continuity": true
@@ -246,7 +246,7 @@
246
246
  },
247
247
  "result": {
248
248
  "job": {
249
- "id": "5b7d7ff9ceb0",
249
+ "id": "9dc6d23bb99b",
250
250
  "name": "hello2",
251
251
  "prompt": "say hi",
252
252
  "skills": [],
@@ -276,8 +276,8 @@
276
276
  "state": "scheduled",
277
277
  "paused_at": null,
278
278
  "paused_reason": null,
279
- "created_at": "2026-10-11T12:29:08.624751-04:00",
280
- "next_run_at": "2026-10-11T13:29:08.630084-04:00",
279
+ "created_at": "2026-10-14T00:43:30.238713-04:00",
280
+ "next_run_at": "2026-10-14T01:43:30.239935-04:00",
281
281
  "last_run_at": null,
282
282
  "last_status": null,
283
283
  "last_error": null,
@@ -301,11 +301,11 @@
301
301
  {
302
302
  "params": {
303
303
  "profile_home": "<home>",
304
- "job_id": "5b7d7ff9ceb0"
304
+ "job_id": "9dc6d23bb99b"
305
305
  },
306
306
  "result": {
307
307
  "job": {
308
- "id": "5b7d7ff9ceb0",
308
+ "id": "9dc6d23bb99b",
309
309
  "name": "hello2",
310
310
  "prompt": "say hi",
311
311
  "skills": [],
@@ -333,10 +333,10 @@
333
333
  },
334
334
  "enabled": false,
335
335
  "state": "paused",
336
- "paused_at": "2026-10-11T12:29:09.314436-04:00",
336
+ "paused_at": "2026-10-14T00:43:31.104784-04:00",
337
337
  "paused_reason": null,
338
- "created_at": "2026-10-11T12:29:08.624751-04:00",
339
- "next_run_at": "2026-10-11T13:29:08.630084-04:00",
338
+ "created_at": "2026-10-14T00:43:30.238713-04:00",
339
+ "next_run_at": "2026-10-14T01:43:30.239935-04:00",
340
340
  "last_run_at": null,
341
341
  "last_status": null,
342
342
  "last_error": null,
@@ -356,11 +356,11 @@
356
356
  {
357
357
  "params": {
358
358
  "profile_home": "<home>",
359
- "job_id": "5b7d7ff9ceb0"
359
+ "job_id": "9dc6d23bb99b"
360
360
  },
361
361
  "result": {
362
362
  "job": {
363
- "id": "5b7d7ff9ceb0",
363
+ "id": "9dc6d23bb99b",
364
364
  "name": "hello2",
365
365
  "prompt": "say hi",
366
366
  "skills": [],
@@ -390,8 +390,8 @@
390
390
  "state": "scheduled",
391
391
  "paused_at": null,
392
392
  "paused_reason": null,
393
- "created_at": "2026-10-11T12:29:08.624751-04:00",
394
- "next_run_at": "2026-10-11T13:29:09.315555-04:00",
393
+ "created_at": "2026-10-14T00:43:30.238713-04:00",
394
+ "next_run_at": "2026-10-14T01:43:31.105935-04:00",
395
395
  "last_run_at": null,
396
396
  "last_status": null,
397
397
  "last_error": null,
@@ -411,15 +411,15 @@
411
411
  {
412
412
  "params": {
413
413
  "profile_home": "<home>",
414
- "job_id": "5b7d7ff9ceb0"
414
+ "job_id": "9dc6d23bb99b"
415
415
  },
416
416
  "result": {
417
- "job_id": "5b7d7ff9ceb0",
417
+ "job_id": "9dc6d23bb99b",
418
418
  "runs": [
419
419
  {
420
420
  "filename": "2026-09-20T12-00-00.md",
421
421
  "size": 83,
422
- "modified": 1791736149.1794026,
422
+ "modified": 1791953010.9781847,
423
423
  "usage": {
424
424
  "model": "test-model",
425
425
  "input_tokens": 12,
@@ -437,10 +437,10 @@
437
437
  {
438
438
  "params": {
439
439
  "profile_home": "<home>",
440
- "job_id": "5b7d7ff9ceb0"
440
+ "job_id": "9dc6d23bb99b"
441
441
  },
442
442
  "result": {
443
- "job_id": "5b7d7ff9ceb0",
443
+ "job_id": "9dc6d23bb99b",
444
444
  "outputs": [
445
445
  {
446
446
  "filename": "2026-09-20T12-00-00.md",
@@ -454,11 +454,11 @@
454
454
  {
455
455
  "params": {
456
456
  "profile_home": "<home>",
457
- "job_id": "5b7d7ff9ceb0",
457
+ "job_id": "9dc6d23bb99b",
458
458
  "filename": "2026-09-20T12-00-00.md"
459
459
  },
460
460
  "result": {
461
- "job_id": "5b7d7ff9ceb0",
461
+ "job_id": "9dc6d23bb99b",
462
462
  "filename": "2026-09-20T12-00-00.md",
463
463
  "content": "# Cron run\n**Model:** test-model\n**Tokens:** 12 input, 4 output\n\n## Response\nhello\n",
464
464
  "snippet": "hello",
@@ -475,11 +475,981 @@
475
475
  {
476
476
  "params": {
477
477
  "profile_home": "<home>",
478
- "job_id": "5b7d7ff9ceb0"
478
+ "job_id": "9dc6d23bb99b"
479
479
  },
480
480
  "result": {
481
481
  "ok": true,
482
- "job_id": "5b7d7ff9ceb0"
482
+ "job_id": "9dc6d23bb99b"
483
+ }
484
+ }
485
+ ],
486
+ "cron.blueprints": [
487
+ {
488
+ "params": {
489
+ "profile_home": "<home>"
490
+ },
491
+ "result": {
492
+ "blueprints": [
493
+ {
494
+ "key": "morning-brief",
495
+ "title": "Morning briefing",
496
+ "description": "A short daily briefing: today's calendar, weather, and anything urgent waiting on you.",
497
+ "category": "daily",
498
+ "source": "builtin",
499
+ "plugin": null,
500
+ "schedule_label": "daily at 08:00",
501
+ "slots": [
502
+ {
503
+ "name": "time",
504
+ "type": "time",
505
+ "label": "What time?",
506
+ "default": "08:00",
507
+ "options": [],
508
+ "optional": false,
509
+ "strict": true,
510
+ "help": "24h local time, e.g. 08:00"
511
+ },
512
+ {
513
+ "name": "deliver",
514
+ "type": "enum",
515
+ "label": "Where to deliver?",
516
+ "default": "origin",
517
+ "options": [
518
+ "origin",
519
+ "local",
520
+ "telegram",
521
+ "discord",
522
+ "email"
523
+ ],
524
+ "optional": false,
525
+ "strict": false,
526
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
527
+ }
528
+ ]
529
+ },
530
+ {
531
+ "key": "important-mail",
532
+ "title": "Important-mail monitor",
533
+ "description": "Check your inbox periodically and ping you ONLY about mail that actually needs attention.",
534
+ "category": "email",
535
+ "source": "builtin",
536
+ "plugin": null,
537
+ "schedule_label": "every 30 minutes",
538
+ "slots": [
539
+ {
540
+ "name": "interval_min",
541
+ "type": "enum",
542
+ "label": "How often?",
543
+ "default": "30",
544
+ "options": [
545
+ "15",
546
+ "30",
547
+ "60"
548
+ ],
549
+ "optional": false,
550
+ "strict": true,
551
+ "help": "minutes between checks"
552
+ },
553
+ {
554
+ "name": "criteria",
555
+ "type": "text",
556
+ "label": "Only notify me if the mail…",
557
+ "default": "needs a reply today, is from my manager or family, or mentions a deadline",
558
+ "options": [],
559
+ "optional": false,
560
+ "strict": true,
561
+ "help": ""
562
+ },
563
+ {
564
+ "name": "deliver",
565
+ "type": "enum",
566
+ "label": "Where to deliver?",
567
+ "default": "origin",
568
+ "options": [
569
+ "origin",
570
+ "local",
571
+ "telegram",
572
+ "discord",
573
+ "email"
574
+ ],
575
+ "optional": false,
576
+ "strict": false,
577
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
578
+ }
579
+ ]
580
+ },
581
+ {
582
+ "key": "weekly-review",
583
+ "title": "Weekly review",
584
+ "description": "A weekly recap: what got done, what's still open, and what's coming up.",
585
+ "category": "weekly",
586
+ "source": "builtin",
587
+ "plugin": null,
588
+ "schedule_label": "sunday at 18:00",
589
+ "slots": [
590
+ {
591
+ "name": "time",
592
+ "type": "time",
593
+ "label": "What time?",
594
+ "default": "18:00",
595
+ "options": [],
596
+ "optional": false,
597
+ "strict": true,
598
+ "help": "24h local time, e.g. 08:00"
599
+ },
600
+ {
601
+ "name": "day",
602
+ "type": "enum",
603
+ "label": "Which day?",
604
+ "default": "sunday",
605
+ "options": [
606
+ "sunday",
607
+ "monday",
608
+ "friday",
609
+ "saturday"
610
+ ],
611
+ "optional": false,
612
+ "strict": true,
613
+ "help": ""
614
+ },
615
+ {
616
+ "name": "deliver",
617
+ "type": "enum",
618
+ "label": "Where to deliver?",
619
+ "default": "origin",
620
+ "options": [
621
+ "origin",
622
+ "local",
623
+ "telegram",
624
+ "discord",
625
+ "email"
626
+ ],
627
+ "optional": false,
628
+ "strict": false,
629
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
630
+ }
631
+ ]
632
+ },
633
+ {
634
+ "key": "workday-start",
635
+ "title": "Workday start reminder",
636
+ "description": "A weekday nudge with your agenda and top priorities.",
637
+ "category": "daily",
638
+ "source": "builtin",
639
+ "plugin": null,
640
+ "schedule_label": "weekdays at 09:00",
641
+ "slots": [
642
+ {
643
+ "name": "time",
644
+ "type": "time",
645
+ "label": "What time?",
646
+ "default": "09:00",
647
+ "options": [],
648
+ "optional": false,
649
+ "strict": true,
650
+ "help": "24h local time, e.g. 08:00"
651
+ },
652
+ {
653
+ "name": "deliver",
654
+ "type": "enum",
655
+ "label": "Where to deliver?",
656
+ "default": "origin",
657
+ "options": [
658
+ "origin",
659
+ "local",
660
+ "telegram",
661
+ "discord",
662
+ "email"
663
+ ],
664
+ "optional": false,
665
+ "strict": false,
666
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
667
+ }
668
+ ]
669
+ },
670
+ {
671
+ "key": "custom-reminder",
672
+ "title": "Custom reminder",
673
+ "description": "A recurring reminder in your own words, on your schedule.",
674
+ "category": "general",
675
+ "source": "builtin",
676
+ "plugin": null,
677
+ "schedule_label": "everyday at 14:00",
678
+ "slots": [
679
+ {
680
+ "name": "what",
681
+ "type": "text",
682
+ "label": "Remind me to…",
683
+ "default": "take a break and stretch",
684
+ "options": [],
685
+ "optional": false,
686
+ "strict": true,
687
+ "help": ""
688
+ },
689
+ {
690
+ "name": "time",
691
+ "type": "time",
692
+ "label": "What time?",
693
+ "default": "14:00",
694
+ "options": [],
695
+ "optional": false,
696
+ "strict": true,
697
+ "help": "24h local time, e.g. 08:00"
698
+ },
699
+ {
700
+ "name": "recurrence",
701
+ "type": "weekdays",
702
+ "label": "Repeat on",
703
+ "default": "everyday",
704
+ "options": [
705
+ "everyday",
706
+ "weekdays",
707
+ "weekends"
708
+ ],
709
+ "optional": false,
710
+ "strict": true,
711
+ "help": ""
712
+ },
713
+ {
714
+ "name": "deliver",
715
+ "type": "enum",
716
+ "label": "Where to deliver?",
717
+ "default": "origin",
718
+ "options": [
719
+ "origin",
720
+ "local",
721
+ "telegram",
722
+ "discord",
723
+ "email"
724
+ ],
725
+ "optional": false,
726
+ "strict": false,
727
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
728
+ }
729
+ ]
730
+ },
731
+ {
732
+ "key": "evening-winddown",
733
+ "title": "Evening wind-down",
734
+ "description": "An end-of-day check-in: tomorrow's calendar at a glance and anything you should prep tonight.",
735
+ "category": "daily",
736
+ "source": "builtin",
737
+ "plugin": null,
738
+ "schedule_label": "daily at 21:00",
739
+ "slots": [
740
+ {
741
+ "name": "time",
742
+ "type": "time",
743
+ "label": "What time?",
744
+ "default": "21:00",
745
+ "options": [],
746
+ "optional": false,
747
+ "strict": true,
748
+ "help": "24h local time, e.g. 08:00"
749
+ },
750
+ {
751
+ "name": "deliver",
752
+ "type": "enum",
753
+ "label": "Where to deliver?",
754
+ "default": "origin",
755
+ "options": [
756
+ "origin",
757
+ "local",
758
+ "telegram",
759
+ "discord",
760
+ "email"
761
+ ],
762
+ "optional": false,
763
+ "strict": false,
764
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
765
+ }
766
+ ]
767
+ },
768
+ {
769
+ "key": "news-digest",
770
+ "title": "Topic news digest",
771
+ "description": "A recurring digest on a topic you care about — deduped against what was already sent, so only genuinely new items land.",
772
+ "category": "general",
773
+ "source": "builtin",
774
+ "plugin": null,
775
+ "schedule_label": "weekdays at 18:00",
776
+ "slots": [
777
+ {
778
+ "name": "topic",
779
+ "type": "text",
780
+ "label": "What topic?",
781
+ "default": "AI and technology",
782
+ "options": [],
783
+ "optional": false,
784
+ "strict": true,
785
+ "help": "a subject, product, person, or search phrase"
786
+ },
787
+ {
788
+ "name": "time",
789
+ "type": "time",
790
+ "label": "What time?",
791
+ "default": "18:00",
792
+ "options": [],
793
+ "optional": false,
794
+ "strict": true,
795
+ "help": "24h local time, e.g. 08:00"
796
+ },
797
+ {
798
+ "name": "recurrence",
799
+ "type": "weekdays",
800
+ "label": "Repeat on",
801
+ "default": "weekdays",
802
+ "options": [
803
+ "everyday",
804
+ "weekdays",
805
+ "weekends"
806
+ ],
807
+ "optional": false,
808
+ "strict": true,
809
+ "help": ""
810
+ },
811
+ {
812
+ "name": "count",
813
+ "type": "enum",
814
+ "label": "How many bullets?",
815
+ "default": "5",
816
+ "options": [
817
+ "3",
818
+ "5",
819
+ "8"
820
+ ],
821
+ "optional": false,
822
+ "strict": true,
823
+ "help": ""
824
+ },
825
+ {
826
+ "name": "deliver",
827
+ "type": "enum",
828
+ "label": "Where to deliver?",
829
+ "default": "origin",
830
+ "options": [
831
+ "origin",
832
+ "local",
833
+ "telegram",
834
+ "discord",
835
+ "email"
836
+ ],
837
+ "optional": false,
838
+ "strict": false,
839
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
840
+ }
841
+ ]
842
+ },
843
+ {
844
+ "key": "bill-renewal-watch",
845
+ "title": "Bills & renewals reminder",
846
+ "description": "A heads-up before a recurring payment, subscription renewal, or due date — so nothing auto-charges by surprise.",
847
+ "category": "general",
848
+ "source": "builtin",
849
+ "plugin": null,
850
+ "schedule_label": "everyday at 10:00",
851
+ "slots": [
852
+ {
853
+ "name": "what",
854
+ "type": "text",
855
+ "label": "What's due?",
856
+ "default": "my streaming subscription renews soon",
857
+ "options": [],
858
+ "optional": false,
859
+ "strict": true,
860
+ "help": ""
861
+ },
862
+ {
863
+ "name": "time",
864
+ "type": "time",
865
+ "label": "What time?",
866
+ "default": "10:00",
867
+ "options": [],
868
+ "optional": false,
869
+ "strict": true,
870
+ "help": "24h local time, e.g. 08:00"
871
+ },
872
+ {
873
+ "name": "recurrence",
874
+ "type": "weekdays",
875
+ "label": "Repeat on",
876
+ "default": "everyday",
877
+ "options": [
878
+ "everyday",
879
+ "weekdays",
880
+ "weekends"
881
+ ],
882
+ "optional": false,
883
+ "strict": true,
884
+ "help": ""
885
+ },
886
+ {
887
+ "name": "deliver",
888
+ "type": "enum",
889
+ "label": "Where to deliver?",
890
+ "default": "origin",
891
+ "options": [
892
+ "origin",
893
+ "local",
894
+ "telegram",
895
+ "discord",
896
+ "email"
897
+ ],
898
+ "optional": false,
899
+ "strict": false,
900
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
901
+ }
902
+ ]
903
+ },
904
+ {
905
+ "key": "price-watch",
906
+ "title": "Price & availability watch",
907
+ "description": "Watch an exact product, flight, hotel, or listing and alert when your price or availability condition is met.",
908
+ "category": "general",
909
+ "source": "builtin",
910
+ "plugin": null,
911
+ "schedule_label": "on a schedule",
912
+ "slots": [
913
+ {
914
+ "name": "item",
915
+ "type": "text",
916
+ "label": "What exactly to watch?",
917
+ "default": "a product URL or exact flight/hotel/listing description",
918
+ "options": [],
919
+ "optional": false,
920
+ "strict": true,
921
+ "help": "URL or precise description — variant, dates, seller"
922
+ },
923
+ {
924
+ "name": "condition",
925
+ "type": "text",
926
+ "label": "Alert me when…",
927
+ "default": "the all-in price drops below my target",
928
+ "options": [],
929
+ "optional": false,
930
+ "strict": true,
931
+ "help": "threshold price (state the currency), availability, or terms change"
932
+ },
933
+ {
934
+ "name": "interval_h",
935
+ "type": "enum",
936
+ "label": "How often?",
937
+ "default": "6",
938
+ "options": [
939
+ "1",
940
+ "3",
941
+ "6",
942
+ "12",
943
+ "24"
944
+ ],
945
+ "optional": false,
946
+ "strict": true,
947
+ "help": "hours between checks — be gentle with rate limits"
948
+ },
949
+ {
950
+ "name": "deliver",
951
+ "type": "enum",
952
+ "label": "Where to deliver?",
953
+ "default": "origin",
954
+ "options": [
955
+ "origin",
956
+ "local",
957
+ "telegram",
958
+ "discord",
959
+ "email"
960
+ ],
961
+ "optional": false,
962
+ "strict": false,
963
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
964
+ }
965
+ ]
966
+ },
967
+ {
968
+ "key": "competitor-watch",
969
+ "title": "Competitor news watch",
970
+ "description": "Track named companies for material news — launches, pricing, funding, filings — with a cited digest.",
971
+ "category": "general",
972
+ "source": "builtin",
973
+ "plugin": null,
974
+ "schedule_label": "monday at 09:00",
975
+ "slots": [
976
+ {
977
+ "name": "companies",
978
+ "type": "text",
979
+ "label": "Which companies?",
980
+ "default": "two or three competitors, by canonical name",
981
+ "options": [],
982
+ "optional": false,
983
+ "strict": true,
984
+ "help": "canonical names and domains; aliases help dedup"
985
+ },
986
+ {
987
+ "name": "categories",
988
+ "type": "text",
989
+ "label": "Which events matter?",
990
+ "default": "product launches, pricing changes, funding, partnerships, executive moves, incidents",
991
+ "options": [],
992
+ "optional": false,
993
+ "strict": true,
994
+ "help": ""
995
+ },
996
+ {
997
+ "name": "time",
998
+ "type": "time",
999
+ "label": "What time?",
1000
+ "default": "09:00",
1001
+ "options": [],
1002
+ "optional": false,
1003
+ "strict": true,
1004
+ "help": "24h local time, e.g. 08:00"
1005
+ },
1006
+ {
1007
+ "name": "recurrence",
1008
+ "type": "weekdays",
1009
+ "label": "Repeat on",
1010
+ "default": "monday",
1011
+ "options": [
1012
+ "everyday",
1013
+ "weekdays",
1014
+ "weekends"
1015
+ ],
1016
+ "optional": false,
1017
+ "strict": true,
1018
+ "help": ""
1019
+ },
1020
+ {
1021
+ "name": "deliver",
1022
+ "type": "enum",
1023
+ "label": "Where to deliver?",
1024
+ "default": "origin",
1025
+ "options": [
1026
+ "origin",
1027
+ "local",
1028
+ "telegram",
1029
+ "discord",
1030
+ "email"
1031
+ ],
1032
+ "optional": false,
1033
+ "strict": false,
1034
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1035
+ }
1036
+ ]
1037
+ },
1038
+ {
1039
+ "key": "habit-checkin",
1040
+ "title": "Habit check-in",
1041
+ "description": "A recurring nudge to keep a habit on track and reflect on whether you did it.",
1042
+ "category": "general",
1043
+ "source": "builtin",
1044
+ "plugin": null,
1045
+ "schedule_label": "everyday at 20:00",
1046
+ "slots": [
1047
+ {
1048
+ "name": "habit",
1049
+ "type": "text",
1050
+ "label": "Which habit?",
1051
+ "default": "20 minutes of reading",
1052
+ "options": [],
1053
+ "optional": false,
1054
+ "strict": true,
1055
+ "help": ""
1056
+ },
1057
+ {
1058
+ "name": "time",
1059
+ "type": "time",
1060
+ "label": "What time?",
1061
+ "default": "20:00",
1062
+ "options": [],
1063
+ "optional": false,
1064
+ "strict": true,
1065
+ "help": "24h local time, e.g. 08:00"
1066
+ },
1067
+ {
1068
+ "name": "recurrence",
1069
+ "type": "weekdays",
1070
+ "label": "Repeat on",
1071
+ "default": "everyday",
1072
+ "options": [
1073
+ "everyday",
1074
+ "weekdays",
1075
+ "weekends"
1076
+ ],
1077
+ "optional": false,
1078
+ "strict": true,
1079
+ "help": ""
1080
+ },
1081
+ {
1082
+ "name": "deliver",
1083
+ "type": "enum",
1084
+ "label": "Where to deliver?",
1085
+ "default": "origin",
1086
+ "options": [
1087
+ "origin",
1088
+ "local",
1089
+ "telegram",
1090
+ "discord",
1091
+ "email"
1092
+ ],
1093
+ "optional": false,
1094
+ "strict": false,
1095
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1096
+ }
1097
+ ]
1098
+ },
1099
+ {
1100
+ "key": "hydration-move",
1101
+ "title": "Hydration & movement nudge",
1102
+ "description": "A periodic nudge during the day to drink water, stand up, and stretch.",
1103
+ "category": "general",
1104
+ "source": "builtin",
1105
+ "plugin": null,
1106
+ "schedule_label": "weekdays, every hour",
1107
+ "slots": [
1108
+ {
1109
+ "name": "interval_hours",
1110
+ "type": "enum",
1111
+ "label": "How often?",
1112
+ "default": "1",
1113
+ "options": [
1114
+ "1",
1115
+ "2",
1116
+ "3"
1117
+ ],
1118
+ "optional": false,
1119
+ "strict": true,
1120
+ "help": "hours between nudges"
1121
+ },
1122
+ {
1123
+ "name": "start_hour",
1124
+ "type": "enum",
1125
+ "label": "Start hour",
1126
+ "default": "9",
1127
+ "options": [
1128
+ "7",
1129
+ "8",
1130
+ "9",
1131
+ "10"
1132
+ ],
1133
+ "optional": false,
1134
+ "strict": true,
1135
+ "help": "first hour of the active window (24h)"
1136
+ },
1137
+ {
1138
+ "name": "end_hour",
1139
+ "type": "enum",
1140
+ "label": "End hour",
1141
+ "default": "17",
1142
+ "options": [
1143
+ "16",
1144
+ "17",
1145
+ "18",
1146
+ "19"
1147
+ ],
1148
+ "optional": false,
1149
+ "strict": true,
1150
+ "help": "last hour of the active window (24h)"
1151
+ },
1152
+ {
1153
+ "name": "deliver",
1154
+ "type": "enum",
1155
+ "label": "Where to deliver?",
1156
+ "default": "origin",
1157
+ "options": [
1158
+ "origin",
1159
+ "local",
1160
+ "telegram",
1161
+ "discord",
1162
+ "email"
1163
+ ],
1164
+ "optional": false,
1165
+ "strict": false,
1166
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1167
+ }
1168
+ ]
1169
+ },
1170
+ {
1171
+ "key": "meal-plan",
1172
+ "title": "Weekly meal plan",
1173
+ "description": "A weekly meal plan plus a consolidated grocery list, tuned to your diet and how much time you have to cook.",
1174
+ "category": "weekly",
1175
+ "source": "builtin",
1176
+ "plugin": null,
1177
+ "schedule_label": "sunday at 17:00",
1178
+ "slots": [
1179
+ {
1180
+ "name": "diet",
1181
+ "type": "enum",
1182
+ "label": "Diet?",
1183
+ "default": "no restrictions",
1184
+ "options": [
1185
+ "no restrictions",
1186
+ "vegetarian",
1187
+ "vegan",
1188
+ "high-protein",
1189
+ "low-carb"
1190
+ ],
1191
+ "optional": false,
1192
+ "strict": true,
1193
+ "help": ""
1194
+ },
1195
+ {
1196
+ "name": "meals",
1197
+ "type": "enum",
1198
+ "label": "Meals per day?",
1199
+ "default": "dinner only",
1200
+ "options": [
1201
+ "dinner only",
1202
+ "lunch and dinner",
1203
+ "all three"
1204
+ ],
1205
+ "optional": false,
1206
+ "strict": true,
1207
+ "help": ""
1208
+ },
1209
+ {
1210
+ "name": "effort",
1211
+ "type": "enum",
1212
+ "label": "Cooking effort?",
1213
+ "default": "quick",
1214
+ "options": [
1215
+ "quick",
1216
+ "medium",
1217
+ "ambitious"
1218
+ ],
1219
+ "optional": false,
1220
+ "strict": true,
1221
+ "help": ""
1222
+ },
1223
+ {
1224
+ "name": "time",
1225
+ "type": "time",
1226
+ "label": "What time?",
1227
+ "default": "17:00",
1228
+ "options": [],
1229
+ "optional": false,
1230
+ "strict": true,
1231
+ "help": "24h local time, e.g. 08:00"
1232
+ },
1233
+ {
1234
+ "name": "day",
1235
+ "type": "enum",
1236
+ "label": "Which day?",
1237
+ "default": "sunday",
1238
+ "options": [
1239
+ "sunday",
1240
+ "monday",
1241
+ "friday",
1242
+ "saturday"
1243
+ ],
1244
+ "optional": false,
1245
+ "strict": true,
1246
+ "help": ""
1247
+ },
1248
+ {
1249
+ "name": "deliver",
1250
+ "type": "enum",
1251
+ "label": "Where to deliver?",
1252
+ "default": "origin",
1253
+ "options": [
1254
+ "origin",
1255
+ "local",
1256
+ "telegram",
1257
+ "discord",
1258
+ "email"
1259
+ ],
1260
+ "optional": false,
1261
+ "strict": false,
1262
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1263
+ }
1264
+ ]
1265
+ },
1266
+ {
1267
+ "key": "learn-daily",
1268
+ "title": "Daily learning drip",
1269
+ "description": "One bite-sized lesson a day on a topic you want to learn, building progressively over time.",
1270
+ "category": "daily",
1271
+ "source": "builtin",
1272
+ "plugin": null,
1273
+ "schedule_label": "weekdays at 08:30",
1274
+ "slots": [
1275
+ {
1276
+ "name": "topic",
1277
+ "type": "text",
1278
+ "label": "Learn about…",
1279
+ "default": "Spanish vocabulary",
1280
+ "options": [],
1281
+ "optional": false,
1282
+ "strict": true,
1283
+ "help": ""
1284
+ },
1285
+ {
1286
+ "name": "time",
1287
+ "type": "time",
1288
+ "label": "What time?",
1289
+ "default": "08:30",
1290
+ "options": [],
1291
+ "optional": false,
1292
+ "strict": true,
1293
+ "help": "24h local time, e.g. 08:00"
1294
+ },
1295
+ {
1296
+ "name": "recurrence",
1297
+ "type": "weekdays",
1298
+ "label": "Repeat on",
1299
+ "default": "weekdays",
1300
+ "options": [
1301
+ "everyday",
1302
+ "weekdays",
1303
+ "weekends"
1304
+ ],
1305
+ "optional": false,
1306
+ "strict": true,
1307
+ "help": ""
1308
+ },
1309
+ {
1310
+ "name": "deliver",
1311
+ "type": "enum",
1312
+ "label": "Where to deliver?",
1313
+ "default": "origin",
1314
+ "options": [
1315
+ "origin",
1316
+ "local",
1317
+ "telegram",
1318
+ "discord",
1319
+ "email"
1320
+ ],
1321
+ "optional": false,
1322
+ "strict": false,
1323
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1324
+ }
1325
+ ]
1326
+ },
1327
+ {
1328
+ "key": "gratitude-journal",
1329
+ "title": "Gratitude & reflection prompt",
1330
+ "description": "A gentle evening prompt to reflect on the day and note what went well.",
1331
+ "category": "general",
1332
+ "source": "builtin",
1333
+ "plugin": null,
1334
+ "schedule_label": "everyday at 21:30",
1335
+ "slots": [
1336
+ {
1337
+ "name": "time",
1338
+ "type": "time",
1339
+ "label": "What time?",
1340
+ "default": "21:30",
1341
+ "options": [],
1342
+ "optional": false,
1343
+ "strict": true,
1344
+ "help": "24h local time, e.g. 08:00"
1345
+ },
1346
+ {
1347
+ "name": "recurrence",
1348
+ "type": "weekdays",
1349
+ "label": "Repeat on",
1350
+ "default": "everyday",
1351
+ "options": [
1352
+ "everyday",
1353
+ "weekdays",
1354
+ "weekends"
1355
+ ],
1356
+ "optional": false,
1357
+ "strict": true,
1358
+ "help": ""
1359
+ },
1360
+ {
1361
+ "name": "deliver",
1362
+ "type": "enum",
1363
+ "label": "Where to deliver?",
1364
+ "default": "origin",
1365
+ "options": [
1366
+ "origin",
1367
+ "local",
1368
+ "telegram",
1369
+ "discord",
1370
+ "email"
1371
+ ],
1372
+ "optional": false,
1373
+ "strict": false,
1374
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1375
+ }
1376
+ ]
1377
+ },
1378
+ {
1379
+ "key": "on-this-day",
1380
+ "title": "On-this-day discovery",
1381
+ "description": "A daily dose of curiosity: a notable historical event, fact, or word for the day.",
1382
+ "category": "daily",
1383
+ "source": "builtin",
1384
+ "plugin": null,
1385
+ "schedule_label": "daily at 07:30",
1386
+ "slots": [
1387
+ {
1388
+ "name": "flavor",
1389
+ "type": "enum",
1390
+ "label": "What kind?",
1391
+ "default": "on this day in history",
1392
+ "options": [
1393
+ "on this day in history",
1394
+ "word of the day",
1395
+ "science fact",
1396
+ "quote of the day"
1397
+ ],
1398
+ "optional": false,
1399
+ "strict": true,
1400
+ "help": ""
1401
+ },
1402
+ {
1403
+ "name": "time",
1404
+ "type": "time",
1405
+ "label": "What time?",
1406
+ "default": "07:30",
1407
+ "options": [],
1408
+ "optional": false,
1409
+ "strict": true,
1410
+ "help": "24h local time, e.g. 08:00"
1411
+ },
1412
+ {
1413
+ "name": "deliver",
1414
+ "type": "enum",
1415
+ "label": "Where to deliver?",
1416
+ "default": "origin",
1417
+ "options": [
1418
+ "origin",
1419
+ "local",
1420
+ "telegram",
1421
+ "discord",
1422
+ "email"
1423
+ ],
1424
+ "optional": false,
1425
+ "strict": false,
1426
+ "help": "origin = the chat you set this up from (or your configured home channel when created from the dashboard); local = save only, no message; or any connected platform name"
1427
+ }
1428
+ ]
1429
+ }
1430
+ ]
1431
+ }
1432
+ }
1433
+ ],
1434
+ "cron.blueprint_fill": [
1435
+ {
1436
+ "params": {
1437
+ "profile_home": "<home>",
1438
+ "key": "morning-brief",
1439
+ "values": {
1440
+ "time": "08:30"
1441
+ }
1442
+ },
1443
+ "result": {
1444
+ "draft": {
1445
+ "prompt": "Produce a concise morning briefing for the user: today's calendar events, the local weather, and any urgent items. When Gmail/Google Calendar are connected, follow the google-workspace skill's references/daily-brief.md procedure (exact day window, conflict detection, meeting prep, mail-to-meeting links). Keep it short and scannable. If no data sources are connected, give a brief good-morning with the date and offer to connect calendar/email.",
1446
+ "schedule": "30 8 * * *",
1447
+ "name": "Morning briefing",
1448
+ "deliver": "origin",
1449
+ "skills": [
1450
+ "google-workspace"
1451
+ ]
1452
+ }
483
1453
  }
484
1454
  }
485
1455
  ]