@roarpeng/graphflow 1.7.12 → 1.7.15

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 (89) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +107 -486
  3. package/dist/config/loader.js +4 -4
  4. package/dist/config/loader.js.map +1 -1
  5. package/dist/config/paths.js +1 -1
  6. package/dist/config/paths.js.map +1 -1
  7. package/dist/config/schema.d.ts +1 -1
  8. package/dist/config/schema.d.ts.map +1 -1
  9. package/dist/core/agent-delegation.d.ts +25 -0
  10. package/dist/core/agent-delegation.d.ts.map +1 -1
  11. package/dist/core/agent-delegation.js +109 -1
  12. package/dist/core/agent-delegation.js.map +1 -1
  13. package/dist/core/merge-agent-insight.d.ts.map +1 -1
  14. package/dist/core/merge-agent-insight.js +32 -2
  15. package/dist/core/merge-agent-insight.js.map +1 -1
  16. package/dist/core/orchestrator-context.d.ts.map +1 -1
  17. package/dist/core/orchestrator-context.js +1 -0
  18. package/dist/core/orchestrator-context.js.map +1 -1
  19. package/dist/core/orchestrator.js +6 -1
  20. package/dist/core/orchestrator.js.map +1 -1
  21. package/dist/core/types.d.ts +2 -0
  22. package/dist/core/types.d.ts.map +1 -1
  23. package/dist/graph/client-factory.d.ts.map +1 -1
  24. package/dist/graph/client-factory.js +14 -0
  25. package/dist/graph/client-factory.js.map +1 -1
  26. package/dist/graph/context-slicer-types.d.ts +2 -0
  27. package/dist/graph/context-slicer-types.d.ts.map +1 -1
  28. package/dist/graph/context-slicer-types.js.map +1 -1
  29. package/dist/graph/context-slicer.d.ts.map +1 -1
  30. package/dist/graph/context-slicer.js +7 -6
  31. package/dist/graph/context-slicer.js.map +1 -1
  32. package/dist/graph/file-indexer-edges.d.ts.map +1 -1
  33. package/dist/graph/file-indexer-edges.js +8 -4
  34. package/dist/graph/file-indexer-edges.js.map +1 -1
  35. package/dist/graph/graph-compression.d.ts +7 -0
  36. package/dist/graph/graph-compression.d.ts.map +1 -1
  37. package/dist/graph/graph-compression.js +64 -1
  38. package/dist/graph/graph-compression.js.map +1 -1
  39. package/dist/graph/graph-utils.d.ts.map +1 -1
  40. package/dist/graph/graph-utils.js +16 -0
  41. package/dist/graph/graph-utils.js.map +1 -1
  42. package/dist/graph/sqlite-client.d.ts +9 -0
  43. package/dist/graph/sqlite-client.d.ts.map +1 -1
  44. package/dist/graph/sqlite-client.js +66 -10
  45. package/dist/graph/sqlite-client.js.map +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +4 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/learning/hnsw-index.d.ts +30 -1
  51. package/dist/learning/hnsw-index.d.ts.map +1 -1
  52. package/dist/learning/hnsw-index.js +134 -0
  53. package/dist/learning/hnsw-index.js.map +1 -1
  54. package/dist/skills/index.d.ts +7 -1
  55. package/dist/skills/index.d.ts.map +1 -1
  56. package/dist/skills/index.js +5 -1
  57. package/dist/skills/index.js.map +1 -1
  58. package/dist/surfaces/cli/index.js +34 -0
  59. package/dist/surfaces/cli/index.js.map +1 -1
  60. package/dist/surfaces/cli/output.d.ts.map +1 -1
  61. package/dist/surfaces/cli/output.js +2 -0
  62. package/dist/surfaces/cli/output.js.map +1 -1
  63. package/dist/surfaces/cli/runtime/env.d.ts.map +1 -1
  64. package/dist/surfaces/cli/runtime/env.js +4 -0
  65. package/dist/surfaces/cli/runtime/env.js.map +1 -1
  66. package/dist/surfaces/cli/runtime/graph.d.ts +55 -0
  67. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  68. package/dist/surfaces/cli/runtime/graph.js +110 -1
  69. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  70. package/dist/surfaces/cli/runtime/helpers.js +1 -1
  71. package/dist/surfaces/cli/runtime/helpers.js.map +1 -1
  72. package/dist/surfaces/cli/runtime/routing.d.ts +2 -2
  73. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  74. package/dist/surfaces/cli/runtime/routing.js +19 -6
  75. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  76. package/dist/surfaces/cli/runtime/types.d.ts +17 -1
  77. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  78. package/dist/surfaces/cli/runtime.d.ts +1 -1
  79. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  80. package/dist/surfaces/cli/runtime.js +4 -1
  81. package/dist/surfaces/cli/runtime.js.map +1 -1
  82. package/dist/surfaces/mcp/tool-definitions.js +2 -2
  83. package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
  84. package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
  85. package/dist/surfaces/mcp/tool-handlers.js +3 -1
  86. package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
  87. package/dist/surfaces/trae-skill/graphflow/SKILL.md +4 -0
  88. package/package.json +2 -1
  89. package/src/surfaces/trae-skill/graphflow/SKILL.md +4 -0
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GraphifySqliteClient = void 0;
4
+ exports.buildSearchText = buildSearchText;
4
5
  const node_fs_1 = require("node:fs");
