@deepseek-ai/dsh-cordis-client-runner 0.1.7-alpha.2 → 0.1.7-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/extensions/cordis-client-runner/README.md
5
- README.md: aa87e2919be899539bea8aff00d072553f339c38
6
- README.zh.md: f4925e4bd52098884c6a25f2d9504ce9a9d667f0
5
+ README.md: c5d9a10bde22c6e48b23cd113737a80cc03bcdd0
6
+ README.zh.md: c6463de9cd03f1b0de8a9a8fee3037fe01392607
package/README.md CHANGED
@@ -66,6 +66,10 @@ The browser half is built on one principle: a dynamic package must ride the same
66
66
  | [`src/client/providers.ts`](src/client/providers.ts) | First-party client Inspect Providers (slots, theme, events) |
67
67
  | [`src/client/timer.ts`](src/client/timer.ts) | The client timer service dynamic packages inject |
68
68
 
69
+ ### Inspecting slot inputs
70
+
71
+ The Slots provider's exact `listSubTree` lookup includes documented owner fields and top-level alias, intersection, and union declarations. Nested field-value types remain named references, so inspecting a Tool view exposes its shared callbacks and stage union without expanding the full Session graph.
72
+
69
73
  ### How a run is carried out
70
74
 
71
75
  A `cordis/request-run` event asks this page whether to run a definition. Whoever answers — the page after an approval, or the user pressing run — drives the orchestration: the host half first (so a host-half failure short-circuits before the browser has moved), then the source fetch, then the browser half, then one resolution carrying what happened. The browser half's source is evaluated as an async function body with the symbol surface as parameters, the returned plugin is guard-wrapped and mounted through the loader, and the resolution reports the loaded revision or the failing stage with the closure's, guard's, or fiber's message. `host.call` routes through the Remote namespace; an omitted argument travels as `null`, and a payload the generated codec refuses becomes a teaching error naming the call and the contract.
package/README.zh.md CHANGED
@@ -66,6 +66,10 @@ kind: "package-reference"
66
66
  | [`src/client/providers.ts`](src/client/providers.ts) | 第一方 client Inspect Provider(slots、theme、events) |
67
67
  | [`src/client/timer.ts`](src/client/timer.ts) | 动态包注入的 client 定时器服务 |
68
68
 
69
+ ### 查询槽位输入
70
+
71
+ Slots provider 的精确 `listSubTree` 查询包含带说明的 owner 字段及顶层别名、交叉类型和联合类型声明。嵌套字段的值类型只列出引用名称,因此查询 Tool 视图可以获得共享回调和阶段联合,而不会展开完整 Session 类型图。
72
+
69
73
  ### 一次 run 如何执行
70
74
 
71
75
  一条 `cordis/request-run` 事件问这一页要不要运行某个定义。作答的一方——审批后的页面,或按下运行的用户——驱动编排:先 host 半(host 半失败会在浏览器动作之前短路),再取源码,再浏览器半,最后一次结算带上发生的一切。浏览器半源码作为 async 函数体求值,符号面就是参数;返回的插件经 guard 包装后通过 loader 挂载;结算报告已装载的 revision,或失败阶段加闭包、guard 或 fiber 的消息。`host.call` 经 Remote namespace 路由;省略的入参以 `null` 过线,而生成 codec 拒收的载荷会变成一条点名「哪次调用 + 约定是什么」的教学错误。
package/lib/client.js CHANGED
@@ -5758,25 +5758,31 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
5758
5758
  occupants: ["client-ui-attachment MessageImages"],
5759
5759
  replaceRisk: "shadows-shipped-ui",
