@synap-core/workspace-templates 0.12.0 → 0.23.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 (245) hide show
  1. package/README.md +483 -0
  2. package/automations/bookmark-enrichment.automation.json +321 -0
  3. package/automations/github-pr-events.automation.json +505 -0
  4. package/automations/mail-feed.automation.json +86 -0
  5. package/automations/ship-a-change-checks-green.automation.json +106 -0
  6. package/automations/ship-a-change-checks-red.automation.json +106 -0
  7. package/automations/ship-a-change-deployed.automation.json +56 -0
  8. package/automations/ship-a-change-pr-merged.automation.json +110 -0
  9. package/automations/ship-a-change-pr-opened.automation.json +104 -0
  10. package/automations/url-bookmark-capture.automation.json +132 -0
  11. package/capabilities/agency-skills.capability.json +157 -0
  12. package/capabilities/apify.capability.json +265 -0
  13. package/capabilities/apollo.capability.json +120 -0
  14. package/capabilities/arch-backend.capability.json +97 -0
  15. package/capabilities/arch-client-intelligence.capability.json +401 -0
  16. package/capabilities/backblaze-b2.capability.json +205 -0
  17. package/capabilities/cal-com.capability.json +266 -0
  18. package/capabilities/canva.capability.json +274 -0
  19. package/capabilities/claude-code-routines.capability.json +172 -0
  20. package/capabilities/claude-managed-agents.capability.json +215 -0
  21. package/capabilities/client-comms-report.capability.json +246 -0
  22. package/capabilities/content-idea-to-production.capability.json +29 -0
  23. package/capabilities/datagouv.capability.json +315 -0
  24. package/capabilities/discord-bot.capability.json +157 -0
  25. package/capabilities/dropbox.capability.json +281 -0
  26. package/capabilities/exa.capability.json +109 -0
  27. package/capabilities/fal-ai.capability.json +83 -0
  28. package/capabilities/fal-media-lab.capability.json +158 -0
  29. package/capabilities/fireflies.capability.json +191 -0
  30. package/capabilities/freellmapi.capability.json +114 -0
  31. package/capabilities/generic-apikey.capability.json +92 -0
  32. package/capabilities/github-merge.capability.json +99 -0
  33. package/capabilities/github-read.capability.json +325 -0
  34. package/capabilities/governance-tighten-recommender.capability.json +81 -0
  35. package/capabilities/jev.capability.json +226 -0
  36. package/capabilities/lead-conversion-enrollment.capability.json +246 -0
  37. package/capabilities/mail-feed.capability.json +277 -0
  38. package/capabilities/mailgun.capability.json +52 -0
  39. package/capabilities/nango-google.capability.json +639 -0
  40. package/capabilities/notion.capability.json +417 -0
  41. package/capabilities/omniroute.capability.json +137 -0
  42. package/capabilities/posthog-analytics.capability.json +258 -0
  43. package/capabilities/postiz.capability.json +467 -0
  44. package/capabilities/proactive-digest.capability.json +190 -0
  45. package/capabilities/proton.capability.json +288 -0
  46. package/capabilities/replicate-rvm.capability.json +97 -0
  47. package/capabilities/research-methods.capability.json +57 -0
  48. package/capabilities/shopify.capability.json +395 -0
  49. package/capabilities/slack.capability.json +369 -0
  50. package/capabilities/stripe.capability.json +420 -0
  51. package/capabilities/telegram-bridge.capability.json +56 -0
  52. package/capabilities/treg.capability.json +102 -0
  53. package/capabilities/unipile-linkedin.capability.json +471 -0
  54. package/capabilities/vercel.capability.json +424 -0
  55. package/dist/define-CPS0n8BV.d.ts +1331 -0
  56. package/dist/index.d.ts +174 -900
  57. package/dist/index.js +26148 -23931
  58. package/dist/index.js.map +1 -1
  59. package/dist/wire.d.ts +222 -0
  60. package/dist/wire.js +77 -0
  61. package/dist/wire.js.map +1 -0
  62. package/package.json +27 -4
  63. package/packs/bookmark-views-pack.json +33 -0
  64. package/packs/crm-pack.json +76 -0
  65. package/packs/customer-profile.json +28 -0
  66. package/packs/deep-research.playbook.json +30 -0
  67. package/packs/event-views-pack.json +33 -0
  68. package/packs/habit-profile.json +27 -0
  69. package/packs/hr-pack.json +54 -0
  70. package/packs/invoice-profile.json +28 -0
  71. package/packs/knowledge-base-pack.json +56 -0
  72. package/packs/meeting-profile.json +29 -0
  73. package/packs/product-profile.json +30 -0
  74. package/packs/project-management-pack.json +49 -0
  75. package/packs/recipe-profile.json +29 -0
  76. package/packs/task-views-pack.json +39 -0
  77. package/retired.yaml +136 -0
  78. package/skills/app-factory-build-slice/SKILL.md +70 -0
  79. package/skills/app-factory-build-slice.catalog.json +17 -0
  80. package/skills/app-factory-design-canvas/SKILL.md +96 -0
  81. package/skills/app-factory-design-canvas.catalog.json +17 -0
  82. package/skills/app-factory-design-review/SKILL.md +99 -0
  83. package/skills/app-factory-design-review.catalog.json +18 -0
  84. package/skills/app-factory-research/SKILL.md +123 -0
  85. package/skills/app-factory-research.catalog.json +17 -0
  86. package/skills/bookmark-enrichment/SKILL.md +40 -0
  87. package/skills/carousel-format/carousel-format.skill.json +18 -0
  88. package/skills/collage-broll/collage-broll.skill.json +20 -0
  89. package/skills/content-taste/content-taste.skill.json +18 -0
  90. package/skills/creative-director/creative-director.skill.json +18 -0
  91. package/skills/design-critique/SKILL.md +135 -0
  92. package/skills/design-critique.catalog.json +12 -0
  93. package/skills/designing-with-real-components/SKILL.md +140 -0
  94. package/skills/designing-with-real-components.catalog.json +12 -0
  95. package/skills/edit-loop/edit-loop.skill.json +25 -0
  96. package/skills/facecam-edit/facecam-edit.skill.json +24 -0
  97. package/skills/mapping-the-server/SKILL.md +54 -0
  98. package/skills/math-explainer-manimgx/math-explainer-manimgx.skill.json +20 -0
  99. package/skills/motion-quality-gates/motion-quality-gates.skill.json +20 -0
  100. package/skills/open-design-edit/open-design-edit.skill.json +24 -0
  101. package/skills/reading-client-progress/SKILL.md +65 -0
  102. package/skills/routing-to-channels/SKILL.md +54 -0
  103. package/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
  104. package/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
  105. package/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
  106. package/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
  107. package/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
  108. package/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
  109. package/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
  110. package/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
  111. package/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
  112. package/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
  113. package/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
  114. package/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
  115. package/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
  116. package/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
  117. package/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
  118. package/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
  119. package/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
  120. package/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
  121. package/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
  122. package/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
  123. package/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
  124. package/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
  125. package/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
  126. package/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
  127. package/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
  128. package/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
  129. package/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
  130. package/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
  131. package/skills/video-direction/video-direction.skill.json +20 -0
  132. package/skills/video-style-vocabulary/video-style-vocabulary.skill.json +20 -0
  133. package/skills/video-toolbox/video-toolbox.skill.json +20 -0
  134. package/src/__fixtures__/lifecycle-presets.flat-before.json +205 -0
  135. package/src/agency-os.yaml +122 -0
  136. package/src/agent-os-skill-slugs.test.ts +65 -0
  137. package/src/apify-social-reader.test.ts +317 -0
  138. package/src/base.yaml +85 -39
  139. package/src/blockchain-ecosystem.yaml +1 -0
  140. package/src/brand-library.yaml +525 -14
  141. package/src/builder-dev-fold.template.test.ts +113 -0
  142. package/src/builder.yaml +779 -91
  143. package/src/business-model-catalog-description.test.ts +47 -0
  144. package/src/business-model-grp.template.test.ts +214 -0
  145. package/src/business-model.yaml +296 -49
  146. package/src/catalog-safety.test.ts +198 -0
  147. package/src/catalog.template-items.test.ts +75 -0
  148. package/src/catalog.ts +66 -2
  149. package/src/concept-guard.test.ts +28 -8
  150. package/src/concept-guard.ts +2 -2
  151. package/src/content-creation.template.test.ts +52 -0
  152. package/src/content-creation.yaml +192 -0
  153. package/src/content-os.edit-loop.template.test.ts +210 -0
  154. package/src/content-os.publish-due-posts.template.test.ts +261 -0
  155. package/src/content-os.template.test.ts +322 -0
  156. package/src/content-os.video-takes.template.test.ts +338 -0
  157. package/src/content-os.work-a-take.template.test.ts +125 -0
  158. package/src/content-os.yaml +1830 -39
  159. package/src/content-studio-retired.template.test.ts +82 -0
  160. package/src/corpus-flow-validity.test.ts +4 -5
  161. package/src/crm-absorbs-outreach.template.test.ts +117 -0
  162. package/src/crm-build-plan.template.test.ts +128 -0
  163. package/src/crm-lists.template.test.ts +96 -0
  164. package/src/crm-messages-cadence.template.test.ts +164 -0
  165. package/src/crm-one-send-door.template.test.ts +65 -0
  166. package/src/crm.yaml +1456 -181
  167. package/src/decisions-wave.template.test.ts +186 -0
  168. package/src/define.ts +130 -17
  169. package/src/design-to-implementation.template.test.ts +94 -0
  170. package/src/domain-template-type.test.ts +75 -0
  171. package/src/ecosystem.yaml +27 -66
  172. package/src/enterprise-os.yaml +10 -134
  173. package/src/facecam-edit.audio-studio.test.ts +188 -0
  174. package/src/fal-generate-image.test.ts +200 -0
  175. package/src/fal-media-lab-pod-files.test.ts +180 -0
  176. package/src/finance.yaml +254 -1
  177. package/src/foundation.yaml +78 -38
  178. package/src/frame-host-modules.d.mts +6 -0
  179. package/src/frame-host-modules.mjs +58 -0
  180. package/src/generate.mjs +9 -3
  181. package/src/github-merge.test.ts +210 -0
  182. package/src/grants.yaml +46 -17
  183. package/src/hr.yaml +39 -6
  184. package/src/index.ts +36 -1
  185. package/src/intent.test.ts +161 -0
  186. package/src/internal-runbook.yaml +19 -1
  187. package/src/jev.test.ts +356 -0
  188. package/src/legal.yaml +33 -1
  189. package/src/life-os.yaml +51 -240
  190. package/src/lifecycle-coverage.test.ts +124 -0
  191. package/src/lifecycle-declarations.test.ts +252 -0
  192. package/src/lifecycle-presets.test.ts +468 -0
  193. package/src/lifecycle-presets.ts +494 -0
  194. package/src/lifecycle-stuck.test.ts +46 -0
  195. package/src/lifecycle-waits.parity.test.ts +319 -0
  196. package/src/marketing.yaml +108 -4
  197. package/src/meetings-knowledge.yaml +18 -0
  198. package/src/networking.yaml +23 -2
  199. package/src/operations.yaml +304 -4
  200. package/src/pipeline-views.template.test.ts +88 -0
  201. package/src/playbook-goal-placeholders.test.ts +57 -0
  202. package/src/postiz-contract.test.ts +134 -0
  203. package/src/presentation-declarations.test.ts +174 -0
  204. package/src/process-contract.validate.test.ts +352 -0
  205. package/src/project-management.yaml +39 -740
  206. package/src/publish-body.d.mts +29 -0
  207. package/src/publish-body.mjs +74 -0
  208. package/src/publish-body.test.ts +74 -0
  209. package/src/publish-official-lib.test.ts +176 -0
  210. package/src/replicate-rvm.test.ts +504 -0
  211. package/src/research-base.yaml +119 -20
  212. package/src/research-decision.yaml +60 -3
  213. package/src/reserved-profile-slugs.test.ts +83 -0
  214. package/src/retired-goal-kinds.test.ts +58 -0
  215. package/src/role-reference-and-step-domain.test.ts +192 -0
  216. package/src/seed-obligation.test.ts +1 -6
  217. package/src/send-message-maps.test.ts +227 -0
  218. package/src/shared-role-ssot.test.ts +40 -2
  219. package/src/ship-a-change.template.test.ts +177 -0
  220. package/src/skills.test.ts +170 -0
  221. package/src/social.yaml +85 -27
  222. package/src/space-packages.freshness.test.ts +97 -0
  223. package/src/space-packages.generated.ts +40 -0
  224. package/src/space-packages.test.ts +125 -0
  225. package/src/space-packages.ts +73 -0
  226. package/src/start.test.ts +188 -0
  227. package/src/task-intents.test.ts +293 -0
  228. package/src/templates.ts +20851 -21496
  229. package/src/types.ts +443 -60
  230. package/src/unipile-publish-post.test.ts +162 -0
  231. package/src/validate-flow.drift.test.ts +2 -3
  232. package/src/validate-flow.ts +22 -2
  233. package/src/validate-onboarding.test.ts +59 -0
  234. package/src/validate.test.ts +71 -4
  235. package/src/validate.ts +1335 -7
  236. package/src/wire-core.ts +231 -0
  237. package/src/wire.test.ts +159 -0
  238. package/src/wire.ts +107 -0
  239. package/src/agent-fleet.yaml +0 -1645
  240. package/src/business-developer.template.test.ts +0 -351
  241. package/src/business-developer.yaml +0 -860
  242. package/src/content-studio.yaml +0 -361
  243. package/src/dev-dashboard.yaml +0 -990
  244. package/src/outreach-comms.yaml +0 -486
  245. package/src/the-arch.yaml +0 -201
