@synap-core/workspace-templates 0.7.2 → 0.7.4

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 (44) hide show
  1. package/dist/index.d.ts +207 -8
  2. package/dist/index.js +2122 -1427
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/agent-fleet.yaml +666 -108
  6. package/src/blockchain-ecosystem.yaml +1 -0
  7. package/src/brand-library.yaml +127 -12
  8. package/src/builder.yaml +116 -12
  9. package/src/business-developer.yaml +102 -18
  10. package/src/catalog.ts +13 -3
  11. package/src/communication.yaml +23 -453
  12. package/src/composition-graph.test.ts +26 -0
  13. package/src/content-os.yaml +103 -10
  14. package/src/content-studio.yaml +1 -0
  15. package/src/crm.yaml +12 -0
  16. package/src/define.ts +8 -8
  17. package/src/dev-dashboard.yaml +43 -9
  18. package/src/domains.test.ts +117 -0
  19. package/src/domains.ts +102 -0
  20. package/src/ecosystem.yaml +21 -4
  21. package/src/enterprise-os.yaml +5 -0
  22. package/src/finance.yaml +46 -5
  23. package/src/foundation.yaml +13 -1
  24. package/src/grants.yaml +1 -0
  25. package/src/hr.yaml +61 -8
  26. package/src/index.ts +29 -0
  27. package/src/internal-runbook.yaml +36 -5
  28. package/src/legal.yaml +97 -12
  29. package/src/life-os.yaml +188 -27
  30. package/src/marketing.yaml +15 -2
  31. package/src/meetings-knowledge.yaml +7 -1
  32. package/src/operations.yaml +351 -0
  33. package/src/outreach-comms.yaml +6 -1
  34. package/src/project-management.yaml +840 -111
  35. package/src/research-base.yaml +516 -0
  36. package/src/research-decision.yaml +158 -0
  37. package/src/shared-role-ssot.test.ts +268 -0
  38. package/src/social.yaml +105 -37
  39. package/src/templates.ts +4573 -4302
  40. package/src/the-arch.yaml +11 -0
  41. package/src/types.ts +9 -0
  42. package/src/validate.test.ts +81 -0
  43. package/src/validate.ts +561 -0
  44. package/src/personal.yaml +0 -177
@@ -6,6 +6,7 @@
6
6
 
7
7
  meta:
8
8
  slug: agent-fleet
9
+ domain: build
9
10
  name: "Agent Fleet"
10
11
  description: "Manage your fleet of AI agents — the agents, their providers, skills, and the work they do."
11
12
  icon: bot
@@ -64,12 +65,36 @@ profiles:
64
65
  label: Primary Channel
65
66
  valueType: string
66
67
  inputType: select
67
- enumValues: [Telegram, WhatsApp, Discord, Slack, Signal, iMessage, CLI, WebChat, Other]
68
+ enumValues:
69
+ [
70
+ Telegram,
71
+ WhatsApp,
72
+ Discord,
73
+ Slack,
74
+ Signal,
75
+ iMessage,
76
+ CLI,
77
+ WebChat,
78
+ Other,
79
+ ]
68
80
  - slug: agent-channels
69
81
  label: All Channels
70
82
  valueType: array
71
83
  inputType: select
72
- enumValues: [Telegram, WhatsApp, Discord, Slack, Signal, iMessage, CLI, WebChat, Voice, Lark, Matrix]
84
+ enumValues:
85
+ [
86
+ Telegram,
87
+ WhatsApp,
88
+ Discord,
89
+ Slack,
90
+ Signal,
91
+ iMessage,
92
+ CLI,
93
+ WebChat,
94
+ Voice,
95
+ Lark,
96
+ Matrix,
97
+ ]
73
98
  - slug: agent-heartbeat
74
99
  label: Heartbeat Schedule
75
100
  valueType: string
@@ -83,17 +108,46 @@ profiles:
83
108
  label: Deployment
84
109
  valueType: string
85
110
  inputType: select
86
- enumValues: ["Local Machine", VPS, "Raspberry Pi", "Mac Mini", Docker, "Cloud Workers", Android, "Edge Device"]
111
+ enumValues:
112
+ [
113
+ "Local Machine",
114
+ VPS,
115
+ "Raspberry Pi",
116
+ "Mac Mini",
117
+ Docker,
118
+ "Cloud Workers",
119
+ Android,
120
+ "Edge Device",
121
+ ]
87
122
  - slug: agent-role
88
123
  label: Role
89
124
  valueType: string
90
125
  inputType: select
91
- enumValues: [Generalist, Coder, Researcher, Writer, Ops, Coordinator, Monitor, Custom]
126
+ enumValues:
127
+ [
128
+ Generalist,
129
+ Coder,
130
+ Researcher,
131
+ Writer,
132
+ Ops,
133
+ Coordinator,
134
+ Monitor,
135
+ Custom,
136
+ ]
92
137
  - slug: agent-tags
93
138
  label: Tags
94
139
  valueType: array
95
140
  inputType: select
96
- enumValues: [production, development, personal, team, experimental, "24/7", on-demand]
141
+ enumValues:
142
+ [
143
+ production,
144
+ development,
145
+ personal,
146
+ team,
147
+ experimental,
148
+ "24/7",
149
+ on-demand,
150
+ ]
97
151
 
98
152
  - slug: project
99
153
  displayName: Project
@@ -106,7 +160,8 @@ profiles:
106
160
  label: Status
107
161
  valueType: string
108
162
  inputType: select
109
- enumValues: [Backlog, Queued, "In Progress", Blocked, Completed, Cancelled]
163
+ enumValues:
164
+ [Backlog, Queued, "In Progress", Blocked, Completed, Cancelled]
110
165
  constraints:
111
166
  defaultValue: Queued
112
167
  - slug: project-priority
@@ -137,7 +192,17 @@ profiles:
137
192
  label: Type
138
193
  valueType: string
139
194
  inputType: select
140
- enumValues: [Development, Research, Content, Automation, DevOps, Data, Outreach, Monitoring]
195
+ enumValues:
196
+ [
197
+ Development,
198
+ Research,
199
+ Content,
200
+ Automation,
201
+ DevOps,
202
+ Data,
203
+ Outreach,
204
+ Monitoring,
205
+ ]
141
206
  - slug: project-goal
