@synap-core/workspace-templates 0.2.1
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.
- package/dist/define.d.ts +97 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +91 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/templates.d.ts +7 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +23354 -0
- package/dist/types.d.ts +328 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/package.json +37 -0
- package/src/agent-fleet.yaml +1434 -0
- package/src/brand-library.yaml +627 -0
- package/src/builder.yaml +1355 -0
- package/src/content-os.yaml +1424 -0
- package/src/content-studio.yaml +312 -0
- package/src/crm.yaml +2606 -0
- package/src/define.ts +184 -0
- package/src/dev-dashboard.yaml +1309 -0
- package/src/foundation.yaml +343 -0
- package/src/index.ts +62 -0
- package/src/life-os.yaml +1443 -0
- package/src/marketing.yaml +244 -0
- package/src/personal.yaml +114 -0
- package/src/project-management.yaml +1119 -0
- package/src/radar.yaml +274 -0
- package/src/templates.ts +23363 -0
- package/src/types.ts +426 -0
|
@@ -0,0 +1,1309 @@
|
|
|
1
|
+
# Dev Dashboard workspace template — Infrastructure Command Center
|
|
2
|
+
# Internal DevOps inventory product. Union of:
|
|
3
|
+
# synap-backend/templates/packages/dev-dashboard.package.json (primary)
|
|
4
|
+
# synap-control-plane-api/templates/Synap Dev Dashboard.json (cross-check, richer seed data)
|
|
5
|
+
# Validated against types.ts at build time.
|
|
6
|
+
# NOTE: distinct from builder.yaml (the DevPlane + agent layer). Both are kept.
|
|
7
|
+
|
|
8
|
+
meta:
|
|
9
|
+
slug: dev-dashboard
|
|
10
|
+
name: "Synap Dev — Infrastructure Command Center"
|
|
11
|
+
description: "Internal DevOps dashboard for monitoring Synap infrastructure. Tracks services, vendors, and environments with health status, architecture flow map, and quick access to admin panels."
|
|
12
|
+
icon: server
|
|
13
|
+
color: "#3B82F6"
|
|
14
|
+
tags: [devops, infrastructure, monitoring, services, vendors, credentials]
|
|
15
|
+
isPublic: false
|
|
16
|
+
|
|
17
|
+
workspace:
|
|
18
|
+
name: "Synap Dev — Infrastructure Command Center"
|
|
19
|
+
description: "Internal DevOps dashboard for monitoring Synap infrastructure. Tracks services, vendors, and environments with health status, architecture flow map, and quick access to admin panels."
|
|
20
|
+
proposalId: dev-dashboard-v1
|
|
21
|
+
subtype: infrastructure
|
|
22
|
+
workspaceType: operational
|
|
23
|
+
|
|
24
|
+
profiles:
|
|
25
|
+
- slug: service
|
|
26
|
+
displayName: Service
|
|
27
|
+
icon: server
|
|
28
|
+
color: "#3B82F6"
|
|
29
|
+
description: "A Synap infrastructure service or application with monitoring, deployment, and connection details."
|
|
30
|
+
scope: WORKSPACE
|
|
31
|
+
properties:
|
|
32
|
+
- slug: service-type
|
|
33
|
+
label: Service Type
|
|
34
|
+
valueType: string
|
|
35
|
+
inputType: select
|
|
36
|
+
enumValues: [Frontend, Backend API, Worker, Bridge, Landing Page]
|
|
37
|
+
- slug: service-url
|
|
38
|
+
label: Service URL
|
|
39
|
+
valueType: string
|
|
40
|
+
placeholder: "https://..."
|
|
41
|
+
constraints:
|
|
42
|
+
format: url
|
|
43
|
+
- slug: github-url
|
|
44
|
+
label: GitHub URL
|
|
45
|
+
valueType: string
|
|
46
|
+
placeholder: "https://github.com/..."
|
|
47
|
+
constraints:
|
|
48
|
+
format: url
|
|
49
|
+
- slug: health-endpoint
|
|
50
|
+
label: Health Check URL
|
|
51
|
+
valueType: string
|
|
52
|
+
placeholder: "https://.../health"
|
|
53
|
+
constraints:
|
|
54
|
+
format: url
|
|
55
|
+
- slug: deploy-url
|
|
56
|
+
label: Deploy Dashboard URL
|
|
57
|
+
valueType: string
|
|
58
|
+
placeholder: "https://..."
|
|
59
|
+
constraints:
|
|
60
|
+
format: url
|
|
61
|
+
- slug: server-host
|
|
62
|
+
label: Server Host (SSH)
|
|
63
|
+
valueType: string
|
|
64
|
+
placeholder: "user@host"
|
|
65
|
+
- slug: admin-panel-url
|
|
66
|
+
label: Admin Panel URL
|
|
67
|
+
valueType: string
|
|
68
|
+
placeholder: "https://..."
|
|
69
|
+
constraints:
|
|
70
|
+
format: url
|
|
71
|
+
- slug: monitoring-url
|
|
72
|
+
label: Monitoring URL
|
|
73
|
+
valueType: string
|
|
74
|
+
placeholder: "https://..."
|
|
75
|
+
constraints:
|
|
76
|
+
format: url
|
|
77
|
+
- slug: docs-url
|
|
78
|
+
label: Documentation URL
|
|
79
|
+
valueType: string
|
|
80
|
+
placeholder: "https://..."
|
|
81
|
+
constraints:
|
|
82
|
+
format: url
|
|
83
|
+
- slug: health-status
|
|
84
|
+
label: Health Status
|
|
85
|
+
valueType: string
|
|
86
|
+
inputType: select
|
|
87
|
+
enumValues: [Healthy, Degraded, Down, Unknown]
|
|
88
|
+
- slug: tech-stack
|
|
89
|
+
label: Tech Stack
|
|
90
|
+
valueType: array
|
|
91
|
+
- slug: port
|
|
92
|
+
label: Port
|
|
93
|
+
valueType: number
|
|
94
|
+
placeholder: "3000"
|
|
95
|
+
- slug: environment
|
|
96
|
+
label: Environment
|
|
97
|
+
valueType: string
|
|
98
|
+
inputType: select
|
|
99
|
+
enumValues: [Production, Staging, Development]
|
|
100
|
+
- slug: deployment-branch
|
|
101
|
+
label: Deployment Branch
|
|
102
|
+
valueType: string
|
|
103
|
+
placeholder: "main"
|
|
104
|
+
- slug: last-deploy
|
|
105
|
+
label: Last Deploy
|
|
106
|
+
valueType: date
|
|
107
|
+
- slug: service-notes
|
|
108
|
+
label: Notes
|
|
109
|
+
valueType: string
|
|
110
|
+
inputType: textarea
|
|
111
|
+
|
|
112
|
+
- slug: vendor
|
|
113
|
+
displayName: Vendor
|
|
114
|
+
icon: package
|
|
115
|
+
color: "#8B5CF6"
|
|
116
|
+
description: "External services, tools, and providers used by the Synap platform."
|
|
117
|
+
scope: WORKSPACE
|
|
118
|
+
properties:
|
|
119
|
+
- slug: vendor-type
|
|
120
|
+
label: Vendor Type
|
|
121
|
+
valueType: string
|
|
122
|
+
inputType: select
|
|
123
|
+
enumValues: [Hosting, AI, Auth, Database, Monitoring, CI/CD, DNS, Email, Other]
|
|
124
|
+
- slug: vendor-url
|
|
125
|
+
label: Vendor URL
|
|
126
|
+
valueType: string
|
|
127
|
+
placeholder: "https://..."
|
|
128
|
+
constraints:
|
|
129
|
+
format: url
|
|
130
|
+
- slug: admin-url
|
|
131
|
+
label: Admin Console URL
|
|
132
|
+
valueType: string
|
|
133
|
+
placeholder: "https://..."
|
|
134
|
+
constraints:
|
|
135
|
+
format: url
|
|
136
|
+
- slug: docs-url
|
|
137
|
+
label: Documentation URL
|
|
138
|
+
valueType: string
|
|
139
|
+
placeholder: "https://..."
|
|
140
|
+
constraints:
|
|
141
|
+
format: url
|
|
142
|
+
- slug: status-page-url
|
|
143
|
+
label: Status Page URL
|
|
144
|
+
valueType: string
|
|
145
|
+
placeholder: "https://status.example.com"
|
|
146
|
+
constraints:
|
|
147
|
+
format: url
|
|
148
|
+
- slug: api-key-ref
|
|
149
|
+
label: API Key
|
|
150
|
+
valueType: string
|
|
151
|
+
- slug: pricing-model
|
|
152
|
+
label: Pricing Model
|
|
153
|
+
valueType: string
|
|
154
|
+
inputType: select
|
|
155
|
+
enumValues: [Free, Pay-as-you-go, Monthly, Annual]
|
|
156
|
+
- slug: monthly-cost
|
|
157
|
+
label: "Monthly Cost (€)"
|
|
158
|
+
valueType: number
|
|
159
|
+
placeholder: "0"
|
|
160
|
+
- slug: vendor-status
|
|
161
|
+
label: Status
|
|
162
|
+
valueType: string
|
|
163
|
+
inputType: select
|
|
164
|
+
enumValues: [Active, Trial, Deprecated]
|
|
165
|
+
- slug: vendor-notes
|
|
166
|
+
label: Notes
|
|
167
|
+
valueType: string
|
|
168
|
+
inputType: textarea
|
|
169
|
+
|
|
170
|
+
- slug: environment
|
|
171
|
+
displayName: Environment
|
|
172
|
+
icon: cloud
|
|
173
|
+
color: "#10B981"
|
|
174
|
+
description: "Deployment environments for Synap services (production, staging, dev)."
|
|
175
|
+
scope: WORKSPACE
|
|
176
|
+
properties:
|
|
177
|
+
- slug: env-type
|
|
178
|
+
label: Environment Type
|
|
179
|
+
valueType: string
|
|
180
|
+
inputType: select
|
|
181
|
+
enumValues: [Production, Staging, Development, Preview]
|
|
182
|
+
- slug: env-url
|
|
183
|
+
label: Base URL
|
|
184
|
+
valueType: string
|
|
185
|
+
placeholder: "https://..."
|
|
186
|
+
constraints:
|
|
187
|
+
format: url
|
|
188
|
+
- slug: branch
|
|
189
|
+
label: Deployed Branch
|
|
190
|
+
valueType: string
|
|
191
|
+
placeholder: "main"
|
|
192
|
+
- slug: last-deploy
|
|
193
|
+
label: Last Deploy
|
|
194
|
+
valueType: date
|
|
195
|
+
- slug: env-status
|
|
196
|
+
label: Status
|
|
197
|
+
valueType: string
|
|
198
|
+
inputType: select
|
|
199
|
+
enumValues: [Active, Maintenance, Down]
|
|
200
|
+
- slug: env-notes
|
|
201
|
+
label: Notes
|
|
202
|
+
valueType: string
|
|
203
|
+
inputType: textarea
|
|
204
|
+
|
|
205
|
+
- slug: repository
|
|
206
|
+
displayName: Repository
|
|
207
|
+
icon: git-branch
|
|
208
|
+
color: "#F97316"
|
|
209
|
+
description: "A Git repository with branch info, CI status, and contributor activity."
|
|
210
|
+
scope: WORKSPACE
|
|
211
|
+
properties:
|
|
212
|
+
- slug: repo-url
|
|
213
|
+
label: Repository URL
|
|
214
|
+
valueType: string
|
|
215
|
+
placeholder: "https://github.com/..."
|
|
216
|
+
constraints:
|
|
217
|
+
format: url
|
|
218
|
+
- slug: main-branch
|
|
219
|
+
label: Main Branch
|
|
220
|
+
valueType: string
|
|
221
|
+
placeholder: "main"
|
|
222
|
+
- slug: active-branches
|
|
223
|
+
label: Active Branches
|
|
224
|
+
valueType: array
|
|
225
|
+
- slug: ci-status
|
|
226
|
+
label: CI Status
|
|
227
|
+
valueType: string
|
|
228
|
+
inputType: select
|
|
229
|
+
enumValues: [Passing, Failing, Pending, Unknown]
|
|
230
|
+
- slug: ci-url
|
|
231
|
+
label: CI Dashboard URL
|
|
232
|
+
valueType: string
|
|
233
|
+
placeholder: "https://github.com/.../actions"
|
|
234
|
+
constraints:
|
|
235
|
+
format: url
|
|
236
|
+
- slug: last-commit
|
|
237
|
+
label: Last Commit
|
|
238
|
+
valueType: string
|
|
239
|
+
- slug: last-commit-date
|
|
240
|
+
label: Last Commit Date
|
|
241
|
+
valueType: date
|
|
242
|
+
- slug: language
|
|
243
|
+
label: Primary Language
|
|
244
|
+
valueType: string
|
|
245
|
+
inputType: select
|
|
246
|
+
enumValues: [TypeScript, JavaScript, Python, Rust, Go, Other]
|
|
247
|
+
- slug: package-manager
|
|
248
|
+
label: Package Manager
|
|
249
|
+
valueType: string
|
|
250
|
+
inputType: select
|
|
251
|
+
enumValues: [pnpm, npm, yarn, bun, cargo, pip]
|
|
252
|
+
- slug: monorepo
|
|
253
|
+
label: Monorepo
|
|
254
|
+
valueType: boolean
|
|
255
|
+
- slug: repo-notes
|
|
256
|
+
label: Notes
|
|
257
|
+
valueType: string
|
|
258
|
+
inputType: textarea
|
|
259
|
+
|
|
260
|
+
- slug: credential
|
|
261
|
+
displayName: Credential
|
|
262
|
+
icon: key
|
|
263
|
+
color: "#F59E0B"
|
|
264
|
+
description: "API keys, SSH keys, and secrets linked to vault items"
|
|
265
|
+
scope: WORKSPACE
|
|
266
|
+
properties:
|
|
267
|
+
- slug: credential-type
|
|
268
|
+
label: Type
|
|
269
|
+
valueType: string
|
|
270
|
+
inputType: select
|
|
271
|
+
enumValues: [api_key, ssh_key, password, token, certificate, env_variable, other]
|
|
272
|
+
placeholder: "Select credential type"
|
|
273
|
+
- slug: service-name
|
|
274
|
+
label: Service
|
|
275
|
+
valueType: string
|
|
276
|
+
inputType: text
|
|
277
|
+
placeholder: "e.g. Hetzner, Stripe, GitHub"
|
|
278
|
+
- slug: vault-ref
|
|
279
|
+
label: Vault Item Name
|
|
280
|
+
valueType: string
|
|
281
|
+
inputType: text
|
|
282
|
+
placeholder: "Name of the vault item storing this secret"
|
|
283
|
+
- slug: last-rotated
|
|
284
|
+
label: Last Rotated
|
|
285
|
+
valueType: date
|
|
286
|
+
inputType: date
|
|
287
|
+
- slug: expires-at
|
|
288
|
+
label: Expires At
|
|
289
|
+
valueType: date
|
|
290
|
+
inputType: date
|
|
291
|
+
- slug: environment
|
|
292
|
+
label: Environment
|
|
293
|
+
valueType: string
|
|
294
|
+
inputType: select
|
|
295
|
+
enumValues: [production, staging, development, all]
|
|
296
|
+
placeholder: "Environment"
|
|
297
|
+
- slug: notes
|
|
298
|
+
label: Notes
|
|
299
|
+
valueType: string
|
|
300
|
+
inputType: textarea
|
|
301
|
+
placeholder: "Permissions, rotation policy, who has access..."
|
|
302
|
+
|
|
303
|
+
views:
|
|
304
|
+
- name: Infrastructure Map
|
|
305
|
+
type: flow
|
|
306
|
+
scopeProfileSlug: service
|
|
307
|
+
config:
|
|
308
|
+
nodes:
|
|
309
|
+
- id: browser
|
|
310
|
+
type: entity
|
|
311
|
+
position: { x: 0, y: 0 }
|
|
312
|
+
label: Browser
|
|
313
|
+
data: { entityIndex: 8 }
|
|
314
|
+
- id: control-plane
|
|
315
|
+
type: entity
|
|
316
|
+
position: { x: 0, y: 250 }
|
|
317
|
+
label: Control Plane
|
|
318
|
+
data: { entityIndex: 3 }
|
|
319
|
+
- id: synap-app
|
|
320
|
+
type: entity
|
|
321
|
+
position: { x: 400, y: 0 }
|
|
322
|
+
label: Synap App
|
|
323
|
+
data: { entityIndex: 0 }
|
|
324
|
+
- id: control-plane-api
|
|
325
|
+
type: entity
|
|
326
|
+
position: { x: 400, y: 250 }
|
|
327
|
+
label: Control Plane API
|
|
328
|
+
data: { entityIndex: 2 }
|
|
329
|
+
- id: synap-backend
|
|
330
|
+
type: entity
|
|
331
|
+
position: { x: 400, y: 500 }
|
|
332
|
+
label: Synap Backend
|
|
333
|
+
data: { entityIndex: 1 }
|
|
334
|
+
- id: intelligence-service
|
|
335
|
+
type: entity
|
|
336
|
+
position: { x: 800, y: 0 }
|
|
337
|
+
label: Intelligence Service
|
|
338
|
+
data: { entityIndex: 4 }
|
|
339
|
+
- id: zeroclaw-bridge
|
|
340
|
+
type: entity
|
|
341
|
+
position: { x: 800, y: 250 }
|
|
342
|
+
label: ZeroClaw Bridge
|
|
343
|
+
data: { entityIndex: 7 }
|
|
344
|
+
- id: life-feed
|
|
345
|
+
type: entity
|
|
346
|
+
position: { x: 800, y: 500 }
|
|
347
|
+
label: Life Feed
|
|
348
|
+
data: { entityIndex: 6 }
|
|
349
|
+
- id: landing-page
|
|
350
|
+
type: entity
|
|
351
|
+
position: { x: 400, y: 750 }
|
|
352
|
+
label: Landing Page
|
|
353
|
+
data: { entityIndex: 5 }
|
|
354
|
+
edges:
|
|
355
|
+
- id: e-browser-app
|
|
356
|
+
source: browser
|
|
357
|
+
target: synap-app
|
|
358
|
+
label: "embeds workspace"
|
|
359
|
+
animated: false
|
|
360
|
+
- id: e-cp-cpapi
|
|
361
|
+
source: control-plane
|
|
362
|
+
target: control-plane-api
|
|
363
|
+
label: "frontend → API"
|
|
364
|
+
animated: false
|
|
365
|
+
- id: e-app-backend
|
|
366
|
+
source: synap-app
|
|
367
|
+
target: synap-backend
|
|
368
|
+
label: "API calls"
|
|
369
|
+
animated: true
|
|
370
|
+
- id: e-app-intel
|
|
371
|
+
source: synap-app
|
|
372
|
+
target: intelligence-service
|
|
373
|
+
label: "AI features"
|
|
374
|
+
animated: true
|
|
375
|
+
- id: e-cpapi-backend
|
|
376
|
+
source: control-plane-api
|
|
377
|
+
target: synap-backend
|
|
378
|
+
label: "pod management"
|
|
379
|
+
animated: false
|
|
380
|
+
- id: e-backend-intel
|
|
381
|
+
source: synap-backend
|
|
382
|
+
target: intelligence-service
|
|
383
|
+
label: "agent orchestration"
|
|
384
|
+
animated: true
|
|
385
|
+
- id: e-backend-zeroclaw
|
|
386
|
+
source: synap-backend
|
|
387
|
+
target: zeroclaw-bridge
|
|
388
|
+
label: "security scanning"
|
|
389
|
+
animated: false
|
|
390
|
+
- id: e-zeroclaw-intel
|
|
391
|
+
source: zeroclaw-bridge
|
|
392
|
+
target: intelligence-service
|
|
393
|
+
label: "AI analysis"
|
|
394
|
+
animated: false
|
|
395
|
+
- id: e-app-lifefeed
|
|
396
|
+
source: synap-app
|
|
397
|
+
target: life-feed
|
|
398
|
+
label: "real-time events"
|
|
399
|
+
animated: false
|
|
400
|
+
|
|
401
|
+
- name: Service Health
|
|
402
|
+
type: kanban
|
|
403
|
+
scopeProfileSlug: service
|
|
404
|
+
config:
|
|
405
|
+
groupByField: health-status
|
|
406
|
+
|
|
407
|
+
- name: Architecture Graph
|
|
408
|
+
type: graph
|
|
409
|
+
scopeProfileSlugs: [service, vendor, repository]
|
|
410
|
+
config:
|
|
411
|
+
layout: force
|
|
412
|
+
showRelations: true
|
|
413
|
+
|
|
414
|
+
- name: Deploy Timeline
|
|
415
|
+
type: table
|
|
416
|
+
scopeProfileSlug: service
|
|
417
|
+
config:
|
|
418
|
+
visibleColumns: [service-type, environment, deployment-branch, last-deploy, health-status]
|
|
419
|
+
sortBy: last-deploy
|
|
420
|
+
sortDirection: desc
|
|
421
|
+
|
|
422
|
+
- name: Vendor Costs
|
|
423
|
+
type: table
|
|
424
|
+
scopeProfileSlug: vendor
|
|
425
|
+
config:
|
|
426
|
+
visibleColumns: [vendor-type, pricing-model, monthly-cost, vendor-status]
|
|
427
|
+
sortBy: monthly-cost
|
|
428
|
+
sortDirection: desc
|
|
429
|
+
|
|
430
|
+
- name: Services by Type
|
|
431
|
+
type: kanban
|
|
432
|
+
scopeProfileSlug: service
|
|
433
|
+
config:
|
|
434
|
+
groupByField: service-type
|
|
435
|
+
|
|
436
|
+
- name: All Services
|
|
437
|
+
type: table
|
|
438
|
+
scopeProfileSlug: service
|
|
439
|
+
config:
|
|
440
|
+
columns:
|
|
441
|
+
- { key: service-type }
|
|
442
|
+
- { key: environment }
|
|
443
|
+
- { key: health-status }
|
|
444
|
+
- { key: tech-stack }
|
|
445
|
+
- { key: service-url }
|
|
446
|
+
sort:
|
|
447
|
+
field: service-type
|
|
448
|
+
direction: asc
|
|
449
|
+
|
|
450
|
+
- name: Vendors
|
|
451
|
+
type: table
|
|
452
|
+
scopeProfileSlug: vendor
|
|
453
|
+
config:
|
|
454
|
+
columns:
|
|
455
|
+
- { key: vendor-type }
|
|
456
|
+
- { key: pricing-model }
|
|
457
|
+
- { key: monthly-cost }
|
|
458
|
+
- { key: vendor-status }
|
|
459
|
+
- { key: vendor-url }
|
|
460
|
+
sort:
|
|
461
|
+
field: monthly-cost
|
|
462
|
+
direction: desc
|
|
463
|
+
|
|
464
|
+
- name: Repositories
|
|
465
|
+
type: table
|
|
466
|
+
scopeProfileSlug: repository
|
|
467
|
+
config:
|
|
468
|
+
columns:
|
|
469
|
+
- { key: language }
|
|
470
|
+
- { key: package-manager }
|
|
471
|
+
- { key: monorepo }
|
|
472
|
+
- { key: ci-status }
|
|
473
|
+
- { key: main-branch }
|
|
474
|
+
sort:
|
|
475
|
+
field: language
|
|
476
|
+
direction: asc
|
|
477
|
+
|
|
478
|
+
- name: Services Dashboard
|
|
479
|
+
type: bento
|
|
480
|
+
config:
|
|
481
|
+
layout: fixed
|
|
482
|
+
blocks:
|
|
483
|
+
- id: platform-metrics
|
|
484
|
+
kind: widget
|
|
485
|
+
widgetType: dev-platform-metrics
|
|
486
|
+
pos: { x: 0, y: 0, w: 12, h: 3 }
|
|
487
|
+
config: {}
|
|
488
|
+
- id: intelligence-usage
|
|
489
|
+
kind: widget
|
|
490
|
+
widgetType: dev-intelligence-usage
|
|
491
|
+
pos: { x: 0, y: 3, w: 6, h: 4 }
|
|
492
|
+
config: {}
|
|
493
|
+
- id: service-health
|
|
494
|
+
kind: widget
|
|
495
|
+
widgetType: dev-service-health
|
|
496
|
+
pos: { x: 6, y: 3, w: 6, h: 4 }
|
|
497
|
+
config: {}
|
|
498
|
+
- id: agent-activity
|
|
499
|
+
kind: widget
|
|
500
|
+
widgetType: dev-agent-activity
|
|
501
|
+
pos: { x: 0, y: 7, w: 4, h: 5 }
|
|
502
|
+
config: {}
|
|
503
|
+
- id: pod-status
|
|
504
|
+
kind: widget
|
|
505
|
+
widgetType: dev-pod-status
|
|
506
|
+
pos: { x: 4, y: 7, w: 4, h: 5 }
|
|
507
|
+
config: {}
|
|
508
|
+
- id: quick-links
|
|
509
|
+
kind: widget
|
|
510
|
+
widgetType: dev-quick-links
|
|
511
|
+
pos: { x: 8, y: 7, w: 4, h: 5 }
|
|
512
|
+
config: {}
|
|
513
|
+
- id: cost-summary
|
|
514
|
+
kind: widget
|
|
515
|
+
widgetType: dev-cost-summary
|
|
516
|
+
pos: { x: 0, y: 12, w: 12, h: 3 }
|
|
517
|
+
config: {}
|
|
518
|
+
|
|
519
|
+
- name: Credentials
|
|
520
|
+
type: table
|
|
521
|
+
scopeProfileSlug: credential
|
|
522
|
+
config: {}
|
|
523
|
+
|
|
524
|
+
entityLinks:
|
|
525
|
+
- sourceProfileSlug: service
|
|
526
|
+
targetProfileSlug: vendor
|
|
527
|
+
type: uses
|
|
528
|
+
- sourceProfileSlug: service
|
|
529
|
+
targetProfileSlug: environment
|
|
530
|
+
type: deployed_on
|
|
531
|
+
- sourceProfileSlug: service
|
|
532
|
+
targetProfileSlug: service
|
|
533
|
+
type: depends_on
|
|
534
|
+
- sourceProfileSlug: environment
|
|
535
|
+
targetProfileSlug: vendor
|
|
536
|
+
type: hosted_on
|
|
537
|
+
- sourceProfileSlug: repository
|
|
538
|
+
targetProfileSlug: service
|
|
539
|
+
type: powers
|
|
540
|
+
- sourceProfileSlug: repository
|
|
541
|
+
targetProfileSlug: repository
|
|
542
|
+
type: depends_on
|
|
543
|
+
|
|
544
|
+
seedEntities:
|
|
545
|
+
- profileSlug: service
|
|
546
|
+
title: Synap App
|
|
547
|
+
properties:
|
|
548
|
+
service-type: Frontend
|
|
549
|
+
service-url: "https://app.synap.live"
|
|
550
|
+
github-url: "https://github.com/synapsh/synap-app"
|
|
551
|
+
health-status: Unknown
|
|
552
|
+
tech-stack: [Next.js, React, tRPC, Zustand, Ink]
|
|
553
|
+
port: 3000
|
|
554
|
+
environment: Production
|
|
555
|
+
service-notes: "Main workspace application. pnpm monorepo: core, features, views, apps. @synap/capabilities = single source of truth for widget/view types. Bento system via @synap/cell-runtime + @synap/cells."
|
|
556
|
+
- profileSlug: service
|
|
557
|
+
title: Synap Backend
|
|
558
|
+
properties:
|
|
559
|
+
service-type: Backend API
|
|
560
|
+
github-url: "https://github.com/synapsh/synap-backend"
|
|
561
|
+
health-status: Unknown
|
|
562
|
+
tech-stack: [Node.js, Hono, tRPC, Drizzle, PostgreSQL, Better Auth]
|
|
563
|
+
port: 4000
|
|
564
|
+
environment: Production
|
|
565
|
+
service-notes: "Data Pod backend — deployed per user pod at {name}.synap.live. Hono HTTP + tRPC + Better Auth. Hub Protocol (16 sub-routers)."
|
|
566
|
+
- profileSlug: service
|
|
567
|
+
title: Control Plane API
|
|
568
|
+
properties:
|
|
569
|
+
service-type: Backend API
|
|
570
|
+
service-url: "https://api.synap.live"
|
|
571
|
+
github-url: "https://github.com/synapsh/synap-control-plane-api"
|
|
572
|
+
health-endpoint: "https://api.synap.live/health"
|
|
573
|
+
health-status: Unknown
|
|
574
|
+
tech-stack: [Node.js, Hono, Better Auth, Drizzle, PostgreSQL, Stripe]
|
|
575
|
+
port: 4100
|
|
576
|
+
environment: Production
|
|
577
|
+
service-notes: "SaaS Control Plane. REST-only (Hono). Pod provisioning, Stripe subscriptions, Better Auth. CP↔Pod JWT handshake via ES256. Provision JWT carries tier + Resend config to pods."
|
|
578
|
+
- profileSlug: service
|
|
579
|
+
title: Control Plane
|
|
580
|
+
properties:
|
|
581
|
+
service-type: Frontend
|
|
582
|
+
service-url: "https://control.synap.live"
|
|
583
|
+
github-url: "https://github.com/synapsh/synap-control-plane"
|
|
584
|
+
health-status: Unknown
|
|
585
|
+
tech-stack: [Next.js, React]
|
|
586
|
+
port: 3100
|
|
587
|
+
environment: Production
|
|
588
|
+
service-notes: "Platform marketing + dashboard. Sign-up, pod management, billing (Stripe), add-on marketplace."
|
|
589
|
+
- profileSlug: service
|
|
590
|
+
title: Agent Hub
|
|
591
|
+
properties:
|
|
592
|
+
service-type: Backend API
|
|
593
|
+
service-url: "https://intelligence.synap.live"
|
|
594
|
+
github-url: "https://github.com/synapsh/synap-intelligence-service"
|
|
595
|
+
health-endpoint: "https://intelligence.synap.live/health"
|
|
596
|
+
health-status: Unknown
|
|
597
|
+
tech-stack: [Node.js, Hono, Mem0, OpenRouter, MCP]
|
|
598
|
+
port: 4200
|
|
599
|
+
environment: Production
|
|
600
|
+
service-notes: "AI/Agent Hub (synap-agent-hub). OrchestratorAgent (co-founder AI, 15 tools) + PersonaAgent (CTO/Marketing/Sales/PM). Session-scoped memory via compaction engine. MCP client — OpenClaw (browsing) + Firecrawl (scraping) via Docker. Hub Protocol client for all IS→backend operations."
|
|
601
|
+
- profileSlug: service
|
|
602
|
+
title: OpenClaw
|
|
603
|
+
properties:
|
|
604
|
+
service-type: Worker
|
|
605
|
+
github-url: "https://github.com/synapsh/openclaw"
|
|
606
|
+
health-status: Unknown
|
|
607
|
+
tech-stack: [Docker, MCP, Playwright]
|
|
608
|
+
port: 3000
|
|
609
|
+
service-notes: "Web browsing MCP tool. Docker-managed via workspace.settings.serviceCommands.openclaw. MCP stdio/HTTP transport. Used by Agent Hub for web research. Internal only."
|
|
610
|
+
- profileSlug: service
|
|
611
|
+
title: Firecrawl
|
|
612
|
+
properties:
|
|
613
|
+
service-type: Worker
|
|
614
|
+
service-url: "https://firecrawl.dev"
|
|
615
|
+
github-url: "https://github.com/mendableai/firecrawl"
|
|
616
|
+
health-status: Unknown
|
|
617
|
+
tech-stack: [Docker, MCP]
|
|
618
|
+
port: 3001
|
|
619
|
+
service-notes: "Web scraping MCP tool. Docker-managed via workspace.settings.serviceCommands.firecrawl. MCP stdio/HTTP transport. Used by Agent Hub for structured content extraction."
|
|
620
|
+
- profileSlug: service
|
|
621
|
+
title: Browser
|
|
622
|
+
properties:
|
|
623
|
+
service-type: Frontend
|
|
624
|
+
github-url: "https://github.com/synapsh/browser"
|
|
625
|
+
health-status: Unknown
|
|
626
|
+
tech-stack: [Electron, React, Zustand]
|
|
627
|
+
service-notes: "Desktop browser shell. Wraps Synap App with native OS integration, tab management, profile/workspace switching, embedded webviews."
|
|
628
|
+
- profileSlug: service
|
|
629
|
+
title: Langfuse Monitor
|
|
630
|
+
properties:
|
|
631
|
+
service-type: Monitoring
|
|
632
|
+
service-url: "https://ai-monitoring.synap.live"
|
|
633
|
+
github-url: "https://github.com/langfuse/langfuse"
|
|
634
|
+
health-endpoint: "https://ai-monitoring.synap.live/api/public/health"
|
|
635
|
+
health-status: Unknown
|
|
636
|
+
tech-stack: [Langfuse, Docker, PostgreSQL]
|
|
637
|
+
environment: Production
|
|
638
|
+
service-notes: "Self-hosted Langfuse AI observability. Traces all Agent Hub executions."
|
|
639
|
+
- profileSlug: service
|
|
640
|
+
title: MonoHub
|
|
641
|
+
properties:
|
|
642
|
+
service-type: Worker
|
|
643
|
+
github-url: "https://github.com/synapsh/synap"
|
|
644
|
+
health-status: Unknown
|
|
645
|
+
tech-stack: [Node.js, Ink, React, MCP]
|
|
646
|
+
port: 7433
|
|
647
|
+
service-notes: "Internal developer CLI (monohub/). Terminal dashboard: package health, circular dep detection, publish orchestration, capability scaffolding wizard, MCP server for Claude/Cursor. Web dashboard at http://localhost:7433."
|
|
648
|
+
- profileSlug: vendor
|
|
649
|
+
title: Hetzner
|
|
650
|
+
properties:
|
|
651
|
+
vendor-type: Hosting
|
|
652
|
+
vendor-url: "https://hetzner.com"
|
|
653
|
+
admin-url: "https://console.hetzner.cloud"
|
|
654
|
+
status-page-url: "https://status.hetzner.com"
|
|
655
|
+
pricing-model: Monthly
|
|
656
|
+
monthly-cost: 0
|
|
657
|
+
vendor-status: Active
|
|
658
|
+
vendor-notes: "Primary cloud hosting. Servers for Data Pods and Agent Hub."
|
|
659
|
+
- profileSlug: vendor
|
|
660
|
+
title: Stripe
|
|
661
|
+
properties:
|
|
662
|
+
vendor-type: Other
|
|
663
|
+
vendor-url: "https://stripe.com"
|
|
664
|
+
admin-url: "https://dashboard.stripe.com"
|
|
665
|
+
docs-url: "https://stripe.com/docs"
|
|
666
|
+
status-page-url: "https://status.stripe.com"
|
|
667
|
+
pricing-model: Pay-as-you-go
|
|
668
|
+
monthly-cost: 0
|
|
669
|
+
vendor-status: Active
|
|
670
|
+
vendor-notes: "Billing and subscription management. solo/pro/team/enterprise tiers + addon subscriptions. Webhooks consumed by Control Plane API."
|
|
671
|
+
- profileSlug: vendor
|
|
672
|
+
title: OpenRouter
|
|
673
|
+
properties:
|
|
674
|
+
vendor-type: AI
|
|
675
|
+
vendor-url: "https://openrouter.ai"
|
|
676
|
+
admin-url: "https://openrouter.ai/dashboard"
|
|
677
|
+
docs-url: "https://openrouter.ai/docs"
|
|
678
|
+
pricing-model: Pay-as-you-go
|
|
679
|
+
monthly-cost: 0
|
|
680
|
+
vendor-status: Active
|
|
681
|
+
vendor-notes: "LLM API gateway. Used by Agent Hub for all model calls (Claude, GPT-4, etc.)."
|
|
682
|
+
- profileSlug: vendor
|
|
683
|
+
title: Cloudflare
|
|
684
|
+
properties:
|
|
685
|
+
vendor-type: DNS
|
|
686
|
+
vendor-url: "https://cloudflare.com"
|
|
687
|
+
admin-url: "https://dash.cloudflare.com"
|
|
688
|
+
status-page-url: "https://www.cloudflarestatus.com"
|
|
689
|
+
pricing-model: Monthly
|
|
690
|
+
monthly-cost: 0
|
|
691
|
+
vendor-status: Active
|
|
692
|
+
vendor-notes: "DNS management and CDN for all Synap domains."
|
|
693
|
+
- profileSlug: vendor
|
|
694
|
+
title: Resend
|
|
695
|
+
properties:
|
|
696
|
+
vendor-type: Email
|
|
697
|
+
vendor-url: "https://resend.com"
|
|
698
|
+
admin-url: "https://resend.com/dashboard"
|
|
699
|
+
docs-url: "https://resend.com/docs"
|
|
700
|
+
pricing-model: Pay-as-you-go
|
|
701
|
+
monthly-cost: 0
|
|
702
|
+
vendor-status: Active
|
|
703
|
+
vendor-notes: "Transactional email. API key provisioned to each Data Pod via provision JWT."
|
|
704
|
+
- profileSlug: vendor
|
|
705
|
+
title: GitHub
|
|
706
|
+
properties:
|
|
707
|
+
vendor-type: CI/CD
|
|
708
|
+
vendor-url: "https://github.com"
|
|
709
|
+
admin-url: "https://github.com/synapsh"
|
|
710
|
+
pricing-model: Monthly
|
|
711
|
+
monthly-cost: 0
|
|
712
|
+
vendor-status: Active
|
|
713
|
+
vendor-notes: "Code hosting and CI/CD (GitHub Actions). All repos under github.com/synapsh."
|
|
714
|
+
- profileSlug: vendor
|
|
715
|
+
title: Namecheap
|
|
716
|
+
properties:
|
|
717
|
+
vendor-type: Domain Registrar
|
|
718
|
+
vendor-url: "https://namecheap.com"
|
|
719
|
+
admin-url: "https://ap.www.namecheap.com/dashboard"
|
|
720
|
+
pricing-model: Annual
|
|
721
|
+
monthly-cost: 0
|
|
722
|
+
vendor-status: Active
|
|
723
|
+
vendor-notes: "Domain registrar for synap.live. Alternative DNS provider alongside Cloudflare."
|
|
724
|
+
- profileSlug: vendor
|
|
725
|
+
title: Trigger.dev
|
|
726
|
+
properties:
|
|
727
|
+
vendor-type: Background Jobs
|
|
728
|
+
vendor-url: "https://trigger.dev"
|
|
729
|
+
admin-url: "https://cloud.trigger.dev"
|
|
730
|
+
pricing-model: Monthly
|
|
731
|
+
monthly-cost: 0
|
|
732
|
+
vendor-status: Active
|
|
733
|
+
vendor-notes: "Background job orchestration for CP: pod provisioning, rolling updates, health checks."
|
|
734
|
+
- profileSlug: environment
|
|
735
|
+
title: Production
|
|
736
|
+
properties:
|
|
737
|
+
env-type: Production
|
|
738
|
+
env-url: "https://app.synap.live"
|
|
739
|
+
branch: main
|
|
740
|
+
env-status: Active
|
|
741
|
+
env-notes: "Live production environment. All customer data. Requires deployment checklist before any release."
|
|
742
|
+
- profileSlug: environment
|
|
743
|
+
title: Staging
|
|
744
|
+
properties:
|
|
745
|
+
env-type: Staging
|
|
746
|
+
branch: staging
|
|
747
|
+
env-status: Active
|
|
748
|
+
env-notes: "Pre-production staging environment for QA and integration testing."
|
|
749
|
+
- profileSlug: environment
|
|
750
|
+
title: Development
|
|
751
|
+
properties:
|
|
752
|
+
env-type: Development
|
|
753
|
+
env-url: "http://localhost:3000"
|
|
754
|
+
branch: main
|
|
755
|
+
env-status: Active
|
|
756
|
+
env-notes: "Local development. Run: pnpm dev in synap-app, synap-backend, synap-intelligence-service, synap-control-plane-api."
|
|
757
|
+
- profileSlug: repository
|
|
758
|
+
title: synap-app
|
|
759
|
+
properties:
|
|
760
|
+
repo-url: "https://github.com/synapsh/synap-app"
|
|
761
|
+
main-branch: main
|
|
762
|
+
ci-status: Unknown
|
|
763
|
+
ci-url: "https://github.com/synapsh/synap-app/actions"
|
|
764
|
+
language: TypeScript
|
|
765
|
+
package-manager: pnpm
|
|
766
|
+
monorepo: true
|
|
767
|
+
repo-notes: "Frontend monorepo. packages/core (@synap/capabilities, @synap/cell-runtime, @synap/cells), packages/features (channels, sidebar, bento), packages/views, packages/apps (fluid, billing, agent-os)."
|
|
768
|
+
- profileSlug: repository
|
|
769
|
+
title: synap-backend
|
|
770
|
+
properties:
|
|
771
|
+
repo-url: "https://github.com/synapsh/synap-backend"
|
|
772
|
+
main-branch: main
|
|
773
|
+
ci-status: Unknown
|
|
774
|
+
ci-url: "https://github.com/synapsh/synap-backend/actions"
|
|
775
|
+
language: TypeScript
|
|
776
|
+
package-manager: pnpm
|
|
777
|
+
monorepo: true
|
|
778
|
+
repo-notes: "Data Pod backend monorepo. Hono + tRPC + Drizzle + Better Auth. Hub Protocol (16 sub-routers)."
|
|
779
|
+
- profileSlug: repository
|
|
780
|
+
title: synap-control-plane-api
|
|
781
|
+
properties:
|
|
782
|
+
repo-url: "https://github.com/synapsh/synap-control-plane-api"
|
|
783
|
+
main-branch: main
|
|
784
|
+
ci-status: Unknown
|
|
785
|
+
ci-url: "https://github.com/synapsh/synap-control-plane-api/actions"
|
|
786
|
+
language: TypeScript
|
|
787
|
+
package-manager: pnpm
|
|
788
|
+
monorepo: false
|
|
789
|
+
repo-notes: "SaaS Control Plane. Hono REST + Better Auth + Stripe. Also contains workspace template JSON files."
|
|
790
|
+
- profileSlug: repository
|
|
791
|
+
title: synap-intelligence-service
|
|
792
|
+
properties:
|
|
793
|
+
repo-url: "https://github.com/synapsh/synap-intelligence-service"
|
|
794
|
+
main-branch: main
|
|
795
|
+
ci-status: Unknown
|
|
796
|
+
ci-url: "https://github.com/synapsh/synap-intelligence-service/actions"
|
|
797
|
+
language: TypeScript
|
|
798
|
+
package-manager: pnpm
|
|
799
|
+
monorepo: true
|
|
800
|
+
repo-notes: "Agent Hub monorepo (synap-agent-hub). OrchestratorAgent, PersonaAgent, tool registry, Hub Protocol client, compaction engine."
|
|
801
|
+
- profileSlug: repository
|
|
802
|
+
title: browser
|
|
803
|
+
properties:
|
|
804
|
+
repo-url: "https://github.com/synapsh/browser"
|
|
805
|
+
main-branch: main
|
|
806
|
+
ci-status: Unknown
|
|
807
|
+
ci-url: "https://github.com/synapsh/browser/actions"
|
|
808
|
+
language: TypeScript
|
|
809
|
+
package-manager: pnpm
|
|
810
|
+
monorepo: false
|
|
811
|
+
repo-notes: "Electron desktop shell. Native OS integration for Synap App."
|
|
812
|
+
- profileSlug: repository
|
|
813
|
+
title: monohub
|
|
814
|
+
properties:
|
|
815
|
+
repo-url: "https://github.com/synapsh/synap"
|
|
816
|
+
main-branch: main
|
|
817
|
+
ci-status: Unknown
|
|
818
|
+
ci-url: "https://github.com/synapsh/synap/actions"
|
|
819
|
+
language: TypeScript
|
|
820
|
+
package-manager: pnpm
|
|
821
|
+
monorepo: false
|
|
822
|
+
repo-notes: "Developer tooling CLI (monohub/ at workspace root). Terminal dashboard, capability scaffolding, MCP server, publish orchestration. .github/workflows/monohub.yml for monorepo CI."
|
|
823
|
+
- profileSlug: credential
|
|
824
|
+
title: Hetzner API Token
|
|
825
|
+
properties:
|
|
826
|
+
credential-type: api_key
|
|
827
|
+
service-name: Hetzner
|
|
828
|
+
vault-ref: hetzner-api-token
|
|
829
|
+
environment: production
|
|
830
|
+
notes: "Zone DNS Edit + server/volume permissions. Used by CP for pod provisioning."
|
|
831
|
+
- profileSlug: credential
|
|
832
|
+
title: Cloudflare API Token
|
|
833
|
+
properties:
|
|
834
|
+
credential-type: api_key
|
|
835
|
+
service-name: Cloudflare
|
|
836
|
+
vault-ref: cloudflare-api-token
|
|
837
|
+
environment: production
|
|
838
|
+
notes: "Zone DNS Edit permission for synap.live. Used by CP for DNS record management."
|
|
839
|
+
- profileSlug: credential
|
|
840
|
+
title: Namecheap API Key
|
|
841
|
+
properties:
|
|
842
|
+
credential-type: api_key
|
|
843
|
+
service-name: Namecheap
|
|
844
|
+
vault-ref: namecheap-api-key
|
|
845
|
+
environment: production
|
|
846
|
+
notes: "Requires NAMECHEAP_CLIENT_IP whitelist. Fallback DNS provider."
|
|
847
|
+
- profileSlug: credential
|
|
848
|
+
title: Stripe Secret Key
|
|
849
|
+
properties:
|
|
850
|
+
credential-type: api_key
|
|
851
|
+
service-name: Stripe
|
|
852
|
+
vault-ref: stripe-secret-key
|
|
853
|
+
environment: production
|
|
854
|
+
notes: "sk_live_* key for CP billing. Never expose client-side."
|
|
855
|
+
- profileSlug: credential
|
|
856
|
+
title: Stripe Webhook Secret
|
|
857
|
+
properties:
|
|
858
|
+
credential-type: api_key
|
|
859
|
+
service-name: Stripe
|
|
860
|
+
vault-ref: stripe-webhook-secret
|
|
861
|
+
environment: production
|
|
862
|
+
notes: "whsec_* for verifying Stripe webhook payloads in CP."
|
|
863
|
+
- profileSlug: credential
|
|
864
|
+
title: OpenRouter API Key
|
|
865
|
+
properties:
|
|
866
|
+
credential-type: api_key
|
|
867
|
+
service-name: OpenRouter
|
|
868
|
+
vault-ref: openrouter-api-key
|
|
869
|
+
environment: production
|
|
870
|
+
notes: "sk-or-v1-* key. Required by Agent Hub. Covers all LLM models."
|
|
871
|
+
- profileSlug: credential
|
|
872
|
+
title: Resend API Key
|
|
873
|
+
properties:
|
|
874
|
+
credential-type: api_key
|
|
875
|
+
service-name: Resend
|
|
876
|
+
vault-ref: resend-api-key
|
|
877
|
+
environment: production
|
|
878
|
+
notes: "re_* key. Used by CP for transactional emails. Also provisioned to pods."
|
|
879
|
+
- profileSlug: credential
|
|
880
|
+
title: GitHub Actions Token
|
|
881
|
+
properties:
|
|
882
|
+
credential-type: token
|
|
883
|
+
service-name: GitHub
|
|
884
|
+
vault-ref: github-actions-token
|
|
885
|
+
environment: production
|
|
886
|
+
notes: "PAT for CI/CD — ghcr.io image push, workflow triggers."
|
|
887
|
+
- profileSlug: credential
|
|
888
|
+
title: CP EC Private Key
|
|
889
|
+
properties:
|
|
890
|
+
credential-type: certificate
|
|
891
|
+
service-name: Control Plane API
|
|
892
|
+
vault-ref: cp-ec-private-key
|
|
893
|
+
environment: production
|
|
894
|
+
notes: "ES256 PKCS#8 private key. Signs provision JWTs. Pods verify via /well-known/jwks.json."
|
|
895
|
+
- profileSlug: credential
|
|
896
|
+
title: Hetzner SSH Key
|
|
897
|
+
properties:
|
|
898
|
+
credential-type: ssh_key
|
|
899
|
+
service-name: Hetzner
|
|
900
|
+
vault-ref: hetzner-ssh-key
|
|
901
|
+
environment: production
|
|
902
|
+
notes: "SSH key pair for pod server access via Hetzner."
|
|
903
|
+
|
|
904
|
+
suggestedRelations:
|
|
905
|
+
- { sourceRef: "service:Synap App", targetRef: "service:Synap Backend", type: depends_on }
|
|
906
|
+
- { sourceRef: "service:Synap App", targetRef: "service:Agent Hub", type: depends_on }
|
|
907
|
+
- { sourceRef: "service:Browser", targetRef: "service:Synap App", type: depends_on }
|
|
908
|
+
- { sourceRef: "service:Control Plane", targetRef: "service:Control Plane API", type: depends_on }
|
|
909
|
+
- { sourceRef: "service:Control Plane API", targetRef: "service:Synap Backend", type: depends_on }
|
|
910
|
+
- { sourceRef: "service:Synap Backend", targetRef: "service:Agent Hub", type: depends_on }
|
|
911
|
+
- { sourceRef: "service:Agent Hub", targetRef: "service:OpenClaw", type: depends_on }
|
|
912
|
+
- { sourceRef: "service:Agent Hub", targetRef: "service:Firecrawl", type: depends_on }
|
|
913
|
+
- { sourceRef: "service:Agent Hub", targetRef: "vendor:OpenRouter", type: uses }
|
|
914
|
+
- { sourceRef: "service:Control Plane API", targetRef: "vendor:Stripe", type: uses }
|
|
915
|
+
- { sourceRef: "service:Synap Backend", targetRef: "vendor:Hetzner", type: deployed_on }
|
|
916
|
+
- { sourceRef: "service:Agent Hub", targetRef: "vendor:Hetzner", type: deployed_on }
|
|
917
|
+
- { sourceRef: "service:Control Plane API", targetRef: "vendor:Resend", type: uses }
|
|
918
|
+
- { sourceRef: "service:Synap App", targetRef: "vendor:Vercel", type: deployed_on }
|
|
919
|
+
- { sourceRef: "service:Control Plane", targetRef: "vendor:Vercel", type: deployed_on }
|
|
920
|
+
- { sourceRef: "repository:synap-app", targetRef: "service:Synap App", type: powers }
|
|
921
|
+
- { sourceRef: "repository:synap-backend", targetRef: "service:Synap Backend", type: powers }
|
|
922
|
+
- { sourceRef: "repository:synap-control-plane-api", targetRef: "service:Control Plane API", type: powers }
|
|
923
|
+
- { sourceRef: "repository:synap-intelligence-service", targetRef: "service:Agent Hub", type: powers }
|
|
924
|
+
- { sourceRef: "repository:browser", targetRef: "service:Browser", type: powers }
|
|
925
|
+
- { sourceRef: "repository:monohub", targetRef: "service:MonoHub", type: powers }
|
|
926
|
+
- { sourceRef: "Hetzner", targetRef: "Hetzner API Token", type: references }
|
|
927
|
+
- { sourceRef: "Hetzner", targetRef: "Hetzner SSH Key", type: references }
|
|
928
|
+
- { sourceRef: "Cloudflare", targetRef: "Cloudflare API Token", type: references }
|
|
929
|
+
- { sourceRef: "Namecheap", targetRef: "Namecheap API Key", type: references }
|
|
930
|
+
- { sourceRef: "Stripe", targetRef: "Stripe Secret Key", type: references }
|
|
931
|
+
- { sourceRef: "Stripe", targetRef: "Stripe Webhook Secret", type: references }
|
|
932
|
+
- { sourceRef: "OpenRouter", targetRef: "OpenRouter API Key", type: references }
|
|
933
|
+
- { sourceRef: "Resend", targetRef: "Resend API Key", type: references }
|
|
934
|
+
- { sourceRef: "GitHub", targetRef: "GitHub Actions Token", type: references }
|
|
935
|
+
- { sourceRef: "Control Plane API", targetRef: "CP EC Private Key", type: references }
|
|
936
|
+
|
|
937
|
+
displayTemplates:
|
|
938
|
+
- name: Service Card
|
|
939
|
+
description: "Infrastructure service with health status, stack, and links"
|
|
940
|
+
entityType: service
|
|
941
|
+
targetType: entity
|
|
942
|
+
isDefault: true
|
|
943
|
+
config:
|
|
944
|
+
layout:
|
|
945
|
+
structure:
|
|
946
|
+
header:
|
|
947
|
+
enabled: true
|
|
948
|
+
slots: [health-status, service-type]
|
|
949
|
+
layout: horizontal
|
|
950
|
+
sidebar:
|
|
951
|
+
enabled: true
|
|
952
|
+
slots: [environment, port, deployment-branch, last-deploy]
|
|
953
|
+
position: right
|
|
954
|
+
width: "260px"
|
|
955
|
+
layout: vertical
|
|
956
|
+
content:
|
|
957
|
+
enabled: true
|
|
958
|
+
slots: [tech-stack, service-url, github-url, health-endpoint]
|
|
959
|
+
layout: vertical
|
|
960
|
+
fieldMapping:
|
|
961
|
+
health-status:
|
|
962
|
+
slot: health-status
|
|
963
|
+
renderer: { type: badge, size: md }
|
|
964
|
+
showLabel: false
|
|
965
|
+
order: 1
|
|
966
|
+
service-type:
|
|
967
|
+
slot: service-type
|
|
968
|
+
renderer: { type: badge, size: sm }
|
|
969
|
+
showLabel: false
|
|
970
|
+
order: 2
|
|
971
|
+
environment:
|
|
972
|
+
slot: environment
|
|
973
|
+
renderer: { type: badge, size: sm }
|
|
974
|
+
label: Environment
|
|
975
|
+
order: 3
|
|
976
|
+
port:
|
|
977
|
+
slot: port
|
|
978
|
+
renderer: { type: number }
|
|
979
|
+
label: Port
|
|
980
|
+
order: 4
|
|
981
|
+
deployment-branch:
|
|
982
|
+
slot: deployment-branch
|
|
983
|
+
renderer: { type: text }
|
|
984
|
+
label: Branch
|
|
985
|
+
order: 5
|
|
986
|
+
last-deploy:
|
|
987
|
+
slot: last-deploy
|
|
988
|
+
renderer: { type: date, format: relative }
|
|
989
|
+
label: Last Deploy
|
|
990
|
+
order: 6
|
|
991
|
+
tech-stack:
|
|
992
|
+
slot: tech-stack
|
|
993
|
+
renderer: { type: badge }
|
|
994
|
+
label: Tech Stack
|
|
995
|
+
order: 7
|
|
996
|
+
service-url:
|
|
997
|
+
slot: service-url
|
|
998
|
+
renderer: { type: link }
|
|
999
|
+
label: Service URL
|
|
1000
|
+
order: 8
|
|
1001
|
+
github-url:
|
|
1002
|
+
slot: github-url
|
|
1003
|
+
renderer: { type: link }
|
|
1004
|
+
label: GitHub
|
|
1005
|
+
order: 9
|
|
1006
|
+
health-endpoint:
|
|
1007
|
+
slot: health-endpoint
|
|
1008
|
+
renderer: { type: link }
|
|
1009
|
+
label: Health Check
|
|
1010
|
+
order: 10
|
|
1011
|
+
colors:
|
|
1012
|
+
accent: "#3B82F6"
|
|
1013
|
+
styling:
|
|
1014
|
+
borderRadius: "10px"
|
|
1015
|
+
|
|
1016
|
+
- name: Vendor Card
|
|
1017
|
+
description: "External vendor with pricing, status, and admin links"
|
|
1018
|
+
entityType: vendor
|
|
1019
|
+
targetType: entity
|
|
1020
|
+
isDefault: true
|
|
1021
|
+
config:
|
|
1022
|
+
layout:
|
|
1023
|
+
structure:
|
|
1024
|
+
header:
|
|
1025
|
+
enabled: true
|
|
1026
|
+
slots: [vendor-status, vendor-type]
|
|
1027
|
+
layout: horizontal
|
|
1028
|
+
sidebar:
|
|
1029
|
+
enabled: true
|
|
1030
|
+
slots: [pricing-model, monthly-cost]
|
|
1031
|
+
position: right
|
|
1032
|
+
width: "240px"
|
|
1033
|
+
layout: vertical
|
|
1034
|
+
content:
|
|
1035
|
+
enabled: true
|
|
1036
|
+
slots: [vendor-url, admin-url, docs-url, status-page-url]
|
|
1037
|
+
layout: vertical
|
|
1038
|
+
fieldMapping:
|
|
1039
|
+
vendor-status:
|
|
1040
|
+
slot: vendor-status
|
|
1041
|
+
renderer: { type: badge, size: md }
|
|
1042
|
+
showLabel: false
|
|
1043
|
+
order: 1
|
|
1044
|
+
vendor-type:
|
|
1045
|
+
slot: vendor-type
|
|
1046
|
+
renderer: { type: badge, size: sm }
|
|
1047
|
+
showLabel: false
|
|
1048
|
+
order: 2
|
|
1049
|
+
pricing-model:
|
|
1050
|
+
slot: pricing-model
|
|
1051
|
+
renderer: { type: badge, size: sm }
|
|
1052
|
+
label: Pricing
|
|
1053
|
+
order: 3
|
|
1054
|
+
monthly-cost:
|
|
1055
|
+
slot: monthly-cost
|
|
1056
|
+
renderer: { type: number, format: currency }
|
|
1057
|
+
label: Monthly Cost
|
|
1058
|
+
order: 4
|
|
1059
|
+
vendor-url:
|
|
1060
|
+
slot: vendor-url
|
|
1061
|
+
renderer: { type: link }
|
|
1062
|
+
label: Website
|
|
1063
|
+
order: 5
|
|
1064
|
+
admin-url:
|
|
1065
|
+
slot: admin-url
|
|
1066
|
+
renderer: { type: link }
|
|
1067
|
+
label: Admin Console
|
|
1068
|
+
order: 6
|
|
1069
|
+
docs-url:
|
|
1070
|
+
slot: docs-url
|
|
1071
|
+
renderer: { type: link }
|
|
1072
|
+
label: Documentation
|
|
1073
|
+
order: 7
|
|
1074
|
+
status-page-url:
|
|
1075
|
+
slot: status-page-url
|
|
1076
|
+
renderer: { type: link }
|
|
1077
|
+
label: Status Page
|
|
1078
|
+
order: 8
|
|
1079
|
+
colors:
|
|
1080
|
+
accent: "#8B5CF6"
|
|
1081
|
+
styling:
|
|
1082
|
+
borderRadius: "10px"
|
|
1083
|
+
|
|
1084
|
+
- name: Environment Card
|
|
1085
|
+
description: "Deployment environment with status and branch info"
|
|
1086
|
+
entityType: environment
|
|
1087
|
+
targetType: entity
|
|
1088
|
+
isDefault: true
|
|
1089
|
+
config:
|
|
1090
|
+
layout:
|
|
1091
|
+
structure:
|
|
1092
|
+
header:
|
|
1093
|
+
enabled: true
|
|
1094
|
+
slots: [env-status, env-type]
|
|
1095
|
+
layout: horizontal
|
|
1096
|
+
sidebar:
|
|
1097
|
+
enabled: true
|
|
1098
|
+
slots: [branch, last-deploy]
|
|
1099
|
+
position: right
|
|
1100
|
+
width: "240px"
|
|
1101
|
+
layout: vertical
|
|
1102
|
+
content:
|
|
1103
|
+
enabled: true
|
|
1104
|
+
slots: [env-url]
|
|
1105
|
+
layout: vertical
|
|
1106
|
+
fieldMapping:
|
|
1107
|
+
env-status:
|
|
1108
|
+
slot: env-status
|
|
1109
|
+
renderer: { type: badge, size: md }
|
|
1110
|
+
showLabel: false
|
|
1111
|
+
order: 1
|
|
1112
|
+
env-type:
|
|
1113
|
+
slot: env-type
|
|
1114
|
+
renderer: { type: badge, size: sm }
|
|
1115
|
+
showLabel: false
|
|
1116
|
+
order: 2
|
|
1117
|
+
branch:
|
|
1118
|
+
slot: branch
|
|
1119
|
+
renderer: { type: text }
|
|
1120
|
+
label: Branch
|
|
1121
|
+
order: 3
|
|
1122
|
+
last-deploy:
|
|
1123
|
+
slot: last-deploy
|
|
1124
|
+
renderer: { type: date, format: relative }
|
|
1125
|
+
label: Last Deploy
|
|
1126
|
+
order: 4
|
|
1127
|
+
env-url:
|
|
1128
|
+
slot: env-url
|
|
1129
|
+
renderer: { type: link }
|
|
1130
|
+
label: URL
|
|
1131
|
+
order: 5
|
|
1132
|
+
colors:
|
|
1133
|
+
accent: "#10B981"
|
|
1134
|
+
styling:
|
|
1135
|
+
borderRadius: "10px"
|
|
1136
|
+
|
|
1137
|
+
- name: Repository Card
|
|
1138
|
+
description: "Git repository with CI status and branch info"
|
|
1139
|
+
entityType: repository
|
|
1140
|
+
targetType: entity
|
|
1141
|
+
isDefault: true
|
|
1142
|
+
config:
|
|
1143
|
+
layout:
|
|
1144
|
+
structure:
|
|
1145
|
+
header:
|
|
1146
|
+
enabled: true
|
|
1147
|
+
slots: [ci-status, language]
|
|
1148
|
+
layout: horizontal
|
|
1149
|
+
sidebar:
|
|
1150
|
+
enabled: true
|
|
1151
|
+
slots: [main-branch, package-manager, monorepo]
|
|
1152
|
+
position: right
|
|
1153
|
+
width: "240px"
|
|
1154
|
+
layout: vertical
|
|
1155
|
+
content:
|
|
1156
|
+
enabled: true
|
|
1157
|
+
slots: [repo-url, ci-url]
|
|
1158
|
+
layout: vertical
|
|
1159
|
+
fieldMapping:
|
|
1160
|
+
ci-status:
|
|
1161
|
+
slot: ci-status
|
|
1162
|
+
renderer: { type: badge, size: md }
|
|
1163
|
+
showLabel: false
|
|
1164
|
+
order: 1
|
|
1165
|
+
language:
|
|
1166
|
+
slot: language
|
|
1167
|
+
renderer: { type: badge, size: sm }
|
|
1168
|
+
showLabel: false
|
|
1169
|
+
order: 2
|
|
1170
|
+
main-branch:
|
|
1171
|
+
slot: main-branch
|
|
1172
|
+
renderer: { type: text }
|
|
1173
|
+
label: Main Branch
|
|
1174
|
+
order: 3
|
|
1175
|
+
package-manager:
|
|
1176
|
+
slot: package-manager
|
|
1177
|
+
renderer: { type: badge, size: sm }
|
|
1178
|
+
label: Package Manager
|
|
1179
|
+
order: 4
|
|
1180
|
+
monorepo:
|
|
1181
|
+
slot: monorepo
|
|
1182
|
+
renderer: { type: checkbox }
|
|
1183
|
+
label: Monorepo
|
|
1184
|
+
order: 5
|
|
1185
|
+
repo-url:
|
|
1186
|
+
slot: repo-url
|
|
1187
|
+
renderer: { type: link }
|
|
1188
|
+
label: Repository
|
|
1189
|
+
order: 6
|
|
1190
|
+
ci-url:
|
|
1191
|
+
slot: ci-url
|
|
1192
|
+
renderer: { type: link }
|
|
1193
|
+
label: CI Dashboard
|
|
1194
|
+
order: 7
|
|
1195
|
+
colors:
|
|
1196
|
+
accent: "#F97316"
|
|
1197
|
+
styling:
|
|
1198
|
+
borderRadius: "10px"
|
|
1199
|
+
|
|
1200
|
+
# Top-level workspace dashboard (from bentoLayout + bentoViewBlocks union)
|
|
1201
|
+
bento:
|
|
1202
|
+
blocks:
|
|
1203
|
+
- kind: widget
|
|
1204
|
+
widgetType: welcome-header
|
|
1205
|
+
pos: { x: 0, y: 0, w: 12, h: 2 }
|
|
1206
|
+
config: {}
|
|
1207
|
+
- kind: widget
|
|
1208
|
+
widgetType: entity-count
|
|
1209
|
+
pos: { x: 0, y: 2, w: 3, h: 2 }
|
|
1210
|
+
config:
|
|
1211
|
+
profileSlug: service
|
|
1212
|
+
label: Services
|
|
1213
|
+
- kind: widget
|
|
1214
|
+
widgetType: entity-count
|
|
1215
|
+
pos: { x: 3, y: 2, w: 3, h: 2 }
|
|
1216
|
+
config:
|
|
1217
|
+
profileSlug: vendor
|
|
1218
|
+
label: Vendors
|
|
1219
|
+
- kind: widget
|
|
1220
|
+
widgetType: entity-count
|
|
1221
|
+
pos: { x: 6, y: 2, w: 3, h: 2 }
|
|
1222
|
+
config:
|
|
1223
|
+
profileSlug: service
|
|
1224
|
+
label: Healthy
|
|
1225
|
+
filter:
|
|
1226
|
+
health-status: Healthy
|
|
1227
|
+
- kind: widget
|
|
1228
|
+
widgetType: entity-count
|
|
1229
|
+
pos: { x: 9, y: 2, w: 3, h: 2 }
|
|
1230
|
+
config:
|
|
1231
|
+
profileSlug: environment
|
|
1232
|
+
label: Environments
|
|
1233
|
+
- kind: widget
|
|
1234
|
+
widgetType: dev-service-health
|
|
1235
|
+
pos: { x: 0, y: 4, w: 3, h: 3 }
|
|
1236
|
+
config: {}
|
|
1237
|
+
- kind: widget
|
|
1238
|
+
widgetType: dev-cost-summary
|
|
1239
|
+
pos: { x: 3, y: 4, w: 3, h: 3 }
|
|
1240
|
+
config: {}
|
|
1241
|
+
- kind: widget
|
|
1242
|
+
widgetType: dev-quick-links
|
|
1243
|
+
pos: { x: 6, y: 4, w: 6, h: 3 }
|
|
1244
|
+
config:
|
|
1245
|
+
title: Quick Links
|
|
1246
|
+
links:
|
|
1247
|
+
- { label: GitHub, url: "https://github.com/synapsh", color: "#24292E" }
|
|
1248
|
+
- { label: Hetzner Console, url: "https://console.hetzner.cloud", color: "#D50C2D" }
|
|
1249
|
+
- { label: Vercel Dashboard, url: "https://vercel.com/dashboard", color: "#000000" }
|
|
1250
|
+
- { label: Ory Console, url: "https://console.ory.sh", color: "#5528FF" }
|
|
1251
|
+
- { label: Cloudflare, url: "https://dash.cloudflare.com", color: "#F38020" }
|
|
1252
|
+
- { label: OpenRouter, url: "https://openrouter.ai/dashboard", color: "#6366F1" }
|
|
1253
|
+
- kind: widget
|
|
1254
|
+
widgetType: entity-list
|
|
1255
|
+
pos: { x: 0, y: 7, w: 6, h: 5 }
|
|
1256
|
+
config:
|
|
1257
|
+
profileSlug: service
|
|
1258
|
+
title: All Services
|
|
1259
|
+
limit: 10
|
|
1260
|
+
- kind: widget
|
|
1261
|
+
widgetType: entity-list
|
|
1262
|
+
pos: { x: 6, y: 7, w: 3, h: 5 }
|
|
1263
|
+
config:
|
|
1264
|
+
profileSlug: vendor
|
|
1265
|
+
title: Vendors
|
|
1266
|
+
limit: 8
|
|
1267
|
+
- kind: widget
|
|
1268
|
+
widgetType: feed
|
|
1269
|
+
pos: { x: 9, y: 7, w: 3, h: 5 }
|
|
1270
|
+
config: {}
|
|
1271
|
+
- kind: view
|
|
1272
|
+
viewName: Deploy Timeline
|
|
1273
|
+
pos: { x: 0, y: 12, w: 12, h: 4 }
|
|
1274
|
+
- kind: view
|
|
1275
|
+
viewName: Vendor Costs
|
|
1276
|
+
pos: { x: 0, y: 16, w: 6, h: 4 }
|
|
1277
|
+
- kind: view
|
|
1278
|
+
viewName: Service Health
|
|
1279
|
+
pos: { x: 6, y: 16, w: 6, h: 4 }
|
|
1280
|
+
|
|
1281
|
+
onboarding:
|
|
1282
|
+
goal: "Capture the user's infrastructure surface — the services they run, the repositories behind them, their environments, the vendors they depend on, and their credentials inventory — so the command center reflects their real stack."
|
|
1283
|
+
framing: "Act as a staff platform engineer doing an infra walkthrough. Tease out what's running in production, where the code lives, how environments are laid out, which third parties they depend on, and what secrets need tracking. Translate that into services, repositories, environments, vendors, and credentials."
|
|
1284
|
+
collect:
|
|
1285
|
+
- profileSlug: service
|
|
1286
|
+
what: "The services / apps they run and their stack"
|
|
1287
|
+
cardinality: several
|
|
1288
|
+
keyFields: [title, service-type, service-url, tech-stack]
|
|
1289
|
+
- profileSlug: repository
|
|
1290
|
+
what: "The repositories behind those services"
|
|
1291
|
+
cardinality: several
|
|
1292
|
+
keyFields: [title, repo-url, main-branch, language]
|
|
1293
|
+
- profileSlug: environment
|
|
1294
|
+
what: "Their deployment environments (prod, staging, etc.)"
|
|
1295
|
+
cardinality: few
|
|
1296
|
+
keyFields: [title, env-type, env-url, branch]
|
|
1297
|
+
- profileSlug: vendor
|
|
1298
|
+
what: "The third-party vendors / SaaS they depend on and their cost"
|
|
1299
|
+
cardinality: several
|
|
1300
|
+
keyFields: [title, vendor-type, monthly-cost, vendor-url]
|
|
1301
|
+
- profileSlug: credential
|
|
1302
|
+
what: "The credentials / secrets that need tracking and rotation"
|
|
1303
|
+
cardinality: few
|
|
1304
|
+
keyFields: [title, credential-type, service-name, expires-at]
|
|
1305
|
+
openingQuestions:
|
|
1306
|
+
- "What services are running in production right now, and what's each built on?"
|
|
1307
|
+
- "Where does the code live, and how are your environments laid out?"
|
|
1308
|
+
- "Which vendors do you depend on, and what credentials need tracking?"
|
|
1309
|
+
doneWhen: "Their running services and repositories exist, environments are mapped, key vendors are captured with cost, and the credentials inventory is started."
|