pi-rehydra 1.0.0 → 1.0.2

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 (108) hide show
  1. package/README.en.md +59 -55
  2. package/README.md +59 -55
  3. package/dist/host-agnostic/normalize-options.d.ts +2 -0
  4. package/dist/host-agnostic/normalize-options.d.ts.map +1 -1
  5. package/dist/host-agnostic/normalize-options.js +1 -0
  6. package/dist/host-agnostic/normalize-options.js.map +1 -1
  7. package/dist/pi-extension/extension.d.ts +2 -2
  8. package/dist/pi-extension/extension.d.ts.map +1 -1
  9. package/dist/pi-extension/extension.js +39 -15
  10. package/dist/pi-extension/extension.js.map +1 -1
  11. package/dist/pi-extension/host-types.d.ts +6 -1
  12. package/dist/pi-extension/host-types.d.ts.map +1 -1
  13. package/dist/pi-extension/options.d.ts +2 -0
  14. package/dist/pi-extension/options.d.ts.map +1 -1
  15. package/dist/proxy/rehydra-fetch.d.ts.map +1 -1
  16. package/dist/proxy/rehydra-fetch.js +16 -5
  17. package/dist/proxy/rehydra-fetch.js.map +1 -1
  18. package/dist/recognizers/custom-id.d.ts.map +1 -1
  19. package/dist/recognizers/custom-id.js +5 -2
  20. package/dist/recognizers/custom-id.js.map +1 -1
  21. package/dist/storage/sqlite.js +18 -18
  22. package/dist/utils/json-walk.d.ts +0 -11
  23. package/dist/utils/json-walk.d.ts.map +1 -1
  24. package/dist/utils/json-walk.js +0 -34
  25. package/dist/utils/json-walk.js.map +1 -1
  26. package/dist/utils/tool-arguments.d.ts +43 -0
  27. package/dist/utils/tool-arguments.d.ts.map +1 -0
  28. package/dist/utils/tool-arguments.js +153 -0
  29. package/dist/utils/tool-arguments.js.map +1 -0
  30. package/index.d.ts +10 -10
  31. package/index.js +6 -6
  32. package/package.json +58 -56
  33. package/dist/opencode-plugin/git-identity.d.ts +0 -3
  34. package/dist/opencode-plugin/git-identity.d.ts.map +0 -1
  35. package/dist/opencode-plugin/git-identity.js +0 -37
  36. package/dist/opencode-plugin/git-identity.js.map +0 -1
  37. package/dist/opencode-plugin/github-username.d.ts +0 -3
  38. package/dist/opencode-plugin/github-username.d.ts.map +0 -1
  39. package/dist/opencode-plugin/github-username.js +0 -41
  40. package/dist/opencode-plugin/github-username.js.map +0 -1
  41. package/dist/opencode-plugin/identity-recognizer.d.ts +0 -5
  42. package/dist/opencode-plugin/identity-recognizer.d.ts.map +0 -1
  43. package/dist/opencode-plugin/identity-recognizer.js +0 -21
  44. package/dist/opencode-plugin/identity-recognizer.js.map +0 -1
  45. package/dist/opencode-plugin/index.d.ts +0 -7
  46. package/dist/opencode-plugin/index.d.ts.map +0 -1
  47. package/dist/opencode-plugin/index.js +0 -6
  48. package/dist/opencode-plugin/index.js.map +0 -1
  49. package/dist/opencode-plugin/plugin.d.ts +0 -39
  50. package/dist/opencode-plugin/plugin.d.ts.map +0 -1
  51. package/dist/opencode-plugin/plugin.js +0 -294
  52. package/dist/opencode-plugin/plugin.js.map +0 -1
  53. package/dist/opencode-plugin/types.d.ts +0 -33
  54. package/dist/opencode-plugin/types.d.ts.map +0 -1
  55. package/dist/opencode-plugin/types.js +0 -5
  56. package/dist/opencode-plugin/types.js.map +0 -1
  57. package/dist/opencode-plugin/v2/anon-state.d.ts +0 -12
  58. package/dist/opencode-plugin/v2/anon-state.d.ts.map +0 -1
  59. package/dist/opencode-plugin/v2/anon-state.js +0 -14
  60. package/dist/opencode-plugin/v2/anon-state.js.map +0 -1
  61. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts +0 -13
  62. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts.map +0 -1
  63. package/dist/opencode-plugin/v2/deep-rehydrate.js +0 -33
  64. package/dist/opencode-plugin/v2/deep-rehydrate.js.map +0 -1
  65. package/dist/opencode-plugin/v2/index.d.ts +0 -17
  66. package/dist/opencode-plugin/v2/index.d.ts.map +0 -1
  67. package/dist/opencode-plugin/v2/index.js +0 -17
  68. package/dist/opencode-plugin/v2/index.js.map +0 -1
  69. package/dist/opencode-plugin/v2/logger.d.ts +0 -24
  70. package/dist/opencode-plugin/v2/logger.d.ts.map +0 -1
  71. package/dist/opencode-plugin/v2/logger.js +0 -73
  72. package/dist/opencode-plugin/v2/logger.js.map +0 -1
  73. package/dist/opencode-plugin/v2/options.d.ts +0 -33
  74. package/dist/opencode-plugin/v2/options.d.ts.map +0 -1
  75. package/dist/opencode-plugin/v2/options.js +0 -63
  76. package/dist/opencode-plugin/v2/options.js.map +0 -1
  77. package/dist/opencode-plugin/v2/register-hooks.d.ts +0 -43
  78. package/dist/opencode-plugin/v2/register-hooks.d.ts.map +0 -1
  79. package/dist/opencode-plugin/v2/register-hooks.js +0 -160
  80. package/dist/opencode-plugin/v2/register-hooks.js.map +0 -1
  81. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts +0 -101
  82. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts.map +0 -1
  83. package/dist/opencode-plugin/v2/rehydrate-tail.js +0 -147
  84. package/dist/opencode-plugin/v2/rehydrate-tail.js.map +0 -1
  85. package/dist/opencode-plugin/v2/response-rehydrate.d.ts +0 -78
  86. package/dist/opencode-plugin/v2/response-rehydrate.d.ts.map +0 -1
  87. package/dist/opencode-plugin/v2/response-rehydrate.js +0 -210
  88. package/dist/opencode-plugin/v2/response-rehydrate.js.map +0 -1
  89. package/dist/opencode-plugin/v2/scrub-messages.d.ts +0 -51
  90. package/dist/opencode-plugin/v2/scrub-messages.d.ts.map +0 -1
  91. package/dist/opencode-plugin/v2/scrub-messages.js +0 -105
  92. package/dist/opencode-plugin/v2/scrub-messages.js.map +0 -1
  93. package/dist/opencode-plugin/v2/sessions.d.ts +0 -17
  94. package/dist/opencode-plugin/v2/sessions.d.ts.map +0 -1
  95. package/dist/opencode-plugin/v2/sessions.js +0 -23
  96. package/dist/opencode-plugin/v2/sessions.js.map +0 -1
  97. package/dist/opencode-plugin/v2/sse.d.ts +0 -101
  98. package/dist/opencode-plugin/v2/sse.d.ts.map +0 -1
  99. package/dist/opencode-plugin/v2/sse.js +0 -235
  100. package/dist/opencode-plugin/v2/sse.js.map +0 -1
  101. package/dist/opencode-plugin/v2/types.d.ts +0 -188
  102. package/dist/opencode-plugin/v2/types.d.ts.map +0 -1
  103. package/dist/opencode-plugin/v2/types.js +0 -10
  104. package/dist/opencode-plugin/v2/types.js.map +0 -1
  105. package/dist/opencode-plugin/vcs-command.d.ts +0 -3
  106. package/dist/opencode-plugin/vcs-command.d.ts.map +0 -1
  107. package/dist/opencode-plugin/vcs-command.js +0 -34
  108. package/dist/opencode-plugin/vcs-command.js.map +0 -1
