@deepseek-ai/dsh-cordis-client-runner 0.1.3-alpha.2 → 0.1.5-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/client.js +303 -69
  2. package/package.json +7 -7
package/lib/client.js CHANGED
@@ -1123,13 +1123,19 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1123
1123
  parameters: []
1124
1124
  },
1125
1125
  {
1126
- signature: "openDetails(): void",
1127
- description: "Open the details panel (no-op when already open).",
1128
- parameters: []
1126
+ signature: "openRightbar(track: boolean, fullscreen: boolean): void",
1127
+ description: "Report the right panel's presentation without changing its expanded state.",
1128
+ parameters: [{
1129
+ name: "track",
1130
+ description: "whether the normal panel width reserves a grid track, including beneath a fullscreen overlay."
1131
+ }, {
1132
+ name: "fullscreen",
1133
+ description: "whether the panel covers the frame and hides its outer resize handle; independent of the underlying grid track."
1134
+ }]
1129
1135
  },
1130
1136
  {
1131
- signature: "closeDetails(): void",
1132
- description: "Close the details panel.",
1137
+ signature: "closeRightbar(): void",
1138
+ description: "Report the right panel as hidden: no track, no handle.",
1133
1139
  parameters: []
1134
1140
  }
1135
1141
  ]
@@ -2155,6 +2161,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2155
2161
  ownerProps: ["/** Conversation owner share: business state and actions belong to the registrant. */\nexport interface ConvOwnerProps {}"],
2156
2162
  ownerPropsReferences: [],
2157
2163
  standardProps: [
2164
+ "useResource: UseResource",
2158
2165
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2159
2166
  "useSessions: UseSessions",
2160
2167
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2185,6 +2192,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2185
2192
  ownerProps: ["/** Stable identity handed to an optional approval-detail renderer. */\nexport interface ApprovalDetailOwnerProps {\n /** Tool call correlated with the request. */\n callId: ToolCallId\n}"],
2186
2193
  ownerPropsReferences: [],
2187
2194
  standardProps: [
2195
+ "useResource: UseResource",
2188
2196
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2189
2197
  "useSessions: UseSessions",
2190
2198
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2236,6 +2244,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2236
2244
  ownerProps: ["/** Owner currency of finalized-assistant actions. */\nexport interface AssistantActionOwnerProps {\n messageId: MessageId\n}"],
2237
2245
  ownerPropsReferences: ["MessageId"],
2238
2246
  standardProps: [
2247
+ "useResource: UseResource",
2239
2248
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2240
2249
  "useSessions: UseSessions",
2241
2250
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2256,7 +2265,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2256
2265
  occupants: ["client-ui-message-feedback MessageFeedbackActions id 'feedback'"],
2257
2266
  replaceRisk: "none",
2258
2267
  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}",
2259
- source: "packages/client/ui-chat/src/client/contract/slots.ts:227"
2268
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:212"
2260
2269
  },
2261
2270
  {
2262
2271
  key: "conversation.chat.commandview",
@@ -2277,6 +2286,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2277
2286
  "CompactionSummaryNode"
2278
2287
  ],
2279
2288
  standardProps: [
2289
+ "useResource: UseResource",
2280
2290
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2281
2291
  "useSessions: UseSessions",
2282
2292
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2297,7 +2307,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2297
2307
  occupants: [],
2298
2308
  replaceRisk: "none",
2299
2309
  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}",
2300
- source: "packages/client/ui-chat/src/client/contract/slots.ts:215"
2310
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:200"
2301
2311
  },
2302
2312
  {
2303
2313
  key: "conversation.chat.node",
@@ -2311,15 +2321,17 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2311
2321
  type: "string",
2312
2322
  doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
2313
2323
  }],
2314
- ownerProps: ["/** Stable owner currency delivered to a keyed Chat renderer. */\nexport interface ChatNodeOwnerProps {\n selectedCallId?: ToolCallId | undefined\n cwd?: string | undefined\n openFile: (path: string) => void\n inspectCall: (callId: ToolCallId) => void\n forkAt: (seq: number) => void\n /**\n * Session-authorized image loader, down-threaded from the Chat view so a\n * chat-node renderer can render the attachment presentation slot directly\n * with only the durable references plus this loader, instead of receiving a\n * rendering closure.\n */\n loadImage: MessageImageLoader\n renderMessageImages: RenderMessageImages\n fileMentions: (owner: TurnTailOwnerProps) => MarkdownFileMentions | undefined\n /** Turn-process state when this Node belongs to a projected Turn. */\n turnProcess?: TurnProcessOwnerProps | undefined\n}"],
2324
+ ownerProps: ["/** Stable owner currency delivered to a keyed Chat renderer. */\nexport interface ChatNodeOwnerProps {\n cwd?: string | undefined\n openFile: (path: string, options?: OpenFileOptions) => void\n inspectCall: (callId: ToolCallId) => void\n forkAt: (seq: number) => void\n /**\n * Session-authorized image loader, down-threaded from the Chat view so a\n * chat-node renderer can render the attachment presentation slot directly\n * with only the durable references plus this loader, instead of receiving a\n * rendering closure.\n */\n loadImage: MessageImageLoader\n renderMessageImages: RenderMessageImages\n fileMentions: (owner: TurnTailOwnerProps) => MarkdownFileMentions | undefined\n /** Turn-process state when this Node belongs to a projected Turn. */\n turnProcess?: TurnProcessOwnerProps | undefined\n}"],
2315
2325
  ownerPropsReferences: [
2316
2326
  "MarkdownFileMentions",
2317
2327
  "MessageImageLoader",
2328
+ "OpenFileOptions",
2318
2329
  "RenderMessageImages",
2319
2330
  "TurnProcessOwnerProps",
2320
2331
  "TurnTailOwnerProps"
2321
2332
  ],
2322
2333
  standardProps: [
2334
+ "useResource: UseResource",
2323
2335
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2324
2336
  "useSessions: UseSessions",
2325
2337
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2358,7 +2370,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2358
2370
  ],
2359
2371
  replaceRisk: "shadows-shipped-ui",
2360
2372
  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}",
2361
- source: "packages/client/ui-chat/src/client/contract/slots.ts:196"
2373
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:181"
2362
2374
  },
