@deepseek-ai/dsh-cordis-client-runner 0.2.1-alpha.3 → 0.2.1-alpha.5

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 +95 -8
  2. package/package.json +6 -6
package/lib/client.js CHANGED
@@ -3492,6 +3492,44 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
3492
3492
  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}",
3493
3493
  source: "packages/client/ui-conversation/src/client/contract/slots.ts:298"
3494
3494
  },
3495
+ {
3496
+ key: "conversation.input.model.label",
3497
+ kind: "single",
3498
+ scope: "session",
3499
+ summary: "Non-interactive inline model label; selection controls remain owner-managed.",
3500
+ doc: "Non-interactive inline model label; selection controls remain owner-managed.\nWithout a contribution, the composer displays the catalog name.",
3501
+ registerOptions: [],
3502
+ ownerProps: ["/** Catalog data for a model name inside the composer's existing controls. */\nexport interface ModelLabelOwner {\n /** Provider identity and localized display name; contains no connection configuration. */\n provider: Pick<ModelProviderGroup, 'id' | 'name'>\n /** The exact provider's model catalog entry. */\n model: ModelCatalogModel\n /** Trigger caption, root-menu current value, or selectable model row. */\n placement: 'trigger' | 'menu' | 'option'\n /** Whether this provider/model pair is the current selection. */\n selected: boolean\n}"],
3503
+ ownerPropsReferences: ["ModelCatalogModel", "ModelProviderGroup"],
3504
+ standardProps: [
3505
+ "useRemoteAccess: (action: RemoteEndpoint) => boolean",
3506
+ "useResource: UseResource",
3507
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
3508
+ "usePanelInfo: UsePanelInfo",
3509
+ "useSessions: UseSessions",
3510
+ "useSessionStatus: UseSessionStatus",
3511
+ "useSessionRetainInfo: UseSessionRetainInfo",
3512
+ "useSessionAccess: (sessionId: SessionId, action: RemoteEndpoint) => boolean",
3513
+ "useWorkspaceAccess: (workspaceId: WorkspaceId, action: RemoteEndpoint) => boolean",
3514
+ "useChat: UseChat",
3515
+ "useConversation: UseConversation",
3516
+ "useInput: SnapshotSelectorHook<InputState>",
3517
+ "inputActions: InputActions",
3518
+ "useSession: SessionSnapshotSelector",
3519
+ "sessionId: SessionId",
3520
+ "useProjection: UseProjection",
3521
+ "useAccess: (action: RemoteEndpoint) => boolean",
3522
+ "useTrajectory: UseTrajectory"
3523
+ ],
3524
+ keyDomain: "",
3525
+ hookContext: "",
3526
+ slotInject: "",
3527
+ declaredBy: "an entry in 'conversation.input.model' (client-ui-model-selection), so it exists while that entry is mounted",
3528
+ occupants: [],
3529
+ replaceRisk: "none",
3530
+ example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.model.label', () => ctx.slots.register(\n { name: 'conversation.input.model.label' },\n ({ provider, model }) => React.createElement('span', { title: provider.name }, model.name),\n ))\n },\n}",
3531
+ source: "packages/client/ui-model-selection/src/client/slots.ts:36"
3532
+ },
3495
3533
  {
3496
3534
  key: "conversation.input.overlay",
3497
3535
  kind: "list",
@@ -4402,7 +4440,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4402
4440
  occupants: ["client-ui-agent-preset CreatePluginMenuItem id 'create-plugin'"],
4403
4441
  replaceRisk: "none",
4404
4442
  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}",
4405
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:89"
4443
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:118"
4406
4444
  },
4407
4445
  {
4408
4446
  key: "plugins.bundle.activation",
@@ -4436,7 +4474,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4436
4474
  occupants: ["experimental-client-ui-voice-input VoiceSetupPrompt key '@deepseek-ai/dsh-experimental-voice-input-bundle'"],
4437
4475
  replaceRisk: "shadows-shipped-ui",
4438
4476
  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}",
4439
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:91"
4477
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:126"
4440
4478
  },
4441
4479
  {
4442
4480
  key: "plugins.bundle.config",
@@ -4470,7 +4508,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4470
4508
  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'"],
4471
4509
  replaceRisk: "shadows-shipped-ui",
4472
4510
  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}",
4473
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:107"
4511
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:142"
4474
4512
  },
4475
4513
  {
4476
4514
  key: "plugins.detail.actions",
@@ -4518,7 +4556,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4518
4556
  occupants: [],
4519
4557
  replaceRisk: "none",
4520
4558
  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}",
4521
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:121"
4559
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:156"
4522
4560
  },
4523
4561
  {
4524
4562
  key: "plugins.detail.badge",
@@ -4566,7 +4604,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4566
4604
  occupants: [],
4567
4605
  replaceRisk: "none",
4568
4606
  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}",
4569
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:126"
4607
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:161"
4570
4608
  },
4571
4609
  {
4572
4610
  key: "plugins.detail.section",
@@ -4614,7 +4652,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4614
4652
  occupants: [],
4615
4653
  replaceRisk: "none",
4616
4654
  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}",
4617
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:133"
4655
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:168"
4618
4656
  },
