@agentled/cli 0.7.5 → 0.7.7

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 (41) hide show
  1. package/README.md +19 -1
  2. package/dist/commands/clients.d.ts +2 -0
  3. package/dist/commands/clients.js +408 -0
  4. package/dist/commands/clients.js.map +1 -0
  5. package/dist/commands/do.js +1 -1
  6. package/dist/commands/do.js.map +1 -1
  7. package/dist/commands/examples.d.ts +5 -5
  8. package/dist/commands/examples.js +8 -2
  9. package/dist/commands/examples.js.map +1 -1
  10. package/dist/commands/onboarding.js +43 -15
  11. package/dist/commands/onboarding.js.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/utils/agentled-home-content.d.ts +1 -1
  15. package/dist/utils/agentled-home-content.js +6 -3
  16. package/dist/utils/agentled-home-content.js.map +1 -1
  17. package/dist/utils/browser-auth.d.ts +1 -0
  18. package/dist/utils/browser-auth.js +3 -3
  19. package/dist/utils/browser-auth.js.map +1 -1
  20. package/dist/utils/pipeline-lint.js +3 -1
  21. package/dist/utils/pipeline-lint.js.map +1 -1
  22. package/dist/utils/workspace-folder.d.ts +4 -0
  23. package/dist/utils/workspace-folder.js +76 -1
  24. package/dist/utils/workspace-folder.js.map +1 -1
  25. package/dist/utils/workspace-meta.d.ts +4 -3
  26. package/dist/utils/workspace-meta.js +27 -5
  27. package/dist/utils/workspace-meta.js.map +1 -1
  28. package/llms-full.txt +4 -2
  29. package/llms.txt +17 -0
  30. package/package.json +1 -1
  31. package/patterns/v1/00-design-principles.md +161 -0
  32. package/patterns/v1/12-event-driven-workflow-groups.md +21 -0
  33. package/patterns/v1/13-entity-pipeline-lifecycle.md +319 -0
  34. package/scaffolds/README.md +7 -1
  35. package/scaffolds/child-with-return.json +71 -0
  36. package/scaffolds/funnel-orchestrator.json +134 -0
  37. package/scaffolds/kg-process-update.json +88 -0
  38. package/scaffolds/orchestrator-kg-loop.json +96 -0
  39. package/scaffolds/source-from-platform.json +78 -0
  40. package/scaffolds/source-to-kg.json +88 -0
  41. package/skills/agentled/SKILL.md +24 -1
package/README.md CHANGED
@@ -133,13 +133,14 @@ agentled schema --step-type aiAction
133
133
  # Human-readable instead of JSON
134
134
  agentled schema --format table
135
135
 
136
- # List the 8 bundled workflow patterns
136
+ # List the bundled workflow patterns
137
137
  agentled examples
138
138
 
139
139
  # Print one pattern (by slug, number, or keyword)
140
140
  agentled examples trigger-design
141
141
  agentled examples 04 # loops
142
142
  agentled examples dedup
143
+ agentled examples 13-entity-pipeline-lifecycle
143
144
 
144
145
  # Summary + link to the canonical public repo
145
146
  agentled best-practices
@@ -163,6 +164,18 @@ agentled workflows scaffold --list
163
164
  # Print a scaffold to stdout
164
165
  agentled workflows scaffold lead-scoring-kg
165
166
 
167
+ # Build the common sourcing-to-outreach lifecycle from known-good starters
168
+ agentled workflows scaffold source-from-platform --out 01-source.json
169
+ agentled workflows scaffold lead-scoring-kg --out 02-score-qualify.json
170
+ agentled workflows scaffold list-match-email --out 04-outreach.json
171
+ agentled workflows scaffold funnel-orchestrator --out 99-orchestrator.json
172
+
173
+ # Mark contacted only after send/queue succeeds; add event/polling workflows
174
+ # for replies, bounces, opens, and clicks when the channel supports them.
175
+ # For outreach, add business metrics for contacted prospects, positive replies,
176
+ # and PCPL. Literal PCPL is a ratio metric with ratioMode:"raw":
177
+ # prospects_contacted / positive_replies. Reply rate uses the default percent ratio.
178
+
166
179
  # Write a scaffold to a file to start editing from
