@synap-core/workspace-templates 0.23.0 → 0.24.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 (42) hide show
  1. package/README.md +50 -24
  2. package/capabilities/stripe.capability.json +1163 -87
  3. package/capabilities/unipile-linkedin.capability.json +30 -7
  4. package/dist/{define-CPS0n8BV.d.ts → define-DqoItRiR.d.ts} +40 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +159 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/wire.d.ts +1 -1
  9. package/package.json +3 -3
  10. package/skills/app-factory-design-review/SKILL.md +8 -2
  11. package/skills/design-critique/SKILL.md +3 -0
  12. package/src/catalog-safety.test.ts +1 -1
  13. package/src/content-os.template.test.ts +27 -0
  14. package/src/content-os.yaml +43 -0
  15. package/src/crm-messages-cadence.template.test.ts +83 -1
  16. package/src/crm.yaml +111 -4
  17. package/src/define.ts +16 -0
  18. package/src/reserved-profile-slugs.test.ts +8 -10
  19. package/src/retired-goal-kinds.test.ts +6 -12
  20. package/src/stripe-capability.test.ts +192 -0
  21. package/src/template-documents.test.ts +158 -0
  22. package/src/templates.ts +92 -4
  23. package/src/types.ts +32 -1
  24. package/src/unipile-linkedin-find-profile.test.ts +183 -0
  25. package/src/validate.ts +81 -0
  26. package/views/bookmark-views-pack.view.json +39 -0
  27. package/views/event-views-pack.view.json +45 -0
  28. package/views/task-views-pack.view.json +53 -0
  29. package/packs/bookmark-views-pack.json +0 -33
  30. package/packs/crm-pack.json +0 -76
  31. package/packs/customer-profile.json +0 -28
  32. package/packs/deep-research.playbook.json +0 -30
  33. package/packs/event-views-pack.json +0 -33
  34. package/packs/habit-profile.json +0 -27
  35. package/packs/hr-pack.json +0 -54
  36. package/packs/invoice-profile.json +0 -28
  37. package/packs/knowledge-base-pack.json +0 -56
  38. package/packs/meeting-profile.json +0 -29
  39. package/packs/product-profile.json +0 -30
  40. package/packs/project-management-pack.json +0 -49
  41. package/packs/recipe-profile.json +0 -29
  42. package/packs/task-views-pack.json +0 -39
