@roarpeng/graphflow 0.6.5

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 (271) hide show
  1. package/AGENTS.md +58 -0
  2. package/CHANGELOG.md +205 -0
  3. package/CLAUDE.md +39 -0
  4. package/LICENSE +17 -0
  5. package/README.md +434 -0
  6. package/dist/agents/brainstormer.d.ts +5 -0
  7. package/dist/agents/brainstormer.d.ts.map +1 -0
  8. package/dist/agents/brainstormer.js +61 -0
  9. package/dist/agents/brainstormer.js.map +1 -0
  10. package/dist/agents/planner.d.ts +14 -0
  11. package/dist/agents/planner.d.ts.map +1 -0
  12. package/dist/agents/planner.js +166 -0
  13. package/dist/agents/planner.js.map +1 -0
  14. package/dist/agents/validator.d.ts +6 -0
  15. package/dist/agents/validator.d.ts.map +1 -0
  16. package/dist/agents/validator.js +133 -0
  17. package/dist/agents/validator.js.map +1 -0
  18. package/dist/agents/worker.d.ts +18 -0
  19. package/dist/agents/worker.d.ts.map +1 -0
  20. package/dist/agents/worker.js +34 -0
  21. package/dist/agents/worker.js.map +1 -0
  22. package/dist/config/defaults.d.ts +16 -0
  23. package/dist/config/defaults.d.ts.map +1 -0
  24. package/dist/config/defaults.js +85 -0
  25. package/dist/config/defaults.js.map +1 -0
  26. package/dist/config/embedding-factory.d.ts +4 -0
  27. package/dist/config/embedding-factory.d.ts.map +1 -0
  28. package/dist/config/embedding-factory.js +37 -0
  29. package/dist/config/embedding-factory.js.map +1 -0
  30. package/dist/config/loader.d.ts +4 -0
  31. package/dist/config/loader.d.ts.map +1 -0
  32. package/dist/config/loader.js +194 -0
  33. package/dist/config/loader.js.map +1 -0
  34. package/dist/config/merge.d.ts +6 -0
  35. package/dist/config/merge.d.ts.map +1 -0
  36. package/dist/config/merge.js +130 -0
  37. package/dist/config/merge.js.map +1 -0
  38. package/dist/config/paths.d.ts +6 -0
  39. package/dist/config/paths.d.ts.map +1 -0
  40. package/dist/config/paths.js +32 -0
  41. package/dist/config/paths.js.map +1 -0
  42. package/dist/config/resolve.d.ts +4 -0
  43. package/dist/config/resolve.d.ts.map +1 -0
  44. package/dist/config/resolve.js +45 -0
  45. package/dist/config/resolve.js.map +1 -0
  46. package/dist/config/scaffold.d.ts +11 -0
  47. package/dist/config/scaffold.d.ts.map +1 -0
  48. package/dist/config/scaffold.js +42 -0
  49. package/dist/config/scaffold.js.map +1 -0
  50. package/dist/config/schema.d.ts +102 -0
  51. package/dist/config/schema.d.ts.map +1 -0
  52. package/dist/config/schema.js +3 -0
  53. package/dist/config/schema.js.map +1 -0
  54. package/dist/config/secrets.d.ts +9 -0
  55. package/dist/config/secrets.d.ts.map +1 -0
  56. package/dist/config/secrets.js +55 -0
  57. package/dist/config/secrets.js.map +1 -0
  58. package/dist/core/dag-engine.d.ts +14 -0
  59. package/dist/core/dag-engine.d.ts.map +1 -0
  60. package/dist/core/dag-engine.js +97 -0
  61. package/dist/core/dag-engine.js.map +1 -0
  62. package/dist/core/errors.d.ts +15 -0
  63. package/dist/core/errors.d.ts.map +1 -0
  64. package/dist/core/errors.js +29 -0
  65. package/dist/core/errors.js.map +1 -0
  66. package/dist/core/orchestrator.d.ts +31 -0
  67. package/dist/core/orchestrator.d.ts.map +1 -0
  68. package/dist/core/orchestrator.js +321 -0
  69. package/dist/core/orchestrator.js.map +1 -0
  70. package/dist/core/state-machine.d.ts +14 -0
  71. package/dist/core/state-machine.d.ts.map +1 -0
  72. package/dist/core/state-machine.js +77 -0
  73. package/dist/core/state-machine.js.map +1 -0
  74. package/dist/core/triage.d.ts +6 -0
  75. package/dist/core/triage.d.ts.map +1 -0
  76. package/dist/core/triage.js +58 -0
  77. package/dist/core/triage.js.map +1 -0
  78. package/dist/core/types.d.ts +61 -0
  79. package/dist/core/types.d.ts.map +1 -0
  80. package/dist/core/types.js +3 -0
  81. package/dist/core/types.js.map +1 -0
  82. package/dist/graph/client-factory.d.ts +22 -0
  83. package/dist/graph/client-factory.d.ts.map +1 -0
  84. package/dist/graph/client-factory.js +60 -0
  85. package/dist/graph/client-factory.js.map +1 -0
  86. package/dist/graph/context-slicer.d.ts +47 -0
  87. package/dist/graph/context-slicer.d.ts.map +1 -0
  88. package/dist/graph/context-slicer.js +246 -0
  89. package/dist/graph/context-slicer.js.map +1 -0
  90. package/dist/graph/file-indexer.d.ts +15 -0
  91. package/dist/graph/file-indexer.d.ts.map +1 -0
  92. package/dist/graph/file-indexer.js +343 -0
  93. package/dist/graph/file-indexer.js.map +1 -0
  94. package/dist/graph/graph-indexer.d.ts +7 -0
  95. package/dist/graph/graph-indexer.d.ts.map +1 -0
  96. package/dist/graph/graph-indexer.js +32 -0
  97. package/dist/graph/graph-indexer.js.map +1 -0
  98. package/dist/graph/graphify-client.d.ts +30 -0
  99. package/dist/graph/graphify-client.d.ts.map +1 -0
  100. package/dist/graph/graphify-client.js +186 -0
  101. package/dist/graph/graphify-client.js.map +1 -0
  102. package/dist/graph/graphify-file-client.d.ts +26 -0
  103. package/dist/graph/graphify-file-client.d.ts.map +1 -0
  104. package/dist/graph/graphify-file-client.js +140 -0
  105. package/dist/graph/graphify-file-client.js.map +1 -0
  106. package/dist/graph/graphify-mcp-client.d.ts +18 -0
  107. package/dist/graph/graphify-mcp-client.d.ts.map +1 -0
  108. package/dist/graph/graphify-mcp-client.js +73 -0
  109. package/dist/graph/graphify-mcp-client.js.map +1 -0
  110. package/dist/graph/language-indexers/c-cpp.d.ts +3 -0
  111. package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -0
  112. package/dist/graph/language-indexers/c-cpp.js +121 -0
  113. package/dist/graph/language-indexers/c-cpp.js.map +1 -0
  114. package/dist/graph/language-indexers/go.d.ts +3 -0
  115. package/dist/graph/language-indexers/go.d.ts.map +1 -0
  116. package/dist/graph/language-indexers/go.js +97 -0
  117. package/dist/graph/language-indexers/go.js.map +1 -0
  118. package/dist/graph/language-indexers/index.d.ts +29 -0
  119. package/dist/graph/language-indexers/index.d.ts.map +1 -0
  120. package/dist/graph/language-indexers/index.js +27 -0
  121. package/dist/graph/language-indexers/index.js.map +1 -0
  122. package/dist/graph/language-indexers/python.d.ts +3 -0
  123. package/dist/graph/language-indexers/python.d.ts.map +1 -0
  124. package/dist/graph/language-indexers/python.js +91 -0
  125. package/dist/graph/language-indexers/python.js.map +1 -0
  126. package/dist/graph/language-indexers/rust.d.ts +3 -0
  127. package/dist/graph/language-indexers/rust.d.ts.map +1 -0
  128. package/dist/graph/language-indexers/rust.js +99 -0
  129. package/dist/graph/language-indexers/rust.js.map +1 -0
  130. package/dist/graph/language-indexers/tree-sitter-loader.d.ts +18 -0
  131. package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -0
  132. package/dist/graph/language-indexers/tree-sitter-loader.js +34 -0
  133. package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -0
  134. package/dist/graph/language-indexers/typescript.d.ts +3 -0
  135. package/dist/graph/language-indexers/typescript.d.ts.map +1 -0
  136. package/dist/graph/language-indexers/typescript.js +194 -0
  137. package/dist/graph/language-indexers/typescript.js.map +1 -0
  138. package/dist/graph/semantic-enricher.d.ts +17 -0
  139. package/dist/graph/semantic-enricher.d.ts.map +1 -0
  140. package/dist/graph/semantic-enricher.js +97 -0
  141. package/dist/graph/semantic-enricher.js.map +1 -0
  142. package/dist/graph/sqlite-client.d.ts +24 -0
  143. package/dist/graph/sqlite-client.d.ts.map +1 -0
  144. package/dist/graph/sqlite-client.js +215 -0
  145. package/dist/graph/sqlite-client.js.map +1 -0
  146. package/dist/hooks/post-run-sync.d.ts +7 -0
  147. package/dist/hooks/post-run-sync.d.ts.map +1 -0
  148. package/dist/hooks/post-run-sync.js +26 -0
  149. package/dist/hooks/post-run-sync.js.map +1 -0
  150. package/dist/index.d.ts +10 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +42 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/integrations/agent-mcp-installer.d.ts +50 -0
  155. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -0
  156. package/dist/integrations/agent-mcp-installer.js +414 -0
  157. package/dist/integrations/agent-mcp-installer.js.map +1 -0
  158. package/dist/learning/canary-gate.d.ts +6 -0
  159. package/dist/learning/canary-gate.d.ts.map +1 -0
  160. package/dist/learning/canary-gate.js +13 -0
  161. package/dist/learning/canary-gate.js.map +1 -0
  162. package/dist/learning/embeddings.d.ts +19 -0
  163. package/dist/learning/embeddings.d.ts.map +1 -0
  164. package/dist/learning/embeddings.js +160 -0
  165. package/dist/learning/embeddings.js.map +1 -0
  166. package/dist/learning/episodic-memory.d.ts +36 -0
  167. package/dist/learning/episodic-memory.d.ts.map +1 -0
  168. package/dist/learning/episodic-memory.js +228 -0
  169. package/dist/learning/episodic-memory.js.map +1 -0
  170. package/dist/learning/exporter.d.ts +10 -0
  171. package/dist/learning/exporter.d.ts.map +1 -0
  172. package/dist/learning/exporter.js +25 -0
  173. package/dist/learning/exporter.js.map +1 -0
  174. package/dist/learning/feedback-collector.d.ts +12 -0
  175. package/dist/learning/feedback-collector.d.ts.map +1 -0
  176. package/dist/learning/feedback-collector.js +14 -0
  177. package/dist/learning/feedback-collector.js.map +1 -0
  178. package/dist/learning/learning-events.d.ts +4 -0
  179. package/dist/learning/learning-events.d.ts.map +1 -0
  180. package/dist/learning/learning-events.js +35 -0
  181. package/dist/learning/learning-events.js.map +1 -0
  182. package/dist/learning/local-embedding.d.ts +3 -0
  183. package/dist/learning/local-embedding.d.ts.map +1 -0
  184. package/dist/learning/local-embedding.js +21 -0
  185. package/dist/learning/local-embedding.js.map +1 -0
  186. package/dist/learning/nightly-trainer.d.ts +14 -0
  187. package/dist/learning/nightly-trainer.d.ts.map +1 -0
  188. package/dist/learning/nightly-trainer.js +56 -0
  189. package/dist/learning/nightly-trainer.js.map +1 -0
  190. package/dist/learning/reflector.d.ts +19 -0
  191. package/dist/learning/reflector.d.ts.map +1 -0
  192. package/dist/learning/reflector.js +130 -0
  193. package/dist/learning/reflector.js.map +1 -0
  194. package/dist/learning/sample-builder.d.ts +7 -0
  195. package/dist/learning/sample-builder.d.ts.map +1 -0
  196. package/dist/learning/sample-builder.js +10 -0
  197. package/dist/learning/sample-builder.js.map +1 -0
  198. package/dist/learning/skill-flywheel.d.ts +52 -0
  199. package/dist/learning/skill-flywheel.d.ts.map +1 -0
  200. package/dist/learning/skill-flywheel.js +533 -0
  201. package/dist/learning/skill-flywheel.js.map +1 -0
  202. package/dist/learning/vector-store.d.ts +18 -0
  203. package/dist/learning/vector-store.d.ts.map +1 -0
  204. package/dist/learning/vector-store.js +73 -0
  205. package/dist/learning/vector-store.js.map +1 -0
  206. package/dist/routing/model-router.d.ts +13 -0
  207. package/dist/routing/model-router.d.ts.map +1 -0
  208. package/dist/routing/model-router.js +113 -0
  209. package/dist/routing/model-router.js.map +1 -0
  210. package/dist/routing/provider-adapters/anthropic.d.ts +3 -0
  211. package/dist/routing/provider-adapters/anthropic.d.ts.map +1 -0
  212. package/dist/routing/provider-adapters/anthropic.js +57 -0
  213. package/dist/routing/provider-adapters/anthropic.js.map +1 -0
  214. package/dist/routing/provider-adapters/bailian.d.ts +3 -0
  215. package/dist/routing/provider-adapters/bailian.d.ts.map +1 -0
  216. package/dist/routing/provider-adapters/bailian.js +56 -0
  217. package/dist/routing/provider-adapters/bailian.js.map +1 -0
  218. package/dist/routing/provider-adapters/doubao.d.ts +3 -0
  219. package/dist/routing/provider-adapters/doubao.d.ts.map +1 -0
  220. package/dist/routing/provider-adapters/doubao.js +56 -0
  221. package/dist/routing/provider-adapters/doubao.js.map +1 -0
  222. package/dist/routing/provider-adapters/openai.d.ts +6 -0
  223. package/dist/routing/provider-adapters/openai.d.ts.map +1 -0
  224. package/dist/routing/provider-adapters/openai.js +80 -0
  225. package/dist/routing/provider-adapters/openai.js.map +1 -0
  226. package/dist/routing/provider-adapters/openbmb.d.ts +16 -0
  227. package/dist/routing/provider-adapters/openbmb.d.ts.map +1 -0
  228. package/dist/routing/provider-adapters/openbmb.js +368 -0
  229. package/dist/routing/provider-adapters/openbmb.js.map +1 -0
  230. package/dist/routing/provider-executor.d.ts +21 -0
  231. package/dist/routing/provider-executor.d.ts.map +1 -0
  232. package/dist/routing/provider-executor.js +260 -0
  233. package/dist/routing/provider-executor.js.map +1 -0
  234. package/dist/routing/provider-health.d.ts +9 -0
  235. package/dist/routing/provider-health.d.ts.map +1 -0
  236. package/dist/routing/provider-health.js +66 -0
  237. package/dist/routing/provider-health.js.map +1 -0
  238. package/dist/surfaces/cli/index.d.ts +3 -0
  239. package/dist/surfaces/cli/index.d.ts.map +1 -0
  240. package/dist/surfaces/cli/index.js +200 -0
  241. package/dist/surfaces/cli/index.js.map +1 -0
  242. package/dist/surfaces/cli/init.d.ts +2 -0
  243. package/dist/surfaces/cli/init.d.ts.map +1 -0
  244. package/dist/surfaces/cli/init.js +121 -0
  245. package/dist/surfaces/cli/init.js.map +1 -0
  246. package/dist/surfaces/cli/output.d.ts +16 -0
  247. package/dist/surfaces/cli/output.d.ts.map +1 -0
  248. package/dist/surfaces/cli/output.js +74 -0
  249. package/dist/surfaces/cli/output.js.map +1 -0
  250. package/dist/surfaces/cli/runtime.d.ts +218 -0
  251. package/dist/surfaces/cli/runtime.d.ts.map +1 -0
  252. package/dist/surfaces/cli/runtime.js +1130 -0
  253. package/dist/surfaces/cli/runtime.js.map +1 -0
  254. package/dist/surfaces/mcp/server.d.ts +60 -0
  255. package/dist/surfaces/mcp/server.d.ts.map +1 -0
  256. package/dist/surfaces/mcp/server.js +425 -0
  257. package/dist/surfaces/mcp/server.js.map +1 -0
  258. package/dist/surfaces/vscode/extension.d.ts +17 -0
  259. package/dist/surfaces/vscode/extension.d.ts.map +1 -0
  260. package/dist/surfaces/vscode/extension.js +35 -0
  261. package/dist/surfaces/vscode/extension.js.map +1 -0
  262. package/dist/utils/file-lock.d.ts +9 -0
  263. package/dist/utils/file-lock.d.ts.map +1 -0
  264. package/dist/utils/file-lock.js +90 -0
  265. package/dist/utils/file-lock.js.map +1 -0
  266. package/dist/utils/logger.d.ts +3 -0
  267. package/dist/utils/logger.d.ts.map +1 -0
  268. package/dist/utils/logger.js +36 -0
  269. package/dist/utils/logger.js.map +1 -0
  270. package/package.json +89 -0
  271. package/scripts/safe-postinstall.cjs +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-client.d.ts","sourceRoot":"","sources":["../../src/graph/sqlite-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkFpD,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoC;gBAE3C,MAAM,EAAE,MAAM;IAY1B,OAAO,CAAC,OAAO;IAQT,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9C,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD,YAAY,IAAI;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE;IAapD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwBnD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASlD,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EACnC,SAAS,GAAE,KAAK,GAAG,IAAI,GAAG,MAAc,GACvC,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAAE,EAAE,CAAC;IA4CvD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1F,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphifySqliteClient = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const node_module_1 = require("node:module");
