@eddyskywalker/dsh-chatgpt-subscription 0.57.0 → 0.59.0

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 (60) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +3 -3
  3. package/lib/client.js +136 -23
  4. package/lib/client.js.map +1 -1
  5. package/lib/codemode.js +1565 -0
  6. package/lib/index.js +1121 -530
  7. package/lib/tool-result-pruner.js +1 -1
  8. package/lib/types/client/CodexImageToolView.d.ts.map +1 -1
  9. package/lib/types/client/minimax-code/commands-contract.d.ts +1 -1
  10. package/lib/types/client/progress-updates/progress-row.d.ts.map +1 -1
  11. package/lib/types/client/styles.d.ts.map +1 -1
  12. package/lib/types/compat.d.ts +10 -1
  13. package/lib/types/compat.d.ts.map +1 -1
  14. package/lib/types/entry-codemode.d.ts +37 -0
  15. package/lib/types/entry-codemode.d.ts.map +1 -0
  16. package/lib/types/entry-tool-result-pruner.d.ts +1 -1
  17. package/lib/types/host/agent-preset.d.ts +24 -2
  18. package/lib/types/host/agent-preset.d.ts.map +1 -1
  19. package/lib/types/host/antigravity/image-tool.d.ts +10 -2
  20. package/lib/types/host/antigravity/image-tool.d.ts.map +1 -1
  21. package/lib/types/host/cache-warmup/install.d.ts +10 -4
  22. package/lib/types/host/cache-warmup/install.d.ts.map +1 -1
  23. package/lib/types/host/cache-warmup/projection.d.ts +17 -0
  24. package/lib/types/host/cache-warmup/projection.d.ts.map +1 -1
  25. package/lib/types/host/codemode/discovery.d.ts +33 -0
  26. package/lib/types/host/codemode/discovery.d.ts.map +1 -0
  27. package/lib/types/host/codemode/executor.d.ts +140 -0
  28. package/lib/types/host/codemode/executor.d.ts.map +1 -0
  29. package/lib/types/host/codemode/retention.d.ts +34 -0
  30. package/lib/types/host/codemode/retention.d.ts.map +1 -0
  31. package/lib/types/host/codemode/rules.d.ts +183 -0
  32. package/lib/types/host/codemode/rules.d.ts.map +1 -0
  33. package/lib/types/host/codemode/scope.d.ts +59 -0
  34. package/lib/types/host/codemode/scope.d.ts.map +1 -0
  35. package/lib/types/host/codemode/transport.d.ts +258 -0
  36. package/lib/types/host/codemode/transport.d.ts.map +1 -0
  37. package/lib/types/host/codex-account-pool.d.ts.map +1 -1
  38. package/lib/types/host/codex-adopt.d.ts.map +1 -1
  39. package/lib/types/host/codex-catalog.d.ts +5 -3
  40. package/lib/types/host/codex-catalog.d.ts.map +1 -1
  41. package/lib/types/host/codex-identity.d.ts +130 -0
  42. package/lib/types/host/codex-identity.d.ts.map +1 -0
  43. package/lib/types/host/codex-images.d.ts +12 -0
  44. package/lib/types/host/codex-images.d.ts.map +1 -1
  45. package/lib/types/host/kimi-code/repeat-breaker.d.ts +1 -1
  46. package/lib/types/host/oauth-service.d.ts +0 -16
  47. package/lib/types/host/oauth-service.d.ts.map +1 -1
  48. package/lib/types/host/token-store.d.ts +9 -0
  49. package/lib/types/host/token-store.d.ts.map +1 -1
  50. package/lib/types/host/usage-service.d.ts.map +1 -1
  51. package/lib/types/host/workbuddy/adapter.d.ts.map +1 -1
  52. package/lib/types/host/workbuddy/client.d.ts.map +1 -1
  53. package/lib/types/host/workbuddy/model-catalog.d.ts +56 -44
  54. package/lib/types/host/workbuddy/model-catalog.d.ts.map +1 -1
  55. package/lib/types/host/workbuddy/routes.d.ts.map +1 -1
  56. package/lib/types/shared/workbuddy-contracts.d.ts +8 -8
  57. package/package.json +54 -46
  58. package/presets/dispatch/README.md +12 -3
  59. package/presets/dispatch/agent.cordis.yml +10 -9
  60. package/presets/dispatch/preset.yml +1 -1
@@ -21,7 +21,7 @@ import { Service } from "@deepseek-ai/cordis";
21
21
  * `peerDependencies` 里没有它们(也不该有:装不装它们不该由本包决定),
22
22
  * 所以全部按**结构契约**描述:`SessionLike` / `SessionEventLike` /
23
23
  * `ToolResultMessageLike` 都是本文件里的局部接口,`deepFreeze` 也是本地实现。
24
- * 这样从 0.1.2-alpha.5 到 0.2.2-alpha.3 的每一代 harness 都能解析这个模块。
24
+ * 这样从 0.1.2-alpha.5 到 0.2.2-rc.1 的每一代 harness 都能解析这个模块。
25
25
  *
26
26
  * 与官方实现的一致性以测试锁定:`test/tool-result-pruner.test.ts` 覆盖配置校验、
27
27
  * 代理对不劈开、非文本块不计价、以及 `compaction/prune` 与替换事件的先后顺序。
