@roarpeng/graphflow 1.9.12 → 1.9.14

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 (98) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +33 -0
  3. package/CLAUDE.md +2 -0
  4. package/README.md +49 -8
  5. package/README.zh.md +129 -0
  6. package/cordis.patch.yml +30 -0
  7. package/dist/config/defaults.d.ts.map +1 -1
  8. package/dist/config/defaults.js +1 -0
  9. package/dist/config/defaults.js.map +1 -1
  10. package/dist/config/include-extensions.d.ts +7 -0
  11. package/dist/config/include-extensions.d.ts.map +1 -1
  12. package/dist/config/include-extensions.js +23 -0
  13. package/dist/config/include-extensions.js.map +1 -1
  14. package/dist/config/loader.d.ts.map +1 -1
  15. package/dist/config/loader.js +1 -0
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/schema.d.ts +6 -0
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/graph/snapshot-view.d.ts +4 -0
  20. package/dist/graph/snapshot-view.d.ts.map +1 -1
  21. package/dist/graph/snapshot-view.js +36 -2
  22. package/dist/graph/snapshot-view.js.map +1 -1
  23. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  24. package/dist/integrations/agent-mcp-installer.js +8 -0
  25. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  26. package/dist/integrations/agent-profiles/index.d.ts +2 -0
  27. package/dist/integrations/agent-profiles/index.d.ts.map +1 -1
  28. package/dist/integrations/agent-profiles/index.js +2 -0
  29. package/dist/integrations/agent-profiles/index.js.map +1 -1
  30. package/dist/integrations/agent-profiles/profiles/dsh.d.ts +2 -0
  31. package/dist/integrations/agent-profiles/profiles/dsh.d.ts.map +1 -0
  32. package/dist/integrations/agent-profiles/profiles/dsh.js +16 -0
  33. package/dist/integrations/agent-profiles/profiles/dsh.js.map +1 -0
  34. package/dist/integrations/agent-profiles/skills/dsh.d.ts +2 -0
  35. package/dist/integrations/agent-profiles/skills/dsh.d.ts.map +1 -0
  36. package/dist/integrations/agent-profiles/skills/dsh.js +13 -0
  37. package/dist/integrations/agent-profiles/skills/dsh.js.map +1 -0
  38. package/dist/integrations/dsh-harness-installer.d.ts +49 -0
  39. package/dist/integrations/dsh-harness-installer.d.ts.map +1 -0
  40. package/dist/integrations/dsh-harness-installer.js +193 -0
  41. package/dist/integrations/dsh-harness-installer.js.map +1 -0
  42. package/dist/integrations/ensure-anydoc.d.ts +5 -0
  43. package/dist/integrations/ensure-anydoc.d.ts.map +1 -1
  44. package/dist/integrations/ensure-anydoc.js +7 -0
  45. package/dist/integrations/ensure-anydoc.js.map +1 -1
  46. package/dist/integrations/skill-installer.d.ts.map +1 -1
  47. package/dist/integrations/skill-installer.js +6 -0
  48. package/dist/integrations/skill-installer.js.map +1 -1
  49. package/dist/learning/dialogue-thread.d.ts +88 -0
  50. package/dist/learning/dialogue-thread.d.ts.map +1 -0
  51. package/dist/learning/dialogue-thread.js +419 -0
  52. package/dist/learning/dialogue-thread.js.map +1 -0
  53. package/dist/learning/workbench-topic.d.ts +116 -0
  54. package/dist/learning/workbench-topic.d.ts.map +1 -0
  55. package/dist/learning/workbench-topic.js +642 -0
  56. package/dist/learning/workbench-topic.js.map +1 -0
  57. package/dist/surfaces/cli/index.js +123 -5
  58. package/dist/surfaces/cli/index.js.map +1 -1
  59. package/dist/surfaces/cli/init.d.ts +3 -0
  60. package/dist/surfaces/cli/init.d.ts.map +1 -1
  61. package/dist/surfaces/cli/init.js +36 -3
  62. package/dist/surfaces/cli/init.js.map +1 -1
  63. package/dist/surfaces/cli/output.d.ts.map +1 -1
  64. package/dist/surfaces/cli/output.js +3 -0
  65. package/dist/surfaces/cli/output.js.map +1 -1
  66. package/dist/surfaces/cli/runtime/dialogue.d.ts +23 -0
  67. package/dist/surfaces/cli/runtime/dialogue.d.ts.map +1 -0
  68. package/dist/surfaces/cli/runtime/dialogue.js +50 -0
  69. package/dist/surfaces/cli/runtime/dialogue.js.map +1 -0
  70. package/dist/surfaces/cli/runtime/graph.d.ts +11 -2
  71. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  72. package/dist/surfaces/cli/runtime/graph.js +225 -5
  73. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  74. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  75. package/dist/surfaces/cli/runtime/routing.js +44 -3
  76. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  77. package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -1
  78. package/dist/surfaces/cli/runtime/settings.js +13 -0
  79. package/dist/surfaces/cli/runtime/settings.js.map +1 -1
  80. package/dist/surfaces/cli/runtime/types.d.ts +56 -0
  81. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  82. package/dist/surfaces/cli/runtime.d.ts +2 -1
  83. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  84. package/dist/surfaces/cli/runtime.js +7 -2
  85. package/dist/surfaces/cli/runtime.js.map +1 -1
  86. package/dist/surfaces/cursor-rules/graphflow.mdc +10 -3
  87. package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
  88. package/dist/surfaces/mcp/tool-definitions.js +23 -3
  89. package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
  90. package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
  91. package/dist/surfaces/mcp/tool-handlers.js +27 -3
  92. package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
  93. package/dist/surfaces/trae-skill/graphflow/SKILL.md +50 -5
  94. package/package.json +11 -2
  95. package/plugin.json +27 -4
  96. package/skills/graphflow/SKILL.md +50 -5
  97. package/src/surfaces/cursor-rules/graphflow.mdc +10 -3
  98. package/src/surfaces/trae-skill/graphflow/SKILL.md +50 -5