@@ -1,54 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "hr-pack",
4
- "icon": "users",
5
- "color": "#F59E0B",
6
- "tags": ["hr", "team", "employees", "departments"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "team-member",
13
- "displayName": "Team Member",
14
- "icon": "user",
15
- "color": "#F59E0B",
16
- "description": "Team members and employees",
17
- "scope": "workspace",
18
- "parentProfileSlug": "person",
19
- "properties": [
20
- { "slug": "role", "valueType": "string", "required": true, "label": "Role / Title" },
21
- { "slug": "department", "valueType": "string", "label": "Department" },
22
- { "slug": "start-date", "valueType": "date", "label": "Start Date" },
23
- { "slug": "location", "valueType": "string", "label": "Location" },
24
- { "slug": "skills", "valueType": "array", "label": "Skills" },
25
- { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["active", "on-leave", "offboarded"] }
26
- ]
27
- },
28
- {
29
- "slug": "department",
30
- "displayName": "Department",
31
- "icon": "building-2",
32
- "color": "#6366F1",
33
- "description": "Organizational departments and teams",
34
- "scope": "workspace",
35
- "properties": [
36
- { "slug": "head", "valueType": "string", "label": "Department Head" },
37
- { "slug": "headcount", "valueType": "number", "label": "Headcount", "constraints": { "min": 0 } },
38
- { "slug": "budget", "valueType": "number", "label": "Annual Budget", "constraints": { "min": 0 } },
39
- { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" }
40
- ]
41
- }
42
- ],
43
- "views": [
44
- {
45
- "name": "Team",
46
- "type": "table",
47
- "scopeProfileSlug": "team-member",
48
- "config": {}
49
- }
50
- ],
51
- "entityLinks": [
52
- { "sourceProfileSlug": "team-member", "targetProfileSlug": "department", "type": "belongs_to", "label": "In department" }
53
- ]
54
- }
@@ -1,28 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "invoice-profile",
4
- "icon": "receipt",
5
- "color": "#10B981",
6
- "tags": ["invoice", "billing", "finance"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "invoice",
13
- "displayName": "Invoice",
14
- "icon": "receipt",
15
- "color": "#10B981",
16
- "description": "Invoice with line items and payment tracking",
17
- "scope": "workspace",
18
- "properties": [
19
- { "slug": "invoice-number", "valueType": "string", "required": true, "label": "Invoice Number" },
20
- { "slug": "amount", "valueType": "number", "required": true, "label": "Amount", "constraints": { "min": 0 } },
21
- { "slug": "currency", "valueType": "string", "label": "Currency", "placeholder": "USD" },
22
- { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["draft", "sent", "paid", "overdue", "cancelled"] },
23
- { "slug": "due-date", "valueType": "date", "label": "Due Date" },
24
- { "slug": "issued-date", "valueType": "date", "label": "Issued Date" }
25
- ]
26
- }
27
- ]
28
- }
@@ -1,56 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "knowledge-base-pack",
4
- "icon": "book-open",
5
- "color": "#06B6D4",
6
- "tags": ["knowledge", "articles", "documentation", "resources"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "article",
13
- "displayName": "Article",
14
- "icon": "newspaper",
15
- "color": "#8B5CF6",
16
- "description": "Knowledge base articles and documentation",
17
- "scope": "workspace",
18
- "parentProfileSlug": "bookmark",
19
- "properties": [
20
- { "slug": "author", "valueType": "string", "label": "Author" },
21
- { "slug": "published-at", "valueType": "date", "label": "Published" },
22
- { "slug": "category", "valueType": "string", "label": "Category" },
23
- { "slug": "tags", "valueType": "array", "label": "Tags" },
24
- { "slug": "read-time", "valueType": "number", "label": "Read Time (min)", "constraints": { "min": 0 } }
25
- ]
26
- },
27
- {
28
- "slug": "resource",
29
- "displayName": "Resource",
30
- "icon": "link",
31
- "color": "#10B981",
32
- "description": "External links, tools, and references",
33
- "scope": "workspace",
34
- "properties": [
35
- { "slug": "url", "valueType": "string", "required": true, "label": "URL", "inputType": "url" },
36
- { "slug": "category", "valueType": "string", "label": "Category" },
37
- { "slug": "rating", "valueType": "number", "label": "Rating", "constraints": { "min": 0, "max": 5 } },
38
- { "slug": "notes", "valueType": "string", "label": "Notes", "inputType": "textarea" }
39
- ]
40
- }
41
- ],
42
- "views": [
43
- {
44
- "name": "Articles",
45
- "type": "grid",
46
- "scopeProfileSlug": "article",
47
- "config": {}
48
- },
49
- {
50
- "name": "Resources",
51
- "type": "list",
52
- "scopeProfileSlug": "resource",
53
- "config": {}
54
- }
55
- ]
56
- }
@@ -1,29 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "meeting-profile",
4
- "icon": "video",
5
- "color": "#8B5CF6",
6
- "tags": ["meeting", "calendar", "scheduling"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "meeting",
13
- "displayName": "Meeting",
14
- "icon": "video",
15
- "color": "#8B5CF6",
16
- "description": "Meeting with attendees, agenda, and notes",
17
- "scope": "workspace",
18
- "properties": [
19
- { "slug": "title", "valueType": "string", "required": true, "label": "Title" },
20
- { "slug": "start-date", "valueType": "date", "required": true, "label": "Start Time" },
21
- { "slug": "end-date", "valueType": "date", "label": "End Time" },
22
- { "slug": "location", "valueType": "string", "label": "Location / Link" },
23
- { "slug": "attendees", "valueType": "array", "label": "Attendees" },
24
- { "slug": "agenda", "valueType": "string", "label": "Agenda", "inputType": "textarea" },
25
- { "slug": "notes", "valueType": "string", "label": "Meeting Notes", "inputType": "textarea" }
26
- ]
27
- }
28
- ]
29
- }
@@ -1,30 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "product-profile",
4
- "icon": "package",
5
- "color": "#6366F1",
6
- "tags": ["product", "inventory", "ecommerce"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "product",
13
- "displayName": "Product",
14
- "icon": "package",
15
- "color": "#6366F1",
16
- "description": "Product with pricing, SKU, and inventory",
17
- "scope": "workspace",
18
- "properties": [
19
- { "slug": "name", "valueType": "string", "required": true, "label": "Product Name" },
20
- { "slug": "sku", "valueType": "string", "label": "SKU" },
21
- { "slug": "price", "valueType": "number", "label": "Price", "constraints": { "min": 0 } },
22
- { "slug": "currency", "valueType": "string", "label": "Currency", "placeholder": "USD" },
23
- { "slug": "category", "valueType": "string", "label": "Category" },
24
- { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["draft", "active", "discontinued"] },
25
- { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" },
26
- { "slug": "image", "valueType": "string", "label": "Image URL" }
27
- ]
28
- }
29
- ]
30
- }
@@ -1,49 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "project-management-pack",
4
- "icon": "kanban-square",
5
- "color": "#8B5CF6",
6
- "tags": ["projects", "tasks", "milestones", "team"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "task",
13
- "displayName": "Task",
14
- "icon": "check-square",
15
- "color": "#3B82F6",
16
- "description": "Work items and action items",
17
- "scope": "workspace",
18
- "properties": [
19
- { "slug": "status", "valueType": "string", "required": true, "label": "Status", "inputType": "select", "enumValues": ["todo", "in-progress", "review", "done", "cancelled"] },
20
- { "slug": "priority", "valueType": "string", "label": "Priority", "inputType": "select", "enumValues": ["low", "medium", "high", "urgent"] },
21
- { "slug": "due-date", "valueType": "date", "label": "Due Date" },
22
- { "slug": "assignee", "valueType": "string", "label": "Assignee" },
23
- { "slug": "estimate", "valueType": "number", "label": "Estimate (hours)", "constraints": { "min": 0 } },
24
- { "slug": "tags", "valueType": "array", "label": "Labels" }
25
- ]
26
- },
27
- {
28
- "slug": "milestone",
29
- "displayName": "Milestone",
30
- "icon": "flag",
31
- "color": "#F59E0B",
32
- "description": "Key deliverables and checkpoints",
33
- "scope": "workspace",
34
- "properties": [
35
- { "slug": "due-date", "valueType": "date", "required": true, "label": "Target Date" },
36
- { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["upcoming", "in-progress", "completed", "missed"] },
37
- { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" }
38
- ]
39
- }
40
- ],
41
- "views": [
42
- {
43
- "name": "Task Board",
44
- "type": "kanban",
45
- "scopeProfileSlug": "task",
46
- "config": { "groupByField": "status" }
47
- }
48
- ]
49
- }
@@ -1,29 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "recipe-profile",
4
- "icon": "chef-hat",
5
- "color": "#F59E0B",
6
- "tags": ["recipe", "cooking", "food"],
7
- "requiredTier": null,
8
- "isPublic": true
9
- },
10
- "profiles": [
11
- {
12
- "slug": "recipe",
13
- "displayName": "Recipe",
14
- "icon": "chef-hat",
15
- "color": "#F59E0B",
16
- "description": "Recipe with ingredients, steps, and nutrition",
17
- "scope": "workspace",
18
- "properties": [
19
- { "slug": "title", "valueType": "string", "required": true, "label": "Recipe Name" },
20
- { "slug": "cuisine", "valueType": "string", "label": "Cuisine" },
21
- { "slug": "prep-time", "valueType": "number", "label": "Prep Time (min)", "constraints": { "min": 0 } },
22
- { "slug": "cook-time", "valueType": "number", "label": "Cook Time (min)", "constraints": { "min": 0 } },
23
- { "slug": "servings", "valueType": "number", "label": "Servings", "constraints": { "min": 1 } },
24
- { "slug": "ingredients", "valueType": "array", "label": "Ingredients" },
25
- { "slug": "tags", "valueType": "array", "label": "Tags" }
26
- ]
27
- }
28
- ]
29
- }
@@ -1,39 +0,0 @@
1
- {
2
- "_meta": {
3
- "slug": "task-views-pack",
4
- "displayName": "Task Views",
5
- "icon": "layout-grid",
6
- "color": "#3B82F6",
7
- "tags": ["tasks", "kanban", "views", "productivity"],
8
- "requiredTier": null,
9
- "isPublic": true
10
- },
11
- "description": "Four ready-made task views: a Kanban board by status, a priority matrix, a due-date calendar and a table of all tasks.",
12
- "profiles": [],
13
- "views": [
14
- {
15
- "name": "Task Board",
16
- "type": "kanban",
17
- "scopeProfileSlug": "task",
18
- "config": { "groupByField": "status" }
19
- },
20
- {
21
- "name": "Priority Matrix",
22
- "type": "matrix",
23
- "scopeProfileSlug": "task",
24
- "config": { "xField": "priority", "yField": "status" }
25
- },
26
- {
27
- "name": "Task Calendar",
28
- "type": "calendar",
29
- "scopeProfileSlug": "task",
30
- "config": { "dateField": "dueDate" }
31
- },
32
- {
33
- "name": "All Tasks",
34
- "type": "table",
35
- "scopeProfileSlug": "task",
36
- "config": {}
37
- }
38
- ]
39
- }