@@ -1 +1 @@
1
- {"version":3,"file":"CodexImageToolView.d.ts","sourceRoot":"","sources":["../../../src/client/CodexImageToolView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,MAAM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7E,KAAK,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG;IACzE,SAAS,EAAE,WAAW,CAAA;CACvB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiBpF"}
1
+ {"version":3,"file":"CodexImageToolView.d.ts","sourceRoot":"","sources":["../../../src/client/CodexImageToolView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,MAAM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7E,KAAK,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG;IACzE,SAAS,EAAE,WAAW,CAAA;CACvB,CAAA;AAsBD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+BpF"}
@@ -14,7 +14,7 @@
14
14
  * ## 依赖声明
15
15
  *
16
16
  * `package.json` 里它同时出现在 `peerDependencies`(宽范围,与其余六个
17
- * `dsh-client-*` 相同的写法)和 `devDependencies`(`^0.2.2-alpha.3`,编译期需要)。
17
+ * `dsh-client-*` 相同的写法)和 `devDependencies`(`^0.2.2-rc.1`,编译期需要)。
18
18
  * 运行时不从这里取任何东西。
19
19
  *
20
20
  * @module @eddyskywalker/dsh-chatgpt-subscription/client/minimax-code/commands-contract
@@ -1 +1 @@
1
- {"version":3,"file":"progress-row.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/progress-row.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE;QACL;;;;WAIG;QACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;KAC3C,CAAA;IACD,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,6BAA6B;AAC7B,QAAA,MAAM,UAAU;;;;CAIN,CAAA;AAEV,iBAAiB;AACjB,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAA;AAwGtD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAOlG;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB;IACrB,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,QAAQ,CAAA;AAEZ;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAoCrE"}
1
+ {"version":3,"file":"progress-row.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/progress-row.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE;QACL;;;;WAIG;QACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;KAC3C,CAAA;IACD,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,6BAA6B;AAC7B,QAAA,MAAM,UAAU;;;;CAIN,CAAA;AAEV,iBAAiB;AACjB,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAA;AAwHtD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAOlG;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB;IACrB,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,QAAQ,CAAA;AAEZ;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAoCrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/client/styles.ts"],"names":[],"mappings":"AAwHA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,IAAI,MAAM,IAAI,CAE1C"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/client/styles.ts"],"names":[],"mappings":"AAsIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,IAAI,MAAM,IAAI,CAE1C"}
@@ -76,12 +76,21 @@ export declare const ROUTE_PREFIX: "/api/dsh-chatgpt-subscription";
76
76
  * `test/responses-client.test.ts` asserts the two agree, so a release that
77
77
  * forgets this constant fails the suite instead of shipping quietly.
78
78
  */
79
- export declare const PLUGIN_VERSION: "0.57.0";
79
+ export declare const PLUGIN_VERSION: "0.59.0";
80
80
  export declare const CODEX_CHATGPT_PROVIDER_ID: "codex-chatgpt";
81
81
  export { MINIMAX_CODE_PROVIDER_ID, MINIMAX_CODE_ROUTE_PREFIX } from './shared/minimax-code-contracts.ts';
82
82
  export declare const CODEX_API_BASE: "https://chatgpt.com/backend-api/codex";
83
83
  export declare const CODEX_RESPONSES_URL: "https://chatgpt.com/backend-api/codex/responses";
84
84
  export declare const CODEX_IMAGE_GENERATION_URL: "https://chatgpt.com/backend-api/codex/images/generations";
85
+ /**
86
+ * The edit route: the same image surface, addressed for reference-image input.
87
+ *
88
+ * A generation has nothing to modify and goes to `/images/generations`; a
89
+ * request that names reference images is an EDIT and goes here, with those
90
+ * images carried inline in a JSON `images` array. It is a separate route, not a
91
+ * flag on the generation body, so the two are stated as two constants.
92
+ */
93
+ export declare const CODEX_IMAGE_EDIT_URL: "https://chatgpt.com/backend-api/codex/images/edits";
85
94
  export declare const CODEX_SEARCH_URL: "https://chatgpt.com/backend-api/codex/alpha/search";
86
95
  export declare const CODEX_USAGE_URL: "https://chatgpt.com/backend-api/wham/usage";
87
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAG,yBAAkC,CAAA;AACtE,eAAO,MAAM,uBAAuB,EAAG,8BAAuC,CAAA;AAC9E,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAA;AACvD,eAAO,MAAM,mBAAmB,EAAG,IAAa,CAAA;AAChD,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAA;AAC5D,eAAO,MAAM,kBAAkB,uCAAwF,CAAA;AACvH,eAAO,MAAM,WAAW,EAAG,qCAA8C,CAAA;AACzE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAG,cAAuB,CAAA;AACvD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAChD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,4DAAsE,CAAA;AAC5G,eAAO,MAAM,sBAAsB,yDAAmE,CAAA;AACtG,eAAO,MAAM,uBAAuB,wCAAkD,CAAA;AACtF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,+CAAyD,CAAA;AAC/F,8FAA8F;AAC9F,eAAO,MAAM,8BAA8B,QAAc,CAAA;AACzD,gGAAgG;AAChG,eAAO,MAAM,kCAAkC,IAAI,CAAA;AACnD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAQ,CAAA;AACtD,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAC7C,eAAO,MAAM,YAAY,EAAG,+BAAwC,CAAA;AACpE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAG,QAAiB,CAAA;AAC/C,eAAO,MAAM,yBAAyB,EAAG,eAAwB,CAAA;AAajE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAExG,eAAO,MAAM,cAAc,EAAG,uCAAgD,CAAA;AAC9E,eAAO,MAAM,mBAAmB,mDAAyC,CAAA;AACzE,eAAO,MAAM,0BAA0B,4DAAkD,CAAA;AACzF,eAAO,MAAM,gBAAgB,sDAA4C,CAAA;AACzE,eAAO,MAAM,eAAe,EAAG,4CAAqD,CAAA;AACpF;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAG,SAAkB,CAAA;AACxD,eAAO,MAAM,oBAAoB,WAAyB,CAAA;AAC1D,eAAO,MAAM,gBAAgB,uEAA6E,CAAA;AAC1G;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAG,wBAAiC,CAAA;AAClE,eAAO,MAAM,uBAAuB,EAAG,+DAAwE,CAAA;AAC/G,eAAO,MAAM,+BAA+B,yEAAgD,CAAA;AAC5F,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAA;AACpE,eAAO,MAAM,iBAAiB,EAAG,aAAsB,CAAA;AACvD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAG,4BAAqC,CAAA;AAChF,eAAO,MAAM,uBAAuB,EAAG,wBAAiC,CAAA;AACxE,eAAO,MAAM,wBAAwB,EAAG,oBAA6B,CAAA;AACrE,eAAO,MAAM,uBAAuB,EAAG,oBAA6B,CAAA;AACpE,eAAO,MAAM,cAAc,QAAS,CAAA;AACpC,eAAO,MAAM,8BAA8B,QAAS,CAAA;AAEpD,eAAO,MAAM,mBAAmB,2CAAqD,CAAA;AACrF,eAAO,MAAM,eAAe,uCAAiD,CAAA"}
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAG,yBAAkC,CAAA;AACtE,eAAO,MAAM,uBAAuB,EAAG,8BAAuC,CAAA;AAC9E,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAA;AACvD,eAAO,MAAM,mBAAmB,EAAG,IAAa,CAAA;AAChD,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAA;AAC5D,eAAO,MAAM,kBAAkB,uCAAwF,CAAA;AACvH,eAAO,MAAM,WAAW,EAAG,qCAA8C,CAAA;AACzE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAG,cAAuB,CAAA;AACvD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAChD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,4DAAsE,CAAA;AAC5G,eAAO,MAAM,sBAAsB,yDAAmE,CAAA;AACtG,eAAO,MAAM,uBAAuB,wCAAkD,CAAA;AACtF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,+CAAyD,CAAA;AAC/F,8FAA8F;AAC9F,eAAO,MAAM,8BAA8B,QAAc,CAAA;AACzD,gGAAgG;AAChG,eAAO,MAAM,kCAAkC,IAAI,CAAA;AACnD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAQ,CAAA;AACtD,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAC7C,eAAO,MAAM,YAAY,EAAG,+BAAwC,CAAA;AACpE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAG,QAAiB,CAAA;AAC/C,eAAO,MAAM,yBAAyB,EAAG,eAAwB,CAAA;AAajE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAExG,eAAO,MAAM,cAAc,EAAG,uCAAgD,CAAA;AAC9E,eAAO,MAAM,mBAAmB,mDAAyC,CAAA;AACzE,eAAO,MAAM,0BAA0B,4DAAkD,CAAA;AACzF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,sDAA4C,CAAA;AAC7E,eAAO,MAAM,gBAAgB,sDAA4C,CAAA;AACzE,eAAO,MAAM,eAAe,EAAG,4CAAqD,CAAA;AACpF;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAG,SAAkB,CAAA;AACxD,eAAO,MAAM,oBAAoB,WAAyB,CAAA;AAC1D,eAAO,MAAM,gBAAgB,uEAA6E,CAAA;AAC1G;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAG,wBAAiC,CAAA;AAClE,eAAO,MAAM,uBAAuB,EAAG,+DAAwE,CAAA;AAC/G,eAAO,MAAM,+BAA+B,yEAAgD,CAAA;AAC5F,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAA;AACpE,eAAO,MAAM,iBAAiB,EAAG,aAAsB,CAAA;AACvD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAG,4BAAqC,CAAA;AAChF,eAAO,MAAM,uBAAuB,EAAG,wBAAiC,CAAA;AACxE,eAAO,MAAM,wBAAwB,EAAG,oBAA6B,CAAA;AACrE,eAAO,MAAM,uBAAuB,EAAG,oBAA6B,CAAA;AACpE,eAAO,MAAM,cAAc,QAAS,CAAA;AACpC,eAAO,MAAM,8BAA8B,QAAS,CAAA;AAEpD,eAAO,MAAM,mBAAmB,2CAAqD,CAAA;AACrF,eAAO,MAAM,eAAe,uCAAiD,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Code Mode 预设行 —— 本包自己的「原生工具 + 程序传输」呈现方式。
3
+ *
4
+ * 这一行挂在 `dispatch` 预设里(见 presets/dispatch/agent.cordis.yml 与 src/host/agent-preset.ts),
5
+ * 因此它注册的工具、它选中的 executor、它提供的提示词段都属于**这个预设的会话**,其它预设
6
+ * 完全不受影响。
7
+ *
8
+ * ## 它替掉了什么
9
+ *
10
+ * 内核的 `ptc` 呈现方式只把 `run_code` 交给模型,其余工具一律硬拒(UNKNOWN_TOOL),
11
+ * `standard` 又完全没有程序传输——「原生工具 + 程序」这个组合在内核里表达不出来。本行用
12
+ * `standard` 的原生工具面 + 自己的 `code_run` 把这个组合重建,再把预设清单以外的工具
13
+ * 挡在上下文之外,只留程序内可达。
14
+ *
15
+ * ## 四件事
16
+ *
17
+ * 1. 注册发现工具(list / search / describe / debug);
18
+ * 2. 注册程序传输工具 `code_run`;
19
+ * 3. 选一个执行器:`describe()` 丢掉预设清单以外的名字,`execute()` 派发前拒绝模型直呼,
20
+ * 其余整批委托给内核原生执行器(完整策略 / 审批 / post-execute 管线);
21
+ * 4. 提供**恒定**的 Code Mode 说明段,替换内核那份 SDK 声明段。
22
+ *
23
+ * @module @eddyskywalker/dsh-chatgpt-subscription/codemode
24
+ */
25
+ import { type CodemodeConfig } from './host/codemode/rules.ts';
26
+ /** Cordis 插件名。 */
27
+ export declare const name = "codemode";
28
+ /** 依赖的服务。 */
29
+ export declare const inject: string[];
30
+ /**
31
+ * 装配本行。
32
+ *
33
+ * @param ctx - 预设作用域上的行上下文。
34
+ * @param config - 行配置({@link CodemodeConfig})。
35
+ */
36
+ export declare function apply(ctx: unknown, config?: CodemodeConfig): void;
37
+ //# sourceMappingURL=entry-codemode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-codemode.d.ts","sourceRoot":"","sources":["../../src/entry-codemode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAA;AAajC,kBAAkB;AAClB,eAAO,MAAM,IAAI,aAAa,CAAA;AAE9B,aAAa;AACb,eAAO,MAAM,MAAM,UAA4B,CAAA;AA0C/C;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,cAAmB,GAAG,IAAI,CAgLrE"}
@@ -18,7 +18,7 @@
18
18
  * `peerDependencies` 里没有它们(也不该有:装不装它们不该由本包决定),
19
19
  * 所以全部按**结构契约**描述:`SessionLike` / `SessionEventLike` /
20
20
  * `ToolResultMessageLike` 都是本文件里的局部接口,`deepFreeze` 也是本地实现。
21
- * 这样从 0.1.2-alpha.5 到 0.2.2-alpha.3 的每一代 harness 都能解析这个模块。
21
+ * 这样从 0.1.2-alpha.5 到 0.2.2-rc.1 的每一代 harness 都能解析这个模块。
22
22
  *
23
23
  * 与官方实现的一致性以测试锁定:`test/tool-result-pruner.test.ts` 覆盖配置校验、
24
24
  * 代理对不劈开、非文本块不计价、以及 `compaction/prune` 与替换事件的先后顺序。
@@ -33,6 +33,20 @@ export declare const PRESET_REGISTRY_PACKAGE = "@deepseek-ai/dsh-agent-preset";
33
33
  export declare const WORKING_DIRECTORY_PACKAGE = "@deepseek-ai/dsh-working-directory";
34
34
  /** The standalone PTC executor introduced when tool presentation split into executor plugins. */
35
35
  export declare const PTC_EXECUTOR_PACKAGE = "@deepseek-ai/dsh-tool-executor-ptc";
36
+ /**
37
+ * The native executor this package delegates Code Mode execution to.
38
+ *
39
+ * A program sub-call must run through the harness's own policy, approval, and
40
+ * post-execute pipeline; re-implementing that pipeline is how a plugin silently
41
+ * drops policy. A profile plugin cannot resolve the host's kernel packages, so
42
+ * this package carries the executor as a real dependency and drives the host
43
+ * registry with it.
44
+ */
45
+ export declare const NATIVE_EXECUTOR_PACKAGE = "@deepseek-ai/dsh-tool-executor-native";
46
+ /** This package's Code Mode row: the preset's own tools stay native, the rest is program-only. */
47
+ export declare const CODEMODE_PACKAGE = "@eddyskywalker/dsh-chatgpt-subscription/codemode";
48
+ /** The deprecated presentation row generations without a native executor keep. */
49
+ export declare const AGENT_TOOL_PRESENTATION_PACKAGE = "@deepseek-ai/dsh-agent-tool-presentation";
36
50
  /** The id the `dispatch` preset is selectable under. */
37
51
  export declare const DISPATCH_PRESET_ID = "dispatch";
38
52
  /**
@@ -116,8 +130,16 @@ export declare const DISPATCH_PRESET: PresetDefinition;
116
130
  * the export is absent; older harnesses keep it because their main entry does not
117
131
  * register the tool.
118
132
  *
119
- * When the standalone PTC executor exists, it replaces the deprecated
120
- * agent-tool-presentation compatibility row and its `{ mode: 'ptc' }` config.
133
+ * Code Mode needs the native tool executor (it is the pipeline the program's
134
+ * sub-calls are delegated to), so that package's presence decides the
135
+ * presentation rows:
136
+ *
137
+ * - resolvable: the `code-mode` row mounts as-is and no PTC executor row exists
138
+ * beside it (one executor per scope);
139
+ * - absent: the row falls back to the deprecated agent-tool-presentation row and,
140
+ * when the standalone PTC executor exists, to that executor instead — the
141
+ * behaviour of every generation before Code Mode.
142
+ *
121
143
  * @param resolves - whether a bare specifier resolves in this installation.
122
144
  * @returns the preset definition for the running harness generation.
123
145
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAA;AAE7E,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AAExE,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBAsS7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAoC,GAAG,gBAAgB,CAuBtG;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
1
+ {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAA;AAE7E,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AAExE;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,0CAA0C,CAAA;AAE9E,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,qDAAqD,CAAA;AAElF,kFAAkF;AAClF,eAAO,MAAM,+BAA+B,6CAA6C,CAAA;AAEzF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBA0S7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAoC,GAAG,gBAAgB,CAyBtG;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
@@ -5,8 +5,16 @@ type FetchLike = typeof fetch;
5
5
  /**
6
6
  * Aspect ratios Gemini image models accept in `imageConfig.aspectRatio`.
7
7
  * Omitted, the model picks one itself, which is what the request then does.
8
+ *
9
+ * The last four are the extreme strips: a wider or taller frame than the square
10
+ * family covers, useful for banners, headers and phone wallpapers.
11
+ */
12
+ export declare const ANTIGRAVITY_IMAGE_ASPECT_RATIOS: readonly ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "1:4", "4:1", "1:8", "8:1"];
13
+ /**
14
+ * Image sizes Gemini image models accept in `imageConfig.imageSize`.
15
+ * Omitted, the model picks one itself, which is what the request then does.
8
16
  */