167
180
  agentled workflows scaffold list-match-email --out pipeline.json
168
181
 
@@ -185,8 +198,10 @@ to add a new one.
185
198
  |------|----------|-------|
186
199
  | `minimal` | — | trigger → milestone |
187
200
  | `email-polling-dedup` | 02 + 13 | schedule → fetch emails (label dedup) → loop process → add label |
201
+ | `source-from-platform` | 13 | schedule → source app → normalize → kg.upsert-rows(status:new) |
188
202
  | `lead-scoring-kg` | 04 + 09 | trigger → kg.read-list → AI scoring loop → knowledgeSync |
189
203
  | `list-match-email` | 08 | trigger → kg.read-list → AI match → composed email (approval gate) → knowledgeSync |
204
+ | `funnel-orchestrator` | 05 + 13 | schedule → read KG statuses → call child workflows → digest |
190
205
  | `extract-threshold-alert` | 06 + 09 | trigger → AI extract → threshold check → external update → conditional Slack alert → knowledgeSync |
191
206
 
192
207
  Each bundled scaffold passes `workflows validate --file` out of the box.
@@ -221,6 +236,7 @@ The CLI now includes dedicated command groups matching MCP domains:
221
236
  - `agentled intent do ...`
222
237
  - `agentled proactive-agents ...`
223
238
  - `agentled models list`
239
+ - `agentled clients feedback add|reply|validate|sync`
224
240
 
225
241
  ## Running workflows
226
242
 
@@ -239,6 +255,8 @@ agentled wf start <workflowId> --input '{...}' --use-mocks
239
255
 
240
256
  Under the hood, `--no-mocks` sets `metadata.mockConfig.disabled = true`, which the orchestrator reads to bypass `step.mock.enabledByDefault` for every step. You can also pass that directly via `--metadata '{"mockConfig":{"disabled":true}}'` if you need to combine it with other metadata fields.
241
257
 
258
+ `agentled wf start` always returns `executionInputId`, which identifies the submitted input/run record. It may also return `executionId` when the async execution row has already been created. Commands such as `agentled executions get` require the real `executionId`. If start only returns `executionInputId`, run `agentled executions list <workflowId> --limit 5` and find the row whose `pipelineExecutionInputId` matches; use that row's `id` as the execution ID.
259
+
242
260
  ### Admin execution patch commands
243
261
 
