@epiccontext/mcp 0.1.30 → 0.1.31

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.
@@ -1,5 +1,6 @@
1
1
  export interface PushOptions {
2
2
  section?: string;
3
+ dryRun?: boolean;
3
4
  }
4
5
  export declare function pushCommand(options: PushOptions): Promise<void>;
5
6
  //# sourceMappingURL=push.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ErE"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GrE"}
@@ -5,9 +5,23 @@ import { createClient } from "../../api/client.js";
5
5
  import { pushToCloud } from "../../sync/push.js";
6
6
  export async function pushCommand(options) {
7
7
  const config = loadConfig();
8
- if (!config?.project?.id || !config?.auth?.apiKey) {
9
- console.log(chalk.yellow("Not linked to an EpicContext project."));
10
- console.log(`Run ${chalk.cyan("epiccontext link")} to connect.`);
8
+ // Check if linked to a project
9
+ if (!config) {
10
+ console.log(chalk.red("Not linked to an EpicContext project.\n"));
11
+ console.log("To sync your CONTEXT folder, you need to:");
12
+ console.log(` 1. Run ${chalk.cyan("npx @epiccontext/mcp link")} to connect to your project`);
13
+ console.log(` 2. Then run ${chalk.cyan("npx @epiccontext/mcp push")} to sync\n`);
14
+ console.log(chalk.gray("Tip: Get your project URL from the EpicContext web app settings."));
15
+ return;
16
+ }
17
+ if (!config.project?.id) {
18
+ console.log(chalk.red("Project ID is missing from configuration.\n"));
19
+ console.log(`Run ${chalk.cyan("npx @epiccontext/mcp link")} to reconnect to your project.`);
20
+ return;
21
+ }
22
+ if (!config.auth?.apiKey) {
23
+ console.log(chalk.red("API key is missing from configuration.\n"));
24
+ console.log(`Run ${chalk.cyan("npx @epiccontext/mcp link")} to set up authentication.`);
11
25
  return;
12
26
  }
13
27
  const contextPath = getContextPath();
@@ -31,30 +45,45 @@ export async function pushCommand(options) {
31
45
  apiKey: config.auth.apiKey,
32
46
  projectId: config.project.id,
33
47
  });
34
- const spinner = ora("Pushing to EpicContext...").start();
48
+ const isDryRun = options.dryRun ?? false;
49
+ const spinnerText = isDryRun
50
+ ? "Checking what would be pushed..."
51
+ : "Pushing to EpicContext...";
52
+ const spinner = ora(spinnerText).start();
35
53
  try {
36
54
  // Default to folder_wins for push - user is explicitly sending local changes to cloud
37
- // Use --no-force (future option) or --timestamp for timestamp-based resolution
38
55
  const result = await pushToCloud(client, contextPath, {
39
56
  path: options.section,
40
57
  conflictResolution: "folder_wins",
58
+ dryRun: isDryRun,
41
59
  });
42
- spinner.succeed("Push complete!");
43
- console.log("");
60
+ if (isDryRun) {
61
+ spinner.succeed("Dry run complete - no changes were made");
62
+ console.log("");
63
+ console.log(chalk.cyan(" The following changes would be made:\n"));
64
+ }
65
+ else {
66
+ spinner.succeed("Push complete!");
67
+ console.log("");
68
+ }
44
69
  console.log(chalk.gray(` Files processed: ${result.filesProcessed}`));
45
70
  if (result.result.created > 0) {
46
- console.log(chalk.green(` Created: ${result.result.created} block(s)`));
71
+ const verb = isDryRun ? "Would create" : "Created";
72
+ console.log(chalk.green(` ${verb}: ${result.result.created} block(s)`));
47
73
  }
48
74
  if (result.result.updated > 0) {
49
- console.log(chalk.blue(` Updated: ${result.result.updated} block(s)`));
75
+ const verb = isDryRun ? "Would update" : "Updated";
76
+ console.log(chalk.blue(` ${verb}: ${result.result.updated} block(s)`));
50
77
  }
51
78
  // Show deleted orphan blocks
52
79
  if (result.result.deleted && result.result.deleted > 0) {
53
- console.log(chalk.yellow(` Deleted: ${result.result.deleted} orphan block(s)`));
80
+ const verb = isDryRun ? "Would delete" : "Deleted";
81
+ console.log(chalk.yellow(` ${verb}: ${result.result.deleted} orphan block(s)`));
54
82
  }
55
83
  // Show skipped files (should be rare with folder_wins, but can happen with parse errors)
56
84
  if (result.result.skipped > 0) {
57
- console.log(chalk.gray(` Skipped: ${result.result.skipped} file(s)`));
85
+ const verb = isDryRun ? "Would skip" : "Skipped";
86
+ console.log(chalk.gray(` ${verb}: ${result.result.skipped} file(s)`));
58
87
  }
59
88
  if (result.result.errors.length > 0) {
60
89
  console.log(chalk.red(` Errors: ${result.result.errors.length}`));
@@ -63,9 +92,12 @@ export async function pushCommand(options) {
63
92
  }
64
93
  }
65
94
  console.log("");
95
+ if (isDryRun && (result.result.created > 0 || result.result.updated > 0 || (result.result.deleted && result.result.deleted > 0))) {
96
+ console.log(chalk.gray(`Run ${chalk.cyan("npx @epicontext/mcp push")} (without --dry-run) to apply these changes.`));
97
+ }
66
98
  }
67
99
  catch (error) {
68
- spinner.fail("Push failed");
100
+ spinner.fail(isDryRun ? "Dry run failed" : "Push failed");
69
101
  console.error(chalk.red("Error:"), error.message);
70
102
  process.exit(1);
71
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface ValidateOptions {
2
+ fix?: boolean;
3
+ }
4
+ export declare function validateCommand(options: ValidateOptions): Promise<void>;
5
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA4SD,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF7E"}
@@ -0,0 +1,327 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import { getContextPath } from "../config.js";
6
+ import { readContextFolder } from "../files.js";
7
+ // Block type to allowed sections and subfolder mapping
8
+ // Derived from block-type-masters.ts
9
+ const BLOCK_TYPE_RULES = {
10
+ // Development section
11
+ epic: { allowedSections: ["development"], subfolder: "epics" },
12
+ user_story: { allowedSections: ["development"], subfolder: "stories" },
13
+ task: { allowedSections: ["development"], subfolder: "tasks" },
14
+ roadmap: { allowedSections: ["development"], subfolder: "roadmaps" },
15
+ release: { allowedSections: ["development"], subfolder: "releases" },
16
+ impact_effort_matrix: { allowedSections: ["development"] },
17
+ // Users section
18
+ persona: { allowedSections: ["users"], subfolder: "personas" },
19
+ jtbd: { allowedSections: ["users"], subfolder: "jobs" },
20
+ journey_map: { allowedSections: ["users"], subfolder: "journeys" },
21
+ // Product section
22
+ feature: { allowedSections: ["product"], subfolder: "features" },
23
+ product_overview: { allowedSections: ["product"] },
24
+ feature_market_analysis: { allowedSections: ["product"] },
25
+ swot_analysis: { allowedSections: ["product"] },
26
+ // Brand section
27
+ brand_positioning: { allowedSections: ["brand"] },
28
+ brand_color_palette: { allowedSections: ["brand"] },
29
+ brand_typography: { allowedSections: ["brand"] },
30
+ brand_iconography: { allowedSections: ["brand"] },
31
+ tone_of_voice: { allowedSections: ["brand"] },
32
+ messaging_framework: { allowedSections: ["brand"] },
33
+ logo: { allowedSections: ["brand"] },
34
+ brand_assets: { allowedSections: ["brand"] },
35
+ // Technical section
36
+ tech_stack: { allowedSections: ["technical"] },
37
+ architecture_diagram: { allowedSections: ["technical"] },
38
+ integration: { allowedSections: ["technical"], subfolder: "integrations" },
39
+ constraint: { allowedSections: ["technical", "constitution"] },
40
+ // Research section
41
+ competitor: { allowedSections: ["research"], subfolder: "competitors" },
42
+ market_research: { allowedSections: ["research"] },
43
+ user_research: { allowedSections: ["research"] },
44
+ // Decisions section
45
+ decision: { allowedSections: ["decisions"] },
46
+ // Metrics section
47
+ north_star: { allowedSections: ["metrics"] },
48
+ kpi: { allowedSections: ["metrics"] },
49
+ metric: { allowedSections: ["metrics"] },
50
+ analytics_event: { allowedSections: ["metrics"] },
51
+ // Information Architecture section
52
+ ia_tree: { allowedSections: ["information-architecture", "information_architecture"] },
53
+ taxonomy: { allowedSections: ["information-architecture", "information_architecture"] },
54
+ // Design System section
55
+ storybook_link: { allowedSections: ["design-system", "design_system"] },
56
+ figma_embed: { allowedSections: ["design-system", "design_system"] },
57
+ // Constitution section
58
+ ai_rules: { allowedSections: ["constitution"] },
59
+ context_guide: { allowedSections: ["constitution"] },
60
+ implementation_log: { allowedSections: ["constitution"] },
61
+ // Business Strategy section
62
+ ogsm: { allowedSections: ["business-strategy", "business_strategy"] },
63
+ obeya_board: { allowedSections: ["business-strategy", "business_strategy"] },
64
+ product_strategy_canvas: { allowedSections: ["business-strategy", "business_strategy"] },
65
+ business_model_canvas: { allowedSections: ["business-strategy", "business_strategy"] },
66
+ porters_five_forces: { allowedSections: ["business-strategy", "business_strategy"] },
67
+ strategic_group_map: { allowedSections: ["business-strategy", "business_strategy"] },
68
+ // Generic types (allowed in most sections)
69
+ section_guide: { allowedSections: ["*"] },
70
+ text: { allowedSections: ["*"] },
71
+ };
72
+ // Valid sections (folder names)
73
+ const VALID_SECTIONS = [
74
+ "constitution",
75
+ "brand",
76
+ "product",
77
+ "business-strategy",
78
+ "users",
79
+ "research",
80
+ "technical",
81
+ "design-system",
82
+ "information-architecture",
83
+ "metrics",
84
+ "decisions",
85
+ "development",
86
+ ];
87
+ /**
88
+ * Extract frontmatter from markdown content
89
+ */
90
+ function extractFrontmatter(content) {
91
+ const match = content.match(/^---\n([\s\S]*?)\n---/);
92
+ if (!match)
93
+ return null;
94
+ const frontmatter = {};
95
+ const lines = match[1].split("\n");
96
+ for (const line of lines) {
97
+ const colonIndex = line.indexOf(":");
98
+ if (colonIndex > 0) {
99
+ const key = line.slice(0, colonIndex).trim();
100
+ let value = line.slice(colonIndex + 1).trim();
101
+ // Remove quotes
102
+ if ((value.startsWith('"') && value.endsWith('"')) ||
103
+ (value.startsWith("'") && value.endsWith("'"))) {
104
+ value = value.slice(1, -1);
105
+ }
106
+ frontmatter[key] = value;
107
+ }
108
+ }
109
+ return frontmatter;
110
+ }
111
+ /**
112
+ * Get section from file path
113
+ */
114
+ function getSectionFromPath(filePath) {
115
+ // Path is like: users/personas/primary-user.md or brand/tone-of-voice.md
116
+ const parts = filePath.split("/");
117
+ if (parts.length >= 1) {
118
+ return parts[0];
119
+ }
120
+ return null;
121
+ }
122
+ /**
123
+ * Normalize section name (handle hyphen/underscore differences)
124
+ */
125
+ function normalizeSection(section) {
126
+ return section.replace(/-/g, "_").toLowerCase();
127
+ }
128
+ /**
129
+ * Check if block type is allowed in section
130
+ */
131
+ function isBlockTypeAllowedInSection(blockType, section) {
132
+ const rules = BLOCK_TYPE_RULES[blockType];
133
+ if (!rules) {
134
+ // Unknown block type - allow anywhere (will be caught by block type validation)
135
+ return true;
136
+ }
137
+ if (rules.allowedSections.includes("*")) {
138
+ return true;
139
+ }
140
+ const normalizedSection = normalizeSection(section);
141
+ return rules.allowedSections.some(s => normalizeSection(s) === normalizedSection);
142
+ }
143
+ /**
144
+ * Get suggested section for a block type
145
+ */
146
+ function getSuggestedSection(blockType) {
147
+ const rules = BLOCK_TYPE_RULES[blockType];
148
+ if (!rules || rules.allowedSections.includes("*")) {
149
+ return null;
150
+ }
151
+ return rules.allowedSections[0];
152
+ }
153
+ /**
154
+ * Validate a single file
155
+ */
156
+ function validateFile(filePath, content) {
157
+ const issues = [];
158
+ // Check for frontmatter
159
+ const frontmatter = extractFrontmatter(content);
160
+ if (!frontmatter) {
161
+ issues.push({
162
+ path: filePath,
163
+ severity: "error",
164
+ message: "Missing YAML frontmatter",
165
+ suggestion: "Add frontmatter with: type, section, key, name, status",
166
+ });
167
+ return issues;
168
+ }
169
+ // Check required frontmatter fields
170
+ const requiredFields = ["type", "section", "key", "name", "status"];
171
+ for (const field of requiredFields) {
172
+ if (!frontmatter[field]) {
173
+ issues.push({
174
+ path: filePath,
175
+ severity: "error",
176
+ message: `Missing required frontmatter field: ${field}`,
177
+ });
178
+ }
179
+ }
180
+ // If missing type or section, can't do further validation
181
+ if (!frontmatter.type || !frontmatter.section) {
182
+ return issues;
183
+ }
184
+ // Check if block type is known
185
+ const blockType = frontmatter.type;
186
+ if (!BLOCK_TYPE_RULES[blockType]) {
187
+ issues.push({
188
+ path: filePath,
189
+ severity: "warning",
190
+ message: `Unknown block type: "${blockType}"`,
191
+ suggestion: "Check CONTEXT/AI-GUIDE.md for valid block types",
192
+ });
193
+ }
194
+ // Check section validity
195
+ const declaredSection = frontmatter.section;
196
+ const fileSection = getSectionFromPath(filePath);
197
+ if (fileSection && !VALID_SECTIONS.includes(fileSection)) {
198
+ issues.push({
199
+ path: filePath,
200
+ severity: "warning",
201
+ message: `File is in non-standard folder: "${fileSection}"`,
202
+ suggestion: `Valid sections: ${VALID_SECTIONS.join(", ")}`,
203
+ });
204
+ }
205
+ // Check section mismatch between frontmatter and file location
206
+ if (fileSection && normalizeSection(declaredSection) !== normalizeSection(fileSection)) {
207
+ issues.push({
208
+ path: filePath,
209
+ severity: "error",
210
+ message: `Section mismatch: frontmatter says "${declaredSection}" but file is in "${fileSection}"`,
211
+ suggestion: `Update frontmatter to: section: ${fileSection}`,
212
+ });
213
+ }
214
+ // Check if block type is allowed in section (the key validation)
215
+ if (fileSection && !isBlockTypeAllowedInSection(blockType, fileSection)) {
216
+ const suggestedSection = getSuggestedSection(blockType);
217
+ issues.push({
218
+ path: filePath,
219
+ severity: "error",
220
+ message: `Block type "${blockType}" is not allowed in "${fileSection}" section`,
221
+ suggestion: suggestedSection
222
+ ? `Move file to: ${suggestedSection}/${path.basename(filePath)}`
223
+ : `Check CONTEXT/AI-GUIDE.md for where "${blockType}" blocks should go`,
224
+ });
225
+ }
226
+ // Check status value
227
+ if (frontmatter.status) {
228
+ const validStatuses = ["draft", "complete", "empty"];
229
+ if (!validStatuses.includes(frontmatter.status)) {
230
+ issues.push({
231
+ path: filePath,
232
+ severity: "warning",
233
+ message: `Invalid status: "${frontmatter.status}"`,
234
+ suggestion: `Valid statuses: ${validStatuses.join(", ")}`,
235
+ });
236
+ }
237
+ }
238
+ // Check key format (should be kebab-case)
239
+ if (frontmatter.key) {
240
+ const key = frontmatter.key;
241
+ if (key !== key.toLowerCase() || key.includes(" ") || /[A-Z]/.test(key)) {
242
+ issues.push({
243
+ path: filePath,
244
+ severity: "warning",
245
+ message: `Key "${key}" should be kebab-case (lowercase with hyphens)`,
246
+ suggestion: `Use: ${key.toLowerCase().replace(/\s+/g, "-").replace(/[A-Z]/g, (c) => c.toLowerCase())}`,
247
+ });
248
+ }
249
+ }
250
+ return issues;
251
+ }
252
+ export async function validateCommand(options) {
253
+ const contextPath = getContextPath();
254
+ if (!contextPath) {
255
+ // If not linked, try to find CONTEXT folder in current directory
256
+ const defaultPath = path.join(process.cwd(), "CONTEXT");
257
+ if (!fs.existsSync(defaultPath)) {
258
+ console.log(chalk.red("No CONTEXT folder found."));
259
+ console.log(`Run ${chalk.cyan("npx @epicontext/mcp init")} to create one.`);
260
+ return;
261
+ }
262
+ }
263
+ const folderToValidate = contextPath || path.join(process.cwd(), "CONTEXT");
264
+ const spinner = ora("Validating CONTEXT folder...").start();
265
+ try {
266
+ const files = readContextFolder(folderToValidate);
267
+ if (files.length === 0) {
268
+ spinner.succeed("CONTEXT folder is empty (no markdown files to validate)");
269
+ return;
270
+ }
271
+ const allIssues = [];
272
+ for (const file of files) {
273
+ const issues = validateFile(file.path, file.content);
274
+ allIssues.push(...issues);
275
+ }
276
+ spinner.stop();
277
+ // Group issues by severity
278
+ const errors = allIssues.filter((i) => i.severity === "error");
279
+ const warnings = allIssues.filter((i) => i.severity === "warning");
280
+ console.log("");
281
+ console.log(chalk.bold(`Validated ${files.length} file(s)\n`));
282
+ if (allIssues.length === 0) {
283
+ console.log(chalk.green("✓ All files are valid!\n"));
284
+ return;
285
+ }
286
+ // Show errors
287
+ if (errors.length > 0) {
288
+ console.log(chalk.red(`✗ ${errors.length} error(s):\n`));
289
+ for (const issue of errors) {
290
+ console.log(chalk.red(` ${issue.path}`));
291
+ console.log(chalk.red(` ${issue.message}`));
292
+ if (issue.suggestion) {
293
+ console.log(chalk.gray(` → ${issue.suggestion}`));
294
+ }
295
+ console.log("");
296
+ }
297
+ }
298
+ // Show warnings
299
+ if (warnings.length > 0) {
300
+ console.log(chalk.yellow(`⚠ ${warnings.length} warning(s):\n`));
301
+ for (const issue of warnings) {
302
+ console.log(chalk.yellow(` ${issue.path}`));
303
+ console.log(chalk.yellow(` ${issue.message}`));
304
+ if (issue.suggestion) {
305
+ console.log(chalk.gray(` → ${issue.suggestion}`));
306
+ }
307
+ console.log("");
308
+ }
309
+ }
310
+ // Summary
311
+ if (errors.length > 0) {
312
+ console.log(chalk.red(`\nValidation failed with ${errors.length} error(s) and ${warnings.length} warning(s).`));
313
+ console.log(chalk.gray("Fix the errors before pushing to EpicContext."));
314
+ process.exit(1);
315
+ }
316
+ else {
317
+ console.log(chalk.yellow(`\nValidation passed with ${warnings.length} warning(s).`));
318
+ console.log(chalk.gray("You can push to EpicContext, but consider fixing the warnings."));
319
+ }
320
+ }
321
+ catch (error) {
322
+ spinner.fail("Validation failed");
323
+ console.error(chalk.red("Error:"), error.message);
324
+ process.exit(1);
325
+ }
326
+ }
327
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,YAAiB,GACzB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAsC9D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,QAAQ,EAAE,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAyB7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA6oE7D;AA4BD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,IAAI,CAsFrG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOpD"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,YAAiB,GACzB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAsC9D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,QAAQ,EAAE,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAyB7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgyE7D;AA4BD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB,GAAG,IAAI,CAkGrG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOpD"}
package/dist/cli/files.js CHANGED
@@ -2256,33 +2256,179 @@ status: draft
2256
2256
  `;
2257
2257
  fs.writeFileSync(aiGuidePath, aiGuide, "utf-8");
2258
2258
  }
2259
- // Create README.md for each section
2259
+ // Create README.md for each section with detailed guidance
2260
2260
  const sectionDescriptions = {
2261
- "constitution": "Non-negotiable rules and principles that guide all work",
2262
- "brand": "Identity, voice, and visual system",
2263
- "product": "Vision, features, and roadmap",
2264
- "business-strategy": "Strategic planning frameworks and business models",
2265
- "users": "Personas, jobs to be done, and user journeys",
2266
- "research": "Market and competitor analysis",
2267
- "technical": "Stack, architecture, and constraints",
2268
- "design-system": "Links to Storybook and Figma design resources",
2269
- "information-architecture": "Site structure and taxonomies",
2270
- "metrics": "KPIs and analytics",
2271
- "decisions": "Architecture decision records",
2272
- "development": "Epics, stories, tasks, and roadmaps",
2261
+ "constitution": {
2262
+ description: "Non-negotiable rules and principles that guide all work",
2263
+ guidance: `Use this section to document:
2264
+ - **AI Rules**: Guidelines that AI agents must follow when working on this project
2265
+ - **Context Guide**: How to navigate and use the CONTEXT folder
2266
+ - **Constraints**: Technical, business, or legal limitations that affect all work
2267
+ - **Core Principles**: Fundamental values that guide decision-making
2268
+
2269
+ This is the first section AI agents should read to understand project boundaries.`,
2270
+ blockTypes: ["ai_rules", "context_guide", "constraint", "implementation_log"],
2271
+ },
2272
+ "brand": {
2273
+ description: "Identity, voice, and visual system",
2274
+ guidance: `Use this section to document:
2275
+ - **Brand Positioning**: Golden Circle (WHY/HOW/WHAT) and positioning statement
2276
+ - **Color Palette**: Primary, secondary, and semantic colors with hex/RGB values
2277
+ - **Typography**: Font families, weights, and usage guidelines
2278
+ - **Iconography**: Icon library, style, and selected icons
2279
+ - **Tone of Voice**: Brand personality, voice archetype, vocabulary
2280
+ - **Messaging**: Elevator pitch, value propositions, CTAs
2281
+ - **Logos**: Logo variants for different backgrounds`,
2282
+ blockTypes: ["brand_positioning", "brand_color_palette", "brand_typography", "brand_iconography", "tone_of_voice", "messaging_framework", "logo", "brand_assets"],
2283
+ },
2284
+ "product": {
2285
+ description: "Vision, features, and roadmap",
2286
+ guidance: `Use this section to document:
2287
+ - **Product Overview**: Vision, mission, and product strategy
2288
+ - **Features**: Individual feature definitions with acceptance criteria
2289
+ - **SWOT Analysis**: Strengths, weaknesses, opportunities, threats
2290
+ - **Feature Market Analysis**: Competitive analysis for specific features`,
2291
+ blockTypes: ["product_overview", "feature", "swot_analysis", "feature_market_analysis"],
2292
+ },
2293
+ "business-strategy": {
2294
+ description: "Strategic planning frameworks and business models",
2295
+ guidance: `Use this section to document:
2296
+ - **OGSM**: Objectives, Goals, Strategies, Measures framework
2297
+ - **Business Model Canvas**: 9-block business model visualization
2298
+ - **Product Strategy Canvas**: Product-specific strategy
2299
+ - **Porter's Five Forces**: Competitive forces analysis
2300
+ - **Strategic Group Map**: Market positioning visualization
2301
+ - **Obeya Board**: Visual management board`,
2302
+ blockTypes: ["ogsm", "business_model_canvas", "product_strategy_canvas", "porters_five_forces", "strategic_group_map", "obeya_board"],
2303
+ },
2304
+ "users": {
2305
+ description: "Personas, jobs to be done, and user journeys",
2306
+ guidance: `Use this section to document:
2307
+ - **Personas**: Detailed user archetypes with goals, frustrations, behaviors
2308
+ - **Jobs to Be Done**: Functional and emotional jobs users are trying to accomplish
2309
+ - **Journey Maps**: Step-by-step user experiences with touchpoints and emotions
2310
+
2311
+ Organize files in subfolders:
2312
+ - \`personas/\` - User persona files
2313
+ - \`jobs/\` - JTBD files
2314
+ - \`journeys/\` - Journey map files`,
2315
+ blockTypes: ["persona", "jtbd", "journey_map"],
2316
+ },
2317
+ "research": {
2318
+ description: "Market and competitor analysis",
2319
+ guidance: `Use this section to document:
2320
+ - **Competitors**: Analysis of competing products/services
2321
+ - **Market Research**: Market size, trends, and opportunities
2322
+ - **User Research**: Findings from user interviews, surveys, usability tests
2323
+
2324
+ Organize competitor files in: \`competitors/\``,
2325
+ blockTypes: ["competitor", "market_research", "user_research"],
2326
+ },
2327
+ "technical": {
2328
+ description: "Stack, architecture, and constraints",
2329
+ guidance: `Use this section to document:
2330
+ - **Tech Stack**: Frontend, backend, infrastructure, and tools
2331
+ - **Architecture Diagrams**: C4 model diagrams (Context, Container, Component)
2332
+ - **Integrations**: Third-party services and APIs
2333
+ - **Constraints**: Technical limitations and requirements
2334
+
2335
+ Organize integration files in: \`integrations/\``,
2336
+ blockTypes: ["tech_stack", "architecture_diagram", "integration", "constraint"],
2337
+ },
2338
+ "design-system": {
2339
+ description: "Links to Storybook and Figma design resources",
2340
+ guidance: `Use this section to link external design resources:
2341
+ - **Storybook Link**: Connect to your hosted Storybook for component documentation
2342
+ - Supports EpicContext authentication for protected Storybooks
2343
+ - Use the storybook-template repo for easy setup
2344
+ - **Figma Embed**: Link to Figma design files
2345
+
2346
+ Note: This section is for linking external design tools, not for documenting
2347
+ components directly. Component documentation lives in Storybook.`,
2348
+ blockTypes: ["storybook_link", "figma_embed"],
2349
+ },
2350
+ "information-architecture": {
2351
+ description: "Site structure and taxonomies",
2352
+ guidance: `Use this section to document:
2353
+ - **IA Tree**: Visual representation of page hierarchy and navigation
2354
+ - Shows pages, modals, and their relationships
2355
+ - Documents cross-page links and user flows
2356
+ - Uses embedded JSON for sync compatibility
2357
+ - **Taxonomy**: Content classification systems
2358
+ - Categories, tags, and content types
2359
+ - Hierarchical organization of content
2360
+
2361
+ These blocks use visual editors in the EpicContext app.`,
2362
+ blockTypes: ["ia_tree", "taxonomy"],
2363
+ },
2364
+ "metrics": {
2365
+ description: "KPIs and analytics",
2366
+ guidance: `Use this section to document:
2367
+ - **North Star**: The single most important metric for the product
2368
+ - **KPIs**: Key Performance Indicators with targets and tracking
2369
+ - **Metrics**: Individual metric definitions
2370
+ - **Analytics Events**: Event tracking definitions for implementation`,
2371
+ blockTypes: ["north_star", "kpi", "metric", "analytics_event"],
2372
+ },
2373
+ "decisions": {
2374
+ description: "Architecture decision records",
2375
+ guidance: `Use this section to document:
2376
+ - **Decisions**: Architecture Decision Records (ADRs)
2377
+ - Context: What situation led to this decision?
2378
+ - Options: What alternatives were considered?
2379
+ - Decision: What was decided?
2380
+ - Rationale: Why this choice over alternatives?
2381
+ - Consequences: What are the implications?
2382
+
2383
+ Good ADRs help future team members understand why things are built this way.`,
2384
+ blockTypes: ["decision"],
2385
+ },
2386
+ "development": {
2387
+ description: "Epics, stories, tasks, and roadmaps",
2388
+ guidance: `Use this section to track development work:
2389
+ - **Epics**: Large initiatives spanning multiple sprints
2390
+ - **User Stories**: User-facing features with acceptance criteria
2391
+ - **Tasks**: Technical implementation plans (often created by AI agents)
2392
+ - **Roadmaps**: Timeline visualization of epics and milestones
2393
+
2394
+ Hierarchy: Epic → User Story → Task
2395
+
2396
+ Organize files in subfolders:
2397
+ - \`epics/\` - Epic files
2398
+ - \`stories/\` - User story files
2399
+ - \`tasks/\` - Task/implementation plan files
2400
+ - \`roadmaps/\` - Roadmap files`,
2401
+ blockTypes: ["epic", "user_story", "task", "roadmap", "release", "impact_effort_matrix"],
2402
+ },
2273
2403
  };
