stagent 0.6.3 → 0.7.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.
- package/README.md +21 -2
- package/dist/cli.js +226 -1
- package/docs/.coverage-gaps.json +66 -16
- package/docs/.last-generated +1 -1
- package/docs/features/dashboard-kanban.md +13 -7
- package/docs/features/settings.md +15 -3
- package/docs/features/tables.md +122 -0
- package/docs/index.md +3 -2
- package/docs/journeys/developer.md +26 -16
- package/docs/journeys/personal-use.md +23 -9
- package/docs/journeys/power-user.md +40 -14
- package/docs/journeys/work-use.md +43 -15
- package/docs/manifest.json +27 -17
- package/package.json +3 -1
- package/src/app/api/chat/entities/search/route.ts +12 -3
- package/src/app/api/projects/[id]/route.ts +37 -0
- package/src/app/api/projects/__tests__/delete-project.test.ts +12 -0
- package/src/app/api/snapshots/[id]/restore/route.ts +62 -0
- package/src/app/api/snapshots/[id]/route.ts +44 -0
- package/src/app/api/snapshots/route.ts +54 -0
- package/src/app/api/snapshots/settings/route.ts +67 -0
- package/src/app/api/tables/[id]/charts/[chartId]/route.ts +89 -0
- package/src/app/api/tables/[id]/charts/route.ts +72 -0
- package/src/app/api/tables/[id]/columns/route.ts +70 -0
- package/src/app/api/tables/[id]/export/route.ts +94 -0
- package/src/app/api/tables/[id]/history/route.ts +15 -0
- package/src/app/api/tables/[id]/import/route.ts +111 -0
- package/src/app/api/tables/[id]/route.ts +86 -0
- package/src/app/api/tables/[id]/rows/[rowId]/history/route.ts +32 -0
- package/src/app/api/tables/[id]/rows/[rowId]/route.ts +51 -0
- package/src/app/api/tables/[id]/rows/route.ts +101 -0
- package/src/app/api/tables/[id]/triggers/[triggerId]/route.ts +65 -0
- package/src/app/api/tables/[id]/triggers/route.ts +122 -0
- package/src/app/api/tables/route.ts +65 -0
- package/src/app/api/tables/templates/route.ts +92 -0
- package/src/app/settings/page.tsx +2 -0
- package/src/app/tables/[id]/page.tsx +67 -0
- package/src/app/tables/page.tsx +21 -0
- package/src/app/tables/templates/page.tsx +19 -0
- package/src/components/chat/chat-table-result.tsx +139 -0
- package/src/components/documents/document-browser.tsx +1 -1
- package/src/components/projects/project-form-sheet.tsx +3 -27
- package/src/components/schedules/schedule-form.tsx +5 -27
- package/src/components/settings/data-management-section.tsx +17 -12
- package/src/components/settings/database-snapshots-section.tsx +469 -0
- package/src/components/shared/app-sidebar.tsx +2 -0
- package/src/components/shared/document-picker-sheet.tsx +214 -11
- package/src/components/tables/table-browser.tsx +234 -0
- package/src/components/tables/table-cell-editor.tsx +226 -0
- package/src/components/tables/table-chart-builder.tsx +288 -0
- package/src/components/tables/table-chart-view.tsx +146 -0
- package/src/components/tables/table-column-header.tsx +103 -0
- package/src/components/tables/table-column-sheet.tsx +331 -0
- package/src/components/tables/table-create-sheet.tsx +240 -0
- package/src/components/tables/table-detail-sheet.tsx +144 -0
- package/src/components/tables/table-detail-tabs.tsx +278 -0
- package/src/components/tables/table-grid.tsx +61 -0
- package/src/components/tables/table-history-tab.tsx +148 -0
- package/src/components/tables/table-import-wizard.tsx +542 -0
- package/src/components/tables/table-list-table.tsx +95 -0
- package/src/components/tables/table-relation-combobox.tsx +217 -0
- package/src/components/tables/table-spreadsheet.tsx +499 -0
- package/src/components/tables/table-template-gallery.tsx +162 -0
- package/src/components/tables/table-template-preview.tsx +219 -0
- package/src/components/tables/table-toolbar.tsx +79 -0
- package/src/components/tables/table-triggers-tab.tsx +446 -0
- package/src/components/tables/types.ts +6 -0
- package/src/components/tables/use-spreadsheet-keys.ts +171 -0
- package/src/components/tables/utils.ts +29 -0
- package/src/components/tasks/task-create-panel.tsx +5 -31
- package/src/components/tasks/task-edit-dialog.tsx +5 -27
- package/src/components/workflows/workflow-form-view.tsx +5 -29
- package/src/components/workflows/workflow-status-view.tsx +1 -1
- package/src/instrumentation.ts +3 -0
- package/src/lib/agents/__tests__/claude-agent.test.ts +5 -1
- package/src/lib/agents/claude-agent.ts +3 -1
- package/src/lib/agents/runtime/anthropic-direct.ts +29 -0
- package/src/lib/agents/runtime/openai-direct.ts +29 -0
- package/src/lib/chat/stagent-tools.ts +2 -0
- package/src/lib/chat/tool-catalog.ts +34 -0
- package/src/lib/chat/tools/table-tools.ts +955 -0
- package/src/lib/constants/table-status.ts +68 -0
- package/src/lib/data/__tests__/clear.test.ts +1 -1
- package/src/lib/data/clear.ts +45 -0
- package/src/lib/data/seed-data/__tests__/profiles.test.ts +28 -23
- package/src/lib/data/seed-data/conversations.ts +350 -42
- package/src/lib/data/seed-data/documents.ts +564 -591
- package/src/lib/data/seed-data/learned-context.ts +101 -22
- package/src/lib/data/seed-data/notifications.ts +344 -70
- package/src/lib/data/seed-data/profile-test-results.ts +92 -11
- package/src/lib/data/seed-data/profiles.ts +144 -46
- package/src/lib/data/seed-data/projects.ts +50 -18
- package/src/lib/data/seed-data/repo-imports.ts +28 -13
- package/src/lib/data/seed-data/schedules.ts +208 -41
- package/src/lib/data/seed-data/table-templates.ts +234 -0
- package/src/lib/data/seed-data/tasks.ts +614 -116
- package/src/lib/data/seed-data/usage-ledger.ts +182 -103
- package/src/lib/data/seed-data/user-tables.ts +203 -0
- package/src/lib/data/seed-data/views.ts +52 -7
- package/src/lib/data/seed-data/workflows.ts +231 -84
- package/src/lib/data/seed.ts +55 -14
- package/src/lib/data/tables.ts +417 -0
- package/src/lib/db/bootstrap.ts +227 -0
- package/src/lib/db/index.ts +9 -0
- package/src/lib/db/migrations/0019_add_tables_feature.sql +160 -0
- package/src/lib/db/migrations/0020_add_table_triggers.sql +19 -0
- package/src/lib/db/migrations/0021_add_row_history.sql +15 -0
- package/src/lib/db/schema.ts +368 -0
- package/src/lib/snapshots/auto-backup.ts +132 -0
- package/src/lib/snapshots/retention.ts +64 -0
- package/src/lib/snapshots/snapshot-manager.ts +429 -0
- package/src/lib/tables/computed.ts +61 -0
- package/src/lib/tables/context-builder.ts +139 -0
- package/src/lib/tables/formula-engine.ts +415 -0
- package/src/lib/tables/history.ts +115 -0
- package/src/lib/tables/import.ts +343 -0
- package/src/lib/tables/query-builder.ts +152 -0
- package/src/lib/tables/trigger-evaluator.ts +146 -0
- package/src/lib/tables/types.ts +141 -0
- package/src/lib/tables/validation.ts +119 -0
- package/src/lib/utils/stagent-paths.ts +20 -0
- package/tsconfig.json +3 -1
- /package/docs/features/{playbook.md → user-guide.md} +0 -0
|
@@ -1,339 +1,837 @@
|
|
|
1
|
+
import { SAMPLE_PROFILE_IDS } from "./profiles";
|
|
2
|
+
|
|
1
3
|
export interface TaskSeed {
|
|
2
4
|
id: string;
|
|
3
5
|
projectId: string;
|
|
4
6
|
title: string;
|
|
5
7
|
description: string;
|
|
6
|
-
status: "planned" | "queued" | "running" | "completed" | "failed";
|
|
8
|
+
status: "planned" | "queued" | "running" | "completed" | "failed" | "cancelled";
|
|
7
9
|
priority: number;
|
|
8
10
|
result: string | null;
|
|
11
|
+
agentProfile: string | null;
|
|
12
|
+
sourceType: "manual" | "scheduled" | "heartbeat" | "workflow" | null;
|
|
13
|
+
workflowId: string | null;
|
|
14
|
+
scheduleId: string | null;
|
|
9
15
|
createdAt: Date;
|
|
10
16
|
updatedAt: Date;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
|
-
export function createTasks(
|
|
19
|
+
export function createTasks(
|
|
20
|
+
projectIds: string[],
|
|
21
|
+
workflowIds: string[],
|
|
22
|
+
scheduleIds: string[]
|
|
23
|
+
): TaskSeed[] {
|
|
14
24
|
const now = Date.now();
|
|
15
25
|
const DAY = 86_400_000;
|
|
16
26
|
const HOUR = 3_600_000;
|
|
17
|
-
const [p1, p2, p3, p4, p5] = projectIds;
|
|
27
|
+
const [p1, p2, p3, p4, p5, p6, p7, p8] = projectIds;
|
|
28
|
+
const [w1, w2, w3, w4, w5, w6, w7, w8] = workflowIds;
|
|
29
|
+
const [s1, s2, s3, s4, s5, _s6, s7, s8] = scheduleIds;
|
|
18
30
|
|
|
19
31
|
return [
|
|
20
|
-
//
|
|
32
|
+
// ── P1: Product Launch — AI Copilot v2 (6 tasks) ────────────────
|
|
21
33
|
{
|
|
22
34
|
id: crypto.randomUUID(),
|
|
23
35
|
projectId: p1,
|
|
24
|
-
title: "
|
|
36
|
+
title: "Competitive analysis: 5 AI copilot products",
|
|
25
37
|
description:
|
|
26
|
-
"
|
|
38
|
+
"Analyze Cursor, Windsurf, Cody, Tabnine, and Copilot — document positioning, pricing, feature gaps, and messaging angles",
|
|
27
39
|
status: "completed",
|
|
28
40
|
priority: 3,
|
|
29
41
|
result:
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
42
|
+
"Competitive matrix complete. Key insight: all 5 competitors lead with speed/productivity messaging. None emphasize orchestration or governance. Positioning gap: 'AI that runs your business, not just your code.' Pricing ranges $10-40/seat/mo — our $149/mo flat positions us as a team tool, not per-seat. Cursor and Windsurf have the strongest brand but weakest multi-agent story.",
|
|
43
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
44
|
+
sourceType: "workflow",
|
|
45
|
+
workflowId: w1,
|
|
46
|
+
scheduleId: null,
|
|
47
|
+
createdAt: new Date(now - 20 * DAY),
|
|
48
|
+
updatedAt: new Date(now - 18 * DAY),
|
|
33
49
|
},
|
|
34
50
|
{
|
|
35
51
|
id: crypto.randomUUID(),
|
|
36
52
|
projectId: p1,
|
|
37
|
-
title: "
|
|
53
|
+
title: "Write 3 hero headline variants + email sequence",
|
|
38
54
|
description:
|
|
39
|
-
"
|
|
55
|
+
"Draft headline variants for the launch page plus a 3-touch email sequence targeting mid-market ops teams",
|
|
40
56
|
status: "completed",
|
|
41
57
|
priority: 2,
|
|
42
58
|
result:
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
59
|
+
"Variant A: \"Your Business, Run by AI\" (orchestration-led). Variant B: \"Stop Stitching — Start Orchestrating\" (pain-led). Variant C: \"52 Agents. One Command Center.\" (scale-led). Email sequence: Day 0 announcement, Day 3 feature deep-dive, Day 7 case study. Recommended: A/B test A vs B — orchestration resonates with ops buyers, pain-led converts better on cold traffic.",
|
|
60
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
61
|
+
sourceType: "workflow",
|
|
62
|
+
workflowId: w1,
|
|
63
|
+
scheduleId: null,
|
|
64
|
+
createdAt: new Date(now - 17 * DAY),
|
|
65
|
+
updatedAt: new Date(now - 15 * DAY),
|
|
46
66
|
},
|
|
47
67
|
{
|
|
48
68
|
id: crypto.randomUUID(),
|
|
49
69
|
projectId: p1,
|
|
50
|
-
title: "
|
|
70
|
+
title: "Build responsive launch landing page",
|
|
51
71
|
description:
|
|
52
|
-
"
|
|
72
|
+
"Implement hero section, feature grid, pricing table, and social proof as responsive React components with OG tags",
|
|
53
73
|
status: "running",
|
|
54
74
|
priority: 2,
|
|
55
75
|
result: null,
|
|
56
|
-
|
|
76
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
77
|
+
sourceType: "workflow",
|
|
78
|
+
workflowId: w1,
|
|
79
|
+
scheduleId: null,
|
|
80
|
+
createdAt: new Date(now - 14 * DAY),
|
|
57
81
|
updatedAt: new Date(now - 2 * HOUR),
|
|
58
82
|
},
|
|
59
83
|
{
|
|
60
84
|
id: crypto.randomUUID(),
|
|
61
85
|
projectId: p1,
|
|
62
|
-
title: "
|
|
86
|
+
title: "Configure A/B test for hero variants",
|
|
63
87
|
description:
|
|
64
|
-
"
|
|
88
|
+
"Set up split test for headline variants A vs B with conversion tracking — 7-day window, 95% confidence",
|
|
89
|
+
status: "queued",
|
|
90
|
+
priority: 1,
|
|
91
|
+
result: null,
|
|
92
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
93
|
+
sourceType: "manual",
|
|
94
|
+
workflowId: null,
|
|
95
|
+
scheduleId: null,
|
|
96
|
+
createdAt: new Date(now - 10 * DAY),
|
|
97
|
+
updatedAt: new Date(now - 10 * DAY),
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: crypto.randomUUID(),
|
|
101
|
+
projectId: p1,
|
|
102
|
+
title: "Draft Product Hunt launch copy",
|
|
103
|
+
description:
|
|
104
|
+
"Write tagline, description, first comment, and maker story for PH launch day",
|
|
65
105
|
status: "planned",
|
|
66
106
|
priority: 1,
|
|
67
107
|
result: null,
|
|
108
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
109
|
+
sourceType: "manual",
|
|
110
|
+
workflowId: null,
|
|
111
|
+
scheduleId: null,
|
|
68
112
|
createdAt: new Date(now - 5 * DAY),
|
|
69
113
|
updatedAt: new Date(now - 5 * DAY),
|
|
70
114
|
},
|
|
71
115
|
{
|
|
72
116
|
id: crypto.randomUUID(),
|
|
73
117
|
projectId: p1,
|
|
74
|
-
title: "
|
|
118
|
+
title: "Generate social media launch calendar",
|
|
75
119
|
description:
|
|
76
|
-
"
|
|
77
|
-
status: "
|
|
78
|
-
priority:
|
|
120
|
+
"Create a 2-week social content calendar: LinkedIn posts, Twitter threads, and short-form video scripts",
|
|
121
|
+
status: "failed",
|
|
122
|
+
priority: 1,
|
|
79
123
|
result: null,
|
|
80
|
-
|
|
81
|
-
|
|
124
|
+
agentProfile: SAMPLE_PROFILE_IDS[0],
|
|
125
|
+
sourceType: "scheduled",
|
|
126
|
+
workflowId: null,
|
|
127
|
+
scheduleId: s1,
|
|
128
|
+
createdAt: new Date(now - 8 * DAY),
|
|
129
|
+
updatedAt: new Date(now - 7 * DAY),
|
|
82
130
|
},
|
|
83
131
|
|
|
84
|
-
//
|
|
132
|
+
// ── P2: Content Engine (6 tasks) ────────────────────────────────
|
|
85
133
|
{
|
|
86
134
|
id: crypto.randomUUID(),
|
|
87
135
|
projectId: p2,
|
|
88
|
-
title: "
|
|
136
|
+
title: "Keyword research: 'AI agent orchestration'",
|
|
89
137
|
description:
|
|
90
|
-
"
|
|
138
|
+
"Research keyword cluster around AI agent orchestration — volume, difficulty, SERP features, content gaps",
|
|
91
139
|
status: "completed",
|
|
92
140
|
priority: 3,
|
|
93
141
|
result:
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
142
|
+
"Primary keyword: 'AI agent orchestration' (2,400 mo/vol, KD 38). Cluster: 'multi-agent framework' (1,800), 'AI agent platform' (4,200), 'agentic AI tools' (3,100). Content gap: no comprehensive comparison post exists. Top opportunity: '2026 Guide to AI Agent Orchestration Platforms' — estimated 8K organic visits/mo at position 3.",
|
|
143
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
144
|
+
sourceType: "workflow",
|
|
145
|
+
workflowId: w2,
|
|
146
|
+
scheduleId: null,
|
|
147
|
+
createdAt: new Date(now - 16 * DAY),
|
|
148
|
+
updatedAt: new Date(now - 14 * DAY),
|
|
97
149
|
},
|
|
98
150
|
{
|
|
99
151
|
id: crypto.randomUUID(),
|
|
100
152
|
projectId: p2,
|
|
101
|
-
title: "Write
|
|
153
|
+
title: "Write article: 'AI Agent Orchestration Guide'",
|
|
102
154
|
description:
|
|
103
|
-
"
|
|
155
|
+
"1,800-word SEO article with 7 H2 sections, 3 internal links, and embedded comparison table",
|
|
104
156
|
status: "completed",
|
|
105
157
|
priority: 2,
|
|
106
158
|
result:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
159
|
+
"Article published at /blog/ai-agent-orchestration-guide. 1,920 words, Flesch-Kincaid 42, keyword density 1.4%. Includes comparison table (Stagent vs CrewAI vs AutoGen vs LangGraph), 3 internal links, and 'Start Free' CTA. LinkedIn hook and newsletter intro drafted.",
|
|
160
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
161
|
+
sourceType: "workflow",
|
|
162
|
+
workflowId: w2,
|
|
163
|
+
scheduleId: null,
|
|
164
|
+
createdAt: new Date(now - 13 * DAY),
|
|
165
|
+
updatedAt: new Date(now - 10 * DAY),
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: crypto.randomUUID(),
|
|
169
|
+
projectId: p2,
|
|
170
|
+
title: "Draft LinkedIn thought leadership series",
|
|
171
|
+
description:
|
|
172
|
+
"Write 5 LinkedIn posts: AI ops mental models, agent governance, multi-runtime architecture",
|
|
173
|
+
status: "completed",
|
|
174
|
+
priority: 2,
|
|
175
|
+
result:
|
|
176
|
+
"5-post series complete. Post 1: 'Why your AI agents need a manager' (narrative hook). Post 2: 'The governance gap in agentic AI' (problem framing). Post 3: '3 patterns for multi-agent workflows' (tactical). Post 4: 'Local-first AI — why it matters' (contrarian). Post 5: 'We gave 52 agents one command center' (product story). Scheduled: Mon/Wed/Fri 8:30am ET.",
|
|
177
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
178
|
+
sourceType: "scheduled",
|
|
179
|
+
workflowId: null,
|
|
180
|
+
scheduleId: s2,
|
|
181
|
+
createdAt: new Date(now - 11 * DAY),
|
|
182
|
+
updatedAt: new Date(now - 8 * DAY),
|
|
110
183
|
},
|
|
111
184
|
{
|
|
112
185
|
id: crypto.randomUUID(),
|
|
113
186
|
projectId: p2,
|
|
114
|
-
title: "
|
|
187
|
+
title: "Write weekly newsletter edition #14",
|
|
115
188
|
description:
|
|
116
|
-
"
|
|
189
|
+
"Curate top 5 AI agent news items, write editorial intro, include 1 product update",
|
|
117
190
|
status: "running",
|
|
118
191
|
priority: 2,
|
|
119
192
|
result: null,
|
|
120
|
-
|
|
193
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
194
|
+
sourceType: "manual",
|
|
195
|
+
workflowId: null,
|
|
196
|
+
scheduleId: null,
|
|
197
|
+
createdAt: new Date(now - 3 * DAY),
|
|
121
198
|
updatedAt: new Date(now - 1 * HOUR),
|
|
122
199
|
},
|
|
123
200
|
{
|
|
124
201
|
id: crypto.randomUUID(),
|
|
125
202
|
projectId: p2,
|
|
126
|
-
title: "
|
|
203
|
+
title: "Create content performance dashboard",
|
|
127
204
|
description:
|
|
128
|
-
"
|
|
205
|
+
"Build a tracking table: article URL, publish date, organic sessions, backlinks, conversions",
|
|
129
206
|
status: "queued",
|
|
130
207
|
priority: 1,
|
|
131
208
|
result: null,
|
|
132
|
-
|
|
133
|
-
|
|
209
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
210
|
+
sourceType: "manual",
|
|
211
|
+
workflowId: null,
|
|
212
|
+
scheduleId: null,
|
|
213
|
+
createdAt: new Date(now - 2 * DAY),
|
|
214
|
+
updatedAt: new Date(now - 2 * DAY),
|
|
134
215
|
},
|
|
135
216
|
{
|
|
136
217
|
id: crypto.randomUUID(),
|
|
137
218
|
projectId: p2,
|
|
138
|
-
title: "
|
|
219
|
+
title: "Research competitor content strategies",
|
|
139
220
|
description:
|
|
140
|
-
"
|
|
221
|
+
"Analyze content output of CrewAI, LangChain, and AutoGen — topics, frequency, engagement",
|
|
141
222
|
status: "planned",
|
|
142
223
|
priority: 0,
|
|
143
224
|
result: null,
|
|
144
|
-
|
|
145
|
-
|
|
225
|
+
agentProfile: SAMPLE_PROFILE_IDS[1],
|
|
226
|
+
sourceType: "manual",
|
|
227
|
+
workflowId: null,
|
|
228
|
+
scheduleId: null,
|
|
229
|
+
createdAt: new Date(now - 1 * DAY),
|
|
230
|
+
updatedAt: new Date(now - 1 * DAY),
|
|
146
231
|
},
|
|
147
232
|
|
|
148
|
-
//
|
|
233
|
+
// ── P3: Customer Success Automation (6 tasks) ───────────────────
|
|
149
234
|
{
|
|
150
235
|
id: crypto.randomUUID(),
|
|
151
236
|
projectId: p3,
|
|
152
|
-
title: "
|
|
237
|
+
title: "Build onboarding email sequence",
|
|
153
238
|
description:
|
|
154
|
-
"
|
|
239
|
+
"Create 3-email welcome flow: Day 0 quick start, Day 2 feature spotlight, Day 5 check-in",
|
|
155
240
|
status: "completed",
|
|
156
241
|
priority: 3,
|
|
157
242
|
result:
|
|
158
|
-
"
|
|
159
|
-
|
|
160
|
-
|
|
243
|
+
"Onboarding sequence live. Day 0: Welcome + quick start guide (42% open rate). Day 2: 'Your first agent in 5 minutes' feature walkthrough (38% open). Day 5: 'How are things going?' with direct reply CTA (28% open, 12% reply rate). Segment: Pro plan users get extended sequence with API docs.",
|
|
244
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
245
|
+
sourceType: "workflow",
|
|
246
|
+
workflowId: w3,
|
|
247
|
+
scheduleId: null,
|
|
248
|
+
createdAt: new Date(now - 15 * DAY),
|
|
249
|
+
updatedAt: new Date(now - 12 * DAY),
|
|
161
250
|
},
|
|
162
251
|
{
|
|
163
252
|
id: crypto.randomUUID(),
|
|
164
253
|
projectId: p3,
|
|
165
|
-
title: "
|
|
254
|
+
title: "Analyze churn signals for Q1 cohort",
|
|
166
255
|
description:
|
|
167
|
-
"Pull
|
|
168
|
-
status: "
|
|
256
|
+
"Pull usage, NPS, and support data for Jan-Mar signups — score each account green/yellow/red",
|
|
257
|
+
status: "completed",
|
|
258
|
+
priority: 3,
|
|
259
|
+
result:
|
|
260
|
+
"Q1 cohort analysis (47 accounts): 31 green (66%), 11 yellow (23%), 5 red (11%). Red accounts: 3 have login gaps >14 days, 2 filed >5 support tickets. Common churn signal: no workflow created by Day 7 (82% correlation with churn). Recommendation: trigger a CSM call for any account without a workflow by Day 5.",
|
|
261
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
262
|
+
sourceType: "heartbeat",
|
|
263
|
+
workflowId: null,
|
|
264
|
+
scheduleId: s3,
|
|
265
|
+
createdAt: new Date(now - 12 * DAY),
|
|
266
|
+
updatedAt: new Date(now - 9 * DAY),
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: crypto.randomUUID(),
|
|
270
|
+
projectId: p3,
|
|
271
|
+
title: "Draft intervention playbook for at-risk accounts",
|
|
272
|
+
description:
|
|
273
|
+
"Create response templates for the 3 main churn signals: low usage, high tickets, NPS drop",
|
|
274
|
+
status: "running",
|
|
169
275
|
priority: 2,
|
|
170
276
|
result: null,
|
|
277
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
278
|
+
sourceType: "manual",
|
|
279
|
+
workflowId: null,
|
|
280
|
+
scheduleId: null,
|
|
171
281
|
createdAt: new Date(now - 7 * DAY),
|
|
172
|
-
updatedAt: new Date(now -
|
|
282
|
+
updatedAt: new Date(now - 3 * HOUR),
|
|
173
283
|
},
|
|
174
284
|
{
|
|
175
285
|
id: crypto.randomUUID(),
|
|
176
286
|
projectId: p3,
|
|
177
|
-
title: "
|
|
287
|
+
title: "Monitor NPS survey responses",
|
|
178
288
|
description:
|
|
179
|
-
"
|
|
180
|
-
status: "
|
|
289
|
+
"Process latest NPS batch — flag detractors, route promoters for testimonial ask, update health scores",
|
|
290
|
+
status: "running",
|
|
181
291
|
priority: 2,
|
|
182
292
|
result: null,
|
|
183
|
-
|
|
184
|
-
|
|
293
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
294
|
+
sourceType: "heartbeat",
|
|
295
|
+
workflowId: null,
|
|
296
|
+
scheduleId: s3,
|
|
297
|
+
createdAt: new Date(now - 4 * DAY),
|
|
298
|
+
updatedAt: new Date(now - 2 * HOUR),
|
|
185
299
|
},
|
|
186
300
|
{
|
|
187
301
|
id: crypto.randomUUID(),
|
|
188
302
|
projectId: p3,
|
|
189
|
-
title: "Set up
|
|
303
|
+
title: "Set up support ticket triage automation",
|
|
190
304
|
description:
|
|
191
|
-
"
|
|
192
|
-
status: "
|
|
305
|
+
"Classify incoming tickets by urgency and route to appropriate queue: bug, feature request, billing, how-to",
|
|
306
|
+
status: "queued",
|
|
193
307
|
priority: 1,
|
|
194
308
|
result: null,
|
|
195
|
-
|
|
196
|
-
|
|
309
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
310
|
+
sourceType: "manual",
|
|
311
|
+
workflowId: null,
|
|
312
|
+
scheduleId: null,
|
|
313
|
+
createdAt: new Date(now - 2 * DAY),
|
|
314
|
+
updatedAt: new Date(now - 2 * DAY),
|
|
197
315
|
},
|
|
198
316
|
{
|
|
199
317
|
id: crypto.randomUUID(),
|
|
200
318
|
projectId: p3,
|
|
201
|
-
title: "
|
|
319
|
+
title: "Build customer health dashboard",
|
|
202
320
|
description:
|
|
203
|
-
"
|
|
321
|
+
"Create a table tracking: account name, plan, MRR, NPS score, last login, health status",
|
|
204
322
|
status: "planned",
|
|
205
323
|
priority: 0,
|
|
206
324
|
result: null,
|
|
325
|
+
agentProfile: SAMPLE_PROFILE_IDS[2],
|
|
326
|
+
sourceType: "manual",
|
|
327
|
+
workflowId: null,
|
|
328
|
+
scheduleId: null,
|
|
207
329
|
createdAt: new Date(now - 1 * DAY),
|
|
208
330
|
updatedAt: new Date(now - 1 * DAY),
|
|
209
331
|
},
|
|
210
332
|
|
|
211
|
-
//
|
|
333
|
+
// ── P4: Client: TechVenture Partners (6 tasks) ──────────────────
|
|
212
334
|
{
|
|
213
335
|
id: crypto.randomUUID(),
|
|
214
336
|
projectId: p4,
|
|
215
|
-
title: "
|
|
337
|
+
title: "Financial deep dive: HealthSync (portco #1)",
|
|
216
338
|
description:
|
|
217
|
-
"
|
|
339
|
+
"Analyze 3 years of financials — ARR, gross margins, net retention, burn rate, and runway",
|
|
218
340
|
status: "completed",
|
|
219
341
|
priority: 3,
|
|
220
342
|
result:
|
|
221
|
-
"
|
|
343
|
+
"HealthSync financials: ARR $8.2M (growing 42% YoY), gross margin 78%, net retention 118%, burn $380K/mo, 14-month runway. Strong unit economics — CAC payback 11 months, LTV/CAC 4.2x. Risk: revenue concentrated in top 5 accounts (62% of ARR). Recommendation: invest at current valuation if logo diversification plan is credible.",
|
|
344
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
345
|
+
sourceType: "workflow",
|
|
346
|
+
workflowId: w4,
|
|
347
|
+
scheduleId: null,
|
|
348
|
+
createdAt: new Date(now - 13 * DAY),
|
|
349
|
+
updatedAt: new Date(now - 10 * DAY),
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
id: crypto.randomUUID(),
|
|
353
|
+
projectId: p4,
|
|
354
|
+
title: "Market sizing: vertical SaaS in healthcare scheduling",
|
|
355
|
+
description:
|
|
356
|
+
"Size the TAM/SAM/SOM for AI-powered healthcare scheduling — top-down and bottom-up approaches",
|
|
357
|
+
status: "completed",
|
|
358
|
+
priority: 2,
|
|
359
|
+
result:
|
|
360
|
+
"TAM: $12.4B (US healthcare scheduling software). SAM: $3.8B (AI-enabled, mid-market practices 10-200 providers). SOM: $420M (outpatient clinics in top 20 metros). Growth: 24% CAGR driven by labor shortages and no-show reduction (AI scheduling cuts no-shows 35%). Competitor landscape: 4 incumbents, none with true AI scheduling — greenfield for AI-native entrant.",
|
|
361
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
362
|
+
sourceType: "workflow",
|
|
363
|
+
workflowId: w4,
|
|
364
|
+
scheduleId: null,
|
|
365
|
+
createdAt: new Date(now - 11 * DAY),
|
|
366
|
+
updatedAt: new Date(now - 8 * DAY),
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
id: crypto.randomUUID(),
|
|
370
|
+
projectId: p4,
|
|
371
|
+
title: "Write DD memo for HealthSync investment",
|
|
372
|
+
description:
|
|
373
|
+
"Synthesize financial analysis, market sizing, and competitive positioning into a board-ready DD memo",
|
|
374
|
+
status: "completed",
|
|
375
|
+
priority: 3,
|
|
376
|
+
result:
|
|
377
|
+
"DD memo delivered (12 pages). Executive summary: HealthSync is a category-defining AI scheduling platform in a $3.8B SAM growing 24% annually. Investment thesis: (1) AI-native product with 35% no-show reduction, (2) net retention 118% signals strong product-market fit, (3) greenfield competitive landscape. Top risk: customer concentration. Go recommendation with condition: secure 3 new enterprise logos in 6 months.",
|
|
378
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
379
|
+
sourceType: "workflow",
|
|
380
|
+
workflowId: w4,
|
|
381
|
+
scheduleId: null,
|
|
222
382
|
createdAt: new Date(now - 7 * DAY),
|
|
223
|
-
updatedAt: new Date(now -
|
|
383
|
+
updatedAt: new Date(now - 5 * DAY),
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
id: crypto.randomUUID(),
|
|
387
|
+
projectId: p4,
|
|
388
|
+
title: "Generate Q2 board deck for portfolio review",
|
|
389
|
+
description:
|
|
390
|
+
"Pull KPIs across all 4 portcos, create a standardized board deck with financials, milestones, and risks",
|
|
391
|
+
status: "running",
|
|
392
|
+
priority: 2,
|
|
393
|
+
result: null,
|
|
394
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
395
|
+
sourceType: "scheduled",
|
|
396
|
+
workflowId: null,
|
|
397
|
+
scheduleId: s4,
|
|
398
|
+
createdAt: new Date(now - 4 * DAY),
|
|
399
|
+
updatedAt: new Date(now - 1 * HOUR),
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
id: crypto.randomUUID(),
|
|
403
|
+
projectId: p4,
|
|
404
|
+
title: "Competitive analysis: DataPulse acquisition target",
|
|
405
|
+
description:
|
|
406
|
+
"Research DataPulse as a bolt-on acquisition for HealthSync — product overlap, team, and valuation comps",
|
|
407
|
+
status: "planned",
|
|
408
|
+
priority: 1,
|
|
409
|
+
result: null,
|
|
410
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
411
|
+
sourceType: "manual",
|
|
412
|
+
workflowId: null,
|
|
413
|
+
scheduleId: null,
|
|
414
|
+
createdAt: new Date(now - 2 * DAY),
|
|
415
|
+
updatedAt: new Date(now - 2 * DAY),
|
|
224
416
|
},
|
|
225
417
|
{
|
|
226
418
|
id: crypto.randomUUID(),
|
|
227
419
|
projectId: p4,
|
|
228
|
-
title: "
|
|
420
|
+
title: "Pull financial data for NovaPay (portco #2)",
|
|
229
421
|
description:
|
|
230
|
-
"
|
|
422
|
+
"Extract and normalize quarterly financials from NovaPay's reporting package for portfolio tracking",
|
|
423
|
+
status: "failed",
|
|
424
|
+
priority: 2,
|
|
425
|
+
result: null,
|
|
426
|
+
agentProfile: SAMPLE_PROFILE_IDS[3],
|
|
427
|
+
sourceType: "workflow",
|
|
428
|
+
workflowId: w4,
|
|
429
|
+
scheduleId: null,
|
|
430
|
+
createdAt: new Date(now - 6 * DAY),
|
|
431
|
+
updatedAt: new Date(now - 5 * DAY),
|
|
432
|
+
},
|
|
433
|
+
|
|
434
|
+
// ── P5: Client: GreenLeaf Commerce (6 tasks) ────────────────────
|
|
435
|
+
{
|
|
436
|
+
id: crypto.randomUUID(),
|
|
437
|
+
projectId: p5,
|
|
438
|
+
title: "Scrape current product listings for top 20 SKUs",
|
|
439
|
+
description:
|
|
440
|
+
"Pull title, description, bullet points, images, price, and review score for the 20 highest-revenue products",
|
|
231
441
|
status: "completed",
|
|
232
442
|
priority: 3,
|
|
233
443
|
result:
|
|
234
|
-
"
|
|
444
|
+
"Scraped 20 SKUs. Average listing score: 64/100. Key gaps: 8 listings missing keyword-rich bullet points, 5 have <4 images (benchmark is 7+), 3 have review counts <50. Top opportunity: 'Bamboo Kitchen Set' (SKU-1042) has 2.8K monthly searches but title misses primary keyword entirely.",
|
|
445
|
+
agentProfile: "general",
|
|
446
|
+
sourceType: "workflow",
|
|
447
|
+
workflowId: w5,
|
|
448
|
+
scheduleId: null,
|
|
449
|
+
createdAt: new Date(now - 11 * DAY),
|
|
450
|
+
updatedAt: new Date(now - 9 * DAY),
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
id: crypto.randomUUID(),
|
|
454
|
+
projectId: p5,
|
|
455
|
+
title: "Rewrite optimized copy for top 10 SKUs",
|
|
456
|
+
description:
|
|
457
|
+
"Generate new titles, bullet points, and descriptions with keyword optimization for the 10 highest-opportunity products",
|
|
458
|
+
status: "completed",
|
|
459
|
+
priority: 2,
|
|
460
|
+
result:
|
|
461
|
+
"Rewrote listings for 10 SKUs. Average keyword coverage improved from 34% to 82%. Title optimizations: all under 200 chars with primary keyword in first 80 chars. Bullet points: 5 per listing, benefit-led format with keyword integration. A/B test staged for top 3 SKUs: Bamboo Kitchen Set, Organic Cotton Sheets, Recycled Glass Vases.",
|
|
462
|
+
agentProfile: "general",
|
|
463
|
+
sourceType: "workflow",
|
|
464
|
+
workflowId: w5,
|
|
465
|
+
scheduleId: null,
|
|
466
|
+
createdAt: new Date(now - 8 * DAY),
|
|
467
|
+
updatedAt: new Date(now - 6 * DAY),
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
id: crypto.randomUUID(),
|
|
471
|
+
projectId: p5,
|
|
472
|
+
title: "Monitor review sentiment for flagged products",
|
|
473
|
+
description:
|
|
474
|
+
"Track new 1-2 star reviews across flagged SKUs, draft response templates, and alert client",
|
|
475
|
+
status: "running",
|
|
476
|
+
priority: 2,
|
|
477
|
+
result: null,
|
|
478
|
+
agentProfile: "general",
|
|
479
|
+
sourceType: "heartbeat",
|
|
480
|
+
workflowId: null,
|
|
481
|
+
scheduleId: s5,
|
|
482
|
+
createdAt: new Date(now - 5 * DAY),
|
|
483
|
+
updatedAt: new Date(now - 2 * HOUR),
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
id: crypto.randomUUID(),
|
|
487
|
+
projectId: p5,
|
|
488
|
+
title: "Generate ad copy variants for spring campaign",
|
|
489
|
+
description:
|
|
490
|
+
"Write 5 ad copy variants for the spring sale: headline, body, and CTA for each channel (Meta, Google, TikTok)",
|
|
491
|
+
status: "queued",
|
|
492
|
+
priority: 1,
|
|
493
|
+
result: null,
|
|
494
|
+
agentProfile: "general",
|
|
495
|
+
sourceType: "manual",
|
|
496
|
+
workflowId: null,
|
|
497
|
+
scheduleId: null,
|
|
498
|
+
createdAt: new Date(now - 3 * DAY),
|
|
499
|
+
updatedAt: new Date(now - 3 * DAY),
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
id: crypto.randomUUID(),
|
|
503
|
+
projectId: p5,
|
|
504
|
+
title: "Analyze competitor pricing changes",
|
|
505
|
+
description:
|
|
506
|
+
"Pull competitor price data for the top 10 overlapping SKUs, calculate price gap, and recommend adjustments",
|
|
507
|
+
status: "queued",
|
|
508
|
+
priority: 1,
|
|
509
|
+
result: null,
|
|
510
|
+
agentProfile: "general",
|
|
511
|
+
sourceType: "heartbeat",
|
|
512
|
+
workflowId: null,
|
|
513
|
+
scheduleId: s5,
|
|
514
|
+
createdAt: new Date(now - 2 * DAY),
|
|
515
|
+
updatedAt: new Date(now - 2 * DAY),
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
id: crypto.randomUUID(),
|
|
519
|
+
projectId: p5,
|
|
520
|
+
title: "Build listing performance tracker",
|
|
521
|
+
description:
|
|
522
|
+
"Create a tracking table: SKU, listing score, organic rank, conversion rate, revenue impact",
|
|
523
|
+
status: "planned",
|
|
524
|
+
priority: 0,
|
|
525
|
+
result: null,
|
|
526
|
+
agentProfile: "general",
|
|
527
|
+
sourceType: "manual",
|
|
528
|
+
workflowId: null,
|
|
529
|
+
scheduleId: null,
|
|
530
|
+
createdAt: new Date(now - 1 * DAY),
|
|
531
|
+
updatedAt: new Date(now - 1 * DAY),
|
|
532
|
+
},
|
|
533
|
+
|
|
534
|
+
// ── P6: Client: MedReach Health (6 tasks) ───────────────────────
|
|
535
|
+
{
|
|
536
|
+
id: crypto.randomUUID(),
|
|
537
|
+
projectId: p6,
|
|
538
|
+
title: "Draft referral campaign landing page",
|
|
539
|
+
description:
|
|
540
|
+
"Write HIPAA-compliant landing page copy for the provider referral program",
|
|
541
|
+
status: "completed",
|
|
542
|
+
priority: 3,
|
|
543
|
+
result:
|
|
544
|
+
"Landing page copy complete. Hero: 'Grow Your Practice with Trusted Referrals'. 3 sections: value prop, how it works (3-step flow), and trust signals (HIPAA badge, provider count, patient satisfaction). All claims sourced — no unsubstantiated health outcomes. Legal disclaimer included per FTC guidelines.",
|
|
545
|
+
agentProfile: "general",
|
|
546
|
+
sourceType: "workflow",
|
|
547
|
+
workflowId: w6,
|
|
548
|
+
scheduleId: null,
|
|
549
|
+
createdAt: new Date(now - 9 * DAY),
|
|
550
|
+
updatedAt: new Date(now - 7 * DAY),
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
id: crypto.randomUUID(),
|
|
554
|
+
projectId: p6,
|
|
555
|
+
title: "HIPAA compliance review: referral campaign",
|
|
556
|
+
description:
|
|
557
|
+
"Scan all campaign content for PHI references, testimonial compliance, and disclaimer requirements",
|
|
558
|
+
status: "completed",
|
|
559
|
+
priority: 3,
|
|
560
|
+
result:
|
|
561
|
+
"Compliance review passed with 2 minor flags: (1) Patient testimonial on slide 3 needs explicit written consent documentation — obtained. (2) 'Improve health outcomes' claim on email #2 needs citation — replaced with 'streamline referral workflows'. All content now clear for legal review.",
|
|
562
|
+
agentProfile: "general",
|
|
563
|
+
sourceType: "workflow",
|
|
564
|
+
workflowId: w6,
|
|
565
|
+
scheduleId: null,
|
|
235
566
|
createdAt: new Date(now - 7 * DAY),
|
|
236
567
|
updatedAt: new Date(now - 6 * DAY),
|
|
237
568
|
},
|
|
238
569
|
{
|
|
239
570
|
id: crypto.randomUUID(),
|
|
240
|
-
projectId:
|
|
241
|
-
title: "
|
|
571
|
+
projectId: p6,
|
|
572
|
+
title: "Write provider outreach email templates",
|
|
242
573
|
description:
|
|
243
|
-
"
|
|
574
|
+
"Create 3 email templates: initial outreach, follow-up, and referral confirmation — all HIPAA compliant",
|
|
244
575
|
status: "completed",
|
|
245
576
|
priority: 2,
|
|
246
577
|
result:
|
|
247
|
-
"3
|
|
578
|
+
"3 email templates complete. Template 1: Introduction + program overview (no patient data). Template 2: Follow-up with case study (anonymized). Template 3: Referral confirmation with next steps. All templates reviewed for PHI absence. Merge fields: {provider_name}, {practice_name}, {specialty} only.",
|
|
579
|
+
agentProfile: "general",
|
|
580
|
+
sourceType: "manual",
|
|
581
|
+
workflowId: null,
|
|
582
|
+
scheduleId: null,
|
|
248
583
|
createdAt: new Date(now - 6 * DAY),
|
|
249
584
|
updatedAt: new Date(now - 5 * DAY),
|
|
250
585
|
},
|
|
251
586
|
{
|
|
252
587
|
id: crypto.randomUUID(),
|
|
253
|
-
projectId:
|
|
254
|
-
title: "
|
|
588
|
+
projectId: p6,
|
|
589
|
+
title: "Create social media content calendar",
|
|
255
590
|
description:
|
|
256
|
-
"
|
|
591
|
+
"Plan 4 weeks of healthcare marketing social posts — educational content, provider spotlights, patient tips",
|
|
257
592
|
status: "completed",
|
|
258
593
|
priority: 1,
|
|
259
594
|
result:
|
|
260
|
-
"
|
|
595
|
+
"4-week calendar: 3 posts/week across LinkedIn and Facebook. Week 1: Provider spotlight series. Week 2: Patient education (symptoms awareness). Week 3: Telehealth tips. Week 4: Community health events. All posts pre-cleared for compliance. No patient-identifiable content.",
|
|
596
|
+
agentProfile: "general",
|
|
597
|
+
sourceType: "manual",
|
|
598
|
+
workflowId: null,
|
|
599
|
+
scheduleId: null,
|
|
261
600
|
createdAt: new Date(now - 5 * DAY),
|
|
262
601
|
updatedAt: new Date(now - 4 * DAY),
|
|
263
602
|
},
|
|
264
603
|
{
|
|
265
604
|
id: crypto.randomUUID(),
|
|
266
|
-
projectId:
|
|
267
|
-
title: "
|
|
605
|
+
projectId: p6,
|
|
606
|
+
title: "Set up referral tracking analytics",
|
|
268
607
|
description:
|
|
269
|
-
"
|
|
270
|
-
status: "
|
|
608
|
+
"Configure analytics to track referral sources, conversion rates, and provider engagement",
|
|
609
|
+
status: "planned",
|
|
271
610
|
priority: 1,
|
|
272
|
-
result:
|
|
273
|
-
|
|
274
|
-
|
|
611
|
+
result: null,
|
|
612
|
+
agentProfile: "general",
|
|
613
|
+
sourceType: "manual",
|
|
614
|
+
workflowId: null,
|
|
615
|
+
scheduleId: null,
|
|
616
|
+
createdAt: new Date(now - 3 * DAY),
|
|
275
617
|
updatedAt: new Date(now - 3 * DAY),
|
|
276
618
|
},
|
|
619
|
+
{
|
|
620
|
+
id: crypto.randomUUID(),
|
|
621
|
+
projectId: p6,
|
|
622
|
+
title: "Route legal sign-off package",
|
|
623
|
+
description:
|
|
624
|
+
"Compile all reviewed content with compliance annotations and submit to legal@medreach.health",
|
|
625
|
+
status: "cancelled",
|
|
626
|
+
priority: 2,
|
|
627
|
+
result: null,
|
|
628
|
+
agentProfile: "general",
|
|
629
|
+
sourceType: "workflow",
|
|
630
|
+
workflowId: w6,
|
|
631
|
+
scheduleId: null,
|
|
632
|
+
createdAt: new Date(now - 6 * DAY),
|
|
633
|
+
updatedAt: new Date(now - 4 * DAY),
|
|
634
|
+
},
|
|
277
635
|
|
|
278
|
-
//
|
|
636
|
+
// ── P7: Revenue Operations Command (6 tasks) ────────────────────
|
|
279
637
|
{
|
|
280
638
|
id: crypto.randomUUID(),
|
|
281
|
-
projectId:
|
|
282
|
-
title: "
|
|
639
|
+
projectId: p7,
|
|
640
|
+
title: "Pull weekly pipeline snapshot",
|
|
641
|
+
description:
|
|
642
|
+
"Export all deals in stages 2-5: deal name, owner, amount, stage, days in stage, close date, and next step",
|
|
643
|
+
status: "completed",
|
|
644
|
+
priority: 3,
|
|
645
|
+
result:
|
|
646
|
+
"Pipeline snapshot: 34 active deals, $2.8M total weighted pipeline. Stage distribution: Discovery (8), Evaluation (12), Proposal (9), Negotiation (5). Net new this week: +6 deals ($420K). Lost: 2 deals ($180K) — both lost to CrewAI on pricing. Velocity: average 18 days Discovery→Proposal.",
|
|
647
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
648
|
+
sourceType: "workflow",
|
|
649
|
+
workflowId: w7,
|
|
650
|
+
scheduleId: null,
|
|
651
|
+
createdAt: new Date(now - 7 * DAY),
|
|
652
|
+
updatedAt: new Date(now - 5 * DAY),
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
id: crypto.randomUUID(),
|
|
656
|
+
projectId: p7,
|
|
657
|
+
title: "Score deal risk for stalled opportunities",
|
|
283
658
|
description:
|
|
284
|
-
"
|
|
659
|
+
"Calculate risk score for each deal: days stalled, champion engagement, competitive mentions, budget status",
|
|
285
660
|
status: "completed",
|
|
286
661
|
priority: 3,
|
|
287
662
|
result:
|
|
288
|
-
"
|
|
663
|
+
"Risk assessment: 7 deals flagged elevated risk. Top 3: (1) Meridian Corp — 12 days no activity, champion OOO. (2) Atlas Financial — competitor mentioned in last call, budget freeze rumored. (3) Pinnacle Tech — close date pushed 3x, no exec sponsor. Recommendation: Meridian needs VP-to-VP outreach, Atlas needs competitive battle card, Pinnacle needs qualification review.",
|
|
664
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
665
|
+
sourceType: "heartbeat",
|
|
666
|
+
workflowId: null,
|
|
667
|
+
scheduleId: s7,
|
|
289
668
|
createdAt: new Date(now - 5 * DAY),
|
|
290
669
|
updatedAt: new Date(now - 3 * DAY),
|
|
291
670
|
},
|
|
292
671
|
{
|
|
293
672
|
id: crypto.randomUUID(),
|
|
294
|
-
projectId:
|
|
295
|
-
title: "
|
|
673
|
+
projectId: p7,
|
|
674
|
+
title: "Generate rep coaching notes",
|
|
296
675
|
description:
|
|
297
|
-
"
|
|
676
|
+
"For each sales rep, identify coaching opportunities based on deal patterns, win rates, and activity metrics",
|
|
298
677
|
status: "running",
|
|
299
678
|
priority: 2,
|
|
300
679
|
result: null,
|
|
301
|
-
|
|
302
|
-
|
|
680
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
681
|
+
sourceType: "scheduled",
|
|
682
|
+
workflowId: null,
|
|
683
|
+
scheduleId: s7,
|
|
684
|
+
createdAt: new Date(now - 3 * DAY),
|
|
685
|
+
updatedAt: new Date(now - 4 * HOUR),
|
|
303
686
|
},
|
|
304
687
|
{
|
|
305
688
|
id: crypto.randomUUID(),
|
|
306
|
-
projectId:
|
|
307
|
-
title: "
|
|
689
|
+
projectId: p7,
|
|
690
|
+
title: "Write weekly executive operating note",
|
|
308
691
|
description:
|
|
309
|
-
"
|
|
692
|
+
"Compile pipeline created vs target, forecast by confidence bucket, top risks, and 3 highest-leverage actions",
|
|
693
|
+
status: "running",
|
|
694
|
+
priority: 2,
|
|
695
|
+
result: null,
|
|
696
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
697
|
+
sourceType: "workflow",
|
|
698
|
+
workflowId: w7,
|
|
699
|
+
scheduleId: null,
|
|
700
|
+
createdAt: new Date(now - 2 * DAY),
|
|
701
|
+
updatedAt: new Date(now - 1 * HOUR),
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
id: crypto.randomUUID(),
|
|
705
|
+
projectId: p7,
|
|
706
|
+
title: "Build forecast accuracy tracker",
|
|
707
|
+
description:
|
|
708
|
+
"Track committed vs actual closed-won by month, measure forecast accuracy, and flag bias patterns",
|
|
310
709
|
status: "queued",
|
|
311
710
|
priority: 1,
|
|
312
711
|
result: null,
|
|
712
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
713
|
+
sourceType: "manual",
|
|
714
|
+
workflowId: null,
|
|
715
|
+
scheduleId: null,
|
|
716
|
+
createdAt: new Date(now - 1 * DAY),
|
|
717
|
+
updatedAt: new Date(now - 1 * DAY),
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
id: crypto.randomUUID(),
|
|
721
|
+
projectId: p7,
|
|
722
|
+
title: "Analyze win/loss patterns for Q1",
|
|
723
|
+
description:
|
|
724
|
+
"Review closed-won and closed-lost deals from Q1 — identify patterns in deal size, industry, sales cycle, and loss reasons",
|
|
725
|
+
status: "planned",
|
|
726
|
+
priority: 0,
|
|
727
|
+
result: null,
|
|
728
|
+
agentProfile: SAMPLE_PROFILE_IDS[4],
|
|
729
|
+
sourceType: "manual",
|
|
730
|
+
workflowId: null,
|
|
731
|
+
scheduleId: null,
|
|
732
|
+
createdAt: new Date(now - 1 * DAY),
|
|
733
|
+
updatedAt: new Date(now - 1 * DAY),
|
|
734
|
+
},
|
|
735
|
+
|
|
736
|
+
// ── P8: Compliance & Audit Trail (6 tasks) ──────────────────────
|
|
737
|
+
{
|
|
738
|
+
id: crypto.randomUUID(),
|
|
739
|
+
projectId: p8,
|
|
740
|
+
title: "Gather March execution logs",
|
|
741
|
+
description:
|
|
742
|
+
"Collect all governed execution logs, permission decisions, tool usage, and data access patterns for March",
|
|
743
|
+
status: "completed",
|
|
744
|
+
priority: 3,
|
|
745
|
+
result:
|
|
746
|
+
"March audit evidence collected: 1,247 task executions, 89 permission requests (82 approved, 7 denied), 3,420 tool invocations. Top tools: Read (1,890), Write (680), WebSearch (450), Bash (320), SendEmail (80). 100% of Write operations required approval. No unauthorized data access detected.",
|
|
747
|
+
agentProfile: "general",
|
|
748
|
+
sourceType: "workflow",
|
|
749
|
+
workflowId: w8,
|
|
750
|
+
scheduleId: null,
|
|
751
|
+
createdAt: new Date(now - 5 * DAY),
|
|
752
|
+
updatedAt: new Date(now - 4 * DAY),
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
id: crypto.randomUUID(),
|
|
756
|
+
projectId: p8,
|
|
757
|
+
title: "Analyze SOC 2 control compliance",
|
|
758
|
+
description:
|
|
759
|
+
"Compare execution patterns against SOC 2 Type II controls — identify gaps and rate severity",
|
|
760
|
+
status: "completed",
|
|
761
|
+
priority: 3,
|
|
762
|
+
result:
|
|
763
|
+
"SOC 2 analysis: 14 of 16 controls fully satisfied. 2 gaps identified: (1) CC6.1 — 3 instances of auto-approved Bash commands that should require manual review (Medium severity). (2) CC7.2 — heartbeat budget exceeded on 2 occasions without alert (Low severity). Remediation: tighten auto-approve policy for Bash, add budget breach notification.",
|
|
764
|
+
agentProfile: "general",
|
|
765
|
+
sourceType: "workflow",
|
|
766
|
+
workflowId: w8,
|
|
767
|
+
scheduleId: null,
|
|
768
|
+
createdAt: new Date(now - 4 * DAY),
|
|
769
|
+
updatedAt: new Date(now - 3 * DAY),
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
id: crypto.randomUUID(),
|
|
773
|
+
projectId: p8,
|
|
774
|
+
title: "Generate March compliance report",
|
|
775
|
+
description:
|
|
776
|
+
"Write the monthly report: executive summary, control effectiveness, gap analysis with remediation timelines",
|
|
777
|
+
status: "completed",
|
|
778
|
+
priority: 2,
|
|
779
|
+
result:
|
|
780
|
+
"March compliance report delivered (8 pages). Overall posture: GREEN. Control effectiveness: 87.5% (14/16). 2 gaps with remediation plans — both scheduled for completion by April 15. Trend: improving from February (81.25%, 3 gaps). Recommendation: promote auto-approve policy tightening to all projects.",
|
|
781
|
+
agentProfile: "general",
|
|
782
|
+
sourceType: "workflow",
|
|
783
|
+
workflowId: w8,
|
|
784
|
+
scheduleId: null,
|
|
313
785
|
createdAt: new Date(now - 3 * DAY),
|
|
314
786
|
updatedAt: new Date(now - 3 * DAY),
|
|
315
787
|
},
|
|
316
788
|
{
|
|
317
789
|
id: crypto.randomUUID(),
|
|
318
|
-
projectId:
|
|
319
|
-
title: "
|
|
790
|
+
projectId: p8,
|
|
791
|
+
title: "Prepare executive compliance brief",
|
|
320
792
|
description:
|
|
321
|
-
"
|
|
322
|
-
status: "
|
|
793
|
+
"1-page brief: overall posture, top findings, remediation progress, and recommended policy updates",
|
|
794
|
+
status: "completed",
|
|
795
|
+
priority: 2,
|
|
796
|
+
result:
|
|
797
|
+
"Executive brief delivered. Headline: 'March Compliance Posture — GREEN, improving trend.' Key metrics: 1,247 governed executions, 0 unauthorized access incidents, 2 policy gaps (both medium/low). Board-ready format with month-over-month trend chart. Attached to the Monthly Compliance Audit workflow output.",
|
|
798
|
+
agentProfile: "general",
|
|
799
|
+
sourceType: "workflow",
|
|
800
|
+
workflowId: w8,
|
|
801
|
+
scheduleId: null,
|
|
802
|
+
createdAt: new Date(now - 3 * DAY),
|
|
803
|
+
updatedAt: new Date(now - 3 * DAY),
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
id: crypto.randomUUID(),
|
|
807
|
+
projectId: p8,
|
|
808
|
+
title: "Audit permission escalation patterns",
|
|
809
|
+
description:
|
|
810
|
+
"Review which tools trigger the most permission requests and whether auto-approve policies are appropriately scoped",
|
|
811
|
+
status: "completed",
|
|
323
812
|
priority: 1,
|
|
324
|
-
result:
|
|
325
|
-
|
|
326
|
-
|
|
813
|
+
result:
|
|
814
|
+
"Escalation analysis: Write (41% of all permission requests), SendEmail (22%), Bash (18%), WebSearch (12%), Other (7%). Auto-approve coverage: Read and Grep at 100%, WebSearch at 60% (appropriate for non-sensitive contexts). Recommendation: keep Write at 100% manual approval, consider auto-approving WebSearch for researcher profile only.",
|
|
815
|
+
agentProfile: "general",
|
|
816
|
+
sourceType: "scheduled",
|
|
817
|
+
workflowId: null,
|
|
818
|
+
scheduleId: s8,
|
|
819
|
+
createdAt: new Date(now - 4 * DAY),
|
|
820
|
+
updatedAt: new Date(now - 3 * DAY),
|
|
327
821
|
},
|
|
328
822
|
{
|
|
329
823
|
id: crypto.randomUUID(),
|
|
330
|
-
projectId:
|
|
331
|
-
title: "
|
|
824
|
+
projectId: p8,
|
|
825
|
+
title: "Plan April audit scope expansion",
|
|
332
826
|
description:
|
|
333
|
-
"
|
|
827
|
+
"Scope the April audit to include heartbeat budget compliance, cross-project data access, and channel delivery audit",
|
|
334
828
|
status: "planned",
|
|
335
|
-
priority:
|
|
829
|
+
priority: 1,
|
|
336
830
|
result: null,
|
|
831
|
+
agentProfile: "general",
|
|
832
|
+
sourceType: "manual",
|
|
833
|
+
workflowId: null,
|
|
834
|
+
scheduleId: null,
|
|
337
835
|
createdAt: new Date(now - 1 * DAY),
|
|
338
836
|
updatedAt: new Date(now - 1 * DAY),
|
|
339
837
|
},
|