@roarpeng/graphflow 1.7.7 → 1.7.10

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +66 -2
  2. package/README.md +266 -264
  3. package/dist/config/discover-workspace.d.ts +2 -0
  4. package/dist/config/discover-workspace.d.ts.map +1 -1
  5. package/dist/config/discover-workspace.js +62 -15
  6. package/dist/config/discover-workspace.js.map +1 -1
  7. package/dist/config/embedding-factory.d.ts.map +1 -1
  8. package/dist/config/embedding-factory.js +8 -0
  9. package/dist/config/embedding-factory.js.map +1 -1
  10. package/dist/config/workspace-root.d.ts.map +1 -1
  11. package/dist/config/workspace-root.js +7 -2
  12. package/dist/config/workspace-root.js.map +1 -1
  13. package/dist/core/types.d.ts +1 -1
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/graph/artifact-manager.d.ts +1 -0
  16. package/dist/graph/artifact-manager.d.ts.map +1 -1
  17. package/dist/graph/artifact-manager.js +15 -8
  18. package/dist/graph/artifact-manager.js.map +1 -1
  19. package/dist/graph/file-indexer-walker.d.ts.map +1 -1
  20. package/dist/graph/file-indexer-walker.js +1 -0
  21. package/dist/graph/file-indexer-walker.js.map +1 -1
  22. package/dist/graph/file-indexer.d.ts.map +1 -1
  23. package/dist/graph/file-indexer.js +18 -0
  24. package/dist/graph/file-indexer.js.map +1 -1
  25. package/dist/graph/file-watcher.d.ts.map +1 -1
  26. package/dist/graph/file-watcher.js +1 -0
  27. package/dist/graph/file-watcher.js.map +1 -1
  28. package/dist/graph/graph-compression.d.ts.map +1 -1
  29. package/dist/graph/graph-compression.js +2 -0
  30. package/dist/graph/graph-compression.js.map +1 -1
  31. package/dist/graph/hit-diversify.js +1 -1
  32. package/dist/graph/hit-diversify.js.map +1 -1
  33. package/dist/graph/language-indexers/dart.d.ts +9 -0
  34. package/dist/graph/language-indexers/dart.d.ts.map +1 -0
  35. package/dist/graph/language-indexers/dart.js +225 -0
  36. package/dist/graph/language-indexers/dart.js.map +1 -0
  37. package/dist/graph/language-indexers/index.d.ts.map +1 -1
  38. package/dist/graph/language-indexers/index.js +6 -0
  39. package/dist/graph/language-indexers/index.js.map +1 -1
  40. package/dist/graph/language-indexers/markdown.d.ts +11 -0
  41. package/dist/graph/language-indexers/markdown.d.ts.map +1 -0
  42. package/dist/graph/language-indexers/markdown.js +158 -0
  43. package/dist/graph/language-indexers/markdown.js.map +1 -0
  44. package/dist/graph/language-indexers/plcopen-xml.d.ts +16 -0
  45. package/dist/graph/language-indexers/plcopen-xml.d.ts.map +1 -0
  46. package/dist/graph/language-indexers/plcopen-xml.js +204 -0
  47. package/dist/graph/language-indexers/plcopen-xml.js.map +1 -0
  48. package/dist/graph/language-indexers/st-analyzer.d.ts +49 -0
  49. package/dist/graph/language-indexers/st-analyzer.d.ts.map +1 -0
  50. package/dist/graph/language-indexers/st-analyzer.js +439 -0
  51. package/dist/graph/language-indexers/st-analyzer.js.map +1 -0
  52. package/dist/graph/language-indexers/tree-sitter-loader.d.ts +2 -1
  53. package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
  54. package/dist/graph/language-indexers/tree-sitter-loader.js +5 -2
  55. package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
  56. package/dist/integrations/agent-mcp-installer.d.ts +8 -2
  57. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  58. package/dist/integrations/agent-mcp-installer.js +70 -5
  59. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  60. package/dist/integrations/agent-profiles/index.d.ts +2 -0
  61. package/dist/integrations/agent-profiles/index.d.ts.map +1 -1
  62. package/dist/integrations/agent-profiles/index.js +2 -0
  63. package/dist/integrations/agent-profiles/index.js.map +1 -1
  64. package/dist/integrations/agent-profiles/profiles/opencode.d.ts +2 -0
  65. package/dist/integrations/agent-profiles/profiles/opencode.d.ts.map +1 -0
  66. package/dist/integrations/agent-profiles/profiles/opencode.js +28 -0
  67. package/dist/integrations/agent-profiles/profiles/opencode.js.map +1 -0
  68. package/dist/integrations/agent-profiles/skills/opencode.d.ts +2 -0
  69. package/dist/integrations/agent-profiles/skills/opencode.d.ts.map +1 -0
  70. package/dist/integrations/agent-profiles/skills/opencode.js +13 -0
  71. package/dist/integrations/agent-profiles/skills/opencode.js.map +1 -0
  72. package/dist/integrations/agent-profiles/types.d.ts +2 -2
  73. package/dist/integrations/agent-profiles/types.d.ts.map +1 -1
  74. package/dist/integrations/skill-installer.d.ts.map +1 -1
  75. package/dist/integrations/skill-installer.js +7 -0
  76. package/dist/integrations/skill-installer.js.map +1 -1
  77. package/dist/learning/embedding-quality.d.ts +4 -0
  78. package/dist/learning/embedding-quality.d.ts.map +1 -1
  79. package/dist/learning/embedding-quality.js +10 -0
  80. package/dist/learning/embedding-quality.js.map +1 -1
  81. package/dist/learning/embeddings.d.ts +31 -2
  82. package/dist/learning/embeddings.d.ts.map +1 -1
  83. package/dist/learning/embeddings.js +114 -22
  84. package/dist/learning/embeddings.js.map +1 -1
  85. package/dist/learning/episodic-memory.d.ts +3 -0
  86. package/dist/learning/episodic-memory.d.ts.map +1 -1
  87. package/dist/learning/episodic-memory.js +13 -0
  88. package/dist/learning/episodic-memory.js.map +1 -1
  89. package/dist/learning/skill-flywheel.d.ts +11 -0
  90. package/dist/learning/skill-flywheel.d.ts.map +1 -1
  91. package/dist/learning/skill-flywheel.js +85 -0
  92. package/dist/learning/skill-flywheel.js.map +1 -1
  93. package/dist/learning/skill-store.d.ts.map +1 -1
  94. package/dist/learning/skill-store.js +1 -0
  95. package/dist/learning/skill-store.js.map +1 -1
  96. package/dist/learning/skill-types.d.ts +1 -0
  97. package/dist/learning/skill-types.d.ts.map +1 -1
  98. package/dist/learning/skill-types.js.map +1 -1
  99. package/dist/surfaces/cli/index.js +115 -9
  100. package/dist/surfaces/cli/index.js.map +1 -1
  101. package/dist/surfaces/cli/init.d.ts +55 -2
  102. package/dist/surfaces/cli/init.d.ts.map +1 -1
  103. package/dist/surfaces/cli/init.js +234 -56
  104. package/dist/surfaces/cli/init.js.map +1 -1
  105. package/dist/surfaces/cli/output.d.ts +6 -0
  106. package/dist/surfaces/cli/output.d.ts.map +1 -1
  107. package/dist/surfaces/cli/output.js +62 -2
  108. package/dist/surfaces/cli/output.js.map +1 -1
  109. package/dist/surfaces/cli/runtime/graph.d.ts +1 -0
  110. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  111. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  112. package/dist/surfaces/cli/runtime/learning.d.ts +13 -0
  113. package/dist/surfaces/cli/runtime/learning.d.ts.map +1 -1
  114. package/dist/surfaces/cli/runtime/learning.js +27 -0
  115. package/dist/surfaces/cli/runtime/learning.js.map +1 -1
  116. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  117. package/dist/surfaces/cli/runtime/routing.js +65 -0
  118. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  119. package/dist/surfaces/cli/runtime/types.d.ts +25 -0
  120. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  121. package/dist/surfaces/cli/runtime.d.ts +1 -1
  122. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  123. package/dist/surfaces/cli/runtime.js +5 -1
  124. package/dist/surfaces/cli/runtime.js.map +1 -1
  125. package/package.json +13 -8
  126. package/scripts/safe-postinstall.cjs +38 -1
  127. package/wasm/.grammar-version +1 -0
  128. package/wasm/tree-sitter-dart.wasm +0 -0
  129. package/wasm/tree-sitter-kotlin.wasm +0 -0
