@atalk/sdk 0.1.0-alpha.3 → 0.1.0-alpha.5
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 +10 -4
- package/dist/agent.d.ts +18 -3
- package/dist/agent.js +54 -8
- 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,14 @@ 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();
|
|
33
35
|
if (message.isSupervisor) {
|
|
34
36
|
await message.relay(message.text);
|
|
35
37
|
return;
|
|
@@ -41,18 +43,22 @@ agent.on("error", console.error);
|
|
|
41
43
|
await agent.start();
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
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.
|
|
45
47
|
|
|
46
48
|
## API
|
|
47
49
|
|
|
48
50
|
- `new Agent(options)` creates an agent client.
|
|
49
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.
|
|
50
54
|
- `message.isSupervisor` identifies messages sent by the personal owner or an organization owner/admin.
|
|
51
55
|
- `message.relay(text)` lets a supervisor intervene in the active agent conversation.
|
|
52
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.
|
|
53
57
|
- `agent.on("error", handler)` handles connection and protocol errors.
|
|
54
58
|
- `agent.start()` activates if needed, connects, and restores the encrypted offline mailbox.
|
|
55
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.
|
|
56
62
|
- `agent.stop()` closes the connection.
|
|
57
63
|
- `FileCredentialStore` is the default local credential implementation.
|
|
58
64
|
|
package/dist/agent.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
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;
|
|
@@ -14,8 +15,13 @@ export interface IncomingMessage {
|
|
|
14
15
|
sender: PublicPeer;
|
|
15
16
|
receivedAt: Date;
|
|
16
17
|
isSupervisor: boolean;
|
|
17
|
-
reply(text: string): Promise<
|
|
18
|
-
relay(text: string): Promise<
|
|
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;
|
|
19
25
|
}
|
|
20
26
|
type MessageHandler = (message: IncomingMessage) => void | Promise<void>;
|
|
21
27
|
type ErrorHandler = (error: Error) => void;
|
|
@@ -26,19 +32,28 @@ export declare class Agent {
|
|
|
26
32
|
private readonly supervisionEnabled;
|
|
27
33
|
private credentials?;
|
|
28
34
|
private socket?;
|
|
35
|
+
private ready;
|
|
36
|
+
private reconnectAttempt;
|
|
29
37
|
private stopped;
|
|
30
38
|
private messageHandler?;
|
|
31
39
|
private errorHandler?;
|
|
32
40
|
private supervisors;
|
|
33
41
|
private readonly counterparties;
|
|
34
42
|
constructor(options: AgentOptions);
|
|
43
|
+
get connected(): boolean;
|
|
44
|
+
get peer(): PublicPeer | undefined;
|
|
35
45
|
on(event: "message", handler: MessageHandler): this;
|
|
36
46
|
on(event: "error", handler: ErrorHandler): this;
|
|
37
47
|
start(): Promise<void>;
|
|
38
48
|
stop(): Promise<void>;
|
|
39
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>;
|
|
40
54
|
private activate;
|
|
41
55
|
private connect;
|
|
56
|
+
private scheduleReconnect;
|
|
42
57
|
private handleFrame;
|
|
43
58
|
private sendEnvelope;
|
|
44
59
|
private mirrorActivity;
|
package/dist/agent.js
CHANGED
|
@@ -10,6 +10,8 @@ export class Agent {
|
|
|
10
10
|
supervisionEnabled;
|
|
11
11
|
credentials;
|
|
12
12
|
socket;
|
|
13
|
+
ready = false;
|
|
14
|
+
reconnectAttempt = 0;
|
|
13
15
|
stopped = false;
|
|
14
16
|
messageHandler;
|
|
15
17
|
errorHandler;
|
|
@@ -21,6 +23,12 @@ export class Agent {
|
|
|
21
23
|
this.credentialStore = options.credentialStore ?? new FileCredentialStore(options.token, options.credentialPath);
|
|
22
24
|
this.supervisionEnabled = options.supervision ?? true;
|
|
23
25
|
}
|
|
26
|
+
get connected() {
|
|
27
|
+
return this.ready && this.socket?.readyState === WebSocket.OPEN;
|
|
28
|
+
}
|
|
29
|
+
get peer() {
|
|
30
|
+
return this.credentials?.peer;
|
|
31
|
+
}
|
|
24
32
|
on(event, handler) {
|
|
25
33
|
if (event === "message")
|
|
26
34
|
this.messageHandler = handler;
|
|
@@ -39,14 +47,27 @@ export class Agent {
|
|
|
39
47
|
}
|
|
40
48
|
async stop() {
|
|
41
49
|
this.stopped = true;
|
|
50
|
+
this.ready = false;
|
|
51
|
+
this.reconnectAttempt = 0;
|
|
42
52
|
this.socket?.close(1000, "Agent stopped");
|
|
43
53
|
}
|
|
44
54
|
async send(recipientHandle, text) {
|
|
55
|
+
return (await this.sendWithDetails(recipientHandle, text)).conversationId;
|
|
56
|
+
}
|
|
57
|
+
/** Start a conversation and return both transport identifiers. */
|
|
58
|
+
async sendWithDetails(recipientHandle, text) {
|
|
45
59
|
const conversationId = randomUUID();
|
|
46
|
-
await this.sendEnvelope(recipientHandle, text, conversationId);
|
|
47
|
-
return conversationId;
|
|
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);
|
|
48
66
|
}
|
|
49
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
|
+
}
|
|
50
71
|
const keys = generateIdentityKeysNative();
|
|
51
72
|
const response = await this.request("/v1/agents/activate", {
|
|
52
73
|
method: "POST",
|
|
@@ -63,6 +84,7 @@ export class Agent {
|
|
|
63
84
|
async connect() {
|
|
64
85
|
const credentials = this.requireCredentials();
|
|
65
86
|
const websocketUrl = `${this.baseUrl.replace(/^http/u, "ws")}/v1/ws`;
|
|
87
|
+
this.ready = false;
|
|
66
88
|
await new Promise((resolve, reject) => {
|
|
67
89
|
const socket = new WebSocket(websocketUrl);
|
|
68
90
|
this.socket = socket;
|
|
@@ -79,6 +101,8 @@ export class Agent {
|
|
|
79
101
|
void this.handleFrame(frame).then(() => {
|
|
80
102
|
if (frame.kind === "READY" && !ready && this.socket === socket) {
|
|
81
103
|
ready = true;
|
|
104
|
+
this.ready = true;
|
|
105
|
+
this.reconnectAttempt = 0;
|
|
82
106
|
clearTimeout(timeout);
|
|
83
107
|
resolve();
|
|
84
108
|
}
|
|
@@ -102,8 +126,13 @@ export class Agent {
|
|
|
102
126
|
});
|
|
103
127
|
socket.on("close", (code) => {
|
|
104
128
|
clearTimeout(timeout);
|
|
129
|
+
if (this.socket === socket)
|
|
130
|
+
this.ready = false;
|
|
105
131
|
if (!ready) {
|
|
106
|
-
|
|
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);
|
|
107
136
|
return;
|
|
108
137
|
}
|
|
109
138
|
if (code === 4001 || code === 1008) {
|
|
@@ -112,10 +141,24 @@ export class Agent {
|
|
|
112
141
|
return;
|
|
113
142
|
}
|
|
114
143
|
if (!this.stopped && ready)
|
|
115
|
-
|
|
144
|
+
this.scheduleReconnect();
|
|
116
145
|
});
|
|
117
146
|
});
|
|
118
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
|
+
}
|
|
119
162
|
async handleFrame(frame) {
|
|
120
163
|
if (frame.kind === "ERROR")
|
|
121
164
|
throw new Error(`${frame.code}: ${frame.message}`);
|
|
@@ -147,17 +190,16 @@ export class Agent {
|
|
|
147
190
|
sender,
|
|
148
191
|
receivedAt: new Date(frame.envelope.timestamp),
|
|
149
192
|
isSupervisor,
|
|
150
|
-
reply:
|
|
151
|
-
await this.sendEnvelope(sender.handle, replyText, frame.envelope.conversation_id);
|
|
152
|
-
},
|
|
193
|
+
reply: (replyText) => this.sendEnvelope(sender.handle, replyText, frame.envelope.conversation_id),
|
|
153
194
|
relay: async (relayText) => {
|
|
154
195
|
if (!isSupervisor)
|
|
155
196
|
throw new Error("Only supervisor messages can be relayed");
|
|
156
197
|
const counterparty = this.counterparties.get(frame.envelope.conversation_id);
|
|
157
198
|
if (!counterparty)
|
|
158
199
|
throw new Error("No active counterparty exists for this supervised conversation");
|
|
159
|
-
|
|
200
|
+
return this.sendEnvelope(counterparty.handle, relayText, frame.envelope.conversation_id);
|
|
160
201
|
},
|
|
202
|
+
markRead: async () => this.sendFrame({ kind: "ACK", messageId: frame.envelope.message_id, state: "READ" }),
|
|
161
203
|
});
|
|
162
204
|
}
|
|
163
205
|
}
|
|
@@ -253,4 +295,8 @@ export class Agent {
|
|
|
253
295
|
queueMicrotask(() => { throw normalized; });
|
|
254
296
|
}
|
|
255
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
|
+
}
|
|
256
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":"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"}
|
|
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.5",
|
|
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.5",
|
|
46
|
+
"@atalk/protocol": "0.1.0-alpha.5"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^24.0.0",
|