@@ -1,1645 +0,0 @@
1
- # Agent Fleet workspace template
2
- # Migrated from the OpenClaw "Agent OS" package (agent-os.package.json) UNIONed with
3
- # the control-plane "agent OS.json" superset. Renamed: "OpenClaw Agent OS" → "Agent Fleet".
4
- # The name "Agent OS" is freed for the umbrella "Company OS" orchestrator; this workspace
5
- # is the agent-fleet management surface. AI-generation-friendly YAML. Validated against types.ts.
6
-
7
- meta:
8
- slug: agent-fleet
9
- domain: build
10
- name: "Agent Fleet"
11
- description: "Manage your fleet of AI agents — the agents, their providers, skills, and the work they do."
12
- icon: bot
13
- color: "#1A3A5C"
14
- tags: [ai, agents, automation, openclaw, fleet]
15
- isPublic: true
16
-
17
- workspace:
18
- name: "Agent Fleet"
19
- description: "The sovereign control plane for your OpenClaw agent fleet. Agents, projects, tasks, skills, and providers as connected entities — not daemon logs."
20
- proposalId: agent-fleet-v1
21
- subtype: agent-fleet
22
- workspaceType: agent
23
- visibility: pod_visible
24
-
25
- profiles:
26
- - slug: agent
27
- displayName: Agent
28
- icon: bot
29
- color: "#1A3A5C"
30
- scope: WORKSPACE
31
- description: "A deployed OpenClaw agent — your running AI entity"
32
- properties:
33
- - slug: agent-status
34
- label: Status
35
- valueType: string
36
- inputType: select
37
- enumValues: [Offline, Idle, Active, Error, Maintenance]
38
- constraints:
39
- defaultValue: Idle
40
- - slug: agent-health
41
- label: Health
42
- valueType: string
43
- inputType: select
44
- enumValues: [Healthy, Degraded, Error]
45
- - slug: agent-runtime
46
- label: Runtime
47
- valueType: string
48
- inputType: select
49
- enumValues: [OpenClaw, Custom]
50
- - slug: agent-version
51
- label: Version
52
- valueType: string
53
- - slug: agent-model
54
- label: Primary Model
55
- valueType: string
56
- - slug: agent-provider
57
- label: Provider
58
- valueType: entity_id
59
- targetProfileSlug: provider
60
- - slug: agent-owner
61
- label: Owner
62
- valueType: entity_id
63
- targetProfileSlug: person
64
- - slug: agent-channel
65
- label: Primary Channel
66
- valueType: string
67
- inputType: select
68
- enumValues:
69
- [
70
- Telegram,
71
- WhatsApp,
72
- Discord,
73
- Slack,
74
- Signal,
75
- iMessage,
76
- CLI,
77
- WebChat,
78
- Other,
79
- ]
80
- - slug: agent-channels
81
- label: All Channels
82
- valueType: array
83
- inputType: select
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
- ]
98
- - slug: agent-heartbeat
99
- label: Heartbeat Schedule
100
- valueType: string
101
- - slug: agent-last-seen
102
- label: Last Seen
103
- valueType: date
104
- - slug: agent-workspace
105
- label: Workspace Path
106
- valueType: string
107
- - slug: agent-deployment
108
- label: Deployment
109
- valueType: string
110
- inputType: select
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
- ]
122
- - slug: agent-role
123
- label: Role
124
- valueType: string
125
- inputType: select
126
- enumValues:
127
- [
128
- Generalist,
129
- Coder,
130
- Researcher,
131
- Writer,
132
- Ops,
133
- Coordinator,
134
- Monitor,
135
- Custom,
136
- ]
137
- - slug: agent-tags
138
- label: Tags
139
- valueType: array
140
- inputType: select
141
- enumValues:
142
- [
143
- production,
144
- development,
145
- personal,
146
- team,
147
- experimental,
148
- "24/7",
149
- on-demand,
150
- ]
151
-
152
- - slug: project
153
- displayName: Project
154
- icon: folder
155
- color: "#2E6DA4"
156
- scope: WORKSPACE
157
- description: "A bounded body of work delegated to one or more agents"
158
- properties:
159
- - slug: project-status
160
- label: Status
161
- valueType: string
162
- inputType: select
163
- enumValues:
164
- [Backlog, Queued, "In Progress", Blocked, Completed, Cancelled]
165
- constraints:
166
- defaultValue: Queued
167
- - slug: project-priority
168
- label: Priority
169
- valueType: string
170
- inputType: select
171
- enumValues: [Critical, High, Medium, Low]
172
- - slug: project-assigned-agent
173
- label: Assigned Agent
174
- valueType: entity_id
175
- targetProfileSlug: agent
176
- - slug: project-owner
177
- label: Human Owner
178
- valueType: entity_id
179
- targetProfileSlug: person
180
- - slug: project-start
181
- label: Start Date
182
- valueType: date
183
- - slug: project-deadline
184
- label: Deadline
185
- valueType: date
186
- - slug: project-health
187
- label: Health
188
- valueType: string
189
- inputType: select
190
- enumValues: [Green, Yellow, Red]
191
- - slug: project-type
192
- label: Type
193
- valueType: string
194
- inputType: select
195
- enumValues:
196
- [
197
- Development,
198
- Research,
199
- Content,
200
- Automation,
201
- DevOps,
202
- Data,
203
- Outreach,
204
- Monitoring,
205
- ]
206
- - slug: project-goal
207
- label: Goal
208
- valueType: string
209
- - slug: project-outcome
210
- label: Expected Outcome
211
- valueType: string
212
- - slug: project-tags
213
- label: Tags
214
- valueType: array
215
- inputType: select
216
- enumValues:
217
- [recurring, one-off, long-running, client, internal, experimental]
218
-
219
- - slug: task
220
- displayName: Task
221
- icon: check-square
222
- color: "#1B6E45"
223
- scope: WORKSPACE
224
- description: "An atomic work item assigned to an agent"
225
- properties:
226
- - slug: task-status
227
- label: Status
228
- valueType: string
229
- inputType: select
230
- enumValues: [Backlog, Queued, Running, Review, Done, Failed, Cancelled]
231
- constraints:
232
- defaultValue: Queued
233
- - slug: task-priority
234
- label: Priority
235
- valueType: string
236
- inputType: select
237
- enumValues: [Critical, High, Medium, Low]
238
- constraints:
239
- defaultValue: Medium
240
- - slug: task-assigned-agent
241
- label: Assigned Agent
242
- valueType: entity_id
243
- targetProfileSlug: agent
244
- - slug: task-project
245
- label: Project
246
- valueType: entity_id
247
- targetProfileSlug: project
248
- - slug: task-type
249
- label: Type
250
- valueType: string
251
- inputType: select
252
- enumValues:
253
- [
254
- Code,
255
- Research,
256
- Content,
257
- Ops,
258
- Data,
259
- Outreach,
260
- Review,
261
- Monitor,
262
- Custom,
263
- ]
264
- - slug: task-due-date
265
- label: Due Date
266
- valueType: date
267
- - slug: task-effort-hours
268
- label: Effort Estimate (hrs)
269
- valueType: number
270
- - slug: task-token-estimate
271
- label: Token Estimate (K)
272
- valueType: number
273
- - slug: task-actual-tokens
274
- label: Actual Tokens Used (K)
275
- valueType: number
276
- - slug: task-blocked-by
277
- label: Blocked By
278
- valueType: string
279
- - slug: task-session-key
280
- label: Session Key
281
- valueType: string
282
- - slug: task-tags
283
- label: Tags
284
- valueType: array
285
- inputType: select
286
- enumValues:
287
- [autonomous, needs-review, high-cost, recurring, blocked, delegated]
288
-
289
- - slug: skill
290
- displayName: Skill
291
- icon: zap
292
- color: "#7C3AED"
293
- scope: WORKSPACE
294
- description: "An installed agent capability — a ClawHub skill, custom script, or API integration"
295
- properties:
296
- - slug: skill-trust
297
- label: Trust Level
298
- valueType: string
299
- inputType: select
300
- enumValues: [Trusted, Review, Untrusted, Blocked]
301
- constraints:
302
- defaultValue: Review
303
- - slug: skill-category
304
- label: Category
305
- valueType: string
306
- inputType: select
307
- enumValues:
308
- [
309
- Productivity,
310
- Development,
311
- Communication,
312
- Data,
313
- Security,
314
- Storage,
315
- Browser,
316
- Voice,
317
- IoT,
318
- Custom,
319
- ]
320
- - slug: skill-source-url
321
- label: Source URL
322
- valueType: string
323
- - slug: skill-version
324
- label: Version
325
- valueType: string
326
- - slug: skill-install-date
327
- label: Install Date
328
- valueType: date
329
- - slug: skill-last-audit
330
- label: Last Audit Date
331
- valueType: date
332
- - slug: skill-virustotal
333
- label: VirusTotal Status
334
- valueType: string
335
- inputType: select
336
- enumValues: [Clean, Flagged, "Not Scanned", Pending]
337
- - slug: skill-maintainer
338
- label: Maintainer
339
- valueType: string
340
- - slug: skill-requires-api
341
- label: Requires API Key
342
- valueType: boolean
343
- - slug: skill-notes
344
- label: Security Notes
345
- valueType: string
346
-
347
- - slug: provider
348
- displayName: Provider
349
- icon: database
350
- color: "#B5451B"
351
- scope: WORKSPACE
352
- description: "An LLM or API provider — tracks cost, key health, and agent usage"
353
- properties:
354
- - slug: provider-type
355
- label: Type
356
- valueType: string
357
- inputType: select
358
- enumValues:
359
- [
360
- "LLM Cloud",
361
- "LLM Local",
362
- "API Gateway",
363
- "Vector DB",
364
- Storage,
365
- Custom,
366
- ]
367
- - slug: provider-key-health
368
- label: Key Health
369
- valueType: string
370
- inputType: select
371
- enumValues: [Valid, Expiring, Expired, "No Key (Local)"]
372
- constraints:
373
- defaultValue: Valid
374
- - slug: provider-model
375
- label: Model / Endpoint
376
- valueType: string
377
- - slug: provider-cost-input
378
- label: Cost per 1K Input Tokens ($)
379
- valueType: number
380
- - slug: provider-cost-output
381
- label: Cost per 1K Output Tokens ($)
382
- valueType: number
383
- - slug: provider-budget-day
384
- label: Daily Budget Ceiling ($)
385
- valueType: number
386
- - slug: provider-spend-week
387
- label: Actual Spend This Week ($)
388
- valueType: number
389
- - slug: provider-base-url
390
- label: Base URL / Endpoint
391
- valueType: string
392
- - slug: provider-notes
393
- label: Notes
394
- valueType: string
395
-
396
- - slug: person
397
- displayName: Person
398
- icon: user
399
- color: "#0891B2"
400
- # Pod-wide identity: `person` is ONE pod-wide SYSTEM kind. `entityScope: pod`
401
- # lands the ROWS with `workspace_id = NULL` (visible from every workspace);
402
- # `scope` omitted (no claim) so the applier reuses the system row and these
403
- # agent-fleet props land as this workspace's OVERLAY.
404
- # (Was `scope: WORKSPACE`, which contradicted the pod-wide model.)
405
- entityScope: pod
406
- description: "Team member or agent owner"
407
- properties:
408
- - slug: person-role
409
- label: Role
410
- valueType: string
411
- inputType: select
412
- enumValues: [Founder, Engineer, DevOps, Product, Researcher, Advisor]
413
- - slug: person-email
414
- label: Email
415
- valueType: string
416
- - slug: person-telegram
417
- label: Telegram Handle
418
- valueType: string
419
- - slug: person-focus
420
- label: Current Focus
421
- valueType: string
422
-
423
- views:
424
- - name: "Agent Fleet"
425
- slug: agent-fleet
426
- type: kanban
427
- scopeProfileSlug: agent
428
- defaultView: true
429
- description: "All agents by status — the mission control view. Offline → Idle → Active → Error."
430
- config:
431
- groupByField: agent-status
432
-
433
- - name: "Agent → Projects → Tasks"
434
- slug: agent-project-task-hierarchy
435
- type: graph
436
- scopeProfileSlugs: [agent, project, task]
437
- description: "3-level drill-down: Agent expands to linked Projects, Projects expand to Tasks. The delegation tree."
438
- config:
439
- hierarchyEdges:
440
- - parent: agent
441
- child: project
442
- via: project-assigned-agent
443
- - parent: project
444
- child: task
445
- via: task-project
446
-
447
- - name: "Task Board"
448
- slug: task-board
449
- type: kanban
450
- scopeProfileSlug: task
451
- description: "All tasks by status: Backlog → Queued → Running → Review → Done."
452
- config:
453
- groupByField: task-status
454
-
455
- - name: "Project Command Center"
456
- slug: project-command-center
457
- type: table
458
- scopeProfileSlug: project
459
- description: "All projects with assigned agent, status, deadline, health — the manager's daily view."
460
- config:
461
- sortBy: project-priority
462
-
463
- - name: "Skill Registry"
464
- slug: skill-registry
465
- type: table
466
- scopeProfileSlug: skill
467
- description: "All installed skills grouped by trust level: Trusted / Review / Untrusted. Security triage at a glance."
468
- config:
469
- groupByField: skill-trust
470
- visibleColumns:
471
- [
472
- skill-trust,
473
- skill-category,
474
- skill-version,
475
- skill-maintainer,
476
- skill-last-audit,
477
- skill-virustotal,
478
- skill-requires-api,
479
- ]
480
-
481
- - name: "Provider Dashboard"
482
- slug: provider-dashboard
483
- type: table
484
- scopeProfileSlug: provider
485
- description: "All providers with cost-per-token, key health, daily budget, and weekly spend."
486
- config:
487
- visibleColumns:
488
- [
489
- provider-type,
490
- provider-key-health,
491
- provider-model,
492
- provider-cost-input,
493
- provider-cost-output,
494
- provider-budget-day,
495
- provider-spend-week,
496
- ]
497
-
498
- - name: "Relationship Graph"
499
- slug: relationship-graph
500
- type: graph
501
- scopeProfileSlugs: [agent, project, task, skill, provider, person]
502
- description: "Full sovereign topology: Agent ← Project ← Task + Skill + Provider. The infrastructure map you cannot build in any other tool."
503
- config:
504
- layout: force
505
- showRelations: true
506
-
507
- - name: "Agent Timeline"
508
- slug: agent-timeline
509
- type: timeline
510
- scopeProfileSlug: project
511
- description: "Projects as timeline bars, color-coded by assigned agent — who owns what, when."
512
- config:
513
- startField: project-start
514
- endField: project-deadline
515
- colorBy: project-assigned-agent
516
-
517
- - name: "Cost View"
518
- slug: cost-view
519
- type: table
520
- scopeProfileSlug: task
521
- description: "Tasks ranked by actual token usage — the CFO view. Which work is burning budget?"
522
- config:
523
- visibleColumns:
524
- [
525
- task-status,
526
- task-type,
527
- task-assigned-agent,
528
- task-token-estimate,
529
- task-actual-tokens,
530
- task-effort-hours,
531
- ]
532
- defaultSort:
533
- field: task-actual-tokens
534
- direction: desc
535
-
536
- - name: "Untrusted Skills Alert"
537
- slug: untrusted-skills-alert
538
- type: table
539
- scopeProfileSlug: skill
540
- description: "Skills requiring security review. Audit before your agents run them."
541
- config:
542
- visibleColumns:
543
- [
544
- skill-trust,
545
- skill-category,
546
- skill-source-url,
547
- skill-maintainer,
548
- skill-virustotal,
549
- skill-notes,
550
- ]
551
- filterBy:
552
- field: skill-trust
553
- operator: in
554
- value: [Review, Untrusted, Blocked]
555
-
556
- - name: "Backlog"
557
- slug: backlog
558
- type: table
559
- scopeProfileSlug: task
560
- description: "Unqueued tasks awaiting agent assignment."
561
- config:
562
- visibleColumns:
563
- [
564
- task-priority,
565
- task-type,
566
- task-assigned-agent,
567
- task-due-date,
568
- task-effort-hours,
569
- task-token-estimate,
570
- ]
571
- filterBy:
572
- field: task-status
573
- operator: is
574
- value: Backlog
575
- defaultSort:
576
- field: task-priority
577
- direction: desc
578
-
579
- - name: "Agent Health Monitor"
580
- slug: agent-health-monitor
581
- type: kanban
582
- scopeProfileSlug: agent
583
- description: "Agents grouped by health: Healthy / Degraded / Error. Operational triage."
584
- config:
585
- groupByField: agent-health
586
-
587
- - name: "Session Logs"
588
- slug: session-log-view
589
- type: table
590
- scopeProfileSlug: task
591
- description: "Tasks with session keys — the audit trail of what agents actually executed."
592
- config:
593
- visibleColumns:
594
- [
595
- task-status,
596
- task-assigned-agent,
597
- task-session-key,
598
- task-actual-tokens,
599
- task-type,
600
- ]
601
- filterBy:
602
- field: task-session-key
603
- operator: is_not_empty
604
-
605
- - name: "Provider Key Health"
606
- slug: provider-key-health
607
- type: kanban
608
- scopeProfileSlug: provider
609
- description: "Providers by credential status: Valid / Expiring / Expired. Never run an agent on an expired key."
610
- config:
611
- groupByField: provider-key-health
612
-
613
- - name: "My Active Work"
614
- slug: my-active-work
615
- type: table
616
- scopeProfileSlug: task
617
- description: "Tasks currently in flight — what your agents are doing right now."
618
- config:
619
- visibleColumns:
620
- [
621
- task-status,
622
- task-priority,
623
- task-type,
624
- task-assigned-agent,
625
- task-due-date,
626
- ]
627
- filterBy:
628
- field: task-status
629
- operator: in
630
- value: [Queued, Running, Review]
631
- defaultSort:
632
- field: task-due-date
633
- direction: asc
634
-
635
- - name: Agent
636
- type: bento
637
- scopeProfileSlug: agent
638
- config:
639
- layout: bento
640
- blocks:
641
- - id: agent-header
642
- kind: widget
643
- widgetType: section-header
644
- pos: { x: 0, y: 0, w: 12, h: 2 }
645
- config:
646
- {
647
- title: "Agent Fleet",
648
- icon: Bot,
649
- color: "#1A3A5C",
650
- profileSlug: agent,
651
- }
652
- - id: agent-count
653
- kind: widget
654
- widgetType: stat-card
655
- pos: { x: 0, y: 2, w: 3, h: 3 }
656
- config:
657
- {
658
- label: "Active Agents",
659
- aggregation: count,
660
- profileSlug: agent,
661
- color: "#1A3A5C",
662
- }
663
- - id: agent-fleet
664
- kind: view
665
- viewName: "Agent Fleet"
666
- pos: { x: 0, y: 9, w: 12, h: 8 }
667
- - id: agent-health
668
- kind: view
669
- viewName: "Agent Health Monitor"
670
- pos: { x: 0, y: 19, w: 12, h: 8 }
671
- - id: agent-active
672
- kind: widget
673
- widgetType: entity-count
674
- pos: { x: 3, y: 2, w: 3, h: 3 }
675
- config:
676
- {
677
- profileSlug: agent,
678
- label: Active,
679
- icon: CheckCircle,
680
- filter: { status: active },
681
- color: "#10B981",
682
- }
683
- - id: agent-running-tasks
684
- kind: widget
685
- widgetType: entity-count
686
- pos: { x: 6, y: 2, w: 3, h: 3 }
687
- config:
688
- {
689
- profileSlug: task,
690
- label: "Running Tasks",
691
- icon: Loader,
692
- color: "#3B82F6",
693
- }
694
- - id: agent-skills-avail
695
- kind: widget
696
- widgetType: entity-count
697
- pos: { x: 9, y: 2, w: 3, h: 3 }
698
- config:
699
- {
700
- profileSlug: skill,
701
- label: "Skills Available",
702
- icon: Zap,
703
- color: "#8B5CF6",
704
- }
705
- - id: agent-spotlight
706
- kind: widget
707
- widgetType: entity-spotlight
708
- pos: { x: 0, y: 5, w: 5, h: 4 }
709
- config:
710
- {
711
- profileSlug: agent,
712
- seed: daily,
713
- layout: detail,
714
- subtitleField: status,
715
- color: "#1A3A5C",
716
- }
717
- - id: agent-recent-tasks
718
- kind: widget
719
- widgetType: entity-list
720
- pos: { x: 5, y: 5, w: 7, h: 4 }
721
- config:
722
- {
723
- profileSlug: task,
724
- title: "Recent Tasks",
725
- limit: 8,
726
- variant: compact,
727
- }
728
- breakpoints:
729
- lg: { cols: 12, rowHeight: 60, gap: 12 }
730
- md: { cols: 10, rowHeight: 60, gap: 12 }
731
- sm: { cols: 6, rowHeight: 60, gap: 12 }
732
- xs: { cols: 4, rowHeight: 60, gap: 12 }
733
- xxs: { cols: 2, rowHeight: 60, gap: 12 }
734
-
735
- - name: Task
736
- type: bento
737
- scopeProfileSlug: task
738
- config:
739
- layout: bento
740
- blocks:
741
- - id: task-header
742
- kind: widget
743
- widgetType: section-header
744
- pos: { x: 0, y: 0, w: 12, h: 2 }
745
- config:
746
- {
747
- title: Tasks,
748
- icon: CheckSquare,
749
- color: "#6366F1",
750
- profileSlug: task,
751
- }
752
- - id: task-count
753
- kind: widget
754
- widgetType: stat-card
755
- pos: { x: 0, y: 2, w: 3, h: 3 }
756
- config:
757
- {
758
- label: "Total Tasks",
759
- aggregation: count,
760
- profileSlug: task,
761
- color: "#6366F1",
762
- }
763
- - id: task-board
764
- kind: view
765
- viewName: "Task Board"
766
- pos: { x: 0, y: 9, w: 12, h: 8 }
767
- - id: task-backlog
768
- kind: view
769
- viewName: Backlog
770
- pos: { x: 0, y: 19, w: 12, h: 8 }
771
- - id: task-in-progress
772
- kind: widget
773
- widgetType: entity-count
774
- pos: { x: 3, y: 2, w: 3, h: 3 }
775
- config:
776
- {
777
- profileSlug: task,
778
- label: "In Progress",
779
- icon: Loader,
780
- filter: { status: in-progress },
781
- color: "#3B82F6",
782
- }
783
- - id: task-completed
784
- kind: widget
785
- widgetType: entity-count
786
- pos: { x: 6, y: 2, w: 3, h: 3 }
787
- config:
788
- {
789
- profileSlug: task,
790
- label: Completed,
791
- icon: CheckCircle,
792
- filter: { status: completed },
793
- color: "#10B981",
794
- }
795
- - id: task-failed
796
- kind: widget
797
- widgetType: entity-count
798
- pos: { x: 9, y: 2, w: 3, h: 3 }
799
- config:
800
- {
801
- profileSlug: task,
802
- label: Failed,
803
- icon: XCircle,
804
- filter: { status: failed },
805
- color: "#EF4444",
806
- }
807
- - id: task-active-list
808
- kind: widget
809
- widgetType: entity-list
810
- pos: { x: 0, y: 5, w: 12, h: 4 }
811
- config:
812
- {
813
- profileSlug: task,
814
- title: "Active Tasks",
815
- limit: 8,
816
- variant: detailed,
817
- }
818
- breakpoints:
819
- lg: { cols: 12, rowHeight: 60, gap: 12 }
820
- md: { cols: 10, rowHeight: 60, gap: 12 }
821
- sm: { cols: 6, rowHeight: 60, gap: 12 }
822
- xs: { cols: 4, rowHeight: 60, gap: 12 }
823
- xxs: { cols: 2, rowHeight: 60, gap: 12 }
824
-
825
- - name: Project
826
- type: bento
827
- scopeProfileSlug: project
828
- config:
829
- layout: bento
830
- blocks:
831
- - id: project-header
832
- kind: widget
833
- widgetType: section-header
834
- pos: { x: 0, y: 0, w: 12, h: 2 }
835
- config:
836
- {
837
- title: Projects,
838
- icon: Folder,
839
- color: "#F59E0B",
840
- profileSlug: project,
841
- }
842
- - id: project-count
843
- kind: widget
844
- widgetType: stat-card
845
- pos: { x: 0, y: 2, w: 3, h: 3 }
846
- config:
847
- {
848
- label: "Total Projects",
849
- aggregation: count,
850
- profileSlug: project,
851
- color: "#F59E0B",
852
- }
853
- - id: project-cmd
854
- kind: view
855
- viewName: "Project Command Center"
856
- pos: { x: 0, y: 5, w: 12, h: 10 }
857
- - id: project-timeline
858
- kind: view
859
- viewName: "Agent Timeline"
860
- pos: { x: 0, y: 15, w: 12, h: 8 }
861
- breakpoints:
862
- lg: { cols: 12, rowHeight: 60, gap: 12 }
863
- md: { cols: 10, rowHeight: 60, gap: 12 }
864
- sm: { cols: 6, rowHeight: 60, gap: 12 }
865
- xs: { cols: 4, rowHeight: 60, gap: 12 }
866
- xxs: { cols: 2, rowHeight: 60, gap: 12 }
867
-
868
- - name: Skill
869
- type: bento
870
- scopeProfileSlug: skill
871
- config:
872
- layout: bento
873
- blocks:
874
- - id: skill-header
875
- kind: widget
876
- widgetType: section-header
877
- pos: { x: 0, y: 0, w: 12, h: 2 }
878
- config:
879
- { title: Skills, icon: Zap, color: "#10B981", profileSlug: skill }
880
- - id: skill-count
881
- kind: widget
882
- widgetType: stat-card
883
- pos: { x: 0, y: 2, w: 3, h: 3 }
884
- config:
885
- {
886
- label: "Total Skills",
887
- aggregation: count,
888
- profileSlug: skill,
889
- color: "#10B981",
890
- }
891
- - id: skill-registry
892
- kind: view
893
- viewName: "Skill Registry"
894
- pos: { x: 0, y: 9, w: 12, h: 8 }
895
- - id: skill-trusted
896
- kind: widget
897
- widgetType: entity-count
898
- pos: { x: 3, y: 2, w: 3, h: 3 }
899
- config:
900
- {
901
- profileSlug: skill,
902
- label: Trusted,
903
- icon: Shield,
904
- filter: { trusted: true },
905
- color: "#10B981",
906
- }
907
- - id: skill-untrusted
908
- kind: widget
909
- widgetType: entity-count
910
- pos: { x: 6, y: 2, w: 3, h: 3 }
911
- config:
912
- {
913
- profileSlug: skill,
914
- label: Untrusted,
915
- icon: AlertTriangle,
916
- filter: { trusted: false },
917
- color: "#EF4444",
918
- }
919
- - id: skill-spotlight
920
- kind: widget
921
- widgetType: entity-spotlight
922
- pos: { x: 0, y: 5, w: 6, h: 4 }
923
- config:
924
- {
925
- profileSlug: skill,
926
- seed: random,
927
- layout: detail,
928
- subtitleField: category,
929
- color: "#8B5CF6",
930
- }
931
- - id: skill-agents-using
932
- kind: widget
933
- widgetType: entity-list
934
- pos: { x: 6, y: 5, w: 6, h: 4 }
935
- config:
936
- {
937
- profileSlug: agent,
938
- title: "Agents Using",
939
- limit: 6,
940
- variant: compact,
941
- }
942
- breakpoints:
943
- lg: { cols: 12, rowHeight: 60, gap: 12 }
944
- md: { cols: 10, rowHeight: 60, gap: 12 }
945
- sm: { cols: 6, rowHeight: 60, gap: 12 }
946
- xs: { cols: 4, rowHeight: 60, gap: 12 }
947
- xxs: { cols: 2, rowHeight: 60, gap: 12 }
948
-
949
- - name: Provider
950
- type: bento
951
- scopeProfileSlug: provider
952
- config:
953
- layout: bento
954
- blocks:
955
- - id: provider-header
956
- kind: widget
957
- widgetType: section-header
958
- pos: { x: 0, y: 0, w: 12, h: 2 }
959
- config:
960
- {
961
- title: Providers,
962
- icon: Database,
963
- color: "#06B6D4",
964
- profileSlug: provider,
965
- }
966
- - id: provider-count
967
- kind: widget
968
- widgetType: stat-card
969
- pos: { x: 0, y: 2, w: 3, h: 3 }
970
- config:
971
- {
972
- label: "Total Providers",
973
- aggregation: count,
974
- profileSlug: provider,
975
- color: "#06B6D4",
976
- }
977
- - id: provider-dash
978
- kind: view
979
- viewName: "Provider Dashboard"
980
- pos: { x: 0, y: 9, w: 12, h: 8 }
981
- - id: provider-keys
982
- kind: view
983
- viewName: "Provider Key Health"
984
- pos: { x: 0, y: 19, w: 12, h: 8 }
985
- - id: provider-healthy
986
- kind: widget
987
- widgetType: entity-count
988
- pos: { x: 3, y: 2, w: 3, h: 3 }
989
- config:
990
- {
991
- profileSlug: provider,
992
- label: Healthy,
993
- icon: CheckCircle,
994
- filter: { status: healthy },
995
- color: "#10B981",
996
- }
997
- - id: provider-degraded
998
- kind: widget
999
- widgetType: entity-count
1000
- pos: { x: 6, y: 2, w: 3, h: 3 }
1001
- config:
1002
- {
1003
- profileSlug: provider,
1004
- label: Degraded,
1005
- icon: AlertTriangle,
1006
- filter: { status: degraded },
1007
- color: "#F59E0B",
1008
- }
1009
- - id: provider-all
1010
- kind: widget
1011
- widgetType: entity-list
1012
- pos: { x: 0, y: 5, w: 12, h: 4 }
1013
- config:
1014
- {
1015
- profileSlug: provider,
1016
- title: "All Providers",
1017
- limit: 8,
1018
- variant: detailed,
1019
- }
1020
- breakpoints:
1021
- lg: { cols: 12, rowHeight: 60, gap: 12 }
1022
- md: { cols: 10, rowHeight: 60, gap: 12 }
1023
- sm: { cols: 6, rowHeight: 60, gap: 12 }
1024
- xs: { cols: 4, rowHeight: 60, gap: 12 }
1025
- xxs: { cols: 2, rowHeight: 60, gap: 12 }
1026
-
1027
- displayTemplates:
1028
- - name: "Agent Card"
1029
- description: ""
1030
- entityType: agent
1031
- targetType: entity
1032
- isDefault: true
1033
- config:
1034
- layout:
1035
- structure:
1036
- header:
1037
- enabled: true
1038
- slots: [agent-status, agent-health, agent-runtime, agent-role]
1039
- layout: horizontal
1040
- sidebar:
1041
- enabled: true
1042
- slots:
1043
- [
1044
- agent-owner,
1045
- agent-provider,
1046
- agent-channel,
1047
- agent-model,
1048
- agent-version,
1049
- agent-last-seen,
1050
- agent-deployment,
1051
- agent-heartbeat,
1052
- ]
1053
- position: right
1054
- width: 260px
1055
- layout: vertical
1056
- content:
1057
- enabled: true
1058
- slots: [agent-workspace, agent-channels, agent-tags]
1059
- layout: vertical
1060
- fieldMapping:
1061
- agent-status:
1062
- { slot: agent-status, renderer: { type: badge }, order: 1 }
1063
- agent-health:
1064
- { slot: agent-health, renderer: { type: badge }, order: 2 }
1065
- agent-runtime:
1066
- { slot: agent-runtime, renderer: { type: badge }, order: 3 }
1067
- agent-role: { slot: agent-role, renderer: { type: badge }, order: 4 }
1068
- agent-owner:
1069
- { slot: agent-owner, renderer: { type: avatar }, order: 5 }
1070
- agent-provider:
1071
- { slot: agent-provider, renderer: { type: link }, order: 6 }
1072
- agent-channel:
1073
- {
1074
- slot: agent-channel,
1075
- renderer: { type: text },
1076
- order: 7,
1077
- label: "Primary Channel",
1078
- showLabel: true,
1079
- }
1080
- agent-model:
1081
- {
1082
- slot: agent-model,
1083
- renderer: { type: text },
1084
- order: 8,
1085
- label: Model,
1086
- showLabel: true,
1087
- }
1088
- agent-version:
1089
- {
1090
- slot: agent-version,
1091
- renderer: { type: text },
1092
- order: 9,
1093
- label: Version,
1094
- showLabel: true,
1095
- }
1096
- agent-last-seen:
1097
- {
1098
- slot: agent-last-seen,
1099
- renderer: { type: date, format: relative },
1100
- order: 10,
1101
- }
1102
- agent-deployment:
1103
- {
1104
- slot: agent-deployment,
1105
- renderer: { type: text },
1106
- order: 11,
1107
- label: Deployment,
1108
- showLabel: true,
1109
- }
1110
- agent-heartbeat:
1111
- {
1112
- slot: agent-heartbeat,
1113
- renderer: { type: text },
1114
- order: 12,
1115
- label: Heartbeat,
1116
- showLabel: true,
1117
- }
1118
- agent-workspace:
1119
- {
1120
- slot: agent-workspace,
1121
- renderer: { type: text },
1122
- order: 13,
1123
- label: "Workspace Path",
1124
- showLabel: true,
1125
- }
1126
- agent-channels:
1127
- {
1128
- slot: agent-channels,
1129
- renderer: { type: badge },
1130
- order: 14,
1131
- label: "All Channels",
1132
- showLabel: true,
1133
- }
1134
- agent-tags: { slot: agent-tags, renderer: { type: badge }, order: 15 }
1135
- colors:
1136
- accent: "#1A3A5C"
1137
-
1138
- - name: "Project Card"
1139
- description: ""
1140
- entityType: project
1141
- targetType: entity
1142
- isDefault: true
1143
- config:
1144
- layout:
1145
- structure:
1146
- header:
1147
- enabled: true
1148
- slots:
1149
- [project-status, project-priority, project-health, project-type]
1150
- layout: horizontal
1151
- sidebar:
1152
- enabled: true
1153
- slots:
1154
- [
1155
- project-assigned-agent,
1156
- project-owner,
1157
- project-deadline,
1158
- project-start,
1159
- ]
1160
- position: right
1161
- width: 260px
1162
- layout: vertical
1163
- content:
1164
- enabled: true
1165
- slots: [project-goal, project-outcome, project-tags]
1166
- layout: vertical
1167
- fieldMapping:
1168
- project-status:
1169
- { slot: project-status, renderer: { type: badge }, order: 1 }
1170
- project-priority:
1171
- { slot: project-priority, renderer: { type: badge }, order: 2 }
1172
- project-health:
1173
- { slot: project-health, renderer: { type: badge }, order: 3 }
1174
- project-type:
1175
- { slot: project-type, renderer: { type: badge }, order: 4 }
1176
- project-assigned-agent:
1177
- { slot: project-assigned-agent, renderer: { type: link }, order: 5 }
1178
- project-owner:
1179
- { slot: project-owner, renderer: { type: avatar }, order: 6 }
1180
- project-deadline:
1181
- {
1182
- slot: project-deadline,
1183
- renderer: { type: date, format: relative },
1184
- order: 7,
1185
- }
1186
- project-start:
1187
- { slot: project-start, renderer: { type: date }, order: 8 }
1188
- project-goal:
1189
- {
1190
- slot: project-goal,
1191
- renderer: { type: text },
1192
- order: 9,
1193
- label: Goal,
1194
- showLabel: true,
1195
- }
1196
- project-outcome:
1197
- {
1198
- slot: project-outcome,
1199
- renderer: { type: text },
1200
- order: 10,
1201
- label: "Expected Outcome",
1202
- showLabel: true,
1203
- }
1204
- project-tags:
1205
- { slot: project-tags, renderer: { type: badge }, order: 11 }
1206
- colors:
1207
- accent: "#2E6DA4"
1208
-
1209
- - name: "Task Card"
1210
- description: ""
1211
- entityType: task
1212
- targetType: entity
1213
- isDefault: true
1214
- config:
1215
- layout:
1216
- structure:
1217
- header:
1218
- enabled: true
1219
- slots: [task-status, task-priority, task-type]
1220
- layout: horizontal
1221
- sidebar:
1222
- enabled: true
1223
- slots:
1224
- [
1225
- task-assigned-agent,
1226
- task-project,
1227
- task-due-date,
1228
- task-token-estimate,
1229
- task-actual-tokens,
1230
- task-effort-hours,
1231
- ]
1232
- position: right
1233
- width: 260px
1234
- layout: vertical
1235
- content:
1236
- enabled: true
1237
- slots: [task-blocked-by, task-session-key, task-tags]
1238
- layout: vertical
1239
- fieldMapping:
1240
- task-status:
1241
- { slot: task-status, renderer: { type: badge }, order: 1 }
1242
- task-priority:
1243
- { slot: task-priority, renderer: { type: badge }, order: 2 }
1244
- task-type: { slot: task-type, renderer: { type: badge }, order: 3 }
1245
- task-assigned-agent:
1246
- { slot: task-assigned-agent, renderer: { type: link }, order: 4 }
1247
- task-project:
1248
- { slot: task-project, renderer: { type: link }, order: 5 }
1249
- task-due-date:
1250
- {
1251
- slot: task-due-date,
1252
- renderer: { type: date, format: relative },
1253
- order: 6,
1254
- }
1255
- task-token-estimate:
1256
- { slot: task-token-estimate, renderer: { type: number }, order: 7 }
1257
- task-actual-tokens:
1258
- { slot: task-actual-tokens, renderer: { type: number }, order: 8 }
1259
- task-effort-hours:
1260
- { slot: task-effort-hours, renderer: { type: number }, order: 9 }
1261
- task-blocked-by:
1262
- {
1263
- slot: task-blocked-by,
1264
- renderer: { type: text },
1265
- order: 10,
1266
- label: "Blocked By",
1267
- showLabel: true,
1268
- }
1269
- task-session-key:
1270
- {
1271
- slot: task-session-key,
1272
- renderer: { type: text },
1273
- order: 11,
1274
- label: "Session Key",
1275
- showLabel: true,
1276
- }
1277
- task-tags: { slot: task-tags, renderer: { type: badge }, order: 12 }
1278
- colors:
1279
- accent: "#1B6E45"
1280
-
1281
- - name: "Skill Card"
1282
- description: ""
1283
- entityType: skill
1284
- targetType: entity
1285
- isDefault: true
1286
- config:
1287
- layout:
1288
- structure:
1289
- header:
1290
- enabled: true
1291
- slots: [skill-trust, skill-virustotal, skill-category]
1292
- layout: horizontal
1293
- sidebar:
1294
- enabled: true
1295
- slots:
1296
- [
1297
- skill-version,
1298
- skill-install-date,
1299
- skill-last-audit,
1300
- skill-maintainer,
1301
- skill-requires-api,
1302
- ]
1303
- position: right
1304
- width: 260px
1305
- layout: vertical
1306
- content:
1307
- enabled: true
1308
- slots: [skill-source-url, skill-notes]
1309
- layout: vertical
1310
- fieldMapping:
1311
- skill-trust:
1312
- { slot: skill-trust, renderer: { type: badge }, order: 1 }
1313
- skill-virustotal:
1314
- { slot: skill-virustotal, renderer: { type: badge }, order: 2 }
1315
- skill-category:
1316
- { slot: skill-category, renderer: { type: badge }, order: 3 }
1317
- skill-version:
1318
- {
1319
- slot: skill-version,
1320
- renderer: { type: text },
1321
- order: 4,
1322
- label: Version,
1323
- showLabel: true,
1324
- }
1325
- skill-install-date:
1326
- { slot: skill-install-date, renderer: { type: date }, order: 5 }
1327
- skill-last-audit:
1328
- {
1329
- slot: skill-last-audit,
1330
- renderer: { type: date, format: relative },
1331
- order: 6,
1332
- label: "Last Audit",
1333
- showLabel: true,
1334
- }
1335
- skill-maintainer:
1336
- {
1337
- slot: skill-maintainer,
1338
- renderer: { type: text },
1339
- order: 7,
1340
- label: Maintainer,
1341
- showLabel: true,
1342
- }
1343
- skill-requires-api:
1344
- {
1345
- slot: skill-requires-api,
1346
- renderer: { type: checkbox },
1347
- order: 8,
1348
- label: "Requires API Key",
1349
- showLabel: true,
1350
- }
1351
- skill-source-url:
1352
- {
1353
- slot: skill-source-url,
1354
- renderer: { type: text },
1355
- order: 9,
1356
- label: Source,
1357
- showLabel: true,
1358
- }
1359
- skill-notes:
1360
- {
1361
- slot: skill-notes,
1362
- renderer: { type: text },
1363
- order: 10,
1364
- label: "Security Notes",
1365
- showLabel: true,
1366
- }
1367
- colors:
1368
- accent: "#7C3AED"
1369
-
1370
- - name: "Provider Card"
1371
- description: ""
1372
- entityType: provider
1373
- targetType: entity
1374
- isDefault: true
1375
- config:
1376
- layout:
1377
- structure:
1378
- header:
1379
- enabled: true
1380
- slots: [provider-key-health, provider-type]
1381
- layout: horizontal
1382
- sidebar:
1383
- enabled: true
1384
- slots:
1385
- [
1386
- provider-model,
1387
- provider-cost-input,
1388
- provider-cost-output,
1389
- provider-budget-day,
1390
- provider-spend-week,
1391
- ]
1392
- position: right
1393
- width: 260px
1394
- layout: vertical
1395
- content:
1396
- enabled: true
1397
- slots: [provider-base-url, provider-notes]
1398
- layout: vertical
1399
- fieldMapping:
1400
- provider-key-health:
1401
- { slot: provider-key-health, renderer: { type: badge }, order: 1 }
1402
- provider-type:
1403
- { slot: provider-type, renderer: { type: badge }, order: 2 }
1404
- provider-model:
1405
- {
1406
- slot: provider-model,
1407
- renderer: { type: text },
1408
- order: 3,
1409
- label: Model,
1410
- showLabel: true,
1411
- }
1412
- provider-cost-input:
1413
- { slot: provider-cost-input, renderer: { type: number }, order: 4 }
1414
- provider-cost-output:
1415
- { slot: provider-cost-output, renderer: { type: number }, order: 5 }
1416
- provider-budget-day:
1417
- { slot: provider-budget-day, renderer: { type: number }, order: 6 }
1418
- provider-spend-week:
1419
- {
1420
- slot: provider-spend-week,
1421
- renderer: { type: progress },
1422
- order: 7,
1423
- label: "Weekly Spend",
1424
- showLabel: true,
1425
- }
1426
- provider-base-url:
1427
- {
1428
- slot: provider-base-url,
1429
- renderer: { type: text },
1430
- order: 8,
1431
- label: Endpoint,
1432
- showLabel: true,
1433
- }
1434
- provider-notes:
1435
- {
1436
- slot: provider-notes,
1437
- renderer: { type: text },
1438
- order: 9,
1439
- label: Notes,
1440
- showLabel: true,
1441
- }
1442
- colors:
1443
- accent: "#B5451B"
1444
-
1445
- bento:
1446
- viewName: "Agent Fleet Home"
1447
- blocks:
1448
- - kind: widget
1449
- widgetType: welcome-header
1450
- pos: { x: 0, y: 0, w: 12, h: 2 }
1451
- config:
1452
- {
1453
- title: "Agent Fleet",
1454
- subtitle: "Your sovereign control plane for the agent fleet.",
1455
- }
1456
- - kind: widget
1457
- widgetType: entity-count
1458
- pos: { x: 0, y: 2, w: 3, h: 2 }
1459
- config: { profileSlug: agent, label: Agents, icon: bot }
1460
- - kind: widget
1461
- widgetType: entity-count
1462
- pos: { x: 3, y: 2, w: 3, h: 2 }
1463
- config: { profileSlug: task, label: Tasks, icon: check-square }
1464
- - kind: widget
1465
- widgetType: entity-count
1466
- pos: { x: 6, y: 2, w: 3, h: 2 }
1467
- config: { profileSlug: skill, label: Skills, icon: zap }
1468
- - kind: widget
1469
- widgetType: entity-count
1470
- pos: { x: 9, y: 2, w: 3, h: 2 }
1471
- config: { profileSlug: provider, label: Providers, icon: database }
1472
- - kind: widget
1473
- widgetType: entity-spotlight
1474
- pos: { x: 0, y: 4, w: 4, h: 4 }
1475
- config:
1476
- {
1477
- profileSlug: agent,
1478
- seed: random,
1479
- layout: detail,
1480
- subtitleField: status,
1481
- color: "#1A3A5C",
1482
- }
1483
- - kind: widget
1484
- widgetType: entity-list
1485
- pos: { x: 4, y: 4, w: 4, h: 4 }
1486
- config:
1487
- { profileSlug: task, title: "Active Tasks", limit: 6, variant: compact }
1488
- - kind: widget
1489
- widgetType: entity-list
1490
- pos: { x: 8, y: 4, w: 4, h: 4 }
1491
- config:
1492
- { profileSlug: skill, title: "Top Skills", limit: 6, variant: compact }
1493
- - kind: view
1494
- viewName: "Agent Fleet"
1495
- pos: { x: 0, y: 8, w: 8, h: 4 }
1496
- - kind: view
1497
- viewName: "Provider Key Health"
1498
- pos: { x: 8, y: 8, w: 4, h: 4 }
1499
- - kind: view
1500
- viewName: "Task Board"
1501
- pos: { x: 0, y: 12, w: 7, h: 4 }
1502
- - kind: view
1503
- viewName: "Untrusted Skills Alert"
1504
- pos: { x: 7, y: 12, w: 5, h: 4 }
1505
-
1506
- profileEntityBentoTemplates:
1507
- agent:
1508
- blocks:
1509
- - id: entity-header
1510
- kind: widget
1511
- widgetType: entity-header
1512
- pos: { x: 0, y: 0, w: 12, h: 2 }
1513
- - id: entity-props
1514
- kind: widget
1515
- widgetType: entity-properties
1516
- pos: { x: 0, y: 2, w: 4, h: 8 }
1517
- - id: entity-content
1518
- kind: widget
1519
- widgetType: entity-content
1520
- pos: { x: 4, y: 2, w: 8, h: 4 }
1521
- - id: entity-rel
1522
- kind: widget
1523
- widgetType: entity-content
1524
- pos: { x: 4, y: 6, w: 8, h: 4 }
1525
- task:
1526
- blocks:
1527
- - id: entity-header
1528
- kind: widget
1529
- widgetType: entity-header
1530
- pos: { x: 0, y: 0, w: 12, h: 2 }
1531
- - id: entity-props
1532
- kind: widget
1533
- widgetType: entity-properties
1534
- pos: { x: 0, y: 2, w: 4, h: 8 }
1535
- - id: entity-content
1536
- kind: widget
1537
- widgetType: entity-content
1538
- pos: { x: 4, y: 2, w: 8, h: 4 }
1539
- - id: entity-rel
1540
- kind: widget
1541
- widgetType: entity-content
1542
- pos: { x: 4, y: 6, w: 8, h: 4 }
1543
-
1544
- layout:
1545
- pinnedApps: [chat, dashboard, data]
1546
- defaultView: agent-fleet
1547
- defaultApp: null
1548
- sidebarItems:
1549
- - kind: profile
1550
- profileSlug: agent
1551
- label: "Agent Fleet"
1552
- icon: bot
1553
- - kind: profile
1554
- profileSlug: task
1555
- label: Tasks
1556
- icon: check-square
1557
- - kind: profile
1558
- profileSlug: skill
1559
- label: Skills
1560
- icon: zap
1561
- - kind: profile
1562
- profileSlug: project
1563
- label: Projects
1564
- icon: folder
1565
- - kind: profile
1566
- profileSlug: provider
1567
- label: Providers
1568
- icon: database
1569
- - kind: app
1570
- appId: chat
1571
- label: Intelligence
1572
-
1573
- # App reference — Agent Fleet has no dedicated browser app; it lands on entity detail / views.
1574
- app:
1575
- kind: stored
1576
- cellKey: entity-detail
1577
-
1578
- integrations:
1579
- - templateKey: agency-skills
1580
-
1581
- playbooks:
1582
- - name: "Agent Health Check"
1583
- goalTemplate: "Check the health of all agents in the fleet, review recently failed tasks, and verify all provider keys are valid."
1584
- - name: "Security Audit"
1585
- goalTemplate: "Review the skill registry for any Untrusted or Review status skills. Check VirusTotal results and rotation dates of all provider keys."
1586
-
1587
- onboarding:
1588
- goal: "Capture the agent fleet the user runs — the agents themselves, the model providers behind them, the skills they carry, and the projects they work — so the workspace reflects their real AI operation."
1589
- framing: "Act as a pragmatic AI ops lead. Tease out which agents are live, what models and providers power them, what each agent can do, and what work they're pointed at. Translate that into agents, providers, skills, and projects."
1590
- expertise:
1591
- starters:
1592
- - >
1593
- For every live agent, pin down the trio that actually matters: model, provider, and daily
1594
- budget ceiling. "I have an agent" is not an entity — "a Coder agent on Claude via OpenRouter,
1595
- capped at $5/day" is. Lead by capturing that trio for the one agent running most, then fan
1596
- out. An agent with no budget number is an uncapped spend waiting to happen.
1597
- - >
1598
- Capture each provider as its own entity with cost-per-token AND key health, not just a name.
1599
- Propose logging the provider behind your busiest agent first, with its input/output token
1600
- cost and when the key expires — because the two ways a fleet dies are a blown budget and an
1601
- expired key, and both live on the provider, not the agent.
1602
- - >
1603
- Scope each agent to ONE role and catalogue the specific skills it carries, with a trust
1604
- level on each. Lead with "what is this agent FOR, and what exactly can it do?" A named,
1605
- scoped agent with three trusted skills beats one vague "assistant" agent that can supposedly
1606
- do everything.
1607
- blindSpots:
1608
- - >
1609
- Untracked spend is the fleet-killer. Agents burn tokens silently — a runaway loop, a retry
1610
- storm, a context window nobody trimmed — and the first signal is the invoice. Surface daily
1611
- budget ceilings and weekly actual spend per provider proactively; the CFO view (which work
1612
- is burning budget) is the one nobody builds until it's too late.
1613
- - >
1614
- The "one agent for everything" anti-pattern feels efficient and is the opposite. A single
1615
- generalist agent with every skill and every key is un-auditable, un-scopeable, and a fat
1616
- blast radius when a skill goes rogue. Push toward scoped agents — Coder, Researcher, Ops —
1617
- each with only the skills and provider budget its job needs.
1618
- - >
1619
- Single-provider risk hides until the provider has an outage or rate-limits you mid-run.
1620
- Teams wire every agent to one provider and have no fallback, so one 429 halts the whole
1621
- fleet. Capture provider fallback intent (primary + backup) so a single vendor's bad day
1622
- isn't your whole operation's bad day.
1623
- bar: >
1624
- A great result is a fleet you can run like an operation, not a pile of daemons: every live
1625
- agent has a model, a provider, a budget, and a scoped set of trusted skills; every provider
1626
- shows its cost, key health, and spend-against-budget; and you can answer "which agent is
1627
- burning the most, on whose key, and what happens if that provider goes down?" in one glance.
1628
- collect:
1629
- - profileSlug: agent
1630
- what: "The agents they run and what powers each"
1631
- cardinality: several
1632
- keyFields: [title, agent-model, agent-provider, agent-status]
1633
- - profileSlug: provider
1634
- what: "The model providers behind those agents and their budgets"
1635
- cardinality: few
1636
- keyFields: [title, provider-type, provider-model, provider-budget-day]
1637
- - profileSlug: skill
1638
- what: "The skills/capabilities each agent carries and how trusted they are"
1639
- cardinality: several
1640
- keyFields: [title, skill-category, skill-trust, skill-source-url]
1641
- openingQuestions:
1642
- - "Which agents are you running right now, and what's each one for?"
1643
- - "What models and providers power them, and are there budget limits?"
1644
- - "What skills do your agents carry, and which projects are they pointed at?"
1645
- doneWhen: "The live agents exist with their model/provider, the providers are captured with budgets, key skills are catalogued, and agents are linked to active projects."