2274
2404
  for (const section of defaultSections) {
2275
2405
  const sectionReadmePath = path.join(contextPath, section, "README.md");
2276
2406
  if (!fs.existsSync(sectionReadmePath)) {
2277
- const description = sectionDescriptions[section] || section;
2407
+ const sectionInfo = sectionDescriptions[section];
2408
+ const description = sectionInfo?.description || section;
2409
+ const guidance = sectionInfo?.guidance || "Add blocks via the EpicContext app or create markdown files with proper frontmatter.";
2410
+ const blockTypes = sectionInfo?.blockTypes || [];
2278
2411
  const sectionName = section.split("-").map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
2279
2412
  const sectionReadme = `# ${sectionName}
2280
2413
 
2281
2414
  > ${description}
2282
2415
 
2283
- This section is empty. Add blocks via the EpicContext app or create markdown files with proper frontmatter.
2416
+ ## When to Use This Section
2284
2417
 
2285
- See \`AI-GUIDE.md\` in the root CONTEXT folder for file format instructions.
2418
+ ${guidance}
2419
+
2420
+ ## Block Types
2421
+
2422
+ ${blockTypes.length > 0 ? blockTypes.map(t => `- \`${t}\``).join("\n") : "See AI-GUIDE.md for available block types."}
2423
+
2424
+ ## Getting Started
2425
+
2426
+ 1. Create a new markdown file in this folder
2427
+ 2. Add YAML frontmatter with: type, section, key, name, status
2428
+ 3. Write content following the block type schema
2429
+ 4. Sync with EpicContext: \`npx @epicontext/mcp push\`
2430
+
2431
+ See \`AI-GUIDE.md\` in the root CONTEXT folder for detailed format instructions.
2286
2432
  `;