142
207
  label: Goal
143
208
  valueType: string
@@ -148,7 +213,8 @@ profiles:
148
213
  label: Tags
149
214
  valueType: array
150
215
  inputType: select
151
- enumValues: [recurring, one-off, long-running, client, internal, experimental]
216
+ enumValues:
217
+ [recurring, one-off, long-running, client, internal, experimental]
152
218
 
153
219
  - slug: task
154
220
  displayName: Task
@@ -183,7 +249,18 @@ profiles:
183
249
  label: Type
184
250
  valueType: string
185
251
  inputType: select
186
- enumValues: [Code, Research, Content, Ops, Data, Outreach, Review, Monitor, Custom]
252
+ enumValues:
253
+ [
254
+ Code,
255
+ Research,
256
+ Content,
257
+ Ops,
258
+ Data,
259
+ Outreach,
260
+ Review,
261
+ Monitor,
262
+ Custom,
263
+ ]
187
264
  - slug: task-due-date
188
265
  label: Due Date
189
266
  valueType: date
@@ -206,7 +283,8 @@ profiles:
206
283
  label: Tags
207
284
  valueType: array
208
285
  inputType: select
209
- enumValues: [autonomous, needs-review, high-cost, recurring, blocked, delegated]
286
+ enumValues:
287
+ [autonomous, needs-review, high-cost, recurring, blocked, delegated]
210
288
 
211
289
  - slug: skill
212
290
  displayName: Skill
@@ -226,7 +304,19 @@ profiles:
226
304
  label: Category
227
305
  valueType: string
228
306
  inputType: select
229
- enumValues: [Productivity, Development, Communication, Data, Security, Storage, Browser, Voice, IoT, Custom]
307
+ enumValues:
308
+ [
309
+ Productivity,
310
+ Development,
311
+ Communication,
312
+ Data,
313
+ Security,
314
+ Storage,
315
+ Browser,
316
+ Voice,
317
+ IoT,
318
+ Custom,
319
+ ]
230
320
  - slug: skill-source-url
231
321
  label: Source URL
232
322
  valueType: string
@@ -265,7 +355,15 @@ profiles:
265
355
  label: Type
266
356
  valueType: string
267
357
  inputType: select
268
- enumValues: ["LLM Cloud", "LLM Local", "API Gateway", "Vector DB", Storage, Custom]
358
+ enumValues:
359
+ [
360
+ "LLM Cloud",
361
+ "LLM Local",
362
+ "API Gateway",
363
+ "Vector DB",
364
+ Storage,
365
+ Custom,
366
+ ]
269
367
  - slug: provider-key-health
270
368
  label: Key Health
271
369
  valueType: string
@@ -364,7 +462,16 @@ views:
364
462
  description: "All installed skills grouped by trust level: Trusted / Review / Untrusted. Security triage at a glance."
365
463
  config:
366
464
  groupByField: skill-trust
367
- visibleColumns: [skill-trust, skill-category, skill-version, skill-maintainer, skill-last-audit, skill-virustotal, skill-requires-api]
465
+ visibleColumns:
466
+ [
467
+ skill-trust,
468
+ skill-category,
469
+ skill-version,
470
+ skill-maintainer,
471
+ skill-last-audit,
472
+ skill-virustotal,
473
+ skill-requires-api,
474
+ ]
368
475
 
369
476
  - name: "Provider Dashboard"
370
477
  slug: provider-dashboard
@@ -372,7 +479,16 @@ views:
372
479
  scopeProfileSlug: provider
373
480
  description: "All providers with cost-per-token, key health, daily budget, and weekly spend."
374
481
  config:
375
- visibleColumns: [provider-type, provider-key-health, provider-model, provider-cost-input, provider-cost-output, provider-budget-day, provider-spend-week]
482
+ visibleColumns:
483
+ [
484
+ provider-type,
485
+ provider-key-health,
486
+ provider-model,
487
+ provider-cost-input,
488
+ provider-cost-output,
489
+ provider-budget-day,
490
+ provider-spend-week,
491
+ ]
376
492
 
377
493
  - name: "Relationship Graph"
378
494
  slug: relationship-graph
@@ -399,7 +515,15 @@ views:
399
515
  scopeProfileSlug: task
400
516
  description: "Tasks ranked by actual token usage — the CFO view. Which work is burning budget?"
401
517
  config:
402
- visibleColumns: [task-status, task-type, task-assigned-agent, task-token-estimate, task-actual-tokens, task-effort-hours]
518
+ visibleColumns:
519
+ [
520
+ task-status,
521
+ task-type,
522
+ task-assigned-agent,
523
+ task-token-estimate,
524
+ task-actual-tokens,
525
+ task-effort-hours,
526
+ ]
403
527
  defaultSort:
404
528
  field: task-actual-tokens
405
529
  direction: desc
@@ -410,7 +534,15 @@ views:
410
534
  scopeProfileSlug: skill
411
535
  description: "Skills requiring security review. Audit before your agents run them."
412
536
  config:
413
- visibleColumns: [skill-trust, skill-category, skill-source-url, skill-maintainer, skill-virustotal, skill-notes]
537
+ visibleColumns:
538
+ [
539
+ skill-trust,
540
+ skill-category,
541
+ skill-source-url,
542
+ skill-maintainer,
543
+ skill-virustotal,
544
+ skill-notes,
545
+ ]
414
546
  filterBy:
415
547
  field: skill-trust
416
548
  operator: in
@@ -422,7 +554,15 @@ views:
422
554
  scopeProfileSlug: task
423
555
  description: "Unqueued tasks awaiting agent assignment."
424
556
  config:
425
- visibleColumns: [task-priority, task-type, task-assigned-agent, task-due-date, task-effort-hours, task-token-estimate]
557
+ visibleColumns:
558
+ [
559
+ task-priority,
560
+ task-type,
561
+ task-assigned-agent,
562
+ task-due-date,
563
+ task-effort-hours,
564
+ task-token-estimate,
565
+ ]
426
566
  filterBy:
427
567
  field: task-status
428
568
  operator: is
@@ -445,7 +585,14 @@ views:
445
585
  scopeProfileSlug: task
446
586
  description: "Tasks with session keys — the audit trail of what agents actually executed."
447
587
  config:
448
- visibleColumns: [task-status, task-assigned-agent, task-session-key, task-actual-tokens, task-type]
588
+ visibleColumns:
589
+ [
590
+ task-status,
591
+ task-assigned-agent,
592
+ task-session-key,
593
+ task-actual-tokens,
594
+ task-type,
595
+ ]
449
596
  filterBy:
450
597
  field: task-session-key
451
598
  operator: is_not_empty
@@ -464,7 +611,14 @@ views:
464
611
  scopeProfileSlug: task
465
612
  description: "Tasks currently in flight — what your agents are doing right now."
466
613
  config:
467
- visibleColumns: [task-status, task-priority, task-type, task-assigned-agent, task-due-date]
614
+ visibleColumns:
615
+ [
616
+ task-status,
617
+ task-priority,
618
+ task-type,
619
+ task-assigned-agent,
620
+ task-due-date,
621
+ ]
468
622
  filterBy:
469
623
  field: task-status
470
624
  operator: in
@@ -483,12 +637,24 @@ views:
483
637
  kind: widget
484
638
  widgetType: section-header
485
639
  pos: { x: 0, y: 0, w: 12, h: 2 }
486
- config: { title: "Agent Fleet", icon: Bot, color: "#1A3A5C", profileSlug: agent }
640
+ config:
641
+ {
642
+ title: "Agent Fleet",
643
+ icon: Bot,
644
+ color: "#1A3A5C",
645
+ profileSlug: agent,
646
+ }
487
647
  - id: agent-count
488
648
  kind: widget
489
649
  widgetType: stat-card
490
650
  pos: { x: 0, y: 2, w: 3, h: 3 }
491
- config: { label: "Active Agents", aggregation: count, profileSlug: agent, color: "#1A3A5C" }
651
+ config:
652
+ {
653
+ label: "Active Agents",
654
+ aggregation: count,
655
+ profileSlug: agent,
656
+ color: "#1A3A5C",
657
+ }
492
658
  - id: agent-fleet
493
659
  kind: view
494
660
  viewName: "Agent Fleet"
@@ -501,27 +667,59 @@ views:
501
667
  kind: widget
502
668
  widgetType: entity-count
503
669
  pos: { x: 3, y: 2, w: 3, h: 3 }
504
- config: { profileSlug: agent, label: Active, icon: CheckCircle, filter: { status: active }, color: "#10B981" }
670
+ config:
671
+ {
672
+ profileSlug: agent,
673
+ label: Active,
674
+ icon: CheckCircle,
675
+ filter: { status: active },
676
+ color: "#10B981",
677
+ }
505
678
  - id: agent-running-tasks
506
679
  kind: widget
507
680
  widgetType: entity-count
508
681
  pos: { x: 6, y: 2, w: 3, h: 3 }
509
- config: { profileSlug: task, label: "Running Tasks", icon: Loader, color: "#3B82F6" }
682
+ config:
683
+ {
684
+ profileSlug: task,
685
+ label: "Running Tasks",
686
+ icon: Loader,
687
+ color: "#3B82F6",
688
+ }
510
689
  - id: agent-skills-avail
511
690
  kind: widget
512
691
  widgetType: entity-count
513
692
  pos: { x: 9, y: 2, w: 3, h: 3 }
514
- config: { profileSlug: skill, label: "Skills Available", icon: Zap, color: "#8B5CF6" }
693
+ config:
694
+ {
695
+ profileSlug: skill,
696
+ label: "Skills Available",
697
+ icon: Zap,
698
+ color: "#8B5CF6",
699
+ }
515
700
  - id: agent-spotlight
516
701
  kind: widget
517
702
  widgetType: entity-spotlight
518
703
  pos: { x: 0, y: 5, w: 5, h: 4 }
519
- config: { profileSlug: agent, seed: daily, layout: detail, subtitleField: status, color: "#1A3A5C" }
704
+ config:
705
+ {
706
+ profileSlug: agent,
707
+ seed: daily,
708
+ layout: detail,
709
+ subtitleField: status,
710
+ color: "#1A3A5C",
711
+ }
520
712
  - id: agent-recent-tasks
521
713
  kind: widget
522
714
  widgetType: entity-list
523
715
  pos: { x: 5, y: 5, w: 7, h: 4 }
524
- config: { profileSlug: task, title: "Recent Tasks", limit: 8, variant: compact }
716
+ config:
717
+ {
718
+ profileSlug: task,
719
+ title: "Recent Tasks",
720
+ limit: 8,
721
+ variant: compact,
722
+ }
525
723
  breakpoints:
526
724
  lg: { cols: 12, rowHeight: 60, gap: 12 }
527
725
  md: { cols: 10, rowHeight: 60, gap: 12 }
@@ -539,12 +737,24 @@ views:
539
737
  kind: widget
540
738
  widgetType: section-header
541
739
  pos: { x: 0, y: 0, w: 12, h: 2 }
542
- config: { title: Tasks, icon: CheckSquare, color: "#6366F1", profileSlug: task }
740
+ config:
741
+ {
742
+ title: Tasks,
743
+ icon: CheckSquare,
744
+ color: "#6366F1",
745
+ profileSlug: task,
746
+ }
543
747
  - id: task-count
544
748
  kind: widget
545
749
  widgetType: stat-card
546
750
  pos: { x: 0, y: 2, w: 3, h: 3 }
547
- config: { label: "Total Tasks", aggregation: count, profileSlug: task, color: "#6366F1" }
751
+ config:
752
+ {
753
+ label: "Total Tasks",
754
+ aggregation: count,
755
+ profileSlug: task,
756
+ color: "#6366F1",
757
+ }
548
758
  - id: task-board
549
759
  kind: view
550
760
  viewName: "Task Board"
@@ -557,22 +767,49 @@ views:
557
767
  kind: widget
558
768
  widgetType: entity-count
