@roarpeng/graphflow 1.9.4 → 1.9.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/CHANGELOG.md +133 -0
- package/README.md +193 -107
- package/dist/agents/atp-example-producer.d.ts +33 -0
- package/dist/agents/atp-example-producer.d.ts.map +1 -0
- package/dist/agents/atp-example-producer.js +154 -0
- package/dist/agents/atp-example-producer.js.map +1 -0
- package/dist/agents/planner.d.ts.map +1 -1
- package/dist/agents/planner.js +14 -8
- package/dist/agents/planner.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +5 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/include-extensions.d.ts +3 -1
- package/dist/config/include-extensions.d.ts.map +1 -1
- package/dist/config/include-extensions.js +6 -3
- package/dist/config/include-extensions.js.map +1 -1
- package/dist/config/loader.js +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/core/agent-delegation.d.ts +16 -2
- package/dist/core/agent-delegation.d.ts.map +1 -1
- package/dist/core/agent-delegation.js +48 -5
- package/dist/core/agent-delegation.js.map +1 -1
- package/dist/core/merge-agent-insight.d.ts.map +1 -1
- package/dist/core/merge-agent-insight.js +10 -0
- package/dist/core/merge-agent-insight.js.map +1 -1
- package/dist/core/orchestrator-episode.d.ts.map +1 -1
- package/dist/core/orchestrator-episode.js +24 -0
- package/dist/core/orchestrator-episode.js.map +1 -1
- package/dist/core/orchestrator.js +52 -1
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/submit-agent-insight.d.ts +17 -0
- package/dist/core/submit-agent-insight.d.ts.map +1 -1
- package/dist/core/submit-agent-insight.js +28 -0
- package/dist/core/submit-agent-insight.js.map +1 -1
- package/dist/core/types.d.ts +35 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/client-factory.d.ts +4 -0
- package/dist/graph/client-factory.d.ts.map +1 -1
- package/dist/graph/client-factory.js +83 -7
- package/dist/graph/client-factory.js.map +1 -1
- package/dist/graph/context-slicer-types.d.ts +4 -0
- package/dist/graph/context-slicer-types.d.ts.map +1 -1
- package/dist/graph/context-slicer-types.js +3 -0
- package/dist/graph/context-slicer-types.js.map +1 -1
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +154 -6
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/document-convert.d.ts +33 -0
- package/dist/graph/document-convert.d.ts.map +1 -0
- package/dist/graph/document-convert.js +137 -0
- package/dist/graph/document-convert.js.map +1 -0
- package/dist/graph/document-semantic-bridge.d.ts +23 -0
- package/dist/graph/document-semantic-bridge.d.ts.map +1 -0
- package/dist/graph/document-semantic-bridge.js +61 -0
- package/dist/graph/document-semantic-bridge.js.map +1 -0
- package/dist/graph/document-semantic-ingest.d.ts +48 -0
- package/dist/graph/document-semantic-ingest.d.ts.map +1 -0
- package/dist/graph/document-semantic-ingest.js +229 -0
- package/dist/graph/document-semantic-ingest.js.map +1 -0
- package/dist/graph/episode-engineering-links.d.ts +29 -0
- package/dist/graph/episode-engineering-links.d.ts.map +1 -0
- package/dist/graph/episode-engineering-links.js +63 -0
- package/dist/graph/episode-engineering-links.js.map +1 -0
- package/dist/graph/file-indexer-edges.d.ts +26 -0
- package/dist/graph/file-indexer-edges.d.ts.map +1 -1
- package/dist/graph/file-indexer-edges.js +120 -20
- package/dist/graph/file-indexer-edges.js.map +1 -1
- package/dist/graph/file-indexer-nodes.d.ts +18 -0
- package/dist/graph/file-indexer-nodes.d.ts.map +1 -1
- package/dist/graph/file-indexer-nodes.js +0 -0
- package/dist/graph/file-indexer-nodes.js.map +1 -1
- package/dist/graph/file-indexer-walker.d.ts +4 -1
- package/dist/graph/file-indexer-walker.d.ts.map +1 -1
- package/dist/graph/file-indexer-walker.js +33 -16
- package/dist/graph/file-indexer-walker.js.map +1 -1
- package/dist/graph/file-indexer.d.ts +5 -0
- package/dist/graph/file-indexer.d.ts.map +1 -1
- package/dist/graph/file-indexer.js +162 -50
- package/dist/graph/file-indexer.js.map +1 -1
- package/dist/graph/graph-compression.d.ts +11 -2
- package/dist/graph/graph-compression.d.ts.map +1 -1
- package/dist/graph/graph-compression.js +153 -16
- package/dist/graph/graph-compression.js.map +1 -1
- package/dist/graph/graphify-client.d.ts +1 -0
- package/dist/graph/graphify-client.d.ts.map +1 -1
- package/dist/graph/graphify-client.js +24 -9
- package/dist/graph/graphify-client.js.map +1 -1
- package/dist/graph/graphify-file-client.d.ts +1 -0
- package/dist/graph/graphify-file-client.d.ts.map +1 -1
- package/dist/graph/graphify-file-client.js +8 -2
- package/dist/graph/graphify-file-client.js.map +1 -1
- package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
- package/dist/graph/language-indexers/c-cpp.js +19 -13
- package/dist/graph/language-indexers/c-cpp.js.map +1 -1
- package/dist/graph/language-indexers/dart.d.ts.map +1 -1
- package/dist/graph/language-indexers/dart.js +2 -6
- package/dist/graph/language-indexers/dart.js.map +1 -1
- package/dist/graph/language-indexers/go.d.ts.map +1 -1
- package/dist/graph/language-indexers/go.js +3 -6
- package/dist/graph/language-indexers/go.js.map +1 -1
- package/dist/graph/language-indexers/java.d.ts.map +1 -1
- package/dist/graph/language-indexers/java.js +2 -6
- package/dist/graph/language-indexers/java.js.map +1 -1
- package/dist/graph/language-indexers/kotlin.d.ts.map +1 -1
- package/dist/graph/language-indexers/kotlin.js +2 -6
- package/dist/graph/language-indexers/kotlin.js.map +1 -1
- package/dist/graph/language-indexers/python.d.ts.map +1 -1
- package/dist/graph/language-indexers/python.js +4 -6
- package/dist/graph/language-indexers/python.js.map +1 -1
- package/dist/graph/language-indexers/ruby.d.ts.map +1 -1
- package/dist/graph/language-indexers/ruby.js +2 -6
- package/dist/graph/language-indexers/ruby.js.map +1 -1
- package/dist/graph/language-indexers/rust.d.ts.map +1 -1
- package/dist/graph/language-indexers/rust.js +3 -6
- package/dist/graph/language-indexers/rust.js.map +1 -1
- package/dist/graph/language-indexers/swift.d.ts.map +1 -1
- package/dist/graph/language-indexers/swift.js +2 -6
- package/dist/graph/language-indexers/swift.js.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts +20 -0
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.js +42 -0
- package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
- package/dist/graph/memory-pack.d.ts +46 -0
- package/dist/graph/memory-pack.d.ts.map +1 -0
- package/dist/graph/memory-pack.js +204 -0
- package/dist/graph/memory-pack.js.map +1 -0
- package/dist/graph/snapshot-view.d.ts.map +1 -1
- package/dist/graph/snapshot-view.js +26 -1
- package/dist/graph/snapshot-view.js.map +1 -1
- package/dist/graph/sqlite-client.d.ts +1 -0
- package/dist/graph/sqlite-client.d.ts.map +1 -1
- package/dist/graph/sqlite-client.js +15 -4
- package/dist/graph/sqlite-client.js.map +1 -1
- package/dist/graph/symbol-extract.d.ts +39 -0
- package/dist/graph/symbol-extract.d.ts.map +1 -0
- package/dist/graph/symbol-extract.js +187 -0
- package/dist/graph/symbol-extract.js.map +1 -0
- package/dist/hooks/auto-capture.d.ts +87 -0
- package/dist/hooks/auto-capture.d.ts.map +1 -0
- package/dist/hooks/auto-capture.js +182 -0
- package/dist/hooks/auto-capture.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts +87 -5
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +418 -60
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/integrations/agent-profiles/profiles/qoder.d.ts.map +1 -1
- package/dist/integrations/agent-profiles/profiles/qoder.js +14 -2
- package/dist/integrations/agent-profiles/profiles/qoder.js.map +1 -1
- package/dist/integrations/agent-profiles/skills/qoder.js +6 -0
- package/dist/integrations/agent-profiles/skills/qoder.js.map +1 -1
- package/dist/integrations/claude-code-hooks.d.ts +95 -0
- package/dist/integrations/claude-code-hooks.d.ts.map +1 -0
- package/dist/integrations/claude-code-hooks.js +321 -0
- package/dist/integrations/claude-code-hooks.js.map +1 -0
- package/dist/integrations/ensure-anydoc.d.ts +41 -0
- package/dist/integrations/ensure-anydoc.d.ts.map +1 -0
- package/dist/integrations/ensure-anydoc.js +221 -0
- package/dist/integrations/ensure-anydoc.js.map +1 -0
- package/dist/integrations/skill-installer.d.ts +26 -3
- package/dist/integrations/skill-installer.d.ts.map +1 -1
- package/dist/integrations/skill-installer.js +148 -4
- package/dist/integrations/skill-installer.js.map +1 -1
- package/dist/learning/canary-gate.d.ts +39 -0
- package/dist/learning/canary-gate.d.ts.map +1 -0
- package/dist/learning/canary-gate.js +57 -0
- package/dist/learning/canary-gate.js.map +1 -0
- package/dist/learning/skill-consolidate.d.ts +84 -0
- package/dist/learning/skill-consolidate.d.ts.map +1 -0
- package/dist/learning/skill-consolidate.js +353 -0
- package/dist/learning/skill-consolidate.js.map +1 -0
- package/dist/learning/skill-flywheel.d.ts +26 -0
- package/dist/learning/skill-flywheel.d.ts.map +1 -1
- package/dist/learning/skill-flywheel.js +192 -29
- package/dist/learning/skill-flywheel.js.map +1 -1
- package/dist/learning/skill-opt-lite.d.ts +46 -0
- package/dist/learning/skill-opt-lite.d.ts.map +1 -0
- package/dist/learning/skill-opt-lite.js +270 -0
- package/dist/learning/skill-opt-lite.js.map +1 -0
- package/dist/learning/skill-package.d.ts.map +1 -1
- package/dist/learning/skill-package.js +80 -6
- package/dist/learning/skill-package.js.map +1 -1
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +13 -0
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/skill-types.d.ts +32 -0
- package/dist/learning/skill-types.d.ts.map +1 -1
- package/dist/learning/skill-types.js +17 -0
- package/dist/learning/skill-types.js.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/surfaces/cli/index.js +46 -5
- package/dist/surfaces/cli/index.js.map +1 -1
- package/dist/surfaces/cli/init.d.ts +17 -4
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +71 -8
- package/dist/surfaces/cli/init.js.map +1 -1
- package/dist/surfaces/cli/output.d.ts.map +1 -1
- package/dist/surfaces/cli/output.js +4 -2
- package/dist/surfaces/cli/output.js.map +1 -1
- package/dist/surfaces/cli/runtime/facade.d.ts +2 -1
- package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/facade.js +1 -0
- package/dist/surfaces/cli/runtime/facade.js.map +1 -1
- package/dist/surfaces/cli/runtime/graph.d.ts +59 -2
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +120 -7
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/learning.d.ts +19 -0
- package/dist/surfaces/cli/runtime/learning.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/learning.js +46 -0
- package/dist/surfaces/cli/runtime/learning.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +6 -3
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +70 -7
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +54 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +3 -3
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +6 -2
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/mcp/server.d.ts +12 -4
- package/dist/surfaces/mcp/server.d.ts.map +1 -1
- package/dist/surfaces/mcp/server.js +270 -97
- package/dist/surfaces/mcp/server.js.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.js +15 -0
- package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.d.ts +5 -3
- package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.js +36 -6
- package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +54 -5
- package/dist/utils/logger.js.map +1 -1
- package/mcp.json +14 -0
- package/package.json +19 -1
- package/plugin.json +21 -0
- package/scripts/safe-postinstall.cjs +36 -1
- package/skills/graphflow/SKILL.md +565 -0
|
@@ -7,118 +7,273 @@ exports.createMcpServer = createMcpServer;
|
|
|
7
7
|
exports.startStdioServer = startStdioServer;
|
|
8
8
|
process.env.GRAPHFLOW_MCP_STDIO ??= "1";
|
|
9
9
|
process.env.GRAPHFLOW_LOG_JSON ??= "1";
|
|
10
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
11
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
12
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
13
|
+
const runtime_1 = require("../cli/runtime");
|
|
14
|
+
const cancellation_1 = require("../../core/cancellation");
|
|
10
15
|
const discover_workspace_js_1 = require("../../config/discover-workspace.js");
|
|
16
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
11
17
|
const tool_definitions_js_1 = require("./tool-definitions.js");
|
|
12
18
|
const tool_handlers_js_1 = require("./tool-handlers.js");
|
|
13
19
|
const version_js_1 = require("./version.js");
|
|
14
20
|
var tool_definitions_js_2 = require("./tool-definitions.js");
|
|
15
21
|
Object.defineProperty(exports, "getToolDefinitions", { enumerable: true, get: function () { return tool_definitions_js_2.getToolDefinitions; } });
|
|
22
|
+
/** Servers whose SDK transport is currently connected, so notifications can be emitted. */
|
|
23
|
+
const connectedServers = new WeakSet();
|
|
24
|
+
const DIAGNOSE_RESOURCE_URI = "graphflow://diagnose";
|
|
25
|
+
const STATS_RESOURCE_URI = "graphflow://stats";
|
|
26
|
+
const FLYWHEEL_RESOURCE_URI = "graphflow://flywheel";
|
|
27
|
+
const ATP_IR_RESOURCE_URI = "graphflow://atp-ir";
|
|
28
|
+
/**
|
|
29
|
+
* 资源面注册表(P2-1):在 graphflow://diagnose 基础上新增 stats / flywheel /
|
|
30
|
+
* atp-ir 三个只读资源。资源面与工具面相互独立,10 个工具定义保持零改动;
|
|
31
|
+
* resources/list 的 name/description/mimeType 与 resources/read 返回保持一致。
|
|
32
|
+
*/
|
|
33
|
+
const GRAPHFLOW_RESOURCES = [
|
|
34
|
+
{
|
|
35
|
+
uri: DIAGNOSE_RESOURCE_URI,
|
|
36
|
+
name: "GraphFlow Diagnose",
|
|
37
|
+
description: "Provider health, graph statistics, token savings, and flywheel report for the bound workspace.",
|
|
38
|
+
mimeType: "application/json",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
uri: STATS_RESOURCE_URI,
|
|
42
|
+
name: "GraphFlow Stats",
|
|
43
|
+
description: "Graph statistics, cumulative run and token-savings statistics for the bound workspace.",
|
|
44
|
+
mimeType: "application/json",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
uri: FLYWHEEL_RESOURCE_URI,
|
|
48
|
+
name: "GraphFlow Flywheel Report",
|
|
49
|
+
description: "Skill flywheel report: skill distribution, episode outcomes, and memory attribution for the bound workspace.",
|
|
50
|
+
mimeType: "application/json",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
uri: ATP_IR_RESOURCE_URI,
|
|
54
|
+
name: "GraphFlow ATP/IR Specification",
|
|
55
|
+
description: "ATP/IR protocol version and work-item anchor reference for the agent-bridge submit/merge flow (static text).",
|
|
56
|
+
mimeType: "text/markdown",
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
const resourceByUri = new Map(GRAPHFLOW_RESOURCES.map((resource) => [resource.uri, resource]));
|
|
60
|
+
/** 静态文本资源:ATP/IR 规范版本与锚点说明(完整契约见 docs/atp-ir-spec-v1.md)。 */
|
|
61
|
+
const ATP_IR_RESOURCE_TEXT = `# ATP/IR — Agent Thinking Protocol Intermediate Representation
|
|
62
|
+
|
|
63
|
+
Protocol version: **atp-ir/1.2** (additive over v1.0 / v1.1)
|
|
64
|
+
Reference implementation: GraphFlow (@roarpeng/graphflow) v1.8+
|
|
65
|
+
|
|
66
|
+
## Roles
|
|
67
|
+
- Producer: emits AgentWorkItem sets (GraphFlow graphflow_plan / graphflow_run / graphflow_insight)
|
|
68
|
+
- Agent: answers work items with its own model, submits answers back
|
|
69
|
+
- Consumer: validates completeness and merges answers into insight + final DAG plan
|
|
70
|
+
|
|
71
|
+
## Work-item anchors (stable machine IDs)
|
|
72
|
+
| ID | kind | required |
|
|
73
|
+
| --- | --- | --- |
|
|
74
|
+
| intent-analysis | intent | required (complex set) |
|
|
75
|
+
| requirement-analysis | requirement | required (complex set) |
|
|
76
|
+
| hat-1-white .. hat-6-blue | six-hats | required (complex set) |
|
|
77
|
+
| why-1-white .. why-6-blue | five-whys | required (complex set) |
|
|
78
|
+
| first-principles | first-principles | required (complex set) |
|
|
79
|
+
| decision-matrix | decision-matrix | required (complex set) |
|
|
80
|
+
| plan-refinement | plan-refinement | required (complex set) |
|
|
81
|
+
| simple-plan-intent | intent | required (simple-plan set) |
|
|
82
|
+
| simple-plan-decomposition | plan-refinement | required (simple-plan set) |
|
|
83
|
+
| clarification | clarification | conditional (intent confidence < 0.6) |
|
|
84
|
+
| alignment-check | alignment | optional (post-execution) |
|
|
85
|
+
|
|
86
|
+
## Submit / merge flow
|
|
87
|
+
producer: plan(task) -> { agentWorkItems, agentInstructions, status: "awaiting-agent" }
|
|
88
|
+
agent: insight submit { task, workItemId, response } (per required item)
|
|
89
|
+
agent: insight merge { task } -> { plan, insight }
|
|
90
|
+
agent: report_outcome(episodeId, success, lessons[], deviation?, requirementIds?, conceptIds?, codeHints?) (post-execution, closes the flywheel; optional eng KG links)
|
|
91
|
+
|
|
92
|
+
## v1.2 increments (optional, see docs/atp-ir-spec-v1.md §8)
|
|
93
|
+
- memory-recall: recall similar episodic memories into packaged context (auto-injected)
|
|
94
|
+
- memory-backfill: report_outcome auto-backfills the episode record + skill scoring`;
|
|
95
|
+
async function readDiagnoseResource() {
|
|
96
|
+
const health = (0, runtime_1.diagnoseRoutingResult)(undefined);
|
|
97
|
+
const graph = await (0, runtime_1.inspectGraph)(undefined);
|
|
98
|
+
const stats = (0, runtime_1.getTokenSavingsStats)(undefined, undefined);
|
|
99
|
+
const flywheel = (0, runtime_1.getFlywheelReport)(undefined, undefined);
|
|
100
|
+
return {
|
|
101
|
+
health,
|
|
102
|
+
graph,
|
|
103
|
+
stats,
|
|
104
|
+
flywheel,
|
|
105
|
+
runtimeTimeline: (0, cancellation_1.getRuntimeTimelineSummary)(),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/** 图统计 + 运行/token 节省统计(与 graphflow_diagnose 同源,聚焦统计视图)。 */
|
|
109
|
+
async function readStatsResource() {
|
|
110
|
+
const graph = await (0, runtime_1.inspectGraph)(undefined);
|
|
111
|
+
const stats = (0, runtime_1.getTokenSavingsStats)(undefined, undefined);
|
|
112
|
+
return {
|
|
113
|
+
graph: {
|
|
114
|
+
transport: graph.transport,
|
|
115
|
+
nodeCount: graph.nodeCount,
|
|
116
|
+
edgeCount: graph.edgeCount,
|
|
117
|
+
nodeTypeCount: graph.nodeTypeCount,
|
|
118
|
+
},
|
|
119
|
+
runs: stats,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async function readResource(uri) {
|
|
123
|
+
const resource = resourceByUri.get(uri);
|
|
124
|
+
if (!resource) {
|
|
125
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Unknown resource: ${uri}`);
|
|
126
|
+
}
|
|
127
|
+
if (uri === DIAGNOSE_RESOURCE_URI) {
|
|
128
|
+
return toResourceResult(uri, resource.mimeType, await readDiagnoseResource());
|
|
129
|
+
}
|
|
130
|
+
if (uri === STATS_RESOURCE_URI) {
|
|
131
|
+
return toResourceResult(uri, resource.mimeType, await readStatsResource());
|
|
132
|
+
}
|
|
133
|
+
if (uri === FLYWHEEL_RESOURCE_URI) {
|
|
134
|
+
return toResourceResult(uri, resource.mimeType, (0, runtime_1.getFlywheelReport)(undefined, undefined));
|
|
135
|
+
}
|
|
136
|
+
return toResourceResult(uri, resource.mimeType, ATP_IR_RESOURCE_TEXT);
|
|
137
|
+
}
|
|
138
|
+
function toResourceResult(uri, mimeType, payload) {
|
|
139
|
+
return {
|
|
140
|
+
contents: [
|
|
141
|
+
{
|
|
142
|
+
uri,
|
|
143
|
+
mimeType,
|
|
144
|
+
text: typeof payload === "string" ? payload : JSON.stringify(payload, null, 2),
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
16
149
|
async function executeToolCall(call, server = createMcpServer()) {
|
|
17
150
|
return (0, tool_handlers_js_1.executeToolCall)(call, server);
|
|
18
151
|
}
|
|
19
152
|
function createMcpServer(_emitNotification) {
|
|
20
153
|
const tools = (0, tool_definitions_js_1.getToolDefinitions)();
|
|
21
|
-
|
|
154
|
+
const sdkServer = new index_js_1.Server({
|
|
155
|
+
name: "graphflow",
|
|
156
|
+
version: version_js_1.PACKAGE_VERSION,
|
|
157
|
+
}, {
|
|
158
|
+
capabilities: {
|
|
159
|
+
tools: {},
|
|
160
|
+
logging: {},
|
|
161
|
+
resources: {},
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
const wrapper = {
|
|
22
165
|
serverInfo: {
|
|
23
166
|
name: "graphflow",
|
|
24
167
|
version: version_js_1.PACKAGE_VERSION,
|
|
25
168
|
},
|
|
26
169
|
tools,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (request.method === "initialize") {
|
|
32
|
-
return {
|
|
33
|
-
jsonrpc: "2.0",
|
|
34
|
-
id: request.id ?? null,
|
|
35
|
-
result: {
|
|
36
|
-
protocolVersion: "2024-11-05",
|
|
37
|
-
capabilities: {
|
|
38
|
-
tools: {},
|
|
39
|
-
},
|
|
40
|
-
serverInfo: {
|
|
41
|
-
name: "graphflow",
|
|
42
|
-
version: version_js_1.PACKAGE_VERSION,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (request.method === "tools/list") {
|
|
48
|
-
return {
|
|
49
|
-
jsonrpc: "2.0",
|
|
50
|
-
id: request.id ?? null,
|
|
51
|
-
result: {
|
|
52
|
-
tools,
|
|
53
|
-
},
|
|
54
|
-
};
|
|
170
|
+
sdkServer,
|
|
171
|
+
sendProgress(progressToken, progress, total) {
|
|
172
|
+
if (!connectedServers.has(wrapper)) {
|
|
173
|
+
return;
|
|
55
174
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
return {
|
|
71
|
-
jsonrpc: "2.0",
|
|
72
|
-
id: request.id ?? null,
|
|
73
|
-
error: {
|
|
74
|
-
code: -32000,
|
|
75
|
-
message: error instanceof Error ? error.message : "Unknown tool execution error",
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
175
|
+
void sdkServer
|
|
176
|
+
.notification({
|
|
177
|
+
method: "notifications/progress",
|
|
178
|
+
params: { progressToken, progress, total },
|
|
179
|
+
})
|
|
180
|
+
.catch(() => {
|
|
181
|
+
// Notification is best-effort; drop failures (e.g. transport closing).
|
|
182
|
+
});
|
|
183
|
+
},
|
|
184
|
+
sendLogNotification(level, message) {
|
|
185
|
+
if (!connectedServers.has(wrapper)) {
|
|
186
|
+
return;
|
|
79
187
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
188
|
+
void sdkServer
|
|
189
|
+
.notification({
|
|
190
|
+
method: "notifications/message",
|
|
191
|
+
params: { level, data: message, loggerName: "graphflow" },
|
|
192
|
+
})
|
|
193
|
+
.catch(() => {
|
|
194
|
+
// Best-effort log notification; stderr remains the fallback channel.
|
|
195
|
+
});
|
|
88
196
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
let buffer = "";
|
|
93
|
-
input.setEncoding("utf8");
|
|
94
|
-
input.on("data", async (chunk) => {
|
|
95
|
-
buffer += chunk;
|
|
96
|
-
let newlineIndex;
|
|
97
|
-
while ((newlineIndex = buffer.indexOf("\n")) !== -1) {
|
|
98
|
-
const line = buffer.slice(0, newlineIndex).trim();
|
|
99
|
-
buffer = buffer.slice(newlineIndex + 1);
|
|
100
|
-
if (!line) {
|
|
101
|
-
continue;
|
|
197
|
+
async handleRequest(request) {
|
|
198
|
+
if (request.method === "notifications/initialized") {
|
|
199
|
+
return undefined;
|
|
102
200
|
}
|
|
103
201
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
202
|
+
switch (request.method) {
|
|
203
|
+
case "initialize":
|
|
204
|
+
return respond(request.id ?? null, {
|
|
205
|
+
protocolVersion: types_js_1.LATEST_PROTOCOL_VERSION,
|
|
206
|
+
capabilities: {
|
|
207
|
+
tools: {},
|
|
208
|
+
logging: {},
|
|
209
|
+
resources: {},
|
|
210
|
+
},
|
|
211
|
+
serverInfo: wrapper.serverInfo,
|
|
212
|
+
});
|
|
213
|
+
case "ping":
|
|
214
|
+
return respond(request.id ?? null, {});
|
|
215
|
+
case "tools/list":
|
|
216
|
+
return respond(request.id ?? null, { tools });
|
|
217
|
+
case "tools/call":
|
|
218
|
+
return respond(request.id ?? null, await callTool(request.params ?? {}));
|
|
219
|
+
case "resources/list":
|
|
220
|
+
return respond(request.id ?? null, { resources: GRAPHFLOW_RESOURCES });
|
|
221
|
+
case "resources/read":
|
|
222
|
+
return respond(request.id ?? null, await readResource((0, tool_handlers_js_1.readRequiredString)((request.params ?? {}).uri, "uri")));
|
|
223
|
+
default:
|
|
224
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Method not found: ${request.method}`);
|
|
108
225
|
}
|
|
109
226
|
}
|
|
110
|
-
catch (
|
|
111
|
-
|
|
112
|
-
console.error("[GraphFlow MCP] Error parsing incoming message:", err);
|
|
227
|
+
catch (error) {
|
|
228
|
+
return respondError(request.id ?? null, error);
|
|
113
229
|
}
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
async function callTool(params) {
|
|
233
|
+
const progressToken = (0, tool_handlers_js_1.readProgressToken)(params);
|
|
234
|
+
const call = {
|
|
235
|
+
name: (0, tool_handlers_js_1.readRequiredString)(params.name, "name"),
|
|
236
|
+
arguments: (0, tool_handlers_js_1.isRecord)(params.arguments) ? params.arguments : {},
|
|
237
|
+
...(progressToken !== undefined ? { progressToken } : {}),
|
|
238
|
+
};
|
|
239
|
+
try {
|
|
240
|
+
return await (0, tool_handlers_js_1.executeToolCall)(call, wrapper);
|
|
114
241
|
}
|
|
115
|
-
|
|
242
|
+
catch (error) {
|
|
243
|
+
const message = error instanceof Error ? error.message : "Unknown tool execution error";
|
|
244
|
+
wrapper.sendLogNotification("error", `Tool '${call.name}' failed: ${message}`);
|
|
245
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, message);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
sdkServer.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({ tools }));
|
|
249
|
+
sdkServer.setRequestHandler(types_js_1.CallToolRequestSchema, (request) => callTool(request.params));
|
|
250
|
+
sdkServer.setRequestHandler(types_js_1.SetLevelRequestSchema, () => ({}));
|
|
251
|
+
sdkServer.setRequestHandler(types_js_1.ListResourcesRequestSchema, () => ({ resources: GRAPHFLOW_RESOURCES }));
|
|
252
|
+
sdkServer.setRequestHandler(types_js_1.ReadResourceRequestSchema, (request) => readResource(request.params.uri));
|
|
253
|
+
return wrapper;
|
|
116
254
|
}
|
|
117
|
-
function
|
|
118
|
-
|
|
119
|
-
|
|
255
|
+
function respond(id, result) {
|
|
256
|
+
return {
|
|
257
|
+
jsonrpc: "2.0",
|
|
258
|
+
id,
|
|
259
|
+
result,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
function respondError(id, error) {
|
|
263
|
+
const code = error instanceof types_js_1.McpError ? error.code : types_js_1.ErrorCode.InternalError;
|
|
264
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
265
|
+
return {
|
|
266
|
+
jsonrpc: "2.0",
|
|
267
|
+
id,
|
|
268
|
+
error: { code, message },
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
async function startStdioServer(server = createMcpServer(), input = process.stdin, output = process.stdout) {
|
|
272
|
+
const transport = new stdio_js_1.StdioServerTransport(input, output);
|
|
273
|
+
await server.sdkServer.connect(transport);
|
|
274
|
+
connectedServers.add(server);
|
|
120
275
|
}
|
|
121
|
-
function installMcpProcessGuards() {
|
|
276
|
+
function installMcpProcessGuards(server) {
|
|
122
277
|
process.on("uncaughtException", (error) => {
|
|
123
278
|
console.error("[GraphFlow MCP] uncaughtException:", error);
|
|
124
279
|
process.exit(1);
|
|
@@ -134,42 +289,60 @@ function installMcpProcessGuards() {
|
|
|
134
289
|
}
|
|
135
290
|
shuttingDown = true;
|
|
136
291
|
console.error(`[GraphFlow MCP] Received ${signal}, shutting down gracefully...`);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
292
|
+
void server.sdkServer
|
|
293
|
+
.close()
|
|
294
|
+
.catch(() => {
|
|
295
|
+
// Best-effort close; fall through to exit.
|
|
296
|
+
})
|
|
297
|
+
.finally(() => process.exit(0));
|
|
298
|
+
setTimeout(() => process.exit(0), 1000).unref();
|
|
141
299
|
};
|
|
142
300
|
process.on("SIGTERM", () => shutdown("SIGTERM"));
|
|
143
301
|
process.on("SIGINT", () => shutdown("SIGINT"));
|
|
144
302
|
}
|
|
145
303
|
if (require.main === module) {
|
|
146
|
-
|
|
147
|
-
|
|
304
|
+
const server = createMcpServer();
|
|
305
|
+
installMcpProcessGuards(server);
|
|
306
|
+
(0, logger_js_1.attachMcpLogSink)((level, message) => server.sendLogNotification(level, message));
|
|
148
307
|
// Start file watcher only when we resolved a real project root.
|
|
149
308
|
// Cursor often spawns MCP with cwd=user home; watching that freezes startup
|
|
150
309
|
// by indexing AppData/Chrome/OneDrive and flooding stderr.
|
|
310
|
+
const workspaceRoot = (0, discover_workspace_js_1.ensureMcpWorkspaceEnv)();
|
|
151
311
|
void (async () => {
|
|
152
312
|
if (!workspaceRoot) {
|
|
153
|
-
|
|
154
|
-
"Pass rootDir on tools or set GRAPHFLOW_WORKSPACE_ROOT."
|
|
313
|
+
const message = "[GraphFlow MCP] No safe workspace root resolved; skipping auto file watcher. " +
|
|
314
|
+
"Pass rootDir on tools or set GRAPHFLOW_WORKSPACE_ROOT.";
|
|
315
|
+
console.error(message);
|
|
316
|
+
server.sendLogNotification("warning", message);
|
|
155
317
|
return;
|
|
156
318
|
}
|
|
157
319
|
try {
|
|
158
320
|
const { isUnsafeWorkspaceFallback } = await import("../../config/discover-workspace.js");
|
|
159
321
|
if (isUnsafeWorkspaceFallback(workspaceRoot)) {
|
|
160
|
-
|
|
322
|
+
const message = `[GraphFlow MCP] Refusing to watch unsafe workspace root: ${workspaceRoot}`;
|
|
323
|
+
console.error(message);
|
|
324
|
+
server.sendLogNotification("warning", message);
|
|
161
325
|
return;
|
|
162
326
|
}
|
|
163
327
|
const { resolveConfig } = await import("../../config/resolve.js");
|
|
164
328
|
const { startFileWatcherIfEnabled } = await import("../cli/runtime/graph.js");
|
|
165
329
|
const config = resolveConfig();
|
|
166
|
-
startFileWatcherIfEnabled(config);
|
|
330
|
+
const started = startFileWatcherIfEnabled(config);
|
|
331
|
+
if (started) {
|
|
332
|
+
server.sendLogNotification("info", "[GraphFlow MCP] File watcher started");
|
|
333
|
+
}
|
|
167
334
|
}
|
|
168
335
|
catch (error) {
|
|
169
|
-
|
|
336
|
+
const message = "[GraphFlow MCP] File watcher not started: " +
|
|
337
|
+
(error instanceof Error ? error.message : error);
|
|
338
|
+
console.error(message);
|
|
339
|
+
server.sendLogNotification("error", message);
|
|
170
340
|
}
|
|
171
341
|
})();
|
|
172
342
|
// Respond to initialize immediately; watcher is background-only.
|
|
173
|
-
startStdioServer()
|
|
343
|
+
void startStdioServer(server).catch((error) => {
|
|
344
|
+
console.error("[GraphFlow MCP] Failed to start stdio server:", error);
|
|
345
|
+
process.exit(1);
|
|
346
|
+
});
|
|
174
347
|
}
|
|
175
348
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/surfaces/mcp/server.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/surfaces/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definitions.d.ts","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-definitions.d.ts","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAkLrD"}
|
|
@@ -34,6 +34,21 @@ function getToolDefinitions() {
|
|
|
34
34
|
enum: ["none", "misread-requirement", "scope-creep", "tech-drift"],
|
|
35
35
|
description: "Optional drift classification vs the original goal anchor: did the work deviate because the requirement was misread, the scope crept, or the technical approach drifted? Use 'none' when it stayed aligned.",
|
|
36
36
|
},
|
|
37
|
+
requirementIds: {
|
|
38
|
+
type: "array",
|
|
39
|
+
items: { type: "string" },
|
|
40
|
+
description: "Optional Engineering KG Requirement node ids to link from this episode via derived_from (experience↔eng provenance).",
|
|
41
|
+
},
|
|
42
|
+
conceptIds: {
|
|
43
|
+
type: "array",
|
|
44
|
+
items: { type: "string" },
|
|
45
|
+
description: "Optional Engineering KG Concept node ids to link from this episode via derived_from.",
|
|
46
|
+
},
|
|
47
|
+
codeHints: {
|
|
48
|
+
type: "array",
|
|
49
|
+
items: { type: "string" },
|
|
50
|
+
description: "Optional file paths, symbol names, or file:/symbol: ids resolved against the graph and linked from this episode via derived_from.",
|
|
51
|
+
},
|
|
37
52
|
configPath: { type: "string", description: "Optional path to graphflow.config.json." },
|
|
38
53
|
},
|
|
39
54
|
required: ["episodeId", "success"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-definitions.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,19 @@ import type { McpServer } from "./server.js";
|
|
|
2
2
|
export interface ToolCall {
|
|
3
3
|
name: string;
|
|
4
4
|
arguments?: Record<string, unknown>;
|
|
5
|
+
/** MCP progress token from the request's _meta, used to emit progress notifications. */
|
|
6
|
+
progressToken?: string | number;
|
|
5
7
|
}
|
|
6
|
-
export
|
|
8
|
+
export type ToolCallResponse = {
|
|
7
9
|
content: Array<{
|
|
8
10
|
type: "text";
|
|
9
11
|
text: string;
|
|
10
12
|
}>;
|
|
11
|
-
}
|
|
13
|
+
};
|
|
12
14
|
export interface ExecutionHooks {
|
|
13
15
|
}
|
|
14
16
|
export declare const MAX_STRING_FIELD_LENGTH = 100000;
|
|
15
|
-
export declare function executeToolCall(call: ToolCall,
|
|
17
|
+
export declare function executeToolCall(call: ToolCall, server?: McpServer, _hooks?: ExecutionHooks): Promise<ToolCallResponse>;
|
|
16
18
|
export declare function readRequiredString(value: unknown, field: string): string;
|
|
17
19
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
18
20
|
export declare function readProgressToken(params: Record<string, unknown>): string | number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-handlers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../../src/surfaces/mcp/tool-handlers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,WAAW,cAAc;CAC9B;AAED,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,wBAAsB,eAAe,CACnC,IAAI,EAAE,QAAQ,EACd,MAAM,CAAC,EAAE,SAAS,EAClB,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA2L3B;AAkID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAWxE;AAqCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAW9F"}
|