@senguoyun/dsh-arkme 0.1.31 → 0.1.33

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 (136) hide show
  1. package/README.md +24 -0
  2. package/lib/client.js +2459 -2307
  3. package/lib/client.js.map +1 -1
  4. package/lib/extension-profile-restart-helper.js +17 -5
  5. package/lib/index.js +3911 -104
  6. package/lib/persistent-extension.js +1 -1
  7. package/lib/{persistent-runtime-BJ8konXI.js → persistent-runtime-DUqdJv8K.js} +30114 -768
  8. package/lib/sdk.js +38 -0
  9. package/lib/types/arkme-service.d.ts +25 -10
  10. package/lib/types/arkme-service.d.ts.map +1 -1
  11. package/lib/types/client/ArkmeBillingSettings.d.ts.map +1 -1
  12. package/lib/types/client/ArkmeBotConversationSurface.d.ts.map +1 -1
  13. package/lib/types/client/ArkmeBotSettingsPanel.d.ts.map +1 -1
  14. package/lib/types/client/ArkmeExtensionRecoveryNotice.d.ts +9 -0
  15. package/lib/types/client/ArkmeExtensionRecoveryNotice.d.ts.map +1 -0
  16. package/lib/types/client/ArkmeFooterAction.d.ts +1 -7
  17. package/lib/types/client/ArkmeFooterAction.d.ts.map +1 -1
  18. package/lib/types/client/ArkmeFooterDropdown.d.ts.map +1 -1
  19. package/lib/types/client/ArkmeGroupChatControls.d.ts +17 -1
  20. package/lib/types/client/ArkmeGroupChatControls.d.ts.map +1 -1
  21. package/lib/types/client/ArkmeLinkText.d.ts +13 -0
  22. package/lib/types/client/ArkmeLinkText.d.ts.map +1 -0
  23. package/lib/types/client/ArkmeLongArticleDialog.d.ts.map +1 -1
  24. package/lib/types/client/ArkmeMarketplace.d.ts +2 -1
  25. package/lib/types/client/ArkmeMarketplace.d.ts.map +1 -1
  26. package/lib/types/client/ArkmePersistentShell.d.ts.map +1 -1
  27. package/lib/types/client/ArkmeProductNavigation.d.ts.map +1 -1
  28. package/lib/types/client/ArkmeQuickAdd.d.ts.map +1 -1
  29. package/lib/types/client/ArkmeRichContent.d.ts +4 -21
  30. package/lib/types/client/ArkmeRichContent.d.ts.map +1 -1
  31. package/lib/types/client/ArkmeRichText.d.ts +12 -0
  32. package/lib/types/client/ArkmeRichText.d.ts.map +1 -0
  33. package/lib/types/client/ArkmeSearchSurface.d.ts.map +1 -1
  34. package/lib/types/client/ArkmeSettingsSurface.d.ts +4 -19
  35. package/lib/types/client/ArkmeSettingsSurface.d.ts.map +1 -1
  36. package/lib/types/client/ArkmeSidebar.d.ts.map +1 -1
  37. package/lib/types/client/ArkmeUpdateSurfaces.d.ts +38 -5
  38. package/lib/types/client/ArkmeUpdateSurfaces.d.ts.map +1 -1
  39. package/lib/types/client/ArkmeVirtualWorkspace.d.ts.map +1 -1
  40. package/lib/types/client/api.d.ts +1 -1
  41. package/lib/types/client/api.d.ts.map +1 -1
  42. package/lib/types/client/bot-chat-directory-projection.d.ts +7 -0
  43. package/lib/types/client/bot-chat-directory-projection.d.ts.map +1 -0
  44. package/lib/types/client/desktop-quarantine-status.d.ts +3 -0
  45. package/lib/types/client/desktop-quarantine-status.d.ts.map +1 -0
  46. package/lib/types/client/index.d.ts +0 -2
  47. package/lib/types/client/index.d.ts.map +1 -1
  48. package/lib/types/client/link-metadata-client.d.ts +20 -0
  49. package/lib/types/client/link-metadata-client.d.ts.map +1 -0
  50. package/lib/types/client/realtime-client-events.d.ts +4 -1
  51. package/lib/types/client/realtime-client-events.d.ts.map +1 -1
  52. package/lib/types/client/redesign/contacts/AlphabeticalContactList.d.ts +3 -3
  53. package/lib/types/client/redesign/contacts/AlphabeticalContactList.d.ts.map +1 -1
  54. package/lib/types/client/redesign/contacts/ContactDirectorySurface.d.ts +3 -3
  55. package/lib/types/client/redesign/contacts/ContactDirectorySurface.d.ts.map +1 -1
  56. package/lib/types/client/related-recordings.d.ts +3 -0
  57. package/lib/types/client/related-recordings.d.ts.map +1 -1
  58. package/lib/types/client/text-link-parser.d.ts +10 -0
  59. package/lib/types/client/text-link-parser.d.ts.map +1 -0
  60. package/lib/types/client/text-link-tlds.d.ts +2 -0
  61. package/lib/types/client/text-link-tlds.d.ts.map +1 -0
  62. package/lib/types/client/ui-controller.d.ts.map +1 -1
  63. package/lib/types/client/update-presentation.d.ts +1 -1
  64. package/lib/types/client/update-presentation.d.ts.map +1 -1
  65. package/lib/types/client/update-ui-controller.d.ts +1 -1
  66. package/lib/types/client/update-ui-controller.d.ts.map +1 -1
  67. package/lib/types/dsh-host-capabilities.d.ts +10 -0
  68. package/lib/types/dsh-host-capabilities.d.ts.map +1 -0
  69. package/lib/types/dsh-remote/api-proxy-adapter.d.ts +250 -0
  70. package/lib/types/dsh-remote/api-proxy-adapter.d.ts.map +1 -0
  71. package/lib/types/dsh-remote/channel-manager.d.ts +45 -0
  72. package/lib/types/dsh-remote/channel-manager.d.ts.map +1 -0
  73. package/lib/types/dsh-remote/command-ledger.d.ts +60 -0
  74. package/lib/types/dsh-remote/command-ledger.d.ts.map +1 -0
  75. package/lib/types/dsh-remote/control-plane.d.ts +17 -0
  76. package/lib/types/dsh-remote/control-plane.d.ts.map +1 -0
  77. package/lib/types/dsh-remote/crypto.d.ts +11 -0
  78. package/lib/types/dsh-remote/crypto.d.ts.map +1 -0
  79. package/lib/types/dsh-remote/default-socket-factory.d.ts +8 -0
  80. package/lib/types/dsh-remote/default-socket-factory.d.ts.map +1 -0
  81. package/lib/types/dsh-remote/dsh-event-contract.d.ts +29 -0
  82. package/lib/types/dsh-remote/dsh-event-contract.d.ts.map +1 -0
  83. package/lib/types/dsh-remote/errors.d.ts +9 -0
  84. package/lib/types/dsh-remote/errors.d.ts.map +1 -0
  85. package/lib/types/dsh-remote/host.d.ts +85 -0
  86. package/lib/types/dsh-remote/host.d.ts.map +1 -0
  87. package/lib/types/dsh-remote/protocol-v1.d.ts +6 -0
  88. package/lib/types/dsh-remote/protocol-v1.d.ts.map +1 -0
  89. package/lib/types/dsh-remote/realtime-transport.d.ts +84 -0
  90. package/lib/types/dsh-remote/realtime-transport.d.ts.map +1 -0
  91. package/lib/types/dsh-remote/runtime-secret-broker.d.ts +28 -0
  92. package/lib/types/dsh-remote/runtime-secret-broker.d.ts.map +1 -0
  93. package/lib/types/dsh-remote/runtime-store.d.ts +39 -0
  94. package/lib/types/dsh-remote/runtime-store.d.ts.map +1 -0
  95. package/lib/types/dsh-remote/transport-fragment.d.ts +10 -0
  96. package/lib/types/dsh-remote/transport-fragment.d.ts.map +1 -0
  97. package/lib/types/dsh-remote/types.d.ts +164 -0
  98. package/lib/types/dsh-remote/types.d.ts.map +1 -0
  99. package/lib/types/extensions/desktop-quarantine.d.ts +79 -0
  100. package/lib/types/extensions/desktop-quarantine.d.ts.map +1 -0
  101. package/lib/types/extensions/profile-installer.d.ts +5 -0
  102. package/lib/types/extensions/profile-installer.d.ts.map +1 -1
  103. package/lib/types/extensions/profile-restart-helper.d.ts +3 -1
  104. package/lib/types/extensions/profile-restart-helper.d.ts.map +1 -1
  105. package/lib/types/harness-embed-route.d.ts +11 -1
  106. package/lib/types/harness-embed-route.d.ts.map +1 -1
  107. package/lib/types/host-api.d.ts +5 -1
  108. package/lib/types/host-api.d.ts.map +1 -1
  109. package/lib/types/index.d.ts +15 -0
  110. package/lib/types/index.d.ts.map +1 -1
  111. package/lib/types/keychain-store.d.ts +33 -0
  112. package/lib/types/keychain-store.d.ts.map +1 -1
  113. package/lib/types/link-metadata.d.ts +9 -0
  114. package/lib/types/link-metadata.d.ts.map +1 -0
  115. package/lib/types/managed-ai/adapter.d.ts +2 -0
  116. package/lib/types/managed-ai/adapter.d.ts.map +1 -1
  117. package/lib/types/sdk/index.d.ts +9 -2
  118. package/lib/types/sdk/index.d.ts.map +1 -1
  119. package/lib/types/services/bot-conversation-service.d.ts +59 -0
  120. package/lib/types/services/bot-conversation-service.d.ts.map +1 -0
  121. package/lib/types/services/bot-service.d.ts +11 -29
  122. package/lib/types/services/bot-service.d.ts.map +1 -1
  123. package/lib/types/services/chat-service.d.ts +30 -5
  124. package/lib/types/services/chat-service.d.ts.map +1 -1
  125. package/lib/types/services/contact-directory-service.d.ts.map +1 -1
  126. package/lib/types/services/link-metadata-service.d.ts +73 -0
  127. package/lib/types/services/link-metadata-service.d.ts.map +1 -0
  128. package/lib/types/services/related-recording-service.d.ts +1 -0
  129. package/lib/types/services/related-recording-service.d.ts.map +1 -1
  130. package/lib/types/services/service.d.ts +4 -2
  131. package/lib/types/services/service.d.ts.map +1 -1
  132. package/lib/types/tools/ports/bots.d.ts +1 -1
  133. package/lib/types/tools/ports/bots.d.ts.map +1 -1
  134. package/lib/types/types.d.ts +55 -21
  135. package/lib/types/types.d.ts.map +1 -1
  136. package/package.json +24 -23