2363
2375
  {
2364
2376
  key: "conversation.chat.turnTail",
@@ -2375,6 +2387,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2375
2387
  ownerProps: ["/** Owner currency of the completed-Turn extension chain. */\nexport interface TurnTailOwnerProps {\n turn: TurnLocation\n seq: number\n openFile: (path: string) => void\n}"],
2376
2388
  ownerPropsReferences: ["TurnLocation"],
2377
2389
  standardProps: [
2390
+ "useResource: UseResource",
2378
2391
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2379
2392
  "useSessions: UseSessions",
2380
2393
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2395,7 +2408,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2395
2408
  occupants: ["client-ui-deliverables ProducedFiles"],
2396
2409
  replaceRisk: "none",
2397
2410
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.turnTail', () => ctx.slots.register(\n { name: 'conversation.chat.turnTail', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2398
- source: "packages/client/ui-chat/src/client/contract/slots.ts:221"
2411
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:206"
2399
2412
  },
2400
2413
  {
2401
2414
  key: "conversation.composer",
@@ -2416,6 +2429,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2416
2429
  "SessionSnapshot"
2417
2430
  ],
2418
2431
  standardProps: [
2432
+ "useResource: UseResource",
2419
2433
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2420
2434
  "useSessions: UseSessions",
2421
2435
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2440,7 +2454,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2440
2454
  ],
2441
2455
  replaceRisk: "none",
2442
2456
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer', () => ctx.slots.register(\n { name: 'conversation.composer', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2443
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:145"
2457
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:157"
2444
2458
  },