559
769
  pos: { x: 3, y: 2, w: 3, h: 3 }
560
- config: { profileSlug: task, label: "In Progress", icon: Loader, filter: { status: in-progress }, color: "#3B82F6" }
770
+ config:
771
+ {
772
+ profileSlug: task,
773
+ label: "In Progress",
774
+ icon: Loader,
775
+ filter: { status: in-progress },
776
+ color: "#3B82F6",
777
+ }
561
778
  - id: task-completed
562
779
  kind: widget
563
780
  widgetType: entity-count
564
781
  pos: { x: 6, y: 2, w: 3, h: 3 }
565
- config: { profileSlug: task, label: Completed, icon: CheckCircle, filter: { status: completed }, color: "#10B981" }
782
+ config:
783
+ {
784
+ profileSlug: task,
785
+ label: Completed,
786
+ icon: CheckCircle,
787
+ filter: { status: completed },
788
+ color: "#10B981",
789
+ }
566
790
  - id: task-failed
567
791
  kind: widget
568
792
  widgetType: entity-count
569
793
  pos: { x: 9, y: 2, w: 3, h: 3 }
570
- config: { profileSlug: task, label: Failed, icon: XCircle, filter: { status: failed }, color: "#EF4444" }
794
+ config:
795
+ {
796
+ profileSlug: task,
797
+ label: Failed,
798
+ icon: XCircle,
799
+ filter: { status: failed },
800
+ color: "#EF4444",
801
+ }
571
802
  - id: task-active-list
572
803
  kind: widget
573
804
  widgetType: entity-list
574
805
  pos: { x: 0, y: 5, w: 12, h: 4 }
575
- config: { profileSlug: task, title: "Active Tasks", limit: 8, variant: detailed }
806
+ config:
807
+ {
808
+ profileSlug: task,
809
+ title: "Active Tasks",
810
+ limit: 8,
811
+ variant: detailed,
812
+ }
576
813
  breakpoints:
577
814
  lg: { cols: 12, rowHeight: 60, gap: 12 }
578
815
  md: { cols: 10, rowHeight: 60, gap: 12 }
@@ -590,12 +827,24 @@ views:
590
827
  kind: widget
591
828
  widgetType: section-header
592
829
  pos: { x: 0, y: 0, w: 12, h: 2 }
593
- config: { title: Projects, icon: Folder, color: "#F59E0B", profileSlug: project }
830
+ config:
831
+ {
832
+ title: Projects,
833
+ icon: Folder,
834
+ color: "#F59E0B",
835
+ profileSlug: project,
836
+ }
594
837
  - id: project-count
595
838
  kind: widget
596
839
  widgetType: stat-card
597
840
  pos: { x: 0, y: 2, w: 3, h: 3 }
598
- config: { label: "Total Projects", aggregation: count, profileSlug: project, color: "#F59E0B" }
841
+ config:
842
+ {
843
+ label: "Total Projects",
844
+ aggregation: count,
845
+ profileSlug: project,
846
+ color: "#F59E0B",
847
+ }
599
848
  - id: project-cmd
600
849
  kind: view
601
850
  viewName: "Project Command Center"
@@ -621,12 +870,19 @@ views:
621
870
  kind: widget
622
871
  widgetType: section-header
623
872
  pos: { x: 0, y: 0, w: 12, h: 2 }
624
- config: { title: Skills, icon: Zap, color: "#10B981", profileSlug: skill }
873
+ config:
874
+ { title: Skills, icon: Zap, color: "#10B981", profileSlug: skill }
625
875
  - id: skill-count
626
876
  kind: widget
627
877
  widgetType: stat-card
628
878
  pos: { x: 0, y: 2, w: 3, h: 3 }
629
- config: { label: "Total Skills", aggregation: count, profileSlug: skill, color: "#10B981" }
879
+ config:
880
+ {
881
+ label: "Total Skills",
882
+ aggregation: count,
883
+ profileSlug: skill,
884
+ color: "#10B981",
885
+ }
630
886
  - id: skill-registry
631
887
  kind: view
632
888
  viewName: "Skill Registry"
@@ -635,22 +891,49 @@ views:
635
891
  kind: widget
636
892
  widgetType: entity-count
637
893
  pos: { x: 3, y: 2, w: 3, h: 3 }
638
- config: { profileSlug: skill, label: Trusted, icon: Shield, filter: { trusted: true }, color: "#10B981" }
894
+ config:
895
+ {
896
+ profileSlug: skill,
897
+ label: Trusted,
898
+ icon: Shield,
899
+ filter: { trusted: true },
900
+ color: "#10B981",
901
+ }
639
902
  - id: skill-untrusted
640
903
  kind: widget
641
904
  widgetType: entity-count
642
905
  pos: { x: 6, y: 2, w: 3, h: 3 }
643
- config: { profileSlug: skill, label: Untrusted, icon: AlertTriangle, filter: { trusted: false }, color: "#EF4444" }
906
+ config:
907
+ {
908
+ profileSlug: skill,
909
+ label: Untrusted,
910
+ icon: AlertTriangle,
911
+ filter: { trusted: false },
912
+ color: "#EF4444",
913
+ }
644
914
  - id: skill-spotlight
645
915
  kind: widget
646
916
  widgetType: entity-spotlight
647
917
  pos: { x: 0, y: 5, w: 6, h: 4 }
648
- config: { profileSlug: skill, seed: random, layout: detail, subtitleField: category, color: "#8B5CF6" }
918
+ config:
919
+ {
920
+ profileSlug: skill,
921
+ seed: random,
922
+ layout: detail,
923
+ subtitleField: category,
924
+ color: "#8B5CF6",
925
+ }
649
926
  - id: skill-agents-using
650
927
  kind: widget
651
928
  widgetType: entity-list
652
929
  pos: { x: 6, y: 5, w: 6, h: 4 }
653
- config: { profileSlug: agent, title: "Agents Using", limit: 6, variant: compact }
930
+ config:
931
+ {
932
+ profileSlug: agent,
933
+ title: "Agents Using",
934
+ limit: 6,
935
+ variant: compact,
936
+ }
654
937
  breakpoints:
