@roarpeng/graphflow 1.9.15 → 1.12.1

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 (105) hide show
  1. package/CHANGELOG.md +65 -1
  2. package/README.md +9 -8
  3. package/README.zh.md +3 -2
  4. package/dist/config/resolve.d.ts +13 -1
  5. package/dist/config/resolve.d.ts.map +1 -1
  6. package/dist/config/resolve.js +29 -3
  7. package/dist/config/resolve.js.map +1 -1
  8. package/dist/config/workspace-root.d.ts +6 -0
  9. package/dist/config/workspace-root.d.ts.map +1 -1
  10. package/dist/config/workspace-root.js +3 -2
  11. package/dist/config/workspace-root.js.map +1 -1
  12. package/dist/graph/graphify-file-client.d.ts +49 -0
  13. package/dist/graph/graphify-file-client.d.ts.map +1 -1
  14. package/dist/graph/graphify-file-client.js +113 -15
  15. package/dist/graph/graphify-file-client.js.map +1 -1
  16. package/dist/graph/knowledge-extraction.d.ts +43 -0
  17. package/dist/graph/knowledge-extraction.d.ts.map +1 -0
  18. package/dist/graph/knowledge-extraction.js +274 -0
  19. package/dist/graph/knowledge-extraction.js.map +1 -0
  20. package/dist/graph/token-savings.d.ts +39 -0
  21. package/dist/graph/token-savings.d.ts.map +1 -1
  22. package/dist/graph/token-savings.js +138 -0
  23. package/dist/graph/token-savings.js.map +1 -1
  24. package/dist/integrations/skill-installer.d.ts.map +1 -1
  25. package/dist/integrations/skill-installer.js +9 -2
  26. package/dist/integrations/skill-installer.js.map +1 -1
  27. package/dist/learning/canary-gate.d.ts +5 -1
  28. package/dist/learning/canary-gate.d.ts.map +1 -1
  29. package/dist/learning/canary-gate.js +5 -2
  30. package/dist/learning/canary-gate.js.map +1 -1
  31. package/dist/learning/dialogue-thread.d.ts +15 -0
  32. package/dist/learning/dialogue-thread.d.ts.map +1 -1
  33. package/dist/learning/dialogue-thread.js +58 -1
  34. package/dist/learning/dialogue-thread.js.map +1 -1
  35. package/dist/learning/episodic-memory.d.ts.map +1 -1
  36. package/dist/learning/episodic-memory.js +19 -3
  37. package/dist/learning/episodic-memory.js.map +1 -1
  38. package/dist/learning/skill-admission.d.ts +55 -10
  39. package/dist/learning/skill-admission.d.ts.map +1 -1
  40. package/dist/learning/skill-admission.js +177 -35
  41. package/dist/learning/skill-admission.js.map +1 -1
  42. package/dist/learning/skill-flywheel.d.ts +24 -6
  43. package/dist/learning/skill-flywheel.d.ts.map +1 -1
  44. package/dist/learning/skill-flywheel.js +99 -19
  45. package/dist/learning/skill-flywheel.js.map +1 -1
  46. package/dist/learning/skill-markdown.d.ts +12 -0
  47. package/dist/learning/skill-markdown.d.ts.map +1 -0
  48. package/dist/learning/skill-markdown.js +226 -0
  49. package/dist/learning/skill-markdown.js.map +1 -0
  50. package/dist/learning/skill-store.d.ts.map +1 -1
  51. package/dist/learning/skill-store.js +23 -4
  52. package/dist/learning/skill-store.js.map +1 -1
  53. package/dist/learning/skill-types.d.ts +10 -0
  54. package/dist/learning/skill-types.d.ts.map +1 -1
  55. package/dist/learning/skill-types.js.map +1 -1
  56. package/dist/learning/turn-distillation.d.ts +16 -0
  57. package/dist/learning/turn-distillation.d.ts.map +1 -0
  58. package/dist/learning/turn-distillation.js +161 -0
  59. package/dist/learning/turn-distillation.js.map +1 -0
  60. package/dist/learning/workflow-skill.d.ts +2 -0
  61. package/dist/learning/workflow-skill.d.ts.map +1 -1
  62. package/dist/learning/workflow-skill.js +15 -0
  63. package/dist/learning/workflow-skill.js.map +1 -1
  64. package/dist/surfaces/cli/index.js +108 -31
  65. package/dist/surfaces/cli/index.js.map +1 -1
  66. package/dist/surfaces/cli/output.d.ts.map +1 -1
  67. package/dist/surfaces/cli/output.js +4 -0
  68. package/dist/surfaces/cli/output.js.map +1 -1
  69. package/dist/surfaces/cli/runtime/dialogue.d.ts +36 -0
  70. package/dist/surfaces/cli/runtime/dialogue.d.ts.map +1 -1
  71. package/dist/surfaces/cli/runtime/dialogue.js +80 -2
  72. package/dist/surfaces/cli/runtime/dialogue.js.map +1 -1
  73. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  74. package/dist/surfaces/cli/runtime/graph.js +14 -10
  75. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  76. package/dist/surfaces/cli/runtime/knowledge.d.ts +37 -0
  77. package/dist/surfaces/cli/runtime/knowledge.d.ts.map +1 -0
  78. package/dist/surfaces/cli/runtime/knowledge.js +162 -0
  79. package/dist/surfaces/cli/runtime/knowledge.js.map +1 -0
  80. package/dist/surfaces/cli/runtime/routing.js +3 -3
  81. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  82. package/dist/surfaces/cli/runtime/types.d.ts +6 -0
  83. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  84. package/dist/surfaces/cli/runtime.d.ts +2 -1
  85. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  86. package/dist/surfaces/cli/runtime.js +7 -1
  87. package/dist/surfaces/cli/runtime.js.map +1 -1
  88. package/dist/surfaces/mcp/server.d.ts +24 -0
  89. package/dist/surfaces/mcp/server.d.ts.map +1 -1
  90. package/dist/surfaces/mcp/server.js +265 -1
  91. package/dist/surfaces/mcp/server.js.map +1 -1
  92. package/dist/surfaces/mcp/tool-definitions.d.ts +1 -0
  93. package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
  94. package/dist/surfaces/mcp/tool-definitions.js +9 -1
  95. package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
  96. package/dist/surfaces/mcp/tool-handlers.d.ts +4 -1
  97. package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
  98. package/dist/surfaces/mcp/tool-handlers.js +69 -19
  99. package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
  100. package/dsh/client.js +431 -0
  101. package/dsh/plugin.mjs +927 -2
  102. package/package.json +14 -3
  103. package/plugin.json +1 -1
  104. package/web/README.md +36 -0
  105. package/web/plugin.mjs +448 -0
