@pathmode/mcp-server 1.14.0 → 1.14.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/dist/index.js +26 -6
- package/manifest.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -65652,7 +65652,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"$schema":"http://json-schema.org/dra
|
|
|
65652
65652
|
/***/ ((module) => {
|
|
65653
65653
|
|
|
65654
65654
|
"use strict";
|
|
65655
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.14.
|
|
65655
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.14.1","publishConfig":{"access":"public"},"mcpName":"io.github.pathmodeio/mcp-server","description":"Deterministic intent preflight before your agent builds: six calibrated gates, keyless, no model call. Draft and sharpen specs in conversation, or connect a Pathmode workspace to sync intent and evidence across a team.","main":"dist/index.js","bin":{"pathmode-mcp":"dist/index.js"},"files":["dist/","manifest.json","icon.svg","README.md","skills/"],"scripts":{"build":"rm -rf dist && ncc build src/index.ts -o dist","dev":"ts-node src/index.ts","prepublishOnly":"npm run build"},"keywords":["pathmode","mcp","model-context-protocol","claude-code","claude-code-skills","agent-skills","cursor","windsurf","intent-engineering","intent-compiler","ai-agents","product-development","dependency-graph","strategic-planning"],"author":"Pathmode","license":"MIT","type":"commonjs","engines":{"node":">=18.0.0"},"homepage":"https://pathmode.io","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","gray-matter":"^4.0.3","zod":"^3.24.0"},"devDependencies":{"@types/node":"^25.1.0","@vercel/ncc":"^0.38.4","ts-node":"^10.9.2","typescript":"^5.9.3"}}');
|
|
65656
65656
|
|
|
65657
65657
|
/***/ })
|
|
65658
65658
|
|
|
@@ -65994,7 +65994,13 @@ function startMcpServer() {
|
|
|
65994
65994
|
return { content: [{ type: 'text', text: 'No intents found in workspace.' }] };
|
|
65995
65995
|
}
|
|
65996
65996
|
}
|
|
65997
|
-
const
|
|
65997
|
+
const listed = pickCurrentIntent(intents);
|
|
65998
|
+
// The list projection omits intent_spec_edge_cases. Serving it as "the full IntentSpec"
|
|
65999
|
+
// hands the implementing agent a spec with every failure mode silently missing — the
|
|
66000
|
+
// one part of a spec it would not have invented on its own. Re-read the whole record.
|
|
66001
|
+
const current = listed?.id
|
|
66002
|
+
? (await cloud.getIntent(listed.id).catch(() => listed))
|
|
66003
|
+
: listed;
|
|
65998
66004
|
// Default: a fetch-free coverage summary (no extra API call). On request: the cited
|
|
65999
66005
|
// evidence content, fetched once for the product and filtered to this intent's citations.
|
|
66000
66006
|
const evidenceSummary = summarizeCitedEvidence(current);
|
|
@@ -66356,7 +66362,12 @@ function startMcpServer() {
|
|
|
66356
66362
|
const cloud = requireCloudClient();
|
|
66357
66363
|
const intent = intentId
|
|
66358
66364
|
? await cloud.getIntent(intentId)
|
|
66359
|
-
:
|
|
66365
|
+
: await (async () => {
|
|
66366
|
+
// Same list-projection caveat: the rubric must be derived from the whole
|
|
66367
|
+
// spec, edge cases included, or it grades against a partial contract.
|
|
66368
|
+
const listed = pickCurrentIntent(await cloud.listIntents('approved')) || pickCurrentIntent(await cloud.listIntents());
|
|
66369
|
+
return listed?.id ? await cloud.getIntent(listed.id).catch(() => listed) : listed;
|
|
66370
|
+
})();
|
|
66360
66371
|
if (!intent) {
|
|
66361
66372
|
return { content: [{ type: 'text', text: 'No intent found to export. Pass an intentId, or create an approved intent first.' }] };
|
|
66362
66373
|
}
|
|
@@ -66990,8 +67001,15 @@ function startMcpServer() {
|
|
|
66990
67001
|
}
|
|
66991
67002
|
else {
|
|
66992
67003
|
const cloud = requireCloudClient();
|
|
66993
|
-
|
|
66994
|
-
|
|
67004
|
+
// The list projection (INTENT_LIST_SELECT) omits intent_spec_edge_cases, so
|
|
67005
|
+
// grading a listed row fails the edge-case gate unconditionally — no saved
|
|
67006
|
+
// cloud intent could ever pass its own preflight. Re-read the full record
|
|
67007
|
+
// before grading; readiness is only deterministic over the whole spec.
|
|
67008
|
+
const listed = intentId ? undefined : pickCurrentIntent(await cloud.listIntents());
|
|
67009
|
+
const targetId = intentId || listed?.id;
|
|
67010
|
+
subject = targetId
|
|
67011
|
+
? await cloud.getIntent(targetId).catch(() => undefined)
|
|
67012
|
+
: undefined;
|
|
66995
67013
|
sourceNote = intentId ? `intent ${intentId}` : 'current intent';
|
|
66996
67014
|
if (!subject) {
|
|
66997
67015
|
return {
|
|
@@ -67204,7 +67222,9 @@ function startMcpServer() {
|
|
|
67204
67222
|
try {
|
|
67205
67223
|
const cloud = requireCloudClient();
|
|
67206
67224
|
const intents = await cloud.listIntents('approved');
|
|
67207
|
-
const
|
|
67225
|
+
const listed = intents[0] || (await cloud.listIntents())[0] || null;
|
|
67226
|
+
// List projection omits edge cases; this resource is read as the whole spec.
|
|
67227
|
+
const current = listed?.id ? await cloud.getIntent(listed.id).catch(() => listed) : listed;
|
|
67208
67228
|
return {
|
|
67209
67229
|
contents: [{
|
|
67210
67230
|
uri: uri.href,
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "pathmode",
|
|
4
4
|
"display_name": "Pathmode",
|
|
5
|
-
"version": "1.14.
|
|
5
|
+
"version": "1.14.1",
|
|
6
6
|
"description": "Deterministic preflight for the intent you hand to a coding agent: six calibrated gates, the exact blockers named, no model call, no key needed.",
|
|
7
7
|
"long_description": "Pathmode MCP Server runs a deterministic preflight before your coding agent builds: check_intent_readiness scores an intent spec against six calibrated gates (title, objective, outcomes, constraints, edge cases, verification) and names the exact blockers, with no model call and no account. Keyless local mode works out of the box; specs live in intent.md in your repo, plain markdown you own, and skills for drafting, pressure-testing, and handing off intent ride along. Connect a Pathmode workspace with an API key to sync intent and evidence across a team, analyze dependency graphs, and verify pull requests against the outcomes you agreed to.",
|
|
8
8
|
"author": {
|