@deepseek-ai/dsh-cordis-client-runner 0.1.7-alpha.2 → 0.1.7-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +78 -5
- package/README.md +4 -0
- package/README.zh.md +4 -0
- package/lib/client.js +193 -43
- package/package.json +6 -6
package/README.i18n.yaml
CHANGED
|
@@ -1,6 +1,79 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
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
|
-
|
|
6
|
-
|
|
5
|
+
/:
|
|
6
|
+
en: 0d1382466301a0cb
|
|
7
|
+
zh: 64ee27ce126adad2
|
|
8
|
+
/deepseek-ai-dsh-cordis-client-runner:
|
|
9
|
+
en: ea84dfc91fbdbf90
|
|
10
|
+
zh: 3c70bc4bb1b1a7ab
|
|
11
|
+
/deepseek-ai-dsh-cordis-client-runner/summary:
|
|
12
|
+
en: 639cd79ac2d186c1
|
|
13
|
+
zh: 07d7bf8655111e55
|
|
14
|
+
/deepseek-ai-dsh-cordis-client-runner/table-of-contents:
|
|
15
|
+
en: d152484eb41ac6b4
|
|
16
|
+
zh: 09388d293f9be9cb
|
|
17
|
+
/deepseek-ai-dsh-cordis-client-runner/use-this-package:
|
|
18
|
+
en: 731e4c9c364beeb5
|
|
19
|
+
zh: 6aa113070967571f
|
|
20
|
+
/deepseek-ai-dsh-cordis-client-runner/use-this-package/what-the-page-does:
|
|
21
|
+
en: b303762b91f6d830
|
|
22
|
+
zh: c6e60cf498da3c4e
|
|
23
|
+
/deepseek-ai-dsh-cordis-client-runner/use-this-package/what-the-run-surface-offers:
|
|
24
|
+
en: 155c8371306a5cda
|
|
25
|
+
zh: 8b4cd48a0fc3f545
|
|
26
|
+
/deepseek-ai-dsh-cordis-client-runner/use-this-package/lifecycle-boundaries:
|
|
27
|
+
en: 8444eaa96ee05a5e
|
|
28
|
+
zh: 621bb78731bd0138
|
|
29
|
+
/deepseek-ai-dsh-cordis-client-runner/understand-the-implementation:
|
|
30
|
+
en: 64f24636f966aa86
|
|
31
|
+
zh: a4d3bb2e541b222a
|
|
32
|
+
/deepseek-ai-dsh-cordis-client-runner/understand-the-implementation/design-philosophy:
|
|
33
|
+
en: df635b29eaef982c
|
|
34
|
+
zh: ddaa4bd98359bd30
|
|
35
|
+
/deepseek-ai-dsh-cordis-client-runner/understand-the-implementation/source-map:
|
|
36
|
+
en: cbd46fb5821cfcc7
|
|
37
|
+
zh: 392e5cace2db6194
|
|
38
|
+
/deepseek-ai-dsh-cordis-client-runner/understand-the-implementation/inspecting-slot-inputs:
|
|
39
|
+
en: 33f14a7fff7835e6
|
|
40
|
+
zh: 53838ac8d4a79600
|
|
41
|
+
/deepseek-ai-dsh-cordis-client-runner/understand-the-implementation/how-a-run-is-carried-out:
|
|
42
|
+
en: e64ffad27ecf4bbd
|
|
43
|
+
zh: 7949755b8a782b08
|
|
44
|
+
/deepseek-ai-dsh-cordis-client-runner/further-exploration:
|
|
45
|
+
en: dcfcc126e7345db1
|
|
46
|
+
zh: 47b564ef00a83297
|
|
47
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience:
|
|
48
|
+
en: 215e7ba838619b7b
|
|
49
|
+
zh: a311da3843709f90
|
|
50
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/run-resolution-relayed-by-the-host:
|
|
51
|
+
en: 4573c6b269e4fecb
|
|
52
|
+
zh: 7f76baf2f74bf9cc
|
|
53
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/run-resolution-relayed-by-the-host/what-the-model-sees:
|
|
54
|
+
en: 0f941f02680ba2ed
|
|
55
|
+
zh: d62dd787dea11f5f
|
|
56
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/run-resolution-relayed-by-the-host/token-effect:
|
|
57
|
+
en: 37462821d8e35933
|
|
58
|
+
zh: bb94b21eff2911e8
|
|
59
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/run-resolution-relayed-by-the-host/kv-cache-effect:
|
|
60
|
+
en: da210ff9eb982144
|
|
61
|
+
zh: 633a73ac9bc9e5e6
|
|
62
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/render-failure-after-the-run-settled:
|
|
63
|
+
en: 524d638584142d72
|
|
64
|
+
zh: 3ffc463419fba2e1
|
|
65
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/render-failure-after-the-run-settled/what-the-model-sees:
|
|
66
|
+
en: f347bd0b5f9e297e
|
|
67
|
+
zh: 0b7bc88659e38306
|
|
68
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/render-failure-after-the-run-settled/token-effect:
|
|
69
|
+
en: c8c1657fa4e37ca4
|
|
70
|
+
zh: d03af1593a9b4d3a
|
|
71
|
+
/deepseek-ai-dsh-cordis-client-runner/model-experience/render-failure-after-the-run-settled/kv-cache-effect:
|
|
72
|
+
en: d2d35b83beb936b2
|
|
73
|
+
zh: 604aa6929c7a9c76
|
|
74
|
+
/deepseek-ai-dsh-cordis-client-runner/known-limitations-and-deferred-work:
|
|
75
|
+
en: a728aeb4aa18db7d
|
|
76
|
+
zh: b596309cd6707da7
|
|
77
|
+
/deepseek-ai-dsh-cordis-client-runner/known-limitations-and-deferred-work/dev-note:
|
|
78
|
+
en: c4cff307d238c93a
|
|
79
|
+
zh: d1a9ff4164056741
|
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
|
@@ -1503,7 +1503,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1503
1503
|
description: "target Workspace."
|
|
1504
1504
|
}, {
|
|
1505
1505
|
name: "beforeOpen",
|
|
1506
|
-
description: "optional synchronous preparation for the selected Session, skipped after supersession."
|
|
1506
|
+
description: "optional synchronous preparation for the selected Session, skipped after supersession; a throw aborts the open and releases the retained reference."
|
|
1507
1507
|
}],
|
|
1508
1508
|
returns: "completion; a superseded request may create a Session but does not open it.",
|
|
1509
1509
|
throws: ["on failure; a refused creation is also shown through the Workspace notice unless a later navigation or disposal superseded the request."]
|
|
@@ -2445,7 +2445,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2445
2445
|
occupants: ["client-ui-message-feedback MessageFeedbackActions id 'feedback'"],
|
|
2446
2446
|
replaceRisk: "none",
|
|
2447
2447
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.assistant-actions', () => ctx.slots.register(\n { name: 'conversation.chat.assistant-actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2448
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2448
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:321"
|
|
2449
2449
|
},
|
|
2450
2450
|
{
|
|
2451
2451
|
key: "conversation.chat.commandview",
|
|
@@ -2489,7 +2489,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2489
2489
|
occupants: [],
|
|
2490
2490
|
replaceRisk: "none",
|
|
2491
2491
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.commandview', () => ctx.slots.register(\n { name: 'conversation.chat.commandview', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2492
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2492
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:309"
|
|
2493
2493
|
},
|
|
2494
2494
|
{
|
|
2495
2495
|
key: "conversation.chat.node",
|
|
@@ -2555,7 +2555,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2555
2555
|
],
|
|
2556
2556
|
replaceRisk: "shadows-shipped-ui",
|
|
2557
2557
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.node', () => ctx.slots.register(\n { name: 'conversation.chat.node', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2558
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2558
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:290"
|
|
2559
2559
|
},
|
|
2560
2560
|
{
|
|
2561
2561
|
key: "conversation.chat.turnTail",
|
|
@@ -2606,10 +2606,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2606
2606
|
hookContext: "",
|
|
2607
2607
|
slotInject: "",
|
|
2608
2608
|
declaredBy: "an entry in 'conversation.chat.node' (client-ui-chat), so it exists while that entry is mounted",
|
|
2609
|
-
occupants: [
|
|
2609
|
+
occupants: [
|
|
2610
|
+
"client-ui-deliverables DeliverablesTail id '@deepseek-ai/dsh-client-ui-deliverables'",
|
|
2611
|
+
"client-ui-plan PlanCards",
|
|
2612
|
+
"client-ui-schedule ScheduleTurnCard id 'schedule-created'"
|
|
2613
|
+
],
|
|
2610
2614
|
replaceRisk: "none",
|
|
2611
2615
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.turnTail', () => ctx.slots.register(\n { name: 'conversation.chat.turnTail', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2612
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2616
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:315"
|
|
2613
2617
|
},
|
|
2614
2618
|
{
|
|
2615
2619
|
key: "conversation.composer",
|
|
@@ -2918,7 +2922,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2918
2922
|
occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"],
|
|
2919
2923
|
replaceRisk: "shadows-shipped-ui",
|
|
2920
2924
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.workspace.directoryFlow', () => ctx.slots.register(\n { name: 'conversation.hero.workspace.directoryFlow' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2921
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
2925
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:117"
|
|
2922
2926
|
},
|
|
2923
2927
|
{
|
|
2924
2928
|
key: "conversation.input.activity",
|
|
@@ -3358,7 +3362,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3358
3362
|
occupants: ["client-ui-attachment MessageImages"],
|
|
3359
3363
|
replaceRisk: "shadows-shipped-ui",
|
|
3360
3364
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.message.images', () => ctx.slots.register(\n { name: 'conversation.message.images' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3361
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
3365
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:303"
|
|
3362
3366
|
},
|
|
3363
3367
|
{
|
|
3364
3368
|
key: "conversation.plan-review.actions",
|
|
@@ -3536,7 +3540,6 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3536
3540
|
occupants: [
|
|
3537
3541
|
"client-ui-agent-preset AgentPresetLabel id 'agent-preset'",
|
|
3538
3542
|
"client-ui-jobs JobListAction id 'job-list'",
|
|
3539
|
-
"client-ui-schedule ScheduleCatalogAction id 'schedule-catalog'",
|
|
3540
3543
|
"client-ui-subagent SubagentCatalogAction id 'subagent-catalog'",
|
|
3541
3544
|
"experimental-client-ui-agent-team TeamAction id 'agent-team'"
|
|
3542
3545
|
],
|
|
@@ -3663,7 +3666,11 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3663
3666
|
hookContext: "",
|
|
3664
3667
|
slotInject: "",
|
|
3665
3668
|
declaredBy: "an entry in 'conversation.session.header' (client-ui-conversation), so it exists while that entry is mounted",
|
|
3666
|
-
occupants: [
|
|
3669
|
+
occupants: [
|
|
3670
|
+
"client-ui-open-in-app OpenInAppAction id 'open-in-app'",
|
|
3671
|
+
"client-ui-schedule ScheduleCatalogAction id 'schedule-catalog'",
|
|
3672
|
+
"session-log-export SessionLogDownloadHeaderAction id 'session-log-download'"
|
|
3673
|
+
],
|
|
3667
3674
|
replaceRisk: "none",
|
|
3668
3675
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header.utilities', () => ctx.slots.register(\n { name: 'conversation.session.header.utilities', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3669
3676
|
source: "packages/client/ui-conversation/src/client/contract/slots.ts:162"
|
|
@@ -3896,10 +3903,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3896
3903
|
hookContext: "",
|
|
3897
3904
|
slotInject: "",
|
|
3898
3905
|
declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted",
|
|
3899
|
-
occupants: [
|
|
3906
|
+
occupants: [
|
|
3907
|
+
"client-ui-conversation ConversationPanel key 'conversation'",
|
|
3908
|
+
"client-ui-plugin-manager PluginManagerPage",
|
|
3909
|
+
"client-ui-schedule TaskManagerPage"
|
|
3910
|
+
],
|
|
3900
3911
|
replaceRisk: "shadows-shipped-ui",
|
|
3901
3912
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('main', () => ctx.slots.register(\n { name: 'main', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3902
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
3913
|
+
source: "packages/client/ui-layout/src/client/index.ts:73"
|
|
3903
3914
|
},
|
|
3904
3915
|
{
|
|
3905
3916
|
key: "main.conversation",
|
|
@@ -4244,7 +4255,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4244
4255
|
occupants: ["client-ui-sidebar-right RightbarRoot"],
|
|
4245
4256
|
replaceRisk: "shadows-shipped-ui",
|
|
4246
4257
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('rightbar', () => ctx.slots.register(\n { name: 'rightbar' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4247
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
4258
|
+
source: "packages/client/ui-layout/src/client/index.ts:87"
|
|
4248
4259
|
},
|
|
4249
4260
|
{
|
|
4250
4261
|
key: "rightbar.session",
|
|
@@ -4279,7 +4290,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4279
4290
|
occupants: ["client-ui-sidebar-right RightbarSeat"],
|
|
4280
4291
|
replaceRisk: "shadows-shipped-ui",
|
|
4281
4292
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('rightbar.session', () => ctx.slots.register(\n { name: 'rightbar.session' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4282
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
4293
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:43"
|
|
4283
4294
|
},
|
|
4284
4295
|
{
|
|
4285
4296
|
key: "root",
|
|
@@ -4431,6 +4442,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4431
4442
|
"client-ui-permission-presets PermissionRow id 'permission'",
|
|
4432
4443
|
"client-ui-settings-general DeveloperToolsRow id 'developer-tools'",
|
|
4433
4444
|
"client-ui-settings-general CurrentVersionRow id 'current-version'",
|
|
4445
|
+
"client-ui-shortcuts ShortcutsRow id 'shortcuts'",
|
|
4434
4446
|
"client-ui-theme AppearanceRow id 'appearance'",
|
|
4435
4447
|
"client-ui-theme FontSizeRow id 'font-size'"
|
|
4436
4448
|
],
|
|
@@ -4472,7 +4484,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4472
4484
|
summary: "Optional sidebar account launcher; opens the shell-owned settings panel.",
|
|
4473
4485
|
doc: "Optional sidebar account launcher; opens the shell-owned settings panel.",
|
|
4474
4486
|
registerOptions: [],
|
|
4475
|
-
ownerProps: ["/** Sidebar launcher geometry and settings navigation. */\nexport interface SettingsLauncherOwnerProps {\n /** Whether the sidebar shows labels. */\n wide: boolean\n /** Open the settings panel. */\n openSettings: () => void\n /** @param id - registered onboarding editor to open explicitly. */\n openOnboarding: (id: string) => void\n}"],
|
|
4487
|
+
ownerProps: ["/** Sidebar launcher geometry and settings navigation. */\nexport interface SettingsLauncherOwnerProps {\n /** Whether the sidebar shows labels. */\n wide: boolean\n /** Whether the settings dialog covers the sidebar; a launcher may treat a false-to-true edge as one Settings entry. */\n settingsOpen: boolean\n /** Effective Settings key labels and accessible combination; omitted when unbound. */\n settingsShortcut?: { readonly keys: readonly string[]; readonly aria?: string | undefined }\n /** Open the settings panel. */\n openSettings: () => void\n /** @param id - registered onboarding editor to open explicitly. */\n openOnboarding: (id: string) => void\n}"],
|
|
4476
4488
|
ownerPropsReferences: [],
|
|
4477
4489
|
standardProps: [
|
|
4478
4490
|
"useResource: UseResource",
|
|
@@ -4793,7 +4805,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4793
4805
|
occupants: ["client-ui-sidebar HeaderLeadingControls"],
|
|
4794
4806
|
replaceRisk: "shadows-shipped-ui",
|
|
4795
4807
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('shell.leading', () => ctx.slots.register(\n { name: 'shell.leading' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4796
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
4808
|
+
source: "packages/client/ui-layout/src/client/index.ts:112"
|
|
4797
4809
|
},
|
|
4798
4810
|
{
|
|
4799
4811
|
key: "shell.overlay",
|
|
@@ -4837,13 +4849,50 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4837
4849
|
slotInject: "",
|
|
4838
4850
|
declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted",
|
|
4839
4851
|
occupants: [
|
|
4852
|
+
"client-ui-chat QuotaNoticeHost id 'chat.quota-notice'",
|
|
4853
|
+
"client-ui-schedule ScheduleDeleteToast id 'schedule.delete-toast'",
|
|
4854
|
+
"client-ui-settings-account DesktopOnboardingEntry id 'desktop-onboarding'",
|
|
4855
|
+
"client-ui-settings-account AccountPlatformHost id 'account.platform-page'",
|
|
4856
|
+
"client-ui-shortcuts ShortcutReference id 'shortcuts'",
|
|
4840
4857
|
"client-ui-workspace SessionRenameDialog id 'workspace.session-rename'",
|
|
4841
4858
|
"client-ui-workspace SessionArchiveConfirmDialog id 'workspace.session-archive'",
|
|
4842
4859
|
"client-ui-workspace RowActionToast id 'workspace.row-toast'"
|
|
4843
4860
|
],
|
|
4844
4861
|
replaceRisk: "none",
|
|
4845
4862
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('shell.overlay', () => ctx.slots.register(\n { name: 'shell.overlay', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4846
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
4863
|
+
source: "packages/client/ui-layout/src/client/index.ts:98"
|
|
4864
|
+
},
|
|
4865
|
+
{
|
|
4866
|
+
key: "shell.quota-notice",
|
|
4867
|
+
kind: "chain",
|
|
4868
|
+
scope: "root",
|
|
4869
|
+
summary: "Frame-wide quota notice chain.",
|
|
4870
|
+
doc: "Frame-wide quota notice chain. The Chat-owned host in `shell.overlay`\noffers the one live notice; the first entry whose selector claims its\ncode takes over the surface, and the all-decline case renders the host's\ngeneric warning Toast. The host lives outside the Chat panel, so a notice\nsurvives switching or closing the panel that reported it.",
|
|
4871
|
+
registerOptions: [{
|
|
4872
|
+
name: "select",
|
|
4873
|
+
requirement: "required",
|
|
4874
|
+
type: "(owner) => unknown | null",
|
|
4875
|
+
doc: "Pure routing selector. Entries are tried in ascending order; the first non-null result wins and arrives as the component's `matched` prop. All-null falls through to the owner's fallback."
|
|
4876
|
+
}],
|
|
4877
|
+
ownerProps: ["/** Owner currency of one quota notice offered to the frame-wide chain. */\nexport interface QuotaNoticeOwnerProps {\n /** Stable failure code retained in the Session log. */\n code: QuotaNoticeCode\n /** Provider-neutral notice copy in the active locale. */\n message: string\n /** Take the notice down. */\n dismiss: () => void\n /**\n * Prevent later quota failures from replacing this notice. Dismissal clears\n * all holds; releasing the last hold resumes future notices without replay.\n * Callers must release on unmount.\n * @returns idempotent release that cannot clear another hold.\n */\n keepOpen: () => () => void\n}"],
|
|
4878
|
+
ownerPropsReferences: ["QuotaNoticeCode"],
|
|
4879
|
+
standardProps: [
|
|
4880
|
+
"useResource: UseResource",
|
|
4881
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
4882
|
+
"usePanelInfo: UsePanelInfo",
|
|
4883
|
+
"useSessions: UseSessions",
|
|
4884
|
+
"useSessionStatus: UseSessionStatus",
|
|
4885
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
4886
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
4887
|
+
],
|
|
4888
|
+
keyDomain: "",
|
|
4889
|
+
hookContext: "",
|
|
4890
|
+
slotInject: "",
|
|
4891
|
+
declaredBy: "an entry in 'shell.overlay' (client-ui-chat), so it exists while that entry is mounted",
|
|
4892
|
+
occupants: ["client-ui-settings-account AccountQuotaNotice"],
|
|
4893
|
+
replaceRisk: "none",
|
|
4894
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('shell.quota-notice', () => ctx.slots.register(\n { name: 'shell.quota-notice', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4895
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:329"
|
|
4847
4896
|
},
|
|
4848
4897
|
{
|
|
4849
4898
|
key: "sidebar",
|
|
@@ -4870,7 +4919,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4870
4919
|
occupants: ["client-ui-sidebar SidebarRoot"],
|
|
4871
4920
|
replaceRisk: "shadows-shipped-ui",
|
|
4872
4921
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar', () => ctx.slots.register(\n { name: 'sidebar' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4873
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
4922
|
+
source: "packages/client/ui-layout/src/client/index.ts:68"
|
|
4874
4923
|
},
|
|
4875
4924
|
{
|
|
4876
4925
|
key: "sidebar.brand.mark",
|
|
@@ -4897,7 +4946,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4897
4946
|
occupants: ["client-ui-brand-official OfficialBrandMark"],
|
|
4898
4947
|
replaceRisk: "shadows-shipped-ui",
|
|
4899
4948
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.brand.mark', () => ctx.slots.register(\n { name: 'sidebar.brand.mark' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4900
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
4949
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:25"
|
|
4901
4950
|
},
|
|
4902
4951
|
{
|
|
4903
4952
|
key: "sidebar.brand.name",
|
|
@@ -4924,7 +4973,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4924
4973
|
occupants: ["client-ui-brand-official OfficialBrandName"],
|
|
4925
4974
|
replaceRisk: "shadows-shipped-ui",
|
|
4926
4975
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.brand.name', () => ctx.slots.register(\n { name: 'sidebar.brand.name' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4927
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
4976
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:30"
|
|
4928
4977
|
},
|
|
4929
4978
|
{
|
|
4930
4979
|
key: "sidebar.chat.conversation",
|
|
@@ -5005,7 +5054,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5005
5054
|
occupants: ["client-ui-cordis CordisPanel id 'cordis-panel'"],
|
|
5006
5055
|
replaceRisk: "none",
|
|
5007
5056
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register(\n { name: 'sidebar.footer.action', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5008
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
5057
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:53"
|
|
5009
5058
|
},
|
|
5010
5059
|
{
|
|
5011
5060
|
key: "sidebar.panellist",
|
|
@@ -5048,10 +5097,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5048
5097
|
hookContext: "",
|
|
5049
5098
|
slotInject: "",
|
|
5050
5099
|
declaredBy: "an entry in 'sidebar' (client-ui-sidebar), so it exists while that entry is mounted",
|
|
5051
|
-
occupants: ["client-ui-plugin-manager PluginsPanelIcon"],
|
|
5100
|
+
occupants: ["client-ui-plugin-manager PluginsPanelIcon", "client-ui-schedule TaskManagerIcon"],
|
|
5052
5101
|
replaceRisk: "none",
|
|
5053
5102
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.panellist', () => ctx.slots.register(\n { name: 'sidebar.panellist', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5054
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
5103
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:35"
|
|
5055
5104
|
},
|
|
5056
5105
|
{
|
|
5057
5106
|
key: "sidebar.right.pane.tab",
|
|
@@ -5091,6 +5140,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5091
5140
|
occupants: [
|
|
5092
5141
|
"client-ui-deliverables ReviewTab",
|
|
5093
5142
|
"client-ui-plan PlanPreview",
|
|
5143
|
+
"client-ui-schedule ScheduleTaskTab",
|
|
5094
5144
|
"client-ui-sidebar-browser BrowserBody",
|
|
5095
5145
|
"client-ui-sidebar-documentpreview TextPreview",
|
|
5096
5146
|
"client-ui-sidebar-files FilesBody",
|
|
@@ -5100,7 +5150,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5100
5150
|
],
|
|
5101
5151
|
replaceRisk: "none",
|
|
5102
5152
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.right.pane.tab', () => ctx.slots.register(\n { name: 'sidebar.right.pane.tab', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5103
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
5153
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:59"
|
|
5104
5154
|
},
|
|
5105
5155
|
{
|
|
5106
5156
|
key: "sidebar.right.pane.tab.title",
|
|
@@ -5139,6 +5189,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5139
5189
|
declaredBy: "an entry in 'rightbar.session' (client-ui-sidebar-right), so it exists while that entry is mounted",
|
|
5140
5190
|
occupants: [
|
|
5141
5191
|
"client-ui-plan PlanTitle",
|
|
5192
|
+
"client-ui-schedule ScheduleTaskTabTitle",
|
|
5142
5193
|
"client-ui-sidebar-browser BrowserTitle",
|
|
5143
5194
|
"client-ui-sidebar-documentpreview TextTitle",
|
|
5144
5195
|
"client-ui-sidebar-files FilesTitle",
|
|
@@ -5147,7 +5198,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5147
5198
|
],
|
|
5148
5199
|
replaceRisk: "none",
|
|
5149
5200
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.right.pane.tab.title', () => ctx.slots.register(\n { name: 'sidebar.right.pane.tab.title', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5150
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
5201
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:73"
|
|
5151
5202
|
},
|
|
5152
5203
|
{
|
|
5153
5204
|
key: "sidebar.right.tab.document",
|
|
@@ -5424,7 +5475,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5424
5475
|
occupants: [],
|
|
5425
5476
|
replaceRisk: "none",
|
|
5426
5477
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.right.tab.guide', () => ctx.slots.register(\n { name: 'sidebar.right.tab.guide', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5427
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
5478
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:84"
|
|
5428
5479
|
},
|
|
5429
5480
|
{
|
|
5430
5481
|
key: "sidebar.right.tab.guide.entry",
|
|
@@ -5464,7 +5515,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5464
5515
|
occupants: ["client-ui-sidebar-terminal TerminalGuide"],
|
|
5465
5516
|
replaceRisk: "none",
|
|
5466
5517
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.right.tab.guide.entry', () => ctx.slots.register(\n { name: 'sidebar.right.tab.guide.entry', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5467
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
5518
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:91"
|
|
5468
5519
|
},
|
|
5469
5520
|
{
|
|
5470
5521
|
key: "sidebar.right.tab.menu.item",
|
|
@@ -5518,7 +5569,99 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5518
5569
|
occupants: [],
|
|
5519
5570
|
replaceRisk: "none",
|
|
5520
5571
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.right.tab.menu.item', () => ctx.slots.register(\n { name: 'sidebar.right.tab.menu.item', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5521
|
-
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:
|
|
5572
|
+
source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:103"
|
|
5573
|
+
},
|
|
5574
|
+
{
|
|
5575
|
+
key: "sidebar.session.row.hover",
|
|
5576
|
+
kind: "list",
|
|
5577
|
+
scope: "root",
|
|
5578
|
+
summary: "Section of the Session row's hover card between its relative time and its trailing status line.",
|
|
5579
|
+
doc: "Section of the Session row's hover card between its relative time and\nits trailing status line. Mounted only while that card is open.",
|
|
5580
|
+
registerOptions: [
|
|
5581
|
+
{
|
|
5582
|
+
name: "id",
|
|
5583
|
+
requirement: "required",
|
|
5584
|
+
type: "string",
|
|
5585
|
+
doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it."
|
|
5586
|
+
},
|
|
5587
|
+
{
|
|
5588
|
+
name: "order",
|
|
5589
|
+
requirement: "optional",
|
|
5590
|
+
type: "number",
|
|
5591
|
+
doc: "Position among the entries, ascending (default 0)."
|
|
5592
|
+
},
|
|
5593
|
+
{
|
|
5594
|
+
name: "label",
|
|
5595
|
+
requirement: "optional",
|
|
5596
|
+
type: "string | (() => string)",
|
|
5597
|
+
doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering."
|
|
5598
|
+
}
|
|
5599
|
+
],
|
|
5600
|
+
ownerProps: ["/**\n * Owner share of the two Session-row schedule seats. Both receive only the\n * row's Session identity: the occupant reads that Session's own scheduled\n * tasks, and reading them activates nothing.\n */\nexport interface SessionRowScheduleOwnerProps {\n /** Session this row shows; the occupant addresses its own data by this id. */\n readonly sessionId: SessionId\n}"],
|
|
5601
|
+
ownerPropsReferences: ["SessionId"],
|
|
5602
|
+
standardProps: [
|
|
5603
|
+
"useResource: UseResource",
|
|
5604
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
5605
|
+
"usePanelInfo: UsePanelInfo",
|
|
5606
|
+
"useSessions: UseSessions",
|
|
5607
|
+
"useSessionStatus: UseSessionStatus",
|
|
5608
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
5609
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
5610
|
+
],
|
|
5611
|
+
keyDomain: "",
|
|
5612
|
+
hookContext: "",
|
|
5613
|
+
slotInject: "",
|
|
5614
|
+
declaredBy: "an entry in 'sidebar.workspaces' (client-ui-workspace), so it exists while that entry is mounted",
|
|
5615
|
+
occupants: ["client-ui-schedule SessionScheduleHover id 'schedule-tasks'"],
|
|
5616
|
+
replaceRisk: "none",
|
|
5617
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.session.row.hover', () => ctx.slots.register(\n { name: 'sidebar.session.row.hover', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5618
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:134"
|
|
5619
|
+
},
|
|
5620
|
+
{
|
|
5621
|
+
key: "sidebar.session.row.leading",
|
|
5622
|
+
kind: "list",
|
|
5623
|
+
scope: "root",
|
|
5624
|
+
summary: "Leading decoration of one Session row, in the 16px cell before the title that the row's own state dot otherwise occupies.",
|
|
5625
|
+
doc: "Leading decoration of one Session row, in the 16px cell before the title\nthat the row's own state dot otherwise occupies. A higher-priority state\n(a pending interaction, a new message, live activity) replaces the seat\nwith that dot for the same row, so an occupant here never renders beside\na status dot and is mounted only by a row whose primary state is idle.\nAn archived row keeps that cell blank — neither its status dot nor this\nseat renders there, and its live status appears on the hover card only.",
|
|
5626
|
+
registerOptions: [
|
|
5627
|
+
{
|
|
5628
|
+
name: "id",
|
|
5629
|
+
requirement: "required",
|
|
5630
|
+
type: "string",
|
|
5631
|
+
doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it."
|
|
5632
|
+
},
|
|
5633
|
+
{
|
|
5634
|
+
name: "order",
|
|
5635
|
+
requirement: "optional",
|
|
5636
|
+
type: "number",
|
|
5637
|
+
doc: "Position among the entries, ascending (default 0)."
|
|
5638
|
+
},
|
|
5639
|
+
{
|
|
5640
|
+
name: "label",
|
|
5641
|
+
requirement: "optional",
|
|
5642
|
+
type: "string | (() => string)",
|
|
5643
|
+
doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering."
|
|
5644
|
+
}
|
|
5645
|
+
],
|
|
5646
|
+
ownerProps: ["/**\n * Owner share of the two Session-row schedule seats. Both receive only the\n * row's Session identity: the occupant reads that Session's own scheduled\n * tasks, and reading them activates nothing.\n */\nexport interface SessionRowScheduleOwnerProps {\n /** Session this row shows; the occupant addresses its own data by this id. */\n readonly sessionId: SessionId\n}"],
|
|
5647
|
+
ownerPropsReferences: ["SessionId"],
|
|
5648
|
+
standardProps: [
|
|
5649
|
+
"useResource: UseResource",
|
|
5650
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
5651
|
+
"usePanelInfo: UsePanelInfo",
|
|
5652
|
+
"useSessions: UseSessions",
|
|
5653
|
+
"useSessionStatus: UseSessionStatus",
|
|
5654
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
5655
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
5656
|
+
],
|
|
5657
|
+
keyDomain: "",
|
|
5658
|
+
hookContext: "",
|
|
5659
|
+
slotInject: "",
|
|
5660
|
+
declaredBy: "an entry in 'sidebar.workspaces' (client-ui-workspace), so it exists while that entry is mounted",
|
|
5661
|
+
occupants: ["client-ui-schedule SessionScheduleMark id 'schedule-mark'"],
|
|
5662
|
+
replaceRisk: "none",
|
|
5663
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.session.row.leading', () => ctx.slots.register(\n { name: 'sidebar.session.row.leading', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5664
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:129"
|
|
5522
5665
|
},
|
|
5523
5666
|
{
|
|
5524
5667
|
key: "sidebar.settings",
|
|
@@ -5545,7 +5688,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5545
5688
|
occupants: ["client-ui-settings-general SettingsRoot"],
|
|
5546
5689
|
replaceRisk: "shadows-shipped-ui",
|
|
5547
5690
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.settings', () => ctx.slots.register(\n { name: 'sidebar.settings' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5548
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
5691
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:48"
|
|
5549
5692
|
},
|
|
5550
5693
|
{
|
|
5551
5694
|
key: "sidebar.toggle.badge",
|
|
@@ -5572,7 +5715,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5572
5715
|
occupants: ["client-ui-settings-general DesktopUpdateBadge"],
|
|
5573
5716
|
replaceRisk: "shadows-shipped-ui",
|
|
5574
5717
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.toggle.badge', () => ctx.slots.register(\n { name: 'sidebar.toggle.badge' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5575
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
5718
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:19"
|
|
5576
5719
|
},
|
|
5577
5720
|
{
|
|
5578
5721
|
key: "sidebar.workspaces",
|
|
@@ -5599,7 +5742,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5599
5742
|
occupants: ["client-ui-workspace WorkspaceBrowser"],
|
|
5600
5743
|
replaceRisk: "shadows-shipped-ui",
|
|
5601
5744
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.workspaces', () => ctx.slots.register(\n { name: 'sidebar.workspaces' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5602
|
-
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:
|
|
5745
|
+
source: "packages/client/ui-sidebar/src/client/contract/slots.ts:42"
|
|
5603
5746
|
},
|
|
5604
5747
|
{
|
|
5605
5748
|
key: "sidebar.workspaces.directoryFlow",
|
|
@@ -5626,7 +5769,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5626
5769
|
occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"],
|
|
5627
5770
|
replaceRisk: "shadows-shipped-ui",
|
|
5628
5771
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.workspaces.directoryFlow', () => ctx.slots.register(\n { name: 'sidebar.workspaces.directoryFlow' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5629
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
5772
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:119"
|
|
5630
5773
|
},
|
|
5631
5774
|
{
|
|
5632
5775
|
key: "sidebar.workspaces.session.menu.item",
|
|
@@ -5667,7 +5810,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5667
5810
|
],
|
|
5668
5811
|
keyDomain: "",
|
|
5669
5812
|
hookContext: "MenuOpenState",
|
|
5670
|
-
slotInject: "{ hooks: { menuOpenState: SlotHookFactory<'sidebar.workspaces.session.menu.item', UseMenuOpenState> } }",
|
|
5813
|
+
slotInject: "{ hooks: { menuOpenState: SlotHookFactory<'sidebar.workspaces.session.menu.item', UseMenuOpenState> shortcuts: HostObservable<readonly ShortcutCatalogEntry[]> } }",
|
|
5671
5814
|
declaredBy: "an entry in 'sidebar.workspaces' (client-ui-workspace), so it exists while that entry is mounted",
|
|
5672
5815
|
occupants: [
|
|
5673
5816
|
"client-ui-workspace PinSessionMenuItem id 'pin'",
|
|
@@ -5677,7 +5820,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5677
5820
|
],
|
|
5678
5821
|
replaceRisk: "none",
|
|
5679
5822
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n const copyLabel = 'Copy Session ID' // Localize in the contributing package.\n ctx.slots.inject('sidebar.workspaces.session.menu.item', () => ctx.slots.register(\n { name: 'sidebar.workspaces.session.menu.item', id: 'copy-session-id', order: 500 },\n ({ sessionId, useMenuOpenState }) => {\n const [, setMenuOpen] = useMenuOpenState()\n return React.createElement(\n 'button',\n { type: 'button', role: 'menuitem', onClick: () => { setMenuOpen(false); void navigator.clipboard.writeText(sessionId) } },\n copyLabel,\n )\n },\n ))\n },\n}",
|
|
5680
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
5823
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:166"
|
|
5681
5824
|
},
|
|
5682
5825
|
{
|
|
5683
5826
|
key: "sidebar.workspaces.session.row.action",
|
|
@@ -5723,7 +5866,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5723
5866
|
occupants: ["client-ui-workspace ArchiveSessionRowButton id 'archive'", "client-ui-workspace PinSessionRowButton id 'pin'"],
|
|
5724
5867
|
replaceRisk: "none",
|
|
5725
5868
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.workspaces.session.row.action', () => ctx.slots.register(\n { name: 'sidebar.workspaces.session.row.action', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
5726
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
5869
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:184"
|
|
5727
5870
|
},
|
|
5728
5871
|
{
|
|
5729
5872
|
key: "tool.call.images",
|
|
@@ -5758,25 +5901,31 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5758
5901
|
occupants: ["client-ui-attachment MessageImages"],
|
|
5759
5902
|
replaceRisk: "shadows-shipped-ui",
|
|
5760
5903
|
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:
|
|
5904
|
+
source: "packages/client/ui-tool/src/client/contract/slots.ts:45"
|
|
5762
5905
|
},
|
|
5763
5906
|
{
|
|
5764
5907
|
key: "tool.call.toolview",
|
|
5765
5908
|
kind: "keyed",
|
|
5766
5909
|
scope: "session",
|
|
5767
5910
|
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
|
|
5911
|
+
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
5912
|
registerOptions: [{
|
|
5770
5913
|
name: "key",
|
|
5771
5914
|
requirement: "required",
|
|
5772
5915
|
type: "string",
|
|
5773
5916
|
doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
|
|
5774
5917
|
}],
|
|
5775
|
-
ownerProps: [
|
|
5918
|
+
ownerProps: [
|
|
5919
|
+
"/** 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}",
|
|
5920
|
+
"/** Common owner callbacks and the data admitted at the current tool stage. */\nexport type ToolCallOwnerProps = ToolCallCommonProps & ToolCallPhaseProps",
|
|
5921
|
+
"/** 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 }"
|
|
5922
|
+
],
|
|
5776
5923
|
ownerPropsReferences: [
|
|
5777
|
-
"ChatNodeOwnerProps",
|
|
5778
5924
|
"MessageImageLoader",
|
|
5779
5925
|
"OpenFileOptions",
|
|
5926
|
+
"PreparingToolCall",
|
|
5927
|
+
"StartedToolCall",
|
|
5928
|
+
"ToolResultNode",
|
|
5780
5929
|
"UseDisclosure"
|
|
5781
5930
|
],
|
|
5782
5931
|
standardProps: [
|
|
@@ -5796,9 +5945,9 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5796
5945
|
"useProjection: UseProjection",
|
|
5797
5946
|
"useTrajectory: UseTrajectory"
|
|
5798
5947
|
],
|
|
5799
|
-
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: "",
|
|
5948
|
+
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, schedule_update, 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",
|
|
5949
|
+
hookContext: "ToolCallHookContext",
|
|
5950
|
+
slotInject: "ToolCallInjected",
|
|
5802
5951
|
declaredBy: "an entry in 'conversation.chat.node' (client-ui-tool), so it exists while that entry is mounted",
|
|
5803
5952
|
occupants: [
|
|
5804
5953
|
"client-ui-deliverables PresentRow key 'present'",
|
|
@@ -5811,6 +5960,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5811
5960
|
"client-ui-tool DetailsRow key 'schedule_create'",
|
|
5812
5961
|
"client-ui-tool DetailsRow key 'schedule_list'",
|
|
5813
5962
|
"client-ui-tool DetailsRow key 'schedule_delete'",
|
|
5963
|
+
"client-ui-tool DetailsRow key 'schedule_update'",
|
|
5814
5964
|
"client-ui-tool DetailsRow key 'cordis_inspect_list'",
|
|
5815
5965
|
"client-ui-tool DetailsRow key 'cordis_inspect_query'",
|
|
5816
5966
|
"client-ui-tool DetailsRow key 'cordis_inspect_self'",
|
|
@@ -5857,7 +6007,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5857
6007
|
],
|
|
5858
6008
|
replaceRisk: "shadows-shipped-ui",
|
|
5859
6009
|
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:
|
|
6010
|
+
source: "packages/client/ui-tool/src/client/contract/slots.ts:25"
|
|
5861
6011
|
},
|
|
5862
6012
|
{
|
|
5863
6013
|
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-
|
|
4
|
+
"version": "0.1.7-rc.2",
|
|
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-client-modules": "0.1.7-rc.2",
|
|
48
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
|
|
49
|
+
"@deepseek-ai/dsh-client-ui-theme": "0.1.7-rc.2",
|
|
50
50
|
"@deepseek-ai/cordis": "~4.0.4",
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
51
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
|
|
52
|
+
"@deepseek-ai/dsh-util-values": "0.1.7-rc.2"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"lib/index.js",
|