@roarpeng/graphflow 0.6.6 → 0.6.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 (133) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +166 -303
  3. package/dist/config/defaults.d.ts +6 -0
  4. package/dist/config/defaults.d.ts.map +1 -1
  5. package/dist/config/defaults.js +20 -7
  6. package/dist/config/defaults.js.map +1 -1
  7. package/dist/config/loader.d.ts +8 -0
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +42 -9
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/paths.d.ts.map +1 -1
  12. package/dist/config/paths.js +6 -5
  13. package/dist/config/paths.js.map +1 -1
  14. package/dist/config/resolve.d.ts +3 -0
  15. package/dist/config/resolve.d.ts.map +1 -1
  16. package/dist/config/resolve.js +58 -24
  17. package/dist/config/resolve.js.map +1 -1
  18. package/dist/config/secrets.d.ts +6 -1
  19. package/dist/config/secrets.d.ts.map +1 -1
  20. package/dist/config/secrets.js +9 -1
  21. package/dist/config/secrets.js.map +1 -1
  22. package/dist/core/dag-engine.d.ts.map +1 -1
  23. package/dist/core/dag-engine.js +9 -3
  24. package/dist/core/dag-engine.js.map +1 -1
  25. package/dist/core/errors.d.ts +28 -1
  26. package/dist/core/errors.d.ts.map +1 -1
  27. package/dist/core/errors.js +55 -2
  28. package/dist/core/errors.js.map +1 -1
  29. package/dist/core/orchestrator.d.ts.map +1 -1
  30. package/dist/core/orchestrator.js +16 -0
  31. package/dist/core/orchestrator.js.map +1 -1
  32. package/dist/graph/file-indexer.d.ts +2 -0
  33. package/dist/graph/file-indexer.d.ts.map +1 -1
  34. package/dist/graph/file-indexer.js +65 -36
  35. package/dist/graph/file-indexer.js.map +1 -1
  36. package/dist/graph/graph-utils.d.ts +4 -0
  37. package/dist/graph/graph-utils.d.ts.map +1 -0
  38. package/dist/graph/graph-utils.js +29 -0
  39. package/dist/graph/graph-utils.js.map +1 -0
  40. package/dist/graph/graphify-client.d.ts +2 -1
  41. package/dist/graph/graphify-client.d.ts.map +1 -1
  42. package/dist/graph/graphify-client.js +6 -17
  43. package/dist/graph/graphify-client.js.map +1 -1
  44. package/dist/graph/graphify-file-client.js +3 -3
  45. package/dist/graph/graphify-file-client.js.map +1 -1
  46. package/dist/graph/snapshot-view.d.ts +26 -0
  47. package/dist/graph/snapshot-view.d.ts.map +1 -0
  48. package/dist/graph/snapshot-view.js +228 -0
  49. package/dist/graph/snapshot-view.js.map +1 -0
  50. package/dist/index.d.ts +3 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +3 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/integrations/agent-mcp-installer.d.ts +3 -0
  55. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  56. package/dist/integrations/agent-mcp-installer.js +7 -5
  57. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  58. package/dist/learning/episodic-memory.d.ts.map +1 -1
  59. package/dist/learning/episodic-memory.js +2 -8
  60. package/dist/learning/episodic-memory.js.map +1 -1
  61. package/dist/learning/reflector.d.ts.map +1 -1
  62. package/dist/learning/reflector.js +2 -8
  63. package/dist/learning/reflector.js.map +1 -1
  64. package/dist/learning/skill-evolution.d.ts +16 -0
  65. package/dist/learning/skill-evolution.d.ts.map +1 -0
  66. package/dist/learning/skill-evolution.js +154 -0
  67. package/dist/learning/skill-evolution.js.map +1 -0
  68. package/dist/learning/skill-flywheel.d.ts +4 -47
  69. package/dist/learning/skill-flywheel.d.ts.map +1 -1
  70. package/dist/learning/skill-flywheel.js +44 -337
  71. package/dist/learning/skill-flywheel.js.map +1 -1
  72. package/dist/learning/skill-store.d.ts +20 -0
  73. package/dist/learning/skill-store.d.ts.map +1 -0
  74. package/dist/learning/skill-store.js +170 -0
  75. package/dist/learning/skill-store.js.map +1 -0
  76. package/dist/learning/skill-types.d.ts +43 -0
  77. package/dist/learning/skill-types.d.ts.map +1 -0
  78. package/dist/learning/skill-types.js +6 -0
  79. package/dist/learning/skill-types.js.map +1 -0
  80. package/dist/learning/vector-store.d.ts +2 -0
  81. package/dist/learning/vector-store.d.ts.map +1 -1
  82. package/dist/learning/vector-store.js +4 -0
  83. package/dist/learning/vector-store.js.map +1 -1
  84. package/dist/routing/provider-executor.d.ts.map +1 -1
  85. package/dist/routing/provider-executor.js +5 -4
  86. package/dist/routing/provider-executor.js.map +1 -1
  87. package/dist/surfaces/cli/init.d.ts.map +1 -1
  88. package/dist/surfaces/cli/init.js +25 -39
  89. package/dist/surfaces/cli/init.js.map +1 -1
  90. package/dist/surfaces/cli/runtime/env.d.ts +8 -0
  91. package/dist/surfaces/cli/runtime/env.d.ts.map +1 -0
  92. package/dist/surfaces/cli/runtime/env.js +134 -0
  93. package/dist/surfaces/cli/runtime/env.js.map +1 -0
  94. package/dist/surfaces/cli/runtime/facade.d.ts +45 -0
  95. package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -0
  96. package/dist/surfaces/cli/runtime/facade.js +34 -0
  97. package/dist/surfaces/cli/runtime/facade.js.map +1 -0
  98. package/dist/surfaces/cli/runtime/graph.d.ts +25 -0
  99. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -0
  100. package/dist/surfaces/cli/runtime/graph.js +416 -0
  101. package/dist/surfaces/cli/runtime/graph.js.map +1 -0
  102. package/dist/surfaces/cli/runtime/helpers.d.ts +30 -0
  103. package/dist/surfaces/cli/runtime/helpers.d.ts.map +1 -0
  104. package/dist/surfaces/cli/runtime/helpers.js +159 -0
  105. package/dist/surfaces/cli/runtime/helpers.js.map +1 -0
  106. package/dist/surfaces/cli/runtime/panel.d.ts +5 -0
  107. package/dist/surfaces/cli/runtime/panel.d.ts.map +1 -0
  108. package/dist/surfaces/cli/runtime/panel.js +91 -0
  109. package/dist/surfaces/cli/runtime/panel.js.map +1 -0
  110. package/dist/surfaces/cli/runtime/routing.d.ts +11 -0
  111. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -0
  112. package/dist/surfaces/cli/runtime/routing.js +233 -0
  113. package/dist/surfaces/cli/runtime/routing.js.map +1 -0
  114. package/dist/surfaces/cli/runtime/settings.d.ts +6 -0
  115. package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -0
  116. package/dist/surfaces/cli/runtime/settings.js +334 -0
  117. package/dist/surfaces/cli/runtime/settings.js.map +1 -0
  118. package/dist/surfaces/cli/runtime/types.d.ts +218 -0
  119. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -0
  120. package/dist/surfaces/cli/runtime/types.js +3 -0
  121. package/dist/surfaces/cli/runtime/types.js.map +1 -0
  122. package/dist/surfaces/cli/runtime.d.ts +8 -257
  123. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  124. package/dist/surfaces/cli/runtime.js +52 -1264
  125. package/dist/surfaces/cli/runtime.js.map +1 -1
  126. package/dist/surfaces/mcp/server.js +18 -0
  127. package/dist/surfaces/mcp/server.js.map +1 -1
  128. package/dist/utils/hash.d.ts +11 -0
  129. package/dist/utils/hash.d.ts.map +1 -0
  130. package/dist/utils/hash.js +27 -0
  131. package/dist/utils/hash.js.map +1 -0
  132. package/package.json +3 -1
  133. package/scripts/safe-postinstall.cjs +6 -0
