@roarpeng/graphflow 1.9.13 → 1.9.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.
- package/AGENTS.md +2 -0
- package/CHANGELOG.md +43 -0
- package/CLAUDE.md +2 -0
- package/README.md +63 -9
- package/README.zh.md +137 -0
- package/cordis.patch.yml +42 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +1 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +6 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/graph/context-slicer-types.d.ts +7 -1
- package/dist/graph/context-slicer-types.d.ts.map +1 -1
- package/dist/graph/context-slicer-types.js.map +1 -1
- package/dist/graph/context-slicer.d.ts +6 -1
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +120 -39
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/snapshot-view.d.ts +4 -0
- package/dist/graph/snapshot-view.d.ts.map +1 -1
- package/dist/graph/snapshot-view.js +36 -2
- package/dist/graph/snapshot-view.js.map +1 -1
- package/dist/graph/token-savings.d.ts +13 -0
- package/dist/graph/token-savings.d.ts.map +1 -1
- package/dist/graph/token-savings.js +36 -6
- package/dist/graph/token-savings.js.map +1 -1
- package/dist/hooks/auto-capture.d.ts +3 -2
- package/dist/hooks/auto-capture.d.ts.map +1 -1
- package/dist/hooks/auto-capture.js +3 -2
- package/dist/hooks/auto-capture.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +8 -0
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/integrations/agent-profiles/index.d.ts +2 -0
- package/dist/integrations/agent-profiles/index.d.ts.map +1 -1
- package/dist/integrations/agent-profiles/index.js +2 -0
- package/dist/integrations/agent-profiles/index.js.map +1 -1
- package/dist/integrations/agent-profiles/profiles/dsh.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/dsh.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/dsh.js +16 -0
- package/dist/integrations/agent-profiles/profiles/dsh.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/dsh.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/dsh.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/dsh.js +13 -0
- package/dist/integrations/agent-profiles/skills/dsh.js.map +1 -0
- package/dist/integrations/claude-code-hooks.d.ts +6 -3
- package/dist/integrations/claude-code-hooks.d.ts.map +1 -1
- package/dist/integrations/claude-code-hooks.js +20 -8
- package/dist/integrations/claude-code-hooks.js.map +1 -1
- package/dist/integrations/dsh-harness-installer.d.ts +53 -0
- package/dist/integrations/dsh-harness-installer.d.ts.map +1 -0
- package/dist/integrations/dsh-harness-installer.js +211 -0
- package/dist/integrations/dsh-harness-installer.js.map +1 -0
- package/dist/integrations/skill-installer.d.ts.map +1 -1
- package/dist/integrations/skill-installer.js +6 -0
- package/dist/integrations/skill-installer.js.map +1 -1
- package/dist/learning/canary-gate.d.ts +5 -2
- package/dist/learning/canary-gate.d.ts.map +1 -1
- package/dist/learning/canary-gate.js +11 -3
- package/dist/learning/canary-gate.js.map +1 -1
- package/dist/learning/dialogue-thread.d.ts +88 -0
- package/dist/learning/dialogue-thread.d.ts.map +1 -0
- package/dist/learning/dialogue-thread.js +419 -0
- package/dist/learning/dialogue-thread.js.map +1 -0
- package/dist/learning/episodic-memory.d.ts +16 -0
- package/dist/learning/episodic-memory.d.ts.map +1 -1
- package/dist/learning/episodic-memory.js +61 -1
- package/dist/learning/episodic-memory.js.map +1 -1
- package/dist/learning/skill-admission.d.ts +38 -0
- package/dist/learning/skill-admission.d.ts.map +1 -0
- package/dist/learning/skill-admission.js +195 -0
- package/dist/learning/skill-admission.js.map +1 -0
- package/dist/learning/skill-consolidate.d.ts +4 -1
- package/dist/learning/skill-consolidate.d.ts.map +1 -1
- package/dist/learning/skill-consolidate.js +56 -6
- package/dist/learning/skill-consolidate.js.map +1 -1
- package/dist/learning/skill-flywheel.d.ts +8 -2
- package/dist/learning/skill-flywheel.d.ts.map +1 -1
- package/dist/learning/skill-flywheel.js +65 -38
- package/dist/learning/skill-flywheel.js.map +1 -1
- package/dist/learning/skill-opt-lite.d.ts +17 -0
- package/dist/learning/skill-opt-lite.d.ts.map +1 -1
- package/dist/learning/skill-opt-lite.js +108 -0
- package/dist/learning/skill-opt-lite.js.map +1 -1
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +44 -4
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/skill-types.d.ts +15 -0
- package/dist/learning/skill-types.d.ts.map +1 -1
- package/dist/learning/skill-types.js +11 -0
- package/dist/learning/skill-types.js.map +1 -1
- package/dist/learning/workbench-topic.d.ts +116 -0
- package/dist/learning/workbench-topic.d.ts.map +1 -0
- package/dist/learning/workbench-topic.js +642 -0
- package/dist/learning/workbench-topic.js.map +1 -0
- package/dist/learning/workflow-skill.d.ts +25 -0
- package/dist/learning/workflow-skill.d.ts.map +1 -0
- package/dist/learning/workflow-skill.js +91 -0
- package/dist/learning/workflow-skill.js.map +1 -0
- package/dist/surfaces/cli/index.js +124 -6
- package/dist/surfaces/cli/index.js.map +1 -1
- package/dist/surfaces/cli/init.d.ts +3 -0
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +44 -3
- package/dist/surfaces/cli/init.js.map +1 -1
- package/dist/surfaces/cli/output.d.ts.map +1 -1
- package/dist/surfaces/cli/output.js +4 -1
- package/dist/surfaces/cli/output.js.map +1 -1
- package/dist/surfaces/cli/runtime/dialogue.d.ts +23 -0
- package/dist/surfaces/cli/runtime/dialogue.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/dialogue.js +50 -0
- package/dist/surfaces/cli/runtime/dialogue.js.map +1 -0
- package/dist/surfaces/cli/runtime/graph.d.ts +24 -22
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +284 -26
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/memory.d.ts +7 -6
- package/dist/surfaces/cli/runtime/memory.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/memory.js +12 -21
- package/dist/surfaces/cli/runtime/memory.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +4 -1
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +54 -7
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +63 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +2 -1
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +7 -2
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/cursor-rules/graphflow.mdc +10 -3
- package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.js +24 -4
- package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.js +27 -3
- package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
- package/dist/surfaces/trae-skill/graphflow/SKILL.md +51 -5
- package/dsh/plugin.mjs +255 -0
- package/package.json +20 -2
- package/plugin.json +27 -4
- package/skills/graphflow/SKILL.md +51 -5
- package/src/surfaces/cursor-rules/graphflow.mdc +10 -3
- package/src/surfaces/trae-skill/graphflow/SKILL.md +51 -5
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
*
|
|
9
9
|
* 1. SessionStart → 初始化会话日志目录(不写图)。
|
|
10
10
|
* 2. SessionEnd / Stop → 读取 src/hooks/auto-capture.ts 写入的最新 pending episode
|
|
11
|
-
*
|
|
11
|
+
* 日志条目;仅当成功值作为显式参数传入时才调用
|
|
12
|
+
* `graphflow outcome report <episodeId> <success>` 回填真实结局
|
|
12
13
|
* (回填后触发 updateEpisodeOutcome + applySkillLearning,与手动 report_outcome 等价)。
|
|
14
|
+
* 缺省成功值时不回填,episode 保持 pending(绝不默认 success)。
|
|
13
15
|
*
|
|
14
16
|
* 安全:所有嵌入脚本的路径/命令均做 shell 转义(单引号包裹 + 双引号内 fallback 转义),
|
|
15
17
|
* 由 installClaudeCodeHooks 写盘;合并 settings.json 时绝不覆盖用户已有 hooks 配置。
|
|
@@ -28,7 +30,7 @@ export interface ClaudeCodeHooksOptions {
|
|
|
28
30
|
hooksDir?: string;
|
|
29
31
|
/** 目标 settings.json 路径(默认 ~/.claude/settings.json)。 */
|
|
30
32
|
settingsPath?: string;
|
|
31
|
-
/** 会话结束默认成功值(默认
|
|
33
|
+
/** 会话结束默认成功值(默认 false)。false/缺省时 $2 为空则不回填,episode 保持 pending。 */
|
|
32
34
|
defaultSuccess?: boolean;
|
|
33
35
|
/** hook 超时秒数(默认 30)。 */
|
|
34
36
|
timeoutSec?: number;
|
|
@@ -79,7 +81,8 @@ export declare function settingsReferenceHookScript(raw: string, scriptPath: str
|
|
|
79
81
|
export declare function getClaudeCodeHooksStatus(options?: ClaudeCodeHooksStatusOptions): ClaudeCodeHooksStatus;
|
|
80
82
|
/**
|
|
81
83
|
* 生成会话 hook 脚本内容(bash)。`start` 仅准备目录;`end` 解析会话日志中
|
|
82
|
-
* 最新一条 pending episode
|
|
84
|
+
* 最新一条 pending episode。成功值不默认 true:`$2` 为空则跳过回填(episode 保持
|
|
85
|
+
* pending);显式 true/false 才调用 graphflow CLI 回填。
|
|
83
86
|
* 所有嵌入路径均做 shell 转义;失败静默(exit 0),绝不阻塞 Claude Code 会话。
|
|
84
87
|
*/
|
|
85
88
|
export declare function buildSessionHookScript(options?: ClaudeCodeHooksOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-hooks.d.ts","sourceRoot":"","sources":["../../src/integrations/claude-code-hooks.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"claude-code-hooks.d.ts","sourceRoot":"","sources":["../../src/integrations/claude-code-hooks.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CACZ,MAAM,CAAC,cAAc,GAAG,YAAY,GAAG,MAAM,EAAE,mBAAmB,EAAE,CAAC,CACtE,CAAC;CACH;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAOD,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAI9E;AAOD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAgCpF;AAUD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,4BAAiC,GACzC,qBAAqB,CAwBvB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,CAgDnF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAcvB;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CA+BvB;AAuDD,mDAAmD;AACnD,wBAAgB,wBAAwB,CACtC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,qBAAqB,CAgDvB"}
|
|
@@ -22,8 +22,10 @@ const node_path_1 = require("node:path");
|
|
|
22
22
|
*
|
|
23
23
|
* 1. SessionStart → 初始化会话日志目录(不写图)。
|
|
24
24
|
* 2. SessionEnd / Stop → 读取 src/hooks/auto-capture.ts 写入的最新 pending episode
|
|
25
|
-
*
|
|
25
|
+
* 日志条目;仅当成功值作为显式参数传入时才调用
|
|
26
|
+
* `graphflow outcome report <episodeId> <success>` 回填真实结局
|
|
26
27
|
* (回填后触发 updateEpisodeOutcome + applySkillLearning,与手动 report_outcome 等价)。
|
|
28
|
+
* 缺省成功值时不回填,episode 保持 pending(绝不默认 success)。
|
|
27
29
|
*
|
|
28
30
|
* 安全:所有嵌入脚本的路径/命令均做 shell 转义(单引号包裹 + 双引号内 fallback 转义),
|
|
29
31
|
* 由 installClaudeCodeHooks 写盘;合并 settings.json 时绝不覆盖用户已有 hooks 配置。
|
|
@@ -128,23 +130,27 @@ function getClaudeCodeHooksStatus(options = {}) {
|
|
|
128
130
|
}
|
|
129
131
|
/**
|
|
130
132
|
* 生成会话 hook 脚本内容(bash)。`start` 仅准备目录;`end` 解析会话日志中
|
|
131
|
-
* 最新一条 pending episode
|
|
133
|
+
* 最新一条 pending episode。成功值不默认 true:`$2` 为空则跳过回填(episode 保持
|
|
134
|
+
* pending);显式 true/false 才调用 graphflow CLI 回填。
|
|
132
135
|
* 所有嵌入路径均做 shell 转义;失败静默(exit 0),绝不阻塞 Claude Code 会话。
|
|
133
136
|
*/
|
|
134
137
|
function buildSessionHookScript(options = {}) {
|
|
135
138
|
const journal = options.journalPath ?? `\${CLAUDE_PROJECT_DIR:-.}/${JOURNAL_RELATIVE}`;
|
|
136
139
|
const bin = options.graphflowBin ?? "graphflow";
|
|
137
140
|
const config = options.configPath ?? "";
|
|
138
|
-
const
|
|
141
|
+
const defaultSuccess = options.defaultSuccess ?? false;
|
|
142
|
+
const successFallback = defaultSuccess ? "true" : "";
|
|
139
143
|
const lines = [
|
|
140
144
|
"#!/usr/bin/env bash",
|
|
141
145
|
"# GraphFlow auto-capture session hook (generated by graphflow, do not edit).",
|
|
142
146
|
"# Resolves the most recent pending episode (src/hooks/auto-capture.ts) at",
|
|
143
|
-
"# SessionEnd/Stop
|
|
147
|
+
"# SessionEnd/Stop. Does not default pending episodes to success.",
|
|
148
|
+
"# Missing $2 skips outcome report (episode stays pending).",
|
|
149
|
+
"# Explicit $2 true/false calls: graphflow outcome report <episodeId> <success>",
|
|
144
150
|
"# Runtime overrides: GRAPHFLOW_HOOK_JOURNAL / GRAPHFLOW_HOOK_BIN / GRAPHFLOW_HOOK_CONFIG.",
|
|
145
151
|
"set -u",
|
|
146
152
|
'ACTION="${1:-end}"',
|
|
147
|
-
`SUCCESS="\${2:-${
|
|
153
|
+
`SUCCESS="\${2:-${successFallback}}"`,
|
|
148
154
|
`JOURNAL="\${GRAPHFLOW_HOOK_JOURNAL:-${shellFallback(journal)}}"`,
|
|
149
155
|
`GF_BIN="\${GRAPHFLOW_HOOK_BIN:-${shellFallback(bin)}}"`,
|
|
150
156
|
`GF_CONFIG="\${GRAPHFLOW_HOOK_CONFIG:-${shellFallback(config)}}"`,
|
|
@@ -163,9 +169,15 @@ function buildSessionHookScript(options = {}) {
|
|
|
163
169
|
'EPID="$(printf "%s" "$LINE" | sed -n \'s/.*"episodeId":[[:space:]]*"\\([^"]*\\)".*/\\1/p\')"',
|
|
164
170
|
'[ -n "$EPID" ] || exit 0',
|
|
165
171
|
"",
|
|
166
|
-
|
|
167
|
-
'[ -n "$
|
|
168
|
-
'
|
|
172
|
+
"# Skip outcome report unless success is an explicit true/false argument.",
|
|
173
|
+
'[ -n "$SUCCESS" ] || exit 0',
|
|
174
|
+
'case "$SUCCESS" in',
|
|
175
|
+
" true|false)",
|
|
176
|
+
' ARGS=(outcome report "$EPID" "$SUCCESS")',
|
|
177
|
+
' [ -n "$GF_CONFIG" ] && ARGS+=(--config "$GF_CONFIG")',
|
|
178
|
+
' "$GF_BIN" "${ARGS[@]}" >/dev/null 2>&1 || true',
|
|
179
|
+
" ;;",
|
|
180
|
+
"esac",
|
|
169
181
|
"exit 0",
|
|
170
182
|
"",
|
|
171
183
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-hooks.js","sourceRoot":"","sources":["../../src/integrations/claude-code-hooks.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"claude-code-hooks.js","sourceRoot":"","sources":["../../src/integrations/claude-code-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const DSH_HOME_ENV = "GRAPHFLOW_DSH_HOME";
|
|
2
|
+
export declare const DSH_MCP_ROW_ID = "mcp-graphflow";
|
|
3
|
+
export declare const DSH_GLUE_ROW_ID = "graphflow-dsh";
|
|
4
|
+
export declare const DSH_GLUE_PACKAGE = "@roarpeng/graphflow/dsh";
|
|
5
|
+
export declare const DSH_PATCH_BEGIN = "# GRAPHFLOW-DSH-BEGIN";
|
|
6
|
+
export declare const DSH_PATCH_END = "# GRAPHFLOW-DSH-END";
|
|
7
|
+
export interface DshHarnessPaths {
|
|
8
|
+
dshHome: string;
|
|
9
|
+
patchPath: string;
|
|
10
|
+
skillsRoot: string;
|
|
11
|
+
skillPath: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DshHarnessStatus {
|
|
14
|
+
agent: string;
|
|
15
|
+
detected: boolean;
|
|
16
|
+
installed: boolean;
|
|
17
|
+
glueInstalled: boolean;
|
|
18
|
+
skillInstalled: boolean;
|
|
19
|
+
dshHome: string;
|
|
20
|
+
patchPath: string;
|
|
21
|
+
skillPath: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DshHarnessInstallResult {
|
|
24
|
+
status: "created" | "updated" | "skipped" | "error";
|
|
25
|
+
filePath?: string;
|
|
26
|
+
message?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Resolve DeepSeek Harness home: GRAPHFLOW_DSH_HOME, else DSH_HOME, else ~/.dsh. */
|
|
29
|
+
export declare function resolveDshHome(override?: string): string;
|
|
30
|
+
export declare function getDshHarnessPaths(dshHome?: string): DshHarnessPaths;
|
|
31
|
+
export declare function isDshHarnessDetected(dshHome?: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The insert layer GraphFlow contributes as a dsh bundle.
|
|
34
|
+
* Keep in sync with repo-root `cordis.patch.yml` (asserted by tests).
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildGraphFlowDshInsertPatch(): string;
|
|
37
|
+
export declare function wrapDshManagedPatch(insertPatch?: string): string;
|
|
38
|
+
export declare function patchContainsGraphFlowDsh(content: string): boolean;
|
|
39
|
+
export declare function patchContainsGraphFlowDshGlue(content: string): boolean;
|
|
40
|
+
export declare function removeManagedDshPatch(content: string): {
|
|
41
|
+
next: string;
|
|
42
|
+
removed: boolean;
|
|
43
|
+
};
|
|
44
|
+
export declare function getDshHarnessStatus(options?: {
|
|
45
|
+
dshHome?: string;
|
|
46
|
+
}): DshHarnessStatus;
|
|
47
|
+
export declare function installDshHarness(options?: {
|
|
48
|
+
dshHome?: string;
|
|
49
|
+
}): DshHarnessInstallResult;
|
|
50
|
+
export declare function uninstallDshHarness(options?: {
|
|
51
|
+
dshHome?: string;
|
|
52
|
+
}): DshHarnessInstallResult;
|
|
53
|
+
//# sourceMappingURL=dsh-harness-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh-harness-installer.d.ts","sourceRoot":"","sources":["../../src/integrations/dsh-harness-installer.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAmB,GAAG,eAAe,CAQ9E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,SAAmB,GAAG,OAAO,CAExE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAsBrD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAuC,GAAG,MAAM,CAEhG;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKtE;AAwBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CASzF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,gBAAgB,CAyBxF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,uBAAuB,CA2B7F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,uBAAuB,CA6B/F"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DSH_PATCH_END = exports.DSH_PATCH_BEGIN = exports.DSH_GLUE_PACKAGE = exports.DSH_GLUE_ROW_ID = exports.DSH_MCP_ROW_ID = exports.DSH_HOME_ENV = void 0;
|
|
4
|
+
exports.resolveDshHome = resolveDshHome;
|
|
5
|
+
exports.getDshHarnessPaths = getDshHarnessPaths;
|
|
6
|
+
exports.isDshHarnessDetected = isDshHarnessDetected;
|
|
7
|
+
exports.buildGraphFlowDshInsertPatch = buildGraphFlowDshInsertPatch;
|
|
8
|
+
exports.wrapDshManagedPatch = wrapDshManagedPatch;
|
|
9
|
+
exports.patchContainsGraphFlowDsh = patchContainsGraphFlowDsh;
|
|
10
|
+
exports.patchContainsGraphFlowDshGlue = patchContainsGraphFlowDshGlue;
|
|
11
|
+
exports.removeManagedDshPatch = removeManagedDshPatch;
|
|
12
|
+
exports.getDshHarnessStatus = getDshHarnessStatus;
|
|
13
|
+
exports.installDshHarness = installDshHarness;
|
|
14
|
+
exports.uninstallDshHarness = uninstallDshHarness;
|
|
15
|
+
/**
|
|
16
|
+
* DeepSeek Harness (dsh) installer — home-level cordis.patch.yml overlay.
|
|
17
|
+
*
|
|
18
|
+
* GraphFlow ships as a dsh bundle (`dsh.bundle` + `cordis.patch.yml`). Users can:
|
|
19
|
+
* dsh plugin --profile web add @roarpeng/graphflow
|
|
20
|
+
*
|
|
21
|
+
* `graphflow install` also writes the same MCP + glue insert into `$DSH_HOME/cordis.patch.yml`
|
|
22
|
+
* (shared by every profile) when ~/.dsh (or DSH_HOME / GRAPHFLOW_DSH_HOME) exists.
|
|
23
|
+
* Skills go to `$DSH_HOME/skills/graphflow/SKILL.md` via skill-installer targets;
|
|
24
|
+
* the bundle glue also registers the skill at runtime so `dsh plugin add` is enough.
|
|
25
|
+
*/
|
|
26
|
+
const node_fs_1 = require("node:fs");
|
|
27
|
+
const node_os_1 = require("node:os");
|
|
28
|
+
const node_path_1 = require("node:path");
|
|
29
|
+
exports.DSH_HOME_ENV = "GRAPHFLOW_DSH_HOME";
|
|
30
|
+
exports.DSH_MCP_ROW_ID = "mcp-graphflow";
|
|
31
|
+
exports.DSH_GLUE_ROW_ID = "graphflow-dsh";
|
|
32
|
+
exports.DSH_GLUE_PACKAGE = "@roarpeng/graphflow/dsh";
|
|
33
|
+
exports.DSH_PATCH_BEGIN = "# GRAPHFLOW-DSH-BEGIN";
|
|
34
|
+
exports.DSH_PATCH_END = "# GRAPHFLOW-DSH-END";
|
|
35
|
+
/** Resolve DeepSeek Harness home: GRAPHFLOW_DSH_HOME, else DSH_HOME, else ~/.dsh. */
|
|
36
|
+
function resolveDshHome(override) {
|
|
37
|
+
const explicit = override?.trim() || process.env[exports.DSH_HOME_ENV]?.trim() || process.env.DSH_HOME?.trim();
|
|
38
|
+
if (explicit) {
|
|
39
|
+
return explicit;
|
|
40
|
+
}
|
|
41
|
+
return (0, node_path_1.join)((0, node_os_1.homedir)(), ".dsh");
|
|
42
|
+
}
|
|
43
|
+
function getDshHarnessPaths(dshHome = resolveDshHome()) {
|
|
44
|
+
const skillsRoot = (0, node_path_1.join)(dshHome, "skills");
|
|
45
|
+
return {
|
|
46
|
+
dshHome,
|
|
47
|
+
patchPath: (0, node_path_1.join)(dshHome, "cordis.patch.yml"),
|
|
48
|
+
skillsRoot,
|
|
49
|
+
skillPath: (0, node_path_1.join)(skillsRoot, "graphflow", "SKILL.md"),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function isDshHarnessDetected(dshHome = resolveDshHome()) {
|
|
53
|
+
return (0, node_fs_1.existsSync)(dshHome);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The insert layer GraphFlow contributes as a dsh bundle.
|
|
57
|
+
* Keep in sync with repo-root `cordis.patch.yml` (asserted by tests).
|
|
58
|
+
*/
|
|
59
|
+
function buildGraphFlowDshInsertPatch() {
|
|
60
|
+
return [
|
|
61
|
+
"- insert:",
|
|
62
|
+
` - id: ${exports.DSH_MCP_ROW_ID}`,
|
|
63
|
+
" name: '@deepseek-ai/dsh-mcp-client'",
|
|
64
|
+
" config:",
|
|
65
|
+
" serverName: graphflow",
|
|
66
|
+
" transport: stdio",
|
|
67
|
+
" command: npx",
|
|
68
|
+
" args:",
|
|
69
|
+
" - '-y'",
|
|
70
|
+
" - '--package=@roarpeng/graphflow'",
|
|
71
|
+
" - graphflow-mcp",
|
|
72
|
+
" env:",
|
|
73
|
+
" GRAPHFLOW_MCP_STDIO: '1'",
|
|
74
|
+
" GRAPHFLOW_LOG_JSON: '1'",
|
|
75
|
+
" cwd: !!js process.cwd()",
|
|
76
|
+
" failOnStartupError: false",
|
|
77
|
+
` - id: ${exports.DSH_GLUE_ROW_ID}`,
|
|
78
|
+
` name: '${exports.DSH_GLUE_PACKAGE}'`,
|
|
79
|
+
"",
|
|
80
|
+
].join("\n");
|
|
81
|
+
}
|
|
82
|
+
function wrapDshManagedPatch(insertPatch = buildGraphFlowDshInsertPatch()) {
|
|
83
|
+
return `${exports.DSH_PATCH_BEGIN}\n${insertPatch.trimEnd()}\n${exports.DSH_PATCH_END}\n`;
|
|
84
|
+
}
|
|
85
|
+
function patchContainsGraphFlowDsh(content) {
|
|
86
|
+
if (content.includes(exports.DSH_PATCH_BEGIN) && content.includes(exports.DSH_PATCH_END)) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return new RegExp(`^\\s*-\\s*id:\\s*${exports.DSH_MCP_ROW_ID}\\s*$`, "m").test(content);
|
|
90
|
+
}
|
|
91
|
+
function patchContainsGraphFlowDshGlue(content) {
|
|
92
|
+
if (content.includes(exports.DSH_GLUE_PACKAGE)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return new RegExp(`^\\s*-\\s*id:\\s*${exports.DSH_GLUE_ROW_ID}\\s*$`, "m").test(content);
|
|
96
|
+
}
|
|
97
|
+
function upsertManagedPatch(existing, managed) {
|
|
98
|
+
const beginIdx = existing.indexOf(exports.DSH_PATCH_BEGIN);
|
|
99
|
+
const endIdx = existing.indexOf(exports.DSH_PATCH_END);
|
|
100
|
+
if (beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx) {
|
|
101
|
+
const before = existing.slice(0, beginIdx);
|
|
102
|
+
const after = existing.slice(endIdx + exports.DSH_PATCH_END.length).replace(/^\n/, "");
|
|
103
|
+
const next = `${before}${managed}${after}`.replace(/\n{3,}/g, "\n\n");
|
|
104
|
+
if (next === existing) {
|
|
105
|
+
return { next, changed: false, kind: "skipped" };
|
|
106
|
+
}
|
|
107
|
+
return { next, changed: true, kind: "updated" };
|
|
108
|
+
}
|
|
109
|
+
if (!existing.trim()) {
|
|
110
|
+
return { next: managed, changed: true, kind: "created" };
|
|
111
|
+
}
|
|
112
|
+
const separator = existing.endsWith("\n") ? "\n" : "\n\n";
|
|
113
|
+
return { next: `${existing}${separator}${managed}`, changed: true, kind: "updated" };
|
|
114
|
+
}
|
|
115
|
+
function removeManagedDshPatch(content) {
|
|
116
|
+
const beginIdx = content.indexOf(exports.DSH_PATCH_BEGIN);
|
|
117
|
+
const endIdx = content.indexOf(exports.DSH_PATCH_END);
|
|
118
|
+
if (beginIdx === -1 || endIdx === -1 || endIdx <= beginIdx) {
|
|
119
|
+
return { next: content, removed: false };
|
|
120
|
+
}
|
|
121
|
+
const before = content.slice(0, beginIdx);
|
|
122
|
+
const after = content.slice(endIdx + exports.DSH_PATCH_END.length).replace(/^\n/, "");
|
|
123
|
+
return { next: `${before}${after}`.replace(/\n{3,}/g, "\n\n").trimStart(), removed: true };
|
|
124
|
+
}
|
|
125
|
+
function getDshHarnessStatus(options = {}) {
|
|
126
|
+
const paths = getDshHarnessPaths(resolveDshHome(options.dshHome));
|
|
127
|
+
const detected = (0, node_fs_1.existsSync)(paths.dshHome);
|
|
128
|
+
let installed = false;
|
|
129
|
+
let glueInstalled = false;
|
|
130
|
+
if (detected && (0, node_fs_1.existsSync)(paths.patchPath)) {
|
|
131
|
+
try {
|
|
132
|
+
const content = (0, node_fs_1.readFileSync)(paths.patchPath, "utf8");
|
|
133
|
+
installed = patchContainsGraphFlowDsh(content);
|
|
134
|
+
glueInstalled = patchContainsGraphFlowDshGlue(content);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
installed = false;
|
|
138
|
+
glueInstalled = false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
agent: "DeepSeek Harness",
|
|
143
|
+
detected,
|
|
144
|
+
installed,
|
|
145
|
+
glueInstalled,
|
|
146
|
+
skillInstalled: (0, node_fs_1.existsSync)(paths.skillPath),
|
|
147
|
+
dshHome: paths.dshHome,
|
|
148
|
+
patchPath: paths.patchPath,
|
|
149
|
+
skillPath: paths.skillPath,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function installDshHarness(options = {}) {
|
|
153
|
+
const paths = getDshHarnessPaths(resolveDshHome(options.dshHome));
|
|
154
|
+
if (!(0, node_fs_1.existsSync)(paths.dshHome)) {
|
|
155
|
+
return {
|
|
156
|
+
status: "skipped",
|
|
157
|
+
filePath: paths.patchPath,
|
|
158
|
+
message: "DeepSeek Harness not detected",
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
try {
|
|
162
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(paths.patchPath), { recursive: true });
|
|
163
|
+
const existing = (0, node_fs_1.existsSync)(paths.patchPath) ? (0, node_fs_1.readFileSync)(paths.patchPath, "utf8") : "";
|
|
164
|
+
const managed = wrapDshManagedPatch();
|
|
165
|
+
const { next, kind } = upsertManagedPatch(existing, managed);
|
|
166
|
+
if (kind === "skipped") {
|
|
167
|
+
return { status: "skipped", filePath: paths.patchPath, message: "already up to date" };
|
|
168
|
+
}
|
|
169
|
+
(0, node_fs_1.writeFileSync)(paths.patchPath, next.endsWith("\n") ? next : `${next}\n`, "utf8");
|
|
170
|
+
return { status: kind, filePath: paths.patchPath };
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
return {
|
|
174
|
+
status: "error",
|
|
175
|
+
filePath: paths.patchPath,
|
|
176
|
+
message: error instanceof Error ? error.message : String(error),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function uninstallDshHarness(options = {}) {
|
|
181
|
+
const paths = getDshHarnessPaths(resolveDshHome(options.dshHome));
|
|
182
|
+
if (!(0, node_fs_1.existsSync)(paths.patchPath)) {
|
|
183
|
+
return {
|
|
184
|
+
status: "skipped",
|
|
185
|
+
filePath: paths.patchPath,
|
|
186
|
+
message: "not found",
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
const existing = (0, node_fs_1.readFileSync)(paths.patchPath, "utf8");
|
|
191
|
+
const { next, removed } = removeManagedDshPatch(existing);
|
|
192
|
+
if (!removed) {
|
|
193
|
+
return { status: "skipped", filePath: paths.patchPath, message: "no GraphFlow block" };
|
|
194
|
+
}
|
|
195
|
+
if (!next.trim()) {
|
|
196
|
+
(0, node_fs_1.writeFileSync)(paths.patchPath, "", "utf8");
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
(0, node_fs_1.writeFileSync)(paths.patchPath, next.endsWith("\n") ? next : `${next}\n`, "utf8");
|
|
200
|
+
}
|
|
201
|
+
return { status: "updated", filePath: paths.patchPath, message: "removed GraphFlow MCP+glue insert" };
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
return {
|
|
205
|
+
status: "error",
|
|
206
|
+
filePath: paths.patchPath,
|
|
207
|
+
message: error instanceof Error ? error.message : String(error),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=dsh-harness-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh-harness-installer.js","sourceRoot":"","sources":["../../src/integrations/dsh-harness-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-installer.d.ts","sourceRoot":"","sources":["../../src/integrations/skill-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-installer.d.ts","sourceRoot":"","sources":["../../src/integrations/skill-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ exports.uninstallAllSkillsAndRules = uninstallAllSkillsAndRules;
|
|
|
37
37
|
const node_fs_1 = require("node:fs");
|
|
38
38
|
const node_os_1 = require("node:os");
|
|
39
39
|
const node_path_1 = require("node:path");
|
|
40
|
+
const dsh_harness_installer_1 = require("./dsh-harness-installer");
|
|
40
41
|
// ── 平台检测 ──────────────────────────────────────────────────────────
|
|
41
42
|
const isWindows = process.platform === "win32";
|
|
42
43
|
function resolveHomePaths() {
|
|
@@ -591,6 +592,11 @@ function getAgentSkillTargets() {
|
|
|
591
592
|
markerDir: (0, node_path_1.join)(home, ".qoder-cn"),
|
|
592
593
|
skillsRoot: (0, node_path_1.join)(home, ".qoder-cn", "skills"),
|
|
593
594
|
},
|
|
595
|
+
{
|
|
596
|
+
agent: "DeepSeek Harness",
|
|
597
|
+
markerDir: (0, dsh_harness_installer_1.resolveDshHome)(),
|
|
598
|
+
skillsRoot: (0, node_path_1.join)((0, dsh_harness_installer_1.resolveDshHome)(), "skills"),
|
|
599
|
+
},
|
|
594
600
|
];
|
|
595
601
|
}
|
|
596
602
|
/**
|