@deepseek-ai/dsh-cordis-client-runner 0.1.2-alpha.2 → 0.1.2-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/extensions/cordis-client-runner/README.md
5
- README.md: ba813e3498752902b80102ecad5802187d95a129
6
- README.zh.md: 1b975550dc4d08aef90f8e7a79a81a67983dfce1
5
+ README.md: 3b5762786e0f5b00fc80533ca4fa97a3d4cd0a4b
6
+ README.zh.md: d68dc218f75e65c9a1787a5e43f018c9cdfa3383
package/README.md CHANGED
@@ -140,3 +140,5 @@ These limits define where the browser half needs special care. They are current
140
140
  None.
141
141
 
142
142
  </details>
143
+
144
+ **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
@@ -140,3 +140,5 @@ kind: "package-reference"
140
140
  无。
141
141
 
142
142
  </details>
143
+
144
+ **运行时不变式:** 不发布伴生入口。live Plugin 与 Plugin Run ID 的关系只存在于浏览器侧 service,Host 不变式无法观察;包内 load/teardown 测试直接覆盖该关系。
package/lib/client.js CHANGED
@@ -1608,7 +1608,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1608
1608
  },
1609
1609
  {
1610
1610
  name: "BeginSubmissionInput",
1611
- declaration: "export interface BeginSubmissionInput {\n readonly text: string;\n readonly images: readonly PendingSubmissionImage[];\n readonly onRetire?: (retirement: PendingSubmissionRetirement) => void;\n}"
1611
+ declaration: "export interface BeginSubmissionInput {\n readonly mode: 'queue' | 'steer';\n readonly text: string;\n readonly images: readonly PendingSubmissionImage[];\n readonly onRetire?: (retirement: PendingSubmissionRetirement) => void;\n}"
1612
1612
  },
1613
1613
  {
1614
1614
  name: "BoundActions",
@@ -1720,7 +1720,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1720
1720
  },
1721
1721
  {
1722
1722
  name: "InjectFace",
1723
- declaration: "export type InjectFace<I extends object> = I extends {\n hooks: infer HS extends HooksSources;\n} ? Omit<I, 'hooks'> & PropsHooks<HS> : I;"
1723
+ declaration: "export type InjectFace<I extends object> = I extends {\n hooks: infer HS extends HooksSources;\n} ? I extends {\n keyedHooks: infer KS extends KeyedHooksSources;\n} ? Omit<I, 'hooks' | 'keyedHooks'> & PropsHooks<HS> & PropsKeyedHooks<KS> : Omit<I, 'hooks'> & PropsHooks<HS> : I extends {\n keyedHooks: infer KS extends KeyedHooksSources;\n} ? Omit<I, 'keyedHooks'> & PropsKeyedHooks<KS> : I;"
1724
1724
  },
1725
1725
  {
1726
1726
  name: "InjectParams",
@@ -1728,7 +1728,19 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1728
1728
  },
1729
1729
  {
1730
1730
  name: "ISession",
1731
- 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: number;\n }>>;\n loadOlder(): Promise<void>;\n command(line: string): Promise<RemoteResult<{\n matched: boolean;\n }>>;\n}"
1731
+ 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}"
1732
+ },
1733
+ {
1734
+ name: "KeyedHooksSources",
1735
+ declaration: "export type KeyedHooksSources = Record<string, KeyedStandardSource>;"
1736
+ },
1737
+ {
1738
+ name: "KeyedSnapshotSelectorHook",
1739
+ declaration: "export type KeyedSnapshotSelectorHook<Snapshot> = {\n (key: string): Snapshot | undefined;\n <Selected>(key: string, selector: (value: Snapshot | undefined) => Selected, equal?: (left: Selected, right: Selected) => boolean): Selected;\n};"
1740
+ },
1741
+ {
1742
+ name: "KeyedStandardSource",
1743
+ declaration: "export type KeyedStandardSource = (key: string) => HostObservable<unknown> | undefined;"
1732
1744
  },
1733
1745
  {
1734
1746
  name: "KeyPropsOf",
@@ -1784,12 +1796,16 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1784
1796
  },
