@deepwhale/coding-agent 1.0.10 → 1.0.12
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/LICENSE +21 -21
- package/package.json +1 -1
- package/dist/agent/agent-compaction.d.ts +0 -74
- package/dist/agent/agent-compaction.d.ts.map +0 -1
- package/dist/agent/agent-compaction.js +0 -145
- package/dist/agent/agent-compaction.js.map +0 -1
- package/dist/agent/index.d.ts +0 -16
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -17
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/session-adapter.d.ts +0 -177
- package/dist/agent/session-adapter.d.ts.map +0 -1
- package/dist/agent/session-adapter.js +0 -365
- package/dist/agent/session-adapter.js.map +0 -1
- package/dist/agent/tool-loop.d.ts +0 -123
- package/dist/agent/tool-loop.d.ts.map +0 -1
- package/dist/agent/tool-loop.js +0 -436
- package/dist/agent/tool-loop.js.map +0 -1
- package/dist/env/load-project-env.d.ts +0 -40
- package/dist/env/load-project-env.d.ts.map +0 -1
- package/dist/env/load-project-env.js +0 -80
- package/dist/env/load-project-env.js.map +0 -1
- package/dist/index.d.ts +0 -31
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -30
- package/dist/index.js.map +0 -1
- package/dist/llm-factory.d.ts +0 -50
- package/dist/llm-factory.d.ts.map +0 -1
- package/dist/llm-factory.js +0 -110
- package/dist/llm-factory.js.map +0 -1
- package/dist/modes/index.d.ts +0 -14
- package/dist/modes/index.d.ts.map +0 -1
- package/dist/modes/index.js +0 -14
- package/dist/modes/index.js.map +0 -1
- package/dist/modes/print.d.ts +0 -50
- package/dist/modes/print.d.ts.map +0 -1
- package/dist/modes/print.js +0 -236
- package/dist/modes/print.js.map +0 -1
- package/dist/modes/rpc.d.ts +0 -52
- package/dist/modes/rpc.d.ts.map +0 -1
- package/dist/modes/rpc.js +0 -316
- package/dist/modes/rpc.js.map +0 -1
- package/dist/modes/tui.d.ts +0 -112
- package/dist/modes/tui.d.ts.map +0 -1
- package/dist/modes/tui.js +0 -733
- package/dist/modes/tui.js.map +0 -1
- package/dist/policy/args-digest.d.ts +0 -13
- package/dist/policy/args-digest.d.ts.map +0 -1
- package/dist/policy/args-digest.js +0 -29
- package/dist/policy/args-digest.js.map +0 -1
- package/dist/policy/chain.d.ts +0 -19
- package/dist/policy/chain.d.ts.map +0 -1
- package/dist/policy/chain.js +0 -24
- package/dist/policy/chain.js.map +0 -1
- package/dist/policy/index.d.ts +0 -17
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/index.js +0 -16
- package/dist/policy/index.js.map +0 -1
- package/dist/policy/sanitize-reason.d.ts +0 -11
- package/dist/policy/sanitize-reason.d.ts.map +0 -1
- package/dist/policy/sanitize-reason.js +0 -24
- package/dist/policy/sanitize-reason.js.map +0 -1
- package/dist/policy/static-rules.d.ts +0 -32
- package/dist/policy/static-rules.d.ts.map +0 -1
- package/dist/policy/static-rules.js +0 -106
- package/dist/policy/static-rules.js.map +0 -1
- package/dist/policy/types.d.ts +0 -56
- package/dist/policy/types.d.ts.map +0 -1
- package/dist/policy/types.js +0 -13
- package/dist/policy/types.js.map +0 -1
- package/dist/repl/repl-confirm.d.ts +0 -49
- package/dist/repl/repl-confirm.d.ts.map +0 -1
- package/dist/repl/repl-confirm.js +0 -88
- package/dist/repl/repl-confirm.js.map +0 -1
- package/dist/repl.d.ts +0 -154
- package/dist/repl.d.ts.map +0 -1
- package/dist/repl.js +0 -780
- package/dist/repl.js.map +0 -1
- package/dist/sandbox/docker-runner.d.ts +0 -147
- package/dist/sandbox/docker-runner.d.ts.map +0 -1
- package/dist/sandbox/docker-runner.js +0 -426
- package/dist/sandbox/docker-runner.js.map +0 -1
- package/dist/sandbox/env-gate.d.ts +0 -28
- package/dist/sandbox/env-gate.d.ts.map +0 -1
- package/dist/sandbox/env-gate.js +0 -65
- package/dist/sandbox/env-gate.js.map +0 -1
- package/dist/sandbox/local-runner.d.ts +0 -29
- package/dist/sandbox/local-runner.d.ts.map +0 -1
- package/dist/sandbox/local-runner.js +0 -79
- package/dist/sandbox/local-runner.js.map +0 -1
- package/dist/sandbox/types.d.ts +0 -80
- package/dist/sandbox/types.d.ts.map +0 -1
- package/dist/sandbox/types.js +0 -25
- package/dist/sandbox/types.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -35
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js +0 -233
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/edit-file.d.ts +0 -22
- package/dist/tools/edit-file.d.ts.map +0 -1
- package/dist/tools/edit-file.js +0 -79
- package/dist/tools/edit-file.js.map +0 -1
- package/dist/tools/find.d.ts +0 -21
- package/dist/tools/find.d.ts.map +0 -1
- package/dist/tools/find.js +0 -168
- package/dist/tools/find.js.map +0 -1
- package/dist/tools/grep.d.ts +0 -19
- package/dist/tools/grep.d.ts.map +0 -1
- package/dist/tools/grep.js +0 -170
- package/dist/tools/grep.js.map +0 -1
- package/dist/tools/index.d.ts +0 -10
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -10
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/read-file.d.ts +0 -18
- package/dist/tools/read-file.d.ts.map +0 -1
- package/dist/tools/read-file.js +0 -52
- package/dist/tools/read-file.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -39
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -67
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/write-file.d.ts +0 -18
- package/dist/tools/write-file.d.ts.map +0 -1
- package/dist/tools/write-file.js +0 -47
- package/dist/tools/write-file.js.map +0 -1
- package/dist/tui-ink-bundle.js +0 -38587
- package/dist/types.d.ts +0 -89
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
- package/dist/util/index.d.ts +0 -16
- package/dist/util/index.d.ts.map +0 -1
- package/dist/util/index.js +0 -16
- package/dist/util/index.js.map +0 -1
- package/dist/util/tui-history.d.ts +0 -37
- package/dist/util/tui-history.d.ts.map +0 -1
- package/dist/util/tui-history.js +0 -93
- package/dist/util/tui-history.js.map +0 -1
- package/dist/verify/format-report.d.ts +0 -57
- package/dist/verify/format-report.d.ts.map +0 -1
- package/dist/verify/format-report.js +0 -128
- package/dist/verify/format-report.js.map +0 -1
- package/dist/verify/index.d.ts +0 -8
- package/dist/verify/index.d.ts.map +0 -1
- package/dist/verify/index.js +0 -8
- package/dist/verify/index.js.map +0 -1
- package/dist/verify/verify-runner.d.ts +0 -186
- package/dist/verify/verify-runner.d.ts.map +0 -1
- package/dist/verify/verify-runner.js +0 -707
- package/dist/verify/verify-runner.js.map +0 -1
package/dist/modes/tui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/modes/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* 稳定 JSON (key 排序) + sha256 前 12 位. 不存原始 args.
|
|
5
|
-
*
|
|
6
|
-
* 用户拍板 (2026-06-05): "argsDigest 不存原始 args, 先用稳定 JSON + sha256 前 12 位;
|
|
7
|
-
* reason 可以写自然语言, 但不能包含完整文件内容或 secret"
|
|
8
|
-
*
|
|
9
|
-
* 注: stable JSON 自己实现, 不引 fast-json-stable-stringify 等 dep, MVP 范围.
|
|
10
|
-
* 实现注意: 走 string 拼接避免大量递归 JSON.parse/stringify 调用.
|
|
11
|
-
*/
|
|
12
|
-
export declare function computeArgsDigest(args: Record<string, unknown>): string;
|
|
13
|
-
//# sourceMappingURL=args-digest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"args-digest.d.ts","sourceRoot":"","sources":["../../src/policy/args-digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAIvE"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* 稳定 JSON (key 排序) + sha256 前 12 位. 不存原始 args.
|
|
5
|
-
*
|
|
6
|
-
* 用户拍板 (2026-06-05): "argsDigest 不存原始 args, 先用稳定 JSON + sha256 前 12 位;
|
|
7
|
-
* reason 可以写自然语言, 但不能包含完整文件内容或 secret"
|
|
8
|
-
*
|
|
9
|
-
* 注: stable JSON 自己实现, 不引 fast-json-stable-stringify 等 dep, MVP 范围.
|
|
10
|
-
* 实现注意: 走 string 拼接避免大量递归 JSON.parse/stringify 调用.
|
|
11
|
-
*/
|
|
12
|
-
import { createHash } from 'node:crypto';
|
|
13
|
-
function stableStringify(value) {
|
|
14
|
-
if (value === null || typeof value !== 'object') {
|
|
15
|
-
return JSON.stringify(value);
|
|
16
|
-
}
|
|
17
|
-
if (Array.isArray(value)) {
|
|
18
|
-
return '[' + value.map(stableStringify).join(',') + ']';
|
|
19
|
-
}
|
|
20
|
-
const obj = value;
|
|
21
|
-
const keys = Object.keys(obj).sort();
|
|
22
|
-
return '{' + keys.map((k) => JSON.stringify(k) + ':' + stableStringify(obj[k])).join(',') + '}';
|
|
23
|
-
}
|
|
24
|
-
export function computeArgsDigest(args) {
|
|
25
|
-
const json = stableStringify(args);
|
|
26
|
-
const hash = createHash('sha256').update(json, 'utf8').digest('hex');
|
|
27
|
-
return `sha256:${hash.slice(0, 12)}`;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=args-digest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"args-digest.js","sourceRoot":"","sources":["../../src/policy/args-digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1D,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA6B;IAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACvC,CAAC"}
|
package/dist/policy/chain.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* chain 串 static + caller-supplied ToolPolicy.
|
|
5
|
-
*
|
|
6
|
-
* Sprint 1c-revive-3-D-13 review P1(b) 修复 (2026-06-05):
|
|
7
|
-
* 拍板 (用户 2026-06-05): "保持 PolicyDecision 简洁, 在 tool-loop.ts 里保留 raw decision".
|
|
8
|
-
* 实现: chain.ts **不**做 yes bypass, 直接透传 policy.evaluate 结果. yes bypass 在
|
|
9
|
-
* tool-loop.ts 里处理 (调 evaluatePolicy 拿到 raw decision, 自己判断 yes 走 user_approved
|
|
10
|
-
* 审计 + bypass 路径).
|
|
11
|
-
*
|
|
12
|
-
* 拍板红线 (用户 2026-06-05):
|
|
13
|
-
* - yes=true 移出 chain (在 tool-loop 处理),保持 PolicyDecision union 简洁 (3 kind)
|
|
14
|
-
* - allow 不在 chain 后续层 reject (first allow wins; 但 static 拍 board 只有 allow / deny / require_confirmation 3 个)
|
|
15
|
-
* - deny 永远不 bypass (拍板红线)
|
|
16
|
-
*/
|
|
17
|
-
import type { PolicyDecision, PolicyContext, PolicyToolCall, ToolPolicy } from './types.js';
|
|
18
|
-
export declare function evaluatePolicy(toolCall: PolicyToolCall, ctx: PolicyContext, policy?: ToolPolicy): PolicyDecision;
|
|
19
|
-
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/policy/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG5F,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,aAAa,EAClB,MAAM,GAAE,UAA6B,GACpC,cAAc,CAKhB"}
|
package/dist/policy/chain.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* chain 串 static + caller-supplied ToolPolicy.
|
|
5
|
-
*
|
|
6
|
-
* Sprint 1c-revive-3-D-13 review P1(b) 修复 (2026-06-05):
|
|
7
|
-
* 拍板 (用户 2026-06-05): "保持 PolicyDecision 简洁, 在 tool-loop.ts 里保留 raw decision".
|
|
8
|
-
* 实现: chain.ts **不**做 yes bypass, 直接透传 policy.evaluate 结果. yes bypass 在
|
|
9
|
-
* tool-loop.ts 里处理 (调 evaluatePolicy 拿到 raw decision, 自己判断 yes 走 user_approved
|
|
10
|
-
* 审计 + bypass 路径).
|
|
11
|
-
*
|
|
12
|
-
* 拍板红线 (用户 2026-06-05):
|
|
13
|
-
* - yes=true 移出 chain (在 tool-loop 处理),保持 PolicyDecision union 简洁 (3 kind)
|
|
14
|
-
* - allow 不在 chain 后续层 reject (first allow wins; 但 static 拍 board 只有 allow / deny / require_confirmation 3 个)
|
|
15
|
-
* - deny 永远不 bypass (拍板红线)
|
|
16
|
-
*/
|
|
17
|
-
import { staticToolPolicy } from './static-rules.js';
|
|
18
|
-
export function evaluatePolicy(toolCall, ctx, policy = staticToolPolicy) {
|
|
19
|
-
// 拍板 (P1 b 修复): chain 只做 policy 评估 + 透传, yes bypass 在 tool-loop.ts 处理.
|
|
20
|
-
// 这样 tool-loop 拿到的 decision 就是 policy.evaluate 原始结果, 不会被 yes 抹平
|
|
21
|
-
// (raw decision 保留, 才能落 user_approved 审计).
|
|
22
|
-
return policy.evaluate(toolCall, ctx);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=chain.js.map
|
package/dist/policy/chain.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/policy/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,UAAU,cAAc,CAC5B,QAAwB,EACxB,GAAkB,EAClB,SAAqB,gBAAgB;IAErC,uEAAuE;IACvE,gEAAgE;IAChE,2CAA2C;IAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC"}
|
package/dist/policy/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deepwhale/coding-agent/policy — Tool call policy.
|
|
3
|
-
*
|
|
4
|
-
* Sprint 1c-revive-2-D-24.2 (2026-06-06): 新建 policy/index.ts 让顶层
|
|
5
|
-
* `export * from './policy/index.js'` 能 re-export (供 tui-ink 子包使用).
|
|
6
|
-
*
|
|
7
|
-
* 之前没有 index.ts — D-24.1 之前只有内部消费 (repl/print/rpc), 顶层不 export.
|
|
8
|
-
* D-24.2 tui-ink 走同样的 ToolPolicy 容器迁移, 需要顶层 import.
|
|
9
|
-
*
|
|
10
|
-
* 业务逻辑 0 重写: 单纯 barrel re-export, 跟其他 index.ts 一致.
|
|
11
|
-
*/
|
|
12
|
-
export type { ToolPolicy, PolicyDecision, PolicyToolCall, PolicyContext } from './types.js';
|
|
13
|
-
export { staticToolPolicy } from './static-rules.js';
|
|
14
|
-
export { evaluatePolicy } from './chain.js';
|
|
15
|
-
export { computeArgsDigest } from './args-digest.js';
|
|
16
|
-
export { sanitizeReason } from './sanitize-reason.js';
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/policy/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deepwhale/coding-agent/policy — Tool call policy.
|
|
3
|
-
*
|
|
4
|
-
* Sprint 1c-revive-2-D-24.2 (2026-06-06): 新建 policy/index.ts 让顶层
|
|
5
|
-
* `export * from './policy/index.js'` 能 re-export (供 tui-ink 子包使用).
|
|
6
|
-
*
|
|
7
|
-
* 之前没有 index.ts — D-24.1 之前只有内部消费 (repl/print/rpc), 顶层不 export.
|
|
8
|
-
* D-24.2 tui-ink 走同样的 ToolPolicy 容器迁移, 需要顶层 import.
|
|
9
|
-
*
|
|
10
|
-
* 业务逻辑 0 重写: 单纯 barrel re-export, 跟其他 index.ts 一致.
|
|
11
|
-
*/
|
|
12
|
-
export { staticToolPolicy } from './static-rules.js';
|
|
13
|
-
export { evaluatePolicy } from './chain.js';
|
|
14
|
-
export { computeArgsDigest } from './args-digest.js';
|
|
15
|
-
export { sanitizeReason } from './sanitize-reason.js';
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/dist/policy/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* 用户拍板 (2026-06-05): "reason 可以写自然语言, 但不能包含完整文件内容或 secret"
|
|
5
|
-
* D-13 MVP 拍板: 长度上限 200 + 换行折叠 + 去 NUL. 真正的 secret detection 留给 D-15.
|
|
6
|
-
*
|
|
7
|
-
* 拍板红线: sanitized reason 进 SessionEvent policy_decision 落盘, 一旦写错字段
|
|
8
|
-
* 整个 session 不可读. 拍 board 安全优先.
|
|
9
|
-
*/
|
|
10
|
-
export declare function sanitizeReason(reason: string): string;
|
|
11
|
-
//# sourceMappingURL=sanitize-reason.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-reason.d.ts","sourceRoot":"","sources":["../../src/policy/sanitize-reason.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWrD"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* 用户拍板 (2026-06-05): "reason 可以写自然语言, 但不能包含完整文件内容或 secret"
|
|
5
|
-
* D-13 MVP 拍板: 长度上限 200 + 换行折叠 + 去 NUL. 真正的 secret detection 留给 D-15.
|
|
6
|
-
*
|
|
7
|
-
* 拍板红线: sanitized reason 进 SessionEvent policy_decision 落盘, 一旦写错字段
|
|
8
|
-
* 整个 session 不可读. 拍 board 安全优先.
|
|
9
|
-
*/
|
|
10
|
-
const MAX_REASON_LEN = 200;
|
|
11
|
-
const TRUNCATED_MARKER = '…[truncated]'; // 13 chars (ellipsis counts as 1 utf-16 unit)
|
|
12
|
-
export function sanitizeReason(reason) {
|
|
13
|
-
// 1. 折叠换行 (\r?\n → ' / '), 单行显示
|
|
14
|
-
let r = reason.replace(/\r?\n/g, ' / ');
|
|
15
|
-
// 2. 去 NUL (JSON 写入安全, 防 null byte 注入)
|
|
16
|
-
// eslint-disable-next-line no-control-regex
|
|
17
|
-
r = r.replace(/\u0000/g, '');
|
|
18
|
-
// 3. 长度上限 + 标 truncated
|
|
19
|
-
if (r.length > MAX_REASON_LEN) {
|
|
20
|
-
r = r.slice(0, MAX_REASON_LEN - TRUNCATED_MARKER.length) + TRUNCATED_MARKER;
|
|
21
|
-
}
|
|
22
|
-
return r;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=sanitize-reason.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-reason.js","sourceRoot":"","sources":["../../src/policy/sanitize-reason.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,8CAA8C;AAEvF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,gCAAgC;IAChC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,uCAAuC;IACvC,4CAA4C;IAC5C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7B,wBAAwB;IACxB,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAC9B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05): 默认静态规则.
|
|
3
|
-
* Sprint 1c-revive-3-D-13 review P1 修复 (2026-06-05):
|
|
4
|
-
* - 合并 command + args 成 1 条字符串再 regex match (解决 `mv a b` / `cp a b` 等
|
|
5
|
-
* command-only regex 漏判的问题). 不引 shlex dep, 拍板 MVP 接受 edge case 漏判.
|
|
6
|
-
* - 拍板 (用户 2026-06-05 review): "v1.0 红线是'未经确认不 mv', 不只是 /etc/系统路径;
|
|
7
|
-
* cp 一起收, 宁可多弹确认". 加 mv / cp 全部 → require_confirmation.
|
|
8
|
-
*
|
|
9
|
-
* 拍板 (用户 2026-06-05):
|
|
10
|
-
* - A1: 默认规则 (read/find/grep 全 allow, write/edit 全 require_confirmation)
|
|
11
|
-
* - B1: bash 用 regex/argv-light 检测危险模式 → require_confirmation (不直接 deny,
|
|
12
|
-
* 误判只是多弹确认, 比 deny 漏判安全)
|
|
13
|
-
* - R-1: race 接受为 MVP 风险, D-15 用 inotify / mutex 收
|
|
14
|
-
* - R-2: bash 漏判 (e.g. shlex quote 拆分) 接受, 走 require_confirmation 而非 deny
|
|
15
|
-
*
|
|
16
|
-
* 不做 (D-15):
|
|
17
|
-
* - 用户 config 注入 (ToolPolicy 透传, D-13 默认走 static)
|
|
18
|
-
* - 路径白名单/黑名单
|
|
19
|
-
* - Bash argv deep parse (e.g. shlex)
|
|
20
|
-
* - Secret 强检测 (redact API key in reason)
|
|
21
|
-
*/
|
|
22
|
-
import type { PolicyDecision, ToolPolicy } from './types.js';
|
|
23
|
-
/**
|
|
24
|
-
* bash regex 危险模式 — 暴露给 tool-loop 在 bash 工具自身层也用 (双重防线)
|
|
25
|
-
*
|
|
26
|
-
* Sprint 1c-revive-3-D-13 review P1 修复 (2026-06-05):
|
|
27
|
-
* 拍板 (用户 2026-06-05): "bash 检测先轻量合并 command + args"
|
|
28
|
-
* 不引 shlex dep, MVP 接受 quote 拆分漏判 (R-2 拍板).
|
|
29
|
-
*/
|
|
30
|
-
export declare function evaluateBashCommand(cmd: string, args: ReadonlyArray<string>): PolicyDecision;
|
|
31
|
-
export declare const staticToolPolicy: ToolPolicy;
|
|
32
|
-
//# sourceMappingURL=static-rules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-rules.d.ts","sourceRoot":"","sources":["../../src/policy/static-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiC,UAAU,EAAE,MAAM,YAAY,CAAC;AAwC5F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAa5F;AAyBD,eAAO,MAAM,gBAAgB,EAAE,UAK9B,CAAC"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05): 默认静态规则.
|
|
3
|
-
* Sprint 1c-revive-3-D-13 review P1 修复 (2026-06-05):
|
|
4
|
-
* - 合并 command + args 成 1 条字符串再 regex match (解决 `mv a b` / `cp a b` 等
|
|
5
|
-
* command-only regex 漏判的问题). 不引 shlex dep, 拍板 MVP 接受 edge case 漏判.
|
|
6
|
-
* - 拍板 (用户 2026-06-05 review): "v1.0 红线是'未经确认不 mv', 不只是 /etc/系统路径;
|
|
7
|
-
* cp 一起收, 宁可多弹确认". 加 mv / cp 全部 → require_confirmation.
|
|
8
|
-
*
|
|
9
|
-
* 拍板 (用户 2026-06-05):
|
|
10
|
-
* - A1: 默认规则 (read/find/grep 全 allow, write/edit 全 require_confirmation)
|
|
11
|
-
* - B1: bash 用 regex/argv-light 检测危险模式 → require_confirmation (不直接 deny,
|
|
12
|
-
* 误判只是多弹确认, 比 deny 漏判安全)
|
|
13
|
-
* - R-1: race 接受为 MVP 风险, D-15 用 inotify / mutex 收
|
|
14
|
-
* - R-2: bash 漏判 (e.g. shlex quote 拆分) 接受, 走 require_confirmation 而非 deny
|
|
15
|
-
*
|
|
16
|
-
* 不做 (D-15):
|
|
17
|
-
* - 用户 config 注入 (ToolPolicy 透传, D-13 默认走 static)
|
|
18
|
-
* - 路径白名单/黑名单
|
|
19
|
-
* - Bash argv deep parse (e.g. shlex)
|
|
20
|
-
* - Secret 强检测 (redact API key in reason)
|
|
21
|
-
*/
|
|
22
|
-
// bash 危险模式 (regex) — argv-light, 不深 parse
|
|
23
|
-
// 拍板 (用户 2026-06-05): 走 require_confirmation 而非 deny, 误判只是多弹确认
|
|
24
|
-
// 注: tool-loop 调 evaluateBashCommand 时会把 command + args 合并成 1 条字符串再 match,
|
|
25
|
-
// 解决 `mv a b` / `cp a b` 等 command-only regex 漏判的问题
|
|
26
|
-
const DANGEROUS_BASH_PATTERNS = [
|
|
27
|
-
// === 文件破坏 (v1.0 红线) ===
|
|
28
|
-
// rm -rf / or rm -fr / (path start with /)
|
|
29
|
-
/\brm\s+(?:-[a-zA-Z]*[rf][a-zA-Z]*)+[^\n]*\//i,
|
|
30
|
-
// rm -rf ~ (home dir wipe)
|
|
31
|
-
/\brm\s+(?:-[a-zA-Z]*[rf][a-zA-Z]*)+[^\n]*~/i,
|
|
32
|
-
// mv 全部 (用户 review 拍板: "v1.0 红线是'未经确认不 mv', 不只是 /etc/系统路径")
|
|
33
|
-
// 拍板 (2026-06-05): 宁多弹确认, 漏 mv 风险太高
|
|
34
|
-
/\bmv\b/,
|
|
35
|
-
// cp 全部 (跟 mv 同拍板: 宁多弹确认)
|
|
36
|
-
/\bcp\b/,
|
|
37
|
-
// chown / chmod 改权限 (chmod 777 是经典写错场景)
|
|
38
|
-
/\bchown\b/i,
|
|
39
|
-
/\bchmod\b/i,
|
|
40
|
-
// === 系统 / 磁盘 ===
|
|
41
|
-
// mkfs (format filesystem)
|
|
42
|
-
/\bmkfs(?:\.\w+)?\b/i,
|
|
43
|
-
// dd if= (raw disk write)
|
|
44
|
-
/\bdd\s+if=/i,
|
|
45
|
-
// shutdown / reboot / halt / poweroff
|
|
46
|
-
/\b(shutdown|reboot|halt|poweroff)\b/i,
|
|
47
|
-
// redirect to /dev/sda or /dev/nvme* (raw disk overwrite)
|
|
48
|
-
/>\s*\/dev\/(sda|nvme\d)/i,
|
|
49
|
-
// === 远程下载 + 执行 (curl|sh, wget|bash) ===
|
|
50
|
-
// curl ... | sh / bash / python
|
|
51
|
-
/\bcurl\b[^\n]*\|\s*(sh|bash|python\d*|zsh|ksh|fish)/i,
|
|
52
|
-
/\bwget\b[^\n]*\|\s*(sh|bash|python\d*|zsh|ksh|fish)/i,
|
|
53
|
-
// curl -o /path + chmod + execute 套路 (远程 dropper)
|
|
54
|
-
/\bcurl\b[^\n]*-o\s+\/tmp\//i,
|
|
55
|
-
/\bwget\b[^\n]*-O\s+\/tmp\//i,
|
|
56
|
-
];
|
|
57
|
-
/**
|
|
58
|
-
* bash regex 危险模式 — 暴露给 tool-loop 在 bash 工具自身层也用 (双重防线)
|
|
59
|
-
*
|
|
60
|
-
* Sprint 1c-revive-3-D-13 review P1 修复 (2026-06-05):
|
|
61
|
-
* 拍板 (用户 2026-06-05): "bash 检测先轻量合并 command + args"
|
|
62
|
-
* 不引 shlex dep, MVP 接受 quote 拆分漏判 (R-2 拍板).
|
|
63
|
-
*/
|
|
64
|
-
export function evaluateBashCommand(cmd, args) {
|
|
65
|
-
// 拍板: 合并 command + " " + args.join(" ") 一条字符串再 regex match.
|
|
66
|
-
// 拍板: 不 strip quote, 不引 shlex (R-2 拍板). 漏判走 require_confirmation 而非 deny.
|
|
67
|
-
const merged = args.length > 0 ? `${cmd} ${args.join(' ')}` : cmd;
|
|
68
|
-
for (const pat of DANGEROUS_BASH_PATTERNS) {
|
|
69
|
-
if (pat.test(merged)) {
|
|
70
|
-
return {
|
|
71
|
-
decision: 'require_confirmation',
|
|
72
|
-
reason: `bash command matches dangerous pattern: ${pat.source}`,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return { decision: 'allow' };
|
|
77
|
-
}
|
|
78
|
-
function evaluateByToolName(name, _argsDigest) {
|
|
79
|
-
switch (name) {
|
|
80
|
-
case 'read_file':
|
|
81
|
-
case 'find':
|
|
82
|
-
case 'grep':
|
|
83
|
-
return { decision: 'allow' };
|
|
84
|
-
case 'write_file':
|
|
85
|
-
case 'edit_file':
|
|
86
|
-
return { decision: 'require_confirmation', reason: 'writes to filesystem' };
|
|
87
|
-
case 'bash':
|
|
88
|
-
// bash 实际 evaluate 需要 parse cmd + args. 这层拿不到, tool-loop 层 bash 工具自身用 evaluateBashCommand 拍.
|
|
89
|
-
// 保守返 allow (bash tool 会自己再过一遍 evaluateBashCommand).
|
|
90
|
-
return { decision: 'allow' };
|
|
91
|
-
default: {
|
|
92
|
-
// 兜底: "未在白名单" 的 tool (含 caller 自注册 tool, e.g. test 'hanger') 走 allow.
|
|
93
|
-
// 拍板 (D-13): 'tool-not-found' 已经在 executeToolCall 上层 (registry.get 拍)
|
|
94
|
-
// 拦了, policy 这层不需要再判 unknown. 给 caller 自定义 tool 留口 (D-15 user config 接入
|
|
95
|
-
// 也会用 default 分支).
|
|
96
|
-
return { decision: 'allow' };
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
export const staticToolPolicy = {
|
|
101
|
-
evaluate(toolCall, _ctx) {
|
|
102
|
-
return evaluateByToolName(toolCall.name, toolCall.argsDigest);
|
|
103
|
-
},
|
|
104
|
-
// confirm 留 undefined — REPL / RPC 模式注入自己的 confirm 实现 (D-13 MVP 留空)
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=static-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-rules.js","sourceRoot":"","sources":["../../src/policy/static-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,2CAA2C;AAC3C,+DAA+D;AAC/D,2EAA2E;AAC3E,oDAAoD;AACpD,MAAM,uBAAuB,GAA0B;IACrD,yBAAyB;IACzB,2CAA2C;IAC3C,8CAA8C;IAC9C,2BAA2B;IAC3B,6CAA6C;IAC7C,4DAA4D;IAC5D,oCAAoC;IACpC,QAAQ;IACR,0BAA0B;IAC1B,QAAQ;IACR,wCAAwC;IACxC,YAAY;IACZ,YAAY;IAEZ,kBAAkB;IAClB,2BAA2B;IAC3B,qBAAqB;IACrB,0BAA0B;IAC1B,aAAa;IACb,sCAAsC;IACtC,sCAAsC;IACtC,0DAA0D;IAC1D,0BAA0B;IAE1B,yCAAyC;IACzC,gCAAgC;IAChC,sDAAsD;IACtD,sDAAsD;IACtD,kDAAkD;IAClD,6BAA6B;IAC7B,6BAA6B;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAA2B;IAC1E,4DAA4D;IAC5D,0EAA0E;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAClE,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,QAAQ,EAAE,sBAAsB;gBAChC,MAAM,EAAE,2CAA2C,GAAG,CAAC,MAAM,EAAE;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAc,EAAE,WAAmB;IAC7D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC9E,KAAK,MAAM;YACT,6FAA6F;YAC7F,qDAAqD;YACrD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC;YACR,sEAAsE;YACtE,sEAAsE;YACtE,wEAAwE;YACxE,mBAAmB;YACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,QAAQ,CAAC,QAAwB,EAAE,IAAmB;QACpD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IACD,oEAAoE;CACrE,CAAC"}
|
package/dist/policy/types.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* ToolPolicy interface + PolicyDecision 联合 + PolicyContext 拍板.
|
|
5
|
-
*
|
|
6
|
-
* 拍板红线 (用户 2026-06-05):
|
|
7
|
-
* - 'allow' 不写 session, 只有 'deny' / 'require_confirmation' / 用户确认结果
|
|
8
|
-
* ('user_approved' / 'user_denied') 落 'policy_decision' event
|
|
9
|
-
* - argsDigest 不存原始 args, 用 sha256: 前 12 位稳定关联
|
|
10
|
-
* - 拍板: deny 不被 --yes bypass
|
|
11
|
-
*/
|
|
12
|
-
import type { ToolName } from '@deepwhale/core';
|
|
13
|
-
/** Policy 决策 — 3 个判别式 + 2 个 user_* 终态 (session audit 用) */
|
|
14
|
-
export type PolicyDecision = {
|
|
15
|
-
decision: 'allow';
|
|
16
|
-
} | {
|
|
17
|
-
decision: 'deny';
|
|
18
|
-
reason: string;
|
|
19
|
-
} | {
|
|
20
|
-
decision: 'require_confirmation';
|
|
21
|
-
reason: string;
|
|
22
|
-
};
|
|
23
|
-
/** tool call 描述 — 不带原始 args, 用 argsDigest 关联 (拍板: 不暴露 secret) */
|
|
24
|
-
export interface PolicyToolCall {
|
|
25
|
-
readonly name: ToolName;
|
|
26
|
-
/** sha256:<12hex> 拍板 */
|
|
27
|
-
readonly argsDigest: string;
|
|
28
|
-
}
|
|
29
|
-
export interface PolicyContext {
|
|
30
|
-
/** 模式是否可交互 (REPL = true, print / rpc 默认 = false) */
|
|
31
|
-
readonly isInteractive: boolean;
|
|
32
|
-
/** --yes 标志: 只 bypass require_confirmation, 不 bypass deny */
|
|
33
|
-
readonly yes: boolean;
|
|
34
|
-
/** tool call args 的稳定 sha256: 前 12 位 */
|
|
35
|
-
readonly argsDigest: string;
|
|
36
|
-
}
|
|
37
|
-
export interface ToolPolicy {
|
|
38
|
-
/**
|
|
39
|
-
* 拍板: 调用一次返回最终 decision. 拍板: 不抛异常, 内部失败也返 deny.
|
|
40
|
-
* 拍板: 纯函数, 不读 stdin, 不打 console. caller (tool-loop) 负责 IO.
|
|
41
|
-
*/
|
|
42
|
-
evaluate(toolCall: PolicyToolCall, ctx: PolicyContext): PolicyDecision;
|
|
43
|
-
/**
|
|
44
|
-
* 拍板: 用户确认回调. REPL 走 readline, RPC 走 NDJSON "confirm" 通知 (D-15).
|
|
45
|
-
* 拍板: undefined = "未实现" 兜底, caller 走 fail-closed deny.
|
|
46
|
-
* 拍板: return true = 用户同意, false = 拒绝, null = dismiss (也走 deny).
|
|
47
|
-
*
|
|
48
|
-
* Sprint 1c-revive-3-D-19 (2026-06-05): opts.signal 可选 — REPL SIGINT/turn
|
|
49
|
-
* 取消时, 注入 turn-level AbortSignal, confirm 收到 abort 立刻 resolve null.
|
|
50
|
-
* 老实现 (单参) 继续合法 (opts 默认 undefined).
|
|
51
|
-
*/
|
|
52
|
-
confirm?(prompt: string, opts?: {
|
|
53
|
-
signal?: AbortSignal;
|
|
54
|
-
}): Promise<boolean | null>;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/policy/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,cAAc,CAAC;IAEvE;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CACpF"}
|
package/dist/policy/types.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sprint 1c-revive-3-D-13 (2026-06-05)
|
|
3
|
-
*
|
|
4
|
-
* ToolPolicy interface + PolicyDecision 联合 + PolicyContext 拍板.
|
|
5
|
-
*
|
|
6
|
-
* 拍板红线 (用户 2026-06-05):
|
|
7
|
-
* - 'allow' 不写 session, 只有 'deny' / 'require_confirmation' / 用户确认结果
|
|
8
|
-
* ('user_approved' / 'user_denied') 落 'policy_decision' event
|
|
9
|
-
* - argsDigest 不存原始 args, 用 sha256: 前 12 位稳定关联
|
|
10
|
-
* - 拍板: deny 不被 --yes bypass
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=types.js.map
|
package/dist/policy/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/policy/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* REPL y/N confirmation prompt — Sprint 1c-revive-3-D-19 (2026-06-05).
|
|
3
|
-
*
|
|
4
|
-
* 历史:
|
|
5
|
-
* D-15 (2026-06-05): 工厂函数 + 内部 createInterface, 用 rl.question 收 y/N.
|
|
6
|
-
* 留 P1 (review blocker): 同流上主 rl + 子 rl 抢同一行, 用户输 y 时主 rl
|
|
7
|
-
* 会把 y 当新 chat turn 启动 (实测 Node repro 确认).
|
|
8
|
-
* D-19 (2026-06-05): 拆掉自创 readline, 改成 "caller 喂 line" 的纯 resolver.
|
|
9
|
-
* 主 REPL 的 rl.on('line') 是唯一 stdin 消费者, 确认期间把 line 喂给
|
|
10
|
-
* pending resolver, 解析完才放行, P1 串行化彻底.
|
|
11
|
-
*
|
|
12
|
-
* 拍板 (D-19, 2026-06-05):
|
|
13
|
-
* - API 形状: createReplConfirm(opts) 返回的 confirm() 不再内部读 stdin,
|
|
14
|
-
* 而是用 offerLine(rawLine) + 内部 Promise<boolean | null> 状态机.
|
|
15
|
-
* - prompt 格式: caller 拼好 "Allow <tool_name>? (<reason>) [y/N]: ",
|
|
16
|
-
* confirm() 内部只负责 "收一行 → 解析 → resolve".
|
|
17
|
-
* - 输入识别: y/yes/Y/YES → true; n/no/N/NO/空/other → false; abort → null.
|
|
18
|
-
* - abort signal 触发立即 resolve null (dismissed).
|
|
19
|
-
* - 同时只能有一个 pending 确认 (REPL 串行 chat-turn 拓扑保证).
|
|
20
|
-
* - offerLine 二次调用 = 抛错 (caller bug, 不能丢 silent).
|
|
21
|
-
*
|
|
22
|
-
* 拍板 (D-19 §out of scope): 不接 RPC confirmedTools (D-17), 不接 user policy
|
|
23
|
-
* config (D-16), 不做 TUI (D-18).
|
|
24
|
-
*/
|
|
25
|
-
export interface ReplConfirmOptions {
|
|
26
|
-
/**
|
|
27
|
-
* REPL 的 out (拿 prompt 字符出口). 用 NodeJS.WritableStream 是为了兼容
|
|
28
|
-
* startRepl 传进来的 NodeJS.WritableStream 类型 (vs node:stream Writable).
|
|
29
|
-
* D-19 内部只写 prompt, 不读.
|
|
30
|
-
*/
|
|
31
|
-
output: NodeJS.WritableStream;
|
|
32
|
-
}
|
|
33
|
-
export interface ReplConfirmCallOptions {
|
|
34
|
-
/** AbortSignal — 触发时 confirm 立即 resolve null (dismissed). D-19 修 Ctrl+C 链路. */
|
|
35
|
-
signal?: AbortSignal;
|
|
36
|
-
}
|
|
37
|
-
export type ReplConfirm = (prompt: string, options?: ReplConfirmCallOptions) => Promise<boolean | null>;
|
|
38
|
-
export interface ReplConfirmController {
|
|
39
|
-
/** 提示用户 (写到 output, 加 [y/N]: 后缀). 内部 start 一个 pending. */
|
|
40
|
-
confirm: ReplConfirm;
|
|
41
|
-
/** REPL 主 line handler 拿到 line 后调: 若有 pending → 喂给 confirm; 若无 → false (caller 走 chat). */
|
|
42
|
-
offerLine: (rawLine: string) => boolean;
|
|
43
|
-
/** 当前是否有 in-flight 确认 (caller 用此守卫主 rl.line). */
|
|
44
|
-
hasPending: () => boolean;
|
|
45
|
-
/** 强制取消 (caller 进程退出/EOF/cleanup). */
|
|
46
|
-
dismiss: () => void;
|
|
47
|
-
}
|
|
48
|
-
export declare function createReplConfirm(opts: ReplConfirmOptions): ReplConfirmController;
|
|
49
|
-
//# sourceMappingURL=repl-confirm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl-confirm.d.ts","sourceRoot":"","sources":["../../src/repl/repl-confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,KAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAQ7B,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,OAAO,EAAE,WAAW,CAAC;IACrB,2FAA2F;IAC3F,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,iDAAiD;IACjD,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,CAqEjF"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* REPL y/N confirmation prompt — Sprint 1c-revive-3-D-19 (2026-06-05).
|
|
3
|
-
*
|
|
4
|
-
* 历史:
|
|
5
|
-
* D-15 (2026-06-05): 工厂函数 + 内部 createInterface, 用 rl.question 收 y/N.
|
|
6
|
-
* 留 P1 (review blocker): 同流上主 rl + 子 rl 抢同一行, 用户输 y 时主 rl
|
|
7
|
-
* 会把 y 当新 chat turn 启动 (实测 Node repro 确认).
|
|
8
|
-
* D-19 (2026-06-05): 拆掉自创 readline, 改成 "caller 喂 line" 的纯 resolver.
|
|
9
|
-
* 主 REPL 的 rl.on('line') 是唯一 stdin 消费者, 确认期间把 line 喂给
|
|
10
|
-
* pending resolver, 解析完才放行, P1 串行化彻底.
|
|
11
|
-
*
|
|
12
|
-
* 拍板 (D-19, 2026-06-05):
|
|
13
|
-
* - API 形状: createReplConfirm(opts) 返回的 confirm() 不再内部读 stdin,
|
|
14
|
-
* 而是用 offerLine(rawLine) + 内部 Promise<boolean | null> 状态机.
|
|
15
|
-
* - prompt 格式: caller 拼好 "Allow <tool_name>? (<reason>) [y/N]: ",
|
|
16
|
-
* confirm() 内部只负责 "收一行 → 解析 → resolve".
|
|
17
|
-
* - 输入识别: y/yes/Y/YES → true; n/no/N/NO/空/other → false; abort → null.
|
|
18
|
-
* - abort signal 触发立即 resolve null (dismissed).
|
|
19
|
-
* - 同时只能有一个 pending 确认 (REPL 串行 chat-turn 拓扑保证).
|
|
20
|
-
* - offerLine 二次调用 = 抛错 (caller bug, 不能丢 silent).
|
|
21
|
-
*
|
|
22
|
-
* 拍板 (D-19 §out of scope): 不接 RPC confirmedTools (D-17), 不接 user policy
|
|
23
|
-
* config (D-16), 不做 TUI (D-18).
|
|
24
|
-
*/
|
|
25
|
-
export function createReplConfirm(opts) {
|
|
26
|
-
let pending = null;
|
|
27
|
-
const settle = (v) => {
|
|
28
|
-
if (!pending)
|
|
29
|
-
return;
|
|
30
|
-
const p = pending;
|
|
31
|
-
pending = null;
|
|
32
|
-
if (p.abortHandler && p.abortHandler !== null) {
|
|
33
|
-
// no-op: signal listener 已被 offerLine / abortHandler 清理
|
|
34
|
-
}
|
|
35
|
-
p.resolve(v);
|
|
36
|
-
};
|
|
37
|
-
const confirm = (prompt, callOpts) => {
|
|
38
|
-
if (pending) {
|
|
39
|
-
// 拍板 (D-19): 同时只能有一个 pending, 二次 confirm 抛错 (caller bug).
|
|
40
|
-
return Promise.reject(new Error('repl-confirm: confirm() called while another confirmation is in flight. ' +
|
|
41
|
-
'Caller must serialize via hasPending() guard.'));
|
|
42
|
-
}
|
|
43
|
-
// 拍板 (D-19): caller 拼好 prompt, 我们只追加 [y/N]: 后缀.
|
|
44
|
-
const fullPrompt = `${prompt} [y/N]: `;
|
|
45
|
-
opts.output.write(fullPrompt);
|
|
46
|
-
return new Promise((resolve) => {
|
|
47
|
-
const p = {
|
|
48
|
-
prompt: fullPrompt,
|
|
49
|
-
resolve,
|
|
50
|
-
abortHandler: null,
|
|
51
|
-
};
|
|
52
|
-
pending = p;
|
|
53
|
-
// abort signal — 立即 resolve null (dismissed)
|
|
54
|
-
if (callOpts?.signal) {
|
|
55
|
-
if (callOpts.signal.aborted) {
|
|
56
|
-
settle(null);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const handler = () => settle(null);
|
|
60
|
-
callOpts.signal.addEventListener('abort', handler, { once: true });
|
|
61
|
-
p.abortHandler = handler;
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
const offerLine = (rawLine) => {
|
|
66
|
-
if (!pending)
|
|
67
|
-
return false;
|
|
68
|
-
const answer = rawLine.trim().toLowerCase();
|
|
69
|
-
if (answer === 'y' || answer === 'yes') {
|
|
70
|
-
settle(true);
|
|
71
|
-
}
|
|
72
|
-
else if (answer === 'n' || answer === 'no' || answer === '') {
|
|
73
|
-
settle(false);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
// 拍板 (D-15 §Decision 3, D-19 沿用): other 当 N 处理 (不打扰)
|
|
77
|
-
settle(false);
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
};
|
|
81
|
-
const hasPending = () => pending !== null;
|
|
82
|
-
const dismiss = () => {
|
|
83
|
-
if (pending)
|
|
84
|
-
settle(null);
|
|
85
|
-
};
|
|
86
|
-
return { confirm, offerLine, hasPending, dismiss };
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=repl-confirm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl-confirm.js","sourceRoot":"","sources":["../../src/repl/repl-confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAsCH,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,MAAM,MAAM,GAAG,CAAC,CAAiB,EAAQ,EAAE;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,CAAC,GAAG,OAAO,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC9C,wDAAwD;QAC1D,CAAC;QACD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,OAAO,GAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,0DAA0D;YAC1D,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,0EAA0E;gBACxE,+CAA+C,CAClD,CACF,CAAC;QACJ,CAAC;QACD,gDAAgD;QAChD,MAAM,UAAU,GAAG,GAAG,MAAM,UAAU,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9B,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAmB;gBACxB,MAAM,EAAE,UAAU;gBAClB,OAAO;gBACP,YAAY,EAAE,IAAI;aACnB,CAAC;YACF,OAAO,GAAG,CAAC,CAAC;YAEZ,6CAA6C;YAC7C,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAW,EAAE;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;IAEnD,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC"}
|