655
938
  lg: { cols: 12, rowHeight: 60, gap: 12 }
656
939
  md: { cols: 10, rowHeight: 60, gap: 12 }
@@ -668,12 +951,24 @@ views:
668
951
  kind: widget
669
952
  widgetType: section-header
670
953
  pos: { x: 0, y: 0, w: 12, h: 2 }
671
- config: { title: Providers, icon: Database, color: "#06B6D4", profileSlug: provider }
954
+ config:
955
+ {
956
+ title: Providers,
957
+ icon: Database,
958
+ color: "#06B6D4",
959
+ profileSlug: provider,
960
+ }
672
961
  - id: provider-count
673
962
  kind: widget
674
963
  widgetType: stat-card
675
964
  pos: { x: 0, y: 2, w: 3, h: 3 }
676
- config: { label: "Total Providers", aggregation: count, profileSlug: provider, color: "#06B6D4" }
965
+ config:
966
+ {
967
+ label: "Total Providers",
968
+ aggregation: count,
969
+ profileSlug: provider,
970
+ color: "#06B6D4",
971
+ }
677
972
  - id: provider-dash
678
973
  kind: view
679
974
  viewName: "Provider Dashboard"
@@ -686,17 +981,37 @@ views:
686
981
  kind: widget
687
982
  widgetType: entity-count
688
983
  pos: { x: 3, y: 2, w: 3, h: 3 }
689
- config: { profileSlug: provider, label: Healthy, icon: CheckCircle, filter: { status: healthy }, color: "#10B981" }
984
+ config:
985
+ {
986
+ profileSlug: provider,
987
+ label: Healthy,
988
+ icon: CheckCircle,
989
+ filter: { status: healthy },
990
+ color: "#10B981",
991
+ }
690
992
  - id: provider-degraded
691
993
  kind: widget
692
994
  widgetType: entity-count
693
995
  pos: { x: 6, y: 2, w: 3, h: 3 }
694
- config: { profileSlug: provider, label: Degraded, icon: AlertTriangle, filter: { status: degraded }, color: "#F59E0B" }
996
+ config:
997
+ {
998
+ profileSlug: provider,
999
+ label: Degraded,
1000
+ icon: AlertTriangle,
1001
+ filter: { status: degraded },
1002
+ color: "#F59E0B",
1003
+ }
695
1004
  - id: provider-all
696
1005
  kind: widget
697
1006
  widgetType: entity-list
698
1007
  pos: { x: 0, y: 5, w: 12, h: 4 }
699
- config: { profileSlug: provider, title: "All Providers", limit: 8, variant: detailed }
1008
+ config:
1009
+ {
1010
+ profileSlug: provider,
1011
+ title: "All Providers",
1012
+ limit: 8,
1013
+ variant: detailed,
1014
+ }
700
1015
  breakpoints:
701
1016
  lg: { cols: 12, rowHeight: 60, gap: 12 }
702
1017
  md: { cols: 10, rowHeight: 60, gap: 12 }
@@ -719,7 +1034,17 @@ displayTemplates:
719
1034
  layout: horizontal
720
1035
  sidebar:
721
1036
  enabled: true
722
- slots: [agent-owner, agent-provider, agent-channel, agent-model, agent-version, agent-last-seen, agent-deployment, agent-heartbeat]
1037
+ slots:
1038
+ [
1039
+ agent-owner,
1040
+ agent-provider,
1041
+ agent-channel,
1042
+ agent-model,
1043
+ agent-version,
1044
+ agent-last-seen,
1045
+ agent-deployment,
1046
+ agent-heartbeat,
1047
+ ]
723
1048
  position: right
724
1049
  width: 260px
725
1050
  layout: vertical
@@ -728,20 +1053,79 @@ displayTemplates:
728
1053
  slots: [agent-workspace, agent-channels, agent-tags]
729
1054
  layout: vertical
730
1055
  fieldMapping:
731
- agent-status: { slot: agent-status, renderer: { type: badge }, order: 1 }
732
- agent-health: { slot: agent-health, renderer: { type: badge }, order: 2 }
733
- agent-runtime: { slot: agent-runtime, renderer: { type: badge }, order: 3 }
1056
+ agent-status:
1057
+ { slot: agent-status, renderer: { type: badge }, order: 1 }
1058
+ agent-health:
1059
+ { slot: agent-health, renderer: { type: badge }, order: 2 }
1060
+ agent-runtime:
1061
+ { slot: agent-runtime, renderer: { type: badge }, order: 3 }
734
1062
  agent-role: { slot: agent-role, renderer: { type: badge }, order: 4 }
