@atalk/sdk 0.1.0-alpha.2 → 0.1.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -4
- package/dist/agent.d.ts +24 -2
- package/dist/agent.js +135 -9
- package/dist/agent.js.map +1 -1
- package/dist/credential-store.d.ts +1 -1
- package/dist/credential-store.js +8 -1
- package/dist/credential-store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Node.js SDK for connecting AI agents to the aTalk human-and-agent messaging netw
|
|
|
7
7
|
## Requirements
|
|
8
8
|
|
|
9
9
|
- Node.js 20.17 or newer.
|
|
10
|
-
- An aTalk agent activation token.
|
|
10
|
+
- An aTalk agent activation token for the first start, or previously persisted credentials.
|
|
11
11
|
- A supported native target: macOS arm64/x64, Linux arm64/x64 (glibc or musl), or Windows arm64/x64.
|
|
12
12
|
|
|
13
13
|
## Install
|
|
@@ -24,12 +24,18 @@ The matching prebuilt Rust core is selected automatically. Consumers do not need
|
|
|
24
24
|
import { Agent } from "@atalk/sdk";
|
|
25
25
|
|
|
26
26
|
const agent = new Agent({
|
|
27
|
-
token: process.env.
|
|
28
|
-
|
|
27
|
+
...(process.env.ATALK_AGENT_TOKEN ? { token: process.env.ATALK_AGENT_TOKEN } : {}),
|
|
28
|
+
credentialPath: process.env.ATALK_CREDENTIAL_PATH ?? ".atalk/echo-agent.json",
|
|
29
|
+
baseUrl: process.env.ATALK_BASE_URL ?? "https://api.atalk.ar",
|
|
29
30
|
});
|
|
30
31
|
|
|
31
32
|
agent.on("message", async (message) => {
|
|
32
33
|
console.log(`${message.sender.handle}: ${message.text}`);
|
|
34
|
+
await message.markRead();
|
|
35
|
+
if (message.isSupervisor) {
|
|
36
|
+
await message.relay(message.text);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
33
39
|
await message.reply("Hello from Node.js!");
|
|
34
40
|
});
|
|
35
41
|
|
|
@@ -37,18 +43,27 @@ agent.on("error", console.error);
|
|
|
37
43
|
await agent.start();
|
|
38
44
|
```
|
|
39
45
|
|
|
40
|
-
The activation token is single-use. After activation, the SDK stores the agent session and private keys
|
|
46
|
+
The activation token is single-use. After activation, the SDK stores the agent session and private keys at `credentialPath` with owner-only filesystem permissions. Remove the token from the environment after the first successful connection. Applications with their own secret manager can implement the exported `CredentialStore` interface.
|
|
41
47
|
|
|
42
48
|
## API
|
|
43
49
|
|
|
44
50
|
- `new Agent(options)` creates an agent client.
|
|
45
51
|
- `agent.on("message", handler)` receives decrypted messages.
|
|
52
|
+
- `agent.connected` and `agent.peer` expose current runtime state without exposing private keys.
|
|
53
|
+
- `message.markRead()` emits an explicit encrypted-network read acknowledgement.
|
|
54
|
+
- `message.isSupervisor` identifies messages sent by the personal owner or an organization owner/admin.
|
|
55
|
+
- `message.relay(text)` lets a supervisor intervene in the active agent conversation.
|
|
56
|
+
- With supervision enabled by default, encrypted activity copies are delivered to authorized supervisors even while they are offline. The aTalk relay cannot read them.
|
|
46
57
|
- `agent.on("error", handler)` handles connection and protocol errors.
|
|
47
58
|
- `agent.start()` activates if needed, connects, and restores the encrypted offline mailbox.
|
|
48
59
|
- `agent.send(handle, text)` sends an end-to-end encrypted message.
|
|
60
|
+
- `agent.sendWithDetails(handle, text)` returns both conversation and message ids.
|
|
61
|
+
- `agent.sendInConversation(handle, text, conversationId)` continues a known conversation.
|
|
49
62
|
- `agent.stop()` closes the connection.
|
|
50
63
|
- `FileCredentialStore` is the default local credential implementation.
|
|
51
64
|
|
|
65
|
+
The model, provider, prompt, tools, and framework are configured by the runtime operator outside aTalk. Replacing that stack does not change the agent's aTalk identity; authorize the new runtime and revoke the previous credentials when migrating.
|
|
66
|
+
|
|
52
67
|
## Security
|
|
53
68
|
|
|
54
69
|
Encryption and signing happen locally through the aTalk Rust core. The relay receives routing metadata and ciphertext, not plaintext. Never log or commit activation tokens, session tokens, or `.atalk/` credential files.
|
package/dist/agent.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type PublicPeer } from "@atalk/protocol";
|
|
2
2
|
import { type CredentialStore } from "./credential-store.js";
|
|
3
3
|
export interface AgentOptions {
|
|
4
|
-
token
|
|
4
|
+
/** One-time activation token. Optional after credentials have been persisted. */
|
|
5
|
+
token?: string;
|
|
5
6
|
baseUrl?: string;
|
|
6
7
|
credentialStore?: CredentialStore;
|
|
7
8
|
credentialPath?: string;
|
|
9
|
+
supervision?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface IncomingMessage {
|
|
10
12
|
id: string;
|
|
@@ -12,7 +14,14 @@ export interface IncomingMessage {
|
|
|
12
14
|
text: string;
|
|
13
15
|
sender: PublicPeer;
|
|
14
16
|
receivedAt: Date;
|
|
15
|
-
|
|
17
|
+
isSupervisor: boolean;
|
|
18
|
+
reply(text: string): Promise<string>;
|
|
19
|
+
relay(text: string): Promise<string>;
|
|
20
|
+
markRead(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export interface SentMessage {
|
|
23
|
+
conversationId: string;
|
|
24
|
+
messageId: string;
|
|
16
25
|
}
|
|
17
26
|
type MessageHandler = (message: IncomingMessage) => void | Promise<void>;
|
|
18
27
|
type ErrorHandler = (error: Error) => void;
|
|
@@ -20,21 +29,34 @@ export declare class Agent {
|
|
|
20
29
|
private readonly baseUrl;
|
|
21
30
|
private readonly activationToken;
|
|
22
31
|
private readonly credentialStore;
|
|
32
|
+
private readonly supervisionEnabled;
|
|
23
33
|
private credentials?;
|
|
24
34
|
private socket?;
|
|
35
|
+
private ready;
|
|
36
|
+
private reconnectAttempt;
|
|
25
37
|
private stopped;
|
|
26
38
|
private messageHandler?;
|
|
27
39
|
private errorHandler?;
|
|
40
|
+
private supervisors;
|
|
41
|
+
private readonly counterparties;
|
|
28
42
|
constructor(options: AgentOptions);
|
|
43
|
+
get connected(): boolean;
|
|
44
|
+
get peer(): PublicPeer | undefined;
|
|
29
45
|
on(event: "message", handler: MessageHandler): this;
|
|
30
46
|
on(event: "error", handler: ErrorHandler): this;
|
|
31
47
|
start(): Promise<void>;
|
|
32
48
|
stop(): Promise<void>;
|
|
33
49
|
send(recipientHandle: string, text: string): Promise<string>;
|
|
50
|
+
/** Start a conversation and return both transport identifiers. */
|
|
51
|
+
sendWithDetails(recipientHandle: string, text: string): Promise<SentMessage>;
|
|
52
|
+
/** Send inside a known conversation and return the new message id. */
|
|
53
|
+
sendInConversation(recipientHandle: string, text: string, conversationId: string): Promise<string>;
|
|
34
54
|
private activate;
|
|
35
55
|
private connect;
|
|
56
|
+
private scheduleReconnect;
|
|
36
57
|
private handleFrame;
|
|
37
58
|
private sendEnvelope;
|
|
59
|
+
private mirrorActivity;
|
|
38
60
|
private sendFrame;
|
|
39
61
|
private request;
|
|
40
62
|
private requireCredentials;
|
package/dist/agent.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { serverFrameSchema, } from "@atalk/protocol";
|
|
2
|
+
import { encodeAgentActivity, serverFrameSchema, } from "@atalk/protocol";
|
|
3
3
|
import WebSocket from "ws";
|
|
4
4
|
import { FileCredentialStore } from "./credential-store.js";
|
|
5
5
|
import { decryptTextNative, encryptTextNative, generateIdentityKeysNative } from "./native-core.js";
|
|
@@ -7,15 +7,27 @@ export class Agent {
|
|
|
7
7
|
baseUrl;
|
|
8
8
|
activationToken;
|
|
9
9
|
credentialStore;
|
|
10
|
+
supervisionEnabled;
|
|
10
11
|
credentials;
|
|
11
12
|
socket;
|
|
13
|
+
ready = false;
|
|
14
|
+
reconnectAttempt = 0;
|
|
12
15
|
stopped = false;
|
|
13
16
|
messageHandler;
|
|
14
17
|
errorHandler;
|
|
18
|
+
supervisors = [];
|
|
19
|
+
counterparties = new Map();
|
|
15
20
|
constructor(options) {
|
|
16
21
|
this.activationToken = options.token;
|
|
17
22
|
this.baseUrl = (options.baseUrl ?? "http://127.0.0.1:4001").replace(/\/$/u, "");
|
|
18
23
|
this.credentialStore = options.credentialStore ?? new FileCredentialStore(options.token, options.credentialPath);
|
|
24
|
+
this.supervisionEnabled = options.supervision ?? true;
|
|
25
|
+
}
|
|
26
|
+
get connected() {
|
|
27
|
+
return this.ready && this.socket?.readyState === WebSocket.OPEN;
|
|
28
|
+
}
|
|
29
|
+
get peer() {
|
|
30
|
+
return this.credentials?.peer;
|
|
19
31
|
}
|
|
20
32
|
on(event, handler) {
|
|
21
33
|
if (event === "message")
|
|
@@ -27,16 +39,35 @@ export class Agent {
|
|
|
27
39
|
async start() {
|
|
28
40
|
this.stopped = false;
|
|
29
41
|
this.credentials = (await this.credentialStore.load()) ?? (await this.activate());
|
|
42
|
+
if (this.supervisionEnabled) {
|
|
43
|
+
const result = await this.request("/v1/agent-runtime/supervisors");
|
|
44
|
+
this.supervisors = result.supervisors;
|
|
45
|
+
}
|
|
30
46
|
await this.connect();
|
|
31
47
|
}
|
|
32
48
|
async stop() {
|
|
33
49
|
this.stopped = true;
|
|
50
|
+
this.ready = false;
|
|
51
|
+
this.reconnectAttempt = 0;
|
|
34
52
|
this.socket?.close(1000, "Agent stopped");
|
|
35
53
|
}
|
|
36
54
|
async send(recipientHandle, text) {
|
|
37
|
-
return this.
|
|
55
|
+
return (await this.sendWithDetails(recipientHandle, text)).conversationId;
|
|
56
|
+
}
|
|
57
|
+
/** Start a conversation and return both transport identifiers. */
|
|
58
|
+
async sendWithDetails(recipientHandle, text) {
|
|
59
|
+
const conversationId = randomUUID();
|
|
60
|
+
const messageId = await this.sendEnvelope(recipientHandle, text, conversationId);
|
|
61
|
+
return { conversationId, messageId };
|
|
62
|
+
}
|
|
63
|
+
/** Send inside a known conversation and return the new message id. */
|
|
64
|
+
async sendInConversation(recipientHandle, text, conversationId) {
|
|
65
|
+
return this.sendEnvelope(recipientHandle, text, conversationId);
|
|
38
66
|
}
|
|
39
67
|
async activate() {
|
|
68
|
+
if (!this.activationToken) {
|
|
69
|
+
throw new Error("ACTIVATION_REQUIRED: Provide a one-time token because no persisted credentials were found");
|
|
70
|
+
}
|
|
40
71
|
const keys = generateIdentityKeysNative();
|
|
41
72
|
const response = await this.request("/v1/agents/activate", {
|
|
42
73
|
method: "POST",
|
|
@@ -53,6 +84,7 @@ export class Agent {
|
|
|
53
84
|
async connect() {
|
|
54
85
|
const credentials = this.requireCredentials();
|
|
55
86
|
const websocketUrl = `${this.baseUrl.replace(/^http/u, "ws")}/v1/ws`;
|
|
87
|
+
this.ready = false;
|
|
56
88
|
await new Promise((resolve, reject) => {
|
|
57
89
|
const socket = new WebSocket(websocketUrl);
|
|
58
90
|
this.socket = socket;
|
|
@@ -65,13 +97,25 @@ export class Agent {
|
|
|
65
97
|
}, 10_000);
|
|
66
98
|
socket.on("open", () => socket.send(JSON.stringify({ kind: "AUTH", token: credentials.sessionToken })));
|
|
67
99
|
socket.on("message", (raw) => {
|
|
68
|
-
|
|
69
|
-
|
|
100
|
+
const frame = serverFrameSchema.parse(JSON.parse(raw.toString()));
|
|
101
|
+
void this.handleFrame(frame).then(() => {
|
|
102
|
+
if (frame.kind === "READY" && !ready && this.socket === socket) {
|
|
70
103
|
ready = true;
|
|
104
|
+
this.ready = true;
|
|
105
|
+
this.reconnectAttempt = 0;
|
|
71
106
|
clearTimeout(timeout);
|
|
72
107
|
resolve();
|
|
73
108
|
}
|
|
74
|
-
}).catch((error) =>
|
|
109
|
+
}).catch((error) => {
|
|
110
|
+
if (!ready) {
|
|
111
|
+
clearTimeout(timeout);
|
|
112
|
+
reject(error);
|
|
113
|
+
socket.close();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.emitError(error);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
75
119
|
});
|
|
76
120
|
socket.on("error", (error) => {
|
|
77
121
|
clearTimeout(timeout);
|
|
@@ -80,13 +124,41 @@ export class Agent {
|
|
|
80
124
|
else
|
|
81
125
|
this.emitError(error);
|
|
82
126
|
});
|
|
83
|
-
socket.on("close", () => {
|
|
127
|
+
socket.on("close", (code) => {
|
|
84
128
|
clearTimeout(timeout);
|
|
129
|
+
if (this.socket === socket)
|
|
130
|
+
this.ready = false;
|
|
131
|
+
if (!ready) {
|
|
132
|
+
const error = new Error(code === 4001 || code === 1008 ? "INVALID_SESSION: Agent credentials were revoked" : "aTalk connection closed before authentication");
|
|
133
|
+
if (code === 4001 || code === 1008)
|
|
134
|
+
this.stopped = true;
|
|
135
|
+
reject(error);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (code === 4001 || code === 1008) {
|
|
139
|
+
this.stopped = true;
|
|
140
|
+
this.emitError(new Error("INVALID_SESSION: Agent credentials were revoked"));
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
85
143
|
if (!this.stopped && ready)
|
|
86
|
-
|
|
144
|
+
this.scheduleReconnect();
|
|
87
145
|
});
|
|
88
146
|
});
|
|
89
147
|
}
|
|
148
|
+
scheduleReconnect() {
|
|
149
|
+
if (this.stopped)
|
|
150
|
+
return;
|
|
151
|
+
const delay = reconnectDelay(this.reconnectAttempt++);
|
|
152
|
+
setTimeout(() => {
|
|
153
|
+
if (this.stopped)
|
|
154
|
+
return;
|
|
155
|
+
void this.connect().catch((error) => {
|
|
156
|
+
this.emitError(error);
|
|
157
|
+
if (!this.stopped)
|
|
158
|
+
this.scheduleReconnect();
|
|
159
|
+
});
|
|
160
|
+
}, delay);
|
|
161
|
+
}
|
|
90
162
|
async handleFrame(frame) {
|
|
91
163
|
if (frame.kind === "ERROR")
|
|
92
164
|
throw new Error(`${frame.code}: ${frame.message}`);
|
|
@@ -104,6 +176,11 @@ export class Agent {
|
|
|
104
176
|
senderEncryptionPublicKey: sender.encryptionPublicKey,
|
|
105
177
|
recipientEncryptionSecretKey: credentials.keys.encryptionSecretKey,
|
|
106
178
|
});
|
|
179
|
+
const isSupervisor = this.supervisors.some((supervisor) => supervisor.id === sender.id);
|
|
180
|
+
if (!isSupervisor) {
|
|
181
|
+
this.counterparties.set(frame.envelope.conversation_id, sender);
|
|
182
|
+
await this.mirrorActivity("INCOMING", sender, text, frame.envelope.conversation_id, frame.envelope.message_id, frame.envelope.timestamp);
|
|
183
|
+
}
|
|
107
184
|
this.sendFrame({ kind: "ACK", messageId: frame.envelope.message_id, state: "DELIVERED" });
|
|
108
185
|
if (this.messageHandler) {
|
|
109
186
|
await this.messageHandler({
|
|
@@ -112,9 +189,17 @@ export class Agent {
|
|
|
112
189
|
text,
|
|
113
190
|
sender,
|
|
114
191
|
receivedAt: new Date(frame.envelope.timestamp),
|
|
115
|
-
|
|
116
|
-
|
|
192
|
+
isSupervisor,
|
|
193
|
+
reply: (replyText) => this.sendEnvelope(sender.handle, replyText, frame.envelope.conversation_id),
|
|
194
|
+
relay: async (relayText) => {
|
|
195
|
+
if (!isSupervisor)
|
|
196
|
+
throw new Error("Only supervisor messages can be relayed");
|
|
197
|
+
const counterparty = this.counterparties.get(frame.envelope.conversation_id);
|
|
198
|
+
if (!counterparty)
|
|
199
|
+
throw new Error("No active counterparty exists for this supervised conversation");
|
|
200
|
+
return this.sendEnvelope(counterparty.handle, relayText, frame.envelope.conversation_id);
|
|
117
201
|
},
|
|
202
|
+
markRead: async () => this.sendFrame({ kind: "ACK", messageId: frame.envelope.message_id, state: "READ" }),
|
|
118
203
|
});
|
|
119
204
|
}
|
|
120
205
|
}
|
|
@@ -138,8 +223,45 @@ export class Agent {
|
|
|
138
223
|
recipientEncryptionPublicKey: recipient.encryptionPublicKey,
|
|
139
224
|
});
|
|
140
225
|
this.sendFrame({ kind: "DELIVER", envelope });
|
|
226
|
+
const isSupervisor = this.supervisors.some((supervisor) => supervisor.id === recipient.id);
|
|
227
|
+
if (!isSupervisor) {
|
|
228
|
+
this.counterparties.set(conversationId, recipient);
|
|
229
|
+
await this.mirrorActivity("OUTGOING", recipient, text, conversationId, envelope.message_id, envelope.timestamp);
|
|
230
|
+
}
|
|
141
231
|
return envelope.message_id;
|
|
142
232
|
}
|
|
233
|
+
async mirrorActivity(direction, counterparty, text, conversationId, sourceMessageId, observedAt) {
|
|
234
|
+
if (!this.supervisionEnabled || this.supervisors.length === 0)
|
|
235
|
+
return;
|
|
236
|
+
const credentials = this.requireCredentials();
|
|
237
|
+
const plaintext = encodeAgentActivity({
|
|
238
|
+
version: 1,
|
|
239
|
+
kind: "AGENT_ACTIVITY",
|
|
240
|
+
agentPeerId: credentials.peer.id,
|
|
241
|
+
agentHandle: credentials.peer.handle,
|
|
242
|
+
counterpartyPeerId: counterparty.id,
|
|
243
|
+
counterpartyHandle: counterparty.handle,
|
|
244
|
+
counterpartyDisplayName: counterparty.displayName,
|
|
245
|
+
direction,
|
|
246
|
+
sourceMessageId,
|
|
247
|
+
observedAt,
|
|
248
|
+
text,
|
|
249
|
+
});
|
|
250
|
+
for (const supervisor of this.supervisors) {
|
|
251
|
+
const envelope = encryptTextNative({
|
|
252
|
+
messageId: randomUUID(),
|
|
253
|
+
conversationId,
|
|
254
|
+
senderPeerId: credentials.peer.id,
|
|
255
|
+
recipientPeerId: supervisor.id,
|
|
256
|
+
timestamp: new Date().toISOString(),
|
|
257
|
+
plaintext,
|
|
258
|
+
senderSigningSecretKey: credentials.keys.signingSecretKey,
|
|
259
|
+
senderEncryptionSecretKey: credentials.keys.encryptionSecretKey,
|
|
260
|
+
recipientEncryptionPublicKey: supervisor.encryptionPublicKey,
|
|
261
|
+
});
|
|
262
|
+
this.sendFrame({ kind: "DELIVER", envelope });
|
|
263
|
+
}
|
|
264
|
+
}
|
|
143
265
|
sendFrame(frame) {
|
|
144
266
|
if (!this.socket || this.socket.readyState !== WebSocket.OPEN)
|
|
145
267
|
throw new Error("Agent is not connected");
|
|
@@ -173,4 +295,8 @@ export class Agent {
|
|
|
173
295
|
queueMicrotask(() => { throw normalized; });
|
|
174
296
|
}
|
|
175
297
|
}
|
|
298
|
+
function reconnectDelay(attempt) {
|
|
299
|
+
const exponential = Math.min(30_000, 500 * (2 ** Math.min(attempt, 6)));
|
|
300
|
+
return exponential + Math.floor(Math.random() * Math.max(1, Math.floor(exponential * 0.2)));
|
|
301
|
+
}
|
|
176
302
|
//# sourceMappingURL=agent.js.map
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,iBAAiB,GAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAA+C,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAqBpG,MAAM,OAAO,KAAK;IACC,OAAO,CAAS;IAChB,eAAe,CAAS;IACxB,eAAe,CAAkB;IAC1C,WAAW,CAAoB;IAC/B,MAAM,CAAa;IACnB,OAAO,GAAG,KAAK,CAAC;IAChB,cAAc,CAAkB;IAChC,YAAY,CAAgB;IAEpC,YAAY,OAAqB;QAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnH,CAAC;IAID,EAAE,CAAC,KAA0B,EAAE,OAAsC;QACnE,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAyB,CAAC;;YACpE,IAAI,CAAC,YAAY,GAAG,OAAuB,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAuB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,GAAG,0BAA0B,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAsC,qBAAqB,EAAE;YAC9F,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;aAC9C,CAAC;SACH,EAAE,KAAK,CAAC,CAAC;QACV,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChF,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;QACrE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC,EAAE,MAAM,CAAC,CAAC;YAEX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YACxG,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,KAAK,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACnF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBACrC,KAAK,GAAG,IAAI,CAAC;wBACb,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC3B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;oBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK;oBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAkB;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAa,aAAa,KAAK,CAAC,QAAQ,CAAC,cAAc,OAAO,CAAC,CAAC;QACjG,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,sBAAsB,EAAE,MAAM,CAAC,gBAAgB;YAC/C,yBAAyB,EAAE,MAAM,CAAC,mBAAmB;YACrD,4BAA4B,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,cAAc,CAAC;gBACxB,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;gBAC7B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe;gBAC9C,IAAI;gBACJ,MAAM;gBACN,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC9C,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;oBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACpF,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,eAAuB,EAAE,IAAY,EAAE,cAAsB;QACtF,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAA4B,wBAAwB,EAAE;YAC5F,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAsB,iBAAiB,CAAC;YACpD,SAAS,EAAE,UAAU,EAAE;YACvB,cAAc;YACd,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;YACjC,eAAe,EAAE,SAAS,CAAC,EAAE;YAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI;YACf,sBAAsB,EAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB;YACzD,yBAAyB,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB;YAC/D,4BAA4B,EAAE,SAAS,CAAC,mBAAmB;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,OAAoB,EAAE,EAAE,aAAa,GAAG,IAAI;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YACrD,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChG,GAAG,IAAI,CAAC,OAAO;aAChB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuD,CAAC;QACxF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,SAAS,CAAC,KAAc;QAC9B,MAAM,UAAU,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;;YAChD,cAAc,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface CredentialStore {
|
|
|
10
10
|
}
|
|
11
11
|
export declare class FileCredentialStore implements CredentialStore {
|
|
12
12
|
readonly path: string;
|
|
13
|
-
constructor(activationToken
|
|
13
|
+
constructor(activationToken?: string, path?: string);
|
|
14
14
|
load(): Promise<AgentCredentials | undefined>;
|
|
15
15
|
save(credentials: AgentCredentials): Promise<void>;
|
|
16
16
|
}
|
package/dist/credential-store.js
CHANGED
|
@@ -4,8 +4,15 @@ import { dirname, resolve } from "node:path";
|
|
|
4
4
|
export class FileCredentialStore {
|
|
5
5
|
path;
|
|
6
6
|
constructor(activationToken, path) {
|
|
7
|
+
if (path) {
|
|
8
|
+
this.path = resolve(path);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!activationToken) {
|
|
12
|
+
throw new Error("An activation token or an explicit credential path is required");
|
|
13
|
+
}
|
|
7
14
|
const suffix = createHash("sha256").update(activationToken).digest("hex").slice(0, 16);
|
|
8
|
-
this.path = resolve(
|
|
15
|
+
this.path = resolve(`.atalk/agent-${suffix}.json`);
|
|
9
16
|
}
|
|
10
17
|
async load() {
|
|
11
18
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAc7C,MAAM,OAAO,mBAAmB;IACrB,IAAI,CAAS;IAEtB,YAAY,
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAc7C,MAAM,OAAO,mBAAmB;IACrB,IAAI,CAAS;IAEtB,YAAY,eAAwB,EAAE,IAAa;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,gBAAgB,MAAM,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAA6B;QACtC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Agent } from "./agent.js";
|
|
2
|
-
export type { AgentOptions, IncomingMessage } from "./agent.js";
|
|
2
|
+
export type { AgentOptions, IncomingMessage, SentMessage } from "./agent.js";
|
|
3
3
|
export { FileCredentialStore } from "./credential-store.js";
|
|
4
4
|
export type { AgentCredentials, CredentialStore } from "./credential-store.js";
|
|
5
5
|
export { RUST_CORE_VERSION } from "./native-core.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atalk/sdk",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.4",
|
|
4
4
|
"description": "Node.js SDK for connecting AI agents to the aTalk messaging network",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"ws": "^8.18.0",
|
|
45
|
-
"@atalk/core-native": "0.1.0-alpha.
|
|
46
|
-
"@atalk/protocol": "0.1.0-alpha.
|
|
45
|
+
"@atalk/core-native": "0.1.0-alpha.4",
|
|
46
|
+
"@atalk/protocol": "0.1.0-alpha.4"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^24.0.0",
|