2445
2459
  {
2446
2460
  key: "conversation.composer.bar",
@@ -2452,6 +2466,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2452
2466
  ownerProps: ["/** Owner share of the resident composer bar. */\nexport interface ComposerBarOwnerProps {\n /** Hero uses centered placement; composer uses the active bottom placement. */\n variant: 'hero' | 'composer'\n /** A feature-owned reason that makes message input inert while leaving model selection live. */\n blocked?: { readonly reason: string }\n /** Lock all message actions while preserving the resident composer surface. */\n disabled?: boolean\n /** Whether the shared Workspace picker is expanded. */\n workspacePickerOpen?: boolean\n /** Open the Workspace picker from the inert composer surface. */\n onRequestWorkspace?: () => void\n placeholder?: string\n /** Optional content rendered above the composer surface. */\n accessory?: ReactNode\n}"],
2453
2467
  ownerPropsReferences: ["Workspace"],
2454
2468
  standardProps: [
2469
+ "useResource: UseResource",
2455
2470
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2456
2471
  "useSessions: UseSessions",
2457
2472
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2470,7 +2485,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2470
2485
  occupants: ["client-ui-conversation InputBar"],
2471
2486
  replaceRisk: "shadows-shipped-ui",
2472
2487
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer.bar', () => ctx.slots.register(\n { name: 'conversation.composer.bar' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2473
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:163"
2488
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:175"
2474
2489
  },
2475
2490
  {
2476
2491
  key: "conversation.composer.dock",
@@ -2501,6 +2516,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2501
2516
  ownerProps: [],
2502
2517
  ownerPropsReferences: [],
2503
2518
  standardProps: [
2519
+ "useResource: UseResource",
2504
2520
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2505
2521
  "useSessions: UseSessions",
2506
2522
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2518,42 +2534,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2518
2534
  hookContext: "",
2519
2535
  slotInject: "",
2520
2536
  declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
2521
- occupants: ["client-ui-chat StatsLine id 'stats'"],
2537
+ occupants: ["client-ui-chat StatsPills id 'stats'"],
2522
2538
  replaceRisk: "none",
2523
2539
  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}",
2524
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:157"
2525
- },
2526
- {
2527
- key: "conversation.details.tool",
2528
- kind: "single",
2529
- scope: "session",
2530
- summary: "Whole details-panel body for the selected Tool call.",
2531
- doc: "Whole details-panel body for the selected Tool call. The component receives\nthe running or settled block and optional workspace root. A registration\nreplaces the shipped Tool details renderer; absence uses the raw fallback.",
2532
- registerOptions: [],
2533
- ownerProps: ["/** Tool block rendered in the details panel. */\nexport interface DetailsToolOwnerProps {\n block: ToolCallBlock\n cwd?: string | undefined\n}"],
2534
- ownerPropsReferences: [],
2535
- standardProps: [
2536
- "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2537
- "useSessions: UseSessions",
2538
- "useSessionPendingInteraction: UseSessionPendingInteraction",
2539
- "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2540
- "useChat: UseChat",
2541
- "useConversation: UseConversation",
2542
- "useInput: SnapshotSelectorHook<InputState>",
2543
- "inputActions: InputActions",
2544
- "useSession: SessionSnapshotSelector",
2545
- "sessionId: SessionId",
2546
- "useProjection: UseProjection",
2547
- "useTrajectory: UseTrajectory"
2548
- ],
2549
- keyDomain: "",
2550
- hookContext: "",
2551
- slotInject: "",
2552
- declaredBy: "an entry in 'details' (client-ui-chat), so it exists while that entry is mounted",
2553
- occupants: ["client-ui-tool ToolDetails"],
2554
- replaceRisk: "shadows-shipped-ui",
2555
- example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.details.tool', () => ctx.slots.register(\n { name: 'conversation.details.tool' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2556
- source: "packages/client/ui-chat/src/client/contract/slots.ts:233"
2540
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:169"
2557
2541
  },
2558
2542
  {
2559
2543
  key: "conversation.hero.agentPreset",
@@ -2565,6 +2549,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2565
2549
  ownerProps: ["/** Owner share of the Hero agent-preset control. */\nexport interface HeroAgentPresetOwnerProps {\n /** Marker field: the occupant owns its roster and staged selection. */\n children?: never\n}"],
2566
2550
  ownerPropsReferences: [],
2567
2551
  standardProps: [
2552
+ "useResource: UseResource",
2568
2553
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2569
2554
  "useSessions: UseSessions",
2570
2555
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2577,7 +2562,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2577
2562
  occupants: ["client-ui-agent-preset AgentPresetSeat"],
2578
2563
  replaceRisk: "shadows-shipped-ui",
2579
2564
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.agentPreset', () => ctx.slots.register(\n { name: 'conversation.hero.agentPreset' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2580
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:151"
2565
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:163"
2581
2566
  },
2582
2567
  {
2583
2568
  key: "conversation.hero.brand.mark",
@@ -2589,6 +2574,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2589
2574
  ownerProps: ["/** Presentation props supplied to the blank-session brand mark. */\nexport interface HeroBrandMarkOwnerProps {\n /** Requested square edge in pixels. */\n size: number\n /** Host class preserving the surrounding mark geometry. */\n className?: string | undefined\n}"],
2590
2575
  ownerPropsReferences: [],
2591
2576
  standardProps: [
2577
+ "useResource: UseResource",
2592
2578
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2593
2579
  "useSessions: UseSessions",
2594
2580
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2601,7 +2587,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2601
2587
  occupants: [],
2602
2588
  replaceRisk: "none",
2603
2589
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.brand.mark', () => ctx.slots.register(\n { name: 'conversation.hero.brand.mark' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2604
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:149"
2590
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:161"
2605
2591
  },
2606
2592
  {
2607
2593
  key: "conversation.hero.workspace",
@@ -2613,6 +2599,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2613
2599
  ownerProps: ["/** Owner share common to blank-session Workspace pickers. */\nexport interface EmptyWorkspaceOwnerProps {\n open: boolean\n anchorRef?: RefObject<HTMLElement>\n /** Currently selected Workspace, when available. */\n selectedId?: WorkspaceId | undefined\n onPick: (workspaceId: WorkspaceId) => void\n onClose: () => void\n}"],
2614
2600
  ownerPropsReferences: ["Workspace"],
2615
2601
  standardProps: [
2602
+ "useResource: UseResource",
2616
2603
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2617
2604
  "useSessions: UseSessions",
2618
2605
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2625,7 +2612,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2625
2612
  occupants: ["client-ui-workspace WorkspacePicker"],
2626
2613
  replaceRisk: "shadows-shipped-ui",
2627
2614
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.workspace', () => ctx.slots.register(\n { name: 'conversation.hero.workspace' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2628
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:147"
2615
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:159"
2629
2616
  },
2630
2617
  {
2631
2618
  key: "conversation.hero.workspace.directoryFlow",
@@ -2637,6 +2624,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2637
2624
  ownerProps: ["/**\n * Owner share of the directory-flow holes: the complete conversation between\n * the trigger surface and the picking interaction. The occupant reads `open`\n * to run/render its interaction and reports exactly one outcome per open.\n */\nexport interface DirectoryFlowOwnerProps {\n /** True while a picking interaction is requested; flipping back to false withdraws the request. */\n open: boolean\n /** True while the owner adopts a picked path (`createWorkspace` in flight); occupants disable their commit affordances. */\n busy: boolean\n /** The operator picked a directory (absolute host path); the owner adopts it. */\n onPicked: (path: string) => void\n /** The operator dismissed the interaction; the owner just closes the flow. */\n onCancel: () => void\n /** The interaction itself failed (chooser missing, listing denied); the owner shows its error surface. */\n onError: (message: string) => void\n}"],
2638
2625
  ownerPropsReferences: [],
2639
2626
  standardProps: [
2627
+ "useResource: UseResource",
2640
2628
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2641
2629
  "useSessions: UseSessions",
2642
2630
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2665,6 +2653,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2665
2653
  "DraftFileUploads"
2666
2654
  ],
2667
2655
  standardProps: [
2656
+ "useResource: UseResource",
2668
2657
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2669
2658
  "useSessions: UseSessions",
2670
2659
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2683,7 +2672,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2683
2672
  occupants: ["client-ui-attachment ComposerAttachments"],
2684
2673
  replaceRisk: "shadows-shipped-ui",
2685
2674
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.attachments', () => ctx.slots.register(\n { name: 'conversation.input.attachments' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2686
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:165"
2675
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:177"
2687
2676
  },
2688
2677
  {
2689
2678
  key: "conversation.input.dock",
@@ -2714,6 +2703,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2714
2703
  ownerProps: ["/** Point-in-time owner values for composer extension entries. */\nexport interface InputZone {\n readonly session: SessionSnapshot\n readonly input: InputState\n}"],
2715
2704
  ownerPropsReferences: ["InputState", "SessionSnapshot"],
2716
2705
  standardProps: [
2706
+ "useResource: UseResource",
2717
2707
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2718
2708
  "useSessions: UseSessions",
2719
2709
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2738,7 +2728,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2738
2728
  ],
2739
2729
  replaceRisk: "none",
2740
2730
  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}",
2741
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:153"
2731
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:165"
2742
2732
  },
2743
2733
  {
2744
2734
  key: "conversation.input.left",
@@ -2769,6 +2759,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2769
2759
  ownerProps: [],
2770
2760
  ownerPropsReferences: [],
2771
2761
  standardProps: [
2762
+ "useResource: UseResource",
2772
2763
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2773
2764
  "useSessions: UseSessions",
2774
2765
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2789,7 +2780,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2789
2780
  occupants: [],
2790
2781
  replaceRisk: "none",
2791
2782
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.left', () => ctx.slots.register(\n { name: 'conversation.input.left', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2792
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:159"
2783
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:171"
2793
2784
  },
2794
2785
  {
2795
2786
  key: "conversation.input.model",
@@ -2801,6 +2792,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2801
2792
  ownerProps: ["/** Owner share of the named plan and model controls. */\nexport interface InputControlOwnerProps {\n /** Whether the composer currently refuses interaction. */\n locked: boolean\n}"],
2802
2793
  ownerPropsReferences: [],
2803
2794
  standardProps: [
2795
+ "useResource: UseResource",
2804
2796
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2805
2797
  "useSessions: UseSessions",
2806
2798
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2821,7 +2813,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2821
2813
  occupants: ["client-ui-model-selection ModelSelect"],
2822
2814
  replaceRisk: "shadows-shipped-ui",
2823
2815
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.model', () => ctx.slots.register(\n { name: 'conversation.input.model' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2824
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:173"
2816
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:185"
2825
2817
  },
2826
2818
  {
2827
2819
  key: "conversation.input.overlay",
@@ -2852,6 +2844,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2852
2844
  ownerProps: [],
2853
2845
  ownerPropsReferences: [],
2854
2846
  standardProps: [
2847
+ "useResource: UseResource",
2855
2848
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2856
2849
  "useSessions: UseSessions",
2857
2850
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2872,7 +2865,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2872
2865
  occupants: ["client-ui-commands PopupSelectView id 'command-popup'", "client-ui-input-trigger MenuView id 'slash-menu'"],
2873
2866
  replaceRisk: "none",
2874
2867
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.overlay', () => ctx.slots.register(\n { name: 'conversation.input.overlay', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2875
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:155"
2868
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:167"
2876
2869
  },
2877
2870
  {
2878
2871
  key: "conversation.input.plan",
@@ -2884,6 +2877,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2884
2877
  ownerProps: ["/** Owner share of the named plan and model controls. */\nexport interface InputControlOwnerProps {\n /** Whether the composer currently refuses interaction. */\n locked: boolean\n}"],
2885
2878
  ownerPropsReferences: [],
2886
2879
  standardProps: [
2880
+ "useResource: UseResource",
2887
2881
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2888
2882
  "useSessions: UseSessions",
2889
2883
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2904,7 +2898,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2904
2898
  occupants: ["client-ui-plan PlanChip"],
2905
2899
  replaceRisk: "shadows-shipped-ui",
2906
2900
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.plan', () => ctx.slots.register(\n { name: 'conversation.input.plan' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2907
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:171"
2901
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:183"
2908
2902
  },
2909
2903
  {
2910
2904
  key: "conversation.input.right",
@@ -2935,6 +2929,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2935
2929
  ownerProps: [],
2936
2930
  ownerPropsReferences: [],
2937
2931
  standardProps: [
2932
+ "useResource: UseResource",
2938
2933
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2939
2934
  "useSessions: UseSessions",
2940
2935
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2955,7 +2950,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2955
2950
  occupants: [],
2956
2951
  replaceRisk: "none",
2957
2952
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.right', () => ctx.slots.register(\n { name: 'conversation.input.right', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
2958
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:161"
2953
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:173"
2959
2954
  },
2960
2955
  {
2961
2956
  key: "conversation.message.images",
@@ -2971,6 +2966,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2971
2966
  "MessageImageSource"
2972
2967
  ],
2973
2968
  standardProps: [
2969
+ "useResource: UseResource",
2974
2970
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2975
2971
  "useSessions: UseSessions",
2976
2972
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -2991,7 +2987,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2991
2987
  occupants: ["client-ui-attachment MessageImages"],
2992
2988
  replaceRisk: "shadows-shipped-ui",
2993
2989
  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}",
2994
- source: "packages/client/ui-chat/src/client/contract/slots.ts:209"
2990
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:194"
2995
2991
  },
2996
2992
  {
2997
2993
  key: "conversation.session",
@@ -3003,6 +2999,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3003
2999
  ownerProps: [],
3004
3000
  ownerPropsReferences: [],
3005
3001
  standardProps: [
3002
+ "useResource: UseResource",
3006
3003
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3007
3004
  "useSessions: UseSessions",
3008
3005
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3035,6 +3032,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3035
3032
  ownerProps: [],
3036
3033
  ownerPropsReferences: [],
3037
3034
  standardProps: [
3035
+ "useResource: UseResource",
3038
3036
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3039
3037
  "useSessions: UseSessions",
3040
3038
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3086,6 +3084,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3086
3084
  ownerProps: ["/** Header actions derive their state from standard Session props. */\nexport interface ConversationHeaderActionOwnerProps {\n /** Marker field: entries receive no owner-specific values. */\n children?: never\n}"],
3087
3085
  ownerPropsReferences: [],
3088
3086
  standardProps: [
3087
+ "useResource: UseResource",
3089
3088
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3090
3089
  "useSessions: UseSessions",
3091
3090
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3113,6 +3112,39 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3113
3112
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header.actions', () => ctx.slots.register(\n { name: 'conversation.session.header.actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
3114
3113
  source: "packages/client/ui-conversation/src/client/contract/slots.ts:131"
3115
3114
  },
3115
+ {
3116
+ key: "conversation.session.header.corner",
3117
+ kind: "single",
3118
+ scope: "session",
3119
+ summary: "The header's far-right corner, past the utilities' edge and into the header's own padding, for one control that must keep its place whether or not it currently shows anything.",
3120
+ doc: "The header's far-right corner, past the utilities' edge and into the\nheader's own padding, for one control that must keep its place whether or\nnot it currently shows anything. The corner reserves its width while an\noccupant is registered, so the utilities beside it never move; an\noccupant with nothing to show renders a same-size placeholder.",
3121
+ registerOptions: [],
3122
+ ownerProps: ["/** The header corner's occupant derives its state from standard Session props. */\nexport interface ConversationHeaderCornerOwnerProps {\n /** Marker field: the occupant receives no owner-specific values. */\n children?: never\n}"],
3123
+ ownerPropsReferences: [],
3124
+ standardProps: [
3125
+ "useResource: UseResource",
3126
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3127
+ "useSessions: UseSessions",
3128
+ "useSessionPendingInteraction: UseSessionPendingInteraction",
3129
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3130
+ "useChat: UseChat",
3131
+ "useConversation: UseConversation",
3132
+ "useInput: SnapshotSelectorHook<InputState>",
3133
+ "inputActions: InputActions",
3134
+ "useSession: SessionSnapshotSelector",
3135
+ "sessionId: SessionId",
3136
+ "useProjection: UseProjection",
3137
+ "useTrajectory: UseTrajectory"
3138
+ ],
3139
+ keyDomain: "",
3140
+ hookContext: "",
3141
+ slotInject: "",
3142
+ declaredBy: "an entry in 'conversation.session.header' (client-ui-conversation), so it exists while that entry is mounted",
3143
+ occupants: ["client-ui-sidebar-right ExpandButton"],
3144
+ replaceRisk: "shadows-shipped-ui",
3145
+ example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header.corner', () => ctx.slots.register(\n { name: 'conversation.session.header.corner' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
3146
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:149"
3147
+ },
3116
3148
  {
3117
3149
  key: "conversation.session.header.lineage",
3118
3150
  kind: "single",
@@ -3123,6 +3155,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3123
3155
  ownerProps: ["/** Plain breadcrumb data handed to the optional lineage renderer. */\nexport interface ConversationHeaderLineageOwnerProps {\n /** Session represented by this breadcrumb title. */\n lineageSessionId: SessionId\n /** Display title available to a combined title/control renderer. */\n displayTitle: string\n /** Navigate to an ancestor title when present. */\n openTitle?: () => void\n}"],
3124
3156
  ownerPropsReferences: ["SessionId"],
3125
3157
  standardProps: [
3158
+ "useResource: UseResource",
3126
3159
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3127
3160
  "useSessions: UseSessions",
3128
3161
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3174,6 +3207,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3174
3207
  ownerProps: ["/** Header actions derive their state from standard Session props. */\nexport interface ConversationHeaderActionOwnerProps {\n /** Marker field: entries receive no owner-specific values. */\n children?: never\n}"],
3175
3208
  ownerPropsReferences: [],
3176
3209
  standardProps: [
3210
+ "useResource: UseResource",
3177
3211
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3178
3212
  "useSessions: UseSessions",
3179
3213
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3210,6 +3244,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3210
3244
  "MessageImageSource"
3211
3245
  ],
3212
3246
  standardProps: [
3247
+ "useResource: UseResource",
3213
3248
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3214
3249
  "useSessions: UseSessions",
3215
3250
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3230,7 +3265,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3230
3265
  occupants: ["client-ui-attachment MessageImages"],
3231
3266
  replaceRisk: "shadows-shipped-ui",
3232
3267
  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}",
3233
- source: "packages/client/ui-trajectory/src/client/trajectory-contract.ts:95"
3268
+ source: "packages/client/ui-trajectory/src/client/trajectory-contract.ts:98"
3234
3269
  },
3235
3270
  {
3236
3271
  key: "conversation.view",
@@ -3261,6 +3296,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3261
3296
  ownerProps: ["/** Conversation View entries obtain their data from registered standard hooks. */\nexport interface ConvViewOwnerProps {\n /** Focus request addressed to the selected View. */\n viewRequest: import('./views.ts').ConversationViewRequest | null\n /** Select a View and address one opaque focus identity to it. */\n openView: (view: string, focus: string) => void\n /** Acknowledge the current one-shot focus request. */\n completeViewRequest: () => void\n}"],
3262
3297
  ownerPropsReferences: ["ConversationViewRequest"],
3263
3298
  standardProps: [
3299
+ "useResource: UseResource",
3264
3300
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3265
3301
  "useSessions: UseSessions",
3266
3302
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3281,18 +3317,19 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3281
3317
  occupants: ["client-ui-chat ChatView id 'chat'", "client-ui-trajectory TrajectoryView id 'trajectory'"],
3282
3318
  replaceRisk: "none",
3283
3319
  example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.view', () => ctx.slots.register(\n { name: 'conversation.view', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
3284
- source: "packages/client/ui-conversation/src/client/contract/slots.ts:143"
3320
+ source: "packages/client/ui-conversation/src/client/contract/slots.ts:155"
3285
3321
  },
3286
3322
  {
3287
- key: "details",
3323
+ key: "rightbar",
3288
3324
  kind: "single",
3289
3325
  scope: "session",
3290
- summary: "The right details column, shown when the layout opens it.",
3291
- doc: "The right details column, shown when the layout opens it. OCCUPIED by\nui-conversation's DetailsPanel, which declares the tool-details seat\ninside it — registering here replaces the column and takes that seat\nwith it. Absent an occupant the column renders nothing.\n\nNo owner props: the framework injects the session id and hooks for the\n`session` scope, and `ctx.layout` owns whether the column is open.",
3326
+ summary: "The right column: a track the centre makes room for, or nothing.",
3327
+ doc: "The right column: a track the centre makes room for, or nothing. OCCUPIED\nby the right Sidebar, which uses the resolved column width in normal\nmode and covers the viewport in fullscreen, retaining the wide-screen\ncolumn reservation underneath.\n\nWhether the panel is shown, and whether it takes a track, is the\noccupant's own recorded business — it reports the composition of its\nexpanded and presentation state through `ctx.layout`, and the frame sizes\nthe track and places the resize handle from that. The expand control is\nnot this column's: it is a button in the conversation header. With no\ncurrent session nothing is mounted here.",
3292
3328
  registerOptions: [],
3293
- ownerProps: ["/** Details owner share: empty — sessionId arrives as a framework-standard prop. */\nexport interface DetailsOwnerProps {}"],
3329
+ ownerProps: ["/** Right column owner share: resolved normal geometry and opening eligibility. */\nexport interface RightbarOwnerProps {\n /** Resolved normal panel width in px, not the saved preference; zero if it cannot fit. */\n width: number\n /** Current frame width in px. */\n viewportWidth: number\n /**\n * Whether a normal right panel can retain 300px beside a 400px center.\n * Before a narrow opening, includes the space from collapsing the left sidebar.\n */\n canShow: boolean\n}"],
3294
3330
  ownerPropsReferences: [],
3295
3331
  standardProps: [
3332
+ "useResource: UseResource",
3296
3333
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3297
3334
  "useSessions: UseSessions",
3298
3335
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3310,10 +3347,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3310
3347
  hookContext: "",
3311
3348
  slotInject: "",
3312
3349
  declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted",
3313
- occupants: ["client-ui-chat DetailsPanel"],
3350
+ occupants: ["client-ui-sidebar-right RightbarSeat"],
3314
3351
  replaceRisk: "shadows-shipped-ui",
3315
- example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('details', () => ctx.slots.register(\n { name: 'details' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
3316
- source: "packages/client/ui-layout/src/client/index.ts:75"
3352
+ 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}",
3353
+ source: "packages/client/ui-layout/src/client/index.ts:79"
3317
3354
  },
3318
3355
  {
3319
3356
  key: "root",
@@ -3325,6 +3362,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3325
3362
  ownerProps: ["/** Root owner share: the shell supplies nothing — the frame is inject-assembled. */\nexport interface RootOwnerProps { children?: never }"],
3326
3363
  ownerPropsReferences: [],
3327
3364
  standardProps: [
3365
+ "useResource: UseResource",
3328
3366
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3329
3367
  "useSessions: UseSessions",
3330
3368
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3368,6 +3406,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3368
3406
  ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"],
3369
3407
  ownerPropsReferences: [],
3370
3408
  standardProps: [
3409
+ "useResource: UseResource",
3371
3410
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3372
3411
  "useSessions: UseSessions",
3373
3412
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3392,6 +3431,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3392
3431
  ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"],
3393
3432
  ownerPropsReferences: [],
3394
3433
  standardProps: [
3434
+ "useResource: UseResource",
3395
3435
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3396
3436
  "useSessions: UseSessions",
3397
3437
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3435,6 +3475,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3435
3475
  ownerProps: ["/** Owner share of a General preference row (the section supplies nothing). */\nexport interface SettingsGeneralItemOwnerProps {\n /** Marker field: item owner props are intentionally empty. */\n children?: never\n}"],
3436
3476
  ownerPropsReferences: [],
3437
3477
  standardProps: [
3478
+ "useResource: UseResource",
3438
3479
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3439
3480
  "useSessions: UseSessions",
3440
3481
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3466,6 +3507,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3466
3507
  ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"],
3467
3508
  ownerPropsReferences: [],
3468
3509
  standardProps: [
3510
+ "useResource: UseResource",
3469
3511
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3470
3512
  "useSessions: UseSessions",
3471
3513
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3509,6 +3551,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3509
3551
  ownerProps: ["/** Owner share of the footer area (the section supplies nothing). */\nexport interface ModelsFooterOwnerProps {\n /** Marker field: footer owner props are intentionally empty. */\n children?: never\n}"],
3510
3552
  ownerPropsReferences: [],
3511
3553
  standardProps: [
3554
+ "useResource: UseResource",
3512
3555
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3513
3556
  "useSessions: UseSessions",
3514
3557
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3538,6 +3581,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3538
3581
  ownerProps: ["/** Owner share of one provider-card extension occurrence. */\nexport interface ProviderCardExtrasOwnerProps {\n /** The card's directory row (route id, display name, settings address, live state). */\n provider: ProviderDirectoryEntry\n /** Whether any layer configures this provider (its profile resolves); `false` while the add-provider draft edits a dormant row. */\n configured: boolean\n /** Whether the row's referenced api-key credential is confirmed configured (the page's credential join). */\n keyConfigured: boolean\n}"],
3539
3582
  ownerPropsReferences: ["ProviderDirectoryEntry"],
3540
3583
  standardProps: [
3584
+ "useResource: UseResource",
3541
3585
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3542
3586
  "useSessions: UseSessions",
3543
3587
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3581,6 +3625,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3581
3625
  ownerProps: ["/** Owner share of the currently active settings-backed onboarding step. */\nexport interface SettingsOnboardingOwnerProps {\n /** Stable id of the step currently selected by the coordinator. */\n stepId: string\n /** Complete or skip this step and transfer ownership to the next entry. */\n complete: () => void\n /** Open the settings panel directly on one registered section. */\n openSection: (id: string) => void\n}"],
3582
3626
  ownerPropsReferences: [],
3583
3627
  standardProps: [
3628
+ "useResource: UseResource",
3584
3629
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3585
3630
  "useSessions: UseSessions",
3586
3631
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3610,6 +3655,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3610
3655
  ownerProps: ["/** Owner share of a plugin card (the section supplies nothing). */\nexport interface SettingsPluginItemOwnerProps {\n /** Marker field: card owner props are intentionally empty. */\n children?: never\n}"],
3611
3656
  ownerPropsReferences: [],
3612
3657
  standardProps: [
3658
+ "useResource: UseResource",
3613
3659
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3614
3660
  "useSessions: UseSessions",
3615
3661
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3658,6 +3704,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3658
3704
  ownerProps: ["/** Owner share of a Plugins tab (the section supplies nothing). */\nexport interface SettingsPluginsTabOwnerProps {\n /** Marker field: tab owner props are intentionally empty. */\n children?: never\n}"],
3659
3705
  ownerPropsReferences: [],
3660
3706
  standardProps: [
3707
+ "useResource: UseResource",
3661
3708
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3662
3709
  "useSessions: UseSessions",
3663
3710
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3701,6 +3748,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3701
3748
  ownerProps: ["/**\n * Owner share of a settings section entry. The shell owns modal visibility\n * and navigation; a section's data arrives through its own inject faces and\n * stores. `close` is the one shell affordance a section receives, for flows\n * that leave settings altogether (starting a session from a section) — the\n * onboarding coordinator's `openSection`/`complete` precedent, inverted.\n */\nexport interface SettingsSectionOwnerProps {\n /** Close the settings panel (the shell owns the open state). */\n close: () => void\n}"],
3702
3749
  ownerPropsReferences: [],
3703
3750
  standardProps: [
3751
+ "useResource: UseResource",
3704
3752
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3705
3753
  "useSessions: UseSessions",
3706
3754
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3730,6 +3778,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3730
3778
  ownerProps: ["/** Owner share of the trigger content seat: the sidebar column state. */\nexport interface SettingsTriggerOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail, icon only). */\n wide: boolean\n}"],
3731
3779
  ownerPropsReferences: [],
3732
3780
  standardProps: [
3781
+ "useResource: UseResource",
3733
3782
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3734
3783
  "useSessions: UseSessions",
3735
3784
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3773,6 +3822,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3773
3822
  ownerProps: [],
3774
3823
  ownerPropsReferences: [],
3775
3824
  standardProps: [
3825
+ "useResource: UseResource",
3776
3826
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3777
3827
  "useSessions: UseSessions",
3778
3828
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3785,7 +3835,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3785
3835
  occupants: [],
3786
3836
  replaceRisk: "none",
3787
3837
  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}",
3788
- source: "packages/client/ui-layout/src/client/index.ts:86"
3838
+ source: "packages/client/ui-layout/src/client/index.ts:90"
3789
3839
  },
3790
3840
  {
3791
3841
  key: "sidebar",
@@ -3797,6 +3847,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3797
3847
  ownerProps: ["/** Sidebar owner share: live column state from the frame's concession solve. */\nexport interface SidebarOwnerProps {\n /** True when the sidebar is closed (the column renders the compact control rail). */\n collapsed: boolean\n /** Rendered column width in px (SIDEBAR_COLLAPSED when collapsed). */\n width: number\n}"],
3798
3848
  ownerPropsReferences: [],
3799
3849
  standardProps: [
3850
+ "useResource: UseResource",
3800
3851
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3801
3852
  "useSessions: UseSessions",
3802
3853
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3821,6 +3872,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3821
3872
  ownerProps: ["/** Geometry supplied to the sidebar brand-mark occupant. */\nexport interface SidebarBrandMarkOwnerProps {\n /** Requested square edge in pixels. */\n size: number\n}"],
3822
3873
  ownerPropsReferences: [],
3823
3874
  standardProps: [
3875
+ "useResource: UseResource",
3824
3876
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3825
3877
  "useSessions: UseSessions",
3826
3878
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3845,6 +3897,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3845
3897
  ownerProps: ["/** Empty owner share for the sidebar brand-name occupant. */\nexport interface SidebarBrandNameOwnerProps {\n /** Marker field: the occupant owns its own content and width. */\n children?: never\n}"],
3846
3898
  ownerPropsReferences: [],
3847
3899
  standardProps: [
3900
+ "useResource: UseResource",
3848
3901
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3849
3902
  "useSessions: UseSessions",
3850
3903
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3888,6 +3941,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3888
3941
  ownerProps: ["/** Owner share of an action rendered beside Settings at the sidebar foot. */\nexport interface SidebarFooterActionOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail). */\n wide: boolean\n}"],
3889
3942
  ownerPropsReferences: [],
3890
3943
  standardProps: [
3944
+ "useResource: UseResource",
3891
3945
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3892
3946
  "useSessions: UseSessions",
3893
3947
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3902,6 +3956,176 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3902
3956
  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}",
3903
3957
  source: "packages/client/ui-sidebar/src/client/contract/slots.ts:46"
3904
3958
  },
3959
+ {
3960
+ key: "sidebar.right.pane.tab",
3961
+ kind: "keyed",
3962
+ scope: "session",
3963
+ summary: "One tab's body, dispatched with the `id` of the type in force for `tab.kind`.",
3964
+ doc: "One tab's body, dispatched with the `id` of the type in force for\n`tab.kind`. A tab type registers here under its definition's `id` and\nreceives every tab of that kind, in every pane, docked or floating. A kind\nwith no type in force renders the owner's \"nothing can view this\" notice\nrather than an empty pane.",
3965
+ registerOptions: [{
3966
+ name: "key",
3967
+ requirement: "required",
3968
+ type: "string",
3969
+ doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
3970
+ }],
3971
+ ownerProps: [],
3972
+ ownerPropsReferences: [],
3973
+ standardProps: [
3974
+ "useResource: UseResource",
3975
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3976
+ "useSessions: UseSessions",
3977
+ "useSessionPendingInteraction: UseSessionPendingInteraction",
3978
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3979
+ "useChat: UseChat",
3980
+ "useConversation: UseConversation",
3981
+ "useInput: SnapshotSelectorHook<InputState>",
3982
+ "inputActions: InputActions",
3983
+ "useSession: SessionSnapshotSelector",
3984
+ "sessionId: SessionId",
3985
+ "useProjection: UseProjection",
3986
+ "useTrajectory: UseTrajectory"
3987
+ ],
3988
+ keyDomain: "open: any string the owner dispatches (no compile-time key set), none are taken yet",
3989
+ hookContext: "TabHookContext",
3990
+ slotInject: "SidebarRightTabInjected",
3991
+ declaredBy: "an entry in 'rightbar' (client-ui-sidebar-right), so it exists while that entry is mounted",
3992
+ occupants: [
3993
+ "client-ui-sidebar-files FilesBody",
3994
+ "client-ui-sidebar-right GuideBody",
3995
+ "client-ui-sidebar-textpreview TextPreview"
3996
+ ],
3997
+ replaceRisk: "none",
3998
+ 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}",
3999
+ source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:47"
4000
+ },
4001
+ {
4002
+ key: "sidebar.right.pane.tab.title",
4003
+ kind: "keyed",
4004
+ scope: "session",
4005
+ summary: "A tab's title as its chip (and a floating panel's header) shows it, dispatched with the same key and information hook as the body.",
4006
+ doc: "A tab's title as its chip (and a floating panel's header) shows it,\ndispatched with the same key and information hook as the body. A type with a\nlive title — a terminal named after its shell, a chat after its first\nline — registers here and reads its own store; one without registers\nnothing and the chip shows the registry's `title(address)` text captured\nat open time.",
4007
+ registerOptions: [{
4008
+ name: "key",
4009
+ requirement: "required",
4010
+ type: "string",
4011
+ doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
4012
+ }],
4013
+ ownerProps: [],
4014
+ ownerPropsReferences: [],
4015
+ standardProps: [
4016
+ "useResource: UseResource",
4017
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4018
+ "useSessions: UseSessions",
4019
+ "useSessionPendingInteraction: UseSessionPendingInteraction",
4020
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4021
+ "useChat: UseChat",
4022
+ "useConversation: UseConversation",
4023
+ "useInput: SnapshotSelectorHook<InputState>",
4024
+ "inputActions: InputActions",
4025
+ "useSession: SessionSnapshotSelector",
4026
+ "sessionId: SessionId",
4027
+ "useProjection: UseProjection",
4028
+ "useTrajectory: UseTrajectory"
4029
+ ],
4030
+ keyDomain: "open: any string the owner dispatches (no compile-time key set), none are taken yet",
4031
+ hookContext: "TabHookContext",
4032
+ slotInject: "SidebarRightTabInjected",
4033
+ declaredBy: "an entry in 'rightbar' (client-ui-sidebar-right), so it exists while that entry is mounted",
4034
+ occupants: [],
4035
+ replaceRisk: "none",
4036
+ 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}",
4037
+ source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:61"
4038
+ },
4039
+ {
4040
+ key: "sidebar.right.tab.guide",
4041
+ kind: "chain",
4042
+ scope: "session",
4043
+ summary: "The guide tab's body.",
4044
+ doc: "The guide tab's body. Selectors run in chain order and the first\nnon-declining entry replaces the shipped guide entirely; with no entry, or\nwith every entry declining, the shipped guide renders.",
4045
+ registerOptions: [{
4046
+ name: "select",
4047
+ requirement: "required",
4048
+ type: "(owner) => unknown | null",
4049
+ 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."
4050
+ }],
4051
+ ownerProps: [],
4052
+ ownerPropsReferences: [],
4053
+ standardProps: [
4054
+ "useResource: UseResource",
4055
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4056
+ "useSessions: UseSessions",
4057
+ "useSessionPendingInteraction: UseSessionPendingInteraction",
4058
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4059
+ "useChat: UseChat",
4060
+ "useConversation: UseConversation",
4061
+ "useInput: SnapshotSelectorHook<InputState>",
4062
+ "inputActions: InputActions",
4063
+ "useSession: SessionSnapshotSelector",
4064
+ "sessionId: SessionId",
4065
+ "useProjection: UseProjection",
4066
+ "useTrajectory: UseTrajectory"
4067
+ ],
4068
+ keyDomain: "",
4069
+ hookContext: "UseSidebarRightTabInfo",
4070
+ slotInject: "{ hooks: { tabInfo: SlotHookFactory<'sidebar.right.tab.guide', UseSidebarRightTabInfo> } }",
4071
+ declaredBy: "an entry in 'sidebar.right.pane.tab' (client-ui-sidebar-right), so it exists while that entry is mounted",
4072
+ occupants: [],
4073
+ replaceRisk: "none",
4074
+ 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}",
4075
+ source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:72"
4076
+ },
4077
+ {
4078
+ key: "sidebar.right.tab.menu.item",
4079
+ kind: "list",
4080
+ scope: "session",
4081
+ summary: "Extra items at the end of one tab's actions menu, in registration order.",
4082
+ doc: "Extra items at the end of one tab's actions menu, in registration order.\nEntries decide their own visibility from the tab they are given. Without a\nregistrant the menu shows only the kit's own layout actions.",
4083
+ registerOptions: [
4084
+ {
4085
+ name: "id",
4086
+ requirement: "required",
4087
+ type: "string",
4088
+ 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."
4089
+ },
4090
+ {
4091
+ name: "order",
4092
+ requirement: "optional",
4093
+ type: "number",
4094
+ doc: "Position among the entries, ascending (default 0)."
4095
+ },
4096
+ {
4097
+ name: "label",
4098
+ requirement: "optional",
4099
+ type: "string | (() => string)",
4100
+ 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."
4101
+ }
4102
+ ],
4103
+ ownerProps: ["/** Owner share of one tab-menu item occurrence. */\nexport interface SidebarRightTabMenuOwnerProps {\n /** The tab whose menu is open. */\n tab: TabRecord\n /**\n * Dismiss the menu.\n *\n * An item that acts MUST call this: the menu is the kit's, and it closes on\n * its own actions only. An item that leaves it open leaves a menu floating\n * over content the action may have just replaced.\n */\n dismiss: () => void\n}"],
4104
+ ownerPropsReferences: ["TabRecord"],
4105
+ standardProps: [
4106
+ "useResource: UseResource",
4107
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4108
+ "useSessions: UseSessions",
4109
+ "useSessionPendingInteraction: UseSessionPendingInteraction",
4110
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4111
+ "useChat: UseChat",
4112
+ "useConversation: UseConversation",
4113
+ "useInput: SnapshotSelectorHook<InputState>",
4114
+ "inputActions: InputActions",
4115
+ "useSession: SessionSnapshotSelector",
4116
+ "sessionId: SessionId",
4117
+ "useProjection: UseProjection",
4118
+ "useTrajectory: UseTrajectory"
4119
+ ],
4120
+ keyDomain: "",
4121
+ hookContext: "",
4122
+ slotInject: "",
4123
+ declaredBy: "an entry in 'rightbar' (client-ui-sidebar-right), so it exists while that entry is mounted",
4124
+ occupants: [],
4125
+ replaceRisk: "none",
4126
+ 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}",
4127
+ source: "packages/client/ui-sidebar-right/src/client/contract/slots.ts:83"
4128
+ },
3905
4129
  {
3906
4130
  key: "sidebar.settings",
3907
4131
  kind: "single",
@@ -3912,6 +4136,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3912
4136
  ownerProps: ["/**\n * Owner share of the sidebar settings seat: the column display state the\n * occupant's trigger row must render against (wide row vs rail icon).\n */\nexport interface SidebarSettingsOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail). */\n wide: boolean\n}"],
3913
4137
  ownerPropsReferences: [],
3914
4138
  standardProps: [
4139
+ "useResource: UseResource",
3915
4140
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3916
4141
  "useSessions: UseSessions",
3917
4142
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3936,6 +4161,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3936
4161
  ownerProps: ["/**\n * Owner share of the browser hole — the only facts crossing the shell/region\n * boundary. Business data and actions arrive through the region's own inject.\n */\nexport interface SidebarSectionOwnerProps {\n /** Shell fold-state output: wide renders the full browser, rail the icon column. */\n wide: boolean\n /** Rail icons request expansion; the browser rides the wide flip for focus. */\n expandSidebar: () => void\n}"],
3937
4162
  ownerPropsReferences: [],
3938
4163
  standardProps: [
4164
+ "useResource: UseResource",
3939
4165
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3940
4166
  "useSessions: UseSessions",
3941
4167
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3960,6 +4186,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3960
4186
  ownerProps: ["/**\n * Owner share of the directory-flow holes: the complete conversation between\n * the trigger surface and the picking interaction. The occupant reads `open`\n * to run/render its interaction and reports exactly one outcome per open.\n */\nexport interface DirectoryFlowOwnerProps {\n /** True while a picking interaction is requested; flipping back to false withdraws the request. */\n open: boolean\n /** True while the owner adopts a picked path (`createWorkspace` in flight); occupants disable their commit affordances. */\n busy: boolean\n /** The operator picked a directory (absolute host path); the owner adopts it. */\n onPicked: (path: string) => void\n /** The operator dismissed the interaction; the owner just closes the flow. */\n onCancel: () => void\n /** The interaction itself failed (chooser missing, listing denied); the owner shows its error surface. */\n onError: (message: string) => void\n}"],
3961
4187
  ownerPropsReferences: [],
3962
4188
  standardProps: [
4189
+ "useResource: UseResource",
3963
4190
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3964
4191
  "useSessions: UseSessions",
3965
4192
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -3984,6 +4211,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3984
4211
  ownerProps: ["/** Owner currency of the Tool image gallery slot: references plus the loader. */\nexport interface ToolImagesOwnerProps {\n /** Durable references or submission-echo previews in result order. */\n images: readonly MessageImageSource[]\n /** Session-authorized image URL loader for the durable arm. */\n loadImage: MessageImageLoader\n /** Horizontal placement inside the owning record. */\n align: 'start' | 'end'\n}"],
3985
4212
  ownerPropsReferences: ["MessageImageLoader", "MessageImageSource"],
3986
4213
  standardProps: [
4214
+ "useResource: UseResource",
3987
4215
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3988
4216
  "useSessions: UseSessions",
3989
4217
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -4018,9 +4246,14 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4018
4246
  type: "string",
4019
4247
  doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant."
4020
4248
  }],
4021
- ownerProps: ["/** Standard owner currency supplied to every atomic Tool view. */\nexport interface ToolCallOwnerProps {\n /** Tool call identity, stable across running and settled forms. */\n callId: string\n /** Wire Tool name and keyed dispatch value. */\n toolName: string\n /** Frozen running call or settled result node. */\n block: ToolCallBlock\n /** Session workspace root for relative summaries. */\n cwd?: string | undefined\n /** Host account home; POSIX home-rooted summaries display as `~`. */\n home?: string | undefined\n /** Open a Tool argument path through the Host. */\n openFile: (path: string) => void\n /**\n * Session-authorized image loader for the `tool.call.images` slot, supplied\n * by the chat node that owns this call. A composed chat node always\n * supplies it (`ChatNodeOwnerProps.loadImage` is required), so the tool\n * layer never imports an attachment implementation nor handles URL\n * authorization.\n */\n loadImage: MessageImageLoader\n /** Inspect this call in the trajectory view when available. */\n inspect?: (() => void) | undefined\n}"],
4022
- ownerPropsReferences: ["ChatNodeOwnerProps", "MessageImageLoader"],
4249
+ ownerProps: ["/** Standard owner currency supplied to every atomic Tool view. */\nexport interface ToolCallOwnerProps {\n /** Tool call identity, stable across running and settled forms. */\n callId: string\n /** Wire Tool name and keyed dispatch value. */\n toolName: string\n /** Frozen running call or settled result node. */\n block: ToolCallBlock\n /** Session workspace root for relative summaries. */\n cwd?: string | undefined\n /** Host account home; POSIX home-rooted summaries display as `~`. */\n home?: string | undefined\n /**\n * Open a Tool argument path. A view that knows which line the call was about\n * passes it, and the opened surface lands there.\n */\n openFile: (path: string, options?: OpenFileOptions) => void\n /**\n * Session-authorized image loader for the `tool.call.images` slot, supplied\n * by the chat node that owns this call. A composed chat node always\n * supplies it (`ChatNodeOwnerProps.loadImage` is required), so the tool\n * layer never imports an attachment implementation nor handles URL\n * authorization.\n */\n loadImage: MessageImageLoader\n /** Inspect this call in the trajectory view when available. */\n inspect?: (() => void) | undefined\n}"],
4250
+ ownerPropsReferences: [
4251
+ "ChatNodeOwnerProps",
4252
+ "MessageImageLoader",
4253
+ "OpenFileOptions"
4254
+ ],
4023
4255
  standardProps: [
4256
+ "useResource: UseResource",
4024
4257
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4025
4258
  "useSessions: UseSessions",
4026
4259
  "useSessionPendingInteraction: UseSessionPendingInteraction",
@@ -4079,6 +4312,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4079
4312
  "CordisDynamicPluginRunId"
4080
4313
  ],
4081
4314
  standardProps: [
4315
+ "useResource: UseResource",
4082
4316
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4083
4317
  "useSessions: UseSessions",
4084
4318
  "useSessionPendingInteraction: UseSessionPendingInteraction",
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.3-alpha.2",
4
+ "version": "0.1.5-alpha.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -43,13 +43,13 @@
43
43
  "devDependencies": {
44
44
  "@types/react": "~18.3.1",
45
45
  "react": "^18.2.0",
46
- "@deepseek-ai/dsh-client-modules": "^0.1.3-alpha.2",
47
- "@deepseek-ai/dsh-api-remotes": "^0.1.3-alpha.2",
48
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.3-alpha.2",
49
- "@deepseek-ai/dsh-client-ui-theme": "^0.1.3-alpha.2",
46
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
47
+ "@deepseek-ai/dsh-api-remotes": "^0.1.5-alpha.1",
48
+ "@deepseek-ai/dsh-client-modules": "^0.1.5-alpha.1",
49
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-alpha.1",
50
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.5-alpha.1",
50
51
  "@deepseek-ai/cordis": "^4.0.2",
51
- "@deepseek-ai/dsh-util-values": "^0.1.3-alpha.2",
52
- "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
52
+ "@deepseek-ai/dsh-util-values": "^0.1.5-alpha.1"
53
53
  },
54
54
  "files": [
55
55
  "lib/index.js",