@@ -1,18 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateSkillCanary = exports.evolveCompositeSkillLlm = exports.parseEvolutionState = exports.loadEvolutionSkill = exports.loadCompositeSkill = exports.composeSkillId = void 0;
3
4
  exports.extractSkillAtoms = extractSkillAtoms;
4
5
  exports.applySkillLearning = applySkillLearning;
5
6
  exports.suggestSkillHints = suggestSkillHints;
6
- exports.composeSkillId = composeSkillId;
7
- exports.loadCompositeSkill = loadCompositeSkill;
8
- exports.parseEvolutionState = parseEvolutionState;
9
- exports.loadEvolutionSkill = loadEvolutionSkill;
10
- exports.evolveCompositeSkillLlm = evolveCompositeSkillLlm;
11
- exports.updateSkillCanary = updateSkillCanary;
12
- const logger_1 = require("../utils/logger");
13
- const provider_executor_1 = require("../routing/provider-executor");
14
- const DEFAULT_COMPOSITE_MIN_COOCCUR = 2;
15
- const DEFAULT_COMPOSITE_MIN_SUCCESS = 2;
7
+ const hash_1 = require("../utils/hash");
8
+ // 导入提取出去的辅助函数与存储方法
9
+ const skill_store_1 = require("./skill-store");
10
+ // 导入提取出去的演进方法
11
+ const skill_evolution_1 = require("./skill-evolution");
12
+ var skill_store_2 = require("./skill-store");
13
+ Object.defineProperty(exports, "composeSkillId", { enumerable: true, get: function () { return skill_store_2.composeSkillId; } });
14
+ Object.defineProperty(exports, "loadCompositeSkill", { enumerable: true, get: function () { return skill_store_2.loadCompositeSkill; } });
15
+ Object.defineProperty(exports, "loadEvolutionSkill", { enumerable: true, get: function () { return skill_store_2.loadEvolutionSkill; } });
16
+ Object.defineProperty(exports, "parseEvolutionState", { enumerable: true, get: function () { return skill_store_2.parseEvolutionState; } });
17
+ var skill_evolution_2 = require("./skill-evolution");
18
+ Object.defineProperty(exports, "evolveCompositeSkillLlm", { enumerable: true, get: function () { return skill_evolution_2.evolveCompositeSkillLlm; } });
19
+ Object.defineProperty(exports, "updateSkillCanary", { enumerable: true, get: function () { return skill_evolution_2.updateSkillCanary; } });
16
20
  function extractSkillAtoms(task) {
17
21
  const phrases = task
18
22
  .split(/\band\b|,|;/i)
@@ -30,7 +34,7 @@ function extractSkillAtoms(task) {
30
34
  .filter((seg) => seg.isWordLike && seg.segment.length >= 2 && /[\u4e00-\u9fa5]/.test(seg.segment))
31
35
  .map((seg) => seg.segment.toLowerCase())
32
36
  .slice(0, 8);
33
- return dedup([...phrases, ...tokenSkills, ...zhWords]);
37
+ return (0, skill_store_1.dedup)([...phrases, ...tokenSkills, ...zhWords]);
34
38
  }
35
39
  async function applySkillLearning(client, task, run) {
36
40
  const skills = extractSkillAtoms(task);
@@ -42,20 +46,20 @@ async function applySkillLearning(client, task, run) {
42
46
  const nodes = [];
43
47
  const edges = [];
44
48
  for (const skill of skills) {
45
- const id = skillNodeId(skill);
46
- const previous = await readSkillState(client, id);
49
+ const id = (0, skill_store_1.skillNodeId)(skill);
50
+ const previous = await (0, skill_store_1.readSkillState)(client, id);
47
51
  const next = {
48
52
  id,
49
53
  name: skill,
50
- score: boundedScore((previous?.score ?? 0) + (passed ? 1 : -1)),
54
+ score: (0, skill_store_1.boundedScore)((previous?.score ?? 0) + (passed ? 1 : -1)),
51
55
  uses: (previous?.uses ?? 0) + 1,
52
56
  lastOutcome: passed ? "pass" : "fail",
53
57
  updatedAt: now,
54
58
  };
55
- nodes.push({ id, type: "Skill", content: serializeAtomic(next) });
59
+ nodes.push({ id, type: "Skill", content: (0, skill_store_1.serializeAtomic)(next) });
56
60
  edges.push({
57
61
  from: id,
58
- to: `decision:task:${hashText(task)}`,
62
+ to: `decision:task:${(0, hash_1.hashTextHex)(task)}`,
59
63
  relation: "improves",
60
64
  });
61
65
  }
@@ -64,17 +68,17 @@ async function applySkillLearning(client, task, run) {
64
68
  const a = skills[i];
65
69
  const b = skills[j];
66
70
  edges.push({
67
- from: skillNodeId(a),
68
- to: skillNodeId(b),
71
+ from: (0, skill_store_1.skillNodeId)(a),
72
+ to: (0, skill_store_1.skillNodeId)(b),
69
73
  relation: "co_occurs",
70
74
  });
71
75
  const [n1, n2] = [a, b].sort();
72
- const compositeId = composeSkillId(n1, n2);
73
- const previous = await loadCompositeSkill(client, compositeId);
76
+ const compositeId = (0, skill_store_1.composeSkillId)(n1, n2);
77
+ const previous = await (0, skill_store_1.loadCompositeSkill)(client, compositeId);
74
78
  const composite = {
75
79
  id: compositeId,
76
80
  name: `${n1}+${n2}`,
77
- parents: [skillNodeId(n1), skillNodeId(n2)],
81
+ parents: [(0, skill_store_1.skillNodeId)(n1), (0, skill_store_1.skillNodeId)(n2)],
78
82
  coOccurCount: (previous?.coOccurCount ?? 0) + 1,
79
83
  successCount: (previous?.successCount ?? 0) + (passed ? 1 : 0),
80
84
  failureCount: (previous?.failureCount ?? 0) + (passed ? 0 : 1),
@@ -83,61 +87,61 @@ async function applySkillLearning(client, task, run) {
83
87
  lastOutcome: passed ? "pass" : "fail",
84
88
  updatedAt: now,
85
89
  };
86
- composite.score = boundedScore(composite.successCount - composite.failureCount);
87
- nodes.push({ id: compositeId, type: "Skill", content: serializeComposite(composite) });
88
- if (compositeGateMet(composite)) {
89
- edges.push({ from: skillNodeId(n1), to: compositeId, relation: "prerequisite" });
90
- edges.push({ from: skillNodeId(n2), to: compositeId, relation: "prerequisite" });
90
+ composite.score = (0, skill_store_1.boundedScore)(composite.successCount - composite.failureCount);
91
+ nodes.push({ id: compositeId, type: "Skill", content: (0, skill_store_1.serializeComposite)(composite) });
92
+ if ((0, skill_store_1.compositeGateMet)(composite)) {
93
+ edges.push({ from: (0, skill_store_1.skillNodeId)(n1), to: compositeId, relation: "prerequisite" });
94
+ edges.push({ from: (0, skill_store_1.skillNodeId)(n2), to: compositeId, relation: "prerequisite" });
91
95
  // 异步调度 evolveCompositeSkillLlm 进行脑暴合成
92
- const evolutionNode = await evolveCompositeSkillLlm(client, n1, n2, composite);
96
+ const evolutionNode = await (0, skill_evolution_1.evolveCompositeSkillLlm)(client, n1, n2, composite);
93
97
  if (evolutionNode) {
94
98
  nodes.push(evolutionNode);
95
- edges.push({ from: skillNodeId(n1), to: evolutionNode.id, relation: "prerequisite" });
96
- edges.push({ from: skillNodeId(n2), to: evolutionNode.id, relation: "prerequisite" });
99
+ edges.push({ from: (0, skill_store_1.skillNodeId)(n1), to: evolutionNode.id, relation: "prerequisite" });
100
+ edges.push({ from: (0, skill_store_1.skillNodeId)(n2), to: evolutionNode.id, relation: "prerequisite" });
97
101
  }
98
102
  }
99
103
  }
100
104
  }
101
105
  if (passed) {
102
- const tripleAtomNames = getTripleAtomNames(skills);
103
- const tripleNode = tripleAtomNames ? buildTripleFusionNode(tripleAtomNames, now) : undefined;
106
+ const tripleAtomNames = (0, skill_evolution_1.getTripleAtomNames)(skills);
107
+ const tripleNode = tripleAtomNames ? (0, skill_evolution_1.buildTripleFusionNode)(tripleAtomNames, now) : undefined;
104
108
  if (tripleNode && tripleAtomNames) {
105
109
  nodes.push(tripleNode);
106
110
  for (const atom of tripleAtomNames) {
107
- edges.push({ from: skillNodeId(atom), to: tripleNode.id, relation: "prerequisite" });
111
+ edges.push({ from: (0, skill_store_1.skillNodeId)(atom), to: tripleNode.id, relation: "prerequisite" });
108
112
  }
109
113
  }
110
114
  }
111
115
  await client.upsertNodes(nodes);
112
- await client.upsertEdges(dedupEdges(edges));
116
+ await client.upsertEdges((0, skill_store_1.dedupEdges)(edges));
113
117
  }
114
118
  async function suggestSkillHints(client, task, maxHints) {
115
119
  const atoms = extractSkillAtoms(task);
116
- const queries = dedup([task.toLowerCase(), ...atoms]).slice(0, 10);
120
+ const queries = (0, skill_store_1.dedup)([task.toLowerCase(), ...atoms]).slice(0, 10);
117
121
  const resultSets = await Promise.all(queries.map((query) => client.queryByKeyword(query)));
118
- const skillNodes = dedupNodes(resultSets.flat().filter((node) => node.type === "Skill"));
122
+ const skillNodes = (0, skill_store_1.dedupNodes)(resultSets.flat().filter((node) => node.type === "Skill"));
119
123
  const atomicStates = [];
120
124
  const compositeStates = [];
121
125
  const evolutionStates = [];
122
126
  for (const node of skillNodes) {
123
- const evolution = parseEvolutionState(node.content);
127
+ const evolution = (0, skill_store_1.parseEvolutionState)(node.content);
124
128
  if (evolution) {
125
129
  evolutionStates.push(evolution);
126
130
  continue;
127
131
  }
128
- const composite = parseCompositeState(node.content);
132
+ const composite = (0, skill_store_1.parseCompositeState)(node.content);
129
133
  if (composite) {
130
134
  compositeStates.push(composite);
131
135
  continue;
132
136
  }
133
- const atomic = parseSkillState(node.content);
137
+ const atomic = (0, skill_store_1.parseSkillState)(node.content);
134
138
  if (atomic) {
135
139
  atomicStates.push(atomic);
136
140
  }
137
141
  }
138
142
  const atomSet = new Set(atoms);
139
143
  const eligibleComposites = compositeStates.filter((composite) => {
140
- if (!compositeGateMet(composite) || composite.score <= 0) {
144
+ if (!(0, skill_store_1.compositeGateMet)(composite) || composite.score <= 0) {
141
145
  return false;
142
146
  }
143
147
  const [n1, n2] = composite.name.split("+");
@@ -224,7 +228,7 @@ async function suggestSkillHints(client, task, maxHints) {
224
228
  lastOutcome: item.state.lastOutcome,
225
229
  updatedAt: Date.now(),
226
230
  };
227
- updates.push({ id: updated.id, type: "Skill", content: serializeComposite(updated) });
231
+ updates.push({ id: updated.id, type: "Skill", content: (0, skill_store_1.serializeComposite)(updated) });
228
232
  }
229
233
  }
230
234
  }
@@ -233,301 +237,4 @@ async function suggestSkillHints(client, task, maxHints) {
233
237
  }
234
238
  return chosen.map((item) => item.name);
235
239
  }
236
- function composeSkillId(atomA, atomB) {
237
- const [first, second] = [atomA, atomB].sort();
238
- return `skill:composite:${sanitizeAtom(first)}__${sanitizeAtom(second)}`;
239
- }
240
- async function loadCompositeSkill(client, id) {
241
- const hits = await client.queryByKeyword(id);
242
- const direct = hits.find((node) => node.id === id && node.type === "Skill");
243
- return direct ? parseCompositeState(direct.content) : undefined;
244
- }
245
- function compositeGateMet(composite) {
246
- const minCoOccur = Number(process.env.GRAPHFLOW_SKILL_EVOLVE_MIN_COOCCUR ?? DEFAULT_COMPOSITE_MIN_COOCCUR);
247
- const minSuccess = Number(process.env.GRAPHFLOW_SKILL_EVOLVE_MIN_SUCCESS ?? DEFAULT_COMPOSITE_MIN_SUCCESS);
248
- return (composite.coOccurCount >= (Number.isFinite(minCoOccur) ? minCoOccur : DEFAULT_COMPOSITE_MIN_COOCCUR) &&
249
- composite.successCount >= (Number.isFinite(minSuccess) ? minSuccess : DEFAULT_COMPOSITE_MIN_SUCCESS) &&
250
- composite.successCount > composite.failureCount);
251
- }
252
- function sanitizeAtom(skill) {
253
- return skill.replace(/[^a-z0-9]+/g, "-");
254
- }
255
- function skillNodeId(skill) {
256
- return `skill:${sanitizeAtom(skill)}`;
257
- }
258
- function serializeAtomic(state) {
259
- return JSON.stringify({ kind: "atomic", ...state });
260
- }
261
- function serializeComposite(state) {
262
- return JSON.stringify({ kind: "composite", ...state });
263
- }
264
- function parseSkillState(content) {
265
- try {
266
- const parsed = JSON.parse(content);
267
- if (!parsed.id || !parsed.name) {
268
- return undefined;
269
- }
270
- if (parsed.kind && parsed.kind !== "atomic") {
271
- return undefined;
272
- }
273
- return {
274
- id: parsed.id,
275
- name: parsed.name,
276
- score: parsed.score ?? 0,
277
- uses: parsed.uses ?? 0,
278
- lastOutcome: parsed.lastOutcome === "fail" ? "fail" : "pass",
279
- updatedAt: parsed.updatedAt ?? 0,
280
- };
281
- }
282
- catch (error) {
283
- logger_1.logger.error({ error }, "Caught error");
284
- return undefined;
285
- }
286
- }
287
- function parseCompositeState(content) {
288
- try {
289
- const parsed = JSON.parse(content);
290
- if (parsed.kind !== "composite" || !parsed.id || !parsed.name || !parsed.parents) {
291
- return undefined;
292
- }
293
- const parents = parsed.parents;
294
- if (!Array.isArray(parents) || parents.length !== 2) {
295
- return undefined;
296
- }
297
- return {
298
- id: parsed.id,
299
- name: parsed.name,
300
- parents: [parents[0], parents[1]],
301
- coOccurCount: parsed.coOccurCount ?? 0,
302
- successCount: parsed.successCount ?? 0,
303
- failureCount: parsed.failureCount ?? 0,
304
- score: parsed.score ?? 0,
305
- uses: parsed.uses ?? 0,
306
- lastOutcome: parsed.lastOutcome === "fail" ? "fail" : "pass",
307
- updatedAt: parsed.updatedAt ?? 0,
308
- };
309
- }
310
- catch (error) {
311
- logger_1.logger.error({ error }, "Caught error");
312
- return undefined;
313
- }
314
- }
315
- async function readSkillState(client, id) {
316
- const hits = await client.queryByKeyword(id);
317
- const direct = hits.find((node) => node.id === id && node.type === "Skill");
318
- return direct ? parseSkillState(direct.content) : undefined;
319
- }
320
- function dedup(values) {
321
- return Array.from(new Set(values));
322
- }
323
- function dedupNodes(nodes) {
324
- const map = new Map();
325
- for (const node of nodes) {
326
- map.set(node.id, node);
327
- }
328
- return Array.from(map.values());
329
- }
330
- function boundedScore(score) {
331
- if (score > 20) {
332
- return 20;
333
- }
334
- if (score < -20) {
335
- return -20;
336
- }
337
- return score;
338
- }
339
- function hashText(text) {
340
- let hash = 0;
341
- for (let i = 0; i < text.length; i += 1) {
342
- hash = (hash * 33 + text.charCodeAt(i)) >>> 0;
343
- }
344
- return hash.toString(16);
345
- }
346
- function dedupEdges(edges) {
347
- const seen = new Set();
348
- const result = [];
349
- for (const edge of edges) {
350
- const key = `${edge.from}|${edge.relation}|${edge.to}`;
351
- if (!seen.has(key)) {
352
- seen.add(key);
353
- result.push(edge);
354
- }
355
- }
356
- return result;
357
- }
358
- function parseEvolutionState(content) {
359
- try {
360
- const parsed = JSON.parse(content);
361
- if (parsed.kind !== "evolution" || !parsed.id || !parsed.name || !parsed.parents) {
362
- return undefined;
363
- }
364
- const parents = parsed.parents;
365
- if (!Array.isArray(parents) || parents.length !== 2) {
366
- return undefined;
367
- }
368
- return {
369
- id: parsed.id,
370
- name: parsed.name,
371
- parents: [parents[0], parents[1]],
372
- domain: parsed.domain || "",
373
- description: parsed.description || "",
374
- score: parsed.score ?? 0,
375
- uses: parsed.uses ?? 0,
376
- updatedAt: parsed.updatedAt ?? 0,
377
- canaryUses: parsed.canaryUses ?? 0,
378
- canaryPasses: parsed.canaryPasses ?? 0,
379
- canaryStatus: parsed.canaryStatus ?? 'probation',
380
- };
381
- }
382
- catch (error) {
383
- logger_1.logger.error({ error }, "Caught error");
384
- return undefined;
385
- }
386
- }
387
- async function loadEvolutionSkill(client, id) {
388
- const hits = await client.queryByKeyword(id);
389
- const direct = hits.find((node) => node.id === id && node.type === "Skill");
390
- return direct ? parseEvolutionState(direct.content) : undefined;
391
- }
392
- /**
393
- * 调遣 MiniCPM-1B 模拟人类进行跨技能融会贯通与概念演进
394
- */
395
- async function evolveCompositeSkillLlm(client, n1, n2, previousComposite) {
396
- const openbmbModel = process.env.GRAPHFLOW_SKILL_EVOLVE_MODEL ?? "minicpm5-1b";
397
- const prompt = [
398
- `你是一个卓越的代码认知科学家,正模拟人类大脑的技能成长。`,
399
- `你已完全精通以下两项基础“原子技能”:`,
400
- `1. 技能 A: ${n1}`,
401
- `2. 技能 B: ${n2}`,
402
- ``,
403
- `请联想推演:人类在综合 A 和 B 后,能够融会贯通衍生出解决 C 领域什么问题的“复合高阶技能”?`,
404
- `请严格返回 JSON 格式:{"compositeSkillName": "复合技能名", "domainC": "C领域名", "methodologyDescription": "一句话核心方法论"}`,
405
- `不要有任何标点、引言 or markdown 包裹。直接输出合法 JSON:`
406
- ].join("\n");
407
- try {
408
- const selection = {
409
- provider: "openbmb",
410
- model: openbmbModel,
411
- tier: "economy",
412
- fallbackApplied: false
413
- };
414
- const rawJson = await (0, provider_executor_1.executeRolePrompt)("evolver", prompt, selection);
415
- const cleaned = cleanJsonString(rawJson, n1, n2);
416
- const parsed = JSON.parse(cleaned);
417
- if (!parsed.compositeSkillName || !parsed.domainC) {
418
- return null;
419
- }
420
- const evolutionId = `skill:evolution:${hashText(parsed.compositeSkillName)}`;
421
- const record = {
422
- id: evolutionId,
423
- name: parsed.compositeSkillName,
424
- parents: [skillNodeId(n1), skillNodeId(n2)],
425
- domain: parsed.domainC,
426
- description: parsed.methodologyDescription || "",
427
- score: previousComposite?.score ?? 1,
428
- uses: previousComposite?.uses ?? 1,
429
- updatedAt: Date.now(),
430
- canaryUses: 0,
431
- canaryPasses: 0,
432
- canaryStatus: 'probation',
433
- };
434
- // 返回生成的高阶进化技能节点,在外部写入图谱,并关联 prerequisite 拓扑边
435
- return {
436
- id: evolutionId,
437
- type: "Skill",
438
- content: JSON.stringify({ kind: "evolution", ...record })
439
- };
440
- }
441
- catch (error) {
442
- logger_1.logger.error({ error }, "Caught error");
443
- // 异常安全降级,若推理失败,退回传统规则拼接
444
- return null;
445
- }
446
- }
447
- function getTripleAtomNames(skills) {
448
- if (skills.length < 3) {
449
- return undefined;
450
- }
451
- const atoms = dedup(skills).sort();
452
- if (atoms.length < 3) {
453
- return undefined;
454
- }
455
- return [atoms[0], atoms[1], atoms[2]];
456
- }
457
- function buildTripleFusionNode(names, now) {
458
- if (process.env.GRAPHFLOW_SKILL_TRIPLE_FUSION === "0") {
459
- return undefined;
460
- }
461
- const [a, b, c] = names;
462
- const text = `${a}+${b}+${c}`;
463
- const id = `skill:triple:${sanitizeAtom(a)}__${sanitizeAtom(b)}__${sanitizeAtom(c)}`;
464
- const content = {
465
- kind: "triple-composite",
466
- id,
467
- name: text,
468
- parents: [skillNodeId(a), skillNodeId(b), skillNodeId(c)],
469
- score: 1,
470
- uses: 1,
471
- updatedAt: now,
472
- methodology: `融合 ${a}、${b}、${c} 的三元高阶技能`,
473
- };
474
- return {
475
- id,
476
- type: "Skill",
477
- content: JSON.stringify(content),
478
- };
479
- }
480
- function cleanJsonString(raw, n1, n2) {
481
- let text = raw.trim();
482
- // 适配测试环境及 mock 环境下的返回
483
- if (text.includes("[openbmb:") || text.includes("[openai:") || !text.startsWith("{")) {
484
- return JSON.stringify({
485
- compositeSkillName: `构建 ${n1} 与 ${n2} 融合高阶技能`,
486
- domainC: `${n1} & ${n2} 复合工程领域`,
487
- methodologyDescription: `在 mock 测试下完美融合 ${n1} 与 ${n2},达到大师级设计。`
488
- });
489
- }
490
- const fence = text.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);
491
- if (fence && fence[1]) {
492
- text = fence[1].trim();
493
- }
494
- const start = text.indexOf("{");
495
- const end = text.lastIndexOf("}");
496
- if (start !== -1 && end !== -1 && end > start) {
497
- return text.slice(start, end + 1);
498
- }
499
- return text;
500
- }
501
- /**
502
- * 更新合成技能的 canary 验证状态
503
- * 当 canaryUses >= 3 时评估通过率决定 verified 或 demoted
504
- */
505
- async function updateSkillCanary(client, skillId, outcome) {
506
- const existing = await loadEvolutionSkill(client, skillId);
507
- if (!existing) {
508
- return undefined;
509
- }
510
- existing.canaryUses += 1;
511
- if (outcome === 'pass') {
512
- existing.canaryPasses += 1;
513
- }
514
- // 累积足够样本后进行阈值判定
515
- if (existing.canaryUses >= 3) {
516
- const passRate = existing.canaryPasses / existing.canaryUses;
517
- if (passRate >= 0.5) {
518
- existing.canaryStatus = 'verified';
519
- }
520
- else {
521
- existing.canaryStatus = 'demoted';
522
- existing.score = -10;
523
- }
524
- }
525
- existing.updatedAt = Date.now();
526
- await client.upsertNodes([{
527
- id: existing.id,
528
- type: "Skill",
529
- content: JSON.stringify({ kind: "evolution", ...existing }),
530
- }]);
531
- return existing;
532
- }
533
240
  //# sourceMappingURL=skill-flywheel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-flywheel.js","sourceRoot":"","sources":["../../src/learning/skill-flywheel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-flywheel.js","sourceRoot":"","sources":["../../src/learning/skill-flywheel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { GraphNode } from "../core/types";
2
+ import type { GraphClient } from "../graph/client-factory";
3
+ import type { SkillState, CompositeSkillState, EvolutionarySkillNode, SkillEdge } from "./skill-types";
4
+ export declare function sanitizeAtom(skill: string): string;
5
+ export declare function skillNodeId(skill: string): string;
6
+ export declare function serializeAtomic(state: SkillState): string;
7
+ export declare function serializeComposite(state: CompositeSkillState): string;
8
+ export declare function parseSkillState(content: string): SkillState | undefined;
9
+ export declare function parseCompositeState(content: string): CompositeSkillState | undefined;
10
+ export declare function parseEvolutionState(content: string): EvolutionarySkillNode | undefined;
11
+ export declare function readSkillState(client: GraphClient, id: string): Promise<SkillState | undefined>;
12
+ export declare function loadCompositeSkill(client: GraphClient, id: string): Promise<CompositeSkillState | undefined>;
13
+ export declare function loadEvolutionSkill(client: GraphClient, id: string): Promise<EvolutionarySkillNode | undefined>;
14
+ export declare function composeSkillId(atomA: string, atomB: string): string;
15
+ export declare function compositeGateMet(composite: CompositeSkillState): boolean;
16
+ export declare function boundedScore(score: number): number;
17
+ export declare function dedup(values: string[]): string[];
18
+ export declare function dedupNodes(nodes: GraphNode[]): GraphNode[];
19
+ export declare function dedupEdges(edges: SkillEdge[]): SkillEdge[];
20
+ //# sourceMappingURL=skill-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-store.d.ts","sourceRoot":"","sources":["../../src/learning/skill-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACV,MAAM,eAAe,CAAC;AAMvB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAErE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAsBvE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CA0BpF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CA2BtF;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAIrG;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAI1C;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAI5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAQxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAW1D"}