@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,244 @@
|
|
|
1
|
+
# Marketing Campaign workspace template
|
|
2
|
+
# AI-generation-friendly YAML. Validated against types.ts at build time.
|
|
3
|
+
|
|
4
|
+
meta:
|
|
5
|
+
slug: marketing-campaign
|
|
6
|
+
name: Marketing Campaigns
|
|
7
|
+
description: "Track leads, manage campaigns, and let AI help run your outreach. Contacts, pipeline, tasks, and AI briefings — all connected."
|
|
8
|
+
icon: megaphone
|
|
9
|
+
color: "#E91E8C"
|
|
10
|
+
tags: [marketing, crm, outreach, leads, campaigns]
|
|
11
|
+
isPublic: true
|
|
12
|
+
|
|
13
|
+
workspace:
|
|
14
|
+
name: Marketing Campaign OS
|
|
15
|
+
description: "Track leads, manage campaigns, and let AI help run your outreach. Contacts, pipeline, tasks, and AI briefings — all connected."
|
|
16
|
+
subtype: marketing-campaign
|
|
17
|
+
visibility: pod_visible
|
|
18
|
+
capabilities:
|
|
19
|
+
- marketing.campaigns
|
|
20
|
+
- marketing.contacts
|
|
21
|
+
- marketing.leads
|
|
22
|
+
sourceRoles:
|
|
23
|
+
marketing: provider
|
|
24
|
+
|
|
25
|
+
profiles:
|
|
26
|
+
- slug: campaign
|
|
27
|
+
displayName: Campaign
|
|
28
|
+
icon: megaphone
|
|
29
|
+
color: pink
|
|
30
|
+
description: "A marketing campaign — email, social, event, content, or partnership"
|
|
31
|
+
semanticSlug: marketing.campaign
|
|
32
|
+
properties:
|
|
33
|
+
- slug: campaign-status
|
|
34
|
+
label: Status
|
|
35
|
+
valueType: string
|
|
36
|
+
inputType: select
|
|
37
|
+
enumValues: [planning, active, paused, completed, cancelled]
|
|
38
|
+
constraints: { defaultValue: planning }
|
|
39
|
+
- slug: campaign-channel
|
|
40
|
+
label: Channel
|
|
41
|
+
valueType: string
|
|
42
|
+
inputType: select
|
|
43
|
+
enumValues: [email, social, event, content, partnership, paid, organic, other]
|
|
44
|
+
- slug: campaign-goal
|
|
45
|
+
label: Goal
|
|
46
|
+
valueType: string
|
|
47
|
+
inputType: textarea
|
|
48
|
+
- slug: campaign-target-audience
|
|
49
|
+
label: Target Audience
|
|
50
|
+
valueType: string
|
|
51
|
+
inputType: textarea
|
|
52
|
+
- slug: campaign-start-date
|
|
53
|
+
label: Start Date
|
|
54
|
+
valueType: date
|
|
55
|
+
inputType: date
|
|
56
|
+
- slug: campaign-end-date
|
|
57
|
+
label: End Date
|
|
58
|
+
valueType: date
|
|
59
|
+
inputType: date
|
|
60
|
+
- slug: campaign-budget
|
|
61
|
+
label: Budget
|
|
62
|
+
valueType: number
|
|
63
|
+
inputType: number
|
|
64
|
+
- slug: campaign-lead-count
|
|
65
|
+
label: Lead Count
|
|
66
|
+
valueType: number
|
|
67
|
+
inputType: number
|
|
68
|
+
- slug: campaign-conversion-rate
|
|
69
|
+
label: Conversion Rate (%)
|
|
70
|
+
valueType: number
|
|
71
|
+
inputType: number
|
|
72
|
+
- slug: campaign-notes
|
|
73
|
+
label: Notes
|
|
74
|
+
valueType: string
|
|
75
|
+
inputType: textarea
|
|
76
|
+
|
|
77
|
+
- slug: contact
|
|
78
|
+
displayName: Contact
|
|
79
|
+
icon: users
|
|
80
|
+
color: blue
|
|
81
|
+
description: "A person in your marketing contact list."
|
|
82
|
+
semanticSlug: marketing.contact
|
|
83
|
+
properties:
|
|
84
|
+
- slug: contact-email
|
|
85
|
+
label: Email
|
|
86
|
+
valueType: string
|
|
87
|
+
inputType: email
|
|
88
|
+
- slug: contact-phone
|
|
89
|
+
label: Phone
|
|
90
|
+
valueType: string
|
|
91
|
+
inputType: tel
|
|
92
|
+
- slug: contact-company
|
|
93
|
+
label: Company
|
|
94
|
+
valueType: string
|
|
95
|
+
inputType: text
|
|
96
|
+
- slug: contact-title
|
|
97
|
+
label: Title
|
|
98
|
+
valueType: string
|
|
99
|
+
inputType: text
|
|
100
|
+
- slug: contact-status
|
|
101
|
+
label: Status
|
|
102
|
+
valueType: string
|
|
103
|
+
inputType: select
|
|
104
|
+
enumValues: [active, unsubscribed, bounced, archived]
|
|
105
|
+
constraints: { defaultValue: active }
|
|
106
|
+
- slug: contact-source
|
|
107
|
+
label: Source
|
|
108
|
+
valueType: string
|
|
109
|
+
inputType: select
|
|
110
|
+
enumValues: [website, referral, event, social, email, other]
|
|
111
|
+
- slug: contact-notes
|
|
112
|
+
label: Notes
|
|
113
|
+
valueType: string
|
|
114
|
+
inputType: textarea
|
|
115
|
+
- slug: contact-tags
|
|
116
|
+
label: Tags
|
|
117
|
+
valueType: string
|
|
118
|
+
inputType: text
|
|
119
|
+
|
|
120
|
+
- slug: lead
|
|
121
|
+
displayName: Lead
|
|
122
|
+
icon: user-plus
|
|
123
|
+
color: green
|
|
124
|
+
description: "A potential customer or partner contact in your pipeline"
|
|
125
|
+
semanticSlug: marketing.lead
|
|
126
|
+
properties:
|
|
127
|
+
- slug: lead-stage
|
|
128
|
+
label: Stage
|
|
129
|
+
valueType: string
|
|
130
|
+
inputType: select
|
|
131
|
+
enumValues: [new, contacted, interested, qualified, demo, proposal, converted, lost]
|
|
132
|
+
constraints: { defaultValue: new }
|
|
133
|
+
- slug: lead-source
|
|
134
|
+
label: Source
|
|
135
|
+
valueType: string
|
|
136
|
+
inputType: select
|
|
137
|
+
enumValues: [organic, referral, social, email, event, paid, content, partnership, other]
|
|
138
|
+
- slug: lead-email
|
|
139
|
+
label: Email
|
|
140
|
+
valueType: string
|
|
141
|
+
inputType: email
|
|
142
|
+
- slug: lead-company
|
|
143
|
+
label: Company
|
|
144
|
+
valueType: string
|
|
145
|
+
inputType: text
|
|
146
|
+
- slug: lead-title
|
|
147
|
+
label: Title
|
|
148
|
+
valueType: string
|
|
149
|
+
inputType: text
|
|
150
|
+
- slug: lead-linkedin
|
|
151
|
+
label: LinkedIn
|
|
152
|
+
valueType: string
|
|
153
|
+
inputType: url
|
|
154
|
+
- slug: lead-score
|
|
155
|
+
label: Lead Score
|
|
156
|
+
valueType: number
|
|
157
|
+
inputType: number
|
|
158
|
+
- slug: lead-campaign
|
|
159
|
+
label: Campaign
|
|
160
|
+
valueType: entity_id
|
|
161
|
+
targetProfileSlug: campaign
|
|
162
|
+
inputType: entity_select
|
|
163
|
+
- slug: lead-last-contacted
|
|
164
|
+
label: Last Contacted
|
|
165
|
+
valueType: date
|
|
166
|
+
inputType: date
|
|
167
|
+
- slug: lead-notes
|
|
168
|
+
label: Notes
|
|
169
|
+
valueType: string
|
|
170
|
+
inputType: textarea
|
|
171
|
+
- slug: lead-ai-summary
|
|
172
|
+
label: AI Summary
|
|
173
|
+
valueType: string
|
|
174
|
+
inputType: textarea
|
|
175
|
+
|
|
176
|
+
# CURATED views — not one per profile
|
|
177
|
+
views:
|
|
178
|
+
- name: Campaigns
|
|
179
|
+
slug: campaigns
|
|
180
|
+
type: kanban
|
|
181
|
+
scopeProfileSlug: campaign
|
|
182
|
+
groupBy: campaign-status
|
|
183
|
+
description: "Campaign kanban board by status."
|
|
184
|
+
- name: Contacts
|
|
185
|
+
slug: contacts
|
|
186
|
+
type: table
|
|
187
|
+
scopeProfileSlug: contact
|
|
188
|
+
description: "Marketing contacts in a table."
|
|
189
|
+
- name: Lead Pipeline
|
|
190
|
+
slug: lead-pipeline
|
|
191
|
+
type: kanban
|
|
192
|
+
scopeProfileSlug: lead
|
|
193
|
+
groupBy: lead-stage
|
|
194
|
+
description: "Lead pipeline kanban by stage."
|
|
195
|
+
|
|
196
|
+
# App reference — no custom app for marketing
|
|
197
|
+
app:
|
|
198
|
+
kind: stored
|
|
199
|
+
cellKey: entity-detail
|
|
200
|
+
|
|
201
|
+
# Layout config for browser sidebar
|
|
202
|
+
layout:
|
|
203
|
+
pinnedApps: [dashboard, data]
|
|
204
|
+
defaultView: Campaigns
|
|
205
|
+
defaultApp: null
|
|
206
|
+
sidebarItems:
|
|
207
|
+
- kind: view
|
|
208
|
+
viewName: Campaigns
|
|
209
|
+
label: Campaigns
|
|
210
|
+
icon: layout-kanban
|
|
211
|
+
- kind: view
|
|
212
|
+
viewName: Contacts
|
|
213
|
+
label: Contacts
|
|
214
|
+
icon: users
|
|
215
|
+
- kind: view
|
|
216
|
+
viewName: Lead Pipeline
|
|
217
|
+
label: Lead Pipeline
|
|
218
|
+
icon: user-plus
|
|
219
|
+
|
|
220
|
+
# Bento dashboard
|
|
221
|
+
bento:
|
|
222
|
+
viewName: Campaigns
|
|
223
|
+
blocks:
|
|
224
|
+
- kind: view
|
|
225
|
+
viewName: Contacts
|
|
226
|
+
pos: { x: 0, y: 0, w: 6, h: 5 }
|
|
227
|
+
- kind: view
|
|
228
|
+
viewName: Lead Pipeline
|
|
229
|
+
pos: { x: 6, y: 0, w: 6, h: 5 }
|
|
230
|
+
|
|
231
|
+
# Seed data
|
|
232
|
+
seedEntities:
|
|
233
|
+
- profileSlug: campaign
|
|
234
|
+
title: Product Launch
|
|
235
|
+
properties:
|
|
236
|
+
campaign-status: planning
|
|
237
|
+
campaign-channel: social
|
|
238
|
+
campaign-goal: "Generate 500 signups in the first week"
|
|
239
|
+
- profileSlug: campaign
|
|
240
|
+
title: Developer Outreach
|
|
241
|
+
properties:
|
|
242
|
+
campaign-status: planning
|
|
243
|
+
campaign-channel: email
|
|
244
|
+
campaign-goal: "Reach 1000 developers via newsletter"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Personal Knowledge workspace template
|
|
2
|
+
# The "normal" default workspace — capture notes, bookmarks, articles; AI organizes.
|
|
3
|
+
# Uses base pod-scoped profiles (note, bookmark, article, project) — no custom app.
|
|
4
|
+
|
|
5
|
+
meta:
|
|
6
|
+
slug: personal
|
|
7
|
+
name: Personal Knowledge
|
|
8
|
+
description: Capture notes, bookmarks, and articles — your AI-organized second brain.
|
|
9
|
+
icon: brain
|
|
10
|
+
color: "#0891B2"
|
|
11
|
+
tags: [personal, knowledge, notes, second-brain]
|
|
12
|
+
isPublic: true
|
|
13
|
+
|
|
14
|
+
workspace:
|
|
15
|
+
name: Personal
|
|
16
|
+
description: Your personal knowledge base — capture anything, let AI organize it.
|
|
17
|
+
proposalId: personal-v1
|
|
18
|
+
subtype: personal
|
|
19
|
+
visibility: pod_visible
|
|
20
|
+
capabilities:
|
|
21
|
+
- knowledge.capture
|
|
22
|
+
- knowledge.organize
|
|
23
|
+
|
|
24
|
+
# Base pod-scoped profiles. Declared so the workspace's views resolve; the
|
|
25
|
+
# profiles themselves already exist pod-wide (no new schema created).
|
|
26
|
+
profiles:
|
|
27
|
+
- slug: note
|
|
28
|
+
displayName: Note
|
|
29
|
+
icon: file-text
|
|
30
|
+
color: amber
|
|
31
|
+
description: A quick note or idea.
|
|
32
|
+
properties:
|
|
33
|
+
- slug: tags
|
|
34
|
+
label: Tags
|
|
35
|
+
valueType: array
|
|
36
|
+
inputType: text
|
|
37
|
+
- slug: bookmark
|
|
38
|
+
displayName: Bookmark
|
|
39
|
+
icon: bookmark
|
|
40
|
+
color: blue
|
|
41
|
+
description: A saved URL or web reference.
|
|
42
|
+
properties:
|
|
43
|
+
- slug: url
|
|
44
|
+
label: URL
|
|
45
|
+
valueType: string
|
|
46
|
+
inputType: url
|
|
47
|
+
- slug: article
|
|
48
|
+
displayName: Article
|
|
49
|
+
icon: book-open
|
|
50
|
+
color: violet
|
|
51
|
+
description: A long-form article or reading-list item.
|
|
52
|
+
properties:
|
|
53
|
+
- slug: readStatus
|
|
54
|
+
label: Status
|
|
55
|
+
valueType: string
|
|
56
|
+
inputType: select
|
|
57
|
+
enumValues: [to-read, reading, read, archived]
|
|
58
|
+
- slug: url
|
|
59
|
+
label: Source URL
|
|
60
|
+
valueType: string
|
|
61
|
+
inputType: url
|
|
62
|
+
- slug: project
|
|
63
|
+
displayName: Project
|
|
64
|
+
icon: folder
|
|
65
|
+
color: green
|
|
66
|
+
description: A project grouping related notes and references.
|
|
67
|
+
properties:
|
|
68
|
+
- slug: status
|
|
69
|
+
label: Status
|
|
70
|
+
valueType: string
|
|
71
|
+
inputType: select
|
|
72
|
+
enumValues: [active, paused, done, archived]
|
|
73
|
+
|
|
74
|
+
views:
|
|
75
|
+
- name: Feed
|
|
76
|
+
type: masonry
|
|
77
|
+
description: Everything you captured, newest first.
|
|
78
|
+
- name: Reading List
|
|
79
|
+
type: table
|
|
80
|
+
scopeProfileSlug: article
|
|
81
|
+
description: Articles to read, in progress, and read.
|
|
82
|
+
- name: Bookmarks
|
|
83
|
+
type: grid
|
|
84
|
+
scopeProfileSlug: bookmark
|
|
85
|
+
description: Saved web references.
|
|
86
|
+
|
|
87
|
+
# No dedicated app — lands on the dashboard/feed (the universal data surface).
|
|
88
|
+
app:
|
|
89
|
+
kind: stored
|
|
90
|
+
cellKey: entity-detail
|
|
91
|
+
|
|
92
|
+
layout:
|
|
93
|
+
pinnedApps: [dashboard, data, chat]
|
|
94
|
+
defaultView: Feed
|
|
95
|
+
defaultApp: null
|
|
96
|
+
sidebarItems:
|
|
97
|
+
- kind: view
|
|
98
|
+
viewName: Feed
|
|
99
|
+
label: Feed
|
|
100
|
+
icon: layout-dashboard
|
|
101
|
+
- kind: view
|
|
102
|
+
viewName: Reading List
|
|
103
|
+
label: Reading List
|
|
104
|
+
icon: book-open
|
|
105
|
+
- kind: view
|
|
106
|
+
viewName: Bookmarks
|
|
107
|
+
label: Bookmarks
|
|
108
|
+
icon: bookmark
|
|
109
|
+
|
|
110
|
+
seedEntities:
|
|
111
|
+
- profileSlug: note
|
|
112
|
+
title: Welcome to your second brain
|
|
113
|
+
properties:
|
|
114
|
+
tags: [getting-started]
|