2287
2433
  fs.writeFileSync(sectionReadmePath, sectionReadme, "utf-8");
2288
2434
  }
@@ -2357,14 +2503,26 @@ status: draft
2357
2503
  [Content following the block type schema]
2358
2504
  \`\`\`
2359
2505
 
2360
- ## Syncing
2506
+ ## Syncing with EpicContext Cloud
2361
2507
 
2362
- After creating or editing files, sync with EpicContext:
2508
+ After creating or editing CONTEXT files, sync them to EpicContext:
2363
2509
 
2364
2510
  \`\`\`bash
2511
+ # Check sync status
2512
+ npx @epiccontext/mcp status
2513
+
2514
+ # Push local changes to cloud (overwrites cloud version)
2365
2515
  npx @epiccontext/mcp push
2516
+
2517
+ # Pull changes from cloud to local
2518
+ npx @epiccontext/mcp pull
2519
+
2520
+ # Push only a specific section
2521
+ npx @epiccontext/mcp push --section product
2366
2522
  \`\`\`
2367
2523
 
2524
+ **IMPORTANT:** Always run \`npx @epiccontext/mcp push\` after creating or updating CONTEXT files to sync changes to the EpicContext cloud.
2525
+
2368
2526
  For full documentation, see \`${relativeContextPath}/AI-GUIDE.md\`
2369
2527
  `;
