@roarpeng/graphflow 1.12.2 → 1.14.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 (129) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +7 -4
  3. package/README.zh.md +2 -1
  4. package/dist/config/defaults.d.ts.map +1 -1
  5. package/dist/config/defaults.js +2 -1
  6. package/dist/config/defaults.js.map +1 -1
  7. package/dist/config/embedding-factory.d.ts.map +1 -1
  8. package/dist/config/embedding-factory.js +2 -1
  9. package/dist/config/embedding-factory.js.map +1 -1
  10. package/dist/config/embedding-model.d.ts +7 -0
  11. package/dist/config/embedding-model.d.ts.map +1 -0
  12. package/dist/config/embedding-model.js +10 -0
  13. package/dist/config/embedding-model.js.map +1 -0
  14. package/dist/core/types.d.ts +4 -2
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/graph/context-slicer.d.ts.map +1 -1
  17. package/dist/graph/context-slicer.js +102 -0
  18. package/dist/graph/context-slicer.js.map +1 -1
  19. package/dist/graph/engineering-knowledge.d.ts +76 -0
  20. package/dist/graph/engineering-knowledge.d.ts.map +1 -0
  21. package/dist/graph/engineering-knowledge.js +170 -0
  22. package/dist/graph/engineering-knowledge.js.map +1 -0
  23. package/dist/graph/graph-compression.d.ts.map +1 -1
  24. package/dist/graph/graph-compression.js +3 -0
  25. package/dist/graph/graph-compression.js.map +1 -1
  26. package/dist/graph/graph-search.d.ts +26 -0
  27. package/dist/graph/graph-search.d.ts.map +1 -1
  28. package/dist/graph/graph-search.js +80 -0
  29. package/dist/graph/graph-search.js.map +1 -1
  30. package/dist/graph/memory-pack.d.ts +44 -1
  31. package/dist/graph/memory-pack.d.ts.map +1 -1
  32. package/dist/graph/memory-pack.js +134 -4
  33. package/dist/graph/memory-pack.js.map +1 -1
  34. package/dist/graph/snapshot-view.d.ts.map +1 -1
  35. package/dist/graph/snapshot-view.js +2 -0
  36. package/dist/graph/snapshot-view.js.map +1 -1
  37. package/dist/graph/team-governance.d.ts +48 -0
  38. package/dist/graph/team-governance.d.ts.map +1 -0
  39. package/dist/graph/team-governance.js +174 -0
  40. package/dist/graph/team-governance.js.map +1 -0
  41. package/dist/integrations/dsh-harness-installer.d.ts +2 -0
  42. package/dist/integrations/dsh-harness-installer.d.ts.map +1 -1
  43. package/dist/integrations/dsh-harness-installer.js +9 -3
  44. package/dist/integrations/dsh-harness-installer.js.map +1 -1
  45. package/dist/integrations/host-adapter-install.d.ts +19 -0
  46. package/dist/integrations/host-adapter-install.d.ts.map +1 -0
  47. package/dist/integrations/host-adapter-install.js +75 -0
  48. package/dist/integrations/host-adapter-install.js.map +1 -0
  49. package/dist/integrations/host-adapter.d.ts +19 -0
  50. package/dist/integrations/host-adapter.d.ts.map +1 -0
  51. package/dist/integrations/host-adapter.js +32 -0
  52. package/dist/integrations/host-adapter.js.map +1 -0
  53. package/dist/integrations/skill-installer.d.ts.map +1 -1
  54. package/dist/integrations/skill-installer.js +3 -1
  55. package/dist/integrations/skill-installer.js.map +1 -1
  56. package/dist/learning/dialogue-thread.d.ts +152 -0
  57. package/dist/learning/dialogue-thread.d.ts.map +1 -1
  58. package/dist/learning/dialogue-thread.js +439 -1
  59. package/dist/learning/dialogue-thread.js.map +1 -1
  60. package/dist/learning/embeddings.d.ts.map +1 -1
  61. package/dist/learning/embeddings.js +2 -1
  62. package/dist/learning/embeddings.js.map +1 -1
  63. package/dist/learning/episodic-memory.d.ts +4 -1
  64. package/dist/learning/episodic-memory.d.ts.map +1 -1
  65. package/dist/learning/episodic-memory.js +7 -1
  66. package/dist/learning/episodic-memory.js.map +1 -1
  67. package/dist/learning/evidence.d.ts +48 -0
  68. package/dist/learning/evidence.d.ts.map +1 -0
  69. package/dist/learning/evidence.js +112 -0
  70. package/dist/learning/evidence.js.map +1 -0
  71. package/dist/learning/turn-distillation.d.ts +24 -0
  72. package/dist/learning/turn-distillation.d.ts.map +1 -1
  73. package/dist/learning/turn-distillation.js +101 -0
  74. package/dist/learning/turn-distillation.js.map +1 -1
  75. package/dist/security/secure-store.d.ts +13 -0
  76. package/dist/security/secure-store.d.ts.map +1 -0
  77. package/dist/security/secure-store.js +42 -0
  78. package/dist/security/secure-store.js.map +1 -0
  79. package/dist/security/token-auth.d.ts +23 -0
  80. package/dist/security/token-auth.d.ts.map +1 -0
  81. package/dist/security/token-auth.js +86 -0
  82. package/dist/security/token-auth.js.map +1 -0
  83. package/dist/surfaces/cli/index.js +333 -3
  84. package/dist/surfaces/cli/index.js.map +1 -1
  85. package/dist/surfaces/cli/init.d.ts.map +1 -1
  86. package/dist/surfaces/cli/init.js +13 -2
  87. package/dist/surfaces/cli/init.js.map +1 -1
  88. package/dist/surfaces/cli/output.d.ts.map +1 -1
  89. package/dist/surfaces/cli/output.js +7 -2
  90. package/dist/surfaces/cli/output.js.map +1 -1
  91. package/dist/surfaces/cli/runtime/dialogue.d.ts +61 -0
  92. package/dist/surfaces/cli/runtime/dialogue.d.ts.map +1 -1
  93. package/dist/surfaces/cli/runtime/dialogue.js +121 -6
  94. package/dist/surfaces/cli/runtime/dialogue.js.map +1 -1
  95. package/dist/surfaces/cli/runtime/evidence.d.ts +34 -0
  96. package/dist/surfaces/cli/runtime/evidence.d.ts.map +1 -0
  97. package/dist/surfaces/cli/runtime/evidence.js +82 -0
  98. package/dist/surfaces/cli/runtime/evidence.js.map +1 -0
  99. package/dist/surfaces/cli/runtime/governance.d.ts +88 -0
  100. package/dist/surfaces/cli/runtime/governance.d.ts.map +1 -0
  101. package/dist/surfaces/cli/runtime/governance.js +245 -0
  102. package/dist/surfaces/cli/runtime/governance.js.map +1 -0
  103. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  104. package/dist/surfaces/cli/runtime/graph.js +36 -3
  105. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  106. package/dist/surfaces/cli/runtime/routing.d.ts +4 -1
  107. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  108. package/dist/surfaces/cli/runtime/routing.js +6 -2
  109. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  110. package/dist/surfaces/cli/runtime/types.d.ts +8 -0
  111. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  112. package/dist/surfaces/cli/runtime.d.ts +3 -1
  113. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  114. package/dist/surfaces/cli/runtime.js +23 -1
  115. package/dist/surfaces/cli/runtime.js.map +1 -1
  116. package/dist/surfaces/mcp/server.d.ts +7 -0
  117. package/dist/surfaces/mcp/server.d.ts.map +1 -1
  118. package/dist/surfaces/mcp/server.js +74 -5
  119. package/dist/surfaces/mcp/server.js.map +1 -1
  120. package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
  121. package/dist/surfaces/mcp/tool-definitions.js +8 -1
  122. package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
  123. package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
  124. package/dist/surfaces/mcp/tool-handlers.js +22 -1
  125. package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
  126. package/dsh/plugin.mjs +291 -52
  127. package/package.json +10 -6
  128. package/plugin.json +1 -1
  129. package/web/plugin.mjs +45 -2