@@ -31,6 +31,7 @@ function buildCliUsage() {
31
31
  " graph file <path> [--json] [--config <path>]",
32
32
  " graph rebuild [path] [--json] [--config <path>]",
33
33
  " graph inspect [--json] [--config <path>]",
34
+ " workbench tree [--json] [--config <path>] # on-demand function DAG + side branches; click topicId to resume",
34
35
  " artifact export [path] [--no-compress] [--include-episodes] [--json] [--config <path>]",
35
36
  " artifact export-memory [dir] [--json] [--config <path>] # Markdown experience pack (skills + episodes) → graphflow-out/memory-pack/",
36
37
  " artifact import [path] [--json] [--config <path>]",
@@ -51,6 +52,8 @@ function buildCliUsage() {
51
52
  " memory list [--limit N] [--outcome pass|fail|pending] [--json] [--config <path>] # audit episodic memory: evidence records (id, task, outcome, lessons, staleGoal, updatedAt) sorted by updatedAt desc",
52
53
  ' memory search "<query>" [--limit N] [--json] [--config <path>] # semantic similarity over episodes (FNV fallback); per-hit id, task, score, outcome',
53
54
  " memory forget <episodeId> [--json] [--config <path>] # delete a single episode record; unknown id is a clean no-op",
55
+ " dialogue list [--session <name|id>] [--limit N] [--json] [--config <path>] # list conversation-turn graph nodes",
56
+ ' dialogue record --query "<text>" [--reply "<text>"] [--resume-from <turnId>] [--session <name>] [--json] [--config <path>]',
54
57
  " help | --help | -h",
55
58
  " version | --version | -v",
56
59
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/surfaces/cli/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/surfaces/cli/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface DialogueListItem {
2
+ id: string;
3
+ sessionId: string;
4
+ seq: number;
5
+ userQuery: string;
6
+ assistantReply: string;
7
+ jumped: boolean;
8
+ parentTurnId?: string;
9
+ updatedAt: number;
10
+ }
11
+ export declare function listDialogueTurnsRuntime(configPath?: string, options?: {
12
+ sessionId?: string;
13
+ limit?: number;
14
+ rootDir?: string;
15
+ }): Promise<DialogueListItem[]>;
16
+ export declare function recordDialogueTurnRuntime(userQuery: string, options?: {
17
+ configPath?: string;
18
+ rootDir?: string;
19
+ assistantReply?: string;
20
+ sessionId?: string;
21
+ resumeFromTurnId?: string;
22
+ }): Promise<DialogueListItem | undefined>;
23
+ //# sourceMappingURL=dialogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogue.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/dialogue.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAY7B;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcvC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listDialogueTurnsRuntime = listDialogueTurnsRuntime;
4
+ exports.recordDialogueTurnRuntime = recordDialogueTurnRuntime;
5
+ const resolve_1 = require("../../../config/resolve");
6
+ const workspace_root_1 = require("../../../config/workspace-root");
7
+ const client_factory_1 = require("../../../graph/client-factory");
8
+ const dialogue_thread_1 = require("../../../learning/dialogue-thread");
9
+ async function listDialogueTurnsRuntime(configPath, options) {
10
+ const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), options?.rootDir ? { rootDir: options.rootDir } : undefined);
11
+ const client = (0, client_factory_1.createGraphClient)(config);
12
+ const sessionId = resolveSessionId(options?.sessionId, config.graphPolicy.workspaceRoot);
13
+ const turns = await (0, dialogue_thread_1.listDialogueTurns)(client, {
14
+ ...(sessionId ? { sessionId } : {}),
15
+ ...(options?.limit !== undefined ? { limit: options.limit } : { limit: 20 }),
16
+ });
17
+ return turns.map(toListItem);
18
+ }
19
+ async function recordDialogueTurnRuntime(userQuery, options) {
20
+ const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(options?.configPath), options?.rootDir ? { rootDir: options.rootDir } : undefined);
21
+ const client = (0, client_factory_1.createGraphClient)(config);
22
+ const result = await (0, dialogue_thread_1.recordDialogueTurn)(client, {
23
+ userQuery,
24
+ ...(config.graphPolicy.workspaceRoot ? { workspaceRoot: config.graphPolicy.workspaceRoot } : {}),
25
+ ...(options?.assistantReply ? { assistantReply: options.assistantReply } : {}),
26
+ ...(options?.sessionId ? { sessionName: options.sessionId } : {}),
27
+ ...(options?.resumeFromTurnId ? { resumeFromTurnId: options.resumeFromTurnId } : {}),
28
+ });
29
+ return result.turn ? toListItem(result.turn) : undefined;
30
+ }
31
+ function resolveSessionId(raw, workspaceRoot) {
32
+ if (!raw?.trim())
33
+ return undefined;
34
+ if (raw.startsWith("dialogue-session:"))
35
+ return raw;
36
+ return (0, dialogue_thread_1.dialogueSessionIdFor)(raw, workspaceRoot);
37
+ }
38
+ function toListItem(turn) {
39
+ return {
40
+ id: turn.id,
41
+ sessionId: turn.sessionId,
42
+ seq: turn.seq,
43
+ userQuery: turn.userQuery,
44
+ assistantReply: turn.assistantReply,
45
+ jumped: turn.jumped,
46
+ ...(turn.parentTurnId ? { parentTurnId: turn.parentTurnId } : {}),
47
+ updatedAt: turn.updatedAt,
48
+ };
49
+ }
50
+ //# sourceMappingURL=dialogue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogue.js","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/dialogue.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,14 @@
1
1
  import { type GraphClient } from "../../../graph/client-factory";
