crewly 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/skills/orchestrator/reply-gchat/execute.sh +4 -4
- package/config/templates/dev-fullstack/norms/docker-deploy-cleanup.md +28 -0
- package/dist/backend/backend/src/constants.d.ts +45 -14
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +45 -14
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +14 -3
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +15 -3
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js +46 -8
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js +2 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +86 -3
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +5 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +33 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +27 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +28 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +47 -44
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.js +185 -152
- package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.js +3 -12
- package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts +27 -4
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay.types.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts +16 -8
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js +30 -35
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts +8 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/response-router.service.js +16 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/telegram/index.d.ts +14 -0
- package/dist/backend/backend/src/services/telegram/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/index.js +11 -0
- package/dist/backend/backend/src/services/telegram/index.js.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-credentials.service.d.ts +54 -0
- package/dist/backend/backend/src/services/telegram/telegram-credentials.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-credentials.service.js +98 -0
- package/dist/backend/backend/src/services/telegram/telegram-credentials.service.js.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-initializer.d.ts +76 -0
- package/dist/backend/backend/src/services/telegram/telegram-initializer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-initializer.js +131 -0
- package/dist/backend/backend/src/services/telegram/telegram-initializer.js.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts +73 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +172 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-thread-store.service.d.ts +86 -0
- package/dist/backend/backend/src/services/telegram/telegram-thread-store.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram-thread-store.service.js +157 -0
- package/dist/backend/backend/src/services/telegram/telegram-thread-store.service.js.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram.service.d.ts +173 -0
- package/dist/backend/backend/src/services/telegram/telegram.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/telegram/telegram.service.js +304 -0
- package/dist/backend/backend/src/services/telegram/telegram.service.js.map +1 -0
- package/dist/cli/backend/src/constants.d.ts +45 -14
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +45 -14
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/cli/src/commands/migrate.d.ts +101 -0
- package/dist/cli/cli/src/commands/migrate.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/migrate.js +335 -0
- package/dist/cli/cli/src/commands/migrate.js.map +1 -0
- package/dist/cli/cli/src/index.js +8 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/frontend/dist/assets/{index-f1dc9f80.css → index-2b76b01d.css} +1 -1
- package/frontend/dist/assets/{index-c35cdbc5.js → index-83869ca7.js} +321 -321
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Relay Client Service
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* communication when direct connections are unavailable (NAT/firewall).
|
|
4
|
+
* HTTP polling-based client that connects to a Cloud Message Queue for
|
|
5
|
+
* inter-node communication when direct connections are unavailable (NAT/firewall).
|
|
6
6
|
*
|
|
7
|
-
* Flow: Node A (Agent) <-> Cloud (
|
|
7
|
+
* Flow: Node A (Agent) <-> Cloud (Queue) <-> Node B (Orchestrator)
|
|
8
8
|
*
|
|
9
9
|
* Features:
|
|
10
|
-
* -
|
|
10
|
+
* - HTTP-based registration and message polling (replaces WebSocket)
|
|
11
11
|
* - End-to-end encryption (E2EE) — relay never sees plaintext
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
12
|
+
* - Exponential backoff on registration failures
|
|
13
|
+
* - Automatic message acknowledgement after processing
|
|
14
14
|
*
|
|
15
15
|
* @module services/cloud/relay-client.service
|
|
16
16
|
*/
|
|
17
17
|
import { EventEmitter } from 'events';
|
|
18
|
-
import {
|
|
18
|
+
import type { RelayClientConfig, RelayClientState, RelaySessionId } from './relay.types.js';
|
|
19
19
|
export interface RelayClientEvents {
|
|
20
20
|
/** Emitted when successfully paired with a peer */
|
|
21
21
|
paired: (peerSessionId: RelaySessionId, peerRole: string) => void;
|
|
@@ -31,22 +31,22 @@ export interface RelayClientEvents {
|
|
|
31
31
|
/**
|
|
32
32
|
* RelayClientService singleton.
|
|
33
33
|
*
|
|
34
|
-
* Manages
|
|
35
|
-
*
|
|
34
|
+
* Manages HTTP-based registration, polling, and message exchange with
|
|
35
|
+
* a Cloud Message Queue. Encrypts/decrypts messages for E2EE.
|
|
36
36
|
*/
|
|
37
37
|
export declare class RelayClientService extends EventEmitter {
|
|
38
38
|
private static instance;
|
|
39
39
|
private readonly logger;
|
|
40
|
-
/** Current WebSocket connection */
|
|
41
|
-
private ws;
|
|
42
40
|
/** Client configuration (set via connect()) */
|
|
43
41
|
private config;
|
|
44
42
|
/** Current connection state */
|
|
45
43
|
private state;
|
|
46
|
-
/** Assigned
|
|
44
|
+
/** Assigned queue ID after registration (used as sessionId) */
|
|
47
45
|
private sessionId;
|
|
48
|
-
/**
|
|
49
|
-
private
|
|
46
|
+
/** Peer's queue ID for sending messages */
|
|
47
|
+
private peerQueueId;
|
|
48
|
+
/** Polling interval timer */
|
|
49
|
+
private pollInterval;
|
|
50
50
|
/** Reconnection attempt counter */
|
|
51
51
|
private reconnectAttempts;
|
|
52
52
|
/** Reconnection timer */
|
|
@@ -57,6 +57,8 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
57
57
|
private salt;
|
|
58
58
|
/** Whether disconnect was intentional (skip reconnect) */
|
|
59
59
|
private intentionalDisconnect;
|
|
60
|
+
/** Timestamp of last seen message for pagination */
|
|
61
|
+
private lastSeenTimestamp;
|
|
60
62
|
private constructor();
|
|
61
63
|
/**
|
|
62
64
|
* Get the singleton instance.
|
|
@@ -69,10 +71,10 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
69
71
|
*/
|
|
70
72
|
static resetInstance(): void;
|
|
71
73
|
/**
|
|
72
|
-
* Connect to
|
|
74
|
+
* Connect to the Cloud Message Queue.
|
|
73
75
|
*
|
|
74
|
-
*
|
|
75
|
-
* and
|
|
76
|
+
* Registers via HTTP POST, derives the E2EE encryption key,
|
|
77
|
+
* and starts polling for messages if not immediately paired.
|
|
76
78
|
*
|
|
77
79
|
* @param config - Relay client configuration
|
|
78
80
|
*
|
|
@@ -80,7 +82,7 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
80
82
|
* ```ts
|
|
81
83
|
* const client = RelayClientService.getInstance();
|
|
82
84
|
* client.connect({
|
|
83
|
-
*
|
|
85
|
+
* apiUrl: 'https://api.crewlyai.com',
|
|
84
86
|
* pairingCode: 'abc-123',
|
|
85
87
|
* role: 'agent',
|
|
86
88
|
* token: 'sk-xxx',
|
|
@@ -91,13 +93,13 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
91
93
|
*/
|
|
92
94
|
connect(config: RelayClientConfig): void;
|
|
93
95
|
/**
|
|
94
|
-
* Disconnect from the
|
|
96
|
+
* Disconnect from the Cloud Message Queue.
|
|
95
97
|
*
|
|
96
|
-
*
|
|
98
|
+
* Stops polling and cleans up all timers.
|
|
97
99
|
*/
|
|
98
100
|
disconnect(): void;
|
|
99
101
|
/**
|
|
100
|
-
* Send an encrypted message to the paired peer via the
|
|
102
|
+
* Send an encrypted message to the paired peer via the Cloud Queue.
|
|
101
103
|
*
|
|
102
104
|
* The message is encrypted locally before being sent — the relay
|
|
103
105
|
* server only forwards the opaque ciphertext.
|
|
@@ -118,49 +120,50 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
118
120
|
*/
|
|
119
121
|
getState(): RelayClientState;
|
|
120
122
|
/**
|
|
121
|
-
* Get the assigned session ID (available after registration).
|
|
123
|
+
* Get the assigned session ID (queue ID, available after registration).
|
|
122
124
|
*
|
|
123
125
|
* @returns Session ID or null if not registered
|
|
124
126
|
*/
|
|
125
127
|
getSessionId(): RelaySessionId | null;
|
|
126
128
|
/**
|
|
127
|
-
*
|
|
129
|
+
* Register with the Cloud Message Queue via HTTP POST.
|
|
128
130
|
*/
|
|
129
|
-
private
|
|
131
|
+
private doRegister;
|
|
130
132
|
/**
|
|
131
|
-
*
|
|
133
|
+
* Start the polling interval to fetch new messages from the queue.
|
|
132
134
|
*/
|
|
133
|
-
private
|
|
135
|
+
private startPolling;
|
|
134
136
|
/**
|
|
135
|
-
*
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
* Stop the polling interval.
|
|
138
|
+
*/
|
|
139
|
+
private stopPolling;
|
|
140
|
+
/**
|
|
141
|
+
* Poll the queue for new messages and process them.
|
|
138
142
|
*/
|
|
139
|
-
private
|
|
143
|
+
private poll;
|
|
140
144
|
/**
|
|
141
|
-
* Handle
|
|
145
|
+
* Handle a single queue message payload by decrypting it.
|
|
142
146
|
*
|
|
143
|
-
* @param
|
|
147
|
+
* @param payload - Encrypted payload string
|
|
144
148
|
*/
|
|
145
|
-
private
|
|
149
|
+
private handleQueueMessage;
|
|
146
150
|
/**
|
|
147
|
-
*
|
|
151
|
+
* Acknowledge processed messages so they are not re-delivered.
|
|
152
|
+
*
|
|
153
|
+
* @param messageIds - Array of message IDs to acknowledge
|
|
148
154
|
*/
|
|
149
|
-
private
|
|
155
|
+
private ackMessages;
|
|
150
156
|
/**
|
|
151
|
-
*
|
|
157
|
+
* Send an encrypted payload to the peer via HTTP POST.
|
|
158
|
+
*
|
|
159
|
+
* @param payload - Serialized encrypted envelope
|
|
152
160
|
*/
|
|
153
|
-
private
|
|
161
|
+
private sendViaHttp;
|
|
154
162
|
/**
|
|
155
163
|
* Schedule a reconnection attempt with exponential backoff.
|
|
164
|
+
* Applied to HTTP register failures.
|
|
156
165
|
*/
|
|
157
166
|
private scheduleReconnect;
|
|
158
|
-
/**
|
|
159
|
-
* Send a raw relay message over the WebSocket.
|
|
160
|
-
*
|
|
161
|
-
* @param message - Relay message to send
|
|
162
|
-
*/
|
|
163
|
-
private sendRaw;
|
|
164
167
|
/**
|
|
165
168
|
* Update the client state and emit a stateChange event.
|
|
166
169
|
*
|
|
@@ -168,7 +171,7 @@ export declare class RelayClientService extends EventEmitter {
|
|
|
168
171
|
*/
|
|
169
172
|
private setState;
|
|
170
173
|
/**
|
|
171
|
-
* Clean up timers and
|
|
174
|
+
* Clean up timers and reset connection state.
|
|
172
175
|
*/
|
|
173
176
|
private cleanup;
|
|
174
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-client.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/relay-client.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"relay-client.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/relay-client.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,MAAM,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iEAAiE;IACjE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,gBAAgB,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1D,4CAA4C;IAC5C,WAAW,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,wBAAwB;IACxB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAMD;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAkC;IAChD,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAoC;IACjD,+DAA+D;IAC/D,OAAO,CAAC,SAAS,CAA+B;IAChD,2CAA2C;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,6BAA6B;IAC7B,OAAO,CAAC,YAAY,CAA+C;IACnE,mCAAmC;IACnC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,yBAAyB;IACzB,OAAO,CAAC,cAAc,CAA8C;IACpE,6BAA6B;IAC7B,OAAO,CAAC,aAAa,CAAuB;IAC5C,kEAAkE;IAClE,OAAO,CAAC,IAAI,CAAuB;IACnC,0DAA0D;IAC1D,OAAO,CAAC,qBAAqB,CAAS;IACtC,oDAAoD;IACpD,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO;IAKP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAOxC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAY5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAkBxC;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAMlB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiB7B;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;;;OAIG;IACH,YAAY,IAAI,cAAc,GAAG,IAAI;IAQrC;;OAEG;YACW,UAAU;IAyDxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;YACW,IAAI;IAkDlB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;OAIG;YACW,WAAW;IA0BzB;;;;OAIG;YACW,WAAW;IA8BzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,OAAO,CAAC,OAAO;CAWhB"}
|