5
6
  const node_path_1 = require("node:path");
6
7
  const node_module_1 = require("node:module");
@@ -22,24 +23,25 @@ CREATE TABLE IF NOT EXISTS nodes(
22
23
  id TEXT PRIMARY KEY,
23
24
  type TEXT NOT NULL,
24
25
  content TEXT NOT NULL,
25
- metadata TEXT
26
+ metadata TEXT,
27
+ searchtext TEXT NOT NULL DEFAULT ''
26
28
  );
27
29
  CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);
28
30
  CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
29
- content,
31
+ searchtext,
30
32
  content='nodes',
31
33
  content_rowid='rowid',
32
34
  tokenize='unicode61 remove_diacritics 2'
33
35
  );
34
36
  CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN
35
- INSERT INTO nodes_fts(rowid, content) VALUES (new.rowid, new.content);
37
+ INSERT INTO nodes_fts(rowid, searchtext) VALUES (new.rowid, new.searchtext);
36
38
  END;
37
39
  CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes BEGIN
38
- INSERT INTO nodes_fts(nodes_fts, rowid, content) VALUES('delete', old.rowid, old.content);
40
+ INSERT INTO nodes_fts(nodes_fts, rowid, searchtext) VALUES('delete', old.rowid, old.searchtext);
39
41
  END;
40
42
  CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
41
- INSERT INTO nodes_fts(nodes_fts, rowid, content) VALUES('delete', old.rowid, old.content);
42
- INSERT INTO nodes_fts(rowid, content) VALUES (new.rowid, new.content);
43
+ INSERT INTO nodes_fts(nodes_fts, rowid, searchtext) VALUES('delete', old.rowid, old.searchtext);
44
+ INSERT INTO nodes_fts(rowid, searchtext) VALUES (new.rowid, new.searchtext);
43
45
  END;
