dsh-primer 0.4.5 → 0.4.7

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 (80) hide show
  1. package/README.en.md +6 -6
  2. package/README.es.md +6 -6
  3. package/README.hi.md +6 -6
  4. package/README.md +7 -7
  5. package/README.pt.md +6 -6
  6. package/SKILL.md +11 -9
  7. package/data/facts.json +35 -15
  8. package/data/seams/index.json +1526 -98
  9. package/data/standards.json +17 -11
  10. package/dist/dsh-plugin-dev.js +7 -7
  11. package/guide/links.md +2 -2
  12. package/guide/migration-0.2.md +105 -14
  13. package/guide/plugin-dev-guide.md +6 -6
  14. package/guide/quick-reference.es.md +4 -4
  15. package/guide/quick-reference.hi.md +4 -4
  16. package/guide/quick-reference.md +4 -4
  17. package/guide/quick-reference.pt.md +4 -4
  18. package/guide/quick-reference.zh-CN.md +4 -4
  19. package/guide/standards.md +1 -1
  20. package/guide/standards.zh-CN.md +1 -1
  21. package/guide/unfixed-issues.md +2 -2
  22. package/guide/version-matrix.md +65 -42
  23. package/package.json +13 -7
  24. package/references/official-docs/CLAUDE.md +1 -1
  25. package/references/official-docs/README.md +9 -4
  26. package/references/official-docs/SNAPSHOT.md +7 -5
  27. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  28. package/references/official-docs/docs/capability-seams.md +4 -0
  29. package/references/official-docs/docs/capability-seams.zh.md +4 -0
  30. package/references/official-docs/docs/config-catalog.md +26 -28
  31. package/references/official-docs/docs/config-catalog.zh.md +26 -28
  32. package/references/official-docs/docs/defensive-patterns/package-surface.i18n.yaml +2 -2
  33. package/references/official-docs/docs/defensive-patterns/package-surface.md +0 -1
  34. package/references/official-docs/docs/defensive-patterns/package-surface.zh.md +0 -1
  35. package/references/official-docs/docs/event-producer-consumer.md +1 -1
  36. package/references/official-docs/docs/event-producer-consumer.zh.md +1 -1
  37. package/references/official-docs/docs/module-graph.md +12 -17
  38. package/references/official-docs/docs/module-graph.zh.md +12 -17
  39. package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +2 -2
  40. package/references/official-docs/docs/subsystems/computer-use.md +1 -1
  41. package/references/official-docs/docs/subsystems/computer-use.zh.md +1 -1
  42. package/references/official-docs/docs/subsystems/persistence.md +19 -0
  43. package/references/official-docs/docs/subsystems/persistence.zh.md +19 -0
  44. package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +4 -4
  45. package/references/official-docs/docs/subsystems/ptc-runtime.md +8 -48
  46. package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +8 -48
  47. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  48. package/references/official-docs/docs/tool-catalog.md +1 -1
  49. package/references/official-docs/docs/tool-catalog.zh.md +1 -1
  50. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.i18n.yaml +4 -4
  51. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.md +7 -7
  52. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.zh.md +7 -7
  53. package/references/official-plugin-dev-skill.md +16 -12
  54. package/references/sources.md +2 -2
  55. package/scripts/check-docs-drift.mjs +121 -0
  56. package/scripts/check-docs-drift.ps1 +4 -1
  57. package/scripts/check-facts.mjs +81 -3
  58. package/scripts/sync-official-docs.ps1 +16 -5
  59. package/templates/js/README-es.md +1 -1
  60. package/templates/js/README-hi.md +1 -1
  61. package/templates/js/README-pt.md +1 -1
  62. package/templates/js/README-zh.md +1 -1
  63. package/templates/js/README.md +1 -1
  64. package/templates/ts/README-es.md +1 -1
  65. package/templates/ts/README-hi.md +1 -1
  66. package/templates/ts/README-pt.md +1 -1
  67. package/templates/ts/README-zh.md +1 -1
  68. package/templates/ts/README.md +1 -1
  69. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.i18n.yaml +0 -16
  70. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.md +0 -26
  71. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.zh.md +0 -26
  72. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.i18n.yaml +0 -16
  73. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.md +0 -25
  74. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.zh.md +0 -25
  75. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.i18n.yaml +0 -16
  76. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.md +0 -48
  77. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.zh.md +0 -48
  78. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.i18n.yaml +0 -16
  79. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.md +0 -45
  80. package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.zh.md +0 -45