@@ -1 +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,SAAS,EAEV,MAAM,eAAe,CAAC;AAQvB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AA6BD,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,CAwDvE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAsCpF;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,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"}
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,SAAS,EAEV,MAAM,eAAe,CAAC;AAQvB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AA6BD,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,CAoEvE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAsCpF;AAeD,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAGrG;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAG1C;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"}
@@ -76,6 +76,16 @@ function parseSkillState(content) {
76
76
  ...(typeof parsed.lastDecayedAt === "number" ? { lastDecayedAt: parsed.lastDecayedAt } : {}),
77
77
  ...(parsed.hasSymbolEvidence === true ? { hasSymbolEvidence: true } : {}),
78
78
  ...(parsed.linkedSuccess === true ? { linkedSuccess: true } : {}),
79
+ ...(typeof parsed.successCount === "number" &&
80
+ Number.isFinite(parsed.successCount) &&
81
+ parsed.successCount > 0
82
+ ? { successCount: parsed.successCount }
83
+ : {}),
84
+ ...(Array.isArray(parsed.successEpisodeIds)
85
+ ? {
86
+ successEpisodeIds: parsed.successEpisodeIds.filter((value) => typeof value === "string"),
87
+ }
88
+ : {}),
79
89
  ...(typeof parsed.failStreak === "number" && parsed.failStreak > 0 ? { failStreak: parsed.failStreak } : {}),
80
90
  ...(parsed.seeded === true ? { seeded: true } : {}),
81
91
  ...(parsed.outcomeKind === "proven" || parsed.outcomeKind === "correctable" || parsed.outcomeKind === "anti-pattern" || parsed.outcomeKind === "noise"
@@ -146,14 +156,23 @@ function parseCompositeState(content) {
146
156
  return undefined;
147
157
  }
148
158
  }
149
- async function readSkillState(client, id) {
159
+ async function findSkillNode(client, id) {
160
+ if (client.getNodesByIds) {
161
+ const directNodes = await client.getNodesByIds([id]);
162
+ const direct = directNodes.find((node) => node.id === id && node.type === "Skill");
163
+ if (direct) {
164
+ return direct;
165
+ }
166
+ }
150
167
  const hits = await client.queryByKeyword(id);
151
- const direct = hits.find((node) => node.id === id && node.type === "Skill");
168
+ return hits.find((node) => node.id === id && node.type === "Skill");
169
+ }
170
+ async function readSkillState(client, id) {
171
+ const direct = await findSkillNode(client, id);
152
172
  return direct ? parseSkillState(direct.content) : undefined;
153
173
  }
154
174
  async function loadCompositeSkill(client, id) {
155
- const hits = await client.queryByKeyword(id);
156
- const direct = hits.find((node) => node.id === id && node.type === "Skill");
175
+ const direct = await findSkillNode(client, id);
157
176
  return direct ? parseCompositeState(direct.content) : undefined;
158
177
  }
159
178
  function composeSkillId(atomA, atomB) {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-store.js","sourceRoot":"","sources":["../../src/learning/skill-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-store.js","sourceRoot":"","sources":["../../src/learning/skill-store.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,16 @@ export interface SkillState {
50
50
  hasSymbolEvidence?: boolean;
51
51
  /** A successful outcome linked to this skill via the episode outcome loop. */
52
52
  linkedSuccess?: boolean;
53
+ /**
54
+ * 真实成功证据链:绑定到本技能且 outcome=pass 的去重 episode 数。
55
+ * proven 准入的主要依据(阈值见 skill-admission 的 DEFAULT_PROVEN_MIN_SUCCESS,
56
+ * 可用 GRAPHFLOW_SKILL_PROVEN_MIN_SUCCESS 覆盖)。仅新增字段,
57
+ * 不改动 uses / linkedSuccess 等既有字段语义;旧数据缺失时按
58
+ * linkedSuccess + provenance.episodeId 迁移为 1。
59
+ */
60
+ successCount?: number;
61
+ /** 已计入 successCount 的 episode id(去重簿记;向后兼容可缺失)。 */
62
+ successEpisodeIds?: string[];
53
63
  /** Consecutive failure count; classified anti-pattern at >= 2. */
54
64
  failStreak?: number;
55
65
  /** Curated baseline written by seedInitialSkills — never pruned as noise. */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../src/learning/skill-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../src/learning/skill-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-types.js","sourceRoot":"","sources":["../../src/learning/skill-types.ts"],"names":[],"mappings":";;;AAuCA,8DAQC;AAGD,4DAiBC;AA7BD,uFAAuF;AACvF,SAAgB,yBAAyB,CAAC,QAA0B;IAClE,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,+CAA+C;AAC/C,SAAgB,wBAAwB,CACtC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,KAAiC,CAAC;IAC9C,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;QACxE,CAAC,CAAC,GAAG,CAAC,MAAM;QACZ,CAAC,CAAC,OAAO,CAAC;IACd,OAAO;QACL,MAAM;QACN,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAC;AACJ,CAAC;AAqEY,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAClC,QAAA,6BAA6B,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"skill-types.js","sourceRoot":"","sources":["../../src/learning/skill-types.ts"],"names":[],"mappings":";;;AAuCA,8DAQC;AAGD,4DAiBC;AA7BD,uFAAuF;AACvF,SAAgB,yBAAyB,CAAC,QAA0B;IAClE,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,+CAA+C;AAC/C,SAAgB,wBAAwB,CACtC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,KAAiC,CAAC;IAC9C,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;QACxE,CAAC,CAAC,GAAG,CAAC,MAAM;QACZ,CAAC,CAAC,OAAO,CAAC;IACd,OAAO;QACL,MAAM;QACN,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAC;AACJ,CAAC;AA+EY,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAClC,QAAA,6BAA6B,GAAG,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Turn distillation: offline, deterministic heuristics that shrink a raw
3
+ * dialogue turn into a short title and a conclusion summary.
4
+ *
5
+ * Pure functions only — no LLM, no I/O, no side effects. Titles strip common
6
+ * greeting/imperative prefixes and keep the first clause; summaries prefer the
7
+ * sentence that carries a conclusion marker and otherwise fall back to the last
8
+ * non-empty paragraph.
9
+ */
10
+ /** Leading greeting / politeness / imperative prefixes stripped from a title. */
11
+ export declare const TITLE_STOP_PREFIXES: string[];
12
+ /** Conclusion markers whose sentence wins over the last-paragraph fallback. */
13
+ export declare const CONCLUSION_MARKERS: string[];
14
+ export declare function deriveTurnTitle(userQuery: string): string;
15
+ export declare function deriveTurnSummary(assistantReply: string): string;
16
+ //# sourceMappingURL=turn-distillation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-distillation.d.ts","sourceRoot":"","sources":["../../src/learning/turn-distillation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAmBvC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAatC,CAAC;AAqFF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAoBhE"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ /**
3
+ * Turn distillation: offline, deterministic heuristics that shrink a raw
4
+ * dialogue turn into a short title and a conclusion summary.
5
+ *
6
+ * Pure functions only — no LLM, no I/O, no side effects. Titles strip common
7
+ * greeting/imperative prefixes and keep the first clause; summaries prefer the
8
+ * sentence that carries a conclusion marker and otherwise fall back to the last
9
+ * non-empty paragraph.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CONCLUSION_MARKERS = exports.TITLE_STOP_PREFIXES = void 0;
13
+ exports.deriveTurnTitle = deriveTurnTitle;
14
+ exports.deriveTurnSummary = deriveTurnSummary;
15
+ /** Leading greeting / politeness / imperative prefixes stripped from a title. */
16
+ exports.TITLE_STOP_PREFIXES = [
17
+ "你好呀",
18
+ "您好呀",
19
+ "你好啊",
20
+ "您好啊",
21
+ "你好",
22
+ "您好",
23
+ "请问",
24
+ "请",
25
+ "帮我看看",
26
+ "帮我看下",
27
+ "帮我",
28
+ "我想要",
29
+ "我想",
30
+ "我要",
31
+ "麻烦你",
32
+ "麻烦您",
33
+ "嗨",
34
+ "哈喽",
35
+ ];
36
+ /** Conclusion markers whose sentence wins over the last-paragraph fallback. */
37
+ exports.CONCLUSION_MARKERS = [
38
+ "综上所述",
39
+ "总而言之",
40
+ "总之",
41
+ "综上",
42
+ "结论",
43
+ "最终",
44
+ "因此",
45
+ "所以",
46
+ "结果是",
47
+ "已完成",
48
+ "已实现",
49
+ "建议",
50
+ ];
51
+ const TITLE_MAX_CHARS = 30;
52
+ const SUMMARY_MAX_CHARS = 200;
53
+ const SENTENCE_SPLIT = /[。!?;!?;\n]+/;
54
+ const CLAUSE_SPLIT = /[,。!?;、]/;
55
+ const LEADING_PUNCT = /^[\s,。!?;、,.!?;:]+/;
56
+ /**
57
+ * Characters that may follow the bare "请" prefix in a polite imperative.
58
+ * This keeps "请帮我 / 请问 / 请说明" stripping while leaving compounds like
59
+ * "请求" or "请假" intact.
60
+ */
61
+ const IMPERATIVE_CONTINUATIONS = new Set([
62
+ "你",
63
+ "您",
64
+ "我",
65
+ "他",
66
+ "她",
67
+ "帮",
68
+ "给",
69
+ "问",
70
+ "告",
71
+ "回",
72
+ "说",
73
+ "解",
74
+ "列",
75
+ "写",
76
+ "生",
77
+ "提",
78
+ "描",
79
+ "处",
80
+ "修",
81
+ "分",
82
+ "总",
83
+ "概",
84
+ "介",
85
+ "查",
86
+ "找",
87
+ ]);
88
+ const SORTED_PREFIXES = [...exports.TITLE_STOP_PREFIXES].sort((a, b) => b.length - a.length);
89
+ function hasContent(text) {
90
+ return /[\p{L}\p{N}]/u.test(text);
91
+ }
92
+ function clip(text, max) {
93
+ const normalized = text.replace(/\s+/g, " ").trim();
94
+ if (normalized.length <= max)
95
+ return normalized;
96
+ return `${normalized.slice(0, max - 1)}…`;
97
+ }
98
+ function canStripPrefix(text, prefix) {
99
+ if (prefix.length === 0 || !text.startsWith(prefix))
100
+ return false;
101
+ if (prefix.length > 1)
102
+ return true;
103
+ // Single-character prefix ("请"): require a polite-imperative continuation so
104
+ // a compound root such as "请求"/"请假" is not mangled.
105
+ const next = text[prefix.length];
106
+ if (next === undefined)
107
+ return true;
108
+ return IMPERATIVE_CONTINUATIONS.has(next) || /[\s,。!?;、,.!?;]/.test(next);
109
+ }
110
+ function stripLeadingPrefixes(text) {
111
+ let current = text;
112
+ let progress = true;
113
+ while (progress) {
114
+ progress = false;
115
+ const withoutPunct = current.replace(LEADING_PUNCT, "");
116
+ if (withoutPunct !== current) {
117
+ current = withoutPunct;
118
+ progress = true;
119
+ continue;
120
+ }
121
+ for (const prefix of SORTED_PREFIXES) {
122
+ if (canStripPrefix(current, prefix)) {
123
+ current = current.slice(prefix.length);
124
+ progress = true;
125
+ break;
126
+ }
127
+ }
128
+ }
129
+ return current;
130
+ }
131
+ function deriveTurnTitle(userQuery) {
132
+ const trimmed = userQuery.trim();
133
+ if (!trimmed || !hasContent(trimmed))
134
+ return "";
135
+ const stripped = stripLeadingPrefixes(trimmed);
136
+ if (!stripped)
137
+ return clip(trimmed, TITLE_MAX_CHARS);
138
+ const firstClause = stripped.split(CLAUSE_SPLIT)[0]?.trim() ?? "";
139
+ return clip(firstClause || stripped, TITLE_MAX_CHARS) || clip(trimmed, TITLE_MAX_CHARS);
140
+ }
141
+ function deriveTurnSummary(assistantReply) {
142
+ const trimmed = assistantReply.trim();
143
+ if (!trimmed || !hasContent(trimmed))
144
+ return "";
145
+ const sentences = trimmed
146
+ .split(SENTENCE_SPLIT)
147
+ .map((part) => part.trim())
148
+ .filter((part) => part.length > 0 && hasContent(part));
149
+ for (const sentence of sentences) {
150
+ if (exports.CONCLUSION_MARKERS.some((marker) => sentence.includes(marker))) {
151
+ return clip(sentence, SUMMARY_MAX_CHARS);
152
+ }
153
+ }
154
+ const paragraphs = trimmed
155
+ .split(/\n+/)
156
+ .map((part) => part.trim())
157
+ .filter((part) => part.length > 0 && hasContent(part));
158
+ const last = paragraphs[paragraphs.length - 1];
159
+ return clip(last ?? trimmed, SUMMARY_MAX_CHARS);
160
+ }
161
+ //# sourceMappingURL=turn-distillation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-distillation.js","sourceRoot":"","sources":["../../src/learning/turn-distillation.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare function workflowSkillId(plan: Array<{
11
11
  /**
12
12
  * Distill a passing multi-step episode plan into a reusable atomic workflow skill.
13
13
  * Never auto-promotes to proven — outcomeKind stays `correctable`.
14
+ * 真实成功证据链:每个 pass episode 绑定一次(按 episode.id 去重)计入
15
+ * successCount,供 proven 准入使用。
14
16
  */
15
17
  export declare function distillWorkflowFromEpisode(client: GraphClient, episode: EpisodeRecord): Promise<string | undefined>;
16
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-skill.d.ts","sourceRoot":"","sources":["../../src/learning/workflow-skill.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAKnE;AAqBD;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB7B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwB5C"}
1
+ {"version":3,"file":"workflow-skill.d.ts","sourceRoot":"","sources":["../../src/learning/workflow-skill.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAKnE;AAqBD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuC7B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwB5C"}
@@ -34,6 +34,8 @@ async function listSkillNodes(client) {
34
34
  /**
35
35
  * Distill a passing multi-step episode plan into a reusable atomic workflow skill.
36
36
  * Never auto-promotes to proven — outcomeKind stays `correctable`.
37
+ * 真实成功证据链:每个 pass episode 绑定一次(按 episode.id 去重)计入
38
+ * successCount,供 proven 准入使用。
37
39
  */
38
40
  async function distillWorkflowFromEpisode(client, episode) {
39
41
  if (episode.outcome !== "pass" || episode.plan.length < 2) {
@@ -41,6 +43,16 @@ async function distillWorkflowFromEpisode(client, episode) {
41
43
  }
42
44
  const id = workflowSkillId(episode.plan);
43
45
  const hasSymbolEvidence = corpusHasSymbolEvidence(episode);
46
+ // 去重累计绑定 pass episode;旧数据按 linkedSuccess + provenance.episodeId 迁移。
47
+ const previous = await (0, skill_store_1.readSkillState)(client, id);
48
+ const boundEpisodeIds = new Set(previous?.successEpisodeIds ?? []);
49
+ if (previous?.successCount === undefined &&
50
+ previous?.linkedSuccess === true &&
51
+ previous?.provenance?.episodeId) {
52
+ boundEpisodeIds.add(previous.provenance.episodeId);
53
+ }
54
+ boundEpisodeIds.add(episode.id);
55
+ const successEpisodeIds = Array.from(boundEpisodeIds);
44
56
  const state = {
45
57
  id,
46
58
  name: `workflow: ${episode.task.slice(0, 60)}`,
@@ -53,6 +65,9 @@ async function distillWorkflowFromEpisode(client, episode) {
53
65
  guidance: numberedGuidance(episode.plan),
54
66
  provenance: { source: "local", episodeId: episode.id },
55
67
  ...(hasSymbolEvidence ? { hasSymbolEvidence: true } : {}),
68
+ ...(successEpisodeIds.length > 0
69
+ ? { successCount: successEpisodeIds.length, successEpisodeIds }
70
+ : {}),
56
71
  };
57
72
  await client.upsertNodes([{ id, type: "Skill", content: (0, skill_store_1.serializeAtomic)(state) }]);
58
73
  await client.upsertEdges([{ from: id, to: episode.id, relation: "derived_from" }]);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-skill.js","sourceRoot":"","sources":["../../src/learning/workflow-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-skill.js","sourceRoot":"","sources":["../../src/learning/workflow-skill.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,24 @@ async function executeCommand(command, args, configPath) {
58
58
  legacyText: `MCP removal complete`,
59
59
  };
60
60
  }
61
+ if (command === "mcp" && args[0] === "serve") {
62
+ if (!args.includes("--http")) {
63
+ console.log("Usage: graphflow mcp serve --http [--host <host>] [--port <port>] [--endpoint </path>] [--stateful] [--sse-only]");
64
+ process.exitCode = 1;
65
+ return undefined;
66
+ }
67
+ const { readMcpHttpOptionsFromArgv, startStreamableHttpServer } = await import("../mcp/server.js");
68
+ const started = await startStreamableHttpServer(undefined, readMcpHttpOptionsFromArgv(["--http", ...args.slice(1)]));
69
+ // The returned listener keeps the event loop alive; data intentionally
70
+ // excludes the Node server so --json remains serializable.
71
+ const { httpServer: _httpServer, close: _close, ...data } = started;
72
+ return {
73
+ command: "mcp-serve",
74
+ data,
75
+ legacyText: `GraphFlow MCP Streamable HTTP listening on ${data.url} ` +
76
+ `(${data.stateful ? "stateful" : "stateless"})`,
77
+ };
78
+ }
61
79
  if (command === "config" && args[0] === "validate") {
62
80
  const data = (0, loader_js_1.validateConfigDetailed)(configPath);
63
81
  return {
@@ -420,6 +438,57 @@ async function executeCommand(command, args, configPath) {
420
438
  ].join("; "),
421
439
  };
422
440
  }
441
+ if (command === "skill" && args[0] === "markdown") {
442
+ const direction = args[1]?.trim().toLowerCase();
443
+ if (direction !== "export" && direction !== "import") {
444
+ console.log("Usage: graphflow skill markdown <export|import> [path] [--force]");
445
+ process.exitCode = 1;
446
+ return undefined;
447
+ }
448
+ const positional = args.slice(2).find((part) => !part.startsWith("--"))?.trim();
449
+ if (direction === "export") {
450
+ const rootDir = (0, output_1.readCliFlagValue)(args, "--root-dir");
451
+ const data = await (0, runtime_1.exportSkillsToMarkdownRuntime)(configPath, {
452
+ ...(positional ? { outputDir: positional } : {}),
453
+ ...(rootDir ? { rootDir } : {}),
454
+ });
455
+ return {
456
+ command: "skill-markdown-export",
457
+ data,
458
+ legacyText: `path=${data.outputDir}; files=${data.fileCount}; bytes=${data.bytes}; compositesSkipped=${data.skippedComposites}`,
459
+ };
460
+ }
461
+ const rootDir = (0, output_1.readCliFlagValue)(args, "--root-dir");
462
+ const data = await (0, runtime_1.importSkillsFromMarkdownRuntime)(configPath, {
463
+ ...(positional ? { inputPath: positional } : {}),
464
+ force: args.includes("--force"),
465
+ ...(rootDir ? { rootDir } : {}),
466
+ });
467
+ return {
468
+ command: "skill-markdown-import",
469
+ data,
470
+ legacyText: `path=${data.inputPath}; imported=${data.imported}; updated=${data.updated}; skipped=${data.skipped}; total=${data.total}`,
471
+ };
472
+ }
473
+ if (command === "knowledge" && (args[0] === "extract" || !args[0])) {
474
+ const limitRaw = (0, output_1.readCliFlagValue)(args, "--limit");
475
+ const limit = limitRaw ? Number.parseInt(limitRaw, 10) : undefined;
476
+ const sessionId = (0, output_1.readCliFlagValue)(args, "--session");
477
+ const rootDir = (0, output_1.readCliFlagValue)(args, "--root-dir");
478
+ const data = await (0, runtime_1.extractDialogueKnowledgeRuntime)(configPath, {
479
+ ...(sessionId ? { sessionId } : {}),
480
+ all: args.includes("--all"),
481
+ apply: !args.includes("--dry-run"),
482
+ ...(rootDir ? { rootDir } : {}),
483
+ ...(limit !== undefined && Number.isFinite(limit) ? { limit } : {}),
484
+ });
485
+ return {
486
+ command: "knowledge-extract",
487
+ data,
488
+ legacyText: `applied=${data.applied}; turns=${data.scannedTurns}; requirements=${data.requirements}; ` +
489
+ `concepts=${data.concepts}; edges=${data.edges}`,
490
+ };
491
+ }
423
492
  if (command === "route" && args[0] === "diagnose") {
424
493
  const data = (0, runtime_1.diagnoseRoutingResult)(configPath);
425
494
  return {
@@ -594,41 +663,32 @@ async function executeCommand(command, args, configPath) {
594
663
  };
595
664
  }
596
665
  if (command === "dialogue" && args[0] === "record") {
597
- const query = (0, output_1.readCliFlagValue)(args, "--query") ??
598
- args
599
- .slice(1)
600
- .filter((part) => !part.startsWith("--"))
601
- .join(" ")
602
- .trim();
666
+ const input = (0, runtime_1.resolveDialogueRecordInput)(args);
667
+ const query = input.query;
603
668
  if (!query) {
604
- const replyOnly = (0, output_1.readCliFlagValue)(args, "--reply");
605
- if (!replyOnly) {
606
- console.log('Usage: graphflow dialogue record --query "<text>" [--reply "<text>"] [--resume-from <turnId>] [--session <name>] [--json] [--config <path>]\n graphflow dialogue record --reply "<text>" (fill pending assistant answer)');
607
- process.exitCode = 1;
608
- return undefined;
669
+ if (input.reply) {
670
+ const data = await (0, runtime_1.recordDialogueTurnRuntime)("", {
671
+ ...(configPath ? { configPath } : {}),
672
+ assistantReply: input.reply,
673
+ ...(input.sessionId ? { sessionId: input.sessionId } : {}),
674
+ });
675
+ return {
676
+ command: "dialogue-record",
677
+ data,
678
+ legacyText: data
679
+ ? `id=${data.id}; seq=${data.seq}; filled=true; q=${data.userQuery}`
680
+ : "skipped",
681
+ };
609
682
  }
610
- const sessionId = (0, output_1.readCliFlagValue)(args, "--session");
611
- const data = await (0, runtime_1.recordDialogueTurnRuntime)("", {
612
- ...(configPath ? { configPath } : {}),
613
- assistantReply: replyOnly,
614
- ...(sessionId ? { sessionId } : {}),
615
- });
616
- return {
617
- command: "dialogue-record",
618
- data,
619
- legacyText: data
620
- ? `id=${data.id}; seq=${data.seq}; filled=true; q=${data.userQuery}`
621
- : "skipped",
622
- };
683
+ console.log('Usage: graphflow dialogue record --query "<text>" [--reply "<text>"] [--resume-from <turnId>] [--session <name>] [--json] [--config <path>]\n graphflow dialogue record --reply "<text>" (fill pending assistant answer)');
684
+ process.exitCode = 1;
685
+ return undefined;
623
686
  }
624
- const reply = (0, output_1.readCliFlagValue)(args, "--reply");
625
- const sessionId = (0, output_1.readCliFlagValue)(args, "--session");
626
- const resumeFrom = (0, output_1.readCliFlagValue)(args, "--resume-from");
627
687
  const data = await (0, runtime_1.recordDialogueTurnRuntime)(query, {
628
688
  ...(configPath ? { configPath } : {}),
629
- ...(reply ? { assistantReply: reply } : {}),
630
- ...(sessionId ? { sessionId } : {}),
631
- ...(resumeFrom ? { resumeFromTurnId: resumeFrom } : {}),
689
+ ...(input.reply ? { assistantReply: input.reply } : {}),
690
+ ...(input.sessionId ? { sessionId: input.sessionId } : {}),
691
+ ...(input.resumeFrom ? { resumeFromTurnId: input.resumeFrom } : {}),
632
692
  });
633
693
  return {
634
694
  command: "dialogue-record",
@@ -638,6 +698,19 @@ async function executeCommand(command, args, configPath) {
638
698
  : "skipped",
639
699
  };
640
700
  }
701
+ if (command === "dialogue" && args[0] === "distill") {
702
+ const all = args.includes("--all");
703
+ const sessionId = (0, output_1.readCliFlagValue)(args, "--session");
704
+ const data = await (0, runtime_1.distillDialogueTurnsRuntime)(configPath, {
705
+ ...(all ? { all: true } : {}),
706
+ ...(sessionId ? { sessionId } : {}),
707
+ });
708
+ return {
709
+ command: "dialogue-distill",
710
+ data,
711
+ legacyText: formatDialogueDistill(data),
712
+ };
713
+ }
641
714
  console.log((0, output_1.buildCliUsage)());
642
715
  process.exitCode = 1;
643
716
  return undefined;
@@ -661,10 +734,14 @@ function formatDialogueList(items) {
661
734
  const lines = [`count=${items.length}`];
662
735
  for (const item of items) {
663
736
  const jump = item.jumped ? `; jump←${item.parentTurnId ?? "?"}` : "";
664
- lines.push(`id=${item.id}; seq=${item.seq}${jump}; q=${item.userQuery}; a=${item.assistantReply || "(pending)"}`);
737
+ const title = item.title ? `; title=${item.title}` : "";
738
+ lines.push(`id=${item.id}; seq=${item.seq}${jump}; q=${item.userQuery}; a=${item.assistantReply || "(pending)"}${title}`);
665
739
  }
666
740
  return lines.join("\n");
667
741
  }
742
+ function formatDialogueDistill(data) {
743
+ return `updated=${data.updated}; unchanged=${data.unchanged}; total=${data.total}`;
744
+ }
668
745
  function formatValidationResult(data) {
669
746
  const lines = [
670
747
  `configPath=${data.configPath}`,