1785
1797
  {
1786
1798
  name: "PendingSubmission",
1787
- declaration: "export interface PendingSubmission {\n readonly requestId: SessionRequestId;\n readonly time: number;\n readonly text: string;\n readonly images: readonly PendingSubmissionImage[];\n}"
1799
+ declaration: "export interface PendingSubmission {\n readonly requestId: SessionRequestId;\n readonly placement: PendingSubmissionPlacement;\n readonly time: number;\n readonly text: string;\n readonly images: readonly PendingSubmissionImage[];\n}"
1788
1800
  },
1789
1801
  {
1790
1802
  name: "PendingSubmissionImage",
1791
1803
  declaration: "export interface PendingSubmissionImage {\n readonly previewUrl: string;\n readonly name?: string;\n readonly width?: number;\n readonly height?: number;\n}"
1792
1804
  },
1805
+ {
1806
+ name: "PendingSubmissionPlacement",
1807
+ declaration: "export type PendingSubmissionPlacement = 'transcript' | 'queued' | 'steering';"
1808
+ },
1793
1809
  {
1794
1810
  name: "PendingSubmissionRetirement",
1795
1811
  declaration: "export type PendingSubmissionRetirement = {\n readonly reason: 'observed';\n readonly attachments: readonly ImageAttachmentRef[];\n} | {\n readonly reason: 'failed';\n};"
@@ -1810,6 +1826,10 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
1810
1826
  name: "PropsHooks",
1811
1827
  declaration: "export type PropsHooks<HS extends HooksSources> = {\n [N in keyof HS & string as `use${Capitalize<N>}`]: SnapshotSelectorHook<HS[N] extends HostObservable<infer T> ? T : never>;\n};"
1812
1828
  },
1829
+ {
1830
+ name: "PropsKeyedHooks",
1831
+ declaration: "export type PropsKeyedHooks<HS extends KeyedHooksSources> = {\n [N in keyof HS & string as `use${Capitalize<N>}`]: KeyedSnapshotSelectorHook<HS[N] extends (key: string) => HostObservable<infer T> | undefined ? T : never>;\n};"
1832
+ },
1813
1833
  {
1814
1834
  name: "PropsLocale",
1815
1835
  declaration: "export type PropsLocale<N> = N extends keyof LocaleNamespaceMap & string ? {\n t: TranslateNS<N>;\n} : object;"
@@ -2224,7 +2244,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2224
2244
  occupants: ["client-ui-message-feedback MessageFeedbackActions id 'feedback'"],
2225
2245
  replaceRisk: "none",
2226
2246
  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}",
2227
- source: "packages/client/ui-chat/src/client/contract/slots.ts:202"
2247
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:221"
2228
2248
  },
2229
2249
  {
2230
2250
  key: "conversation.chat.commandview",
@@ -2265,7 +2285,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2265
2285
  occupants: [],
2266
2286
  replaceRisk: "none",
2267
2287
  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}",
2268
- source: "packages/client/ui-chat/src/client/contract/slots.ts:190"
2288
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:209"
2269
2289
  },
2270
2290
  {
2271
2291
  key: "conversation.chat.node",
@@ -2301,7 +2321,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2301
2321
  "useTrajectory: UseTrajectory"
2302
2322
  ],
2303
2323
  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, steering, system-prompt, tool-call, turn-error, turn-max-tokens, turn-process, turn-tail, unknown, user, workflow-run",
2304
- hookContext: "string",
2324
+ hookContext: "ConversationLocationDataStore<ConversationTurnDataMap> | undefined",
2305
2325
  slotInject: "ChatNodeTurnDataInjected",
2306
2326
  declaredBy: "an entry in 'conversation.view' (client-ui-chat), so it exists while that entry is mounted",
2307
2327
  occupants: [
@@ -2325,7 +2345,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2325
2345
  ],
2326
2346
  replaceRisk: "shadows-shipped-ui",
2327
2347
  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}",
2328
- source: "packages/client/ui-chat/src/client/contract/slots.ts:171"
2348
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:190"
2329
2349
  },
2330
2350
  {
2331
2351
  key: "conversation.chat.turnTail",
@@ -2362,7 +2382,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2362
2382
  occupants: ["client-ui-deliverables ProducedFiles"],
2363
2383
  replaceRisk: "none",
2364
2384
  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}",
2365
- source: "packages/client/ui-chat/src/client/contract/slots.ts:196"
2385
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:215"
2366
2386
  },