2370
2528
  // CLAUDE.md - Claude Code / Anthropic Claude
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAghEnB,CAAC;QACE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,oCAAoC;IACpC,MAAM,mBAAmB,GAA2B;QAClD,cAAc,EAAE,yDAAyD;QACzE,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE,+BAA+B;QAC1C,mBAAmB,EAAE,mDAAmD;QACxE,OAAO,EAAE,8CAA8C;QACvD,UAAU,EAAE,gCAAgC;QAC5C,WAAW,EAAE,sCAAsC;QACnD,eAAe,EAAE,+CAA+C;QAChE,0BAA0B,EAAE,+BAA+B;QAC3D,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,+BAA+B;QAC5C,aAAa,EAAE,qCAAqC;KACrD,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;YAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClG,MAAM,aAAa,GAAG,KAAK,WAAW;;IAExC,WAAW;;;;;CAKd,CAAC;YACI,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,WAAmB,EACnB,OAAe,EACf,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,OAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG;QAChB,IAAI;WACD,OAAO;OACX,GAAG;QACF,IAAI;;;;EAIV,OAAO,EAAE,CAAC;QACR,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,cAAsB,WAAW;IAC7F,MAAM,mBAAmB,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IAE5F,gEAAgE;IAChE,MAAM,iBAAiB,GAAG;;;;;;QAMpB,mBAAmB;;sBAEL,mBAAmB;;;;kEAIyB,mBAAmB;;;;;;;;;oCASjD,mBAAmB;sCACjB,mBAAmB;wCACjB,mBAAmB;+BAC5B,mBAAmB;yBACzB,mBAAmB;sCACN,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;gCA0BzB,mBAAmB;CAClD,CAAC;IAEA,6CAA6C;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,2BAA2B;IAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO,CAAC,GAAW,EAAE,UAAkB;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEzD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,2CAA2C;gBAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACjE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,2BAA2B;gBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;oBAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,YAAY;wBAClB,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,KAAiB,EACjB,UAAwB,EAAE;IAE1B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,6BAA6B;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,UAAU,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;gBAC1C,wCAAwC;gBACxC,OAAO,EAAE,CAAC;gBACV,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,UAAsB;IAEtB,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,kDAAkD;QAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,SAAS,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,iCAAiC;IACjC,+EAA+E;IAC/E,MAAM,eAAe,GAAG;QACtB,cAAc;QACd,OAAO;QACP,SAAS;QACT,mBAAmB;QACnB,OAAO;QACP,UAAU;QACV,WAAW;QACX,eAAe;QACf,0BAA0B;QAC1B,SAAS;QACT,WAAW;QACX,aAAa;KACd,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDlB,CAAC;QACE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAyE9B,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAWzC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAgF9B,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAWzC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -8,6 +8,7 @@ import { pushCommand } from "./commands/push.js";
8
8
  import { statusCommand } from "./commands/status.js";