2
2
  import { GraphFileWatcher } from "../../../graph/file-watcher.js";
3
3
  import type { SkillOutcomeKind } from "../../../learning/skill-types.js";
4
- import type { ContextPreviewResult, ExpandAnchorResult, GraphIndexResult, GraphRebuildResult, GraphSnapshotResult, SkillInsightsResult } from "./types.js";
4
+ import type { CaptureAssistantReplyResult, ContextPreviewResult, ExpandAnchorResult, GraphIndexResult, GraphRebuildResult, GraphSnapshotResult, PreviewDialogueOptions, SkillInsightsResult } from "./types.js";
5
5
  import type { GraphFlowConfig } from "../../../config/schema";
6
- export declare function previewContext(query: string, configPath?: string, rootDir?: string, englishQuery?: string): Promise<ContextPreviewResult>;
6
+ export declare function previewContext(query: string, configPath?: string, rootDir?: string, englishQuery?: string, dialogue?: PreviewDialogueOptions): Promise<ContextPreviewResult>;
7
+ /**
8
+ * Write the original assistant answer onto the pending user turn/topic.
9
+ * Does not run context packaging and does not invent an LLM summary node.
10
+ */
11
+ export declare function captureAssistantReply(assistantReply: string, configPath?: string, rootDir?: string, dialogue?: PreviewDialogueOptions): Promise<CaptureAssistantReplyResult>;
7
12
  export declare function indexGraph(rootDir?: string, configPath?: string, options?: {
8
13
  onProgress?: (processed: number, total: number) => void;
9
14
  }): Promise<GraphIndexResult>;
