@pathmode/mcp-server 1.8.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -5
- package/dist/api-client.d.ts +26 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +501 -164
- package/dist/intent-compiler.d.ts +14 -1
- package/dist/intent-compiler.d.ts.map +1 -1
- package/dist/local-reader.d.ts +45 -1
- package/dist/local-reader.d.ts.map +1 -1
- package/dist/save-policy.d.ts +41 -0
- package/dist/save-policy.d.ts.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/package.json +2 -2
- package/skills/README.md +4 -1
- package/dist/pathmode-section.test.d.ts +0 -1
- package/dist/pathmode-section.test.d.ts.map +0 -1
|
@@ -71,11 +71,24 @@ export interface IntentFields {
|
|
|
71
71
|
* Adapted from intentDesignerMachine.ts conversationFirstPreamble for terminal use.
|
|
72
72
|
*/
|
|
73
73
|
export declare function getCompileIntentPrompt(): string;
|
|
74
|
+
/** Frontmatter carried over from an existing intent.md so a re-save is an update, not a reset. */
|
|
75
|
+
export interface IntentMdOptions {
|
|
76
|
+
/** Version to stamp. Callers bump this; omitting it means "first write" (1). */
|
|
77
|
+
version?: number;
|
|
78
|
+
/** Lifecycle status to preserve. Defaults to 'draft' only on a first write. */
|
|
79
|
+
status?: string;
|
|
80
|
+
/** Original `created` timestamp. Preserved across updates; defaults to now. */
|
|
81
|
+
created?: string;
|
|
82
|
+
}
|
|
74
83
|
/**
|
|
75
84
|
* Generate intent.md content with YAML frontmatter.
|
|
76
85
|
* Adapted from lib/agentPromptGenerator.ts generateIntentMd().
|
|
86
|
+
*
|
|
87
|
+
* `spec.id`, `opts.version`, and `opts.status` are preserved rather than reset — an intent that
|
|
88
|
+
* is saved twice must keep its identity and its lifecycle state. Only a genuinely new intent
|
|
89
|
+
* (no id) gets a minted id, version 1, and status 'draft'.
|
|
77
90
|
*/
|
|
78
|
-
export declare function formatIntentMd(spec: IntentFields): string;
|
|
91
|
+
export declare function formatIntentMd(spec: IntentFields, opts?: IntentMdOptions): string;
|
|
79
92
|
/**
|
|
80
93
|
* Generate .cursorrules content for a single intent.
|
|
81
94
|
* Adapted from lib/agentPromptGenerator.ts generateCursorRules().
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/intent-compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,cAAc;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAC1G,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AACxE,MAAM,WAAW,iBAAiB;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAsDD,MAAM,WAAW,YAAY;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7F,6GAA6G;IAC7G,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtD,YAAY,CAAC,EAAE;QACX,8GAA8G;QAC9G,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC7B,kDAAkD;QAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF;sFACkF;IAClF,qBAAqB,CAAC,EAAE;QACpB,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACnD,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;KACtC,GAAG,IAAI,CAAC;CACZ;AAwDD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA2D/C;AAoBD
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/intent-compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/local-reader.d.ts
CHANGED
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Local Intent Reader
|
|
3
3
|
* Reads intent.md files from the current working directory for offline/local mode.
|
|
4
|
+
*
|
|
5
|
+
* Parsing is line-based on purpose. The previous implementation extracted sections with
|
|
6
|
+
* `/^##\s+Heading\s*\n([\s\S]*?)(?=^##\s|$)/m` — but under the `m` flag `$` matches at EVERY
|
|
7
|
+
* line end, so the lazy quantifier stopped after the FIRST line. Every section round-tripped
|
|
8
|
+
* as a single item: three outcomes read back as one, `## Scope` vanished entirely, and
|
|
9
|
+
* `## Verification` produced `{}`. See round-trip.test.ts for the regression guard.
|
|
4
10
|
*/
|
|
11
|
+
export type LocalVerificationKind = 'fastest' | 'manual' | 'shipped-signal' | 'regression-guard' | 'test';
|
|
12
|
+
export interface LocalVerificationCheck {
|
|
13
|
+
kind: LocalVerificationKind;
|
|
14
|
+
description: string;
|
|
15
|
+
status?: 'unknown' | 'passing' | 'failing';
|
|
16
|
+
verifies?: string;
|
|
17
|
+
}
|
|
18
|
+
/** A settled choice plus the alternative it ruled out. Text only — local mode has no evidence store. */
|
|
19
|
+
export interface LocalDecision {
|
|
20
|
+
choice: string;
|
|
21
|
+
ruledOut?: string;
|
|
22
|
+
reason: string;
|
|
23
|
+
}
|
|
24
|
+
export interface LocalVerification {
|
|
25
|
+
checks?: LocalVerificationCheck[];
|
|
26
|
+
/** Legacy buckets, still parsed so older intent.md files keep working. */
|
|
27
|
+
manualChecks?: string[];
|
|
28
|
+
unitTests?: string[];
|
|
29
|
+
e2eTests?: string[];
|
|
30
|
+
}
|
|
5
31
|
export interface LocalIntent {
|
|
6
32
|
id: string;
|
|
7
33
|
status: string;
|
|
@@ -11,6 +37,7 @@ export interface LocalIntent {
|
|
|
11
37
|
stageName?: string;
|
|
12
38
|
severity?: string;
|
|
13
39
|
outcomes: string[];
|
|
40
|
+
decisions: LocalDecision[];
|
|
14
41
|
constraints: string[];
|
|
15
42
|
edgeCases: {
|
|
16
43
|
scenario: string;
|
|
@@ -21,10 +48,27 @@ export interface LocalIntent {
|
|
|
21
48
|
inScope?: string[];
|
|
22
49
|
outOfScope?: string[];
|
|
23
50
|
};
|
|
24
|
-
verification:
|
|
51
|
+
verification: LocalVerification;
|
|
25
52
|
source: 'local';
|
|
26
53
|
}
|
|
54
|
+
/** Frontmatter identity of an existing intent.md, for non-destructive saves. */
|
|
55
|
+
export interface LocalIntentMeta {
|
|
56
|
+
id: string | null;
|
|
57
|
+
version: number;
|
|
58
|
+
status: string;
|
|
59
|
+
created?: string;
|
|
60
|
+
}
|
|
27
61
|
/**
|
|
28
62
|
* Read all intent.md files from the current directory and subdirectories (1 level deep).
|
|
29
63
|
*/
|
|
30
64
|
export declare function readLocalIntents(): LocalIntent[];
|
|
65
|
+
/**
|
|
66
|
+
* Read only the frontmatter identity of an intent.md. Used by `intent_save` to decide whether a
|
|
67
|
+
* write is an update (same id → bump version, keep status) or a collision (different id → refuse
|
|
68
|
+
* rather than clobber someone else's spec).
|
|
69
|
+
*/
|
|
70
|
+
export declare function readIntentMeta(filePath: string): LocalIntentMeta | null;
|
|
71
|
+
/**
|
|
72
|
+
* Parse a single intent.md file with YAML frontmatter.
|
|
73
|
+
*/
|
|
74
|
+
export declare function readIntentFile(filePath: string): LocalIntent | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/local-reader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/local-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAE1G,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wGAAwG;AACxG,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAClC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtD,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAmBhD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAcvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAuCnE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Save policy for intent.md.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the `intent_save` handler so the decision is testable: the handler itself lives
|
|
5
|
+
* inside startMcpServer() and cannot be imported. The rules exist because the original handler
|
|
6
|
+
* stamped a fresh `intent_${Date.now()}` id on every save and wrote unconditionally — a second
|
|
7
|
+
* save in one conversation destroyed the first spec and reset its version and status.
|
|
8
|
+
*/
|
|
9
|
+
import type { LocalIntentMeta } from './local-reader';
|
|
10
|
+
export type SaveAction = 'create' | 'update' | 'refuse';
|
|
11
|
+
export interface SaveDecision {
|
|
12
|
+
action: SaveAction;
|
|
13
|
+
/** Id to stamp. Meaningless when action is 'refuse'. */
|
|
14
|
+
id: string;
|
|
15
|
+
version: number;
|
|
16
|
+
status: string;
|
|
17
|
+
created?: string;
|
|
18
|
+
}
|
|
19
|
+
/** Strip one layer of matching surrounding quotes, as picked up from raw YAML frontmatter text. */
|
|
20
|
+
export declare function unquoteId(value: string | null | undefined): string;
|
|
21
|
+
/**
|
|
22
|
+
* Decide how a save against an existing intent.md should be applied.
|
|
23
|
+
*
|
|
24
|
+
* - No existing file → create at version 1, status 'draft'.
|
|
25
|
+
* - Existing file, same intent → update: bump version, preserve status and created.
|
|
26
|
+
* "Same intent" means a matching id, OR no incoming id at all: the common conversational flow is
|
|
27
|
+
* save → refine → save, where the agent holds a spec object it never gave an id.
|
|
28
|
+
* - Existing file, different id → refuse, unless overwrite was explicitly requested. Refusing is
|
|
29
|
+
* the safe default because the alternative silently destroys an unrelated spec.
|
|
30
|
+
*
|
|
31
|
+
* The incoming id is unquoted first: frontmatter serializes `id: "intent_123"`, and an agent that
|
|
32
|
+
* reads intent.md as text rather than parsed YAML hands those quotes straight back. Comparing raw
|
|
33
|
+
* would refuse a legitimate update and print two identical-looking ids in the error.
|
|
34
|
+
*/
|
|
35
|
+
export declare function decideSave(params: {
|
|
36
|
+
existing: LocalIntentMeta | null;
|
|
37
|
+
incomingId?: string;
|
|
38
|
+
overwrite?: boolean;
|
|
39
|
+
/** Id generator for a genuinely new intent. Injected so tests stay deterministic. */
|
|
40
|
+
mintId: () => string;
|
|
41
|
+
}): SaveDecision;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/save-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIlE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAC/B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IACrF,MAAM,EAAE,MAAM,MAAM,CAAC;CACxB,GAAG,YAAY,CAqBf"}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4HH,wBAAgB,YAAY,CAAC,IAAI,WAAe,GAAG,MAAM,EAAE,CAG1D;AAED,wBAAgB,cAAc,CAAC,IAAI,WAAe,GAAG,OAAO,CAE3D;AAID,wBAAsB,QAAQ,kBAoL7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pathmode/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"skills/"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "ncc build src/index.ts -o dist",
|
|
21
|
+
"build": "rm -rf dist && ncc build src/index.ts -o dist",
|
|
22
22
|
"dev": "ts-node src/index.ts",
|
|
23
23
|
"prepublishOnly": "npm run build"
|
|
24
24
|
},
|
package/skills/README.md
CHANGED
|
@@ -26,6 +26,9 @@ Listed in lifecycle order — most projects use them in roughly this sequence.
|
|
|
26
26
|
npx @pathmode/mcp-server@latest setup
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
No API key needed — this configures local mode, which writes `intent.md` in your project.
|
|
30
|
+
To connect a Pathmode workspace instead, pass your key: `setup pm_live_xxx`.
|
|
31
|
+
|
|
29
32
|
2. Install the skills:
|
|
30
33
|
|
|
31
34
|
```bash
|
|
@@ -58,7 +61,7 @@ Skills wrap these in a more discoverable form.
|
|
|
58
61
|
|
|
59
62
|
## Modes
|
|
60
63
|
|
|
61
|
-
- **Local mode** (no API key) — Reads and writes `intent.md` in the project root. Free, no signup, fully offline.
|
|
64
|
+
- **Local mode** (no API key, the default) — Reads and writes `intent.md` in the project root. Free, no signup, fully offline. Cloud-only tools are not registered, so every tool the agent sees works.
|
|
62
65
|
- **Team mode** (`PATHMODE_API_KEY` set) — Syncs intents to a Pathmode workspace. Adds evidence, dependency graphs, constitution rules, and cross-agent context. Get a key from [pathmode.io](https://pathmode.io).
|
|
63
66
|
|
|
64
67
|
Skills detect the mode at runtime and adapt — same skill names, more capability in team mode.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/pathmode-section.test.ts"],"names":[],"mappings":""}
|