4619
4657
  {
4620
4658
  key: "plugins.item",
@@ -4667,7 +4705,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4667
4705
  ],
4668
4706
  replaceRisk: "none",
4669
4707
  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}",
4670
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:101"
4708
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:136"
4671
4709
  },
4672
4710
  {
4673
4711
  key: "plugins.row.config",
@@ -4701,7 +4739,55 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
4701
4739
  occupants: [],
4702
4740
  replaceRisk: "none",
4703
4741
  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}",
4704
- source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:115"
4742
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:150"
4743
+ },
4744
+ {
4745
+ key: "plugins.tab",
4746
+ kind: "list",
4747
+ scope: "root",
4748
+ summary: "Tabs after the page's own Installed tab, such as Discover: `label` names the tab and `order` places it.",
4749
+ doc: "Tabs after the page's own Installed tab, such as Discover: `label` names the tab and `order` places it. The\npage renders the selected entry under its header and tabs; the entry draws its own content and installs\nthrough the owner's `install`.",
4750
+ registerOptions: [
4751
+ {
4752
+ name: "id",
4753
+ requirement: "required",
4754
+ type: "string",
4755
+ 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."
4756
+ },
4757
+ {
4758
+ name: "order",
4759
+ requirement: "optional",
4760
+ type: "number",
4761
+ doc: "Position among the entries, ascending (default 0)."
4762
+ },
4763
+ {
4764
+ name: "label",
4765
+ requirement: "optional",
4766
+ type: "string | (() => string)",
4767
+ 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."
4768
+ }
4769
+ ],
4770
+ ownerProps: ["/** Owner props of a page tab another plugin contributes, such as Discover. */\nexport interface PluginTabProps {\n /**\n * Install an exact version the person already confirmed: the page's install dialog opens at its check and progress\n * screens, without the spec form, and names the plugin and version above the spec.\n * @param target - the spec, optional registry, and display text.\n */\n readonly install: (target: PluginTabInstall) => void\n /**\n * Switch to the Installed tab and open a bundle's page.\n * @param packageName - npm package name of the bundle.\n */\n readonly openPackage: (packageName: string) => void\n}"],
4771
+ ownerPropsReferences: ["PluginTabInstall"],
4772
+ standardProps: [
4773
+ "useRemoteAccess: (action: RemoteEndpoint) => boolean",
4774
+ "useResource: UseResource",
4775
+ "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
4776
+ "usePanelInfo: UsePanelInfo",
4777
+ "useSessions: UseSessions",
4778
+ "useSessionStatus: UseSessionStatus",
4779
+ "useSessionRetainInfo: UseSessionRetainInfo",
4780
+ "useSessionAccess: (sessionId: SessionId, action: RemoteEndpoint) => boolean",
4781
+ "useWorkspaceAccess: (workspaceId: WorkspaceId, action: RemoteEndpoint) => boolean"
4782
+ ],
4783
+ keyDomain: "",
4784
+ hookContext: "",
4785
+ slotInject: "",
4786
+ declaredBy: "an entry in 'main' (client-ui-plugin-manager), so it exists while that entry is mounted",
4787
+ occupants: ["client-ui-plugin-market DiscoverSection id 'discover'"],
4788
+ replaceRisk: "none",
4789
+ example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('plugins.tab', () => ctx.slots.register(\n { name: 'plugins.tab', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}",
4790
+ source: "packages/client/ui-plugin-manager/src/client/slot-contract.ts:124"
4705
4791
  },
4706
4792
  {
4707
4793
  key: "rightbar",
@@ -5392,6 +5478,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
5392
5478
  "client-ui-schedule ScheduleDeleteToast id 'schedule.delete-toast'",
5393
5479
  "client-ui-settings-account DesktopOnboardingEntry id 'desktop-onboarding'",
5394
5480
  "client-ui-settings-account AccountPlatformHost id 'account.platform-page'",
5481
+ "client-ui-settings-general HostReleasePrompt id 'host-release-change'",
5395
5482
  "client-ui-settings-session-log UploadToast id 'session-log-upload-toast'",
5396
5483
  "client-ui-shortcuts ShortcutReference id 'shortcuts'",
5397
5484
  "client-ui-workspace SessionRenameDialog id 'workspace.session-rename'",
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.1-alpha.3",
4
+ "version": "0.2.1-alpha.5",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -43,13 +43,13 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.2",
46
- "@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.3",
47
- "@deepseek-ai/dsh-client-modules": "0.2.1-alpha.3",
48
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.3",
49
- "@deepseek-ai/dsh-client-ui-theme": "0.2.1-alpha.3",
46
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.5",
47
+ "@deepseek-ai/dsh-client-modules": "0.2.1-alpha.5",
48
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.5",
49
+ "@deepseek-ai/dsh-client-ui-theme": "0.2.1-alpha.5",
50
50
  "@deepseek-ai/cordis": "~4.0.5-alpha.2",
51
51
  "react": "^18.2.0",
52
- "@deepseek-ai/dsh-util-values": "0.2.1-alpha.3"
52
+ "@deepseek-ai/dsh-util-values": "0.2.1-alpha.5"
53
53
  },
54
54
  "files": [
55
55
  "locale/*.json",