@@ -231,6 +231,23 @@ function getClaudeMdSourceFile() {
231
231
  return null;
232
232
  }
233
233
 
234
+ /**
235
+ * 获取 GraphFlow Rules 源文件路径(trae-rules,所有 agent rules 的单一数据源)
236
+ * @returns {string | null} 源文件路径,不存在则返回 null
237
+ */
238
+ function getRulesSourceFile() {
239
+ const candidates = [
240
+ join(__dirname, "..", "dist", "surfaces", "trae-rules", "graphflow.md"),
241
+ join(__dirname, "..", "src", "surfaces", "trae-rules", "graphflow.md"),
242
+ ];
243
+ for (const filePath of candidates) {
244
+ if (existsSync(filePath)) {
245
+ return filePath;
246
+ }
247
+ }
248
+ return null;
249
+ }
250
+
234
251
  /**
235
252
  * 获取 Cursor rules 目录列表。
236
253
  * Cursor 的 rules 目录为 ~/.cursor/rules/(跨平台一致),
@@ -341,6 +358,7 @@ function installWorkspaceLevelMcp(workspaceRoot) {
341
358
  const configFiles = [
342
359
  { path: join(workspaceRoot, ".cursor", "mcp.json"), name: "Cursor", key: "mcpServers" },
343
360
  { path: join(workspaceRoot, ".vscode", "mcp.json"), name: "VS Code", key: "servers" },
361
+ { path: join(workspaceRoot, ".opencode", "opencode.json"), name: "Opencode", key: "mcp", opencode: true },
344
362
  ];
345
363
 
346
364
  const mcpEntry = {
@@ -349,6 +367,13 @@ function installWorkspaceLevelMcp(workspaceRoot) {
349
367
  env: { GRAPHFLOW_MCP_STDIO: "1", GRAPHFLOW_LOG_JSON: "1" },
350
368
  };
351
369
 
370
+ const opencodeMcpEntry = {
371
+ command: ["npx", "-y", "--package=@roarpeng/graphflow", "graphflow-mcp"],
372
+ enabled: true,
373
+ environment: { GRAPHFLOW_LOG_JSON: "1" },
374
+ type: "local",
375
+ };
376
+
352
377
  for (const config of configFiles) {
353
378
  if (!existsSync(config.path)) {
354
379
  continue; // 该 workspace 级配置不存在,跳过
@@ -362,13 +387,14 @@ function installWorkspaceLevelMcp(workspaceRoot) {
362
387
  // 配置文件为空或损坏,初始化为空对象
363
388
  }
364
389
 
390
+ const entry = config.opencode ? opencodeMcpEntry : mcpEntry;
365
391
  const servers = json[config.key] || {};
366
392
  if (servers.graphflow) {
367
393
  results.push({ configPath: config.path, status: "skipped", name: config.name, reason: "already configured" });
368
394
  continue;
369
395
  }
370
396
 
371
- servers.graphflow = mcpEntry;
397
+ servers.graphflow = entry;
372
398
  json[config.key] = servers;
373
399
  writeFileSync(config.path, JSON.stringify(json, null, 2) + "\n", "utf8");
374
400
  results.push({ configPath: config.path, status: "created", name: config.name });
@@ -391,6 +417,7 @@ function installWorkspaceLevelSkills(workspaceRoot) {
391
417
  const configFiles = [
392
418
  join(workspaceRoot, ".cursor", "mcp.json"),
393
419
  join(workspaceRoot, ".vscode", "mcp.json"),
420
+ join(workspaceRoot, ".opencode", "opencode.json"),
394
421
  ];
395
422
  const hasWorkspaceConfig = configFiles.some((p) => existsSync(p));
396
423
 
@@ -419,6 +446,16 @@ function installWorkspaceLevelSkills(workspaceRoot) {
419
446
  console.log(`[GraphFlow] Workspace 级 Cursor Rules: ${rulesResult.status}${rulesResult.reason ? ` (${rulesResult.reason})` : ""}`);
420
447
  }
421
448
  }
449
+
450
+ // 安装 Opencode Rules 到 workspace 级 .opencode/rules/
451
+ const rulesSource = getRulesSourceFile();
452
+ if (rulesSource && existsSync(join(workspaceRoot, ".opencode"))) {
453
+ const opencodeRulesDir = join(workspaceRoot, ".opencode", "rules");
454
+ const opencodeRulesResult = installFileToDir(rulesSource, opencodeRulesDir, "graphflow.md");
455
+ if (opencodeRulesResult.status !== "skipped") {
456
+ console.log(`[GraphFlow] Workspace 级 Opencode Rules: ${opencodeRulesResult.status}${opencodeRulesResult.reason ? ` (${opencodeRulesResult.reason})` : ""}`);
457
+ }
458
+ }
422
459
  }
423
460
 
424
461
  function main() {
@@ -0,0 +1 @@
1
+ 0.1.13
Binary file
Binary file