@abitat_reece/host-daemon 0.1.5 → 0.1.7

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-bridge.js","sourceRoot":"","sources":["../../src/local-control/codex-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import WebSocket from "ws";
2
+ import { createRelayReplayCache, type RelayEncryptedEnvelope } from "@abitat_reece/shared";
3
+ import type { LocalControlStore } from "./state.js";
4
+ interface RelayKeyMaterial {
5
+ id: string;
6
+ keyMaterial: string;
7
+ kind: "device" | "pairing";
8
+ }
9
+ interface RelayStore {
10
+ getRelayKeyMaterials(relayId: string): Promise<RelayKeyMaterial[]>;
11
+ }
12
+ interface HandleRelayRequestInput {
13
+ envelope: RelayEncryptedEnvelope;
14
+ fetch?: typeof fetch;
15
+ localEndpoint: string;
16
+ relayId: string;
17
+ replayCache: ReturnType<typeof createRelayReplayCache>;
18
+ store: RelayStore;
19
+ }
20
+ interface StartRelayClientInput {
21
+ fetch?: typeof fetch;
22
+ localEndpoint: string;
23
+ reconnectIntervalMs?: number;
24
+ relayEndpoint: string;
25
+ relayId: string;
26
+ store: LocalControlStore;
27
+ }
28
+ export { createRelayReplayCache };
29
+ export declare function handleRelayRequest(input: HandleRelayRequestInput): Promise<RelayEncryptedEnvelope>;
30
+ export declare function startRelayClient(input: StartRelayClientInput): {
31
+ close(): void;
32
+ };
33
+ export declare function handleRelaySocketMessage(raw: string, input: Omit<HandleRelayRequestInput, "envelope"> & {
34
+ socket: WebSocket | null;
35
+ }): Promise<void>;
36
+ //# sourceMappingURL=relay-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../../src/local-control/relay-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EACL,sBAAsB,EAKtB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B;AAED,UAAU,UAAU;IAClB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACpE;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACvD,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAeD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,mCA8BtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB;;EAoD5D;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,iBAmChF"}
@@ -0,0 +1,164 @@
1
+ import WebSocket from "ws";
2
+ import { createRelayReplayCache, decryptRelayEnvelope, encryptRelayEnvelope, relaySessionKey, validateRelayEnvelopeFreshness } from "@abitat_reece/shared";
3
+ export { createRelayReplayCache };
4
+ export async function handleRelayRequest(input) {
5
+ const keyMaterials = await input.store.getRelayKeyMaterials(input.relayId);
6
+ const replayCache = input.replayCache;
7
+ for (const keyMaterial of keyMaterials) {
8
+ const key = await relaySessionKey(keyMaterial.keyMaterial, input.relayId);
9
+ const request = await decryptRelayEnvelope(key, input.envelope).catch(() => null);
10
+ if (!request) {
11
+ continue;
12
+ }
13
+ validateRelayEnvelopeFreshness({ createdAt: input.envelope.createdAt });
14
+ replayCache.assertFresh(request.requestId);
15
+ const localResponse = await forwardToLocalApi({
16
+ fetch: input.fetch ?? fetch,
17
+ localEndpoint: input.localEndpoint,
18
+ request
19
+ });
20
+ return encryptRelayEnvelope(key, {
21
+ body: localResponse.body,
22
+ headers: localResponse.headers,
23
+ requestId: request.requestId,
24
+ status: localResponse.status
25
+ });
26
+ }
27
+ throw new Error("Relay request could not be decrypted by this Mac");
28
+ }
29
+ export function startRelayClient(input) {
30
+ const replayCache = createRelayReplayCache();
31
+ let stopped = false;
32
+ let socket = null;
33
+ let reconnectTimer = null;
34
+ const connect = () => {
35
+ if (stopped) {
36
+ return;
37
+ }
38
+ const url = relayWebSocketUrl(input.relayEndpoint, input.relayId);
39
+ socket = new WebSocket(url);
40
+ socket.on("message", (data) => {
41
+ void handleRelaySocketMessage(String(data), {
42
+ fetch: input.fetch,
43
+ localEndpoint: input.localEndpoint,
44
+ relayId: input.relayId,
45
+ replayCache,
46
+ socket,
47
+ store: input.store
48
+ });
49
+ });
50
+ socket.on("close", () => scheduleReconnect());
51
+ socket.on("error", () => {
52
+ socket?.close();
53
+ });
54
+ };
55
+ const scheduleReconnect = () => {
56
+ if (stopped || reconnectTimer) {
57
+ return;
58
+ }
59
+ reconnectTimer = setTimeout(() => {
60
+ reconnectTimer = null;
61
+ connect();
62
+ }, input.reconnectIntervalMs ?? 2_000);
63
+ reconnectTimer.unref?.();
64
+ };
65
+ connect();
66
+ return {
67
+ close() {
68
+ stopped = true;
69
+ if (reconnectTimer) {
70
+ clearTimeout(reconnectTimer);
71
+ reconnectTimer = null;
72
+ }
73
+ socket?.close();
74
+ }
75
+ };
76
+ }
77
+ export async function handleRelaySocketMessage(raw, input) {
78
+ const message = parseRelayHostRequest(raw);
79
+ if (!message) {
80
+ return;
81
+ }
82
+ const send = (payload) => {
83
+ if (input.socket?.readyState === WebSocket.OPEN) {
84
+ input.socket.send(JSON.stringify(payload));
85
+ }
86
+ };
87
+ let envelope;
88
+ try {
89
+ envelope = await handleRelayRequest({ ...input, envelope: message.envelope });
90
+ }
91
+ catch (error) {
92
+ send({
93
+ error: errorMessage(error),
94
+ requestId: message.requestId,
95
+ status: statusCode(error),
96
+ type: "error"
97
+ });
98
+ return;
99
+ }
100
+ send({
101
+ envelope,
102
+ requestId: message.requestId,
103
+ type: "response"
104
+ });
105
+ }
106
+ async function forwardToLocalApi(input) {
107
+ const response = await input.fetch(new URL(input.request.path, input.localEndpoint), {
108
+ body: input.request.body === undefined ? undefined : JSON.stringify(input.request.body),
109
+ headers: input.request.headers,
110
+ method: input.request.method
111
+ });
112
+ const text = await response.text();
113
+ const contentType = response.headers.get("content-type") ?? "";
114
+ const body = contentType.includes("application/json") && text ? JSON.parse(text) : text;
115
+ return {
116
+ body,
117
+ headers: {
118
+ "content-type": contentType
119
+ },
120
+ status: response.status
121
+ };
122
+ }
123
+ function parseRelayHostRequest(raw) {
124
+ try {
125
+ const parsed = JSON.parse(raw);
126
+ if (parsed.type !== "request" ||
127
+ typeof parsed.requestId !== "string" ||
128
+ !parsed.envelope ||
129
+ parsed.envelope.requestId !== parsed.requestId) {
130
+ return null;
131
+ }
132
+ return parsed;
133
+ }
134
+ catch {
135
+ return null;
136
+ }
137
+ }
138
+ function relayWebSocketUrl(relayEndpoint, relayId) {
139
+ const url = new URL(`/relay/${encodeURIComponent(relayId)}/host`, relayEndpoint);
140
+ url.protocol = url.protocol === "http:" ? "ws:" : "wss:";
141
+ return url.toString();
142
+ }
143
+ function statusCode(error) {
144
+ if (error &&
145
+ typeof error === "object" &&
146
+ typeof error.statusCode === "number") {
147
+ return error.statusCode;
148
+ }
149
+ const message = errorMessage(error);
150
+ if (message.includes("could not be decrypted")) {
151
+ return 401;
152
+ }
153
+ if (message.includes("already been processed")) {
154
+ return 409;
155
+ }
156
+ if (message.includes("timestamp") || message.includes("too old")) {
157
+ return 400;
158
+ }
159
+ return 500;
160
+ }
161
+ function errorMessage(error) {
162
+ return error instanceof Error ? error.message : String(error);
163
+ }
164
+ //# sourceMappingURL=relay-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/local-control/relay-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { type IncomingMessage, type Server, type ServerResponse } from "node:http";
2
+ import type { CodexMobileModelSettings, CodexModelOption, ConversationStatus } from "@abitat_reece/shared";
3
+ import { type LocalControlStore, type LocalControlTransport } from "./state.js";
4
+ export interface LocalCodexProjectSummary {
5
+ id: string;
6
+ workspaceId: string;
7
+ name: string;
8
+ repoUrl: string;
9
+ hostLocalPath: string;
10
+ createdByUserId: string;
11
+ repoSyncStatus: "codex_app";
12
+ conversationCount: number;
13
+ source: "codex_app";
14
+ updatedAt: string;
15
+ }
16
+ export interface LocalCodexConversationSummary {
17
+ id: string;
18
+ workspaceId: string;
19
+ projectId: string;
20
+ agentId?: string;
21
+ createdByUserId?: string;
22
+ type: string;
23
+ status: ConversationStatus | string;
24
+ prompt: string;
25
+ branchName?: string | null;
26
+ runtimeSessionId?: string | null;
27
+ worktreePath?: string | null;
28
+ source: "codex_app";
29
+ codexDeepLink?: string;
30
+ createdAt?: Date | string;
31
+ updatedAt?: Date | string;
32
+ }
33
+ export interface LocalCodexMessage {
34
+ id: string;
35
+ conversationId: string;
36
+ sequence: number;
37
+ role: "user" | "assistant" | "system" | "runtime";
38
+ sourceDeviceId?: string | null;
39
+ content: string;
40
+ metadata?: Record<string, unknown>;
41
+ createdAt: string;
42
+ }
43
+ export interface LocalCodexCompletionState {
44
+ conversationId: string;
45
+ failed: boolean;
46
+ isComplete: boolean;
47
+ latestTurnCompletedAt: string | null;
48
+ latestTurnId: string | null;
49
+ projectId: string;
50
+ projectName?: string;
51
+ prompt: string;
52
+ source: "codex_app";
53
+ status: ConversationStatus | string;
54
+ updatedAt: string;
55
+ workspaceId: string;
56
+ }
57
+ export interface LocalCodexBridge {
58
+ bootstrap(): Promise<{
59
+ available: boolean;
60
+ error?: string;
61
+ }>;
62
+ continueConversation(conversationId: string, input: {
63
+ attachments?: LocalAttachmentReference[];
64
+ modelSettings?: CodexMobileModelSettings;
65
+ prompt: string;
66
+ }): Promise<{
67
+ conversationId: string;
68
+ status: ConversationStatus | string;
69
+ }>;
70
+ listCompletionStates(): Promise<LocalCodexCompletionState[]>;
71
+ listMessages(conversationId: string, options?: {
72
+ afterSequence?: number;
73
+ includeRuntime?: boolean;
74
+ }): Promise<LocalCodexMessage[]>;
75
+ listModelOptions(): Promise<CodexModelOption[]>;
76
+ listProjectConversations(projectId: string): Promise<LocalCodexConversationSummary[]>;
77
+ listProjects(): Promise<LocalCodexProjectSummary[]>;
78
+ startConversation(projectId: string, input: {
79
+ attachments?: LocalAttachmentReference[];
80
+ modelSettings?: CodexMobileModelSettings;
81
+ prompt: string;
82
+ }): Promise<{
83
+ conversationId: string;
84
+ status: ConversationStatus | string;
85
+ }>;
86
+ }
87
+ export interface LocalAttachmentReference {
88
+ kind: "file" | "image";
89
+ name: string;
90
+ path: string;
91
+ }
92
+ interface StartLocalControlServerInput {
93
+ attachmentDirectory?: string;
94
+ bindHost: string;
95
+ codex: LocalCodexBridge;
96
+ endpoint: string;
97
+ port: number;
98
+ store: LocalControlStore;
99
+ transport: LocalControlTransport;
100
+ }
101
+ export declare function startLocalControlServer(input: StartLocalControlServerInput): Promise<{
102
+ readonly endpoint: string;
103
+ server: Server<typeof IncomingMessage, typeof ServerResponse>;
104
+ close: () => Promise<void>;
105
+ }>;
106
+ export {};
107
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/local-control/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjG,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAE3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,WAAW,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,oBAAoB,CAClB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE;QACL,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;QACzC,aAAa,CAAC,EAAE,wBAAwB,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAC7D,YAAY,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7D,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChD,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACtF,YAAY,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACpD,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QACL,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;QACzC,aAAa,CAAC,EAAE,wBAAwB,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,4BAA4B;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;CAClC;AA0BD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B;;;;GA+RhF"}