@deepseek-ai/dsh-cordis-client-runner 0.2.0-rc.2 → 0.2.1-alpha.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 +2 -2
- package/README.md +0 -2
- package/README.zh.md +0 -2
- package/lib/client.js +248 -50
- package/package.json +9 -9
package/README.i18n.yaml
CHANGED
package/README.md
CHANGED
|
@@ -143,5 +143,3 @@ These limits define where the browser half needs special care. They are current
|
|
|
143
143
|
None.
|
|
144
144
|
|
|
145
145
|
</details>
|
|
146
|
-
|
|
147
|
-
**Runtime invariant:** No companion is published. The owned relation (a live Plugin's loader entry exists exactly while one Plugin Run ID is live) is browser-only state reachable through the client half's service, which the node-plane companion cannot observe. The relation is asserted by the package's own load/teardown coverage instead.
|
package/README.zh.md
CHANGED
package/lib/client.js
CHANGED
|
@@ -1309,7 +1309,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1309
1309
|
},
|
|
1310
1310
|
{
|
|
1311
1311
|
signature: "refreshProjections(sessionId: SessionId): Promise<void>",
|
|
1312
|
-
description: "
|
|
1312
|
+
description: "Read projections without starting migration; retry failed or migration-deferred reads.",
|
|
1313
1313
|
parameters: [{
|
|
1314
1314
|
name: "sessionId",
|
|
1315
1315
|
description: "Session to inspect without opening its conversation."
|
|
@@ -1329,7 +1329,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1329
1329
|
returns: "bounded results, or a business/transport error."
|
|
1330
1330
|
},
|
|
1331
1331
|
{
|
|
1332
|
-
signature: "fork(opts: { sessionId: SessionId atSeq?: number increaseTitle?: boolean onCreated?: (childId: SessionId) => void }): Promise<SessionId>",
|
|
1332
|
+
signature: "fork(opts: { sessionId: SessionId atSeq?: number increaseTitle?: boolean onCreated?: (childId: SessionId) => void /** False refuses source migration; omission preserves the Host default. */ allowMigration?: boolean }): Promise<SessionId>",
|
|
1333
1333
|
description: "Fork a session from an exact inclusive prefix of the source; on resolution the child is catalogued and can be explicitly retained.",
|
|
1334
1334
|
parameters: [{
|
|
1335
1335
|
name: "opts",
|
|
@@ -1415,11 +1415,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1415
1415
|
}]
|
|
1416
1416
|
},
|
|
1417
1417
|
{
|
|
1418
|
-
signature: "setFontSize(px: number): void",
|
|
1419
|
-
description: "Change
|
|
1418
|
+
signature: "setFontSize(role: FontRole, px: number): void",
|
|
1419
|
+
description: "Change one role's font size — the only font-size write entry. Accepted values are written through the settings scope and emit `theme/change`.",
|
|
1420
1420
|
parameters: [{
|
|
1421
|
+
name: "role",
|
|
1422
|
+
description: "font role."
|
|
1423
|
+
}, {
|
|
1421
1424
|
name: "px",
|
|
1422
|
-
description: "integer px within
|
|
1425
|
+
description: "integer px within the role's `FONT_SIZE_SPECS` range; out-of-range or fractional values throw."
|
|
1423
1426
|
}]
|
|
1424
1427
|
},
|
|
1425
1428
|
{
|
|
@@ -1509,15 +1512,22 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1509
1512
|
throws: ["on failure; a refused creation is also shown through the Workspace notice unless a later navigation or disposal superseded the request."]
|
|
1510
1513
|
},
|
|
1511
1514
|
{
|
|
1512
|
-
signature: "forkSession(sessionId: SessionId, onCreated?: (childId: SessionId) => void): Promise<SessionId>",
|
|
1515
|
+
signature: "forkSession( sessionId: SessionId, onCreated?: (childId: SessionId) => void, options?: Pick<Parameters<ISessions['fork']>[0], 'allowMigration'>, ): Promise<SessionId>",
|
|
1513
1516
|
description: "Fork a Session without changing the current selection.",
|
|
1514
|
-
parameters: [
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1517
|
+
parameters: [
|
|
1518
|
+
{
|
|
1519
|
+
name: "sessionId",
|
|
1520
|
+
description: "source Session."
|
|
1521
|
+
},
|
|
1522
|
+
{
|
|
1523
|
+
name: "onCreated",
|
|
1524
|
+
description: "observer before the optional child-title update."
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
name: "options",
|
|
1528
|
+
description: "optional permission to start source migration; omission preserves the Host default."
|
|
1529
|
+
}
|
|
1530
|
+
],
|
|
1521
1531
|
returns: "the child SessionId after creation and inherited-title increment."
|
|
1522
1532
|
},
|
|
1523
1533
|
{
|
|
@@ -1530,11 +1540,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1530
1540
|
returns: "a Session already addressable through the Session Controller."
|
|
1531
1541
|
},
|
|
1532
1542
|
{
|
|
1533
|
-
signature: "startSession(workspaceId?: WorkspaceId): void",
|
|
1534
|
-
description: "
|
|
1543
|
+
signature: "startSession(workspaceId?: WorkspaceId, options?: StartSessionOptions): void",
|
|
1544
|
+
description: "Create a fresh Session, or reuse a blank when preparing an explicit draft. A creation the Host refuses is shown through the Workspace notice and leaves the selection as it was.",
|
|
1535
1545
|
parameters: [{
|
|
1536
1546
|
name: "workspaceId",
|
|
1537
1547
|
description: "explicit target; absent inherits the current or most recent Workspace."
|
|
1548
|
+
}, {
|
|
1549
|
+
name: "options",
|
|
1550
|
+
description: "initial content; existing text or attachments are preserved unless clearPreviousDraft is true."
|
|
1538
1551
|
}]
|
|
1539
1552
|
},
|
|
1540
1553
|
{
|
|
@@ -1814,6 +1827,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1814
1827
|
name: "ConnectionStateSource",
|
|
1815
1828
|
declaration: "export interface ConnectionStateSource {\n getSnapshot(): ConnectionState | undefined;\n subscribe(listener: () => void): () => void;\n}"
|
|
1816
1829
|
},
|
|
1830
|
+
{
|
|
1831
|
+
name: "DraftInitializationOptions",
|
|
1832
|
+
declaration: "export interface DraftInitializationOptions {\n readonly prompt?: string;\n readonly clearPreviousDraft?: boolean;\n}"
|
|
1833
|
+
},
|
|
1817
1834
|
{
|
|
1818
1835
|
name: "EntryKeyOf",
|
|
1819
1836
|
declaration: "export type EntryKeyOf<K extends keyof SlotMap & string> = SlotMap[K] extends {\n kind: 'keyed';\n keyProps: infer P extends object;\n} ? keyof P & string : string;"
|
|
@@ -1838,6 +1855,18 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1838
1855
|
name: "FactoryRegistrationPropsOf",
|
|
1839
1856
|
declaration: "export type FactoryRegistrationPropsOf<F extends keyof SlotFactoryMap & string> = FactoryRenderPropsOf<F> & PropsStore<FactoryStoreOf<F>> & InjectFace<FactoryInjectOf<F>> & PropsLocale<FactoryLocaleOf<F>> & PropsRenderFactories;"
|
|
1840
1857
|
},
|
|
1858
|
+
{
|
|
1859
|
+
name: "FontFamilies",
|
|
1860
|
+
declaration: "export type FontFamilies = Readonly<Record<FontRole, string>>;"
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
name: "FontRole",
|
|
1864
|
+
declaration: "export type FontRole = typeof FONT_ROLES[number];"
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
name: "FontSizes",
|
|
1868
|
+
declaration: "export type FontSizes = Readonly<Record<FontRole, number>>;"
|
|
1869
|
+
},
|
|
1841
1870
|
{
|
|
1842
1871
|
name: "GlobalStandardProps",
|
|
1843
1872
|
declaration: "export interface GlobalStandardProps {\n}"
|
|
@@ -1866,6 +1895,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
1866
1895
|
name: "ISession",
|
|
1867
1896
|
declaration: "export interface ISession {\n readonly sessionId: SessionId;\n readonly projections: ProjectionsFace;\n beginSubmission(input: BeginSubmissionInput): SubmissionHandle;\n prompt(content: PromptContentPart[], mode: 'queue' | 'steer', signal?: AbortSignal, requestId?: SessionRequestId): Promise<RemoteResult<{\n accepted: true;\n }>>;\n readAttachment(attachmentId: AttachmentIdType): Promise<RemoteResult<{\n attachment: ImageAttachmentRef;\n data: Uint8Array;\n }>>;\n updateQueue(itemId: MessageId, action: QueueAction): Promise<RemoteResult<{\n accepted: true;\n }>>;\n cancel(): Promise<RemoteResult<{\n accepted: true;\n }>>;\n rename(title: string): Promise<RemoteResult<{\n title: string;\n seq: SessionSeq;\n }>>;\n loadOlder(): Promise<void>;\n loadThrough(seq: SessionSeq): Promise<void>;\n command(line: string): Promise<RemoteResult<{\n matched: boolean;\n }>>;\n}"
|
|
1868
1897
|
},
|
|
1898
|
+
{
|
|
1899
|
+
name: "ISessions",
|
|
1900
|
+
declaration: "export interface ISessions {\n readonly list: ObservableSnapshot<SessionListState>;\n retain(target: SessionTarget, options: SessionRetainOptions): SessionReference;\n using<T>(target: SessionTarget, options: SessionRetainOptions, operation: (reference: SessionReference) => T | Promise<T>): Promise<T>;\n retainInfo(id: SessionId): ObservableSnapshot<SessionRetainInfo>;\n readonly searchResultLimit: number;\n create(opts?: {\n workspaceId?: WorkspaceId;\n cwd?: string;\n sessionId?: SessionId;\n }): Promise<SessionId>;\n subagentAddress(id: SessionId): SubagentAddress | undefined;\n refreshProjections(sessionId: SessionId): Promise<void>;\n refresh(): Promise<void>;\n search(query: string, signal: AbortSignal): Promise<RemoteResult<{\n items: SessionSearchResultItem[];\n hasMore: boolean;\n }>>;\n fork(opts: {\n sessionId: SessionId;\n atSeq?: number;\n increaseTitle?: boolean;\n onCreated?: (childId: SessionId) => void;\n allowMigration?: boolean;\n }): Promise<SessionId>;\n scope(id: SessionId): AgentContext | undefined;\n scopeOf(ctx: Context): SessionId | undefined;\n sessionOf(ctx: Context): SessionFace | undefined;\n binding(id: SessionId): SessionBinding | undefined;\n}"
|
|
1901
|
+
},
|
|
1869
1902
|
{
|
|
1870
1903
|
name: "KeyedHooksSources",
|
|
1871
1904
|
declaration: "export type KeyedHooksSources = Record<string, KeyedStandardSource>;"
|
|
@@ -2102,10 +2135,22 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2102
2135
|
name: "SessionIdOf",
|
|
2103
2136
|
declaration: "export type SessionIdOf = SessionStandardProps extends {\n sessionId: infer S;\n} ? S : string;"
|
|
2104
2137
|
},
|
|
2138
|
+
{
|
|
2139
|
+
name: "SessionListPhase",
|
|
2140
|
+
declaration: "export type SessionListPhase = 'pending' | 'ready';"
|
|
2141
|
+
},
|
|
2142
|
+
{
|
|
2143
|
+
name: "SessionListState",
|
|
2144
|
+
declaration: "export interface SessionListState {\n ids: SessionId[];\n byId: Record<SessionId, SessionSummary>;\n phase: SessionListPhase;\n projectionsBySession: Readonly<Record<SessionId, SessionProjectionSnapshot>>;\n}"
|
|
2145
|
+
},
|
|
2105
2146
|
{
|
|
2106
2147
|
name: "SessionMaybeStandardProps",
|
|
2107
2148
|
declaration: "export interface SessionMaybeStandardProps {\n}"
|
|
2108
2149
|
},
|
|
2150
|
+
{
|
|
2151
|
+
name: "SessionProjectionSnapshot",
|
|
2152
|
+
declaration: "export interface SessionProjectionSnapshot {\n readonly values: Readonly<Partial<SessionProjectionMap>>;\n readonly state: 'idle' | 'loading' | 'ready' | 'migration-required' | 'error';\n readonly error: RemoteFailure | null;\n}"
|
|
2153
|
+
},
|
|
2109
2154
|
{
|
|
2110
2155
|
name: "SessionProviderComponent",
|
|
2111
2156
|
declaration: "export type SessionProviderComponent = (props: SessionAreaProps) => ReactNode;"
|
|
@@ -2202,6 +2247,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2202
2247
|
name: "SnapshotSelectorHook",
|
|
2203
2248
|
declaration: "export type SnapshotSelectorHook<T> = <S>(sel: (s: T) => S, eq?: (a: S, b: S) => boolean) => S;"
|
|
2204
2249
|
},
|
|
2250
|
+
{
|
|
2251
|
+
name: "StartSessionOptions",
|
|
2252
|
+
declaration: "export type StartSessionOptions = DraftInitializationOptions;"
|
|
2253
|
+
},
|
|
2205
2254
|
{
|
|
2206
2255
|
name: "StoreDecl",
|
|
2207
2256
|
declaration: "export type StoreDecl = StoreHandle<any, any> | StoreFactory;"
|
|
@@ -2244,7 +2293,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2244
2293
|
},
|
|
2245
2294
|
{
|
|
2246
2295
|
name: "ThemeSnapshot",
|
|
2247
|
-
declaration: "export interface ThemeSnapshot {\n preference: ThemePreference;\n
|
|
2296
|
+
declaration: "export interface ThemeSnapshot {\n preference: ThemePreference;\n fontSizes: FontSizes;\n fontFamilies: FontFamilies;\n active: ThemeDefinition;\n themes: readonly ThemeDefinition[];\n revision: number;\n}"
|
|
2248
2297
|
},
|
|
2249
2298
|
{
|
|
2250
2299
|
name: "ThemeTokenModes",
|
|
@@ -2448,7 +2497,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2448
2497
|
occupants: ["client-ui-message-feedback MessageFeedbackActions id 'feedback'"],
|
|
2449
2498
|
replaceRisk: "none",
|
|
2450
2499
|
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}",
|
|
2451
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2500
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:414"
|
|
2452
2501
|
},
|
|
2453
2502
|
{
|
|
2454
2503
|
key: "conversation.chat.commandview",
|
|
@@ -2492,7 +2541,46 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2492
2541
|
occupants: [],
|
|
2493
2542
|
replaceRisk: "none",
|
|
2494
2543
|
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}",
|
|
2495
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2544
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:396"
|
|
2545
|
+
},
|
|
2546
|
+
{
|
|
2547
|
+
key: "conversation.chat.flow",
|
|
2548
|
+
kind: "single",
|
|
2549
|
+
scope: "session",
|
|
2550
|
+
summary: "Ordered Chat rows and local echoes with viewport-bound visibility hooks.",
|
|
2551
|
+
doc: "Ordered Chat rows and local echoes with viewport-bound visibility hooks.",
|
|
2552
|
+
registerOptions: [],
|
|
2553
|
+
ownerProps: ["/** Ordered rows and reconciled local echoes rendered inside one Chat viewport. */\nexport interface ChatFlowOwnerProps extends Pick<ChatNodeOwnerProps,\n 'cwd' | 'openSkill' | 'openFile' | 'inspectCall' | 'forkAt' | 'loadImage' | 'fileMentions'> {\n readonly entries: readonly RenderEntry[]\n readonly pendingInputs: readonly (PendingSubmission | InboxState['next-step'][number])[]\n readonly lastInputTurn: number | undefined\n readonly deferCollapse: boolean\n}"],
|
|
2554
|
+
ownerPropsReferences: [
|
|
2555
|
+
"ChatNodeOwnerProps",
|
|
2556
|
+
"PendingSubmission",
|
|
2557
|
+
"RenderEntry"
|
|
2558
|
+
],
|
|
2559
|
+
standardProps: [
|
|
2560
|
+
"useResource: UseResource",
|
|
2561
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
2562
|
+
"usePanelInfo: UsePanelInfo",
|
|
2563
|
+
"useSessions: UseSessions",
|
|
2564
|
+
"useSessionStatus: UseSessionStatus",
|
|
2565
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
2566
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
2567
|
+
"useChat: UseChat",
|
|
2568
|
+
"useConversation: UseConversation",
|
|
2569
|
+
"useInput: SnapshotSelectorHook<InputState>",
|
|
2570
|
+
"inputActions: InputActions",
|
|
2571
|
+
"useSession: SessionSnapshotSelector",
|
|
2572
|
+
"sessionId: SessionId",
|
|
2573
|
+
"useProjection: UseProjection",
|
|
2574
|
+
"useTrajectory: UseTrajectory"
|
|
2575
|
+
],
|
|
2576
|
+
keyDomain: "",
|
|
2577
|
+
hookContext: "ChatFlowHookContext",
|
|
2578
|
+
slotInject: "ChatFlowInjected",
|
|
2579
|
+
declaredBy: "an entry in 'conversation.view' (client-ui-chat), so it exists while that entry is mounted",
|
|
2580
|
+
occupants: ["client-ui-chat ChatFlow"],
|
|
2581
|
+
replaceRisk: "shadows-shipped-ui",
|
|
2582
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.flow', () => ctx.slots.register(\n { name: 'conversation.chat.flow' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2583
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:365"
|
|
2496
2584
|
},
|
|
2497
2585
|
{
|
|
2498
2586
|
key: "conversation.chat.node",
|
|
@@ -2535,7 +2623,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2535
2623
|
keyDomain: "fixed by the owner's key table { [Kind in ChatNodeKind]: { node: ChatNode<Kind> } }, already taken: assistant-step, command, command-input, compaction, context, manual-compaction, model-retry, question-reply, steering, system-prompt, tool-call, turn-error, turn-max-tokens, turn-process, turn-tail, turn-trigger, unknown, user, workflow-run",
|
|
2536
2624
|
hookContext: "ChatNodeHookContext",
|
|
2537
2625
|
slotInject: "ChatNodeInjected",
|
|
2538
|
-
declaredBy: "an entry in 'conversation.
|
|
2626
|
+
declaredBy: "an entry in 'conversation.chat.flow' (client-ui-chat), so it exists while that entry is mounted",
|
|
2539
2627
|
occupants: [
|
|
2540
2628
|
"client-ui-chat UserMessageNodeView key 'user'",
|
|
2541
2629
|
"client-ui-chat UserMessageNodeView key 'steering'",
|
|
@@ -2559,7 +2647,42 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2559
2647
|
],
|
|
2560
2648
|
replaceRisk: "shadows-shipped-ui",
|
|
2561
2649
|
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}",
|
|
2562
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2650
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:377"
|
|
2651
|
+
},
|
|
2652
|
+
{
|
|
2653
|
+
key: "conversation.chat.reasoning.body",
|
|
2654
|
+
kind: "single",
|
|
2655
|
+
scope: "session",
|
|
2656
|
+
summary: "Expanded reasoning body with the unchanged model text.",
|
|
2657
|
+
doc: "Expanded reasoning body with the unchanged model text. The official entry\nhas priority 100 and calls the reasoning Content Factory; smaller priority\nvalues replace it. Contributions must preserve access to the original text.",
|
|
2658
|
+
registerOptions: [],
|
|
2659
|
+
ownerProps: ["/** Original model-provided reasoning offered to the expanded Body Slot. */\nexport interface ReasoningBodyOwnerProps {\n /** Complete or streaming reasoning text. */\n readonly text: string\n /** Whether the reasoning tail is still streaming. */\n readonly running: boolean\n}"],
|
|
2660
|
+
ownerPropsReferences: [],
|
|
2661
|
+
standardProps: [
|
|
2662
|
+
"useResource: UseResource",
|
|
2663
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
2664
|
+
"usePanelInfo: UsePanelInfo",
|
|
2665
|
+
"useSessions: UseSessions",
|
|
2666
|
+
"useSessionStatus: UseSessionStatus",
|
|
2667
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
2668
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
2669
|
+
"useChat: UseChat",
|
|
2670
|
+
"useConversation: UseConversation",
|
|
2671
|
+
"useInput: SnapshotSelectorHook<InputState>",
|
|
2672
|
+
"inputActions: InputActions",
|
|
2673
|
+
"useSession: SessionSnapshotSelector",
|
|
2674
|
+
"sessionId: SessionId",
|
|
2675
|
+
"useProjection: UseProjection",
|
|
2676
|
+
"useTrajectory: UseTrajectory"
|
|
2677
|
+
],
|
|
2678
|
+
keyDomain: "",
|
|
2679
|
+
hookContext: "",
|
|
2680
|
+
slotInject: "",
|
|
2681
|
+
declaredBy: "an entry in 'conversation.chat.node' (client-ui-chat), so it exists while that entry is mounted",
|
|
2682
|
+
occupants: ["client-ui-chat DefaultReasoningBody", "experimental-client-ui-cot-translation TranslationBody"],
|
|
2683
|
+
replaceRisk: "shadows-shipped-ui",
|
|
2684
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.reasoning.body', () => ctx.slots.register(\n { name: 'conversation.chat.reasoning.body' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2685
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:402"
|
|
2563
2686
|
},
|
|
2564
2687
|
{
|
|
2565
2688
|
key: "conversation.chat.turnTail",
|
|
@@ -2617,7 +2740,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2617
2740
|
],
|
|
2618
2741
|
replaceRisk: "none",
|
|
2619
2742
|
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}",
|
|
2620
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
2743
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:408"
|
|
2621
2744
|
},
|
|
2622
2745
|
{
|
|
2623
2746
|
key: "conversation.composer",
|
|
@@ -2749,7 +2872,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2749
2872
|
hookContext: "",
|
|
2750
2873
|
slotInject: "",
|
|
2751
2874
|
declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
|
|
2752
|
-
occupants: ["client-ui-chat
|
|
2875
|
+
occupants: ["client-ui-chat ActivityPill id 'activity'", "client-ui-chat UsagePill id 'usage'"],
|
|
2753
2876
|
replaceRisk: "none",
|
|
2754
2877
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer.dock', () => ctx.slots.register(\n { name: 'conversation.composer.dock', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
2755
2878
|
source: "packages/client/ui-conversation/src/client/contract/slots.ts:199"
|
|
@@ -2926,7 +3049,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
2926
3049
|
occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"],
|
|
2927
3050
|
replaceRisk: "shadows-shipped-ui",
|
|
2928
3051
|
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}",
|
|
2929
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
3052
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:118"
|
|
2930
3053
|
},
|
|
2931
3054
|
{
|
|
2932
3055
|
key: "conversation.input.activity",
|
|
@@ -3052,7 +3175,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3052
3175
|
occupants: [
|
|
3053
3176
|
"client-ui-conversation QueueDock id 'queue'",
|
|
3054
3177
|
"client-ui-conversation TodoDock id 'todo'",
|
|
3055
|
-
"client-ui-goal GoalDock id 'goal'"
|
|
3178
|
+
"client-ui-goal GoalDock id 'goal'",
|
|
3179
|
+
"experimental-client-ui-claude-code-mods Band id 'claude-code-mods'"
|
|
3056
3180
|
],
|
|
3057
3181
|
replaceRisk: "none",
|
|
3058
3182
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.dock', () => ctx.slots.register(\n { name: 'conversation.input.dock', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
@@ -3362,11 +3486,11 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3362
3486
|
keyDomain: "",
|
|
3363
3487
|
hookContext: "",
|
|
3364
3488
|
slotInject: "",
|
|
3365
|
-
declaredBy: "an entry in 'conversation.
|
|
3489
|
+
declaredBy: "an entry in 'conversation.chat.flow' (client-ui-chat), so it exists while that entry is mounted",
|
|
3366
3490
|
occupants: ["client-ui-attachment MessageImages"],
|
|
3367
3491
|
replaceRisk: "shadows-shipped-ui",
|
|
3368
3492
|
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}",
|
|
3369
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
3493
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:390"
|
|
3370
3494
|
},
|
|
3371
3495
|
{
|
|
3372
3496
|
key: "conversation.plan-review.actions",
|
|
@@ -3716,7 +3840,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3716
3840
|
occupants: ["client-ui-attachment MessageImages"],
|
|
3717
3841
|
replaceRisk: "shadows-shipped-ui",
|
|
3718
3842
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.trajectory.images', () => ctx.slots.register(\n { name: 'conversation.trajectory.images' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3719
|
-
source: "packages/client/ui-trajectory/src/client/trajectory-contract.ts:
|
|
3843
|
+
source: "packages/client/ui-trajectory/src/client/trajectory-contract.ts:103"
|
|
3720
3844
|
},
|
|
3721
3845
|
{
|
|
3722
3846
|
key: "conversation.view",
|
|
@@ -3949,6 +4073,52 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3949
4073
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('main.conversation', () => ctx.slots.register(\n { name: 'main.conversation' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3950
4074
|
source: "packages/client/ui-conversation/src/client/contract/slots.ts:131"
|
|
3951
4075
|
},
|
|
4076
|
+
{
|
|
4077
|
+
key: "plugins.add.actions",
|
|
4078
|
+
kind: "list",
|
|
4079
|
+
scope: "root",
|
|
4080
|
+
summary: "Additional MenuItemButton rows after installation: 72px high, with a title and a description capped at two lines.",
|
|
4081
|
+
doc: "Additional MenuItemButton rows after installation: 72px high, with a title and a description capped at two lines.",
|
|
4082
|
+
registerOptions: [
|
|
4083
|
+
{
|
|
4084
|
+
name: "id",
|
|
4085
|
+
requirement: "required",
|
|
4086
|
+
type: "string",
|
|
4087
|
+
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."
|
|
4088
|
+
},
|
|
4089
|
+
{
|
|
4090
|
+
name: "order",
|
|
4091
|
+
requirement: "optional",
|
|
4092
|
+
type: "number",
|
|
4093
|
+
doc: "Position among the entries, ascending (default 0)."
|
|
4094
|
+
},
|
|
4095
|
+
{
|
|
4096
|
+
name: "label",
|
|
4097
|
+
requirement: "optional",
|
|
4098
|
+
type: "string | (() => string)",
|
|
4099
|
+
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."
|
|
4100
|
+
}
|
|
4101
|
+
],
|
|
4102
|
+
ownerProps: ["/** Add-plugin menu actions, independent of any selected bundle or Session. */\nexport interface PluginAddActionsProps {\n /** Close the add-plugin menu before starting the contributed action. */\n readonly onDismiss: () => void\n}"],
|
|
4103
|
+
ownerPropsReferences: [],
|
|
4104
|
+
standardProps: [
|
|
4105
|
+
"useResource: UseResource",
|
|
4106
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
4107
|
+
"usePanelInfo: UsePanelInfo",
|
|
4108
|
+
"useSessions: UseSessions",
|
|
4109
|
+
"useSessionStatus: UseSessionStatus",
|
|
4110
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
4111
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
4112
|
+
],
|
|
4113
|
+
keyDomain: "",
|
|
4114
|
+
hookContext: "",
|
|
4115
|
+
slotInject: "",
|
|
4116
|
+
declaredBy: "an entry in 'main' (client-ui-plugin-manager), so it exists while that entry is mounted",
|
|
4117
|
+
occupants: ["client-ui-agent-preset CreatePluginMenuItem id 'create-plugin'"],
|
|
4118
|
+
replaceRisk: "none",
|
|
4119
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.add.actions', () => ctx.slots.register(\n { name: 'plugins.add.actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4120
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:89"
|
|
4121
|
+
},
|
|
3952
4122
|
{
|
|
3953
4123
|
key: "plugins.bundle.activation",
|
|
3954
4124
|
kind: "keyed",
|
|
@@ -3979,7 +4149,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
3979
4149
|
occupants: ["experimental-client-ui-voice-input VoiceSetupPrompt key '@deepseek-ai/dsh-experimental-voice-input-bundle'"],
|
|
3980
4150
|
replaceRisk: "shadows-shipped-ui",
|
|
3981
4151
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.bundle.activation', () => ctx.slots.register(\n { name: 'plugins.bundle.activation', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
3982
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4152
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:91"
|
|
3983
4153
|
},
|
|
3984
4154
|
{
|
|
3985
4155
|
key: "plugins.bundle.config",
|
|
@@ -4004,14 +4174,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4004
4174
|
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
4005
4175
|
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
4006
4176
|
],
|
|
4007
|
-
keyDomain: "open: any string the owner dispatches (no compile-time key set), already taken: @deepseek-ai/dsh-experimental-voice-input-bundle",
|
|
4177
|
+
keyDomain: "open: any string the owner dispatches (no compile-time key set), already taken: @deepseek-ai/dsh-experimental-cot-translation-bundle, @deepseek-ai/dsh-experimental-voice-input-bundle",
|
|
4008
4178
|
hookContext: "",
|
|
4009
4179
|
slotInject: "",
|
|
4010
4180
|
declaredBy: "an entry in 'main' (client-ui-plugin-manager), so it exists while that entry is mounted",
|
|
4011
|
-
occupants: ["experimental-client-ui-voice-input VoicePreparation key '@deepseek-ai/dsh-experimental-voice-input-bundle'"],
|
|
4181
|
+
occupants: ["experimental-client-ui-cot-translation TranslationSettings key '@deepseek-ai/dsh-experimental-cot-translation-bundle'", "experimental-client-ui-voice-input VoicePreparation key '@deepseek-ai/dsh-experimental-voice-input-bundle'"],
|
|
4012
4182
|
replaceRisk: "shadows-shipped-ui",
|
|
4013
4183
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.bundle.config', () => ctx.slots.register(\n { name: 'plugins.bundle.config', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4014
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4184
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:107"
|
|
4015
4185
|
},
|
|
4016
4186
|
{
|
|
4017
4187
|
key: "plugins.detail.actions",
|
|
@@ -4057,7 +4227,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4057
4227
|
occupants: [],
|
|
4058
4228
|
replaceRisk: "none",
|
|
4059
4229
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.detail.actions', () => ctx.slots.register(\n { name: 'plugins.detail.actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4060
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4230
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:121"
|
|
4061
4231
|
},
|
|
4062
4232
|
{
|
|
4063
4233
|
key: "plugins.detail.badge",
|
|
@@ -4103,7 +4273,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4103
4273
|
occupants: [],
|
|
4104
4274
|
replaceRisk: "none",
|
|
4105
4275
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.detail.badge', () => ctx.slots.register(\n { name: 'plugins.detail.badge', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4106
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4276
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:126"
|
|
4107
4277
|
},
|
|
4108
4278
|
{
|
|
4109
4279
|
key: "plugins.detail.section",
|
|
@@ -4149,7 +4319,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4149
4319
|
occupants: [],
|
|
4150
4320
|
replaceRisk: "none",
|
|
4151
4321
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.detail.section', () => ctx.slots.register(\n { name: 'plugins.detail.section', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4152
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4322
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:133"
|
|
4153
4323
|
},
|
|
4154
4324
|
{
|
|
4155
4325
|
key: "plugins.item",
|
|
@@ -4200,7 +4370,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4200
4370
|
],
|
|
4201
4371
|
replaceRisk: "none",
|
|
4202
4372
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.item', () => ctx.slots.register(\n { name: 'plugins.item', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4203
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4373
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:101"
|
|
4204
4374
|
},
|
|
4205
4375
|
{
|
|
4206
4376
|
key: "plugins.row.config",
|
|
@@ -4232,7 +4402,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4232
4402
|
occupants: [],
|
|
4233
4403
|
replaceRisk: "none",
|
|
4234
4404
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.row.config', () => ctx.slots.register(\n { name: 'plugins.row.config', key: '<one key the owner dispatches>' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4235
|
-
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:
|
|
4405
|
+
source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:115"
|
|
4236
4406
|
},
|
|
4237
4407
|
{
|
|
4238
4408
|
key: "rightbar",
|
|
@@ -4449,7 +4619,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4449
4619
|
"client-ui-settings-session-log UploadRow",
|
|
4450
4620
|
"client-ui-shortcuts ShortcutsRow id 'shortcuts'",
|
|
4451
4621
|
"client-ui-theme AppearanceRow id 'appearance'",
|
|
4452
|
-
"client-ui-theme
|
|
4622
|
+
"client-ui-theme FontSettingsGroup id 'font-size'"
|
|
4453
4623
|
],
|
|
4454
4624
|
replaceRisk: "none",
|
|
4455
4625
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.general.item', () => ctx.slots.register(\n { name: 'settings.general.item', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
@@ -4785,6 +4955,33 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4785
4955
|
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.trigger', () => ctx.slots.register(\n { name: 'settings.trigger' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4786
4956
|
source: "packages/client/ui-settings/src/client/contract/slots.ts:27"
|
|
4787
4957
|
},
|
|
4958
|
+
{
|
|
4959
|
+
key: "shell.bottom",
|
|
4960
|
+
kind: "single",
|
|
4961
|
+
scope: "root",
|
|
4962
|
+
summary: "Full-width bottom content below all three columns.",
|
|
4963
|
+
doc: "Full-width bottom content below all three columns. Its rendered height\nreduces the columns' available height; empty content reserves no space.\nThe occupant owns its height, visibility, and controls. It receives no\nSession binding and remains mounted across main-panel navigation.",
|
|
4964
|
+
registerOptions: [],
|
|
4965
|
+
ownerProps: [],
|
|
4966
|
+
ownerPropsReferences: [],
|
|
4967
|
+
standardProps: [
|
|
4968
|
+
"useResource: UseResource",
|
|
4969
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
|
|
4970
|
+
"usePanelInfo: UsePanelInfo",
|
|
4971
|
+
"useSessions: UseSessions",
|
|
4972
|
+
"useSessionStatus: UseSessionStatus",
|
|
4973
|
+
"useSessionRetainInfo: UseSessionRetainInfo",
|
|
4974
|
+
"useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>"
|
|
4975
|
+
],
|
|
4976
|
+
keyDomain: "",
|
|
4977
|
+
hookContext: "",
|
|
4978
|
+
slotInject: "",
|
|
4979
|
+
declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted",
|
|
4980
|
+
occupants: ["experimental-inspector InspectorPage"],
|
|
4981
|
+
replaceRisk: "shadows-shipped-ui",
|
|
4982
|
+
example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('shell.bottom', () => ctx.slots.register(\n { name: 'shell.bottom' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
|
|
4983
|
+
source: "packages/client/ui-layout/src/client/index.ts:94"
|
|
4984
|
+
},
|
|
4788
4985
|
{
|
|
4789
4986
|
key: "shell.leading",
|
|
4790
4987
|
kind: "single",
|
|
@@ -4810,7 +5007,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4810
5007
|
occupants: ["client-ui-sidebar HeaderLeadingControls"],
|
|
4811
5008
|
replaceRisk: "shadows-shipped-ui",
|
|
4812
5009
|
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}",
|
|
4813
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
5010
|
+
source: "packages/client/ui-layout/src/client/index.ts:119"
|
|
4814
5011
|
},
|
|
4815
5012
|
{
|
|
4816
5013
|
key: "shell.overlay",
|
|
@@ -4867,7 +5064,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4867
5064
|
],
|
|
4868
5065
|
replaceRisk: "none",
|
|
4869
5066
|
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}",
|
|
4870
|
-
source: "packages/client/ui-layout/src/client/index.ts:
|
|
5067
|
+
source: "packages/client/ui-layout/src/client/index.ts:105"
|
|
4871
5068
|
},
|
|
4872
5069
|
{
|
|
4873
5070
|
key: "shell.quota-notice",
|
|
@@ -4899,7 +5096,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
4899
5096
|
occupants: ["client-ui-settings-account AccountQuotaNotice"],
|
|
4900
5097
|
replaceRisk: "none",
|
|
4901
5098
|
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}",
|
|
4902
|
-
source: "packages/client/ui-chat/src/client/contract/slots.ts:
|
|
5099
|
+
source: "packages/client/ui-chat/src/client/contract/slots.ts:422"
|
|
4903
5100
|
},
|
|
4904
5101
|
{
|
|
4905
5102
|
key: "sidebar",
|
|
@@ -5153,7 +5350,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5153
5350
|
"client-ui-sidebar-files FilesBody",
|
|
5154
5351
|
"client-ui-sidebar-right GuideBody",
|
|
5155
5352
|
"client-ui-sidebar-terminal LazyTerminalBody",
|
|
5156
|
-
"client-ui-subagent SidebarChatTab"
|
|
5353
|
+
"client-ui-subagent SidebarChatTab",
|
|
5354
|
+
"experimental-session-inspector SessionInspectorView"
|
|
5157
5355
|
],
|
|
5158
5356
|
replaceRisk: "none",
|
|
5159
5357
|
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}",
|
|
@@ -5676,7 +5874,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5676
5874
|
occupants: ["client-ui-schedule SessionScheduleHover id 'schedule-tasks'"],
|
|
5677
5875
|
replaceRisk: "none",
|
|
5678
5876
|
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}",
|
|
5679
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
5877
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:135"
|
|
5680
5878
|
},
|
|
5681
5879
|
{
|
|
5682
5880
|
key: "sidebar.session.row.leading",
|
|
@@ -5722,7 +5920,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5722
5920
|
occupants: ["client-ui-schedule SessionScheduleMark id 'schedule-mark'"],
|
|
5723
5921
|
replaceRisk: "none",
|
|
5724
5922
|
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}",
|
|
5725
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
5923
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:130"
|
|
5726
5924
|
},
|
|
5727
5925
|
{
|
|
5728
5926
|
key: "sidebar.settings",
|
|
@@ -5830,7 +6028,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5830
6028
|
occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"],
|
|
5831
6029
|
replaceRisk: "shadows-shipped-ui",
|
|
5832
6030
|
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}",
|
|
5833
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
6031
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:120"
|
|
5834
6032
|
},
|
|
5835
6033
|
{
|
|
5836
6034
|
key: "sidebar.workspaces.session.menu.item",
|
|
@@ -5881,7 +6079,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5881
6079
|
],
|
|
5882
6080
|
replaceRisk: "none",
|
|
5883
6081
|
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}",
|
|
5884
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
6082
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:167"
|
|
5885
6083
|
},
|
|
5886
6084
|
{
|
|
5887
6085
|
key: "sidebar.workspaces.session.row.action",
|
|
@@ -5927,7 +6125,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5927
6125
|
occupants: ["client-ui-workspace ArchiveSessionRowButton id 'archive'", "client-ui-workspace PinSessionRowButton id 'pin'"],
|
|
5928
6126
|
replaceRisk: "none",
|
|
5929
6127
|
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}",
|
|
5930
|
-
source: "packages/client/ui-workspace/src/client/contract/slots.ts:
|
|
6128
|
+
source: "packages/client/ui-workspace/src/client/contract/slots.ts:185"
|
|
5931
6129
|
},
|
|
5932
6130
|
{
|
|
5933
6131
|
key: "tool.call.images",
|
|
@@ -5962,14 +6160,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
5962
6160
|
occupants: ["client-ui-attachment MessageImages"],
|
|
5963
6161
|
replaceRisk: "shadows-shipped-ui",
|
|
5964
6162
|
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}",
|
|
5965
|
-
source: "packages/client/ui-tool/src/client/contract/slots.ts:
|
|
6163
|
+
source: "packages/client/ui-tool/src/client/contract/slots.ts:44"
|
|
5966
6164
|
},
|
|
5967
6165
|
{
|
|
5968
6166
|
key: "tool.call.toolview",
|
|
5969
6167
|
kind: "keyed",
|
|
5970
6168
|
scope: "session",
|
|
5971
6169
|
summary: "Keyed Tool call view dispatched by wire Tool name.",
|
|
5972
|
-
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
|
|
6170
|
+
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 running\nor settled node through explicit phase props. Every stage supplies\n`name` and a lazy `args` view; preparing arguments may be incomplete.",
|
|
5973
6171
|
registerOptions: [{
|
|
5974
6172
|
name: "key",
|
|
5975
6173
|
requirement: "required",
|
|
@@ -6007,8 +6205,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
|
|
|
6007
6205
|
"useTrajectory: UseTrajectory"
|
|
6008
6206
|
],
|
|
6009
6207
|
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",
|
|
6010
|
-
hookContext: "
|
|
6011
|
-
slotInject: "
|
|
6208
|
+
hookContext: "",
|
|
6209
|
+
slotInject: "",
|
|
6012
6210
|
declaredBy: "an entry in 'conversation.chat.node' (client-ui-tool), so it exists while that entry is mounted",
|
|
6013
6211
|
occupants: [
|
|
6014
6212
|
"client-ui-deliverables PresentRow key 'present'",
|
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.2.
|
|
4
|
+
"version": "0.2.1-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -38,18 +38,18 @@
|
|
|
38
38
|
},
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@deepseek-ai/cordis": "~4.0.
|
|
41
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.1",
|
|
45
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.2",
|
|
46
|
+
"@deepseek-ai/dsh-client-modules": "0.2.1-alpha.2",
|
|
47
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.2",
|
|
48
|
+
"@deepseek-ai/dsh-client-ui-theme": "0.2.1-alpha.2",
|
|
44
49
|
"@types/react": "~18.3.1",
|
|
50
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.1",
|
|
45
51
|
"react": "^18.2.0",
|
|
46
|
-
"@deepseek-ai/
|
|
47
|
-
"@deepseek-ai/dsh-client-modules": "0.2.0-rc.2",
|
|
48
|
-
"@deepseek-ai/dsh-api-remotes": "0.2.0-rc.2",
|
|
49
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
50
|
-
"@deepseek-ai/cordis": "~4.0.4",
|
|
51
|
-
"@deepseek-ai/dsh-client-ui-theme": "0.2.0-rc.2",
|
|
52
|
-
"@deepseek-ai/dsh-util-values": "0.2.0-rc.2"
|
|
52
|
+
"@deepseek-ai/dsh-util-values": "0.2.1-alpha.2"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"lib/index.js",
|