2367
2387
  {
2368
2388
  key: "conversation.composer",
@@ -2416,7 +2436,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2416
2436
  summary: "Resident composer body, including the no-Session inert state.",
2417
2437
  doc: "Resident composer body, including the no-Session inert state.",
2418
2438
  registerOptions: [],
2419
- 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 /** Floating overlay content rendered inside the composer card. */\n overlay?: ReactNode\n /** Left-side input controls. */\n leftItems?: ReactNode\n /** Right-side input controls. */\n rightItems?: ReactNode\n /** Ambient content below the card. */\n footer?: ReactNode\n}"],
2439
+ 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}"],
2420
2440
  ownerPropsReferences: ["Workspace"],
2421
2441
  standardProps: [
2422
2442
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
@@ -2465,8 +2485,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2465
2485
  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."
2466
2486
  }
2467
2487
  ],
2468
- ownerProps: ["/** Point-in-time owner values for composer extension entries. */\nexport interface InputZone {\n readonly session: SessionSnapshot\n readonly input: InputState\n}"],
2469
- ownerPropsReferences: ["InputState", "SessionSnapshot"],
2488
+ ownerProps: [],
2489
+ ownerPropsReferences: [],
2470
2490
  standardProps: [
2471
2491
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2472
2492
  "useSessions: UseSessions",
@@ -2484,7 +2504,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2484
2504
  keyDomain: "",
2485
2505
  hookContext: "",
2486
2506
  slotInject: "",
2487
- declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted",
2507
+ declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
2488
2508
  occupants: ["client-ui-chat StatsLine id 'stats'"],
2489
2509
  replaceRisk: "none",
2490
2510
  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}",
@@ -2520,7 +2540,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2520
2540
  occupants: ["client-ui-tool ToolDetails"],
2521
2541
  replaceRisk: "shadows-shipped-ui",
2522
2542
  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}",
2523
- source: "packages/client/ui-chat/src/client/contract/slots.ts:208"
2543
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:227"
2524
2544
  },
2525
2545
  {
2526
2546
  key: "conversation.hero.agentPreset",
@@ -2729,8 +2749,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2729
2749
  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."
2730
2750
  }
2731
2751
  ],
2732
- ownerProps: ["/** Point-in-time owner values for composer extension entries. */\nexport interface InputZone {\n readonly session: SessionSnapshot\n readonly input: InputState\n}"],
2733
- ownerPropsReferences: ["InputState", "SessionSnapshot"],
2752
+ ownerProps: [],
2753
+ ownerPropsReferences: [],
2734
2754
  standardProps: [
2735
2755
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2736
2756
  "useSessions: UseSessions",
@@ -2748,7 +2768,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2748
2768
  keyDomain: "",
2749
2769
  hookContext: "",
2750
2770
  slotInject: "",
2751
- declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted",
2771
+ declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
2752
2772
  occupants: [],
2753
2773
  replaceRisk: "none",
2754
2774
  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}",
@@ -2831,7 +2851,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2831
2851
  keyDomain: "",
2832
2852
  hookContext: "",
2833
2853
  slotInject: "",
2834
- declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted",
2854
+ declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
2835
2855
  occupants: ["client-ui-commands PopupSelectView id 'command-popup'", "client-ui-input-trigger MenuView id 'slash-menu'"],
2836
2856
  replaceRisk: "none",
2837
2857
  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}",
@@ -2895,8 +2915,8 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2895
2915
  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."
2896
2916
  }
2897
2917
  ],
2898
- ownerProps: ["/** Point-in-time owner values for composer extension entries. */\nexport interface InputZone {\n readonly session: SessionSnapshot\n readonly input: InputState\n}"],
2899
- ownerPropsReferences: ["InputState", "SessionSnapshot"],
2918
+ ownerProps: [],
2919
+ ownerPropsReferences: [],
2900
2920
  standardProps: [
2901
2921
  "useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>",
2902
2922
  "useSessions: UseSessions",
@@ -2914,7 +2934,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2914
2934
  keyDomain: "",
2915
2935
  hookContext: "",
2916
2936
  slotInject: "",
2917
- declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted",
2937
+ declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted",
2918
2938
  occupants: [],
2919
2939
  replaceRisk: "none",
2920
2940
  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}",