9
- export declare const ANTIGRAVITY_IMAGE_ASPECT_RATIOS: readonly ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"];
17
+ export declare const ANTIGRAVITY_IMAGE_SIZES: readonly ["0.5K", "1K", "2K", "4K"];
10
18
  export interface AntigravityImageToolOptions {
11
19
  fetchFn?: FetchLike;
12
20
  /** Whether the Antigravity line is switched on; a switched-off line serves no images. */
@@ -34,7 +42,7 @@ export interface ImageResponse {
34
42
  * Antigravity clients send for image runtimes; it has not been captured from
35
43
  * the official client.
36
44
  */
37
- export declare function buildImageRequest(prompt: string, projectId: string, aspectRatio?: string): Record<string, unknown>;
45
+ export declare function buildImageRequest(prompt: string, projectId: string, aspectRatio?: string, imageSize?: string): Record<string, unknown>;
38
46
  /**
39
47
  * Collect the images and visible text of one SSE image response.
40
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"image-tool.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/image-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAsB,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAMtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,+BAA+B,oFAElC,CAAA;AAKV,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,OAAO,CAAA;CAC1B;AAkBD,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAYD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAqC9D;AAcD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAChD;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAiBjD;AASD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,2BAAgC,mDAoH1C"}
1
+ {"version":3,"file":"image-tool.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/image-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAsB,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAMtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,gHAGlC,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,uBAAuB,qCAAsC,CAAA;AAK1E,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,OAAO,CAAA;CAC1B;AAkBD,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB;AAYD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAqC9D;AAcD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAChD;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAiBjD;AASD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,2BAAgC,mDA+H1C"}
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * 这个文件把核心(结果投影、预算、引用存储、指标)接到宿主上,挂四样东西:
5
5
  *
6
- * 1. `tools/post-execute` 上的**新结果投影**:Kimi 线路的 `run_code` 结果交给
6
+ * 1. `tools/post-execute` 上的**新结果投影**:Kimi 线路的程序传输结果(PTC 的
7
+ * `run_code` 与 Code Mode 的 `code_run`)交给
7
8
  * `projectToolResult`,能可靠结构化提取的大结果被换成带 `ref://` 引用的预览;
8
9
  * 2. `cache_warmup_result` 工具(`result-tool.ts`),预览的唯一精确补读入口;
9
10
  * 3. 一段**静态**系统提示词引导(见 `CACHE_WARMUP_GUIDANCE`);
@@ -41,14 +42,19 @@ import type { CacheWarmupSettings } from './settings.ts';
41
42
  export declare const CACHE_WARMUP_PROVIDER = "kimi-code";
42
43
  /**
43
44
  * 默认被投影的主工具名(保留导出供向后兼容)。
45
+ *
46
+ * 它只是 PTC 家族的**第一个**名字,完整集合见
47
+ * {@link CACHE_WARMUP_PTC_TRANSPORT_TOOLS}:判断「这条结果来自程序传输」一律用
48
+ * `isPtcTransportName()`,不要再写第二个字面量比较。
44
49
  */
45
50
  export declare const CACHE_WARMUP_SOURCE_TOOL = "run_code";
46
51
  /**
47
52
  * 允许进入结果投影的工具集合。
48
53
  *
49
- * 除了 PTC 的 `run_code`,宿主的独立 Shell 与后台任务输出工具(`win_bash`、
50
- * `bash`、`pwsh`、`job_output`)同样经常吐出整屏测试/构建日志。源码读取/编辑类
51
- * 工具(`read`、`edit`、`grep`、`glob`、CodeGraph 等)不在此列,保持 100% 原样。
54
+ * 除了 PTC 家族的程序传输(`run_code` 与 Code Mode 的 `code_run`),宿主的独立
55
+ * Shell 与后台任务输出工具(`win_bash`、`bash`、`pwsh`、`job_output`)同样经常
56
+ * 吐出整屏测试/构建日志。源码读取/编辑类工具(`read`、`edit`、`grep`、`glob`、
57
+ * CodeGraph 等)不在此列,保持 100% 原样。
52
58
  */
53
59
  export declare const CACHE_WARMUP_SOURCE_TOOLS: ReadonlySet<string>;
54
60
  /** 提示词分节名,全局唯一(重复注册会抛错)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/host/cache-warmup/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAML,KAAK,sBAAsB,EAG3B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAA;AAGrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,wBAAwB,aAAa,CAAA;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAMxD,CAAA;AAEF,4BAA4B;AAC5B,eAAO,MAAM,yBAAyB,wBAAwB,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAStB,CAAA;AAEZ;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,MAAM,CAErD;AAED,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAaD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiBnE;AAED,YAAY;AACZ,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,mBAAmB,CAAA;IACnC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,CAAA;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,sBAAsB,GAAG,SAAS,CAAA;CACxE;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACrD,oBAAoB;IACpB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,MAAM,IAAI,CAAA;IACvE,uCAAuC;IACvC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,qBAAqB;IACrB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;AA+GD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAgPnG;AAiBD;;;;;;;GAOG"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/host/cache-warmup/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,EAML,KAAK,sBAAsB,EAG3B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,aAAa,CAAA;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAMxD,CAAA;AAEF,4BAA4B;AAC5B,eAAO,MAAM,yBAAyB,wBAAwB,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAStB,CAAA;AAEZ;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,MAAM,CAErD;AAED,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAaD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiBnE;AAED,YAAY;AACZ,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,mBAAmB,CAAA;IACnC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,CAAA;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,sBAAsB,GAAG,SAAS,CAAA;CACxE;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACrD,oBAAoB;IACpB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,MAAM,IAAI,CAAA;IACvE,uCAAuC;IACvC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,qBAAqB;IACrB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;AA+GD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAiPnG;AAiBD;;;;;;;GAOG"}
@@ -15,6 +15,23 @@
15
15
  * @module dsh-chatgpt-subscription/host/cache-warmup/projection
16
16
  */
17
17
  import { type PreviewBudget, type ProjectionResult, type ProjectToolResultInput } from './contracts.ts';
18
+ /**
19
+ * PTC 家族的**程序传输**工具名(一个集合,两个名字)。
20
+ *
21
+ * 「模型写一段程序、工具调用发生在程序内部」是同一种传输,只是不同预设给主工具起
22
+ * 了不同名字:PTC 预设叫 `run_code`,Code Mode 预设叫 `code_run`。凡是按工具名判断
23
+ * 「这条结果来自程序传输」的地方都必须认这**整个集合**——名字只写一个,预设一换,
24
+ * 大结果的 `ref://` 预览与精确补读就会静默失效。
25
+ */
26
+ export declare const CACHE_WARMUP_PTC_TRANSPORT_TOOLS: ReadonlySet<string>;
27
+ /**
28
+ * 这个名字是否属于 PTC 家族的程序传输工具。
29
+ *
30
+ * 只做**精确**匹配:`code_runner` 之类的近似名不算,宁可少投影也不能误伤。
31
+ * @param name - 工具名。
32
+ * @returns 属于 {@link CACHE_WARMUP_PTC_TRANSPORT_TOOLS} 时为 true。
33
+ */
34
+ export declare function isPtcTransportName(name: string): boolean;
18
35
  /**
19
36
  * 投影一条工具结果。
20
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../src/host/cache-warmup/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,sBAAsB,EAG5B,MAAM,gBAAgB,CAAA;AAspDvB;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuFhG;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../src/host/cache-warmup/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,sBAAsB,EAG5B,MAAM,gBAAgB,CAAA;AAYvB;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,WAAW,CAAC,MAAM,CAAqC,CAAA;AAEtG;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AA6oDD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuFhG;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 程序内的工具发现 API:`code_tools_list` / `code_tools_search` / `code_tools_describe`。
3
+ *
4
+ * 三个都是注册表上的**普通工具**,因此只存在于本预设里,也必然被本包自己的名字规则遮蔽——
5
+ * 模型只能在程序内部调用它们,这与「遮蔽的工具只能从程序里够到」是同一条规则。
6
+ *
7
+ * 它们走完整执行管线(参数校验、策略、审批、守卫、超时),不是旁路接口。
8
+ *
9
+ * @module @eddyskywalker/dsh-chatgpt-subscription/host/codemode/discovery
10
+ */
11
+ import type { CatalogEntry } from './transport.ts';
12
+ import type { CodemodeRules } from './rules.ts';
13
+ /** 一条公开的检索结果。 */
14
+ export interface ToolHit {
15
+ /** 工具名。 */
16
+ readonly name: string;
17
+ /** 描述。 */
18
+ readonly description: string;
19
+ /** namespace(MCP 服务端名或 `plugin`)。 */
20
+ readonly namespace: string;
21
+ }
22
+ /**
23
+ * 造三个发现工具(外加可选的 `code_debug`)。
24
+ *
25
+ * @param rules - 已归一化的规则。
26
+ * @param catalog - 当前清单的读取函数。
27
+ * @param debug - 调试信息读取函数(`code_debug` 用)。
28
+ * @returns 原始工具定义数组。
29
+ */
30
+ export declare function createDiscoveryDefinitions(rules: CodemodeRules, catalog: () => readonly CatalogEntry[], debug: () => unknown): unknown[];
31
+ /** 一个工具名所属的 namespace。 */
32
+ export declare function namespaceOfName(name: string): string;
33
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/host/codemode/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,WAAW;IACX,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,UAAU;IACV,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,SAAS,YAAY,EAAE,EACtC,KAAK,EAAE,MAAM,OAAO,aAWrB;AA+OD,0BAA0B;AAC1B,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Code Mode 的工具执行器:本包遮蔽与拒绝的唯一接缝。
3
+ *
4
+ * ## 为什么是 executor
5
+ *
6
+ * DSH 0.2.2 把「模型看到的工具清单」的归属权从 `system-prompt/assemble` 瀑布搬到了
7
+ * per-scope `ToolExecutor`:注册表向当前作用域选中的 executor 要 schema,所以
8
+ * `describe()` 就是请求面。它同时解决了归属问题——executor **按作用域链选择**,只有挂
9
+ * 在本预设里的这一份会服务本预设的会话,因此不需要判断「这个 agent 是不是我的」。
10
+ *
11
+ * 三件事:
12
+ *
13
+ * 1. `describe()` 丢掉一切不该出现在模型清单里的名字,其余交给原生 executor 投影;
14
+ * 2. `sections` 提供**恒定**的 Code Mode 说明段(见 rules.ts 的恒定契约);
15
+ * 3. `execute()` 在派发**之前**拒绝模型对被遮蔽名字的直接调用,其余整批委托给原生
16
+ * executor——委托而不是重写,是因为手写 pre-policy / 审批 / around-dispatch /
17
+ * post-execute 管线正是插件静默丢策略的方式。
18
+ *
19
+ * ## 程序内子调用怎么与模型直呼区分
20
+ *
21
+ * 批量 `execute()` 的入参没有 `parent` 字段(执行令牌由注册表自己的管线铸造,插件
22
+ * 造不出来),所以传输层把自己持有的 `AbortSignal` 打上 {@link NESTED_MARK},并让子调用 id
23
+ * 形如 `<outer>:ptc:<n>`。signal 是模型无法伪造的对象,call id 不可改,两个标记互为兜底。
24
+ *
25
+ * @module @eddyskywalker/dsh-chatgpt-subscription/host/codemode/executor
26
+ */
27
+ import { type CodemodeRules, type CodemodeView } from './rules.ts';
28
+ /** 传输层打在 AbortSignal 上的嵌套标记。 */
29
+ export declare const NESTED_MARK: unique symbol;
30
+ /** 子调用 id 里的一段:`<outer>:ptc:<n>`,与内核自己的命名一致。 */
31
+ export declare const NESTED_CALL_ID_MARKER = ":ptc:";
32
+ /**
33
+ * 给一个 signal 打上嵌套标记。
34
+ *
35
+ * @param signal - 传给 `tools.execute()` 的那一个 signal。
36
+ * @returns 同一个 signal(便于链式使用)。
37
+ */
38
+ export declare function markNested(signal: AbortSignal | undefined): AbortSignal | undefined;
39
+ /**
40
+ * 判断一批调用是不是来自程序内部。
41
+ *
42
+ * @param call - 批里的一条调用(结构探测)。
43
+ * @param batchSignal - 批级 signal(`tools.execute()` 只收一份,注册表会复制给每条执行)。
44
+ * @returns 来自程序内部时为 `true`。
45
+ */
46
+ export declare function isNestedCall(call: unknown, batchSignal: unknown): boolean;
47
+ /** 执行器对外暴露的能力(结构契约,不 import 内核类型)。 */
48
+ export interface CodemodeExecutor {
49
+ /** 执行器自带的提示词段。 */
50
+ readonly sections: readonly CodemodeSection[];
51
+ /** 本步的模型可见 schema。 */
52
+ describe(tools: readonly unknown[]): {
53
+ schemas: readonly unknown[];
54
+ };
55
+ /** 执行一整批调用。 */
56
+ execute(input: CodemodeBatchInput): Promise<CodemodeBatchResult>;
57
+ }
58
+ /** 一条 executor 所属的提示词段。 */
59
+ export interface CodemodeSection {
60
+ /** 段名。 */
61
+ readonly name: string;
62
+ /** 排序位。 */
63
+ readonly order?: number;
64
+ /** 是否做 `{{variable}}` 插值。 */
65
+ readonly interpolate?: boolean;
66
+ /** 段正文(恒定)。 */
67
+ readonly text: string | ((tools: readonly unknown[]) => string);
68
+ }
69
+ /** 批入参里本模块会读的部分。 */
70
+ export interface CodemodeBatchInput {
71
+ /** 原始调用。 */
72
+ readonly calls: readonly unknown[];
73
+ /** 批级 signal。 */
74
+ readonly signal: AbortSignal;
75
+ /** 辅助字段透传。 */
76
+ readonly [key: string]: unknown;
77
+ }
78
+ /** 批结果。 */
79
+ export interface CodemodeBatchResult {
80
+ /** 与入参一一对应的结果。 */
81
+ readonly results: readonly unknown[];
82
+ /** 需要附加到下一步的上下文。 */
83
+ readonly additionalContexts: readonly unknown[];
84
+ /** 本批是否结束了这一轮。 */
85
+ readonly concluded: boolean;
86
+ }
87
+ /** 委托目标(原生 executor 的实例,结构描述)。 */
88
+ export interface DelegateExecutor {
89
+ /** 见 {@link CodemodeExecutor.describe}。 */
90
+ describe(tools: readonly unknown[]): {
91
+ schemas: readonly unknown[];
92
+ };
93
+ /** 见 {@link CodemodeExecutor.execute}。 */
94
+ execute(input: CodemodeBatchInput): Promise<CodemodeBatchResult>;
95
+ }
96
+ /** 执行器钩子。 */
97
+ export interface ExecutorHooks {
98
+ /** 归属视图(整个清单)。 */
99
+ view(): CodemodeView;
100
+ /** 归属视图(单个名字,供拒绝路径使用)。 */
101
+ viewForName(name: string): CodemodeView;
102
+ /** 说明段正文。 */
103
+ sectionText(): string;
104
+ /** 每次 describe 收到的完整定义集(含被遮蔽的),供程序内清单使用。 */
105
+ onCatalog?(tools: readonly unknown[]): void;
106
+ /** 每次 describe 的决策(写日志 / debug 环)。 */
107
+ onDescribe?(decision: DescribeDecision): void;
108
+ /** 委托目标;缺省时执行器不可用(入口保证它存在)。 */
109
+ delegate: DelegateExecutor;
110
+ }
111
+ /** 一次 describe 的决策。 */
112
+ export interface DescribeDecision {
113
+ /** 保持原生的名字。 */
114
+ readonly visible: readonly string[];
115
+ /** 被遮蔽的名字。 */
116
+ readonly masked: readonly string[];
117
+ }
118
+ /**
119
+ * 造一个 Code Mode 执行器。
120
+ *
121
+ * @param ctx - 本包的行上下文(读取系统提示段的排序位)。
122
+ * @param rules - 已归一化的规则。
123
+ * @param hooks - 归属视图、说明段与委托目标。
124
+ * @returns 执行器。
125
+ */
126
+ export declare function createCodemodeExecutor(ctx: unknown, rules: CodemodeRules, hooks: ExecutorHooks): CodemodeExecutor;
127
+ /**
128
+ * 一条模型直呼调用的拒绝理由,或 `undefined` 表示放行。
129
+ *
130
+ * @param call - 批里的一条调用。
131
+ * @param rules - 已归一化的规则。
132
+ * @param hooks - 归属视图与说明段。
133
+ * @param batchSignal - 批级 signal。
134
+ * @returns 拒绝理由或 `undefined`。
135
+ *
136
+ * 判定不读「本步可见名清单」:那份集合是**执行器级**的,多个会话并发时会被后一次 describe
137
+ * 覆盖,用它放行等于给另一个会话开一个不该开的口子。这里只按名字自身的归属判一次。
138
+ */
139
+ export declare function denialFor(call: unknown, rules: CodemodeRules, hooks: Pick<ExecutorHooks, 'viewForName' | 'sectionText'>, batchSignal: unknown): string | undefined;
140
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/host/codemode/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB,gCAAgC;AAChC,eAAO,MAAM,WAAW,eAAyD,CAAA;AAEjF,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,UAAU,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAQnF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAMzE;AAOD,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;IAC7C,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAA;IACpE,eAAe;IACf,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACjE;AAED,2BAA2B;AAC3B,MAAM,WAAW,eAAe;IAC9B,UAAU;IACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,WAAW;IACX,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,KAAK,MAAM,CAAC,CAAA;CAChE;AAED,oBAAoB;AACpB,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IAClC,iBAAiB;IACjB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,cAAc;IACd,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,WAAW;AACX,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAA;IACpC,oBAAoB;IACpB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAA;IAC/C,kBAAkB;IAClB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAA;IACpE,0CAA0C;IAC1C,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACjE;AAED,aAAa;AACb,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,IAAI,IAAI,YAAY,CAAA;IACpB,0BAA0B;IAC1B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;IACvC,aAAa;IACb,WAAW,IAAI,MAAM,CAAA;IACrB,4CAA4C;IAC5C,SAAS,CAAC,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAA;IAC3C,sCAAsC;IACtC,UAAU,CAAC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC7C,+BAA+B;IAC/B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,uBAAuB;AACvB,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,GACnB,gBAAgB,CAsDlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,EACzD,WAAW,EAAE,OAAO,GACnB,MAAM,GAAG,SAAS,CAYpB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 常驻执行环境的生命周期。
3
+ *
4
+ * 部署把 `@deepseek-ai/dsh-ptc-runtime-node` 配成 `executionMode: persistent-in-memory` 时,
5
+ * 同一个 agent 的多次 `code_run` 会共用一个常驻 REPL:顶层变量、函数与 `import` 的模块
6
+ * 跨调用存活。可以不去用,但**不能只注册不释放**——常驻环境没有空闲过期,忘了释放会让子进程
7
+ * 活到进程结束。
8
+ *
9
+ * 所以这里把「传了 owner」与「注册了释放」写进同一个动作:结构性无法表达「传了却没释放」。
10
+ * 清理有两条路,覆盖两种死亡:
11
+ *
12
+ * 1. 挂在 **agent** 上的释放:即使本包早已卸载,agent 销毁也会释放它的环境;
13
+ * 2. 挂在**插件**上的 teardown:卸载或热重载本包时释放所有遗留环境。
14
+ *
15
+ * @module @eddyskywalker/dsh-chatgpt-subscription/host/codemode/retention
16
+ */
17
+ import type { PtcRuntimeLike } from './transport.ts';
18
+ /** 常驻环境管理句柄。 */
19
+ export interface CodemodeRetention {
20
+ /** 取一个 agent 的 owner(缺省用 agent 本身,保证同一 agent 复用一个环境)。 */
21
+ owner(agent: unknown): object;
22
+ /** 释放一个 owner 的常驻环境(幂等)。 */
23
+ release(owner: object): Promise<void>;
24
+ /** 释放所有遗留环境(插件卸载时调用)。 */
25
+ dispose(): Promise<void>;
26
+ }
27
+ /**
28
+ * 造一个常驻环境管理器。
29
+ *
30
+ * @param runtimeOf - 读当前运行时的函数(每次调用重读,运行时可能晚于本插件挂载)。
31
+ * @returns 管理句柄。
32
+ */
33
+ export declare function createRetention(runtimeOf: () => PtcRuntimeLike | undefined): CodemodeRetention;
34
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../../../src/host/codemode/retention.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,gBAAgB;AAChB,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IAC7B,4BAA4B;IAC5B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,yBAAyB;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,cAAc,GAAG,SAAS,GAAG,iBAAiB,CAgC9F"}