@@ -888,26 +888,6 @@ export interface Config {
888
888
  ```
889
889
  <!-- END GENERATED config-catalog:@deepseek-ai/dsh-credentials-local -->
890
890
 
891
- <!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-cua-windows -->
892
- <a id="deepseek-aidsh-cua-windows"></a>
893
-
894
- ## `@deepseek-ai/dsh-cua-windows`
895
-
896
- - `inject`: `computerUse` · `tools` · `systemPrompt` · `subprocess` · `agents`
897
- - `refs`: [`CuaConfig`](../packages/experimental/cua/src/index.ts)
898
- - `source`: [`packages/experimental/cua-windows/src/index.ts:32`](../packages/experimental/cua-windows/src/index.ts)
899
-
900
- ```ts config-catalog
901
- /** Windows native waiting policy, alongside shared CUA resource limits. */
902
- export interface Config extends CuaConfig {
903
- /** Windows PowerShell executable used to query WSL interoperation and the Windows architecture. */
904
- windowsPowerShellPath: string
905
- /** Milliseconds between application-readiness and clipboard-release observations. */
906
- pollIntervalMs: number
907
- }
908
- ```
909
- <!-- END GENERATED config-catalog:@deepseek-ai/dsh-cua-windows -->
910
-
911
891
  <!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-deepseek-account -->
912
892
  <a id="deepseek-aidsh-deepseek-account"></a>
913
893
 
@@ -953,6 +933,29 @@ export interface Config {
953
933
  ```
954
934
  <!-- END GENERATED config-catalog:@deepseek-ai/dsh-deepseek-account -->
955
935
 
936
+ <!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-deepseek-chat-import -->
937
+ <a id="deepseek-aidsh-deepseek-chat-import"></a>
938
+
939
+ ## `@deepseek-ai/dsh-deepseek-chat-import`
940
+
941
+ - `inject`: `typert` · `connection` · `sessionPersistence` · `workspaceRegistry`
942
+ - `source`: [`packages/experimental/deepseek-chat-import/src/index.ts:36`](../packages/experimental/deepseek-chat-import/src/index.ts)
943
+
944
+ ```ts config-catalog
945
+ /** Deployment limits of the importer. */
946
+ export interface Config {
947
+ /** Most Sessions one import writes, choosing the conversations the export index lists as most recently updated. */
948
+ maxSessions: number
949
+ /** Largest export archive, in bytes, one upload may carry; the whole archive is held in memory while it is imported. */
950
+ maxUploadBytes: number
951
+ /** Largest declared uncompressed size, in bytes, of one archive entry; larger entries are not decompressed. */
952
+ maxEntryBytes: number
953
+ /** Largest UTF-8 size, in bytes, of an imported title, matching the session-title service's limit of the composition. */
954
+ maxTitleBytes: number
955
+ }
956
+ ```
957
+ <!-- END GENERATED config-catalog:@deepseek-ai/dsh-deepseek-chat-import -->
958
+
956
959
  <!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-api-speech-to-text -->
957
960
  <a id="deepseek-aidsh-experimental-api-speech-to-text"></a>
958
961
 
@@ -1628,7 +1631,7 @@ export interface Config {
1628
1631
  ## `@deepseek-ai/dsh-file-reference-local`
1629
1632
 
1630
1633
  - `inject`: `agents` · `workingDirectory`
1631
- - `source`: [`packages/context/file-reference-local/src/index.ts:27`](../packages/context/file-reference-local/src/index.ts)
1634
+ - `source`: [`packages/context/file-reference-local/src/index.ts:35`](../packages/context/file-reference-local/src/index.ts)
1632
1635
 
1633
1636
  ```ts config-catalog
1634
1637
  /** Local file-reference discovery configuration. */
@@ -2427,7 +2430,7 @@ export type Config = Readonly<Record<string, never>>
2427
2430
  ## `@deepseek-ai/dsh-lsp-stdio`
2428
2431
 
2429
2432
  - `inject`: `fs` · `lsp` · `subprocess`
2430
- - `source`: [`packages/lsp/lsp-stdio/src/index.ts:70`](../packages/lsp/lsp-stdio/src/index.ts)
2433
+ - `source`: [`packages/lsp/lsp-stdio/src/index.ts:83`](../packages/lsp/lsp-stdio/src/index.ts)
2431
2434
 
2432
2435
  ```ts config-catalog
2433
2436
  /** Plugin configuration: provider id → local language-server configuration. */
@@ -2880,7 +2883,7 @@ export interface Config {
2880
2883
  ## `@deepseek-ai/dsh-ptc-runtime-node`
2881
2884
 
2882
2885
  - `inject`: `fs` · `subprocess` · `sandbox` · `sandboxPolicy`
2883
- - `source`: [`packages/ptc-runtime/ptc-runtime-node/src/config.ts:8`](../packages/ptc-runtime/ptc-runtime-node/src/config.ts)
2886
+ - `source`: [`packages/ptc-runtime/ptc-runtime-node/src/config.ts:7`](../packages/ptc-runtime/ptc-runtime-node/src/config.ts)
2884
2887
 
2885
2888
  ```ts config-catalog
2886
2889
  /** Deployment-varying runtime bounds and launch choices. */
@@ -2891,11 +2894,6 @@ export interface Config {
2891
2894
  executionMode?: 'per-call' | 'persistent-in-memory' | 'vm-script'
2892
2895
  /** Retain a Script process and context per stateOwner; only supported with executionMode: vm-script. */
2893
2896
  scriptPersistence?: boolean
2894
- /**
2895
- * Run persistent-in-memory programs as scoped REPL statements whose later calls receive copies of earlier top-level bindings;
2896
- * omitted, it is `SCOPED_REPL_BY_DEFAULT` from configuration.ts, currently true, with persistent-in-memory and false otherwise.
2897
- */
2898
- replScoped?: boolean
2899
2897
  /** Default elapsed deadline, including nested tool and approval waits. */
2900
2898
  timeoutMs?: number
2901
2899
  /** Maximum numeric elapsed budget accepted by resolve. */
@@ -12,8 +12,8 @@
12
12
  en: bf79c6acf35c90a5
13
13
  zh: 9f2ce6c7f6493b17
14
14
  /package-surface-rules/package-json-exports-uses-the-standard-key-set:
15
- en: 37d7728d42231610
16
- zh: ba27dd3935f50572
15
+ en: 692ded0ff903609d
16
+ zh: c871ab58ca92ad70
17
17
  /package-surface-rules/dependency-declarations-and-version-consistency-are-enforced-by-the-dependency-scan:
18
18
  en: e68bfcde70f845b4
19
19
  zh: 73e5c4fb067c4fa1
@@ -79,7 +79,6 @@ A `package.json` `exports` map uses only the standard key set, in which every ke
79
79
  - Standard keys, each with one meaning repo-wide, across `packages/*/*/package.json` and `apps/*/package.json`: `.` (the package entry), `./package.json` (toolchain access, not a semantic export), `./src/*` (source passthrough for tests and tools, whose documented status is still open), `./client` (the browser entry, paired with the `dsh.client` declaration), `./types` (the type entry), `./typert` (the typert type runtime), `./remote` (the `@Remote` call surface), `./locale/*.json` (locale resources), `./cordis.patch.yml` (the bundle patch layer declared by `dsh.bundle`). Counts are not listed here because they rot on the next package; the recompute command below prints them.
80
80
  - Keys outside that set (`./brand` in 5 packages, `./worker` in 4, `./startup`, `./runner`, and `./protocol` in 2 each, plus many one-off keys) have no documented meaning; they are pending review, not a pattern to copy.
81
81
  - `dsh-tools` additionally exposes `./pipeline` for reusable invocation stages and batch scheduling. Its main and pipeline bundles share runtime chunks to preserve error-class identity; workspace constraints check the export targets and publication files.
82
- - `dsh-tool-executor-ptc` exposes `./run-code` for the shared program-tool factory, explicit runtime and call limits, and private callable tool definitions. Workspace constraints check its export targets and publication files.
83
82
  - Judged condition: does a change add an export key outside the standard set?
84
83
  - Exception: none by default; a new key changes the owning document and the check first, with the domain owner's confirmation.
85
84
  - Recompute the distribution:
@@ -79,7 +79,6 @@ import { isSurfaceEligibleType } from '../../core/session/src/surface.ts'
79
79
  - 标准键,每个键在全仓只有一个含义,统计口径是 `packages/*/*/package.json` 与 `apps/*/package.json`:`.`(包主入口)、`./package.json`(工具链访问,不是语义导出)、`./src/*`(测试与工具的源码透传,文档状态仍待定)、`./client`(浏览器入口,与 `dsh.client` 声明配对)、`./types`(类型入口)、`./typert`(typert 类型运行时)、`./remote`(`@Remote` 调用面)、`./locale/*.json`(本地化资源)、`./cordis.patch.yml`(`dsh.bundle` 声明的 bundle 补丁层)。这里不列各键的包数,因为下一个包就会让它过期;下面的复算命令会打印当前数字。
80
80
  - 集合之外的键(`./brand` 5 个包、`./worker` 4 个、`./startup`、`./runner`、`./protocol` 各 2 个,另有大量一次性键)没有文档含义,属待核项,不是可照抄的先例。
81
81
  - `dsh-tools` 另行提供 `./pipeline`,用于复用调用阶段与批量调度。主入口与 pipeline bundle 共享运行时 chunk,以保持错误类的身份一致;工作区检查验证导出目标与发布文件。
82
- - `dsh-tool-executor-ptc` 提供 `./run-code`,用于共享程序工具工厂、显式指定运行时及调用上限,并传入私有可调用工具定义。工作区检查验证其导出目标与发布文件。
83
82
  - 判定条件:改动是否新增了标准集合以外的 export 键?
84
83
  - 例外:无默认例外;新增键须先改正家文档与检查,并取得对应领域专家确认。
85
84
  - 复算分布:
@@ -56,7 +56,7 @@ Application listeners are outside this package matrix. Desktop Host subscribes t
56
56
  | `goal/changed` | `emit` | [`packages/goal/goal/src/domain.ts:114`](../packages/goal/goal/src/domain.ts) | [`goal`](../packages/goal/goal) (`emit`) | [`goal-round-driver`](../packages/goal/goal-round-driver) |
57
57
  | `hmr/change` | `emit` | [`packages/boot/hmr/src/index.ts:35`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
58
58
  | `hmr/reload` | `emit` | [`packages/boot/hmr/src/index.ts:40`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
59
- | `llm-pi-ai/request-headers` | `waterfall` | [`packages/llm/llm-pi-ai/src/index.ts:113`](../packages/llm/llm-pi-ai/src/index.ts) | [`llm-pi-ai`](../packages/llm/llm-pi-ai) (`waterfall`) | - |
59
+ | `llm-pi-ai/request-headers` | `waterfall` | [`packages/llm/llm-pi-ai/src/index.ts:114`](../packages/llm/llm-pi-ai/src/index.ts) | [`llm-pi-ai`](../packages/llm/llm-pi-ai) (`waterfall`) | - |
60
60
  | `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:24`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
61
61
  | `llm/models-updated` | `emit` | [`packages/llm/llm/src/types.ts:30`](../packages/llm/llm/src/types.ts) | [`llm-deepseek`](../packages/llm/llm-deepseek) (`emit`) | `remotes` |
62
62
  | `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:76`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
@@ -58,7 +58,7 @@
58
58
  | `goal/changed` | `emit` | [`packages/goal/goal/src/domain.ts:114`](../packages/goal/goal/src/domain.ts) | [`goal`](../packages/goal/goal) (`emit`) | [`goal-round-driver`](../packages/goal/goal-round-driver) |
59
59
  | `hmr/change` | `emit` | [`packages/boot/hmr/src/index.ts:35`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
60
60
  | `hmr/reload` | `emit` | [`packages/boot/hmr/src/index.ts:40`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
61
- | `llm-pi-ai/request-headers` | `waterfall` | [`packages/llm/llm-pi-ai/src/index.ts:113`](../packages/llm/llm-pi-ai/src/index.ts) | [`llm-pi-ai`](../packages/llm/llm-pi-ai) (`waterfall`) | - |
61
+ | `llm-pi-ai/request-headers` | `waterfall` | [`packages/llm/llm-pi-ai/src/index.ts:114`](../packages/llm/llm-pi-ai/src/index.ts) | [`llm-pi-ai`](../packages/llm/llm-pi-ai) (`waterfall`) | - |
62
62
  | `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:24`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
63
63
  | `llm/models-updated` | `emit` | [`packages/llm/llm/src/types.ts:30`](../packages/llm/llm/src/types.ts) | [`llm-deepseek`](../packages/llm/llm-deepseek) (`emit`) | `remotes` |
64
64
  | `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:76`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
@@ -264,7 +264,7 @@ flowchart TD
264
264
  pkg_creation_recommendations["creation-recommendations"]
265
265
  pkg_cua["cua"]
266
266
  pkg_cua_bundle["cua-bundle"]
267
- pkg_cua_windows["cua-windows"]
267
+ pkg_deepseek_chat_import["deepseek-chat-import"]
268
268
  pkg_experimental_api_speech_to_text["experimental-api-speech-to-text"]
269
269
  pkg_experimental_auto_review["experimental-auto-review"]
270
270
  pkg_experimental_badge_skill_bundle["experimental-badge-skill-bundle"]
@@ -587,7 +587,6 @@ flowchart TD
587
587
  pkg_skill_badge --> pkg_skill
588
588
  pkg_host_product_telemetry_otel --> pkg_otel
589
589
  pkg_persona --> pkg_system_prompt
590
- pkg_ptc_runtime --> pkg_attachment
591
590
  pkg_ptc_runtime --> pkg_sandbox
592
591
  pkg_sandbox_local --> pkg_llm
593
592
  pkg_sandbox_local --> pkg_sandbox
@@ -960,12 +959,10 @@ flowchart TD
960
959
  pkg_creation_recommendations --> pkg_session
961
960
  pkg_creation_recommendations --> pkg_skill
962
961
  pkg_creation_recommendations --> pkg_tools
963
- pkg_cua_windows --> pkg_agent
964
- pkg_cua_windows --> pkg_computer_use
965
- pkg_cua_windows --> pkg_subprocess
966
- pkg_cua_windows --> pkg_system_prompt
967
- pkg_cua_windows --> pkg_tools
968
- pkg_cua_windows --> pkg_user_questions
962
+ pkg_cua --> pkg_attachment
963
+ pkg_cua --> pkg_ptc_runtime_node
964
+ pkg_cua --> pkg_scope
965
+ pkg_cua --> pkg_user_questions
969
966
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_agent
970
967
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_browser_use
971
968
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_system_prompt
@@ -1133,12 +1130,10 @@ flowchart TD
1133
1130
  pkg_api_settings_controller --> pkg_settings
1134
1131
  pkg_api_settings_controller --> pkg_typert_protocol
1135
1132
  pkg_web_app --> pkg_shell_env
1136
- pkg_cua --> pkg_attachment
1137
- pkg_cua --> pkg_error
1138
- pkg_cua --> pkg_ptc_runtime_node
1139
- pkg_cua --> pkg_scope
1140
- pkg_cua --> pkg_tool_executor_ptc
1141
- pkg_cua --> pkg_user_questions
1133
+ pkg_deepseek_chat_import --> pkg_llm
1134
+ pkg_deepseek_chat_import --> pkg_session
1135
+ pkg_deepseek_chat_import --> pkg_session_title
1136
+ pkg_deepseek_chat_import --> pkg_tool_web
1142
1137
  pkg_experimental_auto_review --> pkg_agent
1143
1138
  pkg_experimental_auto_review --> pkg_agent_instructions
1144
1139
  pkg_experimental_auto_review --> pkg_llm
@@ -1761,7 +1756,7 @@ flowchart TD
1761
1756
  | [`skill-badge`](../packages/experimental/skill-badge) | `experimental` | [`skill`](../packages/skill/skill) |
1762
1757
  | [`host-product-telemetry-otel`](../packages/host/product-telemetry-otel) | `host` | [`otel`](../packages/telemetry/otel) |
1763
1758
  | [`persona`](../packages/preset/persona) | `preset` | [`system-prompt`](../packages/core/system-prompt) |
1764
- | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`attachment`](../packages/attachment/attachment), [`sandbox`](../packages/sandbox/sandbox) |
1759
+ | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`sandbox`](../packages/sandbox/sandbox) |
1765
1760
  | [`sandbox-local`](../packages/sandbox/sandbox-local) | `sandbox` | [`llm`](../packages/llm/llm), [`sandbox`](../packages/sandbox/sandbox), [`session`](../packages/core/session) |
1766
1761
  | [`sandbox-windows-acl`](../packages/sandbox/sandbox-windows-acl) | `sandbox` | [`skill`](../packages/skill/skill), [`subprocess`](../packages/subprocess/subprocess) |
1767
1762
  | [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | `session` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
@@ -1841,7 +1836,7 @@ flowchart TD
1841
1836
  | [`workspace-changes`](../packages/deliverables/workspace-changes) | `deliverables` | [`agent`](../packages/core/agent), [`fs`](../packages/fs/fs), [`session`](../packages/core/session), [`subprocess`](../packages/subprocess/subprocess), [`tools`](../packages/core/tools) |
1842
1837
  | [`action-cards`](../packages/experimental/action-cards) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`typert-protocol`](../packages/typert/protocol) |
1843
1838
  | [`creation-recommendations`](../packages/experimental/creation-recommendations) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`skill`](../packages/skill/skill), [`tools`](../packages/core/tools) |
1844
- | [`cua-windows`](../packages/experimental/cua-windows) | `experimental` | [`agent`](../packages/core/agent), [`computer-use`](../packages/computer-use/computer-use), [`subprocess`](../packages/subprocess/subprocess), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`user-questions`](../packages/interaction/user-questions) |
1839
+ | [`cua`](../packages/experimental/cua) | `experimental` | [`attachment`](../packages/attachment/attachment), [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`scope`](../packages/core/scope), [`user-questions`](../packages/interaction/user-questions) |
1845
1840
  | [`experimental-browser-use-chrome-devtools-mcp`](../packages/experimental/browser-use-chrome-devtools-mcp) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1846
1841
  | [`experimental-browser-use-playwright-mcp`](../packages/experimental/browser-use-playwright-mcp) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1847
1842
  | [`experimental-browser-use-stagehand-native`](../packages/experimental/browser-use-stagehand-native) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
@@ -1875,7 +1870,7 @@ flowchart TD
1875
1870
  | [`session-query`](../packages/session-query/session-query) | `session-query` | [`brand`](../packages/util/brand), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence), [`session-projection`](../packages/session/session-projection), [`session-projection-cache`](../packages/session/session-projection-cache), [`session-title`](../packages/session/session-title), [`tool-todo`](../packages/todo/tool-todo) |
1876
1871
  | [`api-settings-controller`](../packages/api/settings-controller) | `api` | [`agent-preset-registry`](../packages/preset/agent-preset-registry), [`credentials`](../packages/credentials/credentials), [`native-command`](../packages/util/native-command), [`session`](../packages/core/session), [`settings`](../packages/settings/settings), [`typert-protocol`](../packages/typert/protocol) |
1877
1872
  | [`web-app`](../packages/bundle/web-app) | `bundle` | [`shell-env`](../packages/shell/shell-env) |
1878
- | [`cua`](../packages/experimental/cua) | `experimental` | [`attachment`](../packages/attachment/attachment), [`error`](../packages/util/error), [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`scope`](../packages/core/scope), [`tool-executor-ptc`](../packages/core/tool-executor-ptc), [`user-questions`](../packages/interaction/user-questions) |
1873
+ | [`deepseek-chat-import`](../packages/experimental/deepseek-chat-import) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`tool-web`](../packages/web/tool-web) |
1879
1874
  | [`experimental-auto-review`](../packages/experimental/auto-review) | `experimental` | [`agent`](../packages/core/agent), [`agent-instructions`](../packages/context/agent-instructions), [`llm`](../packages/llm/llm), [`permission-presets`](../packages/interaction/permission-presets), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1880
1875
  | [`experimental-forge-session`](../packages/experimental/forge-session) | `experimental` | [`experimental-forge`](../packages/experimental/forge), [`sandbox-policy`](../packages/sandbox/sandbox-policy), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection), [`shell`](../packages/shell/shell), [`shell-env`](../packages/shell/shell-env), [`tools`](../packages/core/tools) |
1881
1876
  | [`webhook`](../packages/experimental/webhook) | `experimental` | [`agent`](../packages/core/agent), [`agent-default-model`](../packages/core/agent-default-model), [`agent-preset-registry`](../packages/preset/agent-preset-registry), [`llm`](../packages/llm/llm), [`permission-presets`](../packages/interaction/permission-presets), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`workspace`](../packages/workspace/workspace) |
@@ -266,7 +266,7 @@ flowchart TD
266
266
  pkg_creation_recommendations["creation-recommendations"]
267
267
  pkg_cua["cua"]
268
268
  pkg_cua_bundle["cua-bundle"]
269
- pkg_cua_windows["cua-windows"]
269
+ pkg_deepseek_chat_import["deepseek-chat-import"]
270
270
  pkg_experimental_api_speech_to_text["experimental-api-speech-to-text"]
271
271
  pkg_experimental_auto_review["experimental-auto-review"]
272
272
  pkg_experimental_badge_skill_bundle["experimental-badge-skill-bundle"]
@@ -589,7 +589,6 @@ flowchart TD
589
589
  pkg_skill_badge --> pkg_skill
590
590
  pkg_host_product_telemetry_otel --> pkg_otel
591
591
  pkg_persona --> pkg_system_prompt
592
- pkg_ptc_runtime --> pkg_attachment
593
592
  pkg_ptc_runtime --> pkg_sandbox
594
593
  pkg_sandbox_local --> pkg_llm
595
594
  pkg_sandbox_local --> pkg_sandbox
@@ -962,12 +961,10 @@ flowchart TD
962
961
  pkg_creation_recommendations --> pkg_session
963
962
  pkg_creation_recommendations --> pkg_skill
964
963
  pkg_creation_recommendations --> pkg_tools
965
- pkg_cua_windows --> pkg_agent
966
- pkg_cua_windows --> pkg_computer_use
967
- pkg_cua_windows --> pkg_subprocess
968
- pkg_cua_windows --> pkg_system_prompt
969
- pkg_cua_windows --> pkg_tools
970
- pkg_cua_windows --> pkg_user_questions
964
+ pkg_cua --> pkg_attachment
965
+ pkg_cua --> pkg_ptc_runtime_node
966
+ pkg_cua --> pkg_scope
967
+ pkg_cua --> pkg_user_questions
971
968
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_agent
972
969
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_browser_use
973
970
  pkg_experimental_browser_use_chrome_devtools_mcp --> pkg_system_prompt
@@ -1135,12 +1132,10 @@ flowchart TD
1135
1132
  pkg_api_settings_controller --> pkg_settings
1136
1133
  pkg_api_settings_controller --> pkg_typert_protocol
1137
1134
  pkg_web_app --> pkg_shell_env
1138
- pkg_cua --> pkg_attachment
1139
- pkg_cua --> pkg_error
1140
- pkg_cua --> pkg_ptc_runtime_node
1141
- pkg_cua --> pkg_scope
1142
- pkg_cua --> pkg_tool_executor_ptc
1143
- pkg_cua --> pkg_user_questions
1135
+ pkg_deepseek_chat_import --> pkg_llm
1136
+ pkg_deepseek_chat_import --> pkg_session
1137
+ pkg_deepseek_chat_import --> pkg_session_title
1138
+ pkg_deepseek_chat_import --> pkg_tool_web
1144
1139
  pkg_experimental_auto_review --> pkg_agent
1145
1140
  pkg_experimental_auto_review --> pkg_agent_instructions
1146
1141
  pkg_experimental_auto_review --> pkg_llm
@@ -1763,7 +1758,7 @@ flowchart TD
1763
1758
  | [`skill-badge`](../packages/experimental/skill-badge) | `experimental` | [`skill`](../packages/skill/skill) |
1764
1759
  | [`host-product-telemetry-otel`](../packages/host/product-telemetry-otel) | `host` | [`otel`](../packages/telemetry/otel) |
1765
1760
  | [`persona`](../packages/preset/persona) | `preset` | [`system-prompt`](../packages/core/system-prompt) |
1766
- | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`attachment`](../packages/attachment/attachment), [`sandbox`](../packages/sandbox/sandbox) |
1761
+ | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`sandbox`](../packages/sandbox/sandbox) |
1767
1762
  | [`sandbox-local`](../packages/sandbox/sandbox-local) | `sandbox` | [`llm`](../packages/llm/llm), [`sandbox`](../packages/sandbox/sandbox), [`session`](../packages/core/session) |
1768
1763
  | [`sandbox-windows-acl`](../packages/sandbox/sandbox-windows-acl) | `sandbox` | [`skill`](../packages/skill/skill), [`subprocess`](../packages/subprocess/subprocess) |
1769
1764
  | [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | `session` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
@@ -1843,7 +1838,7 @@ flowchart TD
1843
1838
  | [`workspace-changes`](../packages/deliverables/workspace-changes) | `deliverables` | [`agent`](../packages/core/agent), [`fs`](../packages/fs/fs), [`session`](../packages/core/session), [`subprocess`](../packages/subprocess/subprocess), [`tools`](../packages/core/tools) |
1844
1839
  | [`action-cards`](../packages/experimental/action-cards) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`typert-protocol`](../packages/typert/protocol) |
1845
1840
  | [`creation-recommendations`](../packages/experimental/creation-recommendations) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`skill`](../packages/skill/skill), [`tools`](../packages/core/tools) |
1846
- | [`cua-windows`](../packages/experimental/cua-windows) | `experimental` | [`agent`](../packages/core/agent), [`computer-use`](../packages/computer-use/computer-use), [`subprocess`](../packages/subprocess/subprocess), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`user-questions`](../packages/interaction/user-questions) |
1841
+ | [`cua`](../packages/experimental/cua) | `experimental` | [`attachment`](../packages/attachment/attachment), [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`scope`](../packages/core/scope), [`user-questions`](../packages/interaction/user-questions) |
1847
1842
  | [`experimental-browser-use-chrome-devtools-mcp`](../packages/experimental/browser-use-chrome-devtools-mcp) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1848
1843
  | [`experimental-browser-use-playwright-mcp`](../packages/experimental/browser-use-playwright-mcp) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1849
1844
  | [`experimental-browser-use-stagehand-native`](../packages/experimental/browser-use-stagehand-native) | `experimental` | [`agent`](../packages/core/agent), [`browser-use`](../packages/browser-use/browser-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
@@ -1877,7 +1872,7 @@ flowchart TD
1877
1872
  | [`session-query`](../packages/session-query/session-query) | `session-query` | [`brand`](../packages/util/brand), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence), [`session-projection`](../packages/session/session-projection), [`session-projection-cache`](../packages/session/session-projection-cache), [`session-title`](../packages/session/session-title), [`tool-todo`](../packages/todo/tool-todo) |
1878
1873
  | [`api-settings-controller`](../packages/api/settings-controller) | `api` | [`agent-preset-registry`](../packages/preset/agent-preset-registry), [`credentials`](../packages/credentials/credentials), [`native-command`](../packages/util/native-command), [`session`](../packages/core/session), [`settings`](../packages/settings/settings), [`typert-protocol`](../packages/typert/protocol) |
1879
1874
  | [`web-app`](../packages/bundle/web-app) | `bundle` | [`shell-env`](../packages/shell/shell-env) |
1880
- | [`cua`](../packages/experimental/cua) | `experimental` | [`attachment`](../packages/attachment/attachment), [`error`](../packages/util/error), [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`scope`](../packages/core/scope), [`tool-executor-ptc`](../packages/core/tool-executor-ptc), [`user-questions`](../packages/interaction/user-questions) |
1875
+ | [`deepseek-chat-import`](../packages/experimental/deepseek-chat-import) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`tool-web`](../packages/web/tool-web) |
1881
1876
  | [`experimental-auto-review`](../packages/experimental/auto-review) | `experimental` | [`agent`](../packages/core/agent), [`agent-instructions`](../packages/context/agent-instructions), [`llm`](../packages/llm/llm), [`permission-presets`](../packages/interaction/permission-presets), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
1882
1877
  | [`experimental-forge-session`](../packages/experimental/forge-session) | `experimental` | [`experimental-forge`](../packages/experimental/forge), [`sandbox-policy`](../packages/sandbox/sandbox-policy), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection), [`shell`](../packages/shell/shell), [`shell-env`](../packages/shell/shell-env), [`tools`](../packages/core/tools) |
1883
1878
  | [`webhook`](../packages/experimental/webhook) | `experimental` | [`agent`](../packages/core/agent), [`agent-default-model`](../packages/core/agent-default-model), [`agent-preset-registry`](../packages/preset/agent-preset-registry), [`llm`](../packages/llm/llm), [`permission-presets`](../packages/interaction/permission-presets), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`workspace`](../packages/workspace/workspace) |
@@ -3,8 +3,8 @@
3
3
  # After editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/computer-use.md
5
5
  /computer-use:
6
- en: bf7dcc9124e8bce2
7
- zh: 4199c51e21dc9b0a
6
+ en: e02a2e4cc9970cba
7
+ zh: 29aac6c0530a582f
8
8
  /computer-use/choose-a-provider:
9
9
  en: fa2e0d7b41c0450b
10
10
  zh: af9a799711f901e6
@@ -14,7 +14,7 @@ The CUA provider owns `ctx.cuaAccess` for system-permission status, explicit sys
14
14
  |---|---|
15
15
  | `CuaApplicationId`, `CuaApplicationGrant` | A platform-provided application identity and its displayed saved decision. |
16
16
  | `CuaSystemPermission` | Accessibility or Screen Recording, selected by the human. |
17
- | `CuaPermissionProcess`, `CuaSystemPermissionState` | Native access observations tagged `darwin` or `windows`, with the helper’s name and path when available. macOS includes permission checks, numeric helper and parent PIDs, and responsible-application metadata when available (falling back to the helper’s own bundle); Windows includes desktop lock, capture availability and elevation status, and omits the helper PID. |
17
+ | `CuaPermissionProcess`, `CuaSystemPermissionState` | Native access observations tagged `darwin` or `win32`, with helper process identity. macOS includes permission checks, parent identity and responsible-application metadata when available (falling back to the helper’s own bundle); Windows includes desktop lock, capture availability and elevation status. |
18
18
  | `CuaApplicationState` | Saved grants, refused applications, and whether persistence is available. Session-only grants remain internal to the provider. System observations and application icons are queried separately so the page can display each result as it arrives. |
19
19
 
20
20
  The [shared object API](../../packages/experimental/cua/README.md) uses `connectCua` to select an application, then `app.getWindows()` and `app.getWindow(windowId)` to select a window for screenshots and pointer input. Accessibility operations use element IDs from the latest tree for that application handle. Providers declare keyboard scopes and application-level accessibility in `getCapabilities()`.
@@ -14,7 +14,7 @@ CUA provider 通过 `ctx.cuaAccess` 提供系统权限状态、用户主动申
14
14
  |---|---|
15
15
  | `CuaApplicationId`、`CuaApplicationGrant` | 平台提供的应用身份,以及显示给用户的已保存决定。 |
16
16
  | `CuaSystemPermission` | 用户选择申请的辅助功能或屏幕录制权限。 |
17
- | `CuaPermissionProcess`、`CuaSystemPermissionState` | 以 `darwin` 或 `windows` 标记的原生访问状态,包含可获取的 helper 名称和路径。macOS 包含权限检查、helper 和父进程的数字 PID,以及责任应用信息(系统无法识别时使用 helper 自身的应用包);Windows 包含桌面锁定、截图可用性和提权状态,省略 helper 的 PID。 |
17
+ | `CuaPermissionProcess`、`CuaSystemPermissionState` | 以 `darwin` 或 `win32` 标记的原生访问状态和 helper 进程身份。macOS 包含权限检查、父进程身份和责任应用信息(系统无法识别时使用 helper 自身的应用包);Windows 包含桌面锁定、截图可用性和提权状态。 |
18
18
  | `CuaApplicationState` | 持久授权、拒绝记录,以及能否持久保存。会话授权只保留在 provider 内部。系统权限和应用图标分别查询,页面在各项结果返回后分别显示。 |
19
19
 
20
20
  调用[共享对象 API](../../packages/experimental/cua/README.zh.md) 时,通过 `connectCua` 连接,选择应用后用 `app.getWindows()` 和 `app.getWindow(windowId)` 选择要截图或进行鼠标操作的窗口。辅助功能操作使用该应用句柄最近一次读取的树中的元素 ID。提供方通过 `getCapabilities()` 声明键盘输入支持的范围,以及是否支持应用级辅助功能。
@@ -348,6 +348,25 @@ The shipped provider implements the abstract `SessionPersistence` contract (`cre
348
348
 
349
349
  Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
350
350
 
351
+ <a id="ctxdeepseekchatimport--deepseekchatimportservice"></a>
352
+
353
+ ### `ctx.deepseekChatImport` — `DeepseekChatImportService`
354
+
355
+ Serves the owner-only export upload route and the limits the browser checks first.
356
+
357
+ ```ts cordis-catalog
358
+ /**
359
+ * Report the limits the browser checks before uploading. Only the owner may
360
+ * import, so every other principal is refused.
361
+ * @param signal - Client cancellation or Remote withdrawal.
362
+ * @returns the largest accepted archive size.
363
+ * @throws {RemoteError} `deepseekChatImport/owner-only` for a caller that is not the owner.
364
+ */
365
+ @Remote limits(signal: AbortSignal): DeepseekChatImportLimits
366
+ ```
367
+
368
+ Source: [`packages/experimental/deepseek-chat-import/src/index.ts`](../../packages/experimental/deepseek-chat-import/src/index.ts)
369
+
351
370
  <a id="ctxsessionpersistence--sessionpersistence-abstract-seam"></a>
352
371
 
353
372
  ### `ctx.sessionPersistence` — `SessionPersistence` (abstract seam)
@@ -348,6 +348,25 @@ interface SessionPersistenceSnapshot {
348
348
 
349
349
  Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.zh.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
350
350
 
351
+ <a id="ctxdeepseekchatimport--deepseekchatimportservice"></a>
352
+
353
+ ### `ctx.deepseekChatImport` — `DeepseekChatImportService`
354
+
355
+ Serves the owner-only export upload route and the limits the browser checks first.
356
+
357
+ ```ts cordis-catalog
358
+ /**
359
+ * Report the limits the browser checks before uploading. Only the owner may
360
+ * import, so every other principal is refused.
361
+ * @param signal - Client cancellation or Remote withdrawal.
362
+ * @returns the largest accepted archive size.
363
+ * @throws {RemoteError} `deepseekChatImport/owner-only` for a caller that is not the owner.
364
+ */
365
+ @Remote limits(signal: AbortSignal): DeepseekChatImportLimits
366
+ ```
367
+
368
+ Source: [`packages/experimental/deepseek-chat-import/src/index.ts`](../../packages/experimental/deepseek-chat-import/src/index.ts)
369
+
351
370
  <a id="ctxsessionpersistence--sessionpersistence-abstract-seam"></a>
352
371
 
353
372
  ### `ctx.sessionPersistence` — `SessionPersistence` (abstract seam)
@@ -6,14 +6,14 @@
6
6
  en: 337a6580d7571274
7
7
  zh: f4ae98899120d122
8
8
  /ptc-runtime/the-run-request-in-result-out:
9
- en: 94ba725bef6684b7
10
- zh: f113745a4a07952a
9
+ en: 6dfa7da8b13a4f17
10
+ zh: 09a3c8c4922239ef
11
11
  /ptc-runtime/bindings-host-functions-as-program-globals:
12
12
  en: 182147ddf388c600
13
13
  zh: c0a7d77602c78bcd
14
14
  /ptc-runtime/captured-output-and-the-failure-taxonomy:
15
- en: ef553620e77bd638
16
- zh: 40ff2f5ba3de5ed5
15
+ en: 8eb1607888ab6efc
16
+ zh: 580c852d17b9413f
17
17
  /ptc-runtime/the-service:
18
18
  en: a82f828fa006c7e9
19
19
  zh: 2279d36867335b57
@@ -19,15 +19,13 @@ interface PtcRunRequest {
19
19
  /**
20
20
  * The program source, in the runtime's {@link ../index.ts | language}. It
21
21
  * follows the provider's programFormat: an async function body supports
22
- * top-level `await` and `return`; REPL (`repl`, `scoped-repl`) and Script programs support top-level
22
+ * top-level `await` and `return`; REPL and Script programs support top-level
23
23
  * declarations, `await`, and a final expression, but not top-level `return`.
24
24
  * The Script provider lowers top-level await; its executionInstructions and
25
25
  * documentation define retained-binding semantics. The completion value
26
26
  * becomes {@link PtcRunResult.value}.
27
27
  */
28
28
  program: string
29
- /** Discard the completion without JSON validation when true; omission preserves the completion value. */
30
- discardCompletion?: boolean
31
29
  /**
32
30
  * Object-identity owner for optional in-memory state. Omission requests a fresh
33
31
  * environment. Consumers must await runtime.release(owner) when the owner ends.
@@ -95,12 +93,11 @@ interface PtcRunResult {
95
93
  */
96
94
  value?: PtcJsonValue
97
95
  /**
98
- * Captured text fragments retain their emitted line breaks. Concatenate adjacent text without separators.
99
- * Each source channel preserves emission order; interleaving
96
+ * Captured text. Each source channel preserves emission order; interleaving
100
97
  * across independent channels is backend-dependent. Bounded only as part of
101
98
  * the outer result.
102
99
  */
103
- output: PtcOutput[]
100
+ logs: string[]
104
101
  /** Present iff the run failed; see {@link PtcRunFailure} for the taxonomy. */
105
102
  error?: PtcRunFailure
106
103
  }
@@ -108,10 +105,10 @@ interface PtcRunResult {
108
105
 
109
106
  ```ts type-equiv
110
107
  /** Source evaluation form, independent of retained program state. */
111
- type PtcProgramFormat = 'function-body' | 'repl' | 'script' | 'scoped-repl'
108
+ type PtcProgramFormat = 'function-body' | 'repl' | 'script'
112
109
  ```
113
110
 
114
- `programFormat` distinguishes async function bodies, REPL statements, scoped REPL statements, and scripts. REPL, scoped REPL, and Script programs accept top-level `await`, declarations, and a final expression; top-level `return` is not supported. Retained REPL calls share one scope, while each scoped REPL call starts with copies of the top-level bindings that earlier calls left, so it can declare those names again without changing earlier code. The Node Script provider lowers top-level await and awaits the completion value; its [declaration limitations](../../packages/ptc-runtime/ptc-runtime-node/README.md#known-limitations-and-deferred-work) apply to transformed programs. `retainsState` reports memory retention independently of source syntax. `stateOwner` is an in-process object identity for optional retained memory; distinct objects remain isolated. Consumers await `release(owner)` when that owner ends; cleanup failures reject that call. Omitted owners are one-shot, and stateless providers ignore ownership. The [persistent Node provider](../../packages/ptc-runtime/ptc-runtime-node/README.md#persistent-repl) defines reset and recovery behavior; no retained object enters the durable Session format.
111
+ `programFormat` distinguishes async function bodies, REPL statements, and scripts. REPL and Script programs accept top-level `await`, declarations, and a final expression; top-level `return` is not supported. The Node Script provider lowers top-level await and awaits the completion value; its [declaration limitations](../../packages/ptc-runtime/ptc-runtime-node/README.md#known-limitations-and-deferred-work) apply to transformed programs. `retainsState` reports memory retention independently of source syntax. `stateOwner` is an in-process object identity for optional retained memory; distinct objects remain isolated. Consumers await `release(owner)` when that owner ends; cleanup failures reject that call. Omitted owners are one-shot, and stateless providers ignore ownership. The [persistent Node provider](../../packages/ptc-runtime/ptc-runtime-node/README.md#persistent-repl) defines reset and recovery behavior; no retained object enters the durable Session format.
115
112
 
116
113
  ## Bindings: host functions as program globals
117
114
 
@@ -153,7 +150,7 @@ interface PtcBindingNamespace {
153
150
  * words, so the same namespace list works against every backend regardless
154
151
  * of `language` — a JS-only spelling like `$tools` is rejected by design,
155
152
  * not just by the Python backend. Names that satisfy the identifier rule but
156
- * name a backend-owned slot (`RESERVED_BINDING_GLOBALS`, e.g. `inspect`, `console`, `Image`,
153
+ * name a backend-owned slot (`RESERVED_BINDING_GLOBALS`, e.g. `console`,
157
154
  * `__dsh_main__`) are also refused everywhere; see its declaration for the
158
155
  * exact set and why each entry is reserved.
159
156
  */
@@ -174,7 +171,7 @@ type PtcJsonValue = null | boolean | number | string | PtcJsonValue[] | { [key:
174
171
  /**
175
172
  * One host-side function exposed to the program as an async callable. The
176
173
  * runtime bridges calls to it (possibly across a serialization boundary), so
177
- * `args` must be lossless JSON; resolutions also support host-issued PtcImage values. A runtime rejects a
174
+ * `args` and the resolution value MUST be lossless JSON. A runtime rejects a
178
175
  * lossy or non-cloneable value with a descriptive error rather than corrupting
179
176
  * the run. No seam-level byte cap applies to a binding resolution. A rejection
180
177
  * of this function surfaces inside the program as a rejection of the
@@ -185,29 +182,7 @@ type PtcBindingFunction = (args: unknown) => Promise<PtcJsonValue>
185
182
 
186
183
  ## Captured output and the failure taxonomy
187
184
 
188
- `output` contains text and image entries in emission order: `{ type: 'text', text }` or `{ type: 'image', attachment }`. Text entries retain emitted newline characters; concatenate adjacent text without separators. Each source channel preserves emission order; interleaving across independent channels is backend-dependent. Host bindings return `PtcImage` descriptors containing the attachment reference and a readable execution-world `path`; the program receives an `Image` with that path and the stored pixel dimensions. The Node provider caps serialized text, image descriptors, and completion or diagnostic payloads together; overflow is an explicit failure.
189
-
190
- ```ts public-api
191
- /** A stored image readable from the program's execution environment. */
192
- declare class PtcImage {
193
- readonly [key: string]: PtcJsonValue;
194
- /** Absolute attachment file path readable in the execution world. */
195
- readonly path: string;
196
- /** Stored image selected when the program inspects this value. */
197
- readonly attachment: Readonly<ImageAttachmentRef>;
198
- /**
199
- * Describe one immutable image file in the execution world.
200
- * @param path - Absolute path to the stored image.
201
- * @param attachment - Reference to the immutable stored image.
202
- */
203
- constructor(path: string, attachment: ImageAttachmentRef);
204
- }
205
- ```
206
-
207
- ```ts type-equiv
208
- /** Raw text fragments and inspected images in emission order; concatenate adjacent text without separators. */
209
- type PtcOutput = { type: 'text'; text: string } | { type: 'image'; attachment: ImageAttachmentRef }
210
- ```
185
+ Logs are plain strings. Each source channel preserves emission order, while interleaving across independent channels is backend-dependent because channel metadata is not part of the seam. The runtime captures the program's console and stream output, and consumers render only the text. Implementations cap the serialized outer log-array plus completion-value or failure-message payload; fixed result-envelope syntax and consumer presentation whitespace are not part of that variable-payload ledger. Overflow is an explicit failure rather than in-band value substitution.
211
186
 
212
187
  Failure kinds are **orthogonal outcomes reported independently** (per [defensive-patterns](../defensive-patterns/general.md)): a budget expiry is not an exception, an abort is not a timeout, and a substrate death (e.g. OOM) is neither:
213
188
 
@@ -262,21 +237,6 @@ Registers one `ctx.ptcRuntime` implementation. Program, budget, abort, and subst
262
237
  */
263
238
  release(owner: object): Promise<void>
264
239
 
265
- /**
266
- * Register source evaluated once when each execution environment is created.
267
- * Registration must precede the first run admission; only one initializer may
268
- * be registered. Current bindings are installed before initialization. Its
269
- * completion is discarded; logs, timeout, cancellation and output bounds share
270
- * the first run. Initialization failure discards the environment without
271
- * executing the user program or rolling back external effects.
272
- * @param program - Initialization source in the provider's language and format.
273
- * @returns An idempotent async disposer that stops admission, cancels and drains
274
- * admitted runs, and releases environments. Failed cleanup blocks execution
275
- * until the disposer succeeds on retry. The caller owns this disposer.
276
- * @throws When unsupported, registered twice, registered after admission, or invalid.
277
- */
278
- registerEnvironmentInitializer(program: string): () => Promise<void>
279
-
280
240
  /**
281
241
  * Resolve supported options and provider defaults before execution.
282
242
  * @param request - Program, bindings, cancellation and optional execution choices.