244
262
  The CLI exposes the same exception-only admin patch surface as MCP. These
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerClientsCommands(program: Command): void;
@@ -0,0 +1,408 @@
1
+ import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { AgentledClient } from '../client.js';
4
+ import { findWorkspaceDir } from '../utils/workspace-folder.js';
5
+ import { printError, printOutput } from '../utils/output.js';
6
+ const defaultClient = (slug, name) => ({
7
+ name: name ?? slug,
8
+ stage: 'active-sprint',
9
+ workspaceAlias: slug,
10
+ primaryWorkflowIds: [],
11
+ goals: [],
12
+ risks: [],
13
+ nextActions: [],
14
+ lastClientUpdate: null,
15
+ });
16
+ const DOSSIER_GUIDANCE = `# Client Dossier Operating Guide
17
+
18
+ This dossier is local-first and DFE-facing. Keep it practical and execution-oriented.
19
+
20
+ ## What goes here (DFE operating trail)
21
+ - Client context in \`client.json\`
22
+ - POCs in \`contacts.json\`
23
+ - Meeting notes in \`meetings/\`
24
+ - Decisions and approvals in \`decisions/\`
25
+ - Feedback snapshots in \`feedback/\`
26
+ - Draft replies/emails in \`replies/\`
27
+ - Validation evidence in \`validation/\`
28
+
29
+ ## What should NOT go here
30
+ - Full implementation design docs for reusable platform architecture
31
+ - Long-form ADRs or general system design notes
32
+ - Prompt experiments unrelated to this specific client outcome
33
+
34
+ ## Separation from KG text / design docs
35
+ - \`kg.text\` should contain durable, reusable product or workflow knowledge.
36
+ - Client dossiers should contain engagement execution context (who asked what, when, and what was approved).
37
+ - If a client-specific decision becomes reusable, summarize it into a design doc/KG entry and link back to the originating meeting or decision file.
38
+ `;
39
+ function slugify(s) {
40
+ return s.toLowerCase().trim().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
41
+ }
42
+ function normalizeClientSlug(slug) {
43
+ if (slug.includes('..') || /[\\/]/.test(slug)) {
44
+ printError(`Invalid client slug: ${slug}`);
45
+ }
46
+ const normalized = slugify(slug);
47
+ if (!normalized)
48
+ printError(`Invalid client slug: ${slug}`);
49
+ return normalized;
50
+ }
51
+ function requireWorkspace() {
52
+ const wsDir = findWorkspaceDir(process.cwd());
53
+ if (!wsDir)
54
+ printError('No Agentled workspace folder found. Run this from an agentled_<slug> folder.');
55
+ return wsDir;
56
+ }
57
+ function resolveClientsRoot() {
58
+ return join(requireWorkspace(), 'clients');
59
+ }
60
+ function resolveClientDir(slug) {
61
+ return join(resolveClientsRoot(), normalizeClientSlug(slug));
62
+ }
63
+ function ensureClientDir(slug) {
64
+ const dir = resolveClientDir(slug);
65
+ mkdirSync(dir, { recursive: true });
66
+ return dir;
67
+ }
68
+ function readJson(path) {
69
+ if (!existsSync(path))
70
+ return null;
71
+ return JSON.parse(readFileSync(path, 'utf-8'));
72
+ }
73
+ function readJsonArray(path) {
74
+ const raw = readJson(path);
75
+ return Array.isArray(raw) ? raw : [];
76
+ }
77
+ function dateStamp() {
78
+ return new Date().toISOString().slice(0, 10);
79
+ }
80
+ function latestFile(dir, extensions = ['.md', '.json']) {
81
+ if (!existsSync(dir))
82
+ return null;
83
+ const files = readdirSync(dir).filter((f) => extensions.some((ext) => f.endsWith(ext))).sort();
84
+ return files.length ? files[files.length - 1] : null;
85
+ }
86
+ function latestFilePath(dir, extensions = ['.md', '.json']) {
87
+ const file = latestFile(dir, extensions);
88
+ return file ? join(dir, file) : null;
89
+ }
90
+ function readOptionalFile(path) {
91
+ if (!path || !existsSync(path))
92
+ return null;
93
+ return readFileSync(path, 'utf-8').trim();
94
+ }
95
+ function countDepartmentPocProfiles(clientDir) {
96
+ const departmentsDir = join(clientDir, 'departments');
97
+ if (!existsSync(departmentsDir))
98
+ return { departments: 0, pocProfiles: 0 };
99
+ const departmentDirs = readdirSync(departmentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory());
100
+ let profiles = 0;
101
+ for (const dep of departmentDirs) {
102
+ const pocDir = join(departmentsDir, dep.name, 'pocs');
103
+ if (!existsSync(pocDir))
104
+ continue;
105
+ profiles += readdirSync(pocDir).filter((file) => file.endsWith('_poc_profile.md')).length;
106
+ }
107
+ return { departments: departmentDirs.length, pocProfiles: profiles };
108
+ }
109
+ function buildSyncContent(params) {
110
+ const clientName = typeof params.client?.name === 'string' ? params.client.name : params.clientSlug;
111
+ const lines = [
112
+ `# Client Dossier Sync: ${clientName}`,
113
+ '',
114
+ `Client slug: ${params.clientSlug}`,
115
+ `Synced at: ${new Date().toISOString()}`,
116
+ '',
117
+ '## Client context',
118
+ '```json',
119
+ JSON.stringify(params.client ?? {}, null, 2),
120
+ '```',
121
+ '',
122
+ '## Linked workflows',
123
+ '```json',
124
+ JSON.stringify(params.workflows, null, 2),
125
+ '```',
126
+ '',
127
+ ];
128
+ if (params.includeDecisions) {
129
+ lines.push('## Latest decision', readOptionalFile(params.decisionPath) ?? '_No decision file found._', '');
130
+ }
131
+ if (params.includeSummary) {
132
+ lines.push('## Latest validation summary', readOptionalFile(params.validationPath) ?? '_No validation file found._', '');
133
+ }
134
+ return lines.join('\n');
135
+ }
136
+ export function registerClientsCommands(program) {
137
+ const clients = program.command('clients').description('Manage local client dossiers and delivery ops in agentled workspace folders.');
138
+ clients
139
+ .command('init')
140
+ .argument('<slug>')
141
+ .option('--name <name>')
142
+ .option('--force', 'Overwrite existing files', false)
143
+ .option('--format <fmt>', 'Output format', 'json')
144
+ .action((slug, opts) => {
145
+ const clientSlug = normalizeClientSlug(slug);
146
+ const dir = resolveClientDir(clientSlug);
147
+ if (existsSync(dir) && !opts.force)
148
+ printError(`Client dossier already exists: ${dir}. Use --force to overwrite.`);
149
+ mkdirSync(join(dir, 'meetings'), { recursive: true });
150
+ mkdirSync(join(dir, 'decisions'), { recursive: true });
151
+ mkdirSync(join(dir, 'feedback'), { recursive: true });
152
+ mkdirSync(join(dir, 'replies'), { recursive: true });
153
+ mkdirSync(join(dir, 'validation'), { recursive: true });
154
+ mkdirSync(join(dir, 'departments', 'general', 'pocs'), { recursive: true });
155
+ writeFileSync(join(dir, 'client.json'), JSON.stringify(defaultClient(clientSlug, opts.name), null, 2) + '\n');
156
+ writeFileSync(join(dir, 'contacts.json'), JSON.stringify([], null, 2) + '\n');
157
+ writeFileSync(join(dir, 'workflows.json'), JSON.stringify([], null, 2) + '\n');
158
+ writeFileSync(join(dir, 'README.md'), DOSSIER_GUIDANCE + '\n');
159
+ writeFileSync(join(dir, 'replies', 'README.md'), '# Reply drafts\n\nStore draft client replies and emails as Markdown files.\n');
160
+ writeFileSync(join(dir, 'validation', 'README.md'), '# Validation notes\n\nTrack validation evidence and blockers with links to execution IDs/timelines.\n');
161
+ writeFileSync(join(dir, 'departments', 'README.md'), '# Departments and POCs\n\nUse one folder per client department/team.\n\nExample structure:\n- departments/sales/pocs/sales_poc_profile.md\n- departments/ops/pocs/ops_poc_profile.md\n');
162
+ writeFileSync(join(dir, 'departments', 'general', 'README.md'), '# General department\n\nDefault area for cross-team context before splitting into team folders.\n');
163
+ writeFileSync(join(dir, 'departments', 'general', 'pocs', 'general_poc_profile.md'), '# General POC Profile\n\n## Name\n\n## Team / Department\n\n## Role\n\n## Email\n\n## Decision Scope\n\n## Communication Style\n\n## Notes\n');
164
+ printOutput({ slug: clientSlug, path: dir, created: true }, (opts.format ?? 'json'));
165
+ });
166
+ clients.command('list').option('--format <fmt>', 'Output format', 'json').action((opts) => {
167
+ const root = resolveClientsRoot();
168
+ if (!existsSync(root))
169
+ return printOutput([], (opts.format ?? 'json'));
170
+ const rows = readdirSync(root, { withFileTypes: true })
171
+ .filter((e) => e.isDirectory())
172
+ .filter((e) => existsSync(join(root, e.name, 'client.json')))
173
+ .map((e) => {
174
+ const dir = join(root, e.name);
175
+ const c = readJson(join(dir, 'client.json'));
176
+ return { slug: e.name, name: c?.name ?? e.name, stage: c?.stage ?? 'unknown', lastMeeting: latestFile(join(dir, 'meetings')), openNextActions: c?.nextActions?.length ?? 0 };
177
+ });
178
+ printOutput(rows, (opts.format ?? 'json'));
179
+ });
180
+ clients.command('status').argument('<slug>').option('--format <fmt>', 'Output format', 'json').action((slug, opts) => {
181
+ const clientSlug = normalizeClientSlug(slug);
182
+ const dir = resolveClientDir(clientSlug);
183
+ if (!existsSync(dir))
184
+ printError(`Client dossier not found: ${clientSlug}`);
185
+ const client = readJson(join(dir, 'client.json'));
186
+ const contacts = readJsonArray(join(dir, 'contacts.json'));
187
+ const workflows = readJsonArray(join(dir, 'workflows.json'));
188
+ const pocStats = countDepartmentPocProfiles(dir);
189
+ printOutput({
190
+ client,
191
+ contactsCount: contacts.length,
192
+ latestMeeting: latestFile(join(dir, 'meetings')),
193
+ departmentsRoot: join(dir, 'departments'),
194
+ latestFeedback: latestFile(join(dir, 'feedback')),
195
+ openDecisions: existsSync(join(dir, 'decisions')) ? readdirSync(join(dir, 'decisions')).length : 0,
196
+ linkedWorkflows: workflows.length,
197
+ departments: pocStats.departments,
198
+ pocProfiles: pocStats.pocProfiles,
199
+ }, (opts.format ?? 'json'));
200
+ });
201
+ clients.command('brief').argument('<slug>').option('--format <fmt>', 'Output format', 'json').action((slug, opts) => {
202
+ const clientSlug = normalizeClientSlug(slug);
203
+ const dir = resolveClientDir(clientSlug);
204
+ if (!existsSync(dir))
205
+ printError(`Client dossier not found: ${clientSlug}`);
206
+ const client = readJson(join(dir, 'client.json'));
207
+ const contacts = readJsonArray(join(dir, 'contacts.json'));
208
+ const lines = [
209
+ `Client: ${client?.name ?? clientSlug} (${clientSlug})`,
210
+ `Stage: ${client?.stage ?? 'unknown'}`,
211
+ `Goals: ${client?.goals?.join('; ') || 'none'}`,
212
+ `Risks: ${client?.risks?.join('; ') || 'none'}`,
213
+ `Next actions: ${client?.nextActions?.join('; ') || 'none'}`,
214
+ `Primary contacts: ${contacts.map((c) => `${c.name} (${c.role})`).join('; ') || 'none'}`,
215
+ `Latest meeting: ${latestFile(join(dir, 'meetings')) ?? 'none'}`,
216
+ 'Scope: This brief is DFE client-operations context (not a platform design doc).',
217
+ ];
218
+ printOutput({ brief: lines.join('\n') }, (opts.format ?? 'json'));
219
+ });
220
+ const meeting = clients.command('meeting').description('Manage client meeting notes.');
221
+ meeting
222
+ .command('new')
223
+ .argument('<slug>')
224
+ .requiredOption('--title <title>')
225
+ .option('--date <date>')
226
+ .option('--format <fmt>', 'Output format', 'json')
227
+ .action((slug, opts) => {
228
+ const clientSlug = normalizeClientSlug(slug);
229
+ const dir = resolveClientDir(clientSlug);
230
+ if (!existsSync(dir))
231
+ printError(`Client dossier not found: ${clientSlug}`);
232
+ const client = readJson(join(dir, 'client.json'));
233
+ const d = opts.date ?? dateStamp();
234
+ const file = `${d}-${slugify(opts.title)}.md`;
235
+ const body = `# ${opts.title}\n\nDate: ${d}\nClient: ${client?.name ?? clientSlug}\nAttendees:\n- \n\n## Summary\n\n## Client Feedback\n\n## Decisions\n\n## Action Items\n\n## Workflow Changes Requested\n\n## Follow-Up Email Draft\n`;
236
+ const path = join(dir, 'meetings', file);
237
+ writeFileSync(path, body);
238
+ printOutput({ created: path }, (opts.format ?? 'json'));
239
+ });
240
+ const feedback = clients.command('feedback').description('Feedback capture for a client dossier');
241
+ feedback
242
+ .command('add <slug>')
243
+ .requiredOption('--from <name>', 'Feedback source/contact')
244
+ .option('--workflow <id...>', 'Linked workflow ID(s)')
245
+ .option('--step <id...>', 'Linked step ID(s)')
246
+ .option('--file <path>', 'Path to markdown notes to embed')
247
+ .option('--requested <text...>', 'Requested changes')
248
+ .option('--acceptance <text...>', 'Acceptance notes')
249
+ .option('--question <text...>', 'Open questions')
250
+ .option('--format <fmt>', 'Output format', 'json')
251
+ .action(async (slug, opts) => {
252
+ try {
253
+ const clientDir = ensureClientDir(slug);
254
+ const feedbackDir = join(clientDir, 'feedback');
255
+ mkdirSync(feedbackDir, { recursive: true });
256
+ const fileName = `${dateStamp()}-${slugify(opts.from)}.md`;
257
+ const outPath = join(feedbackDir, fileName);
258
+ const imported = opts.file ? readFileSync(opts.file, 'utf-8').trim() : '';
259
+ const body = [
260
+ '# Client Feedback',
261
+ '',
262
+ `- Source: ${opts.from}`,
263
+ `- Date: ${dateStamp()}`,
264
+ `- Workflow IDs: ${(opts.workflow ?? []).join(', ') || 'N/A'}`,
265
+ `- Step IDs: ${(opts.step ?? []).join(', ') || 'N/A'}`,
266
+ '',
267
+ '## Requested changes',
268
+ ...((opts.requested ?? ['None provided']).map((x) => `- ${x}`)),
269
+ '',
270
+ '## Acceptance notes',
271
+ ...((opts.acceptance ?? ['None provided']).map((x) => `- ${x}`)),
272
+ '',
273
+ '## Open questions',
274
+ ...((opts.question ?? ['None provided']).map((x) => `- ${x}`)),
275
+ '',
276
+ '## Raw notes',
277
+ imported || '_No raw notes attached._',
278
+ '',
279
+ ].join('\n');
280
+ writeFileSync(outPath, body);
281
+ printOutput({ ok: true, path: outPath }, (opts.format ?? 'json'));
282
+ }
283
+ catch (error) {
284
+ printError(error instanceof Error ? error.message : String(error));
285
+ }
286
+ });
287
+ clients.command('reply <slug>').option('--about <topic>', 'Reply topic/context').option('--out <path>', 'Write draft reply to a file').option('--format <fmt>', 'Output format', 'json').action(async (slug, opts) => {
288
+ try {
289
+ const clientSlug = normalizeClientSlug(slug);
290
+ const clientDir = ensureClientDir(clientSlug);
291
+ const client = readJson(join(clientDir, 'client.json'));
292
+ const contacts = readJsonArray(join(clientDir, 'contacts.json'));
293
+ const decisionsPath = latestFilePath(join(clientDir, 'decisions'));
294
+ const feedbackPath = latestFilePath(join(clientDir, 'feedback'), ['.md']);
295
+ const draft = [
296
+ `# Draft reply (${dateStamp()})`,
297
+ '',
298
+ `Hi ${contacts[0]?.name ?? 'team'},`,
299
+ '',
300
+ `Thanks for the latest feedback${opts.about ? ` about ${opts.about}` : ''}.`,
301
+ '',
302
+ '## What we changed',
303
+ '- Reviewed latest workflow/test status and incorporated requested updates.',
304
+ '',
305
+ '## What is pending validation',
306
+ '- Final client-side confirmation and any browser/manual verification notes.',
307
+ '',
308
+ '## What we need from you',
309
+ '- Confirm acceptance criteria and any priority changes for the next sprint.',
310
+ '',
311
+ `Context: client=${client?.name ?? clientSlug}; latestFeedback=${feedbackPath ?? 'none'}; latestDecision=${decisionsPath ?? 'none'}.`,
312
+ '',
313
+ ].join('\n');
314
+ if (opts.out)
315
+ writeFileSync(opts.out, draft);
316
+ printOutput({ ok: true, draft, out: opts.out ?? null }, (opts.format ?? 'json'));
317
+ }
318
+ catch (error) {
319
+ printError(error instanceof Error ? error.message : String(error));
320
+ }
321
+ });
322
+ clients.command('validate <slug>').option('--notes <path>', 'Manual/browser validation notes file').option('--format <fmt>', 'Output format', 'json').action(async (slug, opts) => {
323
+ try {
324
+ const clientSlug = normalizeClientSlug(slug);
325
+ const clientDir = ensureClientDir(clientSlug);
326
+ const workflows = readJsonArray(join(clientDir, 'workflows.json'));
327
+ const testsDir = join(requireWorkspace(), 'tests');
328
+ const testFiles = existsSync(testsDir) ? readdirSync(testsDir).filter((f) => f.endsWith('.test.json')) : [];
329
+ const notes = opts.notes && existsSync(opts.notes) ? readFileSync(opts.notes, 'utf-8').trim() : 'No manual notes provided.';
330
+ const outDir = join(clientDir, 'validation');
331
+ mkdirSync(outDir, { recursive: true });
332
+ const outPath = join(outDir, `${dateStamp()}-validation-report.md`);
333
+ const md = [
334
+ `# Validation report (${dateStamp()})`,
335
+ '',
336
+ '## What was tested',
337
+ `- Linked workflows: ${workflows.length}`,
338
+ `- Local test files: ${testFiles.length}`,
339
+ '',
340
+ '## Passed/failed summary',
341
+ '- Local report generation succeeded. Run `agentled test <workflowId>` for assertion-level pass/fail.',
342
+ '',
343
+ '## Needs client confirmation',
344
+ '- UI/browser walkthrough and business acceptance review.',
345
+ '',
346
+ '## Evidence',
347
+ ...workflows.map((w) => `- Workflow: ${w.workflowId ?? w.id ?? 'unknown'}; latestExecutionId: ${w.latestExecutionId ?? 'n/a'}`),
348
+ '',
349
+ '## Manual/browser notes',
350
+ notes,
351
+ '',
352
+ '## DFE recommendation',
353
+ '- Proceed with selective sync after client confirms acceptance criteria.',
354
+ '',
355
+ ].join('\n');
356
+ writeFileSync(outPath, md);
357
+ printOutput({ ok: true, path: outPath }, (opts.format ?? 'json'));
358
+ }
359
+ catch (error) {
360
+ printError(error instanceof Error ? error.message : String(error));
361
+ }
362
+ });
363
+ clients.command('sync <slug>')
364
+ .option('--include-decisions', 'Include latest decisions file in synced knowledge text')
365
+ .option('--include-summary', 'Include latest validation summary in synced knowledge text')
366
+ .option('--format <fmt>', 'Output format', 'json')
367
+ .action(async (slug, opts) => {
368
+ try {
369
+ const clientSlug = normalizeClientSlug(slug);
370
+ const clientDir = resolveClientDir(clientSlug);
371
+ if (!existsSync(clientDir))
372
+ printError(`Client dossier not found: ${clientSlug}`);
373
+ const client = readJson(join(clientDir, 'client.json'));
374
+ const workflows = readJsonArray(join(clientDir, 'workflows.json'));
375
+ const decisionPath = opts.includeDecisions ? latestFilePath(join(clientDir, 'decisions')) : null;
376
+ const validationPath = opts.includeSummary ? latestFilePath(join(clientDir, 'validation')) : null;
377
+ const content = buildSyncContent({
378
+ clientSlug,
379
+ client,
380
+ workflows,
381
+ decisionPath,
382
+ validationPath,
383
+ includeDecisions: Boolean(opts.includeDecisions),
384
+ includeSummary: Boolean(opts.includeSummary),
385
+ });
386
+ const key = `client-dossier/${clientSlug}`;
387
+ const remote = await new AgentledClient().upsertKnowledgeText({
388
+ key,
389
+ title: `Client dossier: ${typeof client?.name === 'string' ? client.name : clientSlug}`,
390
+ content,
391
+ tags: ['client-dossier', clientSlug],
392
+ });
393
+ printOutput({
394
+ ok: true,
395
+ key,
396
+ remote,
397
+ included: {
398
+ decisions: decisionPath,
399
+ validationSummary: validationPath,
400
+ },
401
+ }, (opts.format ?? 'json'));
402
+ }
403
+ catch (error) {
404
+ printError(error instanceof Error ? error.message : String(error));
405
+ }
406
+ });
407
+ }
408
+ //# sourceMappingURL=clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/commands/clients.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export function registerDoCommand(program) {
60
60
  }
