@agentvault/secure-channel 0.6.0 → 0.6.2
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/dist/cli.js +10 -1
- package/dist/cli.js.map +2 -2
- package/dist/openclaw-entry.d.ts +7 -6
- package/dist/openclaw-entry.d.ts.map +1 -1
- package/dist/openclaw-entry.js +165 -0
- package/dist/openclaw-entry.js.map +7 -0
- package/dist/setup.d.ts.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/openclaw-entry.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenClaw plugin entry point.
|
|
2
|
+
* OpenClaw channel plugin entry point.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Intentionally thin — no heavy imports (libsodium etc.) at module load time.
|
|
5
|
+
* SecureChannel is dynamically imported inside gateway.startAccount (already async)
|
|
6
|
+
* so libsodium's top-level await never runs during plugin registration.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
+
* Loaded by OpenClaw via the `openclaw.extensions` field in package.json.
|
|
8
9
|
*/
|
|
9
|
-
declare const
|
|
10
|
+
declare const _default: {
|
|
10
11
|
id: string;
|
|
11
12
|
name: string;
|
|
12
13
|
description: string;
|
|
13
14
|
register(api: any): void;
|
|
14
15
|
};
|
|
15
|
-
export default
|
|
16
|
+
export default _default;
|
|
16
17
|
//# sourceMappingURL=openclaw-entry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;kBAwLa,GAAG;;AALnB,wBASE"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// src/openclaw-entry.ts
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
var _ocRuntime = null;
|
|
4
|
+
var _channels = /* @__PURE__ */ new Map();
|
|
5
|
+
function listAccountIds(cfg) {
|
|
6
|
+
return cfg?.channels?.agentvault?.dataDir ? ["default"] : [];
|
|
7
|
+
}
|
|
8
|
+
function resolveAccount(cfg, accountId) {
|
|
9
|
+
const av = cfg?.channels?.agentvault ?? {};
|
|
10
|
+
return {
|
|
11
|
+
accountId: accountId ?? "default",
|
|
12
|
+
dataDir: av.dataDir ?? "~/.openclaw/agentvault",
|
|
13
|
+
apiUrl: av.apiUrl ?? "https://api.agentvault.chat",
|
|
14
|
+
agentName: av.agentName ?? "OpenClaw Agent",
|
|
15
|
+
configured: Boolean(av.dataDir)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
async function handleInbound(params) {
|
|
19
|
+
const { plaintext, metadata, channel, account, cfg } = params;
|
|
20
|
+
const core = _ocRuntime;
|
|
21
|
+
const route = core.channel.routing.resolveAgentRoute({
|
|
22
|
+
cfg,
|
|
23
|
+
channel: "agentvault",
|
|
24
|
+
accountId: account.accountId,
|
|
25
|
+
peer: { kind: "direct", id: "agentvault:owner" }
|
|
26
|
+
});
|
|
27
|
+
const storePath = core.channel.session.resolveStorePath(cfg?.session?.store, {
|
|
28
|
+
agentId: route.agentId
|
|
29
|
+
});
|
|
30
|
+
const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(cfg);
|
|
31
|
+
const previousTimestamp = core.channel.session.readSessionUpdatedAt({
|
|
32
|
+
storePath,
|
|
33
|
+
sessionKey: route.sessionKey
|
|
34
|
+
});
|
|
35
|
+
const body = core.channel.reply.formatAgentEnvelope({
|
|
36
|
+
channel: "AgentVault",
|
|
37
|
+
from: "Owner",
|
|
38
|
+
timestamp: new Date(metadata.timestamp).getTime(),
|
|
39
|
+
previousTimestamp,
|
|
40
|
+
envelope: envelopeOptions,
|
|
41
|
+
body: plaintext
|
|
42
|
+
});
|
|
43
|
+
const ctxPayload = core.channel.reply.finalizeInboundContext({
|
|
44
|
+
Body: body,
|
|
45
|
+
RawBody: plaintext,
|
|
46
|
+
CommandBody: plaintext,
|
|
47
|
+
From: "agentvault:owner",
|
|
48
|
+
To: `agentvault:agent:${account.accountId}`,
|
|
49
|
+
SessionKey: route.sessionKey,
|
|
50
|
+
AccountId: account.accountId,
|
|
51
|
+
ChatType: "direct",
|
|
52
|
+
ConversationLabel: "AgentVault",
|
|
53
|
+
SenderName: "Owner",
|
|
54
|
+
SenderId: "agentvault:owner",
|
|
55
|
+
Provider: "agentvault",
|
|
56
|
+
Surface: "agentvault",
|
|
57
|
+
MessageSid: metadata.messageId,
|
|
58
|
+
Timestamp: new Date(metadata.timestamp).getTime(),
|
|
59
|
+
OriginatingChannel: "agentvault",
|
|
60
|
+
OriginatingTo: `agentvault:agent:${account.accountId}`,
|
|
61
|
+
CommandAuthorized: true
|
|
62
|
+
});
|
|
63
|
+
await core.channel.session.recordInboundSession({
|
|
64
|
+
storePath,
|
|
65
|
+
sessionKey: ctxPayload.SessionKey ?? route.sessionKey,
|
|
66
|
+
ctx: ctxPayload,
|
|
67
|
+
onRecordError: (err) => {
|
|
68
|
+
core.error?.(`[AgentVault] session record failed: ${String(err)}`);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
await core.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
|
|
72
|
+
ctx: ctxPayload,
|
|
73
|
+
cfg,
|
|
74
|
+
dispatcherOptions: {
|
|
75
|
+
deliver: async (payload) => {
|
|
76
|
+
const text = (payload.text ?? "").trim();
|
|
77
|
+
if (text) await channel.send(text);
|
|
78
|
+
},
|
|
79
|
+
onError: (err, info) => {
|
|
80
|
+
core.error?.(`[AgentVault] ${info?.kind ?? "reply"} error: ${String(err)}`);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
replyOptions: {}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
var agentVaultPlugin = {
|
|
87
|
+
id: "agentvault",
|
|
88
|
+
meta: {
|
|
89
|
+
id: "agentvault",
|
|
90
|
+
label: "AgentVault",
|
|
91
|
+
selectionLabel: "AgentVault (E2E Encrypted)",
|
|
92
|
+
docsPath: "https://agentvault.chat/docs",
|
|
93
|
+
blurb: "Zero-knowledge, end-to-end encrypted messaging between owners and their AI agents.",
|
|
94
|
+
aliases: ["av", "agent-vault"]
|
|
95
|
+
},
|
|
96
|
+
capabilities: { chatTypes: ["direct"] },
|
|
97
|
+
config: { listAccountIds, resolveAccount },
|
|
98
|
+
gateway: {
|
|
99
|
+
startAccount: async (ctx) => {
|
|
100
|
+
const { account, cfg, log, abortSignal } = ctx;
|
|
101
|
+
if (!account.configured) {
|
|
102
|
+
throw new Error(
|
|
103
|
+
"AgentVault channel not configured. Run: npx @agentvault/secure-channel setup --token=av_tok_...\nThen restart OpenClaw."
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
const dataDir = resolve(account.dataDir.replace(/^~/, process.env.HOME ?? "~"));
|
|
107
|
+
log?.(`[AgentVault] starting (dataDir=${dataDir})`);
|
|
108
|
+
const { SecureChannel } = await import("./index.js");
|
|
109
|
+
const channel = new SecureChannel({
|
|
110
|
+
inviteToken: "",
|
|
111
|
+
dataDir,
|
|
112
|
+
apiUrl: account.apiUrl,
|
|
113
|
+
agentName: account.agentName,
|
|
114
|
+
onMessage: async (plaintext, metadata) => {
|
|
115
|
+
if (!_ocRuntime) {
|
|
116
|
+
log?.("[AgentVault] runtime not ready, dropping message");
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
await handleInbound({ plaintext, metadata, channel, account, cfg });
|
|
121
|
+
} catch (err) {
|
|
122
|
+
log?.(`[AgentVault] inbound error: ${String(err)}`);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
onStateChange: (state) => log?.(`[AgentVault] \u2192 ${state}`)
|
|
126
|
+
});
|
|
127
|
+
_channels.set(account.accountId, channel);
|
|
128
|
+
abortSignal?.addEventListener("abort", () => _channels.delete(account.accountId));
|
|
129
|
+
await channel.start();
|
|
130
|
+
return {
|
|
131
|
+
stop: async () => {
|
|
132
|
+
await channel.stop();
|
|
133
|
+
_channels.delete(account.accountId);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
outbound: {
|
|
139
|
+
deliveryMode: "direct",
|
|
140
|
+
sendText: async ({ text, accountId }) => {
|
|
141
|
+
const ch = _channels.get(accountId ?? "default");
|
|
142
|
+
if (!ch) return { ok: false, error: "AgentVault channel not connected" };
|
|
143
|
+
try {
|
|
144
|
+
await ch.send(text);
|
|
145
|
+
return { ok: true };
|
|
146
|
+
} catch (err) {
|
|
147
|
+
return { ok: false, error: String(err) };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
var openclaw_entry_default = {
|
|
153
|
+
// Plugin id matches unscoped package name (@agentvault/secure-channel → secure-channel)
|
|
154
|
+
id: "secure-channel",
|
|
155
|
+
name: "AgentVault",
|
|
156
|
+
description: "End-to-end encrypted, zero-knowledge messaging between AI agent owners and their agents.",
|
|
157
|
+
register(api) {
|
|
158
|
+
_ocRuntime = api.runtime;
|
|
159
|
+
api.registerChannel({ plugin: agentVaultPlugin });
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
export {
|
|
163
|
+
openclaw_entry_default as default
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=openclaw-entry.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/openclaw-entry.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * OpenClaw channel plugin entry point.\n *\n * Intentionally thin \u2014 no heavy imports (libsodium etc.) at module load time.\n * SecureChannel is dynamically imported inside gateway.startAccount (already async)\n * so libsodium's top-level await never runs during plugin registration.\n *\n * Loaded by OpenClaw via the `openclaw.extensions` field in package.json.\n */\n\nimport { resolve } from \"node:path\";\n\n// --- Runtime and active channels (set during register) ---\nlet _ocRuntime: any = null;\nconst _channels = new Map<string, any>();\n\n// --- Channel config helpers ---\n\nfunction listAccountIds(cfg: any): string[] {\n return cfg?.channels?.agentvault?.dataDir ? [\"default\"] : [];\n}\n\nfunction resolveAccount(cfg: any, accountId?: string) {\n const av = cfg?.channels?.agentvault ?? {};\n return {\n accountId: accountId ?? \"default\",\n dataDir: av.dataDir ?? \"~/.openclaw/agentvault\",\n apiUrl: av.apiUrl ?? \"https://api.agentvault.chat\",\n agentName: av.agentName ?? \"OpenClaw Agent\",\n configured: Boolean(av.dataDir),\n };\n}\n\n// --- Inbound message dispatch ---\n\nasync function handleInbound(params: {\n plaintext: string;\n metadata: any;\n channel: any;\n account: any;\n cfg: any;\n}): Promise<void> {\n const { plaintext, metadata, channel, account, cfg } = params;\n const core = _ocRuntime;\n\n const route = core.channel.routing.resolveAgentRoute({\n cfg,\n channel: \"agentvault\",\n accountId: account.accountId,\n peer: { kind: \"direct\", id: \"agentvault:owner\" },\n });\n\n const storePath = core.channel.session.resolveStorePath(cfg?.session?.store, {\n agentId: route.agentId,\n });\n\n const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(cfg);\n const previousTimestamp = core.channel.session.readSessionUpdatedAt({\n storePath,\n sessionKey: route.sessionKey,\n });\n\n const body = core.channel.reply.formatAgentEnvelope({\n channel: \"AgentVault\",\n from: \"Owner\",\n timestamp: new Date(metadata.timestamp).getTime(),\n previousTimestamp,\n envelope: envelopeOptions,\n body: plaintext,\n });\n\n const ctxPayload = core.channel.reply.finalizeInboundContext({\n Body: body,\n RawBody: plaintext,\n CommandBody: plaintext,\n From: \"agentvault:owner\",\n To: `agentvault:agent:${account.accountId}`,\n SessionKey: route.sessionKey,\n AccountId: account.accountId,\n ChatType: \"direct\",\n ConversationLabel: \"AgentVault\",\n SenderName: \"Owner\",\n SenderId: \"agentvault:owner\",\n Provider: \"agentvault\",\n Surface: \"agentvault\",\n MessageSid: metadata.messageId,\n Timestamp: new Date(metadata.timestamp).getTime(),\n OriginatingChannel: \"agentvault\",\n OriginatingTo: `agentvault:agent:${account.accountId}`,\n CommandAuthorized: true,\n });\n\n await core.channel.session.recordInboundSession({\n storePath,\n sessionKey: ctxPayload.SessionKey ?? route.sessionKey,\n ctx: ctxPayload,\n onRecordError: (err: Error) => {\n core.error?.(`[AgentVault] session record failed: ${String(err)}`);\n },\n });\n\n await core.channel.reply.dispatchReplyWithBufferedBlockDispatcher({\n ctx: ctxPayload,\n cfg,\n dispatcherOptions: {\n deliver: async (payload: { text?: string }) => {\n const text = (payload.text ?? \"\").trim();\n if (text) await channel.send(text);\n },\n onError: (err: Error, info?: { kind?: string }) => {\n core.error?.(`[AgentVault] ${info?.kind ?? \"reply\"} error: ${String(err)}`);\n },\n },\n replyOptions: {},\n });\n}\n\n// --- Channel plugin definition ---\n\nconst agentVaultPlugin = {\n id: \"agentvault\",\n meta: {\n id: \"agentvault\",\n label: \"AgentVault\",\n selectionLabel: \"AgentVault (E2E Encrypted)\",\n docsPath: \"https://agentvault.chat/docs\",\n blurb: \"Zero-knowledge, end-to-end encrypted messaging between owners and their AI agents.\",\n aliases: [\"av\", \"agent-vault\"],\n },\n capabilities: { chatTypes: [\"direct\"] },\n config: { listAccountIds, resolveAccount },\n\n gateway: {\n startAccount: async (ctx: any) => {\n const { account, cfg, log, abortSignal } = ctx;\n\n if (!account.configured) {\n throw new Error(\n \"AgentVault channel not configured. Run: npx @agentvault/secure-channel setup --token=av_tok_...\\nThen restart OpenClaw.\",\n );\n }\n\n const dataDir = resolve(account.dataDir.replace(/^~/, process.env.HOME ?? \"~\"));\n log?.(`[AgentVault] starting (dataDir=${dataDir})`);\n\n // Lazy import \u2014 defers libsodium initialization until channel actually starts\n const { SecureChannel } = await import(\"./index.js\");\n\n const channel = new SecureChannel({\n inviteToken: \"\",\n dataDir,\n apiUrl: account.apiUrl,\n agentName: account.agentName,\n onMessage: async (plaintext: string, metadata: any) => {\n if (!_ocRuntime) { log?.(\"[AgentVault] runtime not ready, dropping message\"); return; }\n try {\n await handleInbound({ plaintext, metadata, channel, account, cfg });\n } catch (err) {\n log?.(`[AgentVault] inbound error: ${String(err)}`);\n }\n },\n onStateChange: (state: string) => log?.(`[AgentVault] \u2192 ${state}`),\n });\n\n _channels.set(account.accountId, channel);\n abortSignal?.addEventListener(\"abort\", () => _channels.delete(account.accountId));\n await channel.start();\n\n return {\n stop: async () => { await channel.stop(); _channels.delete(account.accountId); },\n };\n },\n },\n\n outbound: {\n deliveryMode: \"direct\" as const,\n sendText: async ({ text, accountId }: { text: string; accountId?: string }) => {\n const ch = _channels.get(accountId ?? \"default\");\n if (!ch) return { ok: false, error: \"AgentVault channel not connected\" };\n try { await ch.send(text); return { ok: true }; }\n catch (err) { return { ok: false, error: String(err) }; }\n },\n },\n};\n\n// --- Plugin export ---\n\nexport default {\n // Plugin id matches unscoped package name (@agentvault/secure-channel \u2192 secure-channel)\n id: \"secure-channel\",\n name: \"AgentVault\",\n description: \"End-to-end encrypted, zero-knowledge messaging between AI agent owners and their agents.\",\n register(api: any) {\n _ocRuntime = api.runtime;\n api.registerChannel({ plugin: agentVaultPlugin });\n },\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoIhB"}
|
package/openclaw.plugin.json
CHANGED