@@ -29,6 +34,10 @@ export declare function inspectGraph(configPath?: string, options?: {
29
34
  edgeLimit?: number;
30
35
  rootDir?: string;
31
36
  }): Promise<GraphSnapshotResult>;
37
+ export declare function listWorkbenchOutline(configPath?: string, rootDir?: string): Promise<{
38
+ outlines: import("../../../learning/workbench-topic").WorkbenchOutline[];
39
+ lines: string[];
40
+ }>;
32
41
  export declare function getSkillInsights(configPath?: string, limit?: number, rootDir?: string): Promise<SkillInsightsResult>;
33
42
  export interface FlywheelReport {
34
43
  transport: string;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/graph.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.previewContext = previewContext;
4
+ exports.captureAssistantReply = captureAssistantReply;
4
5
  exports.indexGraph = indexGraph;
5
6
  exports.indexFile = indexFile;
6
7
  exports.rebuildGraph = rebuildGraph;
7
8
  exports.inspectGraph = inspectGraph;
9
+ exports.listWorkbenchOutline = listWorkbenchOutline;
8
10
  exports.getSkillInsights = getSkillInsights;
9
11
  exports.getFlywheelReport = getFlywheelReport;
10
12
  exports.exportArtifact = exportArtifact;
@@ -34,6 +36,8 @@ const auto_capture_js_1 = require("../../../hooks/auto-capture.js");
34
36
  const skill_consolidate_js_1 = require("../../../learning/skill-consolidate.js");
35
37
  const skill_store_js_1 = require("../../../learning/skill-store.js");
36
38
  const logger_js_1 = require("../../../utils/logger.js");
39
+ const dialogue_thread_js_1 = require("../../../learning/dialogue-thread.js");
40
+ const workbench_topic_js_1 = require("../../../learning/workbench-topic.js");
37
41
  const env_js_1 = require("./env.js");
38
42
  const helpers_js_1 = require("./helpers.js");
39
43
  const query_translate_js_1 = require("../../../graph/query-translate.js");
@@ -86,15 +90,15 @@ function graphStoreNeedsIndexing(config) {
86
90
  return true;
87
91
  }
88
92
  }
89
- async function previewContext(query, configPath, rootDir, englishQuery) {
93
+ async function previewContext(query, configPath, rootDir, englishQuery, dialogue) {
90
94
  const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), rootDir ? { rootDir } : undefined);
91
95
  const workspaceRoot = config.graphPolicy.workspaceRoot ?? process.cwd();
92
96
  const { getCachedContext, cacheContextResult } = await import("../../../graph/context-cache.js");
93
97
  const cached = getCachedContext(query, workspaceRoot);
98
+ const graphClient = (0, client_factory_1.createGraphClient)(config);
94
99
  if (cached) {
95
- return cached;
100
+ return attachWorkbenchThenDialogue(cached, graphClient, config, query, dialogue);
96
101
  }