61
61
  if (result.action === 'executed') {
62
62
  console.log(`\nExecution started:`);
63
- console.log(` Execution ID: ${result.execution?.executionInputId}`);
63
+ console.log(` Execution input ID: ${result.execution?.executionInputId}`);
64
64
  console.log(` Workflow ID: ${result.execution?.pipelineId}`);
65
65
  }
66
66
  if (result.action === 'confirmation_needed') {
@@ -1 +1 @@
1
- {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/commands/do.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/commands/do.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * `agentled examples` — surface the agentic-ops patterns bundled with the CLI.
2
+ * `agentled examples` — surface workflow patterns bundled with the CLI.
3
3
  *
4
- * The patterns are maintained in the public `agentled/agentic-ops` repo and
5
- * mirrored into `packages/cli/patterns/v1/` at build time. A drift test in
6
- * `__tests__/cli-patterns-mirror.test.ts` enforces byte-identity between the
7
- * two copies so the CLI cannot ship stale advice.
4
+ * Canonical platform-agnostic patterns are mirrored from the public
5
+ * `agentled/agentic-ops` repo. CLI-only patterns live in
6
+ * `packages/cli/patterns/v1/` when the guidance is specific to Agentled CLI
7
+ * workflow authoring.
8
8
  *
9
9
  * Usage:
10
10
  * agentled examples # list all patterns
@@ -3,6 +3,7 @@ import { existsSync, readdirSync, readFileSync } from 'node:fs';
3
3
  import { join, dirname, resolve } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  const PUBLIC_REPO_URL = 'https://github.com/agentled/agentic-ops';
6
+ const CLI_ONLY_PATTERN_SLUGS = new Set(['13-entity-pipeline-lifecycle']);
6
7
  function resolveBundledPatternsDir() {
7
8
  const here = fileURLToPath(import.meta.url);
8
9
  // dist/commands/examples.js → package root is two levels up
@@ -64,7 +65,7 @@ export function registerExamplesCommand(program) {
64
65
  process.exit(1);
65
66
  }
66
67
  if (!pattern || opts.list) {
67
- console.log('Available patterns (public source: ' + PUBLIC_REPO_URL + '/tree/main/patterns/v1):\n');
68
+ console.log('Available patterns (bundled with the Agentled CLI):\n');
68
69
  for (const p of patterns) {
69
70
  console.log(` ${p.slug.padEnd(30)} ${p.title}`);
70
71
  }
@@ -78,7 +79,12 @@ export function registerExamplesCommand(program) {
78
79
  process.exit(1);
79
80
  }
80
81
  console.log(readFileSync(found.path, 'utf-8'));
81
- console.log(`\n---\nSource: ${PUBLIC_REPO_URL}/blob/main/patterns/v1/${found.slug}.md`);
82
+ if (CLI_ONLY_PATTERN_SLUGS.has(found.slug)) {
83
+ console.log(`\n---\nSource: bundled CLI pattern (${found.slug}.md)`);
84
+ }
85
+ else {
86
+ console.log(`\n---\nSource: ${PUBLIC_REPO_URL}/blob/main/patterns/v1/${found.slug}.md`);
87
+ }
82
88
  });
83
89
  program
84
90
  .command('best-practices')
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/commands/examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/commands/examples.ts"],"names":[],"mappings":"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"}