@@ -0,0 +1,84 @@
1
+ import type { DshRemoteCapability, DshRemotePublishDirection, DshRemoteRealtimePayload, DshRemoteRealtimeTransport, DshRemoteRuntimeTarget, DshRemoteTrustedEventMetadata } from './types.js';
2
+ interface SocketEventLike {
3
+ data?: unknown;
4
+ }
5
+ export interface DshRemoteSocketLike {
6
+ readonly readyState: number;
7
+ send(data: string): void;
8
+ close(code?: number, reason?: string): void;
9
+ addEventListener(type: 'open' | 'message' | 'error' | 'close', listener: (event: SocketEventLike) => void): void;
10
+ removeEventListener(type: 'open' | 'message' | 'error' | 'close', listener: (event: SocketEventLike) => void): void;
11
+ }
12
+ export type DshRemoteSocketFactory = (input: {
13
+ profileRef: string;
14
+ clientRef: string;
15
+ signal: AbortSignal;
16
+ }) => DshRemoteSocketLike | Promise<DshRemoteSocketLike>;
17
+ export interface DshRemoteFrameSizingInput {
18
+ target: DshRemoteRuntimeTarget;
19
+ commandId: string;
20
+ direction: DshRemotePublishDirection;
21
+ payload: DshRemoteRealtimePayload;
22
+ senderRole: 'host' | 'controller';
23
+ }
24
+ /**
25
+ * Mirrors jotmo-realtime's login-only channel.publish and channel.event
26
+ * wrappers. Max-width sequence/timestamp values keep the check conservative.
27
+ */
28
+ export declare function dshRemoteFrameByteLengths(input: DshRemoteFrameSizingInput): {
29
+ publish: number;
30
+ event: number;
31
+ };
32
+ export declare function assertDshRemoteFramesFit(input: DshRemoteFrameSizingInput): void;
33
+ /** Exact adapter for jotmo-realtime's login-only DSH Remote contract. */
34
+ export declare class ArkmeRemoteRealtimeTransport implements DshRemoteRealtimeTransport {
35
+ private readonly createSocket;
36
+ private readonly requestTimeoutMillis;
37
+ private socket;
38
+ private connectionGeneration;
39
+ private serviceLeaseGeneration;
40
+ private readonly waiters;
41
+ private readonly channelListeners;
42
+ private readonly disconnectListeners;
43
+ private onMessage;
44
+ private onClose;
45
+ constructor(createSocket: DshRemoteSocketFactory, requestTimeoutMillis?: number);
46
+ connect(input: {
47
+ profileRef: string;
48
+ clientRef: string;
49
+ signal: AbortSignal;
50
+ }): Promise<void>;
51
+ disconnect(): Promise<void>;
52
+ subscribeDisconnect(listener: (error: Error) => void): () => void;
53
+ registerHost(input: {
54
+ runtimeRef: string;
55
+ capabilities: DshRemoteCapability[];
56
+ signal: AbortSignal;
57
+ }): Promise<{
58
+ serviceLeaseGeneration: number;
59
+ }>;
60
+ unregisterHost(signal?: AbortSignal): Promise<void>;
61
+ subscribe(input: {
62
+ target: DshRemoteRuntimeTarget;
63
+ afterSequence?: number;
64
+ onEvent: (payload: DshRemoteRealtimePayload, metadata: DshRemoteTrustedEventMetadata) => void;
65
+ signal: AbortSignal;
66
+ }): Promise<() => void>;
67
+ publish(input: {
68
+ target: DshRemoteRuntimeTarget;
69
+ commandId: string;
70
+ direction: DshRemotePublishDirection;
71
+ payload: DshRemoteRealtimePayload;
72
+ signal: AbortSignal;
73
+ }): Promise<{
74
+ sequence: number;
75
+ }>;
76
+ private request;
77
+ private waitForRequest;
78
+ private waitForType;
79
+ private receive;
80
+ private failConnection;
81
+ private send;
82
+ }
83
+ export {};
84
+ //# sourceMappingURL=realtime-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-transport.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/realtime-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,YAAY,CAAA;AAGnB,UAAU,eAAe;IAAG,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAC5C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAA;IAChH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAA;CACpH;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,KAClE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAOvD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,yBAAyB,CAAA;IACpC,OAAO,EAAE,wBAAwB,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAA;CAClC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsB9G;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI,CAU/E;AAsED,yEAAyE;AACzE,qBAAa,4BAA6B,YAAW,0BAA0B;IAW3E,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAXvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,oBAAoB,CAAI;IAChC,OAAO,CAAC,sBAAsB,CAAI;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+F;IACvH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkD;IACnF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IACxE,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,OAAO,CAAgD;gBAG5C,YAAY,EAAE,sBAAsB,EACpC,oBAAoB,SAAS;IAO1C,OAAO,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC7F,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI;IAK3D,YAAY,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAC;IAYlJ,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD,SAAS,CAAC,KAAK,EAAE;QACrB,MAAM,EAAE,sBAAsB,CAAA;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,6BAA6B,KAAK,IAAI,CAAA;QAC7F,MAAM,EAAE,WAAW,CAAA;KACpB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgDjB,OAAO,CAAC,KAAK,EAAE;QACnB,MAAM,EAAE,sBAAsB,CAAA;QAC9B,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,yBAAyB,CAAA;QACpC,OAAO,EAAE,wBAAwB,CAAA;QACjC,MAAM,EAAE,WAAW,CAAA;KACpB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;YAgBnB,OAAO;IAOrB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,IAAI;CAMb"}
@@ -0,0 +1,28 @@
1
+ import type { ArkmeSecureValueStore } from '../keychain-store.js';
2
+ /**
3
+ * Stores only the local command-ledger encryption key and replay cursor.
4
+ * These values protect local recovery data; they are not remote authority.
5
+ */
6
+ export declare class DshRemoteRuntimeSecretBroker {
7
+ private readonly store;
8
+ private readonly inFlight;
9
+ private readonly cursorWrites;
10
+ constructor(store: ArkmeSecureValueStore);
11
+ ledgerKey(accountId: string): Promise<Buffer>;
12
+ runtimeCursor(input: {
13
+ accountId: string;
14
+ runtimeRef: string;
15
+ channelRef: string;
16
+ }): Promise<number>;
17
+ putRuntimeCursor(input: {
18
+ accountId: string;
19
+ runtimeRef: string;
20
+ channelRef: string;
21
+ lastTransportSequence: number;
22
+ }): Promise<void>;
23
+ private secrets;
24
+ private loadOrCreate;
25
+ private parseCursor;
26
+ private cursorKey;
27
+ }
28
+ //# sourceMappingURL=runtime-secret-broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-secret-broker.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/runtime-secret-broker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAgDjE;;;GAGG;AACH,qBAAa,4BAA4B;IAI3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsD;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;gBAEnC,KAAK,EAAE,qBAAqB;IAEnD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,aAAa,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASpG,gBAAgB,CAAC,KAAK,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,qBAAqB,EAAE,MAAM,CAAA;KAC9B,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBH,OAAO;YAaP,YAAY;IAiB1B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,SAAS;CAUlB"}
@@ -0,0 +1,39 @@
1
+ import type { DshRemoteCapability, DshRemoteRuntimeProjection } from './types.js';
2
+ export interface DshRemoteProjectionInventory {
3
+ workspaceRefs: string[];
4
+ sessions: Array<{
5
+ sessionRef: string;
6
+ workspaceRef: string;
7
+ sourceUpdatedAt: number;
8
+ }>;
9
+ }
10
+ export declare class DshRemoteRuntimeStore {
11
+ private readonly path;
12
+ private state;
13
+ private queue;
14
+ constructor(directory: string);
15
+ activateRuntime(input: {
16
+ accountId: string;
17
+ profileRef: string;
18
+ capabilities: DshRemoteCapability[];
19
+ nowMillis?: number;
20
+ }): Promise<DshRemoteRuntimeProjection>;
21
+ adoptRuntimeRef(accountId: string, profileRef: string, runtimeRef: string, hostGeneration?: number): Promise<DshRemoteRuntimeProjection>;
22
+ bindDesktop(accountId: string, input: {
23
+ desktopRef: string;
24
+ }): Promise<void>;
25
+ renameDesktop(accountId: string, displayName: string): Promise<void>;
26
+ account(accountId: string): Promise<{
27
+ displayName?: string;
28
+ desktopRef?: string;
29
+ runtimes: DshRemoteRuntimeProjection[];
30
+ }>;
31
+ projectionInventory(accountId: string, profileRef: string): Promise<DshRemoteProjectionInventory>;
32
+ saveProjectionInventory(accountId: string, profileRef: string, inventory: DshRemoteProjectionInventory): Promise<void>;
33
+ private read;
34
+ private update;
35
+ private serial;
36
+ private load;
37
+ private persist;
38
+ }
39
+ //# sourceMappingURL=runtime-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-store.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/runtime-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAWjF,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,KAAK,CAAC;QACd,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAC,CAAA;CACH;AAeD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAAmC;gBAEpC,SAAS,EAAE,MAAM;IAIvB,eAAe,CAAC,KAAK,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,mBAAmB,EAAE,CAAA;QACnC,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAuBjC,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,0BAA0B,CAAC;IA4BhC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACxC,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,0BAA0B,EAAE,CAAA;KACvC,CAAC;IAWI,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,CAAC;IAYlC,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,4BAA4B,GACtC,OAAO,CAAC,IAAI,CAAC;YAaF,IAAI;YAMJ,MAAM;YAQN,MAAM;YAMN,IAAI;YAwEJ,OAAO;CAWtB"}
@@ -0,0 +1,10 @@
1
+ export interface DshRemoteOutboundPlaintext {
2
+ value: unknown;
3
+ fragmentIndex?: number;
4
+ commandId?: string;
5
+ }
6
+ /**
7
+ * Splits a large typed payload into independently bounded Realtime events.
8
+ */
9
+ export declare function dshRemoteOutboundPayloads(envelope: unknown, transferSeed: string): DshRemoteOutboundPlaintext[];
10
+ //# sourceMappingURL=transport-fragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-fragment.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/transport-fragment.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,MAAM,GACnB,0BAA0B,EAAE,CAoC9B"}
@@ -0,0 +1,164 @@
1
+ export declare const DSH_REMOTE_PROTOCOL: "dsh.remote";
2
+ export declare const DSH_REMOTE_PROTOCOL_MAJOR: 1;
3
+ export declare const DSH_REMOTE_MAX_FRAME_BYTES: number;
4
+ export declare const DSH_REMOTE_MAX_PAGE_ITEMS = 50;
5
+ export declare const DSH_REMOTE_MAX_SNAPSHOT_BYTES: number;
6
+ export declare const DSH_REMOTE_MAX_PAGE_RESULT_BYTES: number;
7
+ export declare const DSH_REMOTE_MAX_TEXT_CODE_POINTS = 20000;
8
+ export type DshRemoteCapability = 'workspace.list' | 'session.list' | 'session.create' | 'session.history' | 'session.prompt' | 'session.prompt.queue' | 'session.prompt.steer' | 'session.cancel' | 'session.events' | 'interaction.question.respond' | 'interaction.approval.respond';
9
+ export type DshRemoteOperation = 'capabilities.get' | 'snapshot.get' | 'workspace.list' | 'session.list' | 'session.create' | 'session.history' | 'session.prompt' | 'session.cancel' | 'interaction.question.respond' | 'interaction.approval.respond';
10
+ export type DshRemoteRequestKind = 'request';
11
+ export type DshRemoteResponseStatus = 'accepted' | 'completed' | 'rejected' | 'duplicate';
12
+ export interface DshRemoteRequest {
13
+ protocol: typeof DSH_REMOTE_PROTOCOL;
14
+ protocol_major: typeof DSH_REMOTE_PROTOCOL_MAJOR;
15
+ kind: DshRemoteRequestKind;
16
+ request_ref: string;
17
+ host_generation: number;
18
+ issued_at: number;
19
+ execute_before: number;
20
+ operation: DshRemoteOperation;
21
+ body: Record<string, unknown>;
22
+ }
23
+ export interface DshRemoteResponse {
24
+ protocol: typeof DSH_REMOTE_PROTOCOL;
25
+ protocol_major: typeof DSH_REMOTE_PROTOCOL_MAJOR;
26
+ kind: 'response';
27
+ request_ref: string;
28
+ status: DshRemoteResponseStatus;
29
+ host_generation: number;
30
+ issued_at: number;
31
+ operation: DshRemoteOperation;
32
+ body: Record<string, unknown>;
33
+ session_seq?: number;
34
+ projection_as_of_seq?: number;
35
+ result?: unknown;
36
+ error?: {
37
+ code: string;
38
+ message: string;
39
+ retryable: boolean;
40
+ trace_ref: string;
41
+ };
42
+ }
43
+ export interface DshRemoteRuntimeProjection {
44
+ runtimeRef: string;
45
+ desktopRef?: string;
46
+ profileRef: string;
47
+ accountId: string;
48
+ hostGeneration: number;
49
+ capabilities: DshRemoteCapability[];
50
+ updatedAtMillis: number;
51
+ }
52
+ export interface DshRemoteStatus {
53
+ contractVersion: 1;
54
+ available: boolean;
55
+ enabled: boolean;
56
+ connected: boolean;
57
+ accountId?: string;
58
+ desktopRef?: string;
59
+ runtimeRef?: string;
60
+ hostGeneration: number;
61
+ capabilities: DshRemoteCapability[];
62
+ unavailableReason?: string;
63
+ revision: number;
64
+ }
65
+ export interface DshRemoteTrustedEventMetadata {
66
+ senderRole: 'host' | 'controller';
67
+ runtimeRef: string;
68
+ acceptedAtMillis: number;
69
+ targetHostLeaseGeneration: number;
70
+ transportSequence?: number;
71
+ }
72
+ export type DshRemoteRealtimePayload = Record<string, unknown>;
73
+ export type DshRemotePublishDirection = 'request' | 'response' | 'snapshot' | 'event';
74
+ export interface DshRemoteRuntimeTarget {
75
+ runtimeRef: string;
76
+ hostProfileRef: string;
77
+ hostClientRef: string;
78
+ hostLeaseGeneration: number;
79
+ }
80
+ export interface DshRemoteControlPlane {
81
+ registerDesktop(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
82
+ registerRuntime(desktopRef: string, input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
83
+ syncWorkspaces(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
84
+ syncSessions(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
85
+ appendSessionEvents(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
86
+ }
87
+ export interface DshRemoteRealtimeTransport {
88
+ subscribeDisconnect(listener: (error: Error) => void): () => void;
89
+ connect(input: {
90
+ profileRef: string;
91
+ clientRef: string;
92
+ signal: AbortSignal;
93
+ }): Promise<void>;
94
+ disconnect(): Promise<void>;
95
+ registerHost(input: {
96
+ runtimeRef: string;
97
+ capabilities: DshRemoteCapability[];
98
+ signal: AbortSignal;
99
+ }): Promise<{
100
+ serviceLeaseGeneration: number;
101
+ }>;
102
+ unregisterHost(signal?: AbortSignal): Promise<void>;
103
+ subscribe(input: {
104
+ target: DshRemoteRuntimeTarget;
105
+ afterSequence?: number;
106
+ onEvent: (payload: DshRemoteRealtimePayload, metadata: DshRemoteTrustedEventMetadata) => void;
107
+ signal: AbortSignal;
108
+ }): Promise<() => void>;
109
+ publish(input: {
110
+ target: DshRemoteRuntimeTarget;
111
+ commandId: string;
112
+ direction: DshRemotePublishDirection;
113
+ payload: DshRemoteRealtimePayload;
114
+ signal: AbortSignal;
115
+ }): Promise<{
116
+ sequence: number;
117
+ }>;
118
+ }
119
+ export interface DshRemoteWorkspaceView {
120
+ workspaceId: string;
121
+ title: string;
122
+ path: string;
123
+ available: boolean;
124
+ sessionIds: string[];
125
+ }
126
+ export interface DshRemoteSessionSummary {
127
+ sessionId: string;
128
+ workspaceId: string;
129
+ title?: string;
130
+ updatedAt: number;
131
+ running: boolean;
132
+ blank: boolean;
133
+ projectionAsOfSeq?: number;
134
+ }
135
+ export interface DshRemoteSnapshot {
136
+ projectionAsOfMillis: number;
137
+ workspaces: DshRemoteWorkspaceView[];
138
+ sessions: DshRemoteSessionSummary[];
139
+ pendingInteractions: DshRemotePendingInteraction[];
140
+ nextCursor?: string;
141
+ }
142
+ export type DshRemotePendingInteraction = {
143
+ kind: 'question';
144
+ interactionRpcRef: string;
145
+ sessionId: string;
146
+ questions: unknown[];
147
+ } | {
148
+ kind: 'approval';
149
+ interactionRpcRef: string;
150
+ sessionId: string;
151
+ approvalId: string;
152
+ toolName: string;
153
+ reason?: string;
154
+ canAllowOnce: boolean;
155
+ operationSummary?: string;
156
+ };
157
+ export interface DshRemoteHostFacade {
158
+ start(): Promise<void>;
159
+ stop(): Promise<void>;
160
+ getStatus(): DshRemoteStatus;
161
+ renameDesktop(displayName: string): Promise<DshRemoteStatus>;
162
+ subscribe(listener: (status: DshRemoteStatus) => void): () => void;
163
+ }
164
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { ArkmeExtensionInstallStore } from './install-store.js';
2
+ import type { ArkmeInstalledExtension } from './types.js';
3
+ export type DesktopRuntimeEnvironment = 'prod' | 'test';
4
+ export type DesktopExtensionQuarantinePhase = 'pending' | 'active' | 'restored' | 'resolved';
5
+ export interface DesktopExtensionQuarantineEntry {
6
+ packageName: string;
7
+ dependencySpec: string;
8
+ originalBundleIndex: number;
9
+ synchronizedAtMillis?: number;
10
+ notificationDismissedAtMillis?: number;
11
+ reenableRequestedAtMillis?: number;
12
+ resolvedAtMillis?: number;
13
+ }
14
+ export interface DesktopExtensionQuarantineReceipt {
15
+ schemaVersion: 1;
16
+ quarantineId: string;
17
+ environment: DesktopRuntimeEnvironment;
18
+ phase: DesktopExtensionQuarantinePhase;
19
+ mode: 'targeted' | 'local-safe-mode';
20
+ createdAtMillis: number;
21
+ updatedAtMillis: number;
22
+ runtimeReleaseId?: string;
23
+ failureSummary: string;
24
+ failureLogTail: string;
25
+ entries: DesktopExtensionQuarantineEntry[];
26
+ }
27
+ export interface ArkmeDesktopQuarantineEntryView {
28
+ packageName: string;
29
+ extensionId?: string;
30
+ dismissed: boolean;
31
+ resolved: boolean;
32
+ }
33
+ export interface ArkmeDesktopQuarantineStatus {
34
+ active: boolean;
35
+ quarantineId?: string;
36
+ mode?: 'targeted' | 'local-safe-mode';
37
+ failureSummary?: string;
38
+ failureLogTail?: string;
39
+ entries: ArkmeDesktopQuarantineEntryView[];
40
+ }
41
+ interface InstallStoreLike {
42
+ list(): ArkmeInstalledExtension[];
43
+ get(extensionId: string): ArkmeInstalledExtension | undefined;
44
+ put(item: ArkmeInstalledExtension): void;
45
+ }
46
+ interface ArkmeDesktopExtensionQuarantineOptions {
47
+ dshHome: string;
48
+ environment: DesktopRuntimeEnvironment;
49
+ installStore: Pick<ArkmeExtensionInstallStore, 'list' | 'get' | 'put'> | InstallStoreLike;
50
+ setProfileEnabled(packageName: string, enabled: boolean): Promise<void>;
51
+ requestRestart(input: {
52
+ packageName: string;
53
+ previousProfileIncluded: false;
54
+ }): Promise<void>;
55
+ isPackageActive(packageName: string): boolean;
56
+ now?: () => number;
57
+ }
58
+ export declare class ArkmeDesktopExtensionQuarantine {
59
+ private readonly options;
60
+ private readonly now;
61
+ constructor(options: ArkmeDesktopExtensionQuarantineOptions);
62
+ reconcile(): Promise<void>;
63
+ status(): Promise<ArkmeDesktopQuarantineStatus>;
64
+ dismiss(packageName: string): Promise<void>;
65
+ reenable(packageName: string): Promise<void>;
66
+ resolveActive(): Promise<void>;
67
+ health(packageName: string): Promise<{
68
+ profileEnabled: boolean;
69
+ active: boolean;
70
+ }>;
71
+ private activeReceiptForPackage;
72
+ private installedByPackage;
73
+ private profileContains;
74
+ private readReceipts;
75
+ private writeStoredReceipt;
76
+ }
77
+ export declare function parseDesktopExtensionQuarantineReceipt(text: string): DesktopExtensionQuarantineReceipt;
78
+ export {};
79
+ //# sourceMappingURL=desktop-quarantine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop-quarantine.d.ts","sourceRoot":"","sources":["../../../src/extensions/desktop-quarantine.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export interface ArkmeExtensionProfileInstallerOptions {
18
18
  requestShutdown?: () => void;
19
19
  supervisedExitCode?: number;
20
20
  supervisedPlanPath?: string;
21
+ runtimeReleaseId?: string;
21
22
  requestProcessExit?: (code: number) => void;
22
23
  }
23
24
  export declare class ArkmeExtensionProfileInstaller {
@@ -39,8 +40,12 @@ export declare class ArkmeExtensionProfileInstaller {
39
40
  previousInstalled?: ArkmeInstalledExtension;
40
41
  expectActive: boolean;
41
42
  activationChange?: true;
43
+ desktopQuarantineActivation?: true;
42
44
  previousProfileIncluded?: boolean;
43
45
  }): Promise<void>;
46
+ restartDesktopQuarantine(input: {
47
+ packageName: string;
48
+ }): Promise<void>;
44
49
  private run;
45
50
  private mutate;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile-installer.d.ts","sourceRoot":"","sources":["../../../src/extensions/profile-installer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAA;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGzD,eAAO,MAAM,uCAAuC,KAAK,CAAA;AAEzD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtE;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gCAAgC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAED,qBAAa,8BAA8B;IAG7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,YAAY,CAAmC;gBAE1B,OAAO,EAAE,qCAAqC;IAErE,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,UAAU,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE,6GAA6G;IACvG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,OAAO,CAAC,KAAK,EAAE;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,iBAAiB,CAAC,EAAE,uBAAuB,CAAA;QAC3C,YAAY,EAAE,OAAO,CAAA;QACrB,gBAAgB,CAAC,EAAE,IAAI,CAAA;QACvB,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC;YA8EH,GAAG;YAmBH,MAAM;CAKrB"}
1
+ {"version":3,"file":"profile-installer.d.ts","sourceRoot":"","sources":["../../../src/extensions/profile-installer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAA;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGzD,eAAO,MAAM,uCAAuC,KAAK,CAAA;AAEzD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtE;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gCAAgC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAED,qBAAa,8BAA8B;IAG7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,YAAY,CAAmC;gBAE1B,OAAO,EAAE,qCAAqC;IAErE,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,UAAU,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE,6GAA6G;IACvG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,OAAO,CAAC,KAAK,EAAE;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,iBAAiB,CAAC,EAAE,uBAAuB,CAAA;QAC3C,YAAY,EAAE,OAAO,CAAA;QACrB,gBAAgB,CAAC,EAAE,IAAI,CAAA;QACvB,2BAA2B,CAAC,EAAE,IAAI,CAAA;QAClC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFX,wBAAwB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAY/D,GAAG;YAmBH,MAAM;CAKrB"}
@@ -1,7 +1,7 @@
1
1
  import type { ArkmeInstalledExtension } from './types.js';
2
2
  import { applyArkmeProfileBundlePolicy } from './profile-bundle-policy.js';
3
3
  export interface ArkmeExtensionProfileRestartPlan {
4
- schemaVersion: 1 | 2 | 3;
4
+ schemaVersion: 1 | 2 | 3 | 4;
5
5
  parentPid: number;
6
6
  execPath: string;
7
7
  dshBinPath: string;
@@ -18,9 +18,11 @@ export interface ArkmeExtensionProfileRestartPlan {
18
18
  installStoreDirectory: string;
19
19
  previousInstalled?: ArkmeInstalledExtension;
20
20
  activationChange?: true;
21
+ desktopQuarantineActivation?: true;
21
22
  previousProfileIncluded?: boolean;
22
23
  healthUrl: string;
23
24
  logPath: string;
25
+ runtimeReleaseId?: string;
24
26
  }
25
27
  export declare function parseExtensionProfileRestartPlan(value: unknown): ArkmeExtensionProfileRestartPlan;
26
28
  declare function start(plan: ArkmeExtensionProfileRestartPlan): import("child_process").ChildProcess;
@@ -1 +1 @@
1
- {"version":3,"file":"profile-restart-helper.d.ts","sourceRoot":"","sources":["../../../src/extensions/profile-restart-helper.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAK1E,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,uBAAuB,CAAA;IAC3C,gBAAgB,CAAC,EAAE,IAAI,CAAA;IACvB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAaD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,gCAAgC,CA4CjG;AAYD,iBAAS,KAAK,CAAC,IAAI,EAAE,gCAAgC,wCAMpD;AAED,iBAAe,OAAO,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B/E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAUvF;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,SAAS,EAAE,OAAO,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,iBAAiB,EAAE,OAAO,6BAA6B,CAAA;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5C;AAiDD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM,EAAE,CAM7F;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,OAAO,CAAC,iCAAiC,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAO,CAAC,iCAAiC,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAIf"}
1
+ {"version":3,"file":"profile-restart-helper.d.ts","sourceRoot":"","sources":["../../../src/extensions/profile-restart-helper.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAK1E,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,uBAAuB,CAAA;IAC3C,gBAAgB,CAAC,EAAE,IAAI,CAAA;IACvB,2BAA2B,CAAC,EAAE,IAAI,CAAA;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAaD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,gCAAgC,CAqDjG;AAYD,iBAAS,KAAK,CAAC,IAAI,EAAE,gCAAgC,wCAMpD;AAED,iBAAe,OAAO,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqC/E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAUvF;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,SAAS,EAAE,OAAO,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,iBAAiB,EAAE,OAAO,6BAA6B,CAAA;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5C;AAiDD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM,EAAE,CAM7F;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,OAAO,CAAC,iCAAiC,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAO,CAAC,iCAAiC,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -9,16 +9,26 @@ export interface DshWebBootEntry {
9
9
  immediately?: boolean;
10
10
  external?: string[];
11
11
  }
12
+ export interface DshWebBootBatch {
13
+ phase: 'bootstrap' | 'application';
14
+ url: string;
15
+ rev: string;
16
+ entries: string[];
17
+ }
12
18
  export interface DshWebBootGraph {
13
19
  rev: string;
14
20
  entries: DshWebBootEntry[];
21
+ /** Present in the structured DSH boot protocol; legacy graphs omit it. */
22
+ batches?: DshWebBootBatch[];
15
23
  }
16
24
  interface HarnessEmbedRouteOptions {
17
25
  getGraph(): DshWebBootGraph;
18
26
  installedPackageNames(): readonly string[];
19
- readRootHtml(): Promise<string>;
27
+ readRootHtml(request: IncomingMessage): Promise<string>;
20
28
  onError?(error: unknown): void;
21
29
  }
30
+ /** Forward only the same-origin browser session needed by authenticated DSH roots. */
31
+ export declare function dshRootDocumentHeaders(request: IncomingMessage): Record<string, string>;
22
32
  /**
23
33
  * Build the iframe-only DSH graph without any Arkme-managed extension clients.
24
34
  * Host halves stay process-owned and untouched; only this document's browser
@@ -1 +1 @@
1
- {"version":3,"file":"harness-embed-route.d.ts","sourceRoot":"","sources":["../../src/harness-embed-route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,eAAO,MAAM,yBAAyB,yBAAyB,CAAA;AAC/D,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AAOxE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,UAAU,wBAAwB;IAChC,QAAQ,IAAI,eAAe,CAAA;IAC3B,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAAA;IAC1C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AA0DD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,eAAe,CAoBjB;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,eAAe,GAC9B,MAAM,CAOR;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,IAChE,SAAS,eAAe,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CA+BjF"}
1
+ {"version":3,"file":"harness-embed-route.d.ts","sourceRoot":"","sources":["../../src/harness-embed-route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,eAAO,MAAM,yBAAyB,yBAAyB,CAAA;AAC/D,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AAgBxE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,GAAG,aAAa,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAC5B;AAED,UAAU,wBAAwB;IAChC,QAAQ,IAAI,eAAe,CAAA;IAC3B,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAAA;IAC1C,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACvD,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIvF;AAyGD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,eAAe,CAuBjB;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,eAAe,GAC9B,MAAM,CAqBR;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,IAChE,SAAS,eAAe,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CA+BjF"}
@@ -5,6 +5,8 @@ import type { ArkmePluginRequest } from './types.js';
5
5
  import type { ArkmeExtensionManager } from './extensions/manager.js';
6
6
  import type { ArkmeExtensionInstallTasks } from './extensions/install-tasks.js';
7
7
  import type { ArkmeOwnedExtensionInventory } from './extensions/owned-inventory.js';
8
+ import type { ArkmeDesktopExtensionQuarantine } from './extensions/desktop-quarantine.js';
9
+ import type { DshRemoteHostFacade } from './dsh-remote/types.js';
8
10
  export interface ArkmeHostApiOptions {
9
11
  expectedPort: number;
10
12
  allowNonLoopback: boolean;
@@ -12,7 +14,9 @@ export interface ArkmeHostApiOptions {
12
14
  extensionManager?: () => ArkmeExtensionManager | undefined;
13
15
  extensionInstallTasks?: () => ArkmeExtensionInstallTasks | undefined;
14
16
  ownedExtensionInventory?: () => ArkmeOwnedExtensionInventory | undefined;
17
+ remoteHost?: () => DshRemoteHostFacade | undefined;
18
+ desktopQuarantine?: Pick<ArkmeDesktopExtensionQuarantine, 'status' | 'dismiss' | 'reenable' | 'health'>;
15
19
  }
16
20
  export declare function createArkmeHostApi(service: ArkmeService, options: ArkmeHostApiOptions): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
17
- export declare function dispatchArkmeHostOperation(service: ArkmeService, operation: ArkmePluginRequest['operation'], params: Record<string, unknown>, updateManager?: Pick<ArkmePluginUpdateManager, 'status' | 'check' | 'acknowledge' | 'install' | 'installStatus'>, extensionManager?: ArkmeExtensionManager, extensionInstallTasks?: ArkmeExtensionInstallTasks, ownedExtensionInventory?: ArkmeOwnedExtensionInventory, requestSignal?: AbortSignal): Promise<unknown>;
21
+ export declare function dispatchArkmeHostOperation(service: ArkmeService, operation: ArkmePluginRequest['operation'], params: Record<string, unknown>, updateManager?: Pick<ArkmePluginUpdateManager, 'status' | 'check' | 'acknowledge' | 'install' | 'installStatus'>, extensionManager?: ArkmeExtensionManager, extensionInstallTasks?: ArkmeExtensionInstallTasks, ownedExtensionInventory?: ArkmeOwnedExtensionInventory, requestSignal?: AbortSignal, remoteHost?: DshRemoteHostFacade, desktopQuarantine?: Pick<ArkmeDesktopExtensionQuarantine, 'status' | 'dismiss' | 'reenable' | 'health'>): Promise<unknown>;
18
22
  //# sourceMappingURL=host-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../../src/host-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAoB,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAA0B,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAKV,kBAAkB,EAGnB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AAggBnF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,CAAA;IACD,gBAAgB,CAAC,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAA;IAC1D,qBAAqB,CAAC,EAAE,MAAM,0BAA0B,GAAG,SAAS,CAAA;IACpE,uBAAuB,CAAC,EAAE,MAAM,4BAA4B,GAAG,SAAS,CAAA;CACzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,IACtE,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CA4DxE;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,EACD,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,qBAAqB,CAAC,EAAE,0BAA0B,EAClD,uBAAuB,CAAC,EAAE,4BAA4B,EACtD,aAAa,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC,CAu4BlB"}
1
+ {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../../src/host-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAoB,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAA0B,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAKV,kBAAkB,EAGnB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAMzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA6fhE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,CAAA;IACD,gBAAgB,CAAC,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAA;IAC1D,qBAAqB,CAAC,EAAE,MAAM,0BAA0B,GAAG,SAAS,CAAA;IACpE,uBAAuB,CAAC,EAAE,MAAM,4BAA4B,GAAG,SAAS,CAAA;IACxE,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAA;IAClD,iBAAiB,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAA;CACxG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,IACtE,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAmExE;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,EACD,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,qBAAqB,CAAC,EAAE,0BAA0B,EAClD,uBAAuB,CAAC,EAAE,4BAA4B,EACtD,aAAa,CAAC,EAAE,WAAW,EAC3B,UAAU,CAAC,EAAE,mBAAmB,EAChC,iBAAiB,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC,GACtG,OAAO,CAAC,OAAO,CAAC,CAm6BlB"}
@@ -4,6 +4,8 @@ export { createOpenClawCliAdapter } from './openclaw/index.js';
4
4
  import { ArkmeService } from './arkme-service.js';
5
5
  import type { ArkmeToolProfile } from './tools/index.js';
6
6
  import { type ArkmeEnvironment } from './types.js';
7
+ import { type DshPublicApiProxyLike } from './dsh-remote/api-proxy-adapter.js';
8
+ import { type DshRemoteSocketLike } from './dsh-remote/realtime-transport.js';
7
9
  export interface Config {
8
10
  environment: ArkmeEnvironment;
9
11
  authBaseUrl: string;
@@ -47,6 +49,8 @@ export interface Config {
47
49
  updateAllowLocalInstall: boolean;
48
50
  openclawProfile: string;
49
51
  shareWebsite: string;
52
+ dshRemoteFeatureEnabled: boolean;
53
+ dshRemoteRealtimeBaseUrl: string;
50
54
  }
51
55
  export declare const ARKME_PRODUCTION_TRUSTED_SIGNING_KEYS = "{\"prod-ed25519-20260819-1\":\"m1MKKU16hyu1b1KKIXMG+zKEr/GmhmvyUEreJzthTxs=\"}";
52
56
  export declare const Config: Schema<Config>;
@@ -56,12 +60,23 @@ export declare function readDshRuntimeVersion(dshBinPath: string): string | unde
56
60
  export declare function resolveArkmeAppVersion(configuredAppVersion: string, environment?: {
57
61
  ARKME_APP_VERSION?: string;
58
62
  }): string | undefined;
63
+ export declare function resolvePluginUpdateEnabled(configured: boolean, environment?: Readonly<Record<string, string | undefined>>): boolean;
59
64
  declare module '@deepseek-ai/cordis' {
60
65
  interface Context {
61
66
  /** Headless Arkme data provider for trusted Host-side consumer plugins. */
62
67
  arkmeData: ArkmeService;
68
+ /** Public DSH gateway detected at runtime; only the remote allowlist is consumed. */
69
+ apiProxy: DshPublicApiProxyLike;
70
+ /** Optional Host-owned authenticated Realtime socket carrier. */
71
+ arkmeRemoteSocketFactory: ArkmeRemoteAuthenticatedSocketFactory;
63
72
  }
64
73
  }
74
+ export type ArkmeRemoteAuthenticatedSocketFactory = (input: {
75
+ profileRef: string;
76
+ clientRef: string;
77
+ accessToken: string;
78
+ signal: AbortSignal;
79
+ }) => DshRemoteSocketLike | Promise<DshRemoteSocketLike>;
65
80
  export declare function apply(ctx: Context, config: Config): void;
66
81
  export declare function resolveArkmeConfig(ctx: Context, config: Config): Config;
67
82
  export type { ArkmeAiVideoJob, ArkmeAiVideoListItem, ArkmeAiVideoListResult, ArkmeAiVideoJobStatus, ArkmeAiVideoPreflightResult, ArkmeAiVideoSegmentSelector, ArkmeAiVideoTranscriptSource, ArkmeAuthSnapshot, ArkmeCachedQueryResult, ArkmeCachedSnapshot, ArkmeChatRealtimeState, ArkmeConversationWriteResult, ArkmeCreateTextResult, ArkmeDirectTextSendResult, ArkmeGroupAvatarFallback, ArkmeGroupAvatarPresentation, ArkmeGroupAvatarSlot, ArkmeIdAvailabilityReason, ArkmeIdAvailabilitySnapshot, ArkmeIdMutationResult, ArkmePendingWrite, ArkmeRelatedRecordingEligibility, ArkmeRelatedRecordingItem, ArkmeRelatedRecordingMonthBucket, ArkmeRelatedRecordingPage, ArkmeRelatedRecordingPageOptions, ArkmeRelatedRecordingPageState, ArkmeRelatedRecordingParticipant, ArkmeRelatedRecordingSpeaker, ArkmeContentBlock, ArkmeContentKind, ArkmeFavoriteSticker, ArkmeFavoriteStickerList, ArkmeFavoriteStickerAddInput, ArkmeFavoriteStickerManageAction, ArkmeRichSendInput, ArkmeImageMediaType, ArkmeImagePayload, ArkmeFileAssetDisplayItem, ArkmeRecordSearchResult, ArkmeRecordingSearchItem, ArkmeRecordingSearchResult, ArkmeSearchQueryGuard, ArkmeSearchRecordItem, ArkmeSearchSceneKind, ArkmeSearchSourceAggregate, ArkmeSourceDirectory, ArkmeSourceItem, ArkmeSourceKind, ArkmeSourceList, ArkmeSourceReadResult, ArkmeSourceSendResult, ArkmeTimelineCursor, ArkmeTimelineItem, ArkmeForwardRecordsPreview, ArkmeForwardRecordPreviewItem, ArkmeForwardTranscriptSegment, ArkmeTimelinePage, ArkmeUploadedAsset, ArkmeRecordCursor, ArkmeSelfRecordItem, ArkmeSelfRecordList, ArkmeSelfSummary, ArkmeCallDetail, ArkmeCallHistoryItem, ArkmeCallHistoryOptions, ArkmeCallHistoryPage, ArkmeCallMediaType, ArkmeCallParticipant, ArkmeCallRecentContact, ArkmeCallSummaryRetryResult, ArkmeCallSummaryStatus, ArkmeCallTranscriptSegment, ArkmeProviderCapabilities, ArkmeProviderState, ArkmePluginUpdateAvailability, ArkmePluginUpdateLevel, ArkmePluginUpdateNotice, ArkmePluginUpdateStatus, ArkmeUserProfile, ArkmeUserProfileSnapshot, ArkmeWorldPublishFileAsset, ArkmeWorldPublishFileAssetsInput, ArkmeWorldPublishResult, ArkmeWorldPublishTextInput, ArkmeWorldFeedItem, ArkmeWorldFeedPage, ArkmeWorldVoiceprintAvailability, ArkmeWorldVoiceprintAvailabilityItem, ArkmeWorldVoiceprintPlaybackChunk, ArkmeWorldRecordItem, ArkmeWorldRecordList, ArkmeWorldVisibility, ArkmeWechatCallFilter, ArkmeWechatCommonGroupFriend, ArkmeWechatCommonGroupPage, ArkmeWechatConversation, ArkmeWechatConversationDetail, ArkmeWechatConversationPage, ArkmeWechatGroupMember, ArkmeWechatGroupMemberPage, ArkmeWechatLocation, ArkmeWechatLocationPage, ArkmeWechatMessage, ArkmeWechatMessageFilter, ArkmeWechatMessagePage, ArkmeWechatMoneyFlow, ArkmeWechatMoneyFlowPage, ArkmeWechatPhone, ArkmeWechatPhoneEvidence, ArkmeWechatPhonePage, } from './types.js';