97
- const graphClient = (0, client_factory_1.createGraphClient)(config);
98
102
  if (config.graphPolicy.autoIndexOnPreview) {
99
103
  const root = config.graphPolicy.workspaceRoot ?? process.cwd();
100
104
  const indexOptions = config.graphPolicy.includeExtensions
@@ -187,7 +191,185 @@ async function previewContext(query, configPath, rootDir, englishQuery) {
187
191
  ...(queryTranslationDelegation ?? {}),
188
192
  };
189
193
  cacheContextResult(query, workspaceRoot, result);
190
- return result;
194
+ return attachWorkbenchThenDialogue(result, graphClient, config, query, dialogue);
195
+ }
196
+ async function attachWorkbenchThenDialogue(result, client, config, query, dialogue) {
197
+ if (dialogue?.recordDialogue === false) {
198
+ return result;
199
+ }
200
+ const withWorkbench = await attachWorkbenchTopic(result, client, config, query, dialogue);
201
+ if (withWorkbench.workbench) {
202
+ return withWorkbench;
203
+ }
204
+ return attachDialogueThread(result, client, config, query, dialogue);
205
+ }
206
+ async function attachWorkbenchTopic(result, client, config, query, dialogue) {
207
+ try {
208
+ const appended = await (0, workbench_topic_js_1.appendTopicMessage)(client, {
209
+ query,
210
+ ...(config.graphPolicy.workspaceRoot ? { workspaceRoot: config.graphPolicy.workspaceRoot } : {}),
211
+ ...(dialogue?.topicId ? { topicId: dialogue.topicId } : {}),
212
+ ...(dialogue?.assistantReply ? { assistantReply: dialogue.assistantReply } : {}),
213
+ allowAutoFork: !dialogue?.topicId,
214
+ });
215
+ if (!appended) {
216
+ return result;
217
+ }
218
+ const view = await (0, workbench_topic_js_1.loadWorkbenchContext)(client, appended.topic.id);
219
+ if (!view) {
220
+ return result;
221
+ }
222
+ const promptLines = [...view.promptLines];
223
+ if (appended.forked) {
224
+ promptLines.splice(1, 0, `Forked: 当前问法偏离主线,已挂到孤立旁支。点回主线 topicId 可恢复主干。`);
225
+ }
226
+ return {
227
+ ...result,
228
+ summary: [...promptLines, ...result.summary],
229
+ summaryCount: result.summaryCount + promptLines.length,
230
+ workbench: { ...view, promptLines },
231
+ dialogueCapture: {
232
+ kind: "workbench",
233
+ id: appended.topic.id,
234
+ pendingReply: (0, workbench_topic_js_1.topicPendingReply)(appended.topic),
235
+ forked: appended.forked,
236
+ filled: appended.filled,
237
+ },
238
+ };
239
+ }
240
+ catch (error) {
241
+ logger_js_1.logger.warn({ error }, "Workbench topic attach failed");
242
+ return result;
243
+ }
244
+ }
245
+ async function attachDialogueThread(result, client, config, query, dialogue) {
246
+ if (config.graphPolicy.enableDialogueThread === false) {
247
+ return result;
248
+ }
249
+ try {
250
+ const workspaceRoot = config.graphPolicy.workspaceRoot;
251
+ const recorded = dialogue?.recordDialogue !== false
252
+ ? await (0, dialogue_thread_js_1.recordDialogueTurn)(client, {
253
+ userQuery: query,
254
+ ...(workspaceRoot ? { workspaceRoot } : {}),
255
+ ...(dialogue?.sessionId ? { sessionName: dialogue.sessionId } : {}),
256
+ ...(dialogue?.resumeFromTurnId ? { resumeFromTurnId: dialogue.resumeFromTurnId } : {}),
257
+ ...(dialogue?.assistantReply ? { assistantReply: dialogue.assistantReply } : {}),
258
+ relatedNodeIds: result.anchors
259
+ .filter((anchor) => anchor.layer === "L1")
260
+ .slice(0, 6)
261
+ .map((anchor) => anchor.id),
262
+ })
263
+ : undefined;
264
+ const thread = await (0, dialogue_thread_js_1.loadDialogueThread)(client, {
265
+ ...(workspaceRoot ? { workspaceRoot } : {}),
266
+ ...(dialogue?.sessionId ? { sessionName: dialogue.sessionId } : {}),
267
+ });
268
+ if (!thread) {
269
+ return result;
270
+ }
271
+ const priorTokens = thread.turns
272
+ .slice(0, -1)
273
+ .flatMap((turn) => turn.userQuery.toLowerCase().split(/[^a-z0-9_\u4e00-\u9fff]+/))
274
+ .filter((token) => token.length >= 2);
275
+ const overlap = (0, dialogue_thread_js_1.scoreTopicOverlap)(priorTokens, query);
276
+ const jumped = thread.jumped || (thread.turns.length > 1 && overlap < 0.2);
277
+ const promptLines = (0, dialogue_thread_js_1.formatDialogueThreadLines)({ ...thread, jumped, overlap });
278
+ if (jumped && thread.turns.length > 1) {
279
+ promptLines.splice(1, 0, `Alignment: overlap=${Math.round(overlap * 100)}% — 已链入图谱,问法偏离主线。传入 resumeFromTurnId 可从某次对话继续深挖。`);
280
+ }
281
+ const injectSpine = thread.turns.length >= 2;
282
+ const tip = thread.turns[thread.turns.length - 1];
283
+ return {
284
+ ...result,
285
+ ...(injectSpine
286
+ ? {
287
+ summary: [...promptLines, ...result.summary],
288
+ summaryCount: result.summaryCount + promptLines.length,
289
+ }
290
+ : {}),
291
+ dialogueThread: { ...thread, jumped, overlap, promptLines },
292
+ ...(tip
293
+ ? {
294
+ dialogueCapture: {
295
+ kind: "turn",
296
+ id: tip.id,
297
+ pendingReply: !tip.assistantReply.trim(),
298
+ filled: recorded?.reused === true && Boolean(dialogue?.assistantReply?.trim()),
299
+ },
300
+ }
301
+ : {}),
302
+ };
303
+ }
304
+ catch (error) {
305
+ logger_js_1.logger.warn({ error }, "Dialogue thread attach failed");
306
+ return result;
307
+ }
308
+ }
309
+ /**
310
+ * Write the original assistant answer onto the pending user turn/topic.
311
+ * Does not run context packaging and does not invent an LLM summary node.
312
+ */
313
+ async function captureAssistantReply(assistantReply, configPath, rootDir, dialogue) {
314
+ const reply = assistantReply.trim();
315
+ if (reply.length < 1) {
316
+ return { ok: false, filled: false, reason: "reply-empty" };
317
+ }
318
+ const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), rootDir ? { rootDir } : undefined);
319
+ const client = (0, client_factory_1.createGraphClient)(config);
320
+ const workspaceRoot = config.graphPolicy.workspaceRoot;
321
+ try {
322
+ const appended = await (0, workbench_topic_js_1.appendTopicMessage)(client, {
323
+ query: "",
324
+ assistantReply: reply,
325
+ ...(workspaceRoot ? { workspaceRoot } : {}),
326
+ ...(dialogue?.topicId ? { topicId: dialogue.topicId } : {}),
327
+ allowAutoFork: false,
328
+ });
329
+ if (appended) {
330
+ return {
331
+ ok: true,
332
+ filled: appended.filled,
333
+ capture: {
334
+ kind: "workbench",
335
+ id: appended.topic.id,
336
+ pendingReply: (0, workbench_topic_js_1.topicPendingReply)(appended.topic),
337
+ filled: appended.filled,
338
+ },
339
+ };
340
+ }
341
+ }
342
+ catch (error) {
343
+ logger_js_1.logger.warn({ error }, "Workbench reply capture failed");
344
+ }
345
+ if (config.graphPolicy.enableDialogueThread === false) {
346
+ return { ok: false, filled: false, reason: "no-pending-turn" };
347
+ }
348
+ try {
349
+ const recorded = await (0, dialogue_thread_js_1.recordDialogueTurn)(client, {
350
+ userQuery: "",
351
+ assistantReply: reply,
352
+ ...(workspaceRoot ? { workspaceRoot } : {}),
353
+ ...(dialogue?.sessionId ? { sessionName: dialogue.sessionId } : {}),
354
+ });
355
+ if (recorded.recorded && recorded.turn) {
356
+ return {
357
+ ok: true,
358
+ filled: recorded.reused,
359
+ capture: {
360
+ kind: "turn",
361
+ id: recorded.turn.id,
362
+ pendingReply: !recorded.turn.assistantReply.trim(),
363
+ filled: recorded.reused,
364
+ },
365
+ };
366
+ }
367
+ return { ok: false, filled: false, reason: recorded.skipped ?? "no-pending-turn" };
368
+ }
369
+ catch (error) {
370
+ logger_js_1.logger.warn({ error }, "Dialogue reply capture failed");
371
+ return { ok: false, filled: false, reason: "capture-failed" };
372
+ }
191
373
  }