7
+ const requireFn = (0, node_module_1.createRequire)(__filename);
8
+ function loadBetterSqlite3() {
9
+ try {
10
+ return requireFn("better-sqlite3");
11
+ }
12
+ catch (err) {
13
+ const msg = err instanceof Error ? err.message : String(err);
14
+ throw new Error(`[graphflow] sqlite transport requires the optional 'better-sqlite3' package. ` +
15
+ `Install it (npm i better-sqlite3) or switch graphPolicy.transport to 'file' / 'memory'. ` +
16
+ `Underlying error: ${msg}`);
17
+ }
18
+ }
19
+ const SCHEMA_SQL = `
20
+ CREATE TABLE IF NOT EXISTS nodes(
21
+ id TEXT PRIMARY KEY,
22
+ type TEXT NOT NULL,
23
+ content TEXT NOT NULL,
24
+ metadata TEXT
25
+ );
26
+ CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);
27
+ CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
28
+ content,
29
+ content='nodes',
30
+ content_rowid='rowid',
31
+ tokenize='unicode61 remove_diacritics 2'
32
+ );
33
+ CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN
34
+ INSERT INTO nodes_fts(rowid, content) VALUES (new.rowid, new.content);
35
+ END;
36
+ CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes BEGIN
37
+ INSERT INTO nodes_fts(nodes_fts, rowid, content) VALUES('delete', old.rowid, old.content);
38
+ END;
39
+ CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
40
+ INSERT INTO nodes_fts(nodes_fts, rowid, content) VALUES('delete', old.rowid, old.content);
41
+ INSERT INTO nodes_fts(rowid, content) VALUES (new.rowid, new.content);
42
+ END;
43
+ CREATE TABLE IF NOT EXISTS edges(
44
+ from_id TEXT NOT NULL,
45
+ to_id TEXT NOT NULL,
46
+ relation TEXT NOT NULL,
47
+ PRIMARY KEY (from_id, to_id, relation)
48
+ );
49
+ CREATE INDEX IF NOT EXISTS idx_edges_from ON edges(from_id);
50
+ CREATE INDEX IF NOT EXISTS idx_edges_to ON edges(to_id);
51
+ CREATE INDEX IF NOT EXISTS idx_edges_relation ON edges(relation);
52
+ `;
53
+ function rowToNode(row) {
54
+ const node = {
55
+ id: row.id,
56
+ type: row.type,
57
+ content: row.content,
58
+ };
59
+ if (row.metadata != null) {
60
+ try {
61
+ const parsed = JSON.parse(row.metadata);
62
+ if (parsed && typeof parsed === "object") {
63
+ node.metadata = parsed;
64
+ }
65
+ }
66
+ catch {
67
+ // skip metadata on parse failure
68
+ }
69
+ }
70
+ return node;
71
+ }
72
+ function escapeFtsToken(token) {
73
+ return `"${token.replace(/"/g, '""')}"`;
74
+ }
75
+ class GraphifySqliteClient {
76
+ db;
77
+ constructor(dbPath) {
78
+ const dir = (0, node_path_1.dirname)(dbPath);
79
+ if (dir && dir !== "." && dir !== "") {
80
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
81
+ }
82
+ const Database = loadBetterSqlite3();
83
+ this.db = new Database(dbPath);
84
+ this.db.pragma("journal_mode = WAL");
85
+ this.db.pragma("synchronous = NORMAL");
86
+ this.migrate();
87
+ }
88
+ migrate() {
89
+ const currentVersion = this.db.pragma("user_version", { simple: true });
90
+ if (currentVersion < 1) {
91
+ this.db.exec(SCHEMA_SQL);
92
+ this.db.pragma("user_version = 1");
93
+ }
94
+ }
95
+ async upsertNodes(nodes) {
96
+ if (nodes.length === 0)
97
+ return;
98
+ const stmt = this.db.prepare(`INSERT INTO nodes(id, type, content, metadata) VALUES(?, ?, ?, ?)
99
+ ON CONFLICT(id) DO UPDATE SET type=excluded.type, content=excluded.content, metadata=excluded.metadata`);
100
+ const tx = this.db.transaction((batch) => {
101
+ for (const n of batch) {
102
+ const metaJson = n.metadata !== undefined ? JSON.stringify(n.metadata) : null;
103
+ stmt.run(n.id, n.type, n.content, metaJson);
104
+ }
105
+ });
106
+ tx(nodes);
107
+ }
108
+ async upsertEdges(edges) {
109
+ if (edges.length === 0)
110
+ return;
111
+ const stmt = this.db.prepare(`INSERT OR IGNORE INTO edges(from_id, to_id, relation) VALUES(?, ?, ?)`);
112
+ const tx = this.db.transaction((batch) => {
113
+ for (const e of batch) {
114
+ stmt.run(e.from, e.to, e.relation);
115
+ }
116
+ });
117
+ tx(edges);
118
+ }
119
+ readSnapshot() {
120
+ const nodeRows = this.db
121
+ .prepare(`SELECT id, type, content, metadata FROM nodes`)
122
+ .all();
123
+ const edgeRows = this.db
124
+ .prepare(`SELECT from_id AS "from", to_id AS "to", relation FROM edges`)
125
+ .all();
126
+ return {
127
+ nodes: nodeRows.map(rowToNode),
128
+ edges: edgeRows.map((row) => ({ from: row.from, to: row.to, relation: row.relation })),
129
+ };
130
+ }
131
+ async queryByKeyword(query) {
132
+ const tokens = query
133
+ .toLowerCase()
134
+ .split(/[^a-z0-9_]+/g)
135
+ .filter((t) => t.length >= 2);
136
+ if (tokens.length === 0) {
137
+ const rows = this.db
138
+ .prepare(`SELECT id, type, content, metadata FROM nodes WHERE LOWER(content) LIKE ? LIMIT 200`)
139
+ .all(`%${query.toLowerCase()}%`);
140
+ return rows.map(rowToNode);
141
+ }
142
+ const match = tokens.map(escapeFtsToken).join(" ");
143
+ const rows = this.db
144
+ .prepare(`SELECT n.id AS id, n.type AS type, n.content AS content, n.metadata AS metadata
145
+ FROM nodes_fts JOIN nodes n ON n.rowid = nodes_fts.rowid
146
+ WHERE nodes_fts MATCH ? ORDER BY rank LIMIT 200`)
147
+ .all(match);
148
+ return rows.map(rowToNode);
149
+ }
150
+ async getNodesByIds(ids) {
151
+ if (ids.length === 0)
152
+ return [];
153
+ const placeholders = ids.map(() => "?").join(", ");
154
+ const rows = this.db
155
+ .prepare(`SELECT id, type, content, metadata FROM nodes WHERE id IN (${placeholders})`)
156
+ .all(...ids);
157
+ return rows.map(rowToNode);
158
+ }
159
+ async getNeighbors(nodeIds, relations, direction = "out") {
160
+ if (nodeIds.length === 0)
161
+ return [];
162
+ const idPlaceholders = nodeIds.map(() => "?").join(", ");
163
+ const relFilter = relations && relations.length > 0
164
+ ? ` AND e.relation IN (${relations.map(() => "?").join(", ")})`
165
+ : "";
166
+ const queries = [];
167
+ if (direction === "out" || direction === "both") {
168
+ queries.push(`SELECT n.id AS id, n.type AS type, n.content AS content, n.metadata AS metadata, e.relation AS relation
169
+ FROM edges e JOIN nodes n ON n.id = e.to_id
170
+ WHERE e.from_id IN (${idPlaceholders})${relFilter}`);
171
+ }
172
+ if (direction === "in" || direction === "both") {
173
+ queries.push(`SELECT n.id AS id, n.type AS type, n.content AS content, n.metadata AS metadata, e.relation AS relation
174
+ FROM edges e JOIN nodes n ON n.id = e.from_id
175
+ WHERE e.to_id IN (${idPlaceholders})${relFilter}`);
176
+ }
177
+ const params = [];
178
+ for (let i = 0; i < queries.length; i += 1) {
179
+ params.push(...nodeIds);
180
+ if (relations && relations.length > 0)
181
+ params.push(...relations);
182
+ }
183
+ const sql = queries.join(" UNION ALL ");
184
+ const rows = this.db.prepare(sql).all(...params);
185
+ const seen = new Set();
186
+ const out = [];
187
+ for (const row of rows) {
188
+ if (seen.has(row.id))
189
+ continue;
190
+ seen.add(row.id);
191
+ out.push({ node: rowToNode(row), via: row.relation });
192
+ }
193
+ return out;
194
+ }
195
+ async deleteNode(id) {
196
+ const stmt = this.db.prepare(`DELETE FROM nodes WHERE id = ?`);
197
+ const stmtEdge = this.db.prepare(`DELETE FROM edges WHERE from_id = ? OR to_id = ?`);
198
+ this.db.transaction(() => {
199
+ stmt.run(id);
200
+ stmtEdge.run(id, id);
201
+ })();
202
+ }
203
+ async deleteEdge(from, to, relation) {
204
+ const stmt = this.db.prepare(`DELETE FROM edges WHERE from_id = ? AND to_id = ? AND relation = ?`);
205
+ stmt.run(from, to, relation);
206
+ }
207
+ vacuum() {
208
+ this.db.exec("VACUUM");
209
+ }
210
+ close() {
211
+ this.db.close();
212
+ }
213
+ }
214
+ exports.GraphifySqliteClient = GraphifySqliteClient;
215
+ //# sourceMappingURL=sqlite-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-client.js","sourceRoot":"","sources":["../../src/graph/sqlite-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { GraphClient } from "../graph/client-factory";
2
+ import { type ChangeRecord } from "../graph/graph-indexer";
3
+ export declare function syncGraphAfterRun(client: GraphClient, changes: ChangeRecord[], configPath?: string): Promise<{
4
+ indexed: number;
5
+ enriched: number;
6
+ }>;
7
+ //# sourceMappingURL=post-run-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-run-sync.d.ts","sourceRoot":"","sources":["../../src/hooks/post-run-sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIzE,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBhD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncGraphAfterRun = syncGraphAfterRun;
4
+ const logger_1 = require("../utils/logger");
5
+ const graph_indexer_1 = require("../graph/graph-indexer");
6
+ const semantic_enricher_1 = require("../graph/semantic-enricher");
7
+ const runtime_1 = require("../surfaces/cli/runtime");
8
+ async function syncGraphAfterRun(client, changes, configPath) {
9
+ if (changes.length === 0) {
10
+ return { indexed: 0, enriched: 0 };
11
+ }
12
+ await (0, graph_indexer_1.indexChanges)(client, changes);
13
+ const indexed = changes.length;
14
+ let enriched = 0;
15
+ try {
16
+ (0, runtime_1.prepareSemanticEnrichmentRuntime)(configPath);
17
+ const result = await (0, semantic_enricher_1.enrichGraphSemanticsSilent)(client, { batchSize: 3 });
18
+ enriched = result.enrichedCount;
19
+ }
20
+ catch (error) {
21
+ logger_1.logger.error({ error }, "Caught error");
22
+ // 富化失败不影响主流程
23
+ }
24
+ return { indexed, enriched };
25
+ }
26
+ //# sourceMappingURL=post-run-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-run-sync.js","sourceRoot":"","sources":["../../src/hooks/post-run-sync.ts"],"names":[],"mappings":";;AAMA,8CAuBC;AA7BD,4CAAyC;AAEzC,0DAAyE;AACzE,kEAAwE;AACxE,qDAA2E;AAEpE,KAAK,UAAU,iBAAiB,CACrC,MAAmB,EACnB,OAAuB,EACvB,UAAmB;IAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,IAAA,4BAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,IAAA,0CAAgC,EAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAA,8CAA0B,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;QACxC,aAAa;IACf,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { orchestrate, type OrchestrateOptions } from "./core/orchestrator";
2
+ export { createVsCodeRuntime } from "./surfaces/vscode/extension";
3
+ export { runTask, runTaskResult, previewContext, getGraphFlowSettings, getSettingsPanelStatus, saveGraphFlowSettings, indexGraph, inspectGraph, getSkillInsights, resolveConfig, diagnoseRouting, diagnoseRoutingResult, runLearningNightly, runLearningNightlyResult, planAndBrainstorm, planAndBrainstormResult, buildMcpServerNode, detectInstalledAgents, formatModelConfigGuide, installMcpToDetectedAgents, } from "./surfaces/cli/runtime";
4
+ export type { DetectedAgent, McpInstallOptions, McpInstallResult, McpInstallStrategy, } from "./integrations/agent-mcp-installer";
5
+ export { parseCliOptions, formatCliResult, type CliCommandResult } from "./surfaces/cli/output";
6
+ export { createMcpServer, executeToolCall, getToolDefinitions, startStdioServer, } from "./surfaces/mcp/server";
7
+ export type { TaskRunResult } from "./core/types";
8
+ export { createGraphClient, type GraphClient, } from "./graph/client-factory";
9
+ export { validateConfig, loadConfig } from "./config/loader";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadConfig = exports.validateConfig = exports.createGraphClient = exports.startStdioServer = exports.getToolDefinitions = exports.executeToolCall = exports.createMcpServer = exports.formatCliResult = exports.parseCliOptions = exports.installMcpToDetectedAgents = exports.formatModelConfigGuide = exports.detectInstalledAgents = exports.buildMcpServerNode = exports.planAndBrainstormResult = exports.planAndBrainstorm = exports.runLearningNightlyResult = exports.runLearningNightly = exports.diagnoseRoutingResult = exports.diagnoseRouting = exports.resolveConfig = exports.getSkillInsights = exports.inspectGraph = exports.indexGraph = exports.saveGraphFlowSettings = exports.getSettingsPanelStatus = exports.getGraphFlowSettings = exports.previewContext = exports.runTaskResult = exports.runTask = exports.createVsCodeRuntime = exports.orchestrate = void 0;
4
+ var orchestrator_1 = require("./core/orchestrator");
5
+ Object.defineProperty(exports, "orchestrate", { enumerable: true, get: function () { return orchestrator_1.orchestrate; } });
6
+ var extension_1 = require("./surfaces/vscode/extension");
7
+ Object.defineProperty(exports, "createVsCodeRuntime", { enumerable: true, get: function () { return extension_1.createVsCodeRuntime; } });
8
+ var runtime_1 = require("./surfaces/cli/runtime");
9
+ Object.defineProperty(exports, "runTask", { enumerable: true, get: function () { return runtime_1.runTask; } });
10
+ Object.defineProperty(exports, "runTaskResult", { enumerable: true, get: function () { return runtime_1.runTaskResult; } });
11
+ Object.defineProperty(exports, "previewContext", { enumerable: true, get: function () { return runtime_1.previewContext; } });
12
+ Object.defineProperty(exports, "getGraphFlowSettings", { enumerable: true, get: function () { return runtime_1.getGraphFlowSettings; } });
13
+ Object.defineProperty(exports, "getSettingsPanelStatus", { enumerable: true, get: function () { return runtime_1.getSettingsPanelStatus; } });
14
+ Object.defineProperty(exports, "saveGraphFlowSettings", { enumerable: true, get: function () { return runtime_1.saveGraphFlowSettings; } });
15
+ Object.defineProperty(exports, "indexGraph", { enumerable: true, get: function () { return runtime_1.indexGraph; } });
16
+ Object.defineProperty(exports, "inspectGraph", { enumerable: true, get: function () { return runtime_1.inspectGraph; } });
17
+ Object.defineProperty(exports, "getSkillInsights", { enumerable: true, get: function () { return runtime_1.getSkillInsights; } });
18
+ Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return runtime_1.resolveConfig; } });
19
+ Object.defineProperty(exports, "diagnoseRouting", { enumerable: true, get: function () { return runtime_1.diagnoseRouting; } });
20
+ Object.defineProperty(exports, "diagnoseRoutingResult", { enumerable: true, get: function () { return runtime_1.diagnoseRoutingResult; } });
21
+ Object.defineProperty(exports, "runLearningNightly", { enumerable: true, get: function () { return runtime_1.runLearningNightly; } });
22
+ Object.defineProperty(exports, "runLearningNightlyResult", { enumerable: true, get: function () { return runtime_1.runLearningNightlyResult; } });
23
+ Object.defineProperty(exports, "planAndBrainstorm", { enumerable: true, get: function () { return runtime_1.planAndBrainstorm; } });
24
+ Object.defineProperty(exports, "planAndBrainstormResult", { enumerable: true, get: function () { return runtime_1.planAndBrainstormResult; } });
25
+ Object.defineProperty(exports, "buildMcpServerNode", { enumerable: true, get: function () { return runtime_1.buildMcpServerNode; } });
26
+ Object.defineProperty(exports, "detectInstalledAgents", { enumerable: true, get: function () { return runtime_1.detectInstalledAgents; } });
27
+ Object.defineProperty(exports, "formatModelConfigGuide", { enumerable: true, get: function () { return runtime_1.formatModelConfigGuide; } });
28
+ Object.defineProperty(exports, "installMcpToDetectedAgents", { enumerable: true, get: function () { return runtime_1.installMcpToDetectedAgents; } });
29
+ var output_1 = require("./surfaces/cli/output");
30
+ Object.defineProperty(exports, "parseCliOptions", { enumerable: true, get: function () { return output_1.parseCliOptions; } });
31
+ Object.defineProperty(exports, "formatCliResult", { enumerable: true, get: function () { return output_1.formatCliResult; } });
32
+ var server_1 = require("./surfaces/mcp/server");
33
+ Object.defineProperty(exports, "createMcpServer", { enumerable: true, get: function () { return server_1.createMcpServer; } });
34
+ Object.defineProperty(exports, "executeToolCall", { enumerable: true, get: function () { return server_1.executeToolCall; } });
35
+ Object.defineProperty(exports, "getToolDefinitions", { enumerable: true, get: function () { return server_1.getToolDefinitions; } });
36
+ Object.defineProperty(exports, "startStdioServer", { enumerable: true, get: function () { return server_1.startStdioServer; } });
37
+ var client_factory_1 = require("./graph/client-factory");
38
+ Object.defineProperty(exports, "createGraphClient", { enumerable: true, get: function () { return client_factory_1.createGraphClient; } });
39
+ var loader_1 = require("./config/loader");
40
+ Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return loader_1.validateConfig; } });
41
+ Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return loader_1.loadConfig; } });
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA2E;AAAlE,2GAAA,WAAW,OAAA;AACpB,yDAAkE;AAAzD,gHAAA,mBAAmB,OAAA;AAC5B,kDAqBgC;AApB9B,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AACrB,qGAAA,UAAU,OAAA;AACV,uGAAA,YAAY,OAAA;AACZ,2GAAA,gBAAgB,OAAA;AAChB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAClB,mHAAA,wBAAwB,OAAA;AACxB,4GAAA,iBAAiB,OAAA;AACjB,kHAAA,uBAAuB,OAAA;AACvB,6GAAA,kBAAkB,OAAA;AAClB,gHAAA,qBAAqB,OAAA;AACrB,iHAAA,sBAAsB,OAAA;AACtB,qHAAA,0BAA0B,OAAA;AAQ5B,gDAAgG;AAAvF,yGAAA,eAAe,OAAA;AAAE,yGAAA,eAAe,OAAA;AACzC,gDAK+B;AAJ7B,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAGlB,yDAGgC;AAF9B,mHAAA,iBAAiB,OAAA;AAGnB,0CAA6D;AAApD,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA"}
@@ -0,0 +1,50 @@
1
+ export type McpServersKey = "mcpServers" | "servers";
2
+ export interface McpServerNode {
3
+ command: string;
4
+ args: string[];
5
+ cwd?: string;
6
+ env?: Record<string, string>;
7
+ }
8
+ export type McpInstallStrategy = "npx" | "npm-script" | "node-bundled";
9
+ export interface McpInstallOptions {
10
+ strategy: McpInstallStrategy;
11
+ workspaceRoot?: string;
12
+ npmScriptCwd?: string;
13
+ bundledServerPath?: string;
14
+ /** Cross-platform launcher script (preferred on Windows; never use server.js as command). */
15
+ launcherPath?: string;
16
+ /** Vendor runtime root (parent of dist/). Used as MCP cwd for module resolution. */
17
+ bundledRuntimeRoot?: string;
18
+ /** Explicit node binary. When omitted, resolves system node or editor-bundled node. */
19
+ nodeCommand?: string;
20
+ /** Editor executable for ELECTRON_RUN_AS_NODE fallback when system node is unavailable. */
21
+ electronExecPath?: string;
22
+ serverName?: string;
23
+ /** Test hook: override auto-detected agent ids. Empty array means no agents. */
24
+ agentIdsOverride?: string[];
25
+ }
26
+ export interface DetectedAgent {
27
+ id: string;
28
+ name: string;
29
+ }
30
+ export interface McpInstallResult {
31
+ agentId: string;
32
+ agentName: string;
33
+ configPath: string;
34
+ scope: "user" | "workspace";
35
+ status: "injected" | "created" | "skipped" | "error" | "updated";
36
+ message?: string;
37
+ }
38
+ export declare function detectInstalledAgents(): DetectedAgent[];
39
+ export declare function resolveSystemNodeCommand(): string | undefined;
40
+ export declare function resolveMcpNodeLaunch(options: {
41
+ nodeCommand?: string;
42
+ electronExecPath?: string;
43
+ }): {
44
+ command: string;
45
+ env: Record<string, string>;
46
+ };
47
+ export declare function buildMcpServerNode(options: McpInstallOptions): McpServerNode;
48
+ export declare function installMcpToDetectedAgents(options: McpInstallOptions): McpInstallResult[];
49
+ export declare function formatModelConfigGuide(workspaceRoot?: string): string;
50
+ //# sourceMappingURL=agent-mcp-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-mcp-installer.d.ts","sourceRoot":"","sources":["../../src/integrations/agent-mcp-installer.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,YAAY,GAAG,cAAc,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuJD,wBAAgB,qBAAqB,IAAI,aAAa,EAAE,CAYvD;AAOD,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAa7D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAenD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CA4D5E;AAiHD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,EAAE,CA6CzF;AAED,wBAAgB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCrE"}