5760
5760
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('tool.call.images', () => ctx.slots.register(\n { name: 'tool.call.images' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
5761
- source: "packages/client/ui-tool/src/client/contract/slots.ts:35"
5761
+ source: "packages/client/ui-tool/src/client/contract/slots.ts:45"
5762
5762
  },
5763
5763
  {
5764
5764
  key: "tool.call.toolview",
5765
5765
  kind: "keyed",
5766
5766
  scope: "session",
5767
5767
  summary: "Keyed Tool call view dispatched by wire Tool name.",
5768
- doc: "Keyed Tool call view dispatched by wire Tool name. Any name is allowed,\nincluding tools registered by your package. Register with\n`key: '<tool name>'`; a typo never renders.\n\nRegistering an occupied key replaces its view; unclaimed keys use the\ngeneric row. The owner supplies the call identity and frozen running\nor settled node through ToolCallOwnerProps.",
5768
+ doc: "Keyed Tool call view dispatched by wire Tool name. Any name is allowed,\nincluding tools registered by your package. Register with\n`key: '<tool name>'`; a typo never renders.\n\nRegistering an occupied key replaces its view; unclaimed keys use the\ngeneric row. The owner supplies the call identity and frozen running\nor settled node through explicit phase props. Preparing blocks have no dispatched\narguments; useToolCallArgumentsPartial optionally subscribes to their raw prefix.",
5769
5769
  registerOptions: [{
5770
5770
  name: "key",
5771
5771
  requirement: "required",
5772
5772
  type: "string",
5773
5773
  doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
5774
5774
  }],
5775
- ownerProps: ["/** Standard owner currency supplied to every atomic Tool view. */\nexport interface ToolCallOwnerProps {\n /** Stable injected Hook; each invocation owns its open state and subscribes to enclosing-Turn resets. */\n useDisclosure: UseDisclosure\n /** Tool call identity, stable across running and settled forms. */\n callId: string\n /** Wire Tool name and keyed dispatch value. */\n toolName: string\n /** Frozen running call or settled result node. */\n block: ToolCallBlock\n /** Session workspace root for relative summaries. */\n cwd?: string | undefined\n /** Host account home; POSIX home-rooted summaries display as `~`. */\n home?: string | undefined\n /**\n * Open a Tool argument path. A view that knows which line the call was about\n * passes it, and the opened surface lands there.\n */\n openFile: (path: string, options?: OpenFileOptions) => void\n /**\n * Session-authorized image loader for the `tool.call.images` slot, supplied\n * by the chat node that owns this call. A composed chat node always\n * supplies it (`ChatNodeOwnerProps.loadImage` is required), so the tool\n * layer never imports an attachment implementation nor handles URL\n * authorization.\n */\n loadIm /* …truncated — full shape in source */"],
5775
+ ownerProps: [
5776
+ "/** Standard owner currency supplied to every atomic Tool view. */\nexport interface ToolCallCommonProps {\n /** Stable Hook; each invocation owns its open state and subscribes to enclosing-Turn resets. */\n useDisclosure: UseDisclosure\n /** Call identity, stable across all stages. */\n callId: string\n /** Wire Tool name and keyed dispatch value. */\n toolName: string\n /** Session workspace root for relative summaries. */\n cwd?: string | undefined\n /** Host account home; POSIX home-rooted summaries display as `~`. */\n home?: string | undefined\n /** Open an argument path at its optional requested line. */\n openFile: (path: string, options?: OpenFileOptions) => void\n /** Chat-supplied, session-authorized loader for durable images; Tool views do not manage attachment URLs. */\n loadImage: MessageImageLoader\n /** Inspect this call in the trajectory view when available. */\n inspect?: (() => void) | undefined\n}",
5777
+ "/** Common owner callbacks and the data admitted at the current tool stage. */\nexport type ToolCallOwnerProps = ToolCallCommonProps & ToolCallPhaseProps",
5778
+ "/** Stage-specific tool data; only start/result expose the dispatched call material. */\nexport type ToolCallPhaseProps =\n | { readonly phase: 'preparing'; readonly block: PreparingToolCall }\n | { readonly phase: 'start'; readonly block: StartedToolCall }\n | { readonly phase: 'result'; readonly block: ToolResultNode }"
5779
+ ],
5776
5780
  ownerPropsReferences: [
5777
- "ChatNodeOwnerProps",
5778
5781
  "MessageImageLoader",
5779
5782
  "OpenFileOptions",
5783
+ "PreparingToolCall",
5784
+ "StartedToolCall",
5785
+ "ToolResultNode",
5780
5786
  "UseDisclosure"
5781
5787
  ],
5782
5788
  standardProps: [
@@ -5797,8 +5803,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
5797
5803
  "useTrajectory: UseTrajectory"
5798
5804
  ],
5799
5805
  keyDomain: "open: any string the owner dispatches (no compile-time key set), already taken: ask_user_question, bash, cordis_define, cordis_inspect_list, cordis_inspect_query, cordis_inspect_self, cordis_run, cordis_stop, cordis_undefine, create_goal, edit, get_goal, glob, grep, interrupt_agent, job_kill, job_list, job_output, list_agents, list_subagent_models, lsp, present, ralph, read, read_image, schedule_create, schedule_delete, schedule_list, send_message, session_event_read, session_event_search, session_event_trace, session_search, session_trace, skill, spawn_teammate, subagent, team_task_create, team_task_get, team_task_list, team_task_update, terminal_close, terminal_list, terminal_open, terminal_read, terminal_signal, todo_write, update_goal, wait_agent, web_fetch, web_search, workflow, write",
5800
- hookContext: "",
5801
- slotInject: "",
5806
+ hookContext: "ToolCallHookContext",
5807
+ slotInject: "ToolCallInjected",
5802
5808
  declaredBy: "an entry in 'conversation.chat.node' (client-ui-tool), so it exists while that entry is mounted",
5803
5809
  occupants: [
5804
5810
  "client-ui-deliverables PresentRow key 'present'",
@@ -5857,7 +5863,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
5857
5863
  ],
5858
5864
  replaceRisk: "shadows-shipped-ui",
5859
5865
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register(\n { name: 'tool.call.toolview', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
5860
- source: "packages/client/ui-tool/src/client/contract/slots.ts:21"
5866
+ source: "packages/client/ui-tool/src/client/contract/slots.ts:25"
5861
5867
  },
5862
5868
  {
5863
5869
  key: "tool.view.cordis",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-cordis-client-runner",
3
3
  "description": "Browser half of dynamic dual-half plugin packages: event subscription, closure evaluation, guard facade, and loader entries",
4
- "version": "0.1.7-alpha.2",
4
+ "version": "0.1.7-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -43,13 +43,13 @@
43
43
  "devDependencies": {
44
44
  "@types/react": "~18.3.1",
45
45
  "react": "^18.2.0",
46
- "@deepseek-ai/dsh-api-remotes": "0.1.7-alpha.2",
47
- "@deepseek-ai/dsh-client-modules": "0.1.7-alpha.2",
48
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-alpha.2",
49
46
  "@deepseek-ai/cordis-plugin-loader": "~1.0.5",
47
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.1",
48
+ "@deepseek-ai/dsh-client-modules": "0.1.7-rc.1",
49
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.1",
50
+ "@deepseek-ai/dsh-client-ui-theme": "0.1.7-rc.1",
50
51
  "@deepseek-ai/cordis": "~4.0.4",
51
- "@deepseek-ai/dsh-util-values": "0.1.7-alpha.2",
52
- "@deepseek-ai/dsh-client-ui-theme": "0.1.7-alpha.2"
52
+ "@deepseek-ai/dsh-util-values": "0.1.7-rc.1"
53
53
  },
54
54
  "files": [
55
55
  "lib/index.js",