192
374
  async function indexGraph(rootDir, configPath, options) {
193
375
  const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), rootDir ? { rootDir } : undefined);
@@ -267,6 +449,7 @@ async function inspectGraph(configPath, options) {
267
449
  topRelations: [],
268
450
  sampleNodes: [],
269
451
  sampleEdges: [],
452
+ workbenchOutline: [],
270
453
  };
271
454
  }
272
455
  let store = (0, helpers_js_1.loadGraphStore)(config);
@@ -299,8 +482,15 @@ async function inspectGraph(configPath, options) {
299
482
  .sort((a, b) => b.count - a.count || a.relation.localeCompare(b.relation))
300
483
  .slice(0, 8),
301
484
  ...(0, snapshot_view_js_1.sampleGraphForSnapshot)(store.nodes, store.edges, nodeLimit, edgeLimit, config.graphPolicy.workspaceRoot ?? process.cwd()),
485
+ workbenchOutline: (0, workbench_topic_js_1.buildWorkbenchOutlines)(store.nodes, store.edges),
302
486
  };
303
487
  }
488
+ async function listWorkbenchOutline(configPath, rootDir) {
489
+ const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), rootDir ? { rootDir } : undefined);
490
+ const client = (0, client_factory_1.createGraphClient)(config);
491
+ const outlines = await (0, workbench_topic_js_1.loadWorkbenchOutlines)(client);
492
+ return { outlines, lines: (0, workbench_topic_js_1.formatWorkbenchOutlineLines)(outlines) };
493
+ }
304
494
  async function getSkillInsights(configPath, limit = 12, rootDir) {
305
495
  const config = (0, workspace_root_1.bindRuntimeWorkspaceRoot)((0, resolve_1.resolveConfig)(configPath), rootDir ? { rootDir } : undefined);
306
496
  const boundedLimit = Math.max(1, limit);
@@ -729,7 +919,7 @@ async function expandAnchor(anchorId, configPath, rootDir) {
729
919
  }
730
920
  }
