@1claw/cli 0.34.0 → 0.34.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/README.md +122 -1
- package/dist/src/ai-clients.d.ts +19 -0
- package/dist/src/ai-clients.d.ts.map +1 -0
- package/dist/src/ai-clients.js +218 -0
- package/dist/src/ai-clients.js.map +1 -0
- package/dist/src/commands/daemon.d.ts +3 -0
- package/dist/src/commands/daemon.d.ts.map +1 -0
- package/dist/src/commands/daemon.js +347 -0
- package/dist/src/commands/daemon.js.map +1 -0
- package/dist/src/commands/env.d.ts.map +1 -1
- package/dist/src/commands/env.js +122 -19
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/import.d.ts +3 -0
- package/dist/src/commands/import.d.ts.map +1 -0
- package/dist/src/commands/import.js +175 -0
- package/dist/src/commands/import.js.map +1 -0
- package/dist/src/commands/local.d.ts +3 -0
- package/dist/src/commands/local.d.ts.map +1 -0
- package/dist/src/commands/local.js +505 -0
- package/dist/src/commands/local.js.map +1 -0
- package/dist/src/commands/setup.d.ts +3 -0
- package/dist/src/commands/setup.d.ts.map +1 -0
- package/dist/src/commands/setup.js +304 -0
- package/dist/src/commands/setup.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/local-cache.d.ts +19 -0
- package/dist/src/local-cache.d.ts.map +1 -0
- package/dist/src/local-cache.js +131 -0
- package/dist/src/local-cache.js.map +1 -0
- package/dist/src/local-policy.d.ts +39 -0
- package/dist/src/local-policy.d.ts.map +1 -0
- package/dist/src/local-policy.js +123 -0
- package/dist/src/local-policy.js.map +1 -0
- package/dist/src/local-vault.d.ts +39 -0
- package/dist/src/local-vault.d.ts.map +1 -0
- package/dist/src/local-vault.js +166 -0
- package/dist/src/local-vault.js.map +1 -0
- package/dist/src/secret-proxy.d.ts +27 -0
- package/dist/src/secret-proxy.d.ts.map +1 -0
- package/dist/src/secret-proxy.js +73 -0
- package/dist/src/secret-proxy.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import inquirer from "inquirer";
|
|
4
|
+
import ora from "ora";
|
|
5
|
+
import { getToken } from "../config.js";
|
|
6
|
+
import { loginWithDevice } from "../auth.js";
|
|
7
|
+
import { detectAiClients, buildMcpEntry, configureClient, } from "../ai-clients.js";
|
|
8
|
+
import { printSuccess, printError, printWarning, printInfo, } from "../output.js";
|
|
9
|
+
import { api } from "../client.js";
|
|
10
|
+
export const setupCommand = new Command("setup")
|
|
11
|
+
.description("Auto-configure AI clients (Claude, Cursor, etc.) to use 1Claw MCP")
|
|
12
|
+
.option("--global", "Configure global/user-level MCP settings (default)")
|
|
13
|
+
.option("--project", "Configure project-level MCP settings in current directory")
|
|
14
|
+
.option("--client <name>", "Configure only a specific client (e.g. cursor, claude-desktop)")
|
|
15
|
+
.option("--agent-key <key>", "Use a specific agent API key instead of prompting")
|
|
16
|
+
.option("--skip-auth", "Skip authentication check (use existing credentials)")
|
|
17
|
+
.option("--local", "Configure MCP to use the local daemon instead of cloud API")
|
|
18
|
+
.action(async (opts) => {
|
|
19
|
+
try {
|
|
20
|
+
await runSetup(opts);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
if (err instanceof Error) {
|
|
24
|
+
printError(err.message);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
printError(String(err));
|
|
28
|
+
}
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
async function runSetup(opts) {
|
|
33
|
+
console.log();
|
|
34
|
+
console.log(chalk.bold(" 1Claw Setup"));
|
|
35
|
+
console.log(chalk.dim(opts.local
|
|
36
|
+
? " Configure AI clients for local daemon mode (offline, secrets never leave machine)"
|
|
37
|
+
: " Auto-configure your AI clients for secret management"));
|
|
38
|
+
console.log();
|
|
39
|
+
// Local daemon mode — no auth needed, just configure MCP to point at daemon socket
|
|
40
|
+
if (opts.local) {
|
|
41
|
+
await runLocalSetup(opts);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Step 1: Ensure authentication
|
|
45
|
+
let agentApiKey = opts.agentKey || "";
|
|
46
|
+
if (!agentApiKey && !opts.skipAuth) {
|
|
47
|
+
const token = getToken();
|
|
48
|
+
if (!token) {
|
|
49
|
+
printInfo("You need to be logged in to set up MCP connections.");
|
|
50
|
+
console.log();
|
|
51
|
+
const { shouldLogin } = await inquirer.prompt([
|
|
52
|
+
{
|
|
53
|
+
type: "confirm",
|
|
54
|
+
name: "shouldLogin",
|
|
55
|
+
message: "Would you like to log in now?",
|
|
56
|
+
default: true,
|
|
57
|
+
},
|
|
58
|
+
]);
|
|
59
|
+
if (shouldLogin) {
|
|
60
|
+
const auth = await loginWithDevice();
|
|
61
|
+
if (!auth) {
|
|
62
|
+
printError("Login failed. Run `1claw login` manually, then try `1claw setup` again.");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
printWarning("Skipping authentication. You can provide --agent-key directly.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!agentApiKey) {
|
|
72
|
+
agentApiKey = await resolveAgentKey();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!agentApiKey) {
|
|
76
|
+
printError("No agent API key available. Create an agent first: `1claw agent create <name>`");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// Step 2: Detect AI clients
|
|
80
|
+
const spinner = ora("Detecting installed AI clients...").start();
|
|
81
|
+
const allClients = detectAiClients();
|
|
82
|
+
spinner.stop();
|
|
83
|
+
let candidates;
|
|
84
|
+
if (opts.client) {
|
|
85
|
+
const match = allClients.find((c) => c.slug === opts.client || c.name.toLowerCase() === opts.client.toLowerCase());
|
|
86
|
+
if (!match) {
|
|
87
|
+
printError(`Unknown client: ${opts.client}. Available: ${allClients.map((c) => c.slug).join(", ")}`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
candidates = [match];
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const detected = allClients.filter((c) => c.detected);
|
|
94
|
+
if (detected.length === 0) {
|
|
95
|
+
printWarning("No AI clients detected on this machine.");
|
|
96
|
+
printInfo("Supported clients: " +
|
|
97
|
+
allClients.map((c) => c.name).join(", "));
|
|
98
|
+
printInfo("You can manually configure MCP — see https://docs.1claw.xyz/mcp");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
console.log(chalk.bold(" Detected AI clients:"));
|
|
102
|
+
for (const c of detected) {
|
|
103
|
+
console.log(` ${chalk.green("●")} ${c.name}`);
|
|
104
|
+
}
|
|
105
|
+
const notDetected = allClients.filter((c) => !c.detected);
|
|
106
|
+
for (const c of notDetected) {
|
|
107
|
+
console.log(` ${chalk.dim("○")} ${chalk.dim(c.name)} ${chalk.dim("(not found)")}`);
|
|
108
|
+
}
|
|
109
|
+
console.log();
|
|
110
|
+
const { selected } = await inquirer.prompt([
|
|
111
|
+
{
|
|
112
|
+
type: "checkbox",
|
|
113
|
+
name: "selected",
|
|
114
|
+
message: "Which clients would you like to configure?",
|
|
115
|
+
choices: detected.map((c) => ({
|
|
116
|
+
name: c.name,
|
|
117
|
+
value: c.slug,
|
|
118
|
+
checked: true,
|
|
119
|
+
})),
|
|
120
|
+
},
|
|
121
|
+
]);
|
|
122
|
+
candidates = detected.filter((c) => selected.includes(c.slug));
|
|
123
|
+
}
|
|
124
|
+
if (candidates.length === 0) {
|
|
125
|
+
printInfo("No clients selected. Setup cancelled.");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
// Step 3: Build MCP server entry
|
|
129
|
+
const envVars = {
|
|
130
|
+
ONECLAW_AGENT_API_KEY: agentApiKey,
|
|
131
|
+
};
|
|
132
|
+
const entry = buildMcpEntry(envVars);
|
|
133
|
+
// Step 4: Configure each client
|
|
134
|
+
console.log();
|
|
135
|
+
let successCount = 0;
|
|
136
|
+
for (const client of candidates) {
|
|
137
|
+
const result = configureClient(client, entry);
|
|
138
|
+
if (result.success) {
|
|
139
|
+
printSuccess(result.message);
|
|
140
|
+
successCount++;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
printError(result.message);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Step 5: Summary
|
|
147
|
+
console.log();
|
|
148
|
+
if (successCount > 0) {
|
|
149
|
+
printSuccess(`Configured ${successCount} client${successCount > 1 ? "s" : ""}. ` +
|
|
150
|
+
"Restart your AI client to activate 1Claw MCP.");
|
|
151
|
+
console.log();
|
|
152
|
+
printInfo("Your agent can now access secrets in your vault.");
|
|
153
|
+
printInfo("Try asking your AI: \"List my secrets in 1Claw\"");
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
printWarning("No clients were configured. Check the errors above.");
|
|
157
|
+
}
|
|
158
|
+
console.log();
|
|
159
|
+
}
|
|
160
|
+
async function resolveAgentKey() {
|
|
161
|
+
const { source } = await inquirer.prompt([
|
|
162
|
+
{
|
|
163
|
+
type: "list",
|
|
164
|
+
name: "source",
|
|
165
|
+
message: "How would you like to provide an agent API key?",
|
|
166
|
+
choices: [
|
|
167
|
+
{ name: "Create a new agent now", value: "create" },
|
|
168
|
+
{ name: "Enter an existing agent API key", value: "enter" },
|
|
169
|
+
{ name: "Use from environment (ONECLAW_AGENT_API_KEY)", value: "env" },
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
]);
|
|
173
|
+
if (source === "env") {
|
|
174
|
+
const key = process.env.ONECLAW_AGENT_API_KEY;
|
|
175
|
+
if (!key) {
|
|
176
|
+
printError("ONECLAW_AGENT_API_KEY is not set in the environment.");
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
return key;
|
|
180
|
+
}
|
|
181
|
+
if (source === "enter") {
|
|
182
|
+
const { key } = await inquirer.prompt([
|
|
183
|
+
{
|
|
184
|
+
type: "password",
|
|
185
|
+
name: "key",
|
|
186
|
+
message: "Agent API key (ocv_...):",
|
|
187
|
+
mask: "*",
|
|
188
|
+
validate: (v) => v.startsWith("ocv_") ? true : "Agent API keys start with ocv_",
|
|
189
|
+
},
|
|
190
|
+
]);
|
|
191
|
+
return key;
|
|
192
|
+
}
|
|
193
|
+
// Create a new agent
|
|
194
|
+
const { agentName } = await inquirer.prompt([
|
|
195
|
+
{
|
|
196
|
+
type: "input",
|
|
197
|
+
name: "agentName",
|
|
198
|
+
message: "Name for the new agent:",
|
|
199
|
+
default: "mcp-agent",
|
|
200
|
+
validate: (v) => v.trim().length > 0 ? true : "Agent name is required",
|
|
201
|
+
},
|
|
202
|
+
]);
|
|
203
|
+
const spinner = ora("Creating agent...").start();
|
|
204
|
+
try {
|
|
205
|
+
const result = await api("/agents", {
|
|
206
|
+
method: "POST",
|
|
207
|
+
body: {
|
|
208
|
+
name: agentName.trim(),
|
|
209
|
+
description: "Auto-created by 1claw setup for MCP integration",
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
spinner.succeed(`Agent "${agentName}" created`);
|
|
213
|
+
if (result.api_key) {
|
|
214
|
+
printInfo(`Agent API key: ${chalk.cyan(result.api_key)} ${chalk.dim("(save this — shown only once)")}`);
|
|
215
|
+
return result.api_key;
|
|
216
|
+
}
|
|
217
|
+
printError("Agent created but no API key returned. Use `1claw agent create` manually.");
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
spinner.fail("Failed to create agent");
|
|
222
|
+
throw err;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
async function runLocalSetup(opts) {
|
|
226
|
+
const { vaultExists } = await import("../local-vault.js");
|
|
227
|
+
const { homedir } = await import("node:os");
|
|
228
|
+
const { join } = await import("node:path");
|
|
229
|
+
if (!vaultExists()) {
|
|
230
|
+
printWarning("No local vault found.");
|
|
231
|
+
printInfo("Run `1claw local init` to create one, then try `1claw setup --local` again.");
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const configDir = process.env.ONECLAW_CONFIG_DIR || join(homedir(), ".config", "1claw");
|
|
235
|
+
const socketPath = process.env.ONECLAW_DAEMON_SOCKET || join(configDir, "daemon.sock");
|
|
236
|
+
// Detect AI clients
|
|
237
|
+
const spinner = ora("Detecting installed AI clients...").start();
|
|
238
|
+
const allClients = detectAiClients();
|
|
239
|
+
spinner.stop();
|
|
240
|
+
let candidates;
|
|
241
|
+
if (opts.client) {
|
|
242
|
+
const match = allClients.find((c) => c.slug === opts.client || c.name.toLowerCase() === opts.client.toLowerCase());
|
|
243
|
+
if (!match) {
|
|
244
|
+
printError(`Unknown client: ${opts.client}. Available: ${allClients.map((c) => c.slug).join(", ")}`);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
candidates = [match];
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
const detected = allClients.filter((c) => c.detected);
|
|
251
|
+
if (detected.length === 0) {
|
|
252
|
+
printWarning("No AI clients detected.");
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
console.log(chalk.bold(" Detected AI clients:"));
|
|
256
|
+
for (const c of detected) {
|
|
257
|
+
console.log(` ${chalk.green("●")} ${c.name}`);
|
|
258
|
+
}
|
|
259
|
+
console.log();
|
|
260
|
+
const { selected } = await inquirer.prompt([
|
|
261
|
+
{
|
|
262
|
+
type: "checkbox",
|
|
263
|
+
name: "selected",
|
|
264
|
+
message: "Which clients to configure for local daemon mode?",
|
|
265
|
+
choices: detected.map((c) => ({
|
|
266
|
+
name: c.name,
|
|
267
|
+
value: c.slug,
|
|
268
|
+
checked: true,
|
|
269
|
+
})),
|
|
270
|
+
},
|
|
271
|
+
]);
|
|
272
|
+
candidates = detected.filter((c) => selected.includes(c.slug));
|
|
273
|
+
}
|
|
274
|
+
if (candidates.length === 0) {
|
|
275
|
+
printInfo("No clients selected.");
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const envVars = {
|
|
279
|
+
ONECLAW_DAEMON_SOCKET: socketPath,
|
|
280
|
+
ONECLAW_LOCAL_VAULT: "true",
|
|
281
|
+
};
|
|
282
|
+
const entry = buildMcpEntry(envVars);
|
|
283
|
+
console.log();
|
|
284
|
+
let successCount = 0;
|
|
285
|
+
for (const client of candidates) {
|
|
286
|
+
const result = configureClient(client, entry);
|
|
287
|
+
if (result.success) {
|
|
288
|
+
printSuccess(result.message);
|
|
289
|
+
successCount++;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
printError(result.message);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
console.log();
|
|
296
|
+
if (successCount > 0) {
|
|
297
|
+
printSuccess(`Configured ${successCount} client${successCount > 1 ? "s" : ""} for local daemon mode.`);
|
|
298
|
+
console.log();
|
|
299
|
+
printInfo("Start the daemon: `1claw daemon start`");
|
|
300
|
+
printInfo("Then restart your AI client to activate local MCP.");
|
|
301
|
+
}
|
|
302
|
+
console.log();
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CpC,wBAAgB,aAAa,IAAI,OAAO,CA0EvC"}
|
package/dist/src/index.js
CHANGED
|
@@ -16,6 +16,10 @@ import { billingCommand } from "./commands/billing.js";
|
|
|
16
16
|
import { auditCommand } from "./commands/audit.js";
|
|
17
17
|
import { mfaCommand } from "./commands/mfa.js";
|
|
18
18
|
import { configCommand } from "./commands/config.js";
|
|
19
|
+
import { setupCommand } from "./commands/setup.js";
|
|
20
|
+
import { importCommand } from "./commands/import.js";
|
|
21
|
+
import { localCommand } from "./commands/local.js";
|
|
22
|
+
import { daemonCommand } from "./commands/daemon.js";
|
|
19
23
|
import { proxyCommand } from "./commands/proxy.js";
|
|
20
24
|
import { treasuryCommand } from "./commands/treasury.js";
|
|
21
25
|
import { webhookCommand } from "./commands/webhook.js";
|
|
@@ -56,6 +60,11 @@ export function createProgram() {
|
|
|
56
60
|
// Security
|
|
57
61
|
program.addCommand(auditCommand);
|
|
58
62
|
program.addCommand(mfaCommand);
|
|
63
|
+
// Setup, import & local vault
|
|
64
|
+
program.addCommand(setupCommand);
|
|
65
|
+
program.addCommand(importCommand);
|
|
66
|
+
program.addCommand(localCommand);
|
|
67
|
+
program.addCommand(daemonCommand);
|
|
59
68
|
// Config
|
|
60
69
|
program.addCommand(configCommand);
|
|
61
70
|
// Treasury
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface CacheMeta {
|
|
2
|
+
vaultId: string;
|
|
3
|
+
cachedAt: string;
|
|
4
|
+
ttlSeconds: number;
|
|
5
|
+
secretCount: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function getCachePath(): string;
|
|
8
|
+
export declare function isCacheValid(vaultId: string, ttlSeconds?: number): boolean;
|
|
9
|
+
export declare function writeCache(token: string, vaultId: string, secrets: Record<string, string>, ttlSeconds?: number): void;
|
|
10
|
+
export declare function readCache(token: string, vaultId: string, ttlSeconds?: number): Record<string, string> | null;
|
|
11
|
+
export declare function clearCache(): boolean;
|
|
12
|
+
export declare function getCacheInfo(): {
|
|
13
|
+
exists: boolean;
|
|
14
|
+
meta?: CacheMeta;
|
|
15
|
+
sizeBytes?: number;
|
|
16
|
+
expired?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=local-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-cache.d.ts","sourceRoot":"","sources":["../../src/local-cache.ts"],"names":[],"mappings":"AAuBA,UAAU,SAAS;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAoB1E;AAED,wBAAgB,UAAU,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,GAAE,MAA4B,GACzC,IAAI,CAsCN;AAED,wBAAgB,SAAS,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA0B/B;AAED,wBAAgB,UAAU,IAAI,OAAO,CAWpC;AAED,wBAAgB,YAAY,IAAI;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAwBA"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync, statSync, unlinkSync, } from "node:fs";
|
|
2
|
+
import { createCipheriv, createDecipheriv, randomBytes, createHash } from "node:crypto";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
const CACHE_DIR = process.env.ONECLAW_CONFIG_DIR || join(homedir(), ".config", "1claw");
|
|
6
|
+
const CACHE_FILE = join(CACHE_DIR, "env-cache.enc");
|
|
7
|
+
const CACHE_META_FILE = join(CACHE_DIR, "env-cache.meta.json");
|
|
8
|
+
const ALGORITHM = "aes-256-gcm";
|
|
9
|
+
const IV_LENGTH = 12;
|
|
10
|
+
const TAG_LENGTH = 16;
|
|
11
|
+
const DEFAULT_TTL_SECONDS = 3600; // 1 hour
|
|
12
|
+
function deriveKey(token, salt) {
|
|
13
|
+
return createHash("sha256")
|
|
14
|
+
.update(Buffer.concat([Buffer.from(token, "utf-8"), salt]))
|
|
15
|
+
.digest();
|
|
16
|
+
}
|
|
17
|
+
export function getCachePath() {
|
|
18
|
+
return CACHE_FILE;
|
|
19
|
+
}
|
|
20
|
+
export function isCacheValid(vaultId, ttlSeconds) {
|
|
21
|
+
if (!existsSync(CACHE_META_FILE) || !existsSync(CACHE_FILE)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const meta = JSON.parse(readFileSync(CACHE_META_FILE, "utf-8"));
|
|
26
|
+
if (meta.vaultId !== vaultId)
|
|
27
|
+
return false;
|
|
28
|
+
const ttl = ttlSeconds ?? meta.ttlSeconds ?? DEFAULT_TTL_SECONDS;
|
|
29
|
+
const cachedAt = new Date(meta.cachedAt).getTime();
|
|
30
|
+
const expiresAt = cachedAt + ttl * 1000;
|
|
31
|
+
return Date.now() < expiresAt;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function writeCache(token, vaultId, secrets, ttlSeconds = DEFAULT_TTL_SECONDS) {
|
|
38
|
+
if (!existsSync(CACHE_DIR)) {
|
|
39
|
+
mkdirSync(CACHE_DIR, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
const salt = randomBytes(16);
|
|
42
|
+
const key = deriveKey(token, salt);
|
|
43
|
+
const iv = randomBytes(IV_LENGTH);
|
|
44
|
+
const plaintext = JSON.stringify(secrets);
|
|
45
|
+
const cipher = createCipheriv(ALGORITHM, key, iv);
|
|
46
|
+
const encrypted = Buffer.concat([
|
|
47
|
+
cipher.update(plaintext, "utf-8"),
|
|
48
|
+
cipher.final(),
|
|
49
|
+
]);
|
|
50
|
+
const tag = cipher.getAuthTag();
|
|
51
|
+
// File format: [salt:16][iv:12][tag:16][ciphertext]
|
|
52
|
+
const output = Buffer.concat([salt, iv, tag, encrypted]);
|
|
53
|
+
writeFileSync(CACHE_FILE, output);
|
|
54
|
+
try {
|
|
55
|
+
chmodSync(CACHE_FILE, 0o600);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// best-effort
|
|
59
|
+
}
|
|
60
|
+
const meta = {
|
|
61
|
+
vaultId,
|
|
62
|
+
cachedAt: new Date().toISOString(),
|
|
63
|
+
ttlSeconds,
|
|
64
|
+
secretCount: Object.keys(secrets).length,
|
|
65
|
+
};
|
|
66
|
+
writeFileSync(CACHE_META_FILE, JSON.stringify(meta, null, 2), "utf-8");
|
|
67
|
+
try {
|
|
68
|
+
chmodSync(CACHE_META_FILE, 0o600);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// best-effort
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function readCache(token, vaultId, ttlSeconds) {
|
|
75
|
+
if (!isCacheValid(vaultId, ttlSeconds)) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const data = readFileSync(CACHE_FILE);
|
|
80
|
+
const salt = data.subarray(0, 16);
|
|
81
|
+
const iv = data.subarray(16, 16 + IV_LENGTH);
|
|
82
|
+
const tag = data.subarray(16 + IV_LENGTH, 16 + IV_LENGTH + TAG_LENGTH);
|
|
83
|
+
const encrypted = data.subarray(16 + IV_LENGTH + TAG_LENGTH);
|
|
84
|
+
const key = deriveKey(token, salt);
|
|
85
|
+
const decipher = createDecipheriv(ALGORITHM, key, iv);
|
|
86
|
+
decipher.setAuthTag(tag);
|
|
87
|
+
const decrypted = Buffer.concat([
|
|
88
|
+
decipher.update(encrypted),
|
|
89
|
+
decipher.final(),
|
|
90
|
+
]);
|
|
91
|
+
return JSON.parse(decrypted.toString("utf-8"));
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export function clearCache() {
|
|
98
|
+
let cleared = false;
|
|
99
|
+
if (existsSync(CACHE_FILE)) {
|
|
100
|
+
unlinkSync(CACHE_FILE);
|
|
101
|
+
cleared = true;
|
|
102
|
+
}
|
|
103
|
+
if (existsSync(CACHE_META_FILE)) {
|
|
104
|
+
unlinkSync(CACHE_META_FILE);
|
|
105
|
+
cleared = true;
|
|
106
|
+
}
|
|
107
|
+
return cleared;
|
|
108
|
+
}
|
|
109
|
+
export function getCacheInfo() {
|
|
110
|
+
if (!existsSync(CACHE_META_FILE)) {
|
|
111
|
+
return { exists: false };
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
const meta = JSON.parse(readFileSync(CACHE_META_FILE, "utf-8"));
|
|
115
|
+
const stat = existsSync(CACHE_FILE)
|
|
116
|
+
? statSync(CACHE_FILE)
|
|
117
|
+
: undefined;
|
|
118
|
+
const cachedAt = new Date(meta.cachedAt).getTime();
|
|
119
|
+
const expiresAt = cachedAt + meta.ttlSeconds * 1000;
|
|
120
|
+
return {
|
|
121
|
+
exists: true,
|
|
122
|
+
meta,
|
|
123
|
+
sizeBytes: stat?.size,
|
|
124
|
+
expired: Date.now() >= expiresAt,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return { exists: false };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=local-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-cache.js","sourceRoot":"","sources":["../../src/local-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const POLICY_FILE: string;
|
|
2
|
+
export interface SecretPolicy {
|
|
3
|
+
allowed_hosts: string[];
|
|
4
|
+
inject_as: "header" | "query" | "bearer" | "basic";
|
|
5
|
+
header_name?: string;
|
|
6
|
+
query_param?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PolicyFile {
|
|
9
|
+
version: number;
|
|
10
|
+
defaults: {
|
|
11
|
+
inject_as: "header" | "bearer";
|
|
12
|
+
header_name: string;
|
|
13
|
+
};
|
|
14
|
+
secrets: Record<string, SecretPolicy>;
|
|
15
|
+
}
|
|
16
|
+
export declare function loadPolicy(): PolicyFile;
|
|
17
|
+
export declare function savePolicy(policy: PolicyFile): void;
|
|
18
|
+
export declare function policyExists(): boolean;
|
|
19
|
+
export declare function getPolicyPath(): string;
|
|
20
|
+
export declare function getSecretPolicy(policy: PolicyFile, secretName: string): SecretPolicy | null;
|
|
21
|
+
export declare function setSecretPolicy(policy: PolicyFile, secretName: string, sp: SecretPolicy): void;
|
|
22
|
+
export declare function removeSecretPolicy(policy: PolicyFile, secretName: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a request URL is allowed by the secret's policy.
|
|
25
|
+
* When no policy exists for a secret, all hosts are denied by default
|
|
26
|
+
* (fail-closed — the daemon won't inject a secret without a policy).
|
|
27
|
+
*/
|
|
28
|
+
export declare function isHostAllowed(policy: PolicyFile, secretName: string, targetUrl: string): {
|
|
29
|
+
allowed: boolean;
|
|
30
|
+
reason: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Resolve how to inject a secret into a request.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveInjection(policy: PolicyFile, secretName: string, secretValue: string): {
|
|
36
|
+
headers: Record<string, string>;
|
|
37
|
+
queryParams: Record<string, string>;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=local-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-policy.d.ts","sourceRoot":"","sources":["../../src/local-policy.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAkC,CAAC;AAE3D,MAAM,WAAW,YAAY;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACN,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAWD,wBAAgB,UAAU,IAAI,UAAU,CASvC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEnD;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,CAC3B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,GACnB,YAAY,GAAG,IAAI,CAErB;AAED,wBAAgB,eAAe,CAC3B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,YAAY,GACjB,IAAI,CAEN;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,GACnB,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4CtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA4B1E"}
|