@@ -2954,7 +2974,7 @@ call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Obj
2954
2974
  occupants: ["client-ui-attachment MessageImages"],
2955
2975
  replaceRisk: "shadows-shipped-ui",
2956
2976
  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}",
2957
- source: "packages/client/ui-chat/src/client/contract/slots.ts:184"
2977
+ source: "packages/client/ui-chat/src/client/contract/slots.ts:203"
2958
2978
  },
2959
2979
  {
2960
2980
  key: "conversation.session",
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.2-alpha.2",
4
+ "version": "0.1.2-alpha.4",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -18,10 +18,6 @@
18
18
  "types": "./lib/types/index.d.ts",
19
19
  "default": "./lib/index.js"
20
20
  },
21
- "./invariant": {
22
- "types": "./lib/types/invariant.d.ts",
23
- "default": "./lib/invariant.js"
24
- },
25
21
  "./client": {
26
22
  "types": "./lib/types/client/index.d.ts",
27
23
  "default": "./lib/client.js"
@@ -48,17 +44,15 @@
48
44
  "@types/react": "~18.3.1",
49
45
  "react": "^18.2.0",
50
46
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
51
- "@deepseek-ai/dsh-client-modules": "^0.1.2-alpha.2",
52
- "@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.2",
53
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.2",
54
- "@deepseek-ai/dsh-invariants": "^0.1.2-alpha.2",
55
- "@deepseek-ai/dsh-client-ui-theme": "^0.1.2-alpha.2",
56
- "@deepseek-ai/cordis": "^4.0.2",
57
- "@deepseek-ai/dsh-util-values": "^0.1.2-alpha.2"
47
+ "@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.4",
48
+ "@deepseek-ai/dsh-client-modules": "^0.1.2-alpha.4",
49
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.4",
50
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.2-alpha.4",
51
+ "@deepseek-ai/dsh-util-values": "^0.1.2-alpha.4",
52
+ "@deepseek-ai/cordis": "^4.0.2"
58
53
  },
59
54
  "files": [
60
55
  "lib/index.js",
61
- "lib/invariant.js",
62
56
  "lib/client.js",
63
57
  "lib/types/**/*.d.ts"
64
58
  ],
package/lib/invariant.js DELETED
@@ -1,26 +0,0 @@
1
- //#region lib/types/invariant.js
2
- /**
3
- * Package-owned invariant companion for `@deepseek-ai/dsh-cordis-client-runner`.
4
- * @module @deepseek-ai/dsh-cordis-client-runner/invariant
5
- */
6
- const PACKAGE_NAME = "@deepseek-ai/dsh-cordis-client-runner";
7
- /** Cordis companion plugin name. */
8
- const name = "cordis-client-runner-invariant";
9
- /** Service required before the companion can reserve package ownership. */
10
- const inject = ["invariants"];
11
- /**
12
- * No runtime invariant: the owned relation (a live
13
- * Plugin's loader entry exists exactly while one Plugin Run ID is live) is
14
- * browser-only state reachable through the client half's service, which the
15
- * node-plane companion cannot observe. The relation is asserted by the
16
- * package's own load/teardown coverage instead.
17
- */
18
- const install = () => {};
19
- /**
20
- * Register this package's invariant companion.
21
- * @param ctx - Cordis context carrying the invariant service.
22
- * @returns the installed registration's disposer after setup succeeds.
23
- */
24
- const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
25
- //#endregion
26
- export { apply, inject, name };
@@ -1,16 +0,0 @@
1
- /**
2
- * Package-owned invariant companion for `@deepseek-ai/dsh-cordis-client-runner`.
3
- * @module @deepseek-ai/dsh-cordis-client-runner/invariant
4
- */
5
- import type { Context } from '@deepseek-ai/cordis';
6
- /** Cordis companion plugin name. */
7
- export declare const name = "cordis-client-runner-invariant";
8
- /** Service required before the companion can reserve package ownership. */
9
- export declare const inject: string[];
10
- /**
11
- * Register this package's invariant companion.
12
- * @param ctx - Cordis context carrying the invariant service.
13
- * @returns the installed registration's disposer after setup succeeds.
14
- */
15
- export declare const apply: (ctx: Context) => Promise<() => void>;
16
- //# sourceMappingURL=invariant.d.ts.map