731
921
  }
732
- return {
922
+ const expanded = {
733
923
  anchorId: node.id,
734
924
  type: node.type,
735
925
  content: node.content,
@@ -738,6 +928,36 @@ async function expandAnchor(anchorId, configPath, rootDir) {
738
928
  ...(sourceSnippet ? { sourceSnippet } : {}),
739
929
  ...(node.metadata ? { metadata: node.metadata } : {}),
740
930
  };
931
+ if ((0, workbench_topic_js_1.isWorkbenchTopicNode)(node)) {
932
+ const topic = (0, workbench_topic_js_1.parseWorkbenchTopic)(node);
933
+ const view = topic ? await (0, workbench_topic_js_1.loadWorkbenchContext)(graphClient, topic.id) : undefined;
934
+ if (view) {
935
+ expanded.content = view.promptLines.join("\n");
936
+ expanded.metadata = {
937
+ ...(expanded.metadata ?? {}),
938
+ workbench: view,
939
+ topicId: view.active.id,
940
+ };
941
+ }
942
+ }
943
+ else if ((0, dialogue_thread_js_1.isDialogueTurnNode)(node)) {
944
+ const turn = (0, dialogue_thread_js_1.parseDialogueTurn)(node);
945
+ const thread = await (0, dialogue_thread_js_1.loadDialogueThread)(graphClient, {
946
+ ...(turn?.sessionId ? { sessionId: turn.sessionId } : {}),
947
+ ...(config.graphPolicy.workspaceRoot ? { workspaceRoot: config.graphPolicy.workspaceRoot } : {}),
948
+ });
949
+ if (thread) {
950
+ expanded.dialogueThread = thread;
951
+ expanded.content = [
952
+ `Dialogue turn #${turn?.seq ?? "?"} (${turn?.jumped ? "jump" : "mainline"})`,
953
+ `Q: ${turn?.userQuery ?? node.content}`,
954
+ `A: ${turn?.assistantReply?.trim() ? turn.assistantReply : "(pending)"}`,
955
+ `resumeFromTurnId: ${node.id}`,
956
+ ...thread.promptLines,
957
+ ].join("\n");
958
+ }
959
+ }
960
+ return expanded;
741
961
  }
742
962
  /**
743
963
  * Start a file watcher for auto-indexing on save when `autoIndexOnSave` is enabled.