9
9
  import { watchCommand } from "./commands/watch.js";
10
10
  import { serveCommand } from "./commands/serve.js";
11
+ import { validateCommand } from "./commands/validate.js";
11
12
  const program = new Command();
12
13
  program
13
14
  .name("epiccontext")
@@ -51,6 +52,7 @@ program
51
52
  .command("push")
52
53
  .description("Push local changes to cloud (overwrites cloud version)")
53
54
  .option("-s, --section <type>", "Only push specific section")
55
+ .option("-d, --dry-run", "Preview changes without applying them")
54
56
  .action(pushCommand);
55
57
  // Watch command - auto-push on file changes (local → cloud only)
56
58
  program
@@ -64,6 +66,11 @@ program
64
66
  .description("Start MCP server for AI tools")
65
67
  .option("-t, --transport <type>", "Transport type: stdio", "stdio")
66
68
  .action(serveCommand);
69
+ // Validate command - check CONTEXT files before pushing
70
+ program
71
+ .command("validate")
72
+ .description("Validate CONTEXT files for errors before pushing")
73
+ .action(validateCommand);
67
74
  // Error handling
68
75
  program.exitOverride();
69
76
  export async function run() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epiccontext/mcp",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "description": "MCP server and CLI for syncing EpicContext documentation with local codebases",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",