package/web/plugin.mjs CHANGED
@@ -66,10 +66,12 @@ export function hostHalf() {
66
66
  try {
67
67
  const wb = await runCli("graphflow workbench tree --json", workspaceRoot);
68
68
  const dl = await runCli("graphflow dialogue list --json --limit 50", workspaceRoot);
69
+ const tr = await runCli("graphflow dialogue traces --json --limit 50", workspaceRoot);
69
70
  return {
70
71
  ok: true,
71
72
  workbench: parseCliOut(wb),
72
73
  dialogues: parseCliOut(dl),
74
+ traces: parseCliOut(tr),
73
75
  };
74
76
  } catch (error) {
75
77
  return { ok: false, error: String(error && error.message ? error.message : error) };
@@ -248,8 +250,9 @@ function KnowledgePanel(props) {
248
250
  ? wbData.outlines
249
251
  : [];
250
252
  const dialogues = Array.isArray(data.dialogues) ? data.dialogues : [];
253
+ const traces = Array.isArray(data.traces) ? data.traces : [];
251
254
  const sections = [];
252
- if (outlines.length === 0 && dialogues.length === 0) {
255
+ if (outlines.length === 0 && dialogues.length === 0 && traces.length === 0) {
253
256
  sections.push(
254
257
  React.createElement(
255
258
  "div",
@@ -270,6 +273,14 @@ function KnowledgePanel(props) {
270
273
  if (dialogues.length > 0) {
271
274
  const children = [React.createElement("div", { className: "gf-section-title" }, "对话记录")];
272
275
  for (const turn of dialogues) {
276
+ const badges = [];
277
+ if (turn.jumped) badges.push(React.createElement("span", { key: "j", className: "gf-badge gf-badge-jump" }, "跳转"));
278
+ if (turn.supersedesTurnIds && turn.supersedesTurnIds.length > 0) {
279
+ badges.push(React.createElement("span", { key: "s", className: "gf-badge gf-badge-supersede" }, "修正过结论"));
280
+ }
281
+ if (turn.forkBoundary) {
282
+ badges.push(React.createElement("span", { key: "f", className: "gf-badge" }, "fork"));
283
+ }
273
284
  children.push(
274
285
  React.createElement(
275
286
  "button",
@@ -288,7 +299,7 @@ function KnowledgePanel(props) {
288
299
  { className: "gf-node-label" },
289
300
  clip(turn.title || turn.userQuery, 40)
290
301
  ),
291
- turn.jumped ? React.createElement("span", { className: "gf-badge gf-badge-jump" }, "跳转") : null
302
+ badges
292
303
  ),
293
304
  React.createElement(
294
305
  "div",
@@ -304,6 +315,28 @@ function KnowledgePanel(props) {
304
315
  }
305
316
  sections.push(React.createElement("div", { key: "dialogues" }, children));
306
317
  }
318
+ if (traces.length > 0) {
319
+ const children = [React.createElement("div", { className: "gf-section-title" }, "Agent 轨迹")];
320
+ for (const trace of traces.slice(0, 20)) {
321
+ children.push(
322
+ React.createElement(
323
+ "div",
324
+ { key: trace.id, className: "gf-trace" },
325
+ React.createElement(
326
+ "span",
327
+ { className: "gf-badge" + (trace.status === "failed" ? " gf-badge-jump" : "") },
328
+ trace.status === "failed" ? "失败" : trace.status === "start" ? "启动" : "完成"
329
+ ),
330
+ React.createElement(
331
+ "span",
332
+ { className: "gf-node-preview" },
333
+ `T#${trace.turnSeq} ${clip(trace.label, 48)} · ${new Date(trace.createdAt).toLocaleTimeString()}`
334
+ )
335
+ )
336
+ );
337
+ }
338
+ sections.push(React.createElement("div", { key: "traces" }, children));
339
+ }
307
340
  body = React.createElement("div", { className: "gf-panel-body" }, sections);
308
341
  }
309
342
 
@@ -424,6 +457,16 @@ export const PANEL_CSS = `
424
457
  .gf-badge-active { background: var(--dsw-alias-brand-primary, #4a90d9); color: #fff; }
425
458
  .gf-badge-pending { background: var(--dsw-alias-state-warn-primary, #e0a13c); color: #000; }
426
459
  .gf-badge-jump { background: var(--dsw-alias-state-warn-primary, #e0a13c); color: #000; }
460
+ .gf-badge-supersede { background: var(--dsw-alias-state-ok-primary, #4caf7d); color: #000; }
461
+ .gf-trace {
462
+ display: flex;
463
+ align-items: center;
464
+ gap: 6px;
465
+ padding: 3px 8px;
466
+ margin: 2px 0;
467
+ border-radius: 8px;
468
+ background: rgba(128,128,128,.08);
469
+ }
427
470
  .gf-node-preview {
428
471
  color: var(--dsw-alias-label-secondary, #aaa);
429
472
  font-size: 12px;