@epiccontext/mcp 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +23 -0
- package/dist/api/client.js.map +1 -1
- package/dist/cli/config.d.ts +18 -3
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +57 -5
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/files.d.ts.map +1 -1
- package/dist/cli/files.js +292 -2
- package/dist/cli/files.js.map +1 -1
- package/package.json +1 -1
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EAEX,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate project ID format - must be UUID or slug, not org/project
|
|
3
|
+
*/
|
|
4
|
+
function validateProjectId(id) {
|
|
5
|
+
if (!id || id.trim() === "") {
|
|
6
|
+
throw new Error("Project ID is empty. Run 'npx @epiccontext/mcp link' to connect to a project.");
|
|
7
|
+
}
|
|
8
|
+
// Check for common mistake: org/project format
|
|
9
|
+
if (id.includes("/")) {
|
|
10
|
+
throw new Error(`Invalid project ID format: "${id}" contains a slash. ` +
|
|
11
|
+
`The project ID should be a UUID (e.g., "550e8400-e29b-41d4-a716-446655440000") ` +
|
|
12
|
+
`or just the project slug (e.g., "my-project"). ` +
|
|
13
|
+
`Run 'npx @epiccontext/mcp link' to fix this.`);
|
|
14
|
+
}
|
|
15
|
+
// Check for URL in ID field
|
|
16
|
+
if (id.includes("http") || id.includes("://")) {
|
|
17
|
+
throw new Error(`Invalid project ID format: "${id}" looks like a URL. ` +
|
|
18
|
+
`The project ID should be a UUID or project slug only. ` +
|
|
19
|
+
`Run 'npx @epiccontext/mcp link' to fix this.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
1
22
|
/**
|
|
2
23
|
* EpicContext API Client
|
|
3
24
|
* Handles all communication with the EpicContext cloud API
|
|
@@ -7,6 +28,8 @@ export class EpicContextClient {
|
|
|
7
28
|
apiKey;
|
|
8
29
|
projectId;
|
|
9
30
|
constructor(config) {
|
|
31
|
+
// Validate project ID format before proceeding
|
|
32
|
+
validateProjectId(config.projectId);
|
|
10
33
|
this.baseUrl = config.baseUrl.replace(/\/$/, ""); // Remove trailing slash
|
|
11
34
|
this.apiKey = config.apiKey;
|
|
12
35
|
this.projectId = config.projectId;
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,SAAS,iBAAiB,CAAC,EAAU;IACnC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,+BAA+B,EAAE,sBAAsB;YACvD,iFAAiF;YACjF,iDAAiD;YACjD,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,+BAA+B,EAAE,sBAAsB;YACvD,wDAAwD;YACxD,8CAA8C,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,SAAS,CAAS;IAE1B,YAAY,MAA8D;QACxE,+CAA+C;QAC/C,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE;QAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,oBAAoB,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;QAE3E,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC1B,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;oBAClC,GAAG,OAAO,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,0CAA0C;YAC1C,MAAM,YAAY,GAAG,UAAmB,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,OAAO,IAAI;gBACvD,GAAG,YAAY,CAAC,OAAO,IAAI,+DAA+D,EAAE,CAC7F,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,uDAAuD;YACvD,IAAI,YAAY,GAAG,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAIpC,CAAC;gBACF,YAAY,GAAG,SAAS,CAAC,KAAK,IAAI,YAAY,CAAC;gBAC/C,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;gBACvB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,gCAAgC;YAChC,IAAI,SAAS,GAAG,YAAY,CAAC;YAC7B,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,IAAI,MAAM,OAAO,EAAE,CAAC;YAC/B,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACxB,KAAK,GAAG;wBACN,IAAI,GAAG,kDAAkD,CAAC;wBAC1D,MAAM;oBACR,KAAK,GAAG;wBACN,IAAI,GAAG,oFAAoF,CAAC;wBAC5F,MAAM;oBACR,KAAK,GAAG;wBACN,IAAI,GAAG,iEAAiE,CAAC;wBACzE,MAAM;oBACR,KAAK,GAAG;wBACN,IAAI,GAAG,2EAA2E,CAAC;wBACnF,MAAM;gBACV,CAAC;YACH,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,IAAI,WAAW,IAAI,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,kCAAkC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC,IAAI,EAAkB,CAAC;QACzC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QAajB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,KAAiB,EACjB,UAGI,EAAE;QAEN,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;gBAC/B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,aAAa;aAChE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAKhB;QACC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAOjB;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,GAAW,EACX,IAIC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE;YACxD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,GAAW,EACX,IAIC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE;YACxD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE;YACxD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAOlB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAI5B;IACC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/cli/config.d.ts
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
import Conf from "conf";
|
|
2
2
|
import type { EpicContextConfig } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Validate that a project ID is in the correct format (UUID or slug, NOT org/project)
|
|
5
|
+
*/
|
|
6
|
+
export declare function isValidProjectId(id: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Check if project ID looks like it was manually edited incorrectly
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectInvalidProjectIdFormat(id: string): string | null;
|
|
3
11
|
/**
|
|
4
12
|
* Find the config file in current or parent directories
|
|
5
13
|
*/
|
|
6
14
|
export declare function findConfigPath(startDir?: string): string | null;
|
|
7
15
|
/**
|
|
8
|
-
* Load configuration from .
|
|
16
|
+
* Load configuration from .epicontext file
|
|
9
17
|
*/
|
|
10
18
|
export declare function loadConfig(configPath?: string): EpicContextConfig | null;
|
|
11
19
|
/**
|
|
12
|
-
*
|
|
20
|
+
* Load and validate configuration, checking for common mistakes
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadAndValidateConfig(configPath?: string): {
|
|
23
|
+
config: EpicContextConfig | null;
|
|
24
|
+
error: string | null;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Save configuration to .epicontext file
|
|
13
28
|
*/
|
|
14
29
|
export declare function saveConfig(config: Partial<EpicContextConfig>, configPath?: string): void;
|
|
15
30
|
/**
|
|
16
|
-
* Get the project root directory (where .
|
|
31
|
+
* Get the project root directory (where .epicontext is located)
|
|
17
32
|
*/
|
|
18
33
|
export declare function getProjectRoot(): string | null;
|
|
19
34
|
/**
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAYpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CActE;AA4BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAY9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAexE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG;IAC1D,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAcA;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAClC,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAM9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAS9C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;oBACP,MAAM;oBACN,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;EAOF,CAAC"}
|
package/dist/cli/config.js
CHANGED
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
import Conf from "conf";
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import * as path from "path";
|
|
4
|
-
const CONFIG_FILENAME = ".
|
|
4
|
+
const CONFIG_FILENAME = ".epicontext";
|
|
5
|
+
/**
|
|
6
|
+
* Validate that a project ID is in the correct format (UUID or slug, NOT org/project)
|
|
7
|
+
*/
|
|
8
|
+
export function isValidProjectId(id) {
|
|
9
|
+
if (!id || id.trim() === "")
|
|
10
|
+
return false;
|
|
11
|
+
// UUID format
|
|
12
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
13
|
+
if (uuidRegex.test(id))
|
|
14
|
+
return true;
|
|
15
|
+
// Simple slug format (no slashes, no special chars except hyphen/underscore)
|
|
16
|
+
const slugRegex = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
17
|
+
if (slugRegex.test(id))
|
|
18
|
+
return true;
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if project ID looks like it was manually edited incorrectly
|
|
23
|
+
*/
|
|
24
|
+
export function detectInvalidProjectIdFormat(id) {
|
|
25
|
+
if (!id)
|
|
26
|
+
return "Project ID is empty. Run 'npx @epiccontext/mcp link' to connect to a project.";
|
|
27
|
+
// Common mistake: org/project format
|
|
28
|
+
if (id.includes("/")) {
|
|
29
|
+
return `Project ID "${id}" contains a slash. The ID should be a UUID or project slug only. Run 'npx @epiccontext/mcp link' to fix this.`;
|
|
30
|
+
}
|
|
31
|
+
// Contains URL fragments
|
|
32
|
+
if (id.includes("http") || id.includes("://")) {
|
|
33
|
+
return `Project ID "${id}" looks like a URL. The ID should be a UUID or project slug only. Run 'npx @epiccontext/mcp link' to fix this.`;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
5
37
|
/**
|
|
6
38
|
* Default configuration
|
|
7
39
|
*/
|
|
@@ -42,7 +74,7 @@ export function findConfigPath(startDir = process.cwd()) {
|
|
|
42
74
|
return null;
|
|
43
75
|
}
|
|
44
76
|
/**
|
|
45
|
-
* Load configuration from .
|
|
77
|
+
* Load configuration from .epicontext file
|
|
46
78
|
*/
|
|
47
79
|
export function loadConfig(configPath) {
|
|
48
80
|
const filePath = configPath || findConfigPath();
|
|
@@ -60,7 +92,22 @@ export function loadConfig(configPath) {
|
|
|
60
92
|
}
|
|
61
93
|
}
|
|
62
94
|
/**
|
|
63
|
-
*
|
|
95
|
+
* Load and validate configuration, checking for common mistakes
|
|
96
|
+
*/
|
|
97
|
+
export function loadAndValidateConfig(configPath) {
|
|
98
|
+
const config = loadConfig(configPath);
|
|
99
|
+
if (!config) {
|
|
100
|
+
return { config: null, error: null };
|
|
101
|
+
}
|
|
102
|
+
// Check for invalid project ID format
|
|
103
|
+
const idError = detectInvalidProjectIdFormat(config.project.id);
|
|
104
|
+
if (idError) {
|
|
105
|
+
return { config, error: idError };
|
|
106
|
+
}
|
|
107
|
+
return { config, error: null };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Save configuration to .epicontext file
|
|
64
111
|
*/
|
|
65
112
|
export function saveConfig(config, configPath) {
|
|
66
113
|
const filePath = configPath || path.join(process.cwd(), CONFIG_FILENAME);
|
|
@@ -73,10 +120,15 @@ export function saveConfig(config, configPath) {
|
|
|
73
120
|
sync: { ...existingConfig.sync, ...config.sync },
|
|
74
121
|
watch: { ...existingConfig.watch, ...config.watch },
|
|
75
122
|
};
|
|
76
|
-
|
|
123
|
+
// Add a comment header to warn AI tools not to edit the ID manually
|
|
124
|
+
const configWithWarning = {
|
|
125
|
+
_WARNING: "DO NOT manually edit 'project.id'. Use 'npx @epiccontext/mcp link' to configure.",
|
|
126
|
+
...mergedConfig,
|
|
127
|
+
};
|
|
128
|
+
fs.writeFileSync(filePath, JSON.stringify(configWithWarning, null, 2), "utf-8");
|
|
77
129
|
}
|
|
78
130
|
/**
|
|
79
|
-
* Get the project root directory (where .
|
|
131
|
+
* Get the project root directory (where .epicontext is located)
|
|
80
132
|
*/
|
|
81
133
|
export function getProjectRoot() {
|
|
82
134
|
const configPath = findConfigPath();
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,eAAe,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/files.d.ts.map
CHANGED
|
@@ -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;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,
|
|
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;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoV7D;AA4BD;;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
|
@@ -106,6 +106,22 @@ export function ensureContextFolder(contextPath) {
|
|
|
106
106
|
|
|
107
107
|
This folder contains product context documentation synced with EpicContext.
|
|
108
108
|
|
|
109
|
+
## IMPORTANT: File Format
|
|
110
|
+
|
|
111
|
+
**All markdown files MUST have YAML frontmatter with these required fields:**
|
|
112
|
+
|
|
113
|
+
\`\`\`yaml
|
|
114
|
+
---
|
|
115
|
+
type: text # Block type (text, persona, feature, decision, etc.)
|
|
116
|
+
section: brand # Section name (must match folder name)
|
|
117
|
+
key: unique-key # Unique identifier (use kebab-case)
|
|
118
|
+
name: Display Name # Human-readable name
|
|
119
|
+
status: draft # Status: draft, complete, or empty
|
|
120
|
+
---
|
|
121
|
+
\`\`\`
|
|
122
|
+
|
|
123
|
+
See \`AI-GUIDE.md\` for detailed format instructions.
|
|
124
|
+
|
|
109
125
|
## Structure
|
|
110
126
|
|
|
111
127
|
Each folder represents a section of your product documentation:
|
|
@@ -127,16 +143,290 @@ This folder is synced with your EpicContext project using the MCP server.
|
|
|
127
143
|
|
|
128
144
|
To sync changes:
|
|
129
145
|
\`\`\`bash
|
|
130
|
-
|
|
146
|
+
epicontext sync
|
|
131
147
|
\`\`\`
|
|
132
148
|
|
|
133
149
|
To watch for changes and auto-sync:
|
|
134
150
|
\`\`\`bash
|
|
135
|
-
|
|
151
|
+
epicontext watch
|
|
136
152
|
\`\`\`
|
|
137
153
|
`;
|
|
138
154
|
fs.writeFileSync(readmePath, readme, "utf-8");
|
|
139
155
|
}
|
|
156
|
+
// Create AI-GUIDE.md with detailed format instructions
|
|
157
|
+
const aiGuidePath = path.join(contextPath, "AI-GUIDE.md");
|
|
158
|
+
if (!fs.existsSync(aiGuidePath)) {
|
|
159
|
+
const aiGuide = `# AI Agent Guide for EpicContext
|
|
160
|
+
|
|
161
|
+
This file contains instructions for AI agents (Claude, Cursor, etc.) on how to create and edit documentation files in this CONTEXT folder.
|
|
162
|
+
|
|
163
|
+
## CRITICAL: Required YAML Frontmatter
|
|
164
|
+
|
|
165
|
+
Every markdown file in this folder **MUST** have YAML frontmatter with these required fields:
|
|
166
|
+
|
|
167
|
+
\`\`\`yaml
|
|
168
|
+
---
|
|
169
|
+
type: text # REQUIRED: Block type (see list below)
|
|
170
|
+
section: brand # REQUIRED: Section name (must match folder name)
|
|
171
|
+
key: my-unique-key # REQUIRED: Unique identifier within section (use kebab-case)
|
|
172
|
+
name: My Display Name # REQUIRED: Human-readable display name
|
|
173
|
+
status: draft # REQUIRED: One of: draft, complete, empty
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
Your content goes here after the frontmatter...
|
|
177
|
+
\`\`\`
|
|
178
|
+
|
|
179
|
+
## Block Types by Section
|
|
180
|
+
|
|
181
|
+
### constitution/
|
|
182
|
+
- \`text\` - General text content (principles, rules, guidelines)
|
|
183
|
+
|
|
184
|
+
### brand/
|
|
185
|
+
- \`text\` - Voice, identity, values
|
|
186
|
+
- \`color\` - Color definitions
|
|
187
|
+
- \`font\` - Typography definitions
|
|
188
|
+
|
|
189
|
+
### product/
|
|
190
|
+
- \`text\` - Vision, overview, strategy
|
|
191
|
+
- \`feature\` - Feature definitions
|
|
192
|
+
|
|
193
|
+
### users/
|
|
194
|
+
- \`persona\` - User personas
|
|
195
|
+
- \`jtbd\` - Jobs to be done
|
|
196
|
+
- \`text\` - General user research
|
|
197
|
+
|
|
198
|
+
### research/
|
|
199
|
+
- \`competitor\` - Competitor analysis
|
|
200
|
+
- \`text\` - Market research, insights
|
|
201
|
+
|
|
202
|
+
### technical/
|
|
203
|
+
- \`text\` - Architecture, stack overview
|
|
204
|
+
- \`integration\` - Third-party integrations
|
|
205
|
+
- \`constraint\` - Technical constraints
|
|
206
|
+
|
|
207
|
+
### design-system/
|
|
208
|
+
- \`text\` - Component documentation, patterns
|
|
209
|
+
|
|
210
|
+
### journeys/
|
|
211
|
+
- \`journey_map\` - User journey maps
|
|
212
|
+
- \`text\` - Journey descriptions
|
|
213
|
+
|
|
214
|
+
### decisions/
|
|
215
|
+
- \`decision\` - Architecture Decision Records (ADRs)
|
|
216
|
+
- \`text\` - General decisions
|
|
217
|
+
|
|
218
|
+
### development/
|
|
219
|
+
- \`epic\` - Epics
|
|
220
|
+
- \`user_story\` - User stories
|
|
221
|
+
- \`text\` - Development notes
|
|
222
|
+
|
|
223
|
+
## Example Files
|
|
224
|
+
|
|
225
|
+
### Simple Text Block
|
|
226
|
+
\`\`\`markdown
|
|
227
|
+
---
|
|
228
|
+
type: text
|
|
229
|
+
section: brand
|
|
230
|
+
key: voice
|
|
231
|
+
name: Brand Voice
|
|
232
|
+
status: draft
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
# Brand Voice
|
|
236
|
+
|
|
237
|
+
Our brand voice is professional yet approachable...
|
|
238
|
+
\`\`\`
|
|
239
|
+
|
|
240
|
+
### Persona Block
|
|
241
|
+
\`\`\`markdown
|
|
242
|
+
---
|
|
243
|
+
type: persona
|
|
244
|
+
section: users
|
|
245
|
+
key: primary-user
|
|
246
|
+
name: Primary User Persona
|
|
247
|
+
status: draft
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
# Sarah - Product Manager
|
|
251
|
+
|
|
252
|
+
> "I need tools that help me stay organized without adding overhead."
|
|
253
|
+
|
|
254
|
+
**Role:** Product Manager
|
|
255
|
+
**Age:** 28-35
|
|
256
|
+
**Tech Comfort:** Advanced
|
|
257
|
+
|
|
258
|
+
### Goals
|
|
259
|
+
- Ship features faster
|
|
260
|
+
- Keep stakeholders informed
|
|
261
|
+
|
|
262
|
+
### Frustrations
|
|
263
|
+
- Too many disconnected tools
|
|
264
|
+
- Context switching overhead
|
|
265
|
+
\`\`\`
|
|
266
|
+
|
|
267
|
+
### Decision Block (ADR)
|
|
268
|
+
\`\`\`markdown
|
|
269
|
+
---
|
|
270
|
+
type: decision
|
|
271
|
+
section: decisions
|
|
272
|
+
key: database-choice
|
|
273
|
+
name: Database Technology Choice
|
|
274
|
+
status: complete
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
# ADR-001: Database Technology Choice
|
|
278
|
+
|
|
279
|
+
**Date:** 2024-01-15
|
|
280
|
+
**Status:** Accepted
|
|
281
|
+
|
|
282
|
+
### Context
|
|
283
|
+
We need to choose a database for our application...
|
|
284
|
+
|
|
285
|
+
### Decision
|
|
286
|
+
We will use PostgreSQL with Supabase...
|
|
287
|
+
|
|
288
|
+
### Rationale
|
|
289
|
+
PostgreSQL offers the best balance of features...
|
|
290
|
+
|
|
291
|
+
### Consequences
|
|
292
|
+
- Need to set up Supabase project
|
|
293
|
+
- Team needs PostgreSQL knowledge
|
|
294
|
+
\`\`\`
|
|
295
|
+
|
|
296
|
+
### Feature Block
|
|
297
|
+
\`\`\`markdown
|
|
298
|
+
---
|
|
299
|
+
type: feature
|
|
300
|
+
section: product
|
|
301
|
+
key: user-auth
|
|
302
|
+
name: User Authentication
|
|
303
|
+
status: draft
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
# User Authentication
|
|
307
|
+
|
|
308
|
+
Enable users to create accounts and sign in securely.
|
|
309
|
+
|
|
310
|
+
**Priority:** Must Have
|
|
311
|
+
**Status:** Planned
|
|
312
|
+
|
|
313
|
+
### User Story
|
|
314
|
+
As a user, I want to create an account so that I can save my preferences.
|
|
315
|
+
|
|
316
|
+
### Acceptance Criteria
|
|
317
|
+
- Users can sign up with email
|
|
318
|
+
- Users can sign in with password
|
|
319
|
+
- Password reset flow works
|
|
320
|
+
\`\`\`
|
|
321
|
+
|
|
322
|
+
## Important Rules
|
|
323
|
+
|
|
324
|
+
1. **Always include all 5 frontmatter fields** (type, section, key, name, status)
|
|
325
|
+
2. **The \`section\` field must match the folder name** (e.g., files in \`brand/\` must have \`section: brand\`)
|
|
326
|
+
3. **The \`key\` must be unique within the section** (use kebab-case, no spaces)
|
|
327
|
+
4. **Use \`type: text\` for general content** when no specific type applies
|
|
328
|
+
5. **Set \`status: draft\` for new content** and \`status: complete\` when finalized
|
|
329
|
+
|
|
330
|
+
## Common Mistakes to Avoid
|
|
331
|
+
|
|
332
|
+
WRONG: Using \`title\` and \`description\` instead of proper frontmatter
|
|
333
|
+
\`\`\`yaml
|
|
334
|
+
---
|
|
335
|
+
title: My Document # WRONG - not recognized
|
|
336
|
+
description: About this # WRONG - not recognized
|
|
337
|
+
---
|
|
338
|
+
\`\`\`
|
|
339
|
+
|
|
340
|
+
CORRECT: Using the required frontmatter fields
|
|
341
|
+
\`\`\`yaml
|
|
342
|
+
---
|
|
343
|
+
type: text
|
|
344
|
+
section: brand
|
|
345
|
+
key: my-document
|
|
346
|
+
name: My Document
|
|
347
|
+
status: draft
|
|
348
|
+
---
|
|
349
|
+
\`\`\`
|
|
350
|
+
|
|
351
|
+
WRONG: Missing required fields
|
|
352
|
+
\`\`\`yaml
|
|
353
|
+
---
|
|
354
|
+
type: text
|
|
355
|
+
name: My Document
|
|
356
|
+
# Missing: section, key, status
|
|
357
|
+
---
|
|
358
|
+
\`\`\`
|
|
359
|
+
|
|
360
|
+
CORRECT: All required fields present
|
|
361
|
+
\`\`\`yaml
|
|
362
|
+
---
|
|
363
|
+
type: text
|
|
364
|
+
section: brand
|
|
365
|
+
key: my-document
|
|
366
|
+
name: My Document
|
|
367
|
+
status: draft
|
|
368
|
+
---
|
|
369
|
+
\`\`\`
|
|
370
|
+
`;
|
|
371
|
+
fs.writeFileSync(aiGuidePath, aiGuide, "utf-8");
|
|
372
|
+
}
|
|
373
|
+
// Create sample files in each section with correct frontmatter
|
|
374
|
+
createSampleFile(contextPath, "constitution", "principles", "text", "Core Principles", `# Core Principles
|
|
375
|
+
|
|
376
|
+
These are the non-negotiable principles that guide all our work.
|
|
377
|
+
|
|
378
|
+
## Principle 1: User First
|
|
379
|
+
Always prioritize user needs over internal convenience.
|
|
380
|
+
|
|
381
|
+
## Principle 2: Simplicity
|
|
382
|
+
Choose the simplest solution that solves the problem.
|
|
383
|
+
|
|
384
|
+
## Principle 3: Quality
|
|
385
|
+
Never compromise on quality for speed.
|
|
386
|
+
`);
|
|
387
|
+
createSampleFile(contextPath, "brand", "voice", "text", "Brand Voice", `# Brand Voice
|
|
388
|
+
|
|
389
|
+
Our brand voice defines how we communicate with users.
|
|
390
|
+
|
|
391
|
+
## Tone
|
|
392
|
+
Professional but approachable. We speak with authority but never talk down to users.
|
|
393
|
+
|
|
394
|
+
## Personality
|
|
395
|
+
- Helpful and encouraging
|
|
396
|
+
- Clear and concise
|
|
397
|
+
- Confident but humble
|
|
398
|
+
`);
|
|
399
|
+
createSampleFile(contextPath, "product", "vision", "text", "Product Vision", `# Product Vision
|
|
400
|
+
|
|
401
|
+
Define your product vision and strategy here.
|
|
402
|
+
|
|
403
|
+
## Mission
|
|
404
|
+
What problem are we solving and for whom?
|
|
405
|
+
|
|
406
|
+
## Vision
|
|
407
|
+
Where do we want to be in 3-5 years?
|
|
408
|
+
|
|
409
|
+
## Key Differentiators
|
|
410
|
+
What makes our solution unique?
|
|
411
|
+
`);
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Create a sample file with correct frontmatter if it doesn't exist
|
|
415
|
+
*/
|
|
416
|
+
function createSampleFile(contextPath, section, key, type, name, content) {
|
|
417
|
+
const filePath = path.join(contextPath, section, `${key}.md`);
|
|
418
|
+
if (!fs.existsSync(filePath)) {
|
|
419
|
+
const fileContent = `---
|
|
420
|
+
type: ${type}
|
|
421
|
+
section: ${section}
|
|
422
|
+
key: ${key}
|
|
423
|
+
name: ${name}
|
|
424
|
+
status: draft
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
${content}`;
|
|
428
|
+
fs.writeFileSync(filePath, fileContent, "utf-8");
|
|
429
|
+
}
|
|
140
430
|
}
|
|
141
431
|
/**
|
|
142
432
|
* Get file modification time
|
package/dist/cli/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
|