package/README.en.md CHANGED
@@ -1,56 +1,60 @@
1
- # pi-rehydra
2
-
3
- Scrub detected secrets from Pi conversations before the main LLM request.
4
-
5
- [中文](./README.md)
6
-
7
- This extension intercepts the conversation between [Pi](https://pi.dev) and the LLM. Secrets from your `.env` files are replaced with placeholders before they leave your machine, and transparently restored before any tool (shell commands, file writes, etc.) executes locally.
8
-
9
- It uses Pi's `ExtensionAPI` events: `context_with_system`, `tool_call`, `tool_result`, `message_end`, and `session_start` / `session_shutdown`.
10
-
11
- Detection and rehydration are local. The model only sees placeholders; your tools always see real values.
12
-
13
- ## Install
14
-
15
- ```bash
16
- pi install npm:pi-rehydra
17
- ```
18
-
19
- Pi writes the package entry to `~/.pi/agent/settings.json`. Edit that file to add extension options:
20
-
21
- ```json
22
- {
23
- "packages": [
24
- {
25
- "source": "npm:pi-rehydra"
26
- }
27
- ],
28
- "rehydra": {
29
- "envFiles": [".env", ".env.local"],
30
- "redactValues": ["sk-live-abc123..."]
31
- }
32
- }
33
- ```
34
-
35
- Every key under `rehydra` is an extension option: `envFiles`, `redactValues`, `minValueLength`, `disableTypes`, `locale`, `vcsIdentities`, `policy`, `anonymizer`, `tagFormat`. `envFiles` defaults to `["**/.env*"]`, skipping `node_modules`, `.git`, and symlinks.
36
-
37
- ## How it works
38
-
39
- | Event | Effect |
40
- |---|---|
41
- | `session_start` | Instantiate the anonymizer, build the session map, parse the `rehydra` config |
42
- | `context_with_system` | Anonymize all request messages and inject the rehydra instruction when needed |
43
- | `tool_call` | Restore PII tags in tool arguments before local execution |
44
- | `tool_result` | Anonymize the completed tool result before it re-enters model context |
45
- | `message_end` | Rewrite the final assistant message so PII tags are replaced with real values |
46
- | `session_shutdown` | Dispose of the anonymizer and session registry |
47
-
48
- ## Limitations
49
-
50
- - Model calls that bypass these hooks (rare, e.g. user-initiated notes) are not intercepted.
51
- - `URL` and `IP_ADDRESS` are disabled by default; re-enable with `disableTypes: []`.
52
- - This extension cannot guarantee that title or compaction summaries stay sanitized — disable title agents if you need titles to be human-readable.
53
-
54
- ## License
55
-
1
+ # pi-rehydra
2
+
3
+ Scrub detected secrets from Pi conversations before the main LLM request.
4
+
5
+ [中文](./README.md)
6
+
7
+ This extension intercepts the conversation between [Pi](https://pi.dev) and the LLM. Secrets from your `.env` files are replaced with placeholders before they leave your machine, and transparently restored before any tool (shell commands, file writes, etc.) executes locally; a placeholder that cannot be restored blocks that tool call.
8
+
9
+ It uses Pi's `ExtensionAPI` events: `context_with_system`, `tool_call`, `tool_result`, `message_end`, and `session_start` / `session_shutdown`.
10
+
11
+ Detection and rehydration are local. The model only sees placeholders; your tools always see real values.
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ pi install npm:pi-rehydra
17
+ ```
18
+
19
+ Pi writes the package entry to `~/.pi/agent/settings.json`. Edit that file to add extension options:
20
+
21
+ ```json
22
+ {
23
+ "packages": [
24
+ {
25
+ "source": "npm:pi-rehydra"
26
+ }
27
+ ],
28
+ "rehydra": {
29
+ "envFiles": [".env", ".env.local"],
30
+ "redactValues": ["sk-live-abc123..."],
31
+ "allowLiteralTagsIn": ["write", "edit"]
32
+ }
33
+ }
34
+ ```
35
+
36
+ Every key under `rehydra` is an extension option: `envFiles`, `redactValues`, `minValueLength`, `disableTypes`, `locale`, `vcsIdentities`, `policy`, `anonymizer`, `tagFormat`. `envFiles` defaults to `["**/.env*"]`, skipping `node_modules`, `.git`, and symlinks.
37
+
38
+ `allowLiteralTagsIn` defaults to an empty array (always block). Tools listed here — typically `write` and `edit` — keep an **unresolvable** literal tag in their arguments instead of aborting, so you can write documentation or tests that intentionally show tag examples. Every allowed occurrence is logged (`allowed literal tag in tool args`, tool name and argument path only). Resolvable tags are still restored in every tool.
39
+
40
+ ## How it works
41
+
42
+ | Event | Effect |
43
+ |---|---|
44
+ | `session_start` | Instantiate the anonymizer, build the session map, parse the `rehydra` config |
45
+ | `context_with_system` | Anonymize all request messages and inject the rehydra instruction when needed |
46
+ | `tool_call` | Strictly restore PII tags in tool arguments before local execution; an unresolvable tag blocks the call |
47
+ | `tool_result` | Anonymize the completed tool result before it re-enters model context |
48
+ | `message_end` | Rewrite the final assistant message so PII tags are replaced with real values |
49
+ | `session_shutdown` | Dispose of the anonymizer and session registry |
50
+
51
+ ## Limitations
52
+ - Tool-argument rehydration is strict: when a tag is absent from this session's map (or the map is missing, or decryption fails), the tool call is blocked rather than run with `<PII .../>` as a real value. A placeholder can only be restored from the same session's map; the default map is in memory, so tags from before a process restart cannot be restored.
53
+
54
+ - Model calls that bypass these hooks (rare, e.g. user-initiated notes) are not intercepted.
55
+ - `URL` and `IP_ADDRESS` are disabled by default; re-enable with `disableTypes: []`.
56
+ - This extension cannot guarantee that title or compaction summaries stay sanitized — disable title agents if you need titles to be human-readable.
57
+
58
+ ## License
59
+
56
60
  MIT
package/README.md CHANGED
@@ -1,56 +1,60 @@
1
- # pi-rehydra
2
-
3
- 在主 LLM 请求发出之前,脱敏 Pi 对话中检测到的密钥。
4
-
5
- [English](./README.en.md)
6
-
7
- 这个扩展拦截 [Pi](https://pi.dev) 与 LLM 之间的对话。你的 `.env` 文件中的密钥在离开本机前被替换为占位符,并在工具(shell 命令、文件写入等)在本地执行前透明还原。
8
-
9
- 它依赖 Pi 的 `ExtensionAPI`:`context_with_system`、`tool_call`、`tool_result`、`message_end`、`session_start` / `session_shutdown`。
10
-
11
- 脱敏和还原都在本地进行;模型只用占位符推理,工具始终拿到真实值。
12
-
13
- ## 安装
14
-
15
- ```bash
16
- pi install npm:pi-rehydra
17
- ```
18
-
19
- Pi 会在 `~/.pi/agent/settings.json` 写入包声明。然后编辑该文件添加扩展配置:
20
-
21
- ```json
22
- {
23
- "packages": [
24
- {
25
- "source": "npm:pi-rehydra"
26
- }
27
- ],
28
- "rehydra": {
29
- "envFiles": [".env", ".env.local"],
30
- "redactValues": ["sk-live-abc123..."]
31
- }
32
- }
33
- ```
34
-
35
- `rehydra` 键的所有字段都是扩展配置项:`envFiles`、`redactValues`、`minValueLength`、`disableTypes`、`locale`、`vcsIdentities`、`policy`、`anonymizer`、`tagFormat`。`envFiles` 默认是 `["**/.env*"]`,会跳过 `node_modules`、`.git` 和符号链接。
36
-
37
- ## 工作原理
38
-
39
- | 钩子 | 作用 |
40
- |---|---|
41
- | `session_start` | 实例化匿名器、装配会话映射、解析 `rehydra` 配置 |
42
- | `context_with_system` | 匿名化模型请求前的所有消息,并按需追加 rehydra 指令 |
43
- | `tool_call` | 在工具执行前还原工具入参中的 PII 标签 |
44
- | `tool_result` | 在结果返回给模型前脱敏真实 PII |
45
- | `message_end` | 改写最终回答的文本块,把 PII 标签还原为真实值 |
46
- | `session_shutdown` | 释放匿名器与会话注册表 |
47
-
48
- ## 限制
49
-
50
- - 不会拦截用户在 UI 里粘贴的、且未走这些 hook 的模型调用。
51
- - 默认禁用 `URL` 和 `IP_ADDRESS`;通过 `disableTypes: []` 重新启用。
52
- - Pi 扩展无法保证消息标题(title)与元数据走相同的 hook,因此这些字段仍可能包含占位符。建议在脱敏时启用完整的 PII 脱敏策略。
53
-
54
- ## License
55
-
1
+ # pi-rehydra
2
+
3
+ 在主 LLM 请求发出之前,脱敏 Pi 对话中检测到的密钥。
4
+
5
+ [English](./README.en.md)
6
+
7
+ 这个扩展拦截 [Pi](https://pi.dev) 与 LLM 之间的对话。你的 `.env` 文件中的密钥在离开本机前被替换为占位符,并在工具(shell 命令、文件写入等)在本地执行前透明还原;无法还原的占位符会阻止该次工具调用。
8
+
9
+ 它依赖 Pi 的 `ExtensionAPI`:`context_with_system`、`tool_call`、`tool_result`、`message_end`、`session_start` / `session_shutdown`。
10
+
11
+ 脱敏和还原都在本地进行;模型只用占位符推理,工具始终拿到真实值。
12
+
13
+ ## 安装
14
+
15
+ ```bash
16
+ pi install npm:pi-rehydra
17
+ ```
18
+
19
+ Pi 会在 `~/.pi/agent/settings.json` 写入包声明。然后编辑该文件添加扩展配置:
20
+
21
+ ```json
22
+ {
23
+ "packages": [
24
+ {
25
+ "source": "npm:pi-rehydra"
26
+ }
27
+ ],
28
+ "rehydra": {
29
+ "envFiles": [".env", ".env.local"],
30
+ "redactValues": ["sk-live-abc123..."],
31
+ "allowLiteralTagsIn": ["write", "edit"]
32
+ }
33
+ }
34
+ ```
35
+
36
+ `rehydra` 键的所有字段都是扩展配置项:`envFiles`、`redactValues`、`minValueLength`、`disableTypes`、`locale`、`vcsIdentities`、`policy`、`anonymizer`、`tagFormat`。`envFiles` 默认是 `["**/.env*"]`,会跳过 `node_modules`、`.git` 和符号链接。
37
+
38
+ `allowLiteralTagsIn` 默认是空数组(一律阻断)。列进这个数组的工具(通常是 `write`、`edit`)在参数里出现**无法还原**的字面标签时不再阻断,而是原样保留——用于写文档或测试时故意写标签示例。放行会在日志里留痕(`allowed literal tag in tool args`,只带工具名与参数路径);能还原的标签在任何工具里都照常还原。
39
+
40
+ ## 工作原理
41
+
42
+ | 钩子 | 作用 |
43
+ |---|---|
44
+ | `session_start` | 实例化匿名器、装配会话映射、解析 `rehydra` 配置 |
45
+ | `context_with_system` | 匿名化模型请求前的所有消息,并按需追加 rehydra 指令 |
46
+ | `tool_call` | 在工具执行前严格还原工具入参中的 PII 标签;任一标签无法还原即阻断该次调用 |
47
+ | `tool_result` | 在结果返回给模型前脱敏真实 PII |
48
+ | `message_end` | 改写最终回答的文本块,把 PII 标签还原为真实值 |
49
+ | `session_shutdown` | 释放匿名器与会话注册表 |
50
+
51
+ ## 限制
52
+ - 工具入参还原是严格的:标签不在本次会话映射中(或映射缺失、解密失败)时,该次工具调用会被阻止,不会把 `<PII .../>` 当作真实值执行。占位符只能由同一条会话的映射还原;默认使用内存映射,进程重启后旧标签无法还原。
53
+
54
+ - 不会拦截用户在 UI 里粘贴的、且未走这些 hook 的模型调用。
55
+ - 默认禁用 `URL` 和 `IP_ADDRESS`;通过 `disableTypes: []` 重新启用。
56
+ - Pi 扩展无法保证消息标题(title)与元数据走相同的 hook,因此这些字段仍可能包含占位符。建议在脱敏时启用完整的 PII 脱敏策略。
57
+
58
+ ## License
59
+
56
60
  MIT
@@ -22,6 +22,8 @@ export interface RehydraSharedOptions {
22
22
  minValueLength?: number;
23
23
  disableTypes?: PIITypeName[];
24
24
  vcsIdentities?: boolean;
25
+ /** 允许这些工具的参数里出现无法还原的字面标签(默认空 = 一律阻断)。 */
26
+ allowLiteralTagsIn?: string[];
25
27
  locale?: string;
26
28
  tagFormat?: TagFormat;
27
29
  policy?: Partial<AnonymizationPolicy>;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-options.d.ts","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,OAAO,EAGR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,mBAAmB,EAEnB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAA0B,CAAC;AAC1E,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AA4CD,oCAAoC;AACpC,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAsB1E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAmBlB;AAGD,yCAAyC;AACzC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAoB1C"}
1
+ {"version":3,"file":"normalize-options.d.ts","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,OAAO,EAGR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,mBAAmB,EAEnB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAA0B,CAAC;AAC1E,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AA4CD,oCAAoC;AACpC,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAuB1E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAmBlB;AAGD,yCAAyC;AACzC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAoB1C"}
@@ -57,6 +57,7 @@ export function normalizeRehydraOptions(raw) {
57
57
  minValueLength: asPositiveInteger(source.minValueLength) ?? DEFAULT_MIN_VALUE_LENGTH,
58
58
  disableTypes: asPIITypeNames(source.disableTypes) ?? DEFAULT_DISABLE_TYPES,
59
59
  vcsIdentities: typeof source.vcsIdentities === "boolean" ? source.vcsIdentities : false,
60
+ allowLiteralTagsIn: asStringArray(source.allowLiteralTagsIn) ?? [],
60
61
  locale: typeof source.locale === "string" ? source.locale : undefined,
61
62
  tagFormat: asTagFormat(source.tagFormat),
62
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Pi 扩展的 ExtensionAPI 适配层。
3
3
  *
4
- * 与 {@link scrubCore} / `deepRehydrate` 配合,把脱敏能力挂到 Pi 的事件钩子上。
4
+ * 与 {@link scrubCore} / `rehydrateToolArgumentsInPlace` 配合,把脱敏能力挂到 Pi 的事件钩子上。
5
5
  *
6
6
  * - `context_with_system` 在每个 LLM 请求前对 `messages` 做脱敏;
7
- * - `tool_call` 在工具执行前就地还原工具入参中的 PII 标签;
7
+ * - `tool_call` 在工具执行前严格还原入参标签;还原不全即阻断该次调用;
8
8
  * - `tool_result` 在结果回填给模型前就地脱敏真实 PII;
9
9
  * - `message_end` 改写最终 assistant 文本,把 PII 标签还原为真值;
10
10
  * - `session_start` / `session_shutdown` 管理会话与匿名器生命周期;
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/pi-extension/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAGV,YAAY,EAOb,MAAM,iBAAiB,CAAC;AAuUzB,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,wBAAwB;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA+M/D"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/pi-extension/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAGV,YAAY,EAOb,MAAM,iBAAiB,CAAC;AA+UzB,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,wBAAwB;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAmO/D"}
@@ -9,7 +9,7 @@ import { githubUsernameRecognizer } from "./github-username.js";
9
9
  import { gitIdentityRecognizer } from "./git-identity.js";
10
10
  import { protectIdentityTags } from "./identity-recognizer.js";
11
11
  import { scrubCore, } from "../host-agnostic/scrub.js";
12
- import { deepRehydrateJson } from "../utils/json-walk.js";
12
+ import { ToolArgumentRehydrateError, rehydrateToolArgumentsInPlace, } from "../utils/tool-arguments.js";
13
13
  /** 构造脱敏策略:对启用 `vcsIdentities` 的命令叠加 GITHUB_USERNAME / PERSON。 */
14
14
  function buildIdentityPolicyBuilder(state) {
15
15
  return (types) => {
@@ -123,8 +123,9 @@ function normalizeMessagesForScrub(messages) {
123
123
  * scrub 后把 parts 改动写回到 AgentMessage,保持 Pi 原始 content 结构。
124
124
  *
125
125
  * - user string content:取 scrub 后第一段 text 还原回字符串;
126
- * - toolResult:scrub 侧逐 text 块收集为文本数组,还原时按块索引逐块写回,
127
- * 多轮往返稳定(不合并、不压平);
126
+ * - toolResult:scrub 侧逐 text 块收集为文本数组,这里按块索引逐块写回
127
+ * (多轮往返稳定,不合并、不压平);**不能**拿 scrub 侧结构覆盖 Pi 的
128
+ * content,那会让 toolResult 变成 scrub 侧结构、模型看不到任何工具输出;
128
129
  * - 其余(user / assistant 数组 content):parts 与原始 content 元素一一对应,
129
130
  * 按块类型回写 text / thinking / toolCall.arguments。
130
131
  */
@@ -157,7 +158,7 @@ function restoreMessagesFromScrub(originals, scrubbed, userStringContent) {
157
158
  restored.forEach((value, i) => {
158
159
  const block = textBlocks[i];
159
160
  if (block !== undefined && typeof value === "string") {
160
- block.text = value;
161
+ block["text"] = value;
161
162
  }
162
163
  });
163
164
  return;
@@ -172,14 +173,14 @@ function restoreMessagesFromScrub(originals, scrubbed, userStringContent) {
172
173
  }
173
174
  /** 把单个 scrub part 的结果写回对应的 Pi content 块,不改变块结构。 */
174
175
  function writeScrubbedBlock(block, part) {
175
- if (block.type === "text" && typeof part.text === "string") {
176
- block.text = part.text;
176
+ if (block["type"] === "text" && typeof part.text === "string") {
177
+ block["text"] = part.text;
177
178
  }
178
- else if (block.type === "thinking" && typeof part.text === "string") {
179
- block.thinking = part.text;
179
+ else if (block["type"] === "thinking" && typeof part.text === "string") {
180
+ block["thinking"] = part.text;
180
181
  }
181
- else if (block.type === "toolCall" && part.type === "tool-call") {
182
- block.arguments = part.input;
182
+ else if (block["type"] === "toolCall" && part.type === "tool-call") {
183
+ block["arguments"] = part.input;
183
184
  }
184
185
  }
185
186
  function agentMessageToScrub(message) {
@@ -209,7 +210,7 @@ function agentMessageToScrub(message) {
209
210
  if (role === "toolResult") {
210
211
  const toolCallId = message.toolCallId;
211
212
  const content = message.content;
212
- // 逐 text 块收集为文本数组:scrubValue 会递归逐串脱敏,回写可逐块还原,
213
+ // 逐 text 块收集为文本数组:scrub 侧会递归逐串脱敏,回写时按块索引还原,
213
214
  // 多轮往返保持不动点(不 join、不压平)。
214
215
  const texts = [];
215
216
  if (Array.isArray(content)) {
@@ -313,6 +314,7 @@ export function createRehydraPiExtension(pi) {
313
314
  tagPrefix,
314
315
  rehydraInstruction,
315
316
  vcsIdentities: options.vcsIdentities === true,
317
+ allowLiteralTagsIn: new Set(options.allowLiteralTagsIn ?? []),
316
318
  resolveSession(sessionId) {
317
319
  let session = sessionMap.get(sessionId);
318
320
  if (session === undefined) {
@@ -369,11 +371,33 @@ export function createRehydraPiExtension(pi) {
369
371
  const state = runtime.state;
370
372
  if (state === undefined)
371
373
  return undefined;
372
- // Pi 把工具入参存放在 `event.input` 中;直接 deep-rehydrate。
373
374
  const session = state.resolveSession(ctx.sessionManager.getSessionId());
374
- // `deepRehydrateJson` 就地修改对象/数组并返回同一引用,工具入参始终是对象,
375
- // 因此无需重新赋值(避免 any 赋值与冗余断言)。
376
- await deepRehydrateJson(event.input, (text) => session.rehydrate(text), state.tagPrefix);
375
+ // 严格还原:还原不全就阻断,绝不把 `<PII .../>` 当真实值交给工具执行。
376
+ // 宿主契约(已核对 pi 运行时):`{block: true}` 会直接产出 error 工具结果、不执行工具。
377
+ // 放行是显式配置的豁免,必须留痕;logger 复用扩展统一的 output 格式。
378
+ const log = createConsoleLogger();
379
+ try {
380
+ await rehydrateToolArgumentsInPlace(event.input, session, {
381
+ tagFormat: state.tagFormat,
382
+ allowUnresolved: state.allowLiteralTagsIn.has(event.toolName),
383
+ onUnresolvedTag: (path) => {
384
+ // 只记工具名与参数路径,不记正文。
385
+ log.warn("allowed literal tag in tool args", {
386
+ tool: event.toolName,
387
+ path,
388
+ });
389
+ },
390
+ });
391
+ }
392
+ catch (error) {
393
+ const code = error instanceof ToolArgumentRehydrateError ? error.code : "rehydrate-failed";
394
+ // reason 只带原因码,不回显命令或参数正文。
395
+ return {
396
+ block: true,
397
+ reason: `工具参数包含无法还原的 PII 占位符(${code}),已阻止执行。` +
398
+ `请改用真实值,或检查本次会话的脱敏映射是否仍然可用。`,
399
+ };
400
+ }
377
401
  return undefined;
378
402
  });
379
403
  pi.on("tool_result", async (event, ctx) => {
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/pi-extension/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/pi-extension/extension.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,11 @@ export interface ToolCallEvent {
76
76
  input: unknown;
77
77
  parentToolCallId?: string;
78
78
  }
79
+ /** `tool_call` 处理器的返回值:`block` 为真时 Pi 不执行该工具。 */
80
+ export interface ToolCallEventResult {
81
+ block?: boolean;
82
+ reason?: string;
83
+ }
79
84
  /** 工具执行完成后的结果事件。 */
80
85
  export interface ToolResultEvent {
81
86
  type: "tool_result";
@@ -110,7 +115,7 @@ export interface ExtensionAPI {
110
115
  on(event: "session_start", handler: ExtensionEventHandler<SessionStartEvent>): () => void;
111
116
  on(event: "session_shutdown", handler: ExtensionEventHandler<SessionShutdownEvent>): () => void;
112
117
  on(event: "context_with_system", handler: ExtensionEventHandler<ContextWithSystemEvent, ContextEventResult>): () => void;
113
- on(event: "tool_call", handler: ExtensionEventHandler<ToolCallEvent>): () => void;
118
+ on(event: "tool_call", handler: ExtensionEventHandler<ToolCallEvent, ToolCallEventResult | undefined>): () => void;
114
119
  on(event: "tool_result", handler: ExtensionEventHandler<ToolResultEvent, ToolResultEventResult | undefined>): () => void;
115
120
  on(event: "message_end", handler: ExtensionEventHandler<MessageEndEvent, MessageEndEventResult | undefined>): () => void;
116
121
  registerCommand(name: string, options: RegisteredCommandOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"host-types.d.ts","sourceRoot":"","sources":["../../src/pi-extension/host-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-types.d.ts","sourceRoot":"","sources":["../../src/pi-extension/host-types.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ export interface RehydraPiExtensionOptions {
24
24
  locale?: string;
25
25
  /** Redact identities found in Git and GitHub CLI output. */
26
26
  vcsIdentities?: boolean;
27
+ /** 允许这些工具的参数里出现无法还原的字面标签(默认空 = 一律阻断)。 */
28
+ allowLiteralTagsIn?: string[];
27
29
  /** Policy overrides applied to every scrub pass. */
28
30
  policy?: Partial<AnonymizationPolicy>;
29
31
  /** Advanced: full anonymizer config (overrides envFiles/redactValues/minValueLength). */
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/pi-extension/options.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,oBAAoB;AACpB,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACxC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,yFAAyF;IACzF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,gCAAgC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/pi-extension/options.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,oBAAoB;AACpB,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACxC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,yFAAyF;IACzF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,gCAAgC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"rehydra-fetch.d.ts","sourceRoot":"","sources":["../../src/proxy/rehydra-fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgDrD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,UAAU,CAAC,KAAK,CAkMzB"}
1
+ {"version":3,"file":"rehydra-fetch.d.ts","sourceRoot":"","sources":["../../src/proxy/rehydra-fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoDrD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,UAAU,CAAC,KAAK,CAkMzB"}
@@ -13,6 +13,7 @@ import { buildPIISystemInstruction } from "./system-instruction.js";
13
13
  import { buildTagPrefix } from "../utils/regex.js";
14
14
  import { accumulateToolStream, readToolResponse, toolResultStream } from "./tool-loop-stream.js";
15
15
  import { DEFAULT_TAG_FORMAT } from "../types/index.js";
16
+ import { ToolArgumentRehydrateError, rehydrateToolArgumentsInPlace, } from "../utils/tool-arguments.js";
16
17
  /** Headers to strip from proxied responses — the body is decompressed and may be modified. */
17
18
  const STRIP_RESPONSE_HEADERS = ["content-encoding", "content-length"];
18
19
  function stripResponseHeaders(headers) {
@@ -309,7 +310,7 @@ async function rehydrateJSONResponseFromBody(body, response, session, provider)
309
310
  * Handle multi-round tool execution loop.
310
311
  *
311
312
  * When the LLM returns tool calls, this function:
312
- * 1. Rehydrates tool call arguments (restores real PII)
313
+ * 1. Rehydrates tool call arguments (restores real PII); unresolved placeholders abort
313
314
  * 2. Calls the user's onToolCall callback for each tool call
314
315
  * 3. Anonymizes the result
315
316
  * 4. Appends assistant + tool result messages to the conversation
@@ -318,6 +319,7 @@ async function rehydrateJSONResponseFromBody(body, response, session, provider)
318
319
  */
319
320
  async function handleToolLoop(initialResponse, anonymizedBody, session, provider, config, originalRequest) {
320
321
  const maxRounds = config.maxToolRounds ?? 10;
322
+ const tagFormat = config.anonymizer?.tagFormat ?? DEFAULT_TAG_FORMAT;
321
323
  // Parse the initial response
322
324
  const readResponse = (response) => readToolResponse(response, config.maxToolResponseBytes ?? 8 * 1024 * 1024, originalRequest.signal);
323
325
  const rawText = await readResponse(initialResponse);
@@ -348,15 +350,24 @@ async function handleToolLoop(initialResponse, anonymizedBody, session, provider
348
350
  // Rehydrate arguments and invoke the user's callback
349
351
  const toolResults = [];
350
352
  for (const tc of toolCallInfos) {
351
- // Rehydrate the arguments string to restore real PII
353
+ // 严格还原工具参数:JSON 解析失败才退化为 `{ raw }`,但还原本身失败必须
354
+ // 中止 —— 否则 `<PII .../>` 会作为真实参数传给工具。
352
355
  originalRequest.signal.throwIfAborted();
353
356
  let parsedArgs;
354
357
  try {
355
- const args = JSON.parse(tc.arguments);
356
- parsedArgs = await session.rehydrateJson(args);
358
+ parsedArgs = JSON.parse(tc.arguments);
357
359
  }
358
360
  catch {
359
- parsedArgs = { raw: await session.rehydrate(tc.arguments) };
361
+ parsedArgs = { raw: tc.arguments };
362
+ }
363
+ try {
364
+ parsedArgs = (await rehydrateToolArgumentsInPlace(parsedArgs, session, {
365
+ tagFormat,
366
+ }));
367
+ }
368
+ catch (err) {
369
+ const code = err instanceof ToolArgumentRehydrateError ? err.code : "rehydrate-failed";
370
+ return errorResponse(400, `Tool call "${tc.name}" arguments contain unresolved PII placeholders (${code}); refusing to execute`);
360
371
  }
361
372
  originalRequest.signal.throwIfAborted();
362
373
  // Call the user's tool handler with real PII