735
- agent-owner: { slot: agent-owner, renderer: { type: avatar }, order: 5 }
736
- agent-provider: { slot: agent-provider, renderer: { type: link }, order: 6 }
737
- agent-channel: { slot: agent-channel, renderer: { type: text }, order: 7, label: "Primary Channel", showLabel: true }
738
- agent-model: { slot: agent-model, renderer: { type: text }, order: 8, label: Model, showLabel: true }
739
- agent-version: { slot: agent-version, renderer: { type: text }, order: 9, label: Version, showLabel: true }
740
- agent-last-seen: { slot: agent-last-seen, renderer: { type: date, format: relative }, order: 10 }
741
- agent-deployment: { slot: agent-deployment, renderer: { type: text }, order: 11, label: Deployment, showLabel: true }
742
- agent-heartbeat: { slot: agent-heartbeat, renderer: { type: text }, order: 12, label: Heartbeat, showLabel: true }
743
- agent-workspace: { slot: agent-workspace, renderer: { type: text }, order: 13, label: "Workspace Path", showLabel: true }
744
- agent-channels: { slot: agent-channels, renderer: { type: badge }, order: 14, label: "All Channels", showLabel: true }
1063
+ agent-owner:
1064
+ { slot: agent-owner, renderer: { type: avatar }, order: 5 }
1065
+ agent-provider:
1066
+ { slot: agent-provider, renderer: { type: link }, order: 6 }
1067
+ agent-channel:
1068
+ {
1069
+ slot: agent-channel,
1070
+ renderer: { type: text },
1071
+ order: 7,
1072
+ label: "Primary Channel",
1073
+ showLabel: true,
1074
+ }
1075
+ agent-model:
1076
+ {
1077
+ slot: agent-model,
1078
+ renderer: { type: text },
1079
+ order: 8,
1080
+ label: Model,
1081
+ showLabel: true,
1082
+ }
1083
+ agent-version:
1084
+ {
1085
+ slot: agent-version,
1086
+ renderer: { type: text },
1087
+ order: 9,
1088
+ label: Version,
1089
+ showLabel: true,
1090
+ }
1091
+ agent-last-seen:
1092
+ {
1093
+ slot: agent-last-seen,
1094
+ renderer: { type: date, format: relative },
1095
+ order: 10,
1096
+ }
1097
+ agent-deployment:
1098
+ {
1099
+ slot: agent-deployment,
1100
+ renderer: { type: text },
1101
+ order: 11,
1102
+ label: Deployment,
1103
+ showLabel: true,
1104
+ }
1105
+ agent-heartbeat:
1106
+ {
1107
+ slot: agent-heartbeat,
1108
+ renderer: { type: text },
1109
+ order: 12,
1110
+ label: Heartbeat,
1111
+ showLabel: true,
1112
+ }
1113
+ agent-workspace:
1114
+ {
1115
+ slot: agent-workspace,
1116
+ renderer: { type: text },
1117
+ order: 13,
1118
+ label: "Workspace Path",
1119
+ showLabel: true,
1120
+ }
1121
+ agent-channels:
1122
+ {
1123
+ slot: agent-channels,
1124
+ renderer: { type: badge },
1125
+ order: 14,
1126
+ label: "All Channels",
1127
+ showLabel: true,
1128
+ }
745
1129
  agent-tags: { slot: agent-tags, renderer: { type: badge }, order: 15 }
746
1130
  colors:
747
1131
  accent: "#1A3A5C"
@@ -756,11 +1140,18 @@ displayTemplates:
756
1140
  structure:
757
1141
  header:
758
1142
  enabled: true
759
- slots: [project-status, project-priority, project-health, project-type]
1143
+ slots:
1144
+ [project-status, project-priority, project-health, project-type]
760
1145
  layout: horizontal
761
1146
  sidebar:
762
1147
  enabled: true
763
- slots: [project-assigned-agent, project-owner, project-deadline, project-start]
1148
+ slots:
1149
+ [
1150
+ project-assigned-agent,
1151
+ project-owner,
1152
+ project-deadline,
1153
+ project-start,
1154
+ ]
764
1155
  position: right
765
1156
  width: 260px
766
1157
  layout: vertical
@@ -769,17 +1160,44 @@ displayTemplates:
769
1160
  slots: [project-goal, project-outcome, project-tags]
770
1161
  layout: vertical
771
1162
  fieldMapping:
772
- project-status: { slot: project-status, renderer: { type: badge }, order: 1 }
773
- project-priority: { slot: project-priority, renderer: { type: badge }, order: 2 }
774
- project-health: { slot: project-health, renderer: { type: badge }, order: 3 }
775
- project-type: { slot: project-type, renderer: { type: badge }, order: 4 }
776
- project-assigned-agent: { slot: project-assigned-agent, renderer: { type: link }, order: 5 }
777
- project-owner: { slot: project-owner, renderer: { type: avatar }, order: 6 }
778
- project-deadline: { slot: project-deadline, renderer: { type: date, format: relative }, order: 7 }
779
- project-start: { slot: project-start, renderer: { type: date }, order: 8 }
780
- project-goal: { slot: project-goal, renderer: { type: text }, order: 9, label: Goal, showLabel: true }
781
- project-outcome: { slot: project-outcome, renderer: { type: text }, order: 10, label: "Expected Outcome", showLabel: true }
782
- project-tags: { slot: project-tags, renderer: { type: badge }, order: 11 }
1163
+ project-status:
1164
+ { slot: project-status, renderer: { type: badge }, order: 1 }
1165
+ project-priority:
1166
+ { slot: project-priority, renderer: { type: badge }, order: 2 }
1167
+ project-health:
1168
+ { slot: project-health, renderer: { type: badge }, order: 3 }
1169
+ project-type:
1170
+ { slot: project-type, renderer: { type: badge }, order: 4 }
1171
+ project-assigned-agent:
1172
+ { slot: project-assigned-agent, renderer: { type: link }, order: 5 }
1173
+ project-owner:
1174
+ { slot: project-owner, renderer: { type: avatar }, order: 6 }
1175
+ project-deadline:
1176
+ {
1177
+ slot: project-deadline,
1178
+ renderer: { type: date, format: relative },
1179
+ order: 7,
1180
+ }
1181
+ project-start:
1182
+ { slot: project-start, renderer: { type: date }, order: 8 }
1183
+ project-goal:
1184
+ {
1185
+ slot: project-goal,
1186
+ renderer: { type: text },
1187
+ order: 9,
1188
+ label: Goal,
1189
+ showLabel: true,
1190
+ }
1191
+ project-outcome:
1192
+ {
1193
+ slot: project-outcome,
1194
+ renderer: { type: text },
1195
+ order: 10,
1196
+ label: "Expected Outcome",
1197
+ showLabel: true,
1198
+ }
1199
+ project-tags:
1200
+ { slot: project-tags, renderer: { type: badge }, order: 11 }
783
1201
  colors:
784
1202
  accent: "#2E6DA4"
785
1203
 
@@ -797,7 +1215,15 @@ displayTemplates:
797
1215
  layout: horizontal
798
1216
  sidebar:
799
1217
  enabled: true
800
- slots: [task-assigned-agent, task-project, task-due-date, task-token-estimate, task-actual-tokens, task-effort-hours]
1218
+ slots:
1219
+ [
1220
+ task-assigned-agent,
1221
+ task-project,
1222
+ task-due-date,
1223
+ task-token-estimate,
1224
+ task-actual-tokens,
1225
+ task-effort-hours,
1226
+ ]
801
1227
  position: right
802
1228
  width: 260px
803
1229
  layout: vertical
@@ -806,17 +1232,43 @@ displayTemplates:
806
1232
  slots: [task-blocked-by, task-session-key, task-tags]