44
46
  CREATE TABLE IF NOT EXISTS edges(
45
47
  from_id TEXT NOT NULL,
@@ -51,6 +53,17 @@ CREATE INDEX IF NOT EXISTS idx_edges_from ON edges(from_id);
51
53
  CREATE INDEX IF NOT EXISTS idx_edges_to ON edges(to_id);
52
54
  CREATE INDEX IF NOT EXISTS idx_edges_relation ON edges(relation);
53
55
  `;
56
+ /**
57
+ * FTS indexes `searchtext` = raw content + tokenizer-aligned subtokens.
58
+ * Without this, camelCase identifiers are indexed as ONE token by FTS5
59
+ * ("alphahandler") while queries split into ["alpha","handler"], and the
60
+ * suffix token can never match (FTS5 only supports prefix queries) — making
61
+ * camelCase symbols unfindable on the sqlite/auto transports.
62
+ */
63
+ function buildSearchText(content) {
64
+ const subtokens = (0, graph_utils_1.tokenizeForIndex)(content);
65
+ return subtokens.length > 0 ? `${content} ${subtokens.join(" ")}` : content;
66
+ }
54
67
  function rowToNode(row) {
55
68
  const node = {
56
69
  id: row.id,
@@ -103,18 +116,61 @@ class GraphifySqliteClient {
103
116
  const currentVersion = this.db.pragma("user_version", { simple: true });
104
117
  if (currentVersion < 1) {
105
118
  this.db.exec(SCHEMA_SQL);
106
- this.db.pragma("user_version = 1");
119
+ this.db.pragma("user_version = 2");
120
+ return;
121
+ }
122
+ if (currentVersion < 2) {
123
+ // v1 → v2: add searchtext column, rebuild FTS over tokenizer-aligned text.
124
+ this.migrateV1ToV2();
125
+ this.db.pragma("user_version = 2");
107
126
  }
108
127
  }
128
+ migrateV1ToV2() {
129
+ this.db.exec(`
130
+ ALTER TABLE nodes ADD COLUMN searchtext TEXT NOT NULL DEFAULT '';
131
+ DROP TRIGGER IF EXISTS nodes_ai;
132
+ DROP TRIGGER IF EXISTS nodes_ad;
133
+ DROP TRIGGER IF EXISTS nodes_au;
134
+ DROP TABLE IF EXISTS nodes_fts;
135
+ `);
136
+ // Backfill searchtext in JS (tokenizeForIndex is not available in SQL).
137
+ const rows = this.db.prepare(`SELECT rowid, content FROM nodes`).all();
138
+ const update = this.db.prepare(`UPDATE nodes SET searchtext = ? WHERE rowid = ?`);
139
+ const backfill = this.db.transaction((batch) => {
140
+ for (const row of batch) {
141
+ update.run(buildSearchText(row.content), row.rowid);
142
+ }
143
+ });
144
+ backfill(rows);
145
+ this.db.exec(`
146
+ CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
147
+ searchtext,
148
+ content='nodes',
149
+ content_rowid='rowid',
150
+ tokenize='unicode61 remove_diacritics 2'
151
+ );
152
+ CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN
153
+ INSERT INTO nodes_fts(rowid, searchtext) VALUES (new.rowid, new.searchtext);
154
+ END;
155
+ CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes BEGIN
156
+ INSERT INTO nodes_fts(nodes_fts, rowid, searchtext) VALUES('delete', old.rowid, old.searchtext);
157
+ END;
158
+ CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
159
+ INSERT INTO nodes_fts(nodes_fts, rowid, searchtext) VALUES('delete', old.rowid, old.searchtext);
160
+ INSERT INTO nodes_fts(rowid, searchtext) VALUES (new.rowid, new.searchtext);
161
+ END;
162
+ INSERT INTO nodes_fts(nodes_fts) VALUES('rebuild');
163
+ `);
164
+ }
109
165
  async upsertNodes(nodes) {
110
166
  if (nodes.length === 0)
111
167
  return;
112
- const stmt = this.db.prepare(`INSERT INTO nodes(id, type, content, metadata) VALUES(?, ?, ?, ?)
113
- ON CONFLICT(id) DO UPDATE SET type=excluded.type, content=excluded.content, metadata=excluded.metadata`);
168
+ const stmt = this.db.prepare(`INSERT INTO nodes(id, type, content, metadata, searchtext) VALUES(?, ?, ?, ?, ?)
169
+ ON CONFLICT(id) DO UPDATE SET type=excluded.type, content=excluded.content, metadata=excluded.metadata, searchtext=excluded.searchtext`);
114
170
  const tx = this.db.transaction((batch) => {
115
171
  for (const n of batch) {
116
172
  const metaJson = n.metadata !== undefined ? JSON.stringify(n.metadata) : null;
117
- stmt.run(n.id, n.type, n.content, metaJson);
173
+ stmt.run(n.id, n.type, n.content, metaJson, buildSearchText(n.content));
118
174
  }
119
175
  });
120
176
  tx(nodes);
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-client.js","sourceRoot":"","sources":["../../src/graph/sqlite-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-client.js","sourceRoot":"","sources":["../../src/graph/sqlite-client.ts"],"names":[],"mappings":";;;AAwEA,0CAGC;AA3ED,qCAAoC;AACpC,yCAAoC;AACpC,6CAA4C;AAG5C,+CAA8D;AAE9D,MAAM,SAAS,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAE5C,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,gBAAgB,CAAoC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,0FAA0F;YAC1F,qBAAqB,GAAG,EAAE,CAC7B,CAAC;IACJ,CAAC;AACH,CAAC;AASD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClB,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,SAAS,GAAG,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,MAAM,IAAI,GAAc;QACtB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;IACF,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,MAAiC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,MAAgB,EAAE,KAAa;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,MAAa,oBAAoB;IACd,EAAE,CAAoC;IAEvD,YAAY,MAAc;QACxB,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACrC,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,OAAO;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;QAClF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,2EAA2E;YAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;KAMZ,CAAC,CAAC;QAEH,wEAAwE;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAGlE,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;YAC1D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;KAkBZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAkB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B;8IACwI,CACzI,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;YACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAkB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,uEAAuE,CACxE,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;YACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,+CAA+C,CAAC;aACxD,GAAG,EAAe,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,EAA0E,CAAC;QACjF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAC9B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACvF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,qFAAqF,CAAC;iBAC9F,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAc,CAAC;YAChD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;yDAEiD,CAClD;aACA,GAAG,CAAC,KAAK,CAAc,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAa;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,8DAA8D,YAAY,GAAG,CAAC;aACtF,GAAG,CAAC,GAAG,GAAG,CAAc,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAiB,EACjB,SAAmC,EACnC,YAAmC,KAAK;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,SAAS,GACb,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,CAAC,uBAAuB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/D,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CACV;;+BAEuB,cAAc,IAAI,SAAS,EAAE,CACrD,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CACV;;6BAEqB,cAAc,IAAI,SAAS,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACxB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyD,CAAC;QAEzG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAAsD,EAAE,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACrF,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,EAAU,EAAE,QAA+B;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC;QACnG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AApND,oDAoNC"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export { parseCliOptions, formatCliResult, type CliCommandResult } from "./surfa
5
5
  export { createMcpServer, executeToolCall, getToolDefinitions, startStdioServer, } from "./surfaces/mcp/server";
6
6
  export type { TaskRunResult } from "./core/types";
7
7
  export { hasUsableLlmProvider } from "./config/llm-availability";
8
- export { buildAgentDelegatedPlanInsight, buildAgentInsightWorkItems, summarizeInsightForContext, type AgentDelegatedPlanInsight, type AgentDelegationMode, type AgentWorkItem, } from "./core/agent-delegation";
8
+ export { buildAgentDelegatedPlanInsight, buildAgentDelegatedSimplePlan, buildAgentInsightWorkItems, summarizeInsightForContext, SIMPLE_PLAN_BRIDGE_REQUIRED_IDS, type AgentDelegatedPlanInsight, type AgentDelegationMode, type AgentWorkItem, } from "./core/agent-delegation";
9
9
  export { planInsightResult, type PlanInsightResult } from "./surfaces/cli/runtime/routing";
10
10
  export { createGraphClient, type GraphClient, } from "./graph/client-factory";
11
11
  export { validateConfig, loadConfig, loadConfigSafe, type LoadConfigResult, validateConfigDetailed, type ConfigValidationResult, type ValidationIssue } from "./config/loader";
@@ -1 +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,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC9G,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,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/K,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC"}
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,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC9G,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,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/K,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listSkills = exports.invokeSkill = exports.graphflowSkills = exports.validateConfigDetailed = exports.loadConfigSafe = exports.loadConfig = exports.validateConfig = exports.createGraphClient = exports.planInsightResult = exports.summarizeInsightForContext = exports.buildAgentInsightWorkItems = exports.buildAgentDelegatedPlanInsight = exports.hasUsableLlmProvider = exports.startStdioServer = exports.getToolDefinitions = exports.executeToolCall = exports.createMcpServer = exports.formatCliResult = exports.parseCliOptions = exports.startFileWatcherIfEnabled = exports.runLearningNightlyResult = exports.runLearningNightly = exports.repairUnsafeWindowsMcpCommands = exports.installMcpToDetectedAgents = exports.formatModelConfigGuide = exports.detectInstalledAgents = exports.assertGraphFlowRuntime = exports.planAndBrainstormResult = exports.planAndBrainstorm = exports.diagnoseRoutingResult = exports.diagnoseRouting = exports.resolveConfig = exports.getSkillInsights = exports.inspectGraph = exports.indexGraph = exports.saveGraphFlowSettings = exports.validateSettingsForRouting = exports.validateSettingsForGraphIndex = exports.indexGraphFromSettings = exports.testRoutingAndIndexGraph = exports.getSettingsPanelStatus = exports.getGraphFlowSettings = exports.expandAnchor = exports.previewContext = exports.mergeAgentInsightResult = exports.submitAgentInsightResult = exports.reportOutcome = exports.runTaskResult = exports.runTask = exports.orchestrate = void 0;
3
+ exports.graphflowSkills = exports.validateConfigDetailed = exports.loadConfigSafe = exports.loadConfig = exports.validateConfig = exports.createGraphClient = exports.planInsightResult = exports.SIMPLE_PLAN_BRIDGE_REQUIRED_IDS = exports.summarizeInsightForContext = exports.buildAgentInsightWorkItems = exports.buildAgentDelegatedSimplePlan = exports.buildAgentDelegatedPlanInsight = exports.hasUsableLlmProvider = exports.startStdioServer = exports.getToolDefinitions = exports.executeToolCall = exports.createMcpServer = exports.formatCliResult = exports.parseCliOptions = exports.startFileWatcherIfEnabled = exports.runLearningNightlyResult = exports.runLearningNightly = exports.repairUnsafeWindowsMcpCommands = exports.installMcpToDetectedAgents = exports.formatModelConfigGuide = exports.detectInstalledAgents = exports.assertGraphFlowRuntime = exports.planAndBrainstormResult = exports.planAndBrainstorm = exports.diagnoseRoutingResult = exports.diagnoseRouting = exports.resolveConfig = exports.getSkillInsights = exports.inspectGraph = exports.indexGraph = exports.saveGraphFlowSettings = exports.validateSettingsForRouting = exports.validateSettingsForGraphIndex = exports.indexGraphFromSettings = exports.testRoutingAndIndexGraph = exports.getSettingsPanelStatus = exports.getGraphFlowSettings = exports.expandAnchor = exports.previewContext = exports.mergeAgentInsightResult = exports.submitAgentInsightResult = exports.reportOutcome = exports.runTaskResult = exports.runTask = exports.orchestrate = void 0;
4
+ exports.listSkills = exports.invokeSkill = void 0;
4
5
  var orchestrator_1 = require("./core/orchestrator");
5
6
  Object.defineProperty(exports, "orchestrate", { enumerable: true, get: function () { return orchestrator_1.orchestrate; } });
6
7
  var runtime_1 = require("./surfaces/cli/runtime");
@@ -46,8 +47,10 @@ var llm_availability_1 = require("./config/llm-availability");
46
47
  Object.defineProperty(exports, "hasUsableLlmProvider", { enumerable: true, get: function () { return llm_availability_1.hasUsableLlmProvider; } });
47
48
  var agent_delegation_1 = require("./core/agent-delegation");
48
49
  Object.defineProperty(exports, "buildAgentDelegatedPlanInsight", { enumerable: true, get: function () { return agent_delegation_1.buildAgentDelegatedPlanInsight; } });
50
+ Object.defineProperty(exports, "buildAgentDelegatedSimplePlan", { enumerable: true, get: function () { return agent_delegation_1.buildAgentDelegatedSimplePlan; } });
49
51
  Object.defineProperty(exports, "buildAgentInsightWorkItems", { enumerable: true, get: function () { return agent_delegation_1.buildAgentInsightWorkItems; } });
50
52
  Object.defineProperty(exports, "summarizeInsightForContext", { enumerable: true, get: function () { return agent_delegation_1.summarizeInsightForContext; } });
53
+ Object.defineProperty(exports, "SIMPLE_PLAN_BRIDGE_REQUIRED_IDS", { enumerable: true, get: function () { return agent_delegation_1.SIMPLE_PLAN_BRIDGE_REQUIRED_IDS; } });
51
54
  var routing_1 = require("./surfaces/cli/runtime/routing");
52
55
  Object.defineProperty(exports, "planInsightResult", { enumerable: true, get: function () { return routing_1.planInsightResult; } });
53
56
  var client_factory_1 = require("./graph/client-factory");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA2E;AAAlE,2GAAA,WAAW,OAAA;AACpB,kDA+BgC;AA9B9B,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,wGAAA,aAAa,OAAA;AACb,mHAAA,wBAAwB,OAAA;AACxB,kHAAA,uBAAuB,OAAA;AACvB,yGAAA,cAAc,OAAA;AACd,uGAAA,YAAY,OAAA;AACZ,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA;AACtB,mHAAA,wBAAwB,OAAA;AACxB,iHAAA,sBAAsB,OAAA;AACtB,wHAAA,6BAA6B,OAAA;AAC7B,qHAAA,0BAA0B,OAAA;AAC1B,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,4GAAA,iBAAiB,OAAA;AACjB,kHAAA,uBAAuB,OAAA;AACvB,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AACrB,iHAAA,sBAAsB,OAAA;AACtB,qHAAA,0BAA0B,OAAA;AAC1B,yHAAA,8BAA8B,OAAA;AAC9B,6GAAA,kBAAkB,OAAA;AAClB,mHAAA,wBAAwB,OAAA;AACxB,oHAAA,yBAAyB,OAAA;AAG3B,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,8DAAiE;AAAxD,wHAAA,oBAAoB,OAAA;AAC7B,4DAOiC;AAN/B,kIAAA,8BAA8B,OAAA;AAC9B,8HAAA,0BAA0B,OAAA;AAC1B,8HAAA,0BAA0B,OAAA;AAK5B,0DAA2F;AAAlF,4GAAA,iBAAiB,OAAA;AAC1B,yDAGgC;AAF9B,mHAAA,iBAAiB,OAAA;AAGnB,0CAA+K;AAAtK,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAyB,gHAAA,sBAAsB,OAAA;AAClG,mCAqBkB;AApBhB,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA2E;AAAlE,2GAAA,WAAW,OAAA;AACpB,kDA+BgC;AA9B9B,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,wGAAA,aAAa,OAAA;AACb,mHAAA,wBAAwB,OAAA;AACxB,kHAAA,uBAAuB,OAAA;AACvB,yGAAA,cAAc,OAAA;AACd,uGAAA,YAAY,OAAA;AACZ,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA;AACtB,mHAAA,wBAAwB,OAAA;AACxB,iHAAA,sBAAsB,OAAA;AACtB,wHAAA,6BAA6B,OAAA;AAC7B,qHAAA,0BAA0B,OAAA;AAC1B,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,4GAAA,iBAAiB,OAAA;AACjB,kHAAA,uBAAuB,OAAA;AACvB,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AACrB,iHAAA,sBAAsB,OAAA;AACtB,qHAAA,0BAA0B,OAAA;AAC1B,yHAAA,8BAA8B,OAAA;AAC9B,6GAAA,kBAAkB,OAAA;AAClB,mHAAA,wBAAwB,OAAA;AACxB,oHAAA,yBAAyB,OAAA;AAG3B,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,8DAAiE;AAAxD,wHAAA,oBAAoB,OAAA;AAC7B,4DASiC;AAR/B,kIAAA,8BAA8B,OAAA;AAC9B,iIAAA,6BAA6B,OAAA;AAC7B,8HAAA,0BAA0B,OAAA;AAC1B,8HAAA,0BAA0B,OAAA;AAC1B,mIAAA,+BAA+B,OAAA;AAKjC,0DAA2F;AAAlF,4GAAA,iBAAiB,OAAA;AAC1B,yDAGgC;AAF9B,mHAAA,iBAAiB,OAAA;AAGnB,0CAA+K;AAAtK,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAyB,gHAAA,sBAAsB,OAAA;AAClG,mCAqBkB;AApBhB,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA"}
@@ -3,7 +3,9 @@ import type { GraphNode } from "../core/types";
3
3
  * HNSW (Hierarchical Navigable Small World) vector index.
4
4
  *
5
5
  * Previously used hnswlib-node for ANN search, but that has been removed
6
- * due to C++ compilation dependency issues. Now always uses linear scan.
6
+ * due to C++ compilation dependency issues. Now always uses linear scan,
7
+ * with per-process memoization and optional disk persistence so the index
8
+ * is not rebuilt on every query / every MCP server restart.
7
9
  */
8
10
  export interface VectorSearchResult {
9
11
  node: GraphNode;
@@ -15,6 +17,8 @@ export interface HnswVectorIndexOptions {
15
17
  /** Max elements threshold (no longer used, kept for API compatibility). */
16
18
  linearThreshold?: number;
17
19
  }
20
+ /** FNV-1a fingerprint over node ids + embedding checksums; identifies a vector set. */
21
+ export declare function computeVectorSetFingerprint(nodes: GraphNode[]): string;
18
22
  /**
19
23
  * A vector index over graph nodes that have embeddings attached.
20
24
  * Uses brute-force cosine similarity (linear scan).
@@ -32,8 +36,33 @@ export declare class HnswVectorIndex {
32
36
  save(): void;
33
37
  /** Load index is a no-op now. */
34
38
  loadIndex(): Promise<boolean>;
39
+ /** Serialize the loaded vectors for disk persistence. */
40
+ serialize(): {
41
+ dim: number;
42
+ ids: string[];
43
+ data: string;
44
+ };
45
+ /**
46
+ * Rebuild an index from persisted vectors, binding to CURRENT graph nodes
47
+ * (matched by id) so callers always see fresh node content.
48
+ */
49
+ static deserialize(dim: number, ids: string[], data: string, nodesById: Map<string, GraphNode>): HnswVectorIndex | undefined;
35
50
  /** Returns top-K nodes by similarity to the query embedding. */
36
51
  search(queryEmbedding: number[], topK: number, minSimilarity?: number): Promise<VectorSearchResult[]>;
37
52
  private searchLinear;
38
53
  }
54
+ /** Test hook: clear the per-process memoized vector index. */
55
+ export declare function resetSharedVectorIndex(): void;
56
+ /**
57
+ * Returns a vector index for the candidate set, reusing the per-process
58
+ * memoized index when the set is unchanged (fingerprint match). On a memo
59
+ * miss, optionally restores from `persistPath` (fingerprint-validated) and
60
+ * persists freshly built indexes for the next process start.
61
+ */
62
+ export declare function getSharedVectorIndex(nodes: GraphNode[], persistPath?: string): {
63
+ index: HnswVectorIndex;
64
+ fingerprint: string;
65
+ reused: boolean;
66
+ restoredFromDisk: boolean;
67
+ };
39
68
  //# sourceMappingURL=hnsw-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C;;;;;GAKG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,GAAG,CAAK;gBAEJ,QAAQ,CAAC,EAAE,sBAAsB;IAI7C,kDAAkD;IAClD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAa9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAED,8BAA8B;IAC9B,IAAI,IAAI,IAAI;IAIZ,iCAAiC;IAC3B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,gEAAgE;IAC1D,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOtG,OAAO,CAAC,YAAY;CAWrB"}
1
+ {"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,uFAAuF;AACvF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAqBtE;AAeD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,GAAG,CAAK;gBAEJ,QAAQ,CAAC,EAAE,sBAAsB;IAI7C,kDAAkD;IAClD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAa9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAED,8BAA8B;IAC9B,IAAI,IAAI,IAAI;IAIZ,iCAAiC;IAC3B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,yDAAyD;IACzD,SAAS,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAYzD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAChC,eAAe,GAAG,SAAS;IAiB9B,gEAAgE;IAC1D,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOtG,OAAO,CAAC,YAAY;CAWrB;AAMD,8DAA8D;AAC9D,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAuCD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,CAqB7F"}
@@ -1,7 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HnswVectorIndex = void 0;
4
+ exports.computeVectorSetFingerprint = computeVectorSetFingerprint;
5
+ exports.resetSharedVectorIndex = resetSharedVectorIndex;
6
+ exports.getSharedVectorIndex = getSharedVectorIndex;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
4
9
  const embeddings_1 = require("./embeddings");
10
+ const logger_1 = require("../utils/logger");
11
+ /** FNV-1a fingerprint over node ids + embedding checksums; identifies a vector set. */
12
+ function computeVectorSetFingerprint(nodes) {
13
+ let h = 0x811c9dc5;
14
+ const mix = (v) => {
15
+ h ^= v;
16
+ h = Math.imul(h, 0x01000193);
17
+ };
18
+ let count = 0;
19
+ for (const node of nodes) {
20
+ const emb = (0, embeddings_1.extractEmbedding)(node);
21
+ if (!emb)
22
+ continue;
23
+ count += 1;
24
+ mix(node.id.length);
25
+ for (let i = 0; i < node.id.length; i += 1)
26
+ mix(node.id.charCodeAt(i));
27
+ mix(emb.length);
28
+ // Cheap content checksum: quantized first/middle/last elements.
29
+ mix(Math.round((emb[0] ?? 0) * 1e6));
30
+ mix(Math.round((emb[emb.length >> 1] ?? 0) * 1e6));
31
+ mix(Math.round((emb[emb.length - 1] ?? 0) * 1e6));
32
+ }
33
+ mix(count);
34
+ return (h >>> 0).toString(36);
35
+ }
36
+ /** Skip disk persistence above this many vectors (file would be tens of MB). */
37
+ const PERSIST_MAX_VECTORS = 20_000;
38
+ const PERSIST_VERSION = 1;
5
39
  /**
6
40
  * A vector index over graph nodes that have embeddings attached.
7
41
  * Uses brute-force cosine similarity (linear scan).
@@ -43,6 +77,39 @@ class HnswVectorIndex {
43
77
  async loadIndex() {
44
78
  return false;
45
79
  }
80
+ /** Serialize the loaded vectors for disk persistence. */
81
+ serialize() {
82
+ const flat = new Float32Array(this.embeddings.length * this.dim);
83
+ for (let i = 0; i < this.embeddings.length; i += 1) {
84
+ flat.set(this.embeddings[i], i * this.dim);
85
+ }
86
+ return {
87
+ dim: this.dim,
88
+ ids: this.nodes.map((n) => n.id),
89
+ data: Buffer.from(flat.buffer).toString("base64"),
90
+ };
91
+ }
92
+ /**
93
+ * Rebuild an index from persisted vectors, binding to CURRENT graph nodes
94
+ * (matched by id) so callers always see fresh node content.
95
+ */
96
+ static deserialize(dim, ids, data, nodesById) {
97
+ const index = new HnswVectorIndex();
98
+ const buf = Buffer.from(data, "base64");
99
+ const flat = new Float32Array(buf.buffer, buf.byteOffset, Math.floor(buf.length / 4));
100
+ if (flat.length !== ids.length * dim) {
101
+ return undefined;
102
+ }
103
+ index.dim = dim;
104
+ for (let i = 0; i < ids.length; i += 1) {
105
+ const node = nodesById.get(ids[i]);
106
+ if (!node)
107
+ return undefined;
108
+ index.nodes.push(node);
109
+ index.embeddings.push(Array.from(flat.subarray(i * dim, (i + 1) * dim)));
110
+ }
111
+ return index;
112
+ }
46
113
  /** Returns top-K nodes by similarity to the query embedding. */
47
114
  async search(queryEmbedding, topK, minSimilarity = 0) {
48
115
  if (this.nodes.length === 0 || !queryEmbedding || queryEmbedding.length === 0) {
@@ -63,4 +130,71 @@ class HnswVectorIndex {
63
130
  }
64
131
  }
65
132
  exports.HnswVectorIndex = HnswVectorIndex;
133
+ // ── Shared memoized index + disk persistence ─────────────────────────────
134
+ let sharedVectorIndex;
135
+ /** Test hook: clear the per-process memoized vector index. */
136
+ function resetSharedVectorIndex() {
137
+ sharedVectorIndex = undefined;
138
+ }
139
+ function tryLoadPersistedIndex(filePath, fingerprint, nodes) {
140
+ try {
141
+ if (!(0, node_fs_1.existsSync)(filePath))
142
+ return undefined;
143
+ const parsed = JSON.parse((0, node_fs_1.readFileSync)(filePath, "utf8"));
144
+ if (parsed.version !== PERSIST_VERSION || parsed.fingerprint !== fingerprint) {
145
+ return undefined;
146
+ }
147
+ const nodesById = new Map(nodes.map((n) => [n.id, n]));
148
+ return HnswVectorIndex.deserialize(parsed.dim, parsed.ids, parsed.data, nodesById);
149
+ }
150
+ catch (error) {
151
+ logger_1.logger.warn({ error, filePath }, "Failed to load persisted vector index; rebuilding");
152
+ return undefined;
153
+ }
154
+ }
155
+ function tryPersistIndex(filePath, fingerprint, index) {
156
+ try {
157
+ if (index.size === 0 || index.size > PERSIST_MAX_VECTORS)
158
+ return;
159
+ const serialized = index.serialize();
160
+ const payload = {
161
+ version: PERSIST_VERSION,
162
+ fingerprint,
163
+ dim: serialized.dim,
164
+ ids: serialized.ids,
165
+ data: serialized.data,
166
+ };
167
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(filePath), { recursive: true });
168
+ (0, node_fs_1.writeFileSync)(filePath, JSON.stringify(payload), "utf8");
169
+ }
170
+ catch (error) {
171
+ logger_1.logger.warn({ error, filePath }, "Failed to persist vector index");
172
+ }
173
+ }
174
+ /**
175
+ * Returns a vector index for the candidate set, reusing the per-process
176
+ * memoized index when the set is unchanged (fingerprint match). On a memo
177
+ * miss, optionally restores from `persistPath` (fingerprint-validated) and
178
+ * persists freshly built indexes for the next process start.
179
+ */
180
+ function getSharedVectorIndex(nodes, persistPath) {
181
+ const fingerprint = computeVectorSetFingerprint(nodes);
182
+ if (sharedVectorIndex && sharedVectorIndex.fingerprint === fingerprint) {
183
+ return { index: sharedVectorIndex.index, fingerprint, reused: true, restoredFromDisk: false };
184
+ }
185
+ if (persistPath) {
186
+ const restored = tryLoadPersistedIndex(persistPath, fingerprint, nodes);
187
+ if (restored) {
188
+ sharedVectorIndex = { fingerprint, index: restored };
189
+ return { index: restored, fingerprint, reused: false, restoredFromDisk: true };
190
+ }
191
+ }
192
+ const index = new HnswVectorIndex();
193
+ index.load(nodes);
194
+ sharedVectorIndex = { fingerprint, index };
195
+ if (persistPath) {
196
+ tryPersistIndex(persistPath, fingerprint, index);
197
+ }
198
+ return { index, fingerprint, reused: false, restoredFromDisk: false };
199
+ }
66
200
  //# sourceMappingURL=hnsw-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":";;;AACA,6CAAkE;AAqBlE;;;GAGG;AACH,MAAa,eAAe;IAClB,KAAK,GAAgB,EAAE,CAAC;IACxB,UAAU,GAAe,EAAE,CAAC;IAC5B,GAAG,GAAG,CAAC,CAAC;IAEhB,YAAY,QAAiC;QAC3C,yDAAyD;IAC3D,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,KAAkB;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAA,6BAAgB,EAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG;gBAAE,SAAS,CAAC,uBAAuB;YAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IAC9B,IAAI;QACF,QAAQ;IACV,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,SAAS;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CAAC,cAAwB,EAAE,IAAY,EAAE,aAAa,GAAG,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAEO,YAAY,CAAC,cAAwB,EAAE,IAAY,EAAE,aAAqB;QAChF,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAA,6BAAgB,EAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;YAClE,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AA5DD,0CA4DC"}
1
+ {"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../src/learning/hnsw-index.ts"],"names":[],"mappings":"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"}
@@ -30,13 +30,19 @@ export interface PlanTaskInput extends SkillInvocationOptions {
30
30
  }
31
31
  export interface PlanTaskOutput {
32
32
  success: boolean;
33
- mode: "simple" | "complex";
33
+ mode: "simple" | "complex" | "agent-delegated";
34
34
  ideas: string[];
35
35
  nodes: Array<{
36
36
  id: string;
37
37
  description: string;
38
38
  dependencies: string[];
39
39
  }>;
40
+ suggestedNodes?: Array<{
41
+ id: string;
42
+ description: string;
43
+ dependencies: string[];
44
+ }>;
45
+ requiresAgentBridge?: boolean;
40
46
  }
41
47
  export interface PlanInsightInput extends SkillInvocationOptions {
42
48
  task: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
@@ -26,12 +26,16 @@ exports.graphflowSkills = {
26
26
  description: "Plan a coding task with graph context, producing structured task nodes with dependencies.",
27
27
  version: "1.0.0",
28
28
  async invoke(input) {
29
- const result = await (0, routing_1.planAndBrainstormResult)(input.task);
29
+ const result = (0, routing_1.planAndBrainstormResult)(input.task, input.configPath);
30
30
  return {
31
31
  success: true,
32
32
  mode: result.mode,
33
33
  ideas: result.ideas,
34
34
  nodes: result.nodes,
35
+ ...(result.suggestedNodes ? { suggestedNodes: result.suggestedNodes } : {}),
36
+ ...(result.requiresAgentBridge !== undefined
37
+ ? { requiresAgentBridge: result.requiresAgentBridge }
38
+ : {}),
35
39
  };
36
40
  },
37
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
@@ -267,6 +267,26 @@ async function executeCommand(command, args, configPath) {
267
267
  legacyText: `path=${data.path}; imported=${data.imported}; skipped=${data.skipped}; total=${data.total}`,
268
268
  };
269
269
  }
270
+ if (command === "skill" && args[0] === "sync") {
271
+ // Git-based team sharing: export to / import from the committable
272
+ // `.graphflow/skills/team-skills.json` (override with --path <file>).
273
+ const directionArg = args[1]?.trim().toLowerCase();
274
+ if (directionArg !== "export" && directionArg !== "import") {
275
+ console.log("Usage: graphflow skill sync <export|import> [--path <file>]");
276
+ process.exitCode = 1;
277
+ return undefined;
278
+ }
279
+ const pathIdx = args.indexOf("--path");
280
+ const customPath = pathIdx >= 0 ? args[pathIdx + 1]?.trim() : undefined;
281
+ const data = await (0, runtime_1.syncSkillPackageRuntime)(configPath, directionArg, customPath);
282
+ return {
283
+ command: "skill-sync",
284
+ data,
285
+ legacyText: data.direction === "export"
286
+ ? `direction=export; path=${data.path}; skillCount=${data.skillCount}; bytes=${data.bytes}`
287
+ : `direction=import; path=${data.path}; imported=${data.imported}; skipped=${data.skipped}; total=${data.total}`,
288
+ };
289
+ }
270
290
  if (command === "skill" && args[0] === "decay") {
271
291
  const data = await (0, runtime_1.runSkillDecay)(configPath);
272
292
  return {
@@ -298,6 +318,20 @@ async function executeCommand(command, args, configPath) {
298
318
  legacyText: `pruned=${data.pruned}`,
299
319
  };
300
320
  }
321
+ if (command === "skill" && args[0] === "report") {
322
+ // Flywheel contribution report: skills health, most-used skills,
323
+ // episode outcomes — makes the learning loop observable.
324
+ const data = (0, runtime_1.getFlywheelReport)(configPath);
325
+ return {
326
+ command: "skill-report",
327
+ data,
328
+ legacyText: [
329
+ `skills=${data.skills.total}(+${data.skills.positive}/0${data.skills.neutral}/-${data.skills.negative})`,
330
+ `episodes=${data.episodes.total}(pass:${data.episodes.pass},fail:${data.episodes.fail},pending:${data.episodes.pending},lessons:${data.episodes.withLessons})`,
331
+ `topUsed=${data.skills.topUsed.map((s) => `${s.name}:${s.uses}`).join(",") || "-"}`,
332
+ ].join("; "),
333
+ };
334
+ }
301
335
  if (command === "route" && args[0] === "diagnose") {
302
336
  const data = (0, runtime_1.diagnoseRoutingResult)(configPath);
303
337
  return {