@senguoyun/dsh-arkme 0.1.30 → 0.1.32
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/docs/consumer-plugin-contract.md +35 -1
- package/docs/file-flow-parity.md +213 -0
- package/docs/file-icon-licenses.md +54 -0
- package/docs/group-ai-polish-member-enablement.md +49 -0
- package/lib/client.js +6776 -1660
- package/lib/client.js.map +1 -1
- package/lib/index.js +4143 -244
- package/lib/persistent-extension.js +1 -1
- package/lib/{persistent-runtime-D-NwFt9z.js → persistent-runtime-CFeIg6aw.js} +2892 -724
- package/lib/sdk.js +192 -0
- package/lib/types/arkme-service.d.ts +63 -10
- package/lib/types/arkme-service.d.ts.map +1 -1
- package/lib/types/chat-realtime.d.ts +7 -1
- package/lib/types/chat-realtime.d.ts.map +1 -1
- package/lib/types/client/ArkmeAttachmentStrip.d.ts +11 -0
- package/lib/types/client/ArkmeAttachmentStrip.d.ts.map +1 -0
- package/lib/types/client/ArkmeBillingSettings.d.ts.map +1 -1
- package/lib/types/client/ArkmeBotConversationSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeBotSettingsPanel.d.ts.map +1 -1
- package/lib/types/client/ArkmeFileIcon.d.ts +24 -0
- package/lib/types/client/ArkmeFileIcon.d.ts.map +1 -0
- package/lib/types/client/ArkmeFileQuickView.d.ts +6 -0
- package/lib/types/client/ArkmeFileQuickView.d.ts.map +1 -0
- package/lib/types/client/ArkmeFileViewer.d.ts +22 -0
- package/lib/types/client/ArkmeFileViewer.d.ts.map +1 -0
- package/lib/types/client/ArkmeFooterAction.d.ts +3 -1
- package/lib/types/client/ArkmeFooterAction.d.ts.map +1 -1
- package/lib/types/client/ArkmeFooterDropdown.d.ts.map +1 -1
- package/lib/types/client/ArkmeGroupChatControls.d.ts +20 -2
- package/lib/types/client/ArkmeGroupChatControls.d.ts.map +1 -1
- package/lib/types/client/ArkmeLinkText.d.ts +13 -0
- package/lib/types/client/ArkmeLinkText.d.ts.map +1 -0
- package/lib/types/client/ArkmeLongArticleDialog.d.ts.map +1 -1
- package/lib/types/client/ArkmePersistentShell.d.ts.map +1 -1
- package/lib/types/client/ArkmeQuickAdd.d.ts.map +1 -1
- package/lib/types/client/ArkmeRichContent.d.ts +16 -23
- package/lib/types/client/ArkmeRichContent.d.ts.map +1 -1
- package/lib/types/client/ArkmeRichText.d.ts +12 -0
- package/lib/types/client/ArkmeRichText.d.ts.map +1 -0
- package/lib/types/client/ArkmeSearchSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeSettingsSurface.d.ts +5 -1
- package/lib/types/client/ArkmeSettingsSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeSidebar.d.ts +1 -0
- package/lib/types/client/ArkmeSidebar.d.ts.map +1 -1
- package/lib/types/client/ArkmeUpdateSurfaces.d.ts +5 -39
- package/lib/types/client/ArkmeUpdateSurfaces.d.ts.map +1 -1
- package/lib/types/client/ArkmeVirtualWorkspace.d.ts.map +1 -1
- package/lib/types/client/api.d.ts +1 -1
- package/lib/types/client/api.d.ts.map +1 -1
- package/lib/types/client/bot-chat-directory-projection.d.ts +7 -0
- package/lib/types/client/bot-chat-directory-projection.d.ts.map +1 -0
- package/lib/types/client/composer-draft-store.d.ts +25 -2
- package/lib/types/client/composer-draft-store.d.ts.map +1 -1
- package/lib/types/client/file-send-tasks.d.ts +12 -0
- package/lib/types/client/file-send-tasks.d.ts.map +1 -0
- package/lib/types/client/link-metadata-client.d.ts +20 -0
- package/lib/types/client/link-metadata-client.d.ts.map +1 -0
- package/lib/types/client/plugin-update-store.d.ts +28 -1
- package/lib/types/client/plugin-update-store.d.ts.map +1 -1
- package/lib/types/client/read-retry.d.ts +7 -0
- package/lib/types/client/read-retry.d.ts.map +1 -0
- package/lib/types/client/realtime-client-events.d.ts +4 -1
- package/lib/types/client/realtime-client-events.d.ts.map +1 -1
- package/lib/types/client/redesign/contacts/AlphabeticalContactList.d.ts +3 -3
- package/lib/types/client/redesign/contacts/AlphabeticalContactList.d.ts.map +1 -1
- package/lib/types/client/redesign/contacts/ContactDirectorySurface.d.ts +3 -3
- package/lib/types/client/redesign/contacts/ContactDirectorySurface.d.ts.map +1 -1
- package/lib/types/client/related-recordings.d.ts +3 -0
- package/lib/types/client/related-recordings.d.ts.map +1 -1
- package/lib/types/client/text-link-parser.d.ts +10 -0
- package/lib/types/client/text-link-parser.d.ts.map +1 -0
- package/lib/types/client/text-link-tlds.d.ts +2 -0
- package/lib/types/client/text-link-tlds.d.ts.map +1 -0
- package/lib/types/client/ui-controller.d.ts.map +1 -1
- package/lib/types/client/update-presentation.d.ts +42 -0
- package/lib/types/client/update-presentation.d.ts.map +1 -0
- package/lib/types/dsh-host-capabilities.d.ts +10 -0
- package/lib/types/dsh-host-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-remote/api-proxy-adapter.d.ts +250 -0
- package/lib/types/dsh-remote/api-proxy-adapter.d.ts.map +1 -0
- package/lib/types/dsh-remote/channel-manager.d.ts +45 -0
- package/lib/types/dsh-remote/channel-manager.d.ts.map +1 -0
- package/lib/types/dsh-remote/command-ledger.d.ts +60 -0
- package/lib/types/dsh-remote/command-ledger.d.ts.map +1 -0
- package/lib/types/dsh-remote/control-plane.d.ts +17 -0
- package/lib/types/dsh-remote/control-plane.d.ts.map +1 -0
- package/lib/types/dsh-remote/crypto.d.ts +11 -0
- package/lib/types/dsh-remote/crypto.d.ts.map +1 -0
- package/lib/types/dsh-remote/default-socket-factory.d.ts +8 -0
- package/lib/types/dsh-remote/default-socket-factory.d.ts.map +1 -0
- package/lib/types/dsh-remote/dsh-event-contract.d.ts +29 -0
- package/lib/types/dsh-remote/dsh-event-contract.d.ts.map +1 -0
- package/lib/types/dsh-remote/errors.d.ts +9 -0
- package/lib/types/dsh-remote/errors.d.ts.map +1 -0
- package/lib/types/dsh-remote/host.d.ts +85 -0
- package/lib/types/dsh-remote/host.d.ts.map +1 -0
- package/lib/types/dsh-remote/protocol-v1.d.ts +6 -0
- package/lib/types/dsh-remote/protocol-v1.d.ts.map +1 -0
- package/lib/types/dsh-remote/realtime-transport.d.ts +84 -0
- package/lib/types/dsh-remote/realtime-transport.d.ts.map +1 -0
- package/lib/types/dsh-remote/runtime-secret-broker.d.ts +28 -0
- package/lib/types/dsh-remote/runtime-secret-broker.d.ts.map +1 -0
- package/lib/types/dsh-remote/runtime-store.d.ts +39 -0
- package/lib/types/dsh-remote/runtime-store.d.ts.map +1 -0
- package/lib/types/dsh-remote/transport-fragment.d.ts +10 -0
- package/lib/types/dsh-remote/transport-fragment.d.ts.map +1 -0
- package/lib/types/dsh-remote/types.d.ts +164 -0
- package/lib/types/dsh-remote/types.d.ts.map +1 -0
- package/lib/types/file-transfer-contract.d.ts +63 -0
- package/lib/types/file-transfer-contract.d.ts.map +1 -0
- package/lib/types/file-transfer-owner.d.ts +17 -0
- package/lib/types/file-transfer-owner.d.ts.map +1 -0
- package/lib/types/harness-embed-route.d.ts +11 -1
- package/lib/types/harness-embed-route.d.ts.map +1 -1
- package/lib/types/host-api.d.ts +3 -1
- package/lib/types/host-api.d.ts.map +1 -1
- package/lib/types/index.d.ts +14 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/keychain-store.d.ts +33 -0
- package/lib/types/keychain-store.d.ts.map +1 -1
- package/lib/types/link-metadata.d.ts +9 -0
- package/lib/types/link-metadata.d.ts.map +1 -0
- package/lib/types/managed-ai/adapter.d.ts +2 -0
- package/lib/types/managed-ai/adapter.d.ts.map +1 -1
- package/lib/types/plugin-update.d.ts.map +1 -1
- package/lib/types/rich-media-routes.d.ts +2 -1
- package/lib/types/rich-media-routes.d.ts.map +1 -1
- package/lib/types/runtime-instance.d.ts +8 -0
- package/lib/types/runtime-instance.d.ts.map +1 -0
- package/lib/types/sdk/index.d.ts +57 -2
- package/lib/types/sdk/index.d.ts.map +1 -1
- package/lib/types/services/bot-conversation-service.d.ts +59 -0
- package/lib/types/services/bot-conversation-service.d.ts.map +1 -0
- package/lib/types/services/bot-service.d.ts +14 -18
- package/lib/types/services/bot-service.d.ts.map +1 -1
- package/lib/types/services/chat-realtime-service.d.ts +1 -1
- package/lib/types/services/chat-realtime-service.d.ts.map +1 -1
- package/lib/types/services/chat-service.d.ts +32 -5
- package/lib/types/services/chat-service.d.ts.map +1 -1
- package/lib/types/services/contact-directory-service.d.ts.map +1 -1
- package/lib/types/services/file-transfers.d.ts +65 -0
- package/lib/types/services/file-transfers.d.ts.map +1 -0
- package/lib/types/services/group-ai-polish-service.d.ts +17 -2
- package/lib/types/services/group-ai-polish-service.d.ts.map +1 -1
- package/lib/types/services/link-metadata-service.d.ts +73 -0
- package/lib/types/services/link-metadata-service.d.ts.map +1 -0
- package/lib/types/services/media-service.d.ts +11 -1
- package/lib/types/services/media-service.d.ts.map +1 -1
- package/lib/types/services/profile-service.d.ts +1 -0
- package/lib/types/services/profile-service.d.ts.map +1 -1
- package/lib/types/services/related-recording-service.d.ts +1 -0
- package/lib/types/services/related-recording-service.d.ts.map +1 -1
- package/lib/types/services/search-service.d.ts +6 -0
- package/lib/types/services/search-service.d.ts.map +1 -1
- package/lib/types/services/service.d.ts +5 -2
- package/lib/types/services/service.d.ts.map +1 -1
- package/lib/types/services/source-service.d.ts +2 -0
- package/lib/types/services/source-service.d.ts.map +1 -1
- package/lib/types/tools/business/conversation/group-ai-polish.d.ts.map +1 -1
- package/lib/types/tools/business/index.d.ts.map +1 -1
- package/lib/types/tools/business/media/files.d.ts +2 -0
- package/lib/types/tools/business/media/files.d.ts.map +1 -0
- package/lib/types/tools/business/media/index.d.ts.map +1 -1
- package/lib/types/tools/ports/bots.d.ts +1 -1
- package/lib/types/tools/ports/bots.d.ts.map +1 -1
- package/lib/types/tools/ports/conversations.d.ts +3 -0
- package/lib/types/tools/ports/conversations.d.ts.map +1 -1
- package/lib/types/tools/ports/files.d.ts +22 -0
- package/lib/types/tools/ports/files.d.ts.map +1 -0
- package/lib/types/tools/ports/index.d.ts +2 -1
- package/lib/types/tools/ports/index.d.ts.map +1 -1
- package/lib/types/tools/registry/registrar.d.ts.map +1 -1
- package/lib/types/types.d.ts +95 -20
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +23 -23
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DshRemoteRuntimeSecretBroker } from './runtime-secret-broker.js';
|
|
2
|
+
import type { DshRemoteRealtimeTransport, DshRemoteResponse, DshRemoteTrustedEventMetadata } from './types.js';
|
|
3
|
+
export interface DshRemoteHostChannelManagerOptions {
|
|
4
|
+
accountId: string;
|
|
5
|
+
profileRef: string;
|
|
6
|
+
hostClientRef: string;
|
|
7
|
+
runtimeRef: string;
|
|
8
|
+
realtime: DshRemoteRealtimeTransport;
|
|
9
|
+
secretBroker: DshRemoteRuntimeSecretBroker;
|
|
10
|
+
dispatch: (request: unknown, context: {
|
|
11
|
+
serviceLeaseGeneration: number;
|
|
12
|
+
metadata: DshRemoteTrustedEventMetadata;
|
|
13
|
+
}) => Promise<DshRemoteResponse>;
|
|
14
|
+
onFatal: (error: unknown) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Owns the single account-scoped Runtime channel. The Host subscribes with
|
|
18
|
+
* generation 0 before registration, then activates the exact positive lease
|
|
19
|
+
* returned by Realtime. No controller identity or pairing state exists here.
|
|
20
|
+
*/
|
|
21
|
+
export declare class DshRemoteHostChannelManager {
|
|
22
|
+
private readonly options;
|
|
23
|
+
private readonly controller;
|
|
24
|
+
private unsubscribe;
|
|
25
|
+
private target;
|
|
26
|
+
private lastTransportSequence;
|
|
27
|
+
private persistedTransportSequence;
|
|
28
|
+
private outboundTail;
|
|
29
|
+
private readonly pendingEvents;
|
|
30
|
+
private closed;
|
|
31
|
+
constructor(options: DshRemoteHostChannelManagerOptions);
|
|
32
|
+
prepare(): Promise<void>;
|
|
33
|
+
activate(serviceLeaseGeneration: number): Promise<void>;
|
|
34
|
+
status(): {
|
|
35
|
+
runtimeRef: string;
|
|
36
|
+
serviceLeaseGeneration: number;
|
|
37
|
+
ready: boolean;
|
|
38
|
+
};
|
|
39
|
+
close(): Promise<void>;
|
|
40
|
+
publishProjectionEvent(envelope: Record<string, unknown>, commandId: string): Promise<void>;
|
|
41
|
+
private handle;
|
|
42
|
+
private publishPayload;
|
|
43
|
+
private persistCursor;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=channel-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-manager.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/channel-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAEzE,OAAO,KAAK,EAEV,0BAA0B,EAC1B,iBAAiB,EAEjB,6BAA6B,EAC9B,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,0BAA0B,CAAA;IACpC,YAAY,EAAE,4BAA4B,CAAA;IAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;QACpC,sBAAsB,EAAE,MAAM,CAAA;QAC9B,QAAQ,EAAE,6BAA6B,CAAA;KACxC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAClC;AAED;;;;GAIG;AACH,qBAAa,2BAA2B;IAU1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,0BAA0B,CAAI;IACtC,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4F;IAC1H,OAAO,CAAC,MAAM,CAAQ;gBAEO,OAAO,EAAE,kCAAkC;IASlE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D,MAAM,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;IAQ1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKnF,MAAM;YA6BN,cAAc;YAuBd,aAAa;CAQ5B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DshRemoteError } from './errors.js';
|
|
2
|
+
import type { DshRemoteOperation } from './types.js';
|
|
3
|
+
export type DshRemoteLedgerState = 'pending' | 'completed' | 'outcome_unknown';
|
|
4
|
+
export interface DshRemoteLedgerIdentity {
|
|
5
|
+
accountId: string;
|
|
6
|
+
runtimeRef: string;
|
|
7
|
+
requestRef: string;
|
|
8
|
+
operation: DshRemoteOperation;
|
|
9
|
+
arguments: Record<string, unknown>;
|
|
10
|
+
executeBeforeMillis: number;
|
|
11
|
+
}
|
|
12
|
+
export interface DshRemoteLedgerEntry extends Omit<DshRemoteLedgerIdentity, 'arguments'> {
|
|
13
|
+
argumentsHash: string;
|
|
14
|
+
state: DshRemoteLedgerState;
|
|
15
|
+
dshRpcId: string;
|
|
16
|
+
payload: Record<string, unknown>;
|
|
17
|
+
createdAtMillis: number;
|
|
18
|
+
updatedAtMillis: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class DshRemoteCommandLedger {
|
|
21
|
+
private readonly path;
|
|
22
|
+
private readonly database;
|
|
23
|
+
private readonly key;
|
|
24
|
+
private readonly now;
|
|
25
|
+
constructor(directory: string, key: Uint8Array, options?: {
|
|
26
|
+
now?: () => number;
|
|
27
|
+
});
|
|
28
|
+
begin(input: DshRemoteLedgerIdentity): {
|
|
29
|
+
duplicate: boolean;
|
|
30
|
+
entry: DshRemoteLedgerEntry;
|
|
31
|
+
};
|
|
32
|
+
complete(identity: Pick<DshRemoteLedgerIdentity, 'accountId' | 'runtimeRef' | 'requestRef'>, result: Record<string, unknown>): DshRemoteLedgerEntry;
|
|
33
|
+
completeRejected(identity: Pick<DshRemoteLedgerIdentity, 'accountId' | 'runtimeRef' | 'requestRef'>, error: Pick<DshRemoteError, 'code' | 'message' | 'retryable'>): DshRemoteLedgerEntry;
|
|
34
|
+
markOutcomeUnknown(identity: Pick<DshRemoteLedgerIdentity, 'accountId' | 'runtimeRef' | 'requestRef'>, reason: string): DshRemoteLedgerEntry;
|
|
35
|
+
get(identity: Pick<DshRemoteLedgerIdentity, 'accountId' | 'runtimeRef' | 'requestRef'>): DshRemoteLedgerEntry | undefined;
|
|
36
|
+
pending(accountId: string, nowMillis?: number): DshRemoteLedgerEntry[];
|
|
37
|
+
/**
|
|
38
|
+
* Returns every unsettled command still inside the v4 reconciliation window.
|
|
39
|
+
*
|
|
40
|
+
* An expired execute_before only prevents executing the command again. It must
|
|
41
|
+
* not hide the crash window where DSH accepted the stable rpcId before the Host
|
|
42
|
+
* persisted the result. Callers must inspect DSH history and either complete
|
|
43
|
+
* the entry or mark outcome_unknown; they must never re-dispatch these rows.
|
|
44
|
+
*/
|
|
45
|
+
unsettledForReconciliation(accountId: string, nowMillis?: number, reconciliationWindowMillis?: number): DshRemoteLedgerEntry[];
|
|
46
|
+
cleanup(options?: {
|
|
47
|
+
retentionMillis?: number;
|
|
48
|
+
maxCommands?: number;
|
|
49
|
+
}): number;
|
|
50
|
+
close(): void;
|
|
51
|
+
private validateIdentity;
|
|
52
|
+
private identity;
|
|
53
|
+
private requireIdentity;
|
|
54
|
+
private entry;
|
|
55
|
+
private appendEvent;
|
|
56
|
+
private eventAad;
|
|
57
|
+
private transaction;
|
|
58
|
+
private secureFiles;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=command-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-ledger.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/command-ledger.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAE9E,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,kBAAkB,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC;IACtF,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACxB;AA+BD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;gBAGhC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,UAAU,EACf,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAyCtC,KAAK,CAAC,KAAK,EAAE,uBAAuB,GAAG;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,oBAAoB,CAAA;KAAE;IA6B1F,QAAQ,CACN,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC,EAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,oBAAoB;IAYvB,gBAAgB,CACd,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC,EAClF,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,GAC5D,oBAAoB;IAMvB,kBAAkB,CAChB,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC,EAClF,MAAM,EAAE,MAAM,GACb,oBAAoB;IASvB,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC,GAAG,oBAAoB,GAAG,SAAS;IAMzH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAa,GAAG,oBAAoB,EAAE;IAW1E;;;;;;;OAOG;IACH,0BAA0B,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,SAAa,EACtB,0BAA0B,SAAmB,GAC5C,oBAAoB,EAAE;IAczB,OAAO,CAAC,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAkBjF,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,KAAK;IA6Bb,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DshRemoteError } from './errors.js';
|
|
2
|
+
import type { DshRemoteControlPlane } from './types.js';
|
|
3
|
+
export interface DshRemoteHttpRequester {
|
|
4
|
+
post(path: string, body: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
5
|
+
}
|
|
6
|
+
export declare class DshRemoteHttpControlPlane implements DshRemoteControlPlane {
|
|
7
|
+
private readonly request;
|
|
8
|
+
constructor(request: DshRemoteHttpRequester);
|
|
9
|
+
private post;
|
|
10
|
+
registerDesktop(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
11
|
+
registerRuntime(desktopRef: string, input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
12
|
+
syncWorkspaces(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
13
|
+
syncSessions(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
14
|
+
appendSessionEvents(input: Record<string, unknown>, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
export declare function mapDshRemoteControlPlaneError(error: unknown): DshRemoteError;
|
|
17
|
+
//# sourceMappingURL=control-plane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/control-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAA;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC1G;AAQD,qBAAa,yBAA0B,YAAW,qBAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,sBAAsB;YAE9C,IAAI;IAKZ,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI3H,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAItG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIpG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAIlH;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAoB5E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function encodeBase64Url(value: Uint8Array | string): string;
|
|
2
|
+
export declare function decodeBase64Url(value: string): Buffer;
|
|
3
|
+
export declare function canonicalJson(value: unknown): string;
|
|
4
|
+
export declare function hChaCha20(key: Uint8Array, nonce: Uint8Array): Buffer;
|
|
5
|
+
export interface XChaChaCiphertext {
|
|
6
|
+
nonce: string;
|
|
7
|
+
ciphertext: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function encryptXChaCha20Poly1305(key: Uint8Array, plaintext: Uint8Array | string, aad: Uint8Array | string, nonce?: Uint8Array): XChaChaCiphertext;
|
|
10
|
+
export declare function decryptXChaCha20Poly1305(key: Uint8Array, input: XChaChaCiphertext, aad: Uint8Array | string): Buffer;
|
|
11
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/crypto.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAiBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAwBpE;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,UAAU,GAAG,MAAM,EAC9B,GAAG,EAAE,UAAU,GAAG,MAAM,EACxB,KAAK,GAAE,UAA4B,GAClC,iBAAiB,CASnB;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,UAAU,GAAG,MAAM,GACvB,MAAM,CAgBR"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DshRemoteSocketLike } from './realtime-transport.js';
|
|
2
|
+
export declare function dshRemoteRealtimeEndpoint(realtimeBaseUrl: string): string;
|
|
3
|
+
export declare function createDefaultDshRemoteSocket(input: {
|
|
4
|
+
realtimeBaseUrl: string;
|
|
5
|
+
accessToken: string;
|
|
6
|
+
signal: AbortSignal;
|
|
7
|
+
}): DshRemoteSocketLike;
|
|
8
|
+
//# sourceMappingURL=default-socket-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-socket-factory.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/default-socket-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAElE,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CASzE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAA;CACpB,GAAG,mBAAmB,CAiBtB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type DshRemoteJsonValue = null | boolean | number | string | DshRemoteJsonValue[] | {
|
|
2
|
+
[key: string]: DshRemoteJsonValue;
|
|
3
|
+
};
|
|
4
|
+
export interface DshRemoteSessionEvent {
|
|
5
|
+
type: string;
|
|
6
|
+
seq: number;
|
|
7
|
+
time: number;
|
|
8
|
+
data: DshRemoteJsonValue;
|
|
9
|
+
sourceEventSeqs?: number[];
|
|
10
|
+
surfaceOp?: DshRemoteJsonValue;
|
|
11
|
+
ignorable?: true;
|
|
12
|
+
}
|
|
13
|
+
export interface DshRemoteToolEventView {
|
|
14
|
+
for: 'call' | 'result';
|
|
15
|
+
view: {
|
|
16
|
+
[key: string]: DshRemoteJsonValue;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** The public DSH replay unit used by both sessions.history and events.mux. */
|
|
20
|
+
export interface DshRemoteHistoryEntry {
|
|
21
|
+
event: DshRemoteSessionEvent;
|
|
22
|
+
view?: DshRemoteToolEventView;
|
|
23
|
+
}
|
|
24
|
+
export declare function snapshotDshHistoryEntry(value: {
|
|
25
|
+
event: unknown;
|
|
26
|
+
view?: unknown;
|
|
27
|
+
}): DshRemoteHistoryEntry;
|
|
28
|
+
export declare function dshHistoryEntryUserRpcId(entry: DshRemoteHistoryEntry): string | undefined;
|
|
29
|
+
//# sourceMappingURL=dsh-event-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh-event-contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/dsh-event-contract.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAC1B,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,kBAAkB,EAAE,GACpB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAA;AAEzC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,kBAAkB,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;IACtB,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;CAC5C;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,qBAAqB,CAAA;IAC5B,IAAI,CAAC,EAAE,sBAAsB,CAAA;CAC9B;AA0BD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,qBAAqB,CAqCxB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAWzF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type DshRemoteErrorCode = 'REMOTE_LOGIN_REQUIRED' | 'RUNTIME_OFFLINE' | 'RUNTIME_LIMIT_REACHED' | 'HOST_CHANNEL_NOT_READY' | 'CAPABILITY_UNSUPPORTED' | 'WORKSPACE_UNAVAILABLE' | 'SESSION_NOT_FOUND' | 'COMMAND_EXPIRED' | 'COMMAND_OUTCOME_UNKNOWN' | 'INTERACTION_RESOLVED' | 'CONNECTION_REPLACED' | 'HOST_GENERATION_STALE' | 'SESSION_STATE_CHANGED' | 'REPLAY_GAP' | 'REMOTE_PROTOCOL_UNSUPPORTED' | 'REMOTE_REQUEST_INVALID' | 'REMOTE_INVALID_RESPONSE' | 'REMOTE_NOT_FOUND' | 'REMOTE_PROJECTION_CONFLICT' | 'REMOTE_REALTIME_UNAVAILABLE' | 'REMOTE_NETWORK_UNAVAILABLE' | 'REMOTE_STORAGE_FAILED' | 'REMOTE_TRANSPORT_FAILED';
|
|
2
|
+
export declare class DshRemoteError extends Error {
|
|
3
|
+
readonly code: DshRemoteErrorCode;
|
|
4
|
+
readonly retryable: boolean;
|
|
5
|
+
readonly details: Record<string, unknown>;
|
|
6
|
+
constructor(code: DshRemoteErrorCode, message: string, retryable?: boolean, details?: Record<string, unknown>, options?: ErrorOptions);
|
|
7
|
+
}
|
|
8
|
+
export declare function asDshRemoteError(error: unknown): DshRemoteError;
|
|
9
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,iBAAiB,GACjB,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,GACvB,mBAAmB,GACnB,iBAAiB,GACjB,yBAAyB,GACzB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,uBAAuB,GACvB,YAAY,GACZ,6BAA6B,GAC7B,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,GAC5B,uBAAuB,GACvB,yBAAyB,CAAA;AAE7B,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,kBAAkB;IAEjC,QAAQ,CAAC,SAAS;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHhC,IAAI,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,EACN,SAAS,UAAQ,EACjB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAC9C,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAS/D"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { DshApiProxyAdapter } from './api-proxy-adapter.js';
|
|
2
|
+
import { DshRemoteCommandLedger } from './command-ledger.js';
|
|
3
|
+
import { DshRemoteRuntimeStore } from './runtime-store.js';
|
|
4
|
+
import { DshRemoteRuntimeSecretBroker } from './runtime-secret-broker.js';
|
|
5
|
+
import { type DshRemoteControlPlane, type DshRemoteHostFacade, type DshRemoteRealtimeTransport, type DshRemoteResponse, type DshRemoteStatus, type DshRemoteTrustedEventMetadata } from './types.js';
|
|
6
|
+
interface HostSession {
|
|
7
|
+
userId: number;
|
|
8
|
+
clientId: number;
|
|
9
|
+
}
|
|
10
|
+
interface HostRuntimeContext {
|
|
11
|
+
serviceLeaseGeneration: number;
|
|
12
|
+
metadata: DshRemoteTrustedEventMetadata;
|
|
13
|
+
}
|
|
14
|
+
export interface ArkmeRemoteRealtimeHostOptions {
|
|
15
|
+
featureEnabled: boolean;
|
|
16
|
+
transportAvailable?: boolean;
|
|
17
|
+
profileRef: string;
|
|
18
|
+
hostClientRef: string;
|
|
19
|
+
displayName?: string;
|
|
20
|
+
platform?: NodeJS.Platform;
|
|
21
|
+
readSession: () => Promise<HostSession | undefined>;
|
|
22
|
+
secretBroker: DshRemoteRuntimeSecretBroker;
|
|
23
|
+
runtimeStore: DshRemoteRuntimeStore;
|
|
24
|
+
controlPlane: DshRemoteControlPlane;
|
|
25
|
+
realtime: DshRemoteRealtimeTransport;
|
|
26
|
+
apiProxy: DshApiProxyAdapter;
|
|
27
|
+
ledgerForAccount: (accountId: string, key: Buffer) => Promise<DshRemoteCommandLedger> | DshRemoteCommandLedger;
|
|
28
|
+
now?: () => number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Account-login Host facade. Backend owns durable discovery/projections,
|
|
32
|
+
* Realtime owns the short-lived Host lease, and DSH remains session truth.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ArkmeRemoteRealtimeHost implements DshRemoteHostFacade {
|
|
35
|
+
private readonly options;
|
|
36
|
+
private readonly now;
|
|
37
|
+
private readonly listeners;
|
|
38
|
+
private runtime;
|
|
39
|
+
private accountId;
|
|
40
|
+
private clientId;
|
|
41
|
+
private ledger;
|
|
42
|
+
private started;
|
|
43
|
+
private connected;
|
|
44
|
+
private serviceLeaseGeneration;
|
|
45
|
+
private revision;
|
|
46
|
+
private stopEvents;
|
|
47
|
+
private stopProjectionEvents;
|
|
48
|
+
private channelManager;
|
|
49
|
+
private stopTransportDisconnect;
|
|
50
|
+
private reconnectTimer;
|
|
51
|
+
private reconnecting;
|
|
52
|
+
private sessionTimer;
|
|
53
|
+
private connectionError;
|
|
54
|
+
private lastProjectionSyncAttemptMillis;
|
|
55
|
+
private projectionVersion;
|
|
56
|
+
constructor(options: ArkmeRemoteRealtimeHostOptions);
|
|
57
|
+
start(): Promise<void>;
|
|
58
|
+
stop(): Promise<void>;
|
|
59
|
+
getStatus(): DshRemoteStatus;
|
|
60
|
+
renameDesktop(displayName: string): Promise<DshRemoteStatus>;
|
|
61
|
+
subscribe(listener: (status: DshRemoteStatus) => void): () => void;
|
|
62
|
+
/** Entry used only by the authenticated Realtime channel bridge. */
|
|
63
|
+
dispatchAuthorizedRequest(value: unknown, context: HostRuntimeContext): Promise<DshRemoteResponse>;
|
|
64
|
+
private syncSessionSafely;
|
|
65
|
+
private syncSession;
|
|
66
|
+
private ensureAutomaticConnection;
|
|
67
|
+
private scheduleSessionSync;
|
|
68
|
+
private deactivateAccount;
|
|
69
|
+
private startApiProxyEvents;
|
|
70
|
+
private stopApiProxyEvents;
|
|
71
|
+
private publishProjectionEvent;
|
|
72
|
+
private handleTransportDisconnect;
|
|
73
|
+
private connectHost;
|
|
74
|
+
private syncProjectionSnapshotSafely;
|
|
75
|
+
private nextProjectionVersion;
|
|
76
|
+
private syncProjectionSnapshot;
|
|
77
|
+
private dispatch;
|
|
78
|
+
private dispatchWrite;
|
|
79
|
+
private reconcileUnsettled;
|
|
80
|
+
private requireReady;
|
|
81
|
+
private requireConnected;
|
|
82
|
+
private bump;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-v1.d.ts","sourceRoot":"","sources":["../../../src/dsh-remote/protocol-v1.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AA+FnB,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;IAAE,sBAAsB,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,gBAAgB,CAoClB"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|