807
1233
  layout: vertical
808
1234
  fieldMapping:
809
- task-status: { slot: task-status, renderer: { type: badge }, order: 1 }
810
- task-priority: { slot: task-priority, renderer: { type: badge }, order: 2 }
1235
+ task-status:
1236
+ { slot: task-status, renderer: { type: badge }, order: 1 }
1237
+ task-priority:
1238
+ { slot: task-priority, renderer: { type: badge }, order: 2 }
811
1239
  task-type: { slot: task-type, renderer: { type: badge }, order: 3 }
812
- task-assigned-agent: { slot: task-assigned-agent, renderer: { type: link }, order: 4 }
813
- task-project: { slot: task-project, renderer: { type: link }, order: 5 }
814
- task-due-date: { slot: task-due-date, renderer: { type: date, format: relative }, order: 6 }
815
- task-token-estimate: { slot: task-token-estimate, renderer: { type: number }, order: 7 }
816
- task-actual-tokens: { slot: task-actual-tokens, renderer: { type: number }, order: 8 }
817
- task-effort-hours: { slot: task-effort-hours, renderer: { type: number }, order: 9 }
818
- task-blocked-by: { slot: task-blocked-by, renderer: { type: text }, order: 10, label: "Blocked By", showLabel: true }
819
- task-session-key: { slot: task-session-key, renderer: { type: text }, order: 11, label: "Session Key", showLabel: true }
1240
+ task-assigned-agent:
1241
+ { slot: task-assigned-agent, renderer: { type: link }, order: 4 }
1242
+ task-project:
1243
+ { slot: task-project, renderer: { type: link }, order: 5 }
1244
+ task-due-date:
1245
+ {
1246
+ slot: task-due-date,
1247
+ renderer: { type: date, format: relative },
1248
+ order: 6,
1249
+ }
1250
+ task-token-estimate:
1251
+ { slot: task-token-estimate, renderer: { type: number }, order: 7 }
1252
+ task-actual-tokens:
1253
+ { slot: task-actual-tokens, renderer: { type: number }, order: 8 }
1254
+ task-effort-hours:
1255
+ { slot: task-effort-hours, renderer: { type: number }, order: 9 }
1256
+ task-blocked-by:
1257
+ {
1258
+ slot: task-blocked-by,
1259
+ renderer: { type: text },
1260
+ order: 10,
1261
+ label: "Blocked By",
1262
+ showLabel: true,
1263
+ }
1264
+ task-session-key:
1265
+ {
1266
+ slot: task-session-key,
1267
+ renderer: { type: text },
1268
+ order: 11,
1269
+ label: "Session Key",
1270
+ showLabel: true,
1271
+ }
820
1272
  task-tags: { slot: task-tags, renderer: { type: badge }, order: 12 }
821
1273
  colors:
822
1274
  accent: "#1B6E45"
@@ -835,7 +1287,14 @@ displayTemplates:
835
1287
  layout: horizontal
836
1288
  sidebar:
837
1289
  enabled: true
838
- slots: [skill-version, skill-install-date, skill-last-audit, skill-maintainer, skill-requires-api]
1290
+ slots:
1291
+ [
1292
+ skill-version,
1293
+ skill-install-date,
1294
+ skill-last-audit,
1295
+ skill-maintainer,
1296
+ skill-requires-api,
1297
+ ]
839
1298
  position: right
840
1299
  width: 260px
841
1300
  layout: vertical
@@ -844,16 +1303,62 @@ displayTemplates:
844
1303
  slots: [skill-source-url, skill-notes]
845
1304
  layout: vertical
846
1305
  fieldMapping:
847
- skill-trust: { slot: skill-trust, renderer: { type: badge }, order: 1 }
848
- skill-virustotal: { slot: skill-virustotal, renderer: { type: badge }, order: 2 }
849
- skill-category: { slot: skill-category, renderer: { type: badge }, order: 3 }
850
- skill-version: { slot: skill-version, renderer: { type: text }, order: 4, label: Version, showLabel: true }
851
- skill-install-date: { slot: skill-install-date, renderer: { type: date }, order: 5 }
852
- skill-last-audit: { slot: skill-last-audit, renderer: { type: date, format: relative }, order: 6, label: "Last Audit", showLabel: true }
853
- skill-maintainer: { slot: skill-maintainer, renderer: { type: text }, order: 7, label: Maintainer, showLabel: true }
854
- skill-requires-api: { slot: skill-requires-api, renderer: { type: checkbox }, order: 8, label: "Requires API Key", showLabel: true }
855
- skill-source-url: { slot: skill-source-url, renderer: { type: text }, order: 9, label: Source, showLabel: true }
856
- skill-notes: { slot: skill-notes, renderer: { type: text }, order: 10, label: "Security Notes", showLabel: true }
1306
+ skill-trust:
1307
+ { slot: skill-trust, renderer: { type: badge }, order: 1 }
1308
+ skill-virustotal:
1309
+ { slot: skill-virustotal, renderer: { type: badge }, order: 2 }
1310
+ skill-category:
1311
+ { slot: skill-category, renderer: { type: badge }, order: 3 }
1312
+ skill-version:
1313
+ {
1314
+ slot: skill-version,
1315
+ renderer: { type: text },
1316
+ order: 4,
1317
+ label: Version,
1318
+ showLabel: true,
1319
+ }
1320
+ skill-install-date:
1321
+ { slot: skill-install-date, renderer: { type: date }, order: 5 }
1322
+ skill-last-audit:
1323
+ {
1324
+ slot: skill-last-audit,
1325
+ renderer: { type: date, format: relative },
1326
+ order: 6,
1327
+ label: "Last Audit",
1328
+ showLabel: true,
1329
+ }
1330
+ skill-maintainer:
1331
+ {
1332
+ slot: skill-maintainer,
1333
+ renderer: { type: text },
1334
+ order: 7,
1335
+ label: Maintainer,
1336
+ showLabel: true,
1337
+ }
1338
+ skill-requires-api:
1339
+ {
1340
+ slot: skill-requires-api,
1341
+ renderer: { type: checkbox },
1342
+ order: 8,
1343
+ label: "Requires API Key",
1344
+ showLabel: true,
1345
+ }
1346
+ skill-source-url:
1347
+ {
1348
+ slot: skill-source-url,
1349
+ renderer: { type: text },
1350
+ order: 9,
1351
+ label: Source,
1352
+ showLabel: true,
1353
+ }
1354
+ skill-notes:
1355
+ {
1356
+ slot: skill-notes,
1357
+ renderer: { type: text },
1358
+ order: 10,
1359
+ label: "Security Notes",
1360
+ showLabel: true,
1361
+ }
857
1362
  colors:
