@agentvault/agentvault 0.14.29 → 0.15.0
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 +3 -1
- package/dist/account-config.js +60 -0
- package/dist/account-config.js.map +1 -0
- package/dist/channel.d.ts +5 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +3411 -0
- package/dist/channel.js.map +1 -0
- package/dist/cli.js +253 -72004
- package/dist/cli.js.map +1 -7
- package/dist/create-agent.js +314 -0
- package/dist/create-agent.js.map +1 -0
- package/dist/crypto-helpers.js +4 -0
- package/dist/crypto-helpers.js.map +1 -0
- package/dist/doctor.js +415 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fetch-interceptor.js +213 -0
- package/dist/fetch-interceptor.js.map +1 -0
- package/dist/gateway-send.js +114 -0
- package/dist/gateway-send.js.map +1 -0
- package/dist/http-handlers.js +131 -0
- package/dist/http-handlers.js.map +1 -0
- package/dist/index.js +24 -76338
- package/dist/index.js.map +1 -7
- package/dist/mcp-handlers.js +48 -0
- package/dist/mcp-handlers.js.map +1 -0
- package/dist/mcp-server.js +192 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/openclaw-compat.js +94 -0
- package/dist/openclaw-compat.js.map +1 -0
- package/dist/openclaw-entry.d.ts.map +1 -1
- package/dist/openclaw-entry.js +1204 -1414
- package/dist/openclaw-entry.js.map +1 -7
- package/dist/openclaw-plugin.js +297 -0
- package/dist/openclaw-plugin.js.map +1 -0
- package/dist/openclaw-types.js +13 -0
- package/dist/openclaw-types.js.map +1 -0
- package/dist/setup.js +460 -0
- package/dist/setup.js.map +1 -0
- package/dist/skill-invoker.js +100 -0
- package/dist/skill-invoker.js.map +1 -0
- package/dist/skill-manifest.js +249 -0
- package/dist/skill-manifest.js.map +1 -0
- package/dist/skill-telemetry.js +146 -0
- package/dist/skill-telemetry.js.map +1 -0
- package/dist/skills-publish.js +133 -0
- package/dist/skills-publish.js.map +1 -0
- package/dist/state.js +178 -0
- package/dist/state.js.map +1 -0
- package/dist/transport.js +43 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace-handlers.js +177 -0
- package/dist/workspace-handlers.js.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentVault "create" command — spin up a brand new OpenClaw peer agent.
|
|
3
|
+
*
|
|
4
|
+
* Ports the logic from ~/.openclaw/workspace/scripts/create-agent.sh into
|
|
5
|
+
* TypeScript, eliminating the jq dependency.
|
|
6
|
+
*
|
|
7
|
+
* Usage: npx @agentvault/agentvault create <name> --token=av_tok_...
|
|
8
|
+
*/
|
|
9
|
+
import { execSync } from "node:child_process";
|
|
10
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, copyFileSync } from "node:fs";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { runSetupCommand } from "./setup.js";
|
|
13
|
+
/* ── Helpers ──────────────────────────────────────────────────────────── */
|
|
14
|
+
/** Resolve the OpenClaw home directory (~/.openclaw) */
|
|
15
|
+
export function openclawHome() {
|
|
16
|
+
const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
|
|
17
|
+
return join(home, ".openclaw");
|
|
18
|
+
}
|
|
19
|
+
/** Parse openclaw.json and return its contents. */
|
|
20
|
+
export function readOpenClawConfig(home) {
|
|
21
|
+
const configPath = join(home, "openclaw.json");
|
|
22
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
23
|
+
return JSON.parse(raw);
|
|
24
|
+
}
|
|
25
|
+
/** Write openclaw.json with a backup. */
|
|
26
|
+
function writeOpenClawConfig(home, config, backupSuffix) {
|
|
27
|
+
const configPath = join(home, "openclaw.json");
|
|
28
|
+
const backupPath = `${configPath}.bak.pre-${backupSuffix}`;
|
|
29
|
+
copyFileSync(configPath, backupPath);
|
|
30
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Collect all httpPort values from channels.agentvault.accounts in openclaw.json.
|
|
34
|
+
* The real config structure is:
|
|
35
|
+
* { channels: { agentvault: { accounts: { <id>: { httpPort: N, ... } } } } }
|
|
36
|
+
*/
|
|
37
|
+
function collectPorts(config) {
|
|
38
|
+
const ports = [];
|
|
39
|
+
const accounts = config?.channels?.agentvault?.accounts;
|
|
40
|
+
if (accounts && typeof accounts === "object") {
|
|
41
|
+
for (const acct of Object.values(accounts)) {
|
|
42
|
+
if (typeof acct.httpPort === "number") {
|
|
43
|
+
ports.push(acct.httpPort);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return ports;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Scan all accounts in openclaw.json for httpPort values and return next free port.
|
|
51
|
+
* Minimum port is `startPort` (default 18790).
|
|
52
|
+
*/
|
|
53
|
+
export function findNextPort(config, startPort = 18800) {
|
|
54
|
+
const ports = collectPorts(config);
|
|
55
|
+
if (ports.length === 0)
|
|
56
|
+
return startPort;
|
|
57
|
+
return Math.max(...ports, startPort - 1) + 1;
|
|
58
|
+
}
|
|
59
|
+
/** Check if a specific port is already in use in the config. */
|
|
60
|
+
function isPortInUse(config, port) {
|
|
61
|
+
return collectPorts(config).includes(port);
|
|
62
|
+
}
|
|
63
|
+
/** Generate workspace template files for a new agent. */
|
|
64
|
+
export function generateWorkspaceFiles(name) {
|
|
65
|
+
const displayName = name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();
|
|
66
|
+
return {
|
|
67
|
+
"IDENTITY.md": `# IDENTITY.md - Who Am I?
|
|
68
|
+
|
|
69
|
+
- **Name:** ${displayName}
|
|
70
|
+
- **Creature:** AI assistant — a capable peer agent in the AgentVault network
|
|
71
|
+
- **Vibe:** Direct, competent, focused on their specialty domain
|
|
72
|
+
- **Emoji:** (placeholder — update to something fitting)
|
|
73
|
+
- **Avatar:** _(none set yet)_
|
|
74
|
+
|
|
75
|
+
> TODO: Customize this file to give ${name} a distinct identity.
|
|
76
|
+
`,
|
|
77
|
+
"SOUL.md": `# SOUL.md - Who You Are
|
|
78
|
+
|
|
79
|
+
> TODO: Define ${name}'s personality, tone, and behavioral rules.
|
|
80
|
+
> Copy and adapt from ~/.openclaw/workspace/SOUL.md as a starting point.
|
|
81
|
+
|
|
82
|
+
## Core Truths
|
|
83
|
+
|
|
84
|
+
- Be genuinely helpful, not performatively helpful.
|
|
85
|
+
- Have opinions. Be resourceful before asking.
|
|
86
|
+
- Earn trust through competence.
|
|
87
|
+
|
|
88
|
+
## Channel Reply Rules
|
|
89
|
+
|
|
90
|
+
- Never include reasoning or internal logic in visible replies.
|
|
91
|
+
- No narrating your approach before or after tool calls.
|
|
92
|
+
- Just deliver the answer — clean and direct.
|
|
93
|
+
|
|
94
|
+
## Vibe
|
|
95
|
+
|
|
96
|
+
_(Define ${name}'s specific personality here.)_
|
|
97
|
+
`,
|
|
98
|
+
"HEARTBEAT.md": `# Heartbeat
|
|
99
|
+
|
|
100
|
+
- Stay available. If nothing needs attention, reply HEARTBEAT_OK.
|
|
101
|
+
- **Heartbeat replies are INTERNAL ONLY.** Reply with ONLY \`HEARTBEAT_OK\` when nothing needs attention.
|
|
102
|
+
- If something genuinely urgent needs attention, send it proactively FIRST, THEN reply HEARTBEAT_OK.
|
|
103
|
+
`,
|
|
104
|
+
"MEMORY.md": `# MEMORY.md - Long-Term Memory
|
|
105
|
+
|
|
106
|
+
_(Empty — ${name} starts with a clean memory. Update as the agent learns.)_
|
|
107
|
+
`,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/* ── Main Command ─────────────────────────────────────────────────────── */
|
|
111
|
+
export async function runCreateCommand(options) {
|
|
112
|
+
const { name, token, apiUrl, force } = options;
|
|
113
|
+
const home = openclawHome();
|
|
114
|
+
const configPath = join(home, "openclaw.json");
|
|
115
|
+
const workspaceDir = join(home, `workspace-${name}`);
|
|
116
|
+
const dataDir = join(home, "agents", name, "agentvault-data");
|
|
117
|
+
const templateDir = join(home, "workspace");
|
|
118
|
+
console.log(`
|
|
119
|
+
╔══════════════════════════════════════════════╗
|
|
120
|
+
║ AgentVault — Create New Agent ║
|
|
121
|
+
╚══════════════════════════════════════════════╝
|
|
122
|
+
`);
|
|
123
|
+
// ── Step 1: Preflight ──────────────────────────────────────────────
|
|
124
|
+
console.log(" Step 1/7 — Preflight checks...");
|
|
125
|
+
try {
|
|
126
|
+
execSync("openclaw --version", { stdio: "pipe" });
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
console.error(" Error: 'openclaw' not found in PATH. Is OpenClaw installed?");
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
if (!existsSync(configPath)) {
|
|
133
|
+
console.error(` Error: openclaw.json not found at ${configPath}`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
console.log(" Preflight passed.\n");
|
|
137
|
+
// ── Step 2: Auto-detect port ───────────────────────────────────────
|
|
138
|
+
console.log(" Step 2/7 — Detecting port...");
|
|
139
|
+
const config = readOpenClawConfig(home);
|
|
140
|
+
let port;
|
|
141
|
+
if (options.port != null) {
|
|
142
|
+
port = options.port;
|
|
143
|
+
if (isPortInUse(config, port)) {
|
|
144
|
+
console.error(` Error: Port ${port} is already in use in openclaw.json.`);
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
console.log(` Using explicit port ${port}.\n`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
port = findNextPort(config);
|
|
151
|
+
console.log(` Auto-assigned port ${port}.\n`);
|
|
152
|
+
}
|
|
153
|
+
// ── Step 3: Create agent ───────────────────────────────────────────
|
|
154
|
+
console.log(" Step 3/7 — Creating agent with OpenClaw...");
|
|
155
|
+
try {
|
|
156
|
+
// Use -- separator to prevent agent names containing dashes from being parsed as flags
|
|
157
|
+
execSync(`openclaw agents add -- ${name}`, { stdio: "pipe" });
|
|
158
|
+
console.log(` Agent '${name}' created.\n`);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
console.log(` Warning: 'openclaw agents add' failed — agent may already exist. Continuing.\n`);
|
|
162
|
+
}
|
|
163
|
+
// ── Step 4: Create directories ─────────────────────────────────────
|
|
164
|
+
console.log(" Step 4/7 — Creating directories...");
|
|
165
|
+
mkdirSync(workspaceDir, { recursive: true });
|
|
166
|
+
mkdirSync(dataDir, { recursive: true });
|
|
167
|
+
console.log(` Workspace: ${workspaceDir}`);
|
|
168
|
+
console.log(` DataDir: ${dataDir}\n`);
|
|
169
|
+
// ── Step 5: Write workspace template files ─────────────────────────
|
|
170
|
+
console.log(" Step 5/7 — Writing workspace files...");
|
|
171
|
+
const files = generateWorkspaceFiles(name);
|
|
172
|
+
for (const [filename, content] of Object.entries(files)) {
|
|
173
|
+
writeFileSync(join(workspaceDir, filename), content, "utf-8");
|
|
174
|
+
}
|
|
175
|
+
// Copy AGENTS.md and USER.md from template workspace if they exist
|
|
176
|
+
for (const copyFile of ["AGENTS.md", "USER.md"]) {
|
|
177
|
+
const src = join(templateDir, copyFile);
|
|
178
|
+
if (existsSync(src)) {
|
|
179
|
+
copyFileSync(src, join(workspaceDir, copyFile));
|
|
180
|
+
console.log(` Copied ${copyFile} from template workspace.`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
console.log(" Workspace files written.\n");
|
|
184
|
+
// ── Step 6: Run enrollment ─────────────────────────────────────────
|
|
185
|
+
console.log(" Step 6/7 — Enrolling with AgentVault...\n");
|
|
186
|
+
await runSetupCommand({
|
|
187
|
+
token,
|
|
188
|
+
name,
|
|
189
|
+
apiUrl,
|
|
190
|
+
dataDir,
|
|
191
|
+
accountId: name,
|
|
192
|
+
force,
|
|
193
|
+
});
|
|
194
|
+
// ── Step 7: Patch httpPort + bindings ────────────────────────────────
|
|
195
|
+
console.log("\n Step 7/7 — Patching openclaw.json...");
|
|
196
|
+
try {
|
|
197
|
+
const freshConfig = readOpenClawConfig(home);
|
|
198
|
+
let patched = false;
|
|
199
|
+
// Real config structure: channels.agentvault.accounts.<name>.httpPort
|
|
200
|
+
const avChannel = freshConfig?.channels?.agentvault;
|
|
201
|
+
if (avChannel?.accounts) {
|
|
202
|
+
const acct = avChannel.accounts[name];
|
|
203
|
+
if (acct) {
|
|
204
|
+
acct.httpPort = port;
|
|
205
|
+
patched = true;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Ensure channel binding exists for this account
|
|
209
|
+
if (avChannel) {
|
|
210
|
+
const channelBindings = avChannel.bindings;
|
|
211
|
+
const hasAccountBinding = channelBindings?.some((b) => b.match?.accountId === name);
|
|
212
|
+
if (!hasAccountBinding) {
|
|
213
|
+
// Insert before the wildcard if one exists, otherwise append
|
|
214
|
+
const arr = channelBindings ?? [];
|
|
215
|
+
const wildcardIdx = arr.findIndex((b) => b.match?.accountId === "*");
|
|
216
|
+
const entry = { match: { accountId: name } };
|
|
217
|
+
if (wildcardIdx >= 0) {
|
|
218
|
+
arr.splice(wildcardIdx, 0, entry);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
arr.push(entry);
|
|
222
|
+
}
|
|
223
|
+
avChannel.bindings = arr;
|
|
224
|
+
patched = true;
|
|
225
|
+
console.log(` Added channel binding for account "${name}".`);
|
|
226
|
+
}
|
|
227
|
+
// Ensure a wildcard binding exists so OpenClaw doctor doesn't warn
|
|
228
|
+
const hasWildcard = avChannel.bindings.some((b) => b.match?.accountId === "*");
|
|
229
|
+
if (!hasWildcard) {
|
|
230
|
+
avChannel.bindings.push({ match: { accountId: "*" } });
|
|
231
|
+
patched = true;
|
|
232
|
+
console.log(` Added wildcard channel binding (accountId: "*").`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// Ensure top-level binding exists so OpenClaw routes messages
|
|
236
|
+
// for this account to the correct agent process
|
|
237
|
+
const topBindings = freshConfig.bindings;
|
|
238
|
+
const hasTopBinding = topBindings?.some((b) => b.agentId === name && b.match?.accountId === name);
|
|
239
|
+
if (!hasTopBinding) {
|
|
240
|
+
const entry = {
|
|
241
|
+
agentId: name,
|
|
242
|
+
match: { channel: "agentvault", accountId: name },
|
|
243
|
+
};
|
|
244
|
+
if (topBindings) {
|
|
245
|
+
topBindings.push(entry);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
freshConfig.bindings = [entry];
|
|
249
|
+
}
|
|
250
|
+
patched = true;
|
|
251
|
+
console.log(` Added top-level binding: ${name} → agentvault:${name}.`);
|
|
252
|
+
}
|
|
253
|
+
if (patched) {
|
|
254
|
+
writeOpenClawConfig(home, freshConfig, name);
|
|
255
|
+
console.log(` httpPort set to ${port}.\n`);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
console.log(` Warning: Could not find account '${name}' in channels.agentvault.accounts.`);
|
|
259
|
+
console.log(` You may need to manually set httpPort: ${port} in openclaw.json.\n`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
console.log(` Warning: Failed to patch openclaw.json: ${err.message}\n`);
|
|
264
|
+
}
|
|
265
|
+
// ── Verify ──────────────────────────────────────────────────────────
|
|
266
|
+
console.log(" Verifying agent...");
|
|
267
|
+
try {
|
|
268
|
+
const http = await import("node:http");
|
|
269
|
+
await new Promise((resolve) => {
|
|
270
|
+
const req = http.get(`http://127.0.0.1:${port}/status`, { timeout: 3000 }, (res) => {
|
|
271
|
+
console.log(` Port ${port} responded (HTTP ${res.statusCode}).`);
|
|
272
|
+
res.resume();
|
|
273
|
+
resolve();
|
|
274
|
+
});
|
|
275
|
+
req.on("error", () => {
|
|
276
|
+
console.log(` Port ${port} not yet responding — gateway may need a moment.`);
|
|
277
|
+
resolve();
|
|
278
|
+
});
|
|
279
|
+
req.on("timeout", () => {
|
|
280
|
+
req.destroy();
|
|
281
|
+
console.log(` Port ${port} timed out — check gateway logs.`);
|
|
282
|
+
resolve();
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
console.log(" Verification skipped.");
|
|
288
|
+
}
|
|
289
|
+
// macOS: check for stale plist after setup
|
|
290
|
+
if (process.platform === "darwin") {
|
|
291
|
+
const { validatePlist } = await import("./doctor.js");
|
|
292
|
+
const plistResult = validatePlist();
|
|
293
|
+
if (plistResult.status === "stale") {
|
|
294
|
+
console.log(`\n ⚠️ macOS LaunchAgent plist has stale paths.
|
|
295
|
+
Run to diagnose and fix: npx @agentvault/agentvault doctor\n`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// ── Summary ────────────────────────────────────────────────────────
|
|
299
|
+
console.log(`
|
|
300
|
+
═══════════════════════════════════════════════
|
|
301
|
+
Agent '${name}' created successfully!
|
|
302
|
+
═══════════════════════════════════════════════
|
|
303
|
+
|
|
304
|
+
Workspace: ${workspaceDir}
|
|
305
|
+
DataDir: ${dataDir}
|
|
306
|
+
HTTP Port: ${port}
|
|
307
|
+
|
|
308
|
+
Next steps:
|
|
309
|
+
1. Edit ${workspaceDir}/SOUL.md — give ${name} a personality
|
|
310
|
+
2. Edit ${workspaceDir}/IDENTITY.md — set name, emoji, vibe
|
|
311
|
+
3. Approve the agent in the AgentVault app
|
|
312
|
+
`);
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=create-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../src/create-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Re-export transport utilities from shared @agentvault/crypto package.
|
|
2
|
+
// Plugin code continues importing from ./crypto-helpers.js — no import changes needed.
|
|
3
|
+
export { hexToBytes, bytesToHex, base64ToBytes, bytesToBase64, encryptedMessageToTransport, transportToEncryptedMessage, encryptedMessageToTransportV2Full, SenderKeyChain, SenderKeyState, } from "@agentvault/crypto";
|
|
4
|
+
//# sourceMappingURL=crypto-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-helpers.js","sourceRoot":"","sources":["../src/crypto-helpers.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uFAAuF;AACvF,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,2BAA2B,EAC3B,2BAA2B,EAC3B,iCAAiC,EAGjC,cAAc,EACd,cAAc,GAGf,MAAM,oBAAoB,CAAC"}
|