858
1363
  accent: "#7C3AED"
859
1364
 
@@ -871,7 +1376,14 @@ displayTemplates:
871
1376
  layout: horizontal
872
1377
  sidebar:
873
1378
  enabled: true
874
- slots: [provider-model, provider-cost-input, provider-cost-output, provider-budget-day, provider-spend-week]
1379
+ slots:
1380
+ [
1381
+ provider-model,
1382
+ provider-cost-input,
1383
+ provider-cost-output,
1384
+ provider-budget-day,
1385
+ provider-spend-week,
1386
+ ]
875
1387
  position: right
876
1388
  width: 260px
877
1389
  layout: vertical
@@ -880,15 +1392,48 @@ displayTemplates:
880
1392
  slots: [provider-base-url, provider-notes]
881
1393
  layout: vertical
882
1394
  fieldMapping:
883
- provider-key-health: { slot: provider-key-health, renderer: { type: badge }, order: 1 }
884
- provider-type: { slot: provider-type, renderer: { type: badge }, order: 2 }
885
- provider-model: { slot: provider-model, renderer: { type: text }, order: 3, label: Model, showLabel: true }
886
- provider-cost-input: { slot: provider-cost-input, renderer: { type: number }, order: 4 }
887
- provider-cost-output: { slot: provider-cost-output, renderer: { type: number }, order: 5 }
888
- provider-budget-day: { slot: provider-budget-day, renderer: { type: number }, order: 6 }
889
- provider-spend-week: { slot: provider-spend-week, renderer: { type: progress }, order: 7, label: "Weekly Spend", showLabel: true }
890
- provider-base-url: { slot: provider-base-url, renderer: { type: text }, order: 8, label: Endpoint, showLabel: true }
891
- provider-notes: { slot: provider-notes, renderer: { type: text }, order: 9, label: Notes, showLabel: true }
1395
+ provider-key-health:
1396
+ { slot: provider-key-health, renderer: { type: badge }, order: 1 }
1397
+ provider-type:
1398
+ { slot: provider-type, renderer: { type: badge }, order: 2 }
1399
+ provider-model:
1400
+ {
1401
+ slot: provider-model,
1402
+ renderer: { type: text },
1403
+ order: 3,
1404
+ label: Model,
1405
+ showLabel: true,
1406
+ }
1407
+ provider-cost-input:
1408
+ { slot: provider-cost-input, renderer: { type: number }, order: 4 }
1409
+ provider-cost-output:
1410
+ { slot: provider-cost-output, renderer: { type: number }, order: 5 }
1411
+ provider-budget-day:
1412
+ { slot: provider-budget-day, renderer: { type: number }, order: 6 }
1413
+ provider-spend-week:
1414
+ {
1415
+ slot: provider-spend-week,
1416
+ renderer: { type: progress },
1417
+ order: 7,
1418
+ label: "Weekly Spend",
1419
+ showLabel: true,
1420
+ }
1421
+ provider-base-url:
1422
+ {
1423
+ slot: provider-base-url,
1424
+ renderer: { type: text },
1425
+ order: 8,
1426
+ label: Endpoint,
1427
+ showLabel: true,
1428
+ }
1429
+ provider-notes:
1430
+ {
1431
+ slot: provider-notes,
1432
+ renderer: { type: text },
1433
+ order: 9,
1434
+ label: Notes,
1435
+ showLabel: true,
1436
+ }
892
1437
  colors:
893
1438
  accent: "#B5451B"
894
1439
 
@@ -898,7 +1443,11 @@ bento:
898
1443
  - kind: widget
899
1444
  widgetType: welcome-header
900
1445
  pos: { x: 0, y: 0, w: 12, h: 2 }
901
- config: { title: "Agent Fleet", subtitle: "Your sovereign control plane for the agent fleet." }
1446
+ config:
1447
+ {
1448
+ title: "Agent Fleet",
1449
+ subtitle: "Your sovereign control plane for the agent fleet.",
1450
+ }
902
1451
  - kind: widget
903
1452
  widgetType: entity-count
904
1453
  pos: { x: 0, y: 2, w: 3, h: 2 }
@@ -918,15 +1467,24 @@ bento:
918
1467
  - kind: widget
919
1468
  widgetType: entity-spotlight
920
1469
  pos: { x: 0, y: 4, w: 4, h: 4 }
921
- config: { profileSlug: agent, seed: random, layout: detail, subtitleField: status, color: "#1A3A5C" }
1470
+ config:
1471
+ {
1472
+ profileSlug: agent,
1473
+ seed: random,
1474
+ layout: detail,
1475
+ subtitleField: status,
1476
+ color: "#1A3A5C",
1477
+ }
922
1478
  - kind: widget
923
1479
  widgetType: entity-list
924
1480
  pos: { x: 4, y: 4, w: 4, h: 4 }
925
- config: { profileSlug: task, title: "Active Tasks", limit: 6, variant: compact }
1481
+ config:
1482
+ { profileSlug: task, title: "Active Tasks", limit: 6, variant: compact }
926
1483
  - kind: widget
927
1484
  widgetType: entity-list
928
1485
  pos: { x: 8, y: 4, w: 4, h: 4 }
929
- config: { profileSlug: skill, title: "Top Skills", limit: 6, variant: compact }
1486
+ config:
1487
+ { profileSlug: skill, title: "Top Skills", limit: 6, variant: compact }
930
1488
  - kind: view
931
1489
  viewName: "Agent Fleet"
932
1490
  pos: { x: 0, y: 8, w: 8, h: 4 }