agent-dir 0.2.0 → 0.3.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 +82 -5
- package/dist/bin/agent-dir.js +261 -10
- package/dist/bin/agent-dir.js.map +1 -1
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.js +10 -2
- package/dist/src/auth.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +14 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/logging.d.ts +2 -0
- package/dist/src/logging.d.ts.map +1 -1
- package/dist/src/logging.js +29 -10
- package/dist/src/logging.js.map +1 -1
- package/dist/src/mcp.d.ts +4 -1
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +348 -39
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/server.d.ts +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +7 -10
- package/dist/src/server.js.map +1 -1
- package/dist/src/setup.d.ts +9 -0
- package/dist/src/setup.d.ts.map +1 -0
- package/dist/src/setup.js +215 -0
- package/dist/src/setup.js.map +1 -0
- package/dist/src/telemetry/aggregate.d.ts +58 -0
- package/dist/src/telemetry/aggregate.d.ts.map +1 -0
- package/dist/src/telemetry/aggregate.js +184 -0
- package/dist/src/telemetry/aggregate.js.map +1 -0
- package/dist/src/telemetry/config.d.ts +5 -0
- package/dist/src/telemetry/config.d.ts.map +1 -0
- package/dist/src/telemetry/config.js +16 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/format.d.ts +3 -0
- package/dist/src/telemetry/format.d.ts.map +1 -0
- package/dist/src/telemetry/format.js +87 -0
- package/dist/src/telemetry/format.js.map +1 -0
- package/dist/src/telemetry/privacy.d.ts +4 -0
- package/dist/src/telemetry/privacy.d.ts.map +1 -0
- package/dist/src/telemetry/privacy.js +145 -0
- package/dist/src/telemetry/privacy.js.map +1 -0
- package/dist/src/telemetry/recorder.d.ts +30 -0
- package/dist/src/telemetry/recorder.d.ts.map +1 -0
- package/dist/src/telemetry/recorder.js +98 -0
- package/dist/src/telemetry/recorder.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +74 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +2 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/tools/commands.d.ts +2 -1
- package/dist/src/tools/commands.d.ts.map +1 -1
- package/dist/src/tools/commands.js +10 -1
- package/dist/src/tools/commands.js.map +1 -1
- package/dist/src/types.d.ts +7 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,9 +47,33 @@ The Wormhole URL is only the transport endpoint. `agent-dir` authentication is e
|
|
|
47
47
|
>
|
|
48
48
|
> A subdomain can remain registered while another `wormhole` process is still running, so stop unused Wormhole tunnels before creating another one. If a configured subdomain is unavailable, `agent-dir` will report the Wormhole registration failure instead of silently starting without a tunnel.
|
|
49
49
|
|
|
50
|
+
## First-run setup
|
|
51
|
+
|
|
52
|
+
On the first interactive run, when no `agent-dir` config exists, the CLI walks you through creating your first saved profile. It asks for the profile name, directory, port, tunnel, optional Wormhole subdomain, optional npm scripts, optional allowed commands, and telemetry preference. The generated authentication token is saved with the profile.
|
|
53
|
+
|
|
54
|
+
Telemetry is optional and stays local. During setup, `agent-dir` explains the available levels: **none**, **anonymous**, **basic**, and **detailed**. Telemetry is disabled by default if you choose the default option. The same choices can later be changed with `agent-dir telemetry enable|disable`.
|
|
55
|
+
|
|
56
|
+
You can also run the setup wizard explicitly at any time:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
agent-dir setup
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This is useful for creating another profile or replacing an existing profile. The wizard saves the profile and exits without starting a tunnel.
|
|
63
|
+
|
|
64
|
+
You can skip setup completely when you only want a temporary random Wormhole URL:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
agent-dir . --random --tunnel wormhole
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
If you answer **No** at the setup prompt, `agent-dir` automatically starts that temporary random tunnel and does not create a config file.
|
|
71
|
+
|
|
72
|
+
Non-interactive invocations and invocations with explicit launch options do not start the setup wizard.
|
|
73
|
+
|
|
50
74
|
## Profiles
|
|
51
75
|
|
|
52
|
-
Profiles save settings you use repeatedly: project directory, tunnel, Wormhole subdomain, port, npm scripts,
|
|
76
|
+
Profiles save settings you use repeatedly: project directory, tunnel, Wormhole subdomain, port, npm scripts, allowed non-npm commands, blocked command prefixes, and whether dedicated Git MCP tools are enabled. Dedicated Git tools are enabled automatically when `git` is in the allowed command list, or explicitly with `--git`; use `--no-git` to disable them for a run.
|
|
53
77
|
|
|
54
78
|
```bash
|
|
55
79
|
agent-dir config add my-project \
|
|
@@ -57,7 +81,8 @@ agent-dir config add my-project \
|
|
|
57
81
|
--tunnel wormhole \
|
|
58
82
|
--subdomain my-project-x7k4m2 \
|
|
59
83
|
--npm typecheck,lint,format,test,build \
|
|
60
|
-
--command grep,find,rg,git
|
|
84
|
+
--command grep,find,rg,git \
|
|
85
|
+
--blacklist "git commit,git push --force"
|
|
61
86
|
```
|
|
62
87
|
|
|
63
88
|
Then:
|
|
@@ -71,11 +96,63 @@ Manage profiles with:
|
|
|
71
96
|
```bash
|
|
72
97
|
agent-dir config list
|
|
73
98
|
agent-dir config show my-project
|
|
74
|
-
agent-dir config
|
|
99
|
+
agent-dir config delete my-project
|
|
100
|
+
agent-dir config delete --all
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Deletion asks for confirmation by default. Use `--yes` for automation:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
agent-dir config delete my-project --yes
|
|
107
|
+
agent-dir config delete --all --yes
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The older `config remove <name>` command remains an alias for `config delete <name>`.
|
|
111
|
+
|
|
112
|
+
Retrieve or rotate a profile's authentication token with:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
agent-dir config token my-project
|
|
116
|
+
agent-dir config token my-project --rotate
|
|
75
117
|
```
|
|
76
118
|
|
|
119
|
+
The token command prints the secret intentionally; avoid sharing or committing its output.
|
|
120
|
+
|
|
77
121
|
Profiles are stored per-user at `~/.config/agent-dir/config.json`, not in the project repository. The config directory and file are written with user-only permissions. Command-line options can override saved values for one run.
|
|
78
122
|
|
|
123
|
+
## Telemetry
|
|
124
|
+
|
|
125
|
+
Telemetry is **disabled by default** and is local-only. When enabled, events are stored in `~/.config/agent-dir/telemetry.jsonl` with user-only permissions; no telemetry is sent to a remote service.
|
|
126
|
+
|
|
127
|
+
Enable a privacy level with:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
agent-dir telemetry enable anonymous
|
|
131
|
+
agent-dir telemetry enable basic
|
|
132
|
+
agent-dir telemetry enable detailed
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Levels add bounded operational context:
|
|
136
|
+
|
|
137
|
+
- **anonymous** — MCP methods, tool/command families, success, duration, sizes, result counts, truncation/pagination, and safe error categories.
|
|
138
|
+
- **basic** — anonymous data plus bounded Agent Dir/Node/platform and MCP client version information.
|
|
139
|
+
- **detailed** — basic data plus coarse project classification such as language, package manager, Git/CodeGraph availability, and project size.
|
|
140
|
+
|
|
141
|
+
Telemetry never records file contents, command arguments, authentication tokens, environment variables, or project paths. Session telemetry separates wall-clock session lifetime from active MCP request time and the gaps between requests; those gaps may include agent reasoning, network delay, or other idle time and are not presented as agent thinking time. Persistence failures do not affect MCP requests.
|
|
142
|
+
|
|
143
|
+
Manage telemetry with:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
agent-dir telemetry status
|
|
147
|
+
agent-dir telemetry schema
|
|
148
|
+
agent-dir telemetry show [--follow]
|
|
149
|
+
agent-dir telemetry summary
|
|
150
|
+
agent-dir telemetry disable
|
|
151
|
+
agent-dir telemetry reset
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
For the event model, metric definitions, privacy levels, and guidance for interpreting raw and aggregated telemetry, see [Telemetry interpretation](docs/telemetry.md).
|
|
155
|
+
|
|
79
156
|
## MCP transport and compatibility
|
|
80
157
|
|
|
81
158
|
The HTTP MCP endpoint is `POST /mcp`. The implementation supports two protocol compatibility paths:
|
|
@@ -197,7 +274,7 @@ Normal executables use a separate allowlist:
|
|
|
197
274
|
--command grep,find,rg,git
|
|
198
275
|
```
|
|
199
276
|
|
|
200
|
-
Commands are launched with `shell: false`; the MCP client supplies the executable and arguments separately. An executable that is not in the allowlist is rejected.
|
|
277
|
+
Commands are launched with `shell: false`; the MCP client supplies the executable and arguments separately. Dedicated Git MCP tools are separately capability-gated; they are exposed only when Git is enabled for the active profile. If Git is disabled, direct calls to Git tools are rejected even if a client attempts to invoke them by name. An executable that is not in the allowlist is rejected. A configured `blacklistedCommands` entry overrides the allowlist and blocks matching command prefixes, so `git` can be allowed while `git commit` is blocked and `git status` remains available. Entries are whitespace-separated command/argument prefixes, for example `git commit` or `git push --force`.
|
|
201
278
|
|
|
202
279
|
Avoid allowing `sh`, `bash`, `zsh`, `cmd`, `node`, or `python` unless you intentionally want to grant a much broader execution capability.
|
|
203
280
|
|
|
@@ -212,7 +289,7 @@ agent-dir://instructions
|
|
|
212
289
|
agent-dir://capabilities
|
|
213
290
|
```
|
|
214
291
|
|
|
215
|
-
The instructions emphasize efficient tool selection: targeted search before reading, bounded ranges before whole-file reads, dedicated tools before generic commands, batched related operations, narrow validation before full checks, and scoped Git inspection before full diffs. The execution policy is generated from the active profile, so changing `allowedScripts` or `
|
|
292
|
+
The instructions emphasize efficient tool selection: targeted search before reading, bounded ranges before whole-file reads, dedicated tools before generic commands, batched related operations, narrow validation before full checks, and scoped Git inspection before full diffs. The execution policy is generated from the active profile, so changing `allowedScripts`, `commands`, or `blacklistedCommands` automatically changes what the agent is told it can execute.
|
|
216
293
|
|
|
217
294
|
The capabilities resource is machine-readable and includes the running Agent Dir version, registered tool names, execution policy, and preferred/avoid tool-selection patterns. This keeps the MCP server itself as the source of truth; client-specific instruction files do not need to be maintained when Agent Dir changes.
|
|
218
295
|
|
package/dist/bin/agent-dir.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
3
|
+
import { mkdirSync, readFileSync, unlinkSync, watch, writeFileSync } from "node:fs";
|
|
3
4
|
import { createRequire } from "node:module";
|
|
4
5
|
import { resolve } from "node:path";
|
|
6
|
+
import { createInterface } from "node:readline/promises";
|
|
5
7
|
import { parseArgs } from "node:util";
|
|
6
8
|
import { configPath, loadConfig, mergeProfile, saveConfig } from "../src/config.js";
|
|
7
9
|
import { printBanner, printHelp, printRequestHeader } from "../src/logging.js";
|
|
8
10
|
import { startServer } from "../src/server.js";
|
|
11
|
+
import { hasConfigFile, runFirstTimeSetup, shouldOfferSetup } from "../src/setup.js";
|
|
12
|
+
import { summarizeTelemetry } from "../src/telemetry/aggregate.js";
|
|
13
|
+
import { isTelemetryLevel } from "../src/telemetry/config.js";
|
|
14
|
+
import { formatTelemetrySummary } from "../src/telemetry/format.js";
|
|
9
15
|
import { startTunnel } from "../src/tunnel.js";
|
|
10
16
|
const require = createRequire(import.meta.url);
|
|
11
17
|
const packageVersion = require("../../package.json").version;
|
|
@@ -38,11 +44,18 @@ const { values, positionals } = parseArgs({
|
|
|
38
44
|
subdomain: { type: "string", short: "s" },
|
|
39
45
|
npm: { type: "string" },
|
|
40
46
|
command: { type: "string" },
|
|
47
|
+
blacklist: { type: "string" },
|
|
41
48
|
token: { type: "string" },
|
|
49
|
+
git: { type: "boolean" },
|
|
50
|
+
rotate: { type: "boolean" },
|
|
42
51
|
"no-tunnel": { type: "boolean" },
|
|
43
52
|
random: { type: "boolean" },
|
|
53
|
+
follow: { type: "boolean" },
|
|
54
|
+
all: { type: "boolean" },
|
|
55
|
+
yes: { type: "boolean", short: "y" },
|
|
44
56
|
},
|
|
45
57
|
allowPositionals: true,
|
|
58
|
+
allowNegative: true,
|
|
46
59
|
strict: true,
|
|
47
60
|
});
|
|
48
61
|
if (values.help) {
|
|
@@ -54,7 +67,147 @@ if (values.version) {
|
|
|
54
67
|
process.exit(0);
|
|
55
68
|
}
|
|
56
69
|
const config = await loadConfig();
|
|
57
|
-
|
|
70
|
+
let command = positionals[0];
|
|
71
|
+
if (command === "setup") {
|
|
72
|
+
await runFirstTimeSetup(config, positionals[1] ?? ".");
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
if (shouldOfferSetup(await hasConfigFile(), {
|
|
76
|
+
random: values.random,
|
|
77
|
+
noTunnel: values["no-tunnel"],
|
|
78
|
+
tunnel: values.tunnel,
|
|
79
|
+
}) &&
|
|
80
|
+
command !== "config" &&
|
|
81
|
+
command !== "telemetry") {
|
|
82
|
+
const profileName = await runFirstTimeSetup(config, positionals[0] ?? ".");
|
|
83
|
+
if (profileName)
|
|
84
|
+
command = profileName;
|
|
85
|
+
else if (profileName === undefined) {
|
|
86
|
+
values.random = true;
|
|
87
|
+
values.tunnel = "wormhole";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (command === "telemetry") {
|
|
91
|
+
const action = positionals[1];
|
|
92
|
+
const currentLevel = config.telemetry?.level ?? "none";
|
|
93
|
+
const telemetryFile = resolve(`${process.env.HOME ?? "."}/.config/agent-dir/telemetry.jsonl`);
|
|
94
|
+
if (action === "status") {
|
|
95
|
+
console.log(`Telemetry: ${currentLevel === "none" ? "disabled" : "enabled"}`);
|
|
96
|
+
console.log(`Level: ${currentLevel}`);
|
|
97
|
+
console.log(`Config: ${configPath()}`);
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
if (action === "enable") {
|
|
101
|
+
const level = positionals[2];
|
|
102
|
+
if (!level || !isTelemetryLevel(level) || level === "none")
|
|
103
|
+
fail("Usage: agent-dir telemetry enable <anonymous|basic|detailed>");
|
|
104
|
+
config.telemetry = { level };
|
|
105
|
+
await saveConfig(config);
|
|
106
|
+
console.log(`✓ Telemetry enabled at ${level} level.`);
|
|
107
|
+
process.exit(0);
|
|
108
|
+
}
|
|
109
|
+
if (action === "disable") {
|
|
110
|
+
config.telemetry = { level: "none" };
|
|
111
|
+
await saveConfig(config);
|
|
112
|
+
console.log("✓ Telemetry disabled.");
|
|
113
|
+
process.exit(0);
|
|
114
|
+
}
|
|
115
|
+
if (action === "schema") {
|
|
116
|
+
console.log(JSON.stringify({
|
|
117
|
+
schemaVersion: 1,
|
|
118
|
+
session: [
|
|
119
|
+
"event",
|
|
120
|
+
"wallClockDurationMs",
|
|
121
|
+
"activeRequestDurationMs",
|
|
122
|
+
"idleGapDurationMs",
|
|
123
|
+
"requestCount",
|
|
124
|
+
"toolCallCount",
|
|
125
|
+
"commandCallCount",
|
|
126
|
+
],
|
|
127
|
+
envelope: ["configId", "sessionId", "timestamp", "level", "event"],
|
|
128
|
+
events: ["mcp_request", "tool_call", "command_call", "session"],
|
|
129
|
+
successMetrics: {
|
|
130
|
+
mcp: "successful mcp_request events / mcp_request events",
|
|
131
|
+
tool: "successful tool_call events / tool_call events",
|
|
132
|
+
command: "successful command_call events / command_call events",
|
|
133
|
+
overall: "not defined; MCP and tool events are related and must not be combined",
|
|
134
|
+
},
|
|
135
|
+
aggregation: "agent-dir telemetry summary",
|
|
136
|
+
}, null, 2));
|
|
137
|
+
process.exit(0);
|
|
138
|
+
}
|
|
139
|
+
if (action === "summary") {
|
|
140
|
+
console.log(formatTelemetrySummary(summarizeTelemetry(readTelemetryEvents(telemetryFile)), currentLevel));
|
|
141
|
+
process.exit(0);
|
|
142
|
+
}
|
|
143
|
+
if (action === "show") {
|
|
144
|
+
const printEvents = () => {
|
|
145
|
+
const events = readTelemetryEvents(telemetryFile);
|
|
146
|
+
const grouped = new Map();
|
|
147
|
+
for (const event of events) {
|
|
148
|
+
const configId = isRecord(event) && typeof event.configId === "string" ? event.configId : "unknown";
|
|
149
|
+
const sessions = grouped.get(configId) ?? new Map();
|
|
150
|
+
const sessionId = isRecord(event) && typeof event.sessionId === "string" ? event.sessionId : "unknown";
|
|
151
|
+
sessions.set(sessionId, [...(sessions.get(sessionId) ?? []), event]);
|
|
152
|
+
grouped.set(configId, sessions);
|
|
153
|
+
}
|
|
154
|
+
console.log(JSON.stringify({
|
|
155
|
+
enabled: currentLevel !== "none",
|
|
156
|
+
level: currentLevel,
|
|
157
|
+
configCount: grouped.size,
|
|
158
|
+
configs: Object.fromEntries([...grouped.entries()].map(([configId, sessions]) => [
|
|
159
|
+
configId,
|
|
160
|
+
{
|
|
161
|
+
sessionCount: sessions.size,
|
|
162
|
+
sessions: Object.fromEntries([...sessions.entries()].map(([sessionId, sessionEvents]) => [
|
|
163
|
+
sessionId,
|
|
164
|
+
{ count: sessionEvents.length, events: sessionEvents },
|
|
165
|
+
])),
|
|
166
|
+
},
|
|
167
|
+
])),
|
|
168
|
+
}, null, 2));
|
|
169
|
+
};
|
|
170
|
+
printEvents();
|
|
171
|
+
if (values.follow) {
|
|
172
|
+
mkdirSync(resolve(`${process.env.HOME ?? "."}/.config/agent-dir`), {
|
|
173
|
+
recursive: true,
|
|
174
|
+
mode: 0o700,
|
|
175
|
+
});
|
|
176
|
+
try {
|
|
177
|
+
readFileSync(telemetryFile);
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
writeFileSync(telemetryFile, "", { encoding: "utf8", mode: 0o600 });
|
|
181
|
+
}
|
|
182
|
+
const watcher = watch(telemetryFile, () => {
|
|
183
|
+
process.stdout.write("\x1b[2J\x1b[H");
|
|
184
|
+
printEvents();
|
|
185
|
+
});
|
|
186
|
+
const close = () => {
|
|
187
|
+
watcher.close();
|
|
188
|
+
process.exit(0);
|
|
189
|
+
};
|
|
190
|
+
process.on("SIGINT", close);
|
|
191
|
+
process.on("SIGTERM", close);
|
|
192
|
+
await new Promise(() => { });
|
|
193
|
+
}
|
|
194
|
+
process.exit(0);
|
|
195
|
+
}
|
|
196
|
+
if (action === "reset") {
|
|
197
|
+
delete config.telemetry;
|
|
198
|
+
await saveConfig(config);
|
|
199
|
+
try {
|
|
200
|
+
unlinkSync(telemetryFile);
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
if (isRecord(error) && error.code !== "ENOENT")
|
|
204
|
+
throw error;
|
|
205
|
+
}
|
|
206
|
+
console.log("✓ Telemetry reset to defaults and all recorded data was cleared.");
|
|
207
|
+
process.exit(0);
|
|
208
|
+
}
|
|
209
|
+
fail("Usage: agent-dir telemetry {status|enable|disable|schema|show|summary|reset}");
|
|
210
|
+
}
|
|
58
211
|
if (command === "config") {
|
|
59
212
|
const action = positionals[1];
|
|
60
213
|
if (action === "list") {
|
|
@@ -72,23 +225,55 @@ if (command === "config") {
|
|
|
72
225
|
console.log(JSON.stringify(profile, null, 2));
|
|
73
226
|
process.exit(0);
|
|
74
227
|
}
|
|
75
|
-
if (action === "remove") {
|
|
228
|
+
if (action === "delete" || action === "remove") {
|
|
76
229
|
const name = positionals[2];
|
|
230
|
+
const deleteAll = values.all === true;
|
|
231
|
+
if (deleteAll && name)
|
|
232
|
+
fail("Do not combine --all with a profile name.");
|
|
233
|
+
if (!deleteAll && !name)
|
|
234
|
+
fail("Usage: agent-dir config delete <profile> | --all");
|
|
235
|
+
const names = Object.keys(config.profiles);
|
|
236
|
+
if (deleteAll) {
|
|
237
|
+
if (names.length === 0) {
|
|
238
|
+
console.log("No profiles configured.");
|
|
239
|
+
process.exit(0);
|
|
240
|
+
}
|
|
241
|
+
const confirmed = await confirmConfigDelete(`Delete all ${names.length} configured profile${names.length === 1 ? "" : "s"}?`, values.yes === true);
|
|
242
|
+
if (!confirmed) {
|
|
243
|
+
console.log("Deletion cancelled.");
|
|
244
|
+
process.exit(0);
|
|
245
|
+
}
|
|
246
|
+
for (const profileName of names)
|
|
247
|
+
delete config.profiles[profileName];
|
|
248
|
+
await saveConfig(config);
|
|
249
|
+
console.log(`✓ Deleted ${names.length} profile${names.length === 1 ? "" : "s"}.`);
|
|
250
|
+
process.exit(0);
|
|
251
|
+
}
|
|
77
252
|
if (!name || !config.profiles[name])
|
|
78
253
|
fail(`Profile not found: ${name}`);
|
|
254
|
+
const confirmed = await confirmConfigDelete(`Delete profile '${name}'?`, values.yes === true);
|
|
255
|
+
if (!confirmed) {
|
|
256
|
+
console.log("Deletion cancelled.");
|
|
257
|
+
process.exit(0);
|
|
258
|
+
}
|
|
79
259
|
delete config.profiles[name];
|
|
80
260
|
await saveConfig(config);
|
|
81
|
-
console.log(`✓
|
|
261
|
+
console.log(`✓ Deleted profile '${name}'.`);
|
|
82
262
|
process.exit(0);
|
|
83
263
|
}
|
|
84
264
|
if (action === "token") {
|
|
85
265
|
const name = positionals[2];
|
|
86
266
|
if (!name || !config.profiles[name])
|
|
87
267
|
fail(`Profile not found: ${name}`);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
268
|
+
if (values.rotate === true) {
|
|
269
|
+
config.profiles[name].token = randomBytes(24).toString("hex");
|
|
270
|
+
await saveConfig(config);
|
|
271
|
+
console.log(`✓ Rotated token for '${name}'.`);
|
|
272
|
+
}
|
|
273
|
+
if (!config.profiles[name].token) {
|
|
274
|
+
fail(`Profile '${name}' does not have an authentication token.`);
|
|
275
|
+
}
|
|
276
|
+
console.log(config.profiles[name].token);
|
|
92
277
|
process.exit(0);
|
|
93
278
|
}
|
|
94
279
|
if (action === "add") {
|
|
@@ -114,6 +299,11 @@ if (command === "config") {
|
|
|
114
299
|
const commands = parseList(values.command);
|
|
115
300
|
if (commands !== undefined)
|
|
116
301
|
profile.commands = commands;
|
|
302
|
+
const blacklist = parseList(values.blacklist);
|
|
303
|
+
if (blacklist !== undefined)
|
|
304
|
+
profile.blacklistedCommands = blacklist;
|
|
305
|
+
if (values.git !== undefined)
|
|
306
|
+
profile.git = values.git;
|
|
117
307
|
if (profile.tunnel === "wormhole" && !profile.subdomain && !values.random) {
|
|
118
308
|
fail("Wormhole profiles require --subdomain <name>, or use --random.");
|
|
119
309
|
}
|
|
@@ -123,7 +313,7 @@ if (command === "config") {
|
|
|
123
313
|
console.log(` Config: ${configPath()}`);
|
|
124
314
|
process.exit(0);
|
|
125
315
|
}
|
|
126
|
-
fail("Usage: agent-dir config {add|list|show|
|
|
316
|
+
fail("Usage: agent-dir config {add|list|show|delete|token}");
|
|
127
317
|
}
|
|
128
318
|
const profile = command ? config.profiles[command] : undefined;
|
|
129
319
|
if (command && command !== "config" && !profile && command.startsWith("-")) {
|
|
@@ -148,12 +338,33 @@ if (randomTunnel && tunnel === "none") {
|
|
|
148
338
|
const token = values.token ?? profile?.token ?? randomBytes(24).toString("hex");
|
|
149
339
|
const npm = parseList(values.npm);
|
|
150
340
|
const commands = parseList(values.command);
|
|
341
|
+
const blacklist = parseList(values.blacklist);
|
|
151
342
|
const overrides = {};
|
|
152
343
|
if (npm !== undefined)
|
|
153
344
|
overrides.npm = { allowedScripts: npm };
|
|
154
345
|
if (commands !== undefined)
|
|
155
346
|
overrides.commands = commands;
|
|
347
|
+
if (blacklist !== undefined)
|
|
348
|
+
overrides.blacklistedCommands = blacklist;
|
|
349
|
+
if (values.git !== undefined)
|
|
350
|
+
overrides.git = values.git;
|
|
156
351
|
const commandConfig = mergeProfile(profile ?? { directory, port, tunnel }, overrides);
|
|
352
|
+
const telemetryConfigId = profile
|
|
353
|
+
? command
|
|
354
|
+
: createHash("sha256")
|
|
355
|
+
.update(JSON.stringify({
|
|
356
|
+
directory,
|
|
357
|
+
port,
|
|
358
|
+
tunnel,
|
|
359
|
+
subdomain,
|
|
360
|
+
randomTunnel,
|
|
361
|
+
npm: commandConfig.npm?.allowedScripts ?? [],
|
|
362
|
+
commands: commandConfig.commands ?? [],
|
|
363
|
+
blacklistedCommands: commandConfig.blacklistedCommands ?? [],
|
|
364
|
+
git: commandConfig.git ?? commandConfig.commands?.includes("git") ?? false,
|
|
365
|
+
}))
|
|
366
|
+
.digest("hex")
|
|
367
|
+
.slice(0, 12);
|
|
157
368
|
const bannerOptions = {
|
|
158
369
|
root: directory,
|
|
159
370
|
port,
|
|
@@ -169,8 +380,22 @@ if (npmScripts)
|
|
|
169
380
|
bannerOptions.npmScripts = npmScripts;
|
|
170
381
|
if (allowedCommands)
|
|
171
382
|
bannerOptions.commands = allowedCommands;
|
|
383
|
+
if (commandConfig.blacklistedCommands?.length) {
|
|
384
|
+
bannerOptions.blacklistedCommands = commandConfig.blacklistedCommands;
|
|
385
|
+
}
|
|
386
|
+
bannerOptions.gitEnabled = commandConfig.git ?? commandConfig.commands?.includes("git") ?? false;
|
|
172
387
|
printBanner(bannerOptions);
|
|
173
|
-
const server = await startServer({
|
|
388
|
+
const server = await startServer({
|
|
389
|
+
root: directory,
|
|
390
|
+
port,
|
|
391
|
+
token,
|
|
392
|
+
commandConfig,
|
|
393
|
+
telemetry: {
|
|
394
|
+
...(config.telemetry ?? { level: "none" }),
|
|
395
|
+
...(telemetryConfigId ? { configId: telemetryConfigId } : {}),
|
|
396
|
+
persist: true,
|
|
397
|
+
},
|
|
398
|
+
});
|
|
174
399
|
let tunnelResult;
|
|
175
400
|
console.log(" ✓ SERVER ONLINE");
|
|
176
401
|
console.log(` Local target : http://127.0.0.1:${port}`);
|
|
@@ -205,4 +430,30 @@ const shutdown = async () => {
|
|
|
205
430
|
};
|
|
206
431
|
process.on("SIGINT", shutdown);
|
|
207
432
|
process.on("SIGTERM", shutdown);
|
|
433
|
+
async function confirmConfigDelete(message, skipPrompt) {
|
|
434
|
+
if (skipPrompt)
|
|
435
|
+
return true;
|
|
436
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
437
|
+
try {
|
|
438
|
+
const answer = (await rl.question(`⚠ ${message} [y/N]: `)).trim().toLowerCase();
|
|
439
|
+
return answer === "y" || answer === "yes";
|
|
440
|
+
}
|
|
441
|
+
finally {
|
|
442
|
+
rl.close();
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
function isRecord(value) {
|
|
446
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
447
|
+
}
|
|
448
|
+
function readTelemetryEvents(path) {
|
|
449
|
+
try {
|
|
450
|
+
return readFileSync(path, "utf8")
|
|
451
|
+
.split("\n")
|
|
452
|
+
.filter(Boolean)
|
|
453
|
+
.map((line) => JSON.parse(line));
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
return [];
|
|
457
|
+
}
|
|
458
|
+
}
|
|
208
459
|
//# sourceMappingURL=agent-dir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-dir.js","sourceRoot":"","sources":["../../bin/agent-dir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-dir.js","sourceRoot":"","sources":["../../bin/agent-dir.ts"],"names":[],"mappings":"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"}
|
package/dist/src/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQrE;AAQD,wBAAgB,YAAY,IAAI,QAAQ,CASvC"}
|
package/dist/src/auth.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
1
2
|
export function authenticate(request, token) {
|
|
2
3
|
const authorization = request.headers.get("authorization");
|
|
3
|
-
|
|
4
|
+
const bearer = authorization?.startsWith("Bearer ") ? authorization.slice(7) : undefined;
|
|
5
|
+
if (bearer && secureCompare(bearer, token))
|
|
4
6
|
return true;
|
|
5
7
|
const url = new URL(request.url);
|
|
6
|
-
|
|
8
|
+
const queryToken = url.searchParams.get("token");
|
|
9
|
+
return queryToken !== null && secureCompare(queryToken, token);
|
|
10
|
+
}
|
|
11
|
+
function secureCompare(left, right) {
|
|
12
|
+
const leftHash = createHash("sha256").update(left).digest();
|
|
13
|
+
const rightHash = createHash("sha256").update(right).digest();
|
|
14
|
+
return timingSafeEqual(leftHash, rightHash);
|
|
7
15
|
}
|
|
8
16
|
export function unauthorized() {
|
|
9
17
|
return new Response(JSON.stringify({ error: "Unauthorized" }), {
|
package/dist/src/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,KAAa;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3D,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,KAAa;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,UAAU,KAAK,IAAI,IAAI,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa;IAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9D,OAAO,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE;QAC7D,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;YACjD,kBAAkB,EAAE,QAAQ;YAC5B,eAAe,EAAE,UAAU;SAC5B;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAUtE,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CASvD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnE;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAE,aAAkB,GAAG,aAAa,CAM3F"}
|
package/dist/src/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
+
import { isTelemetryLevel } from "./telemetry/config.js";
|
|
4
5
|
const CONFIG_DIR = join(homedir(), ".config", "agent-dir");
|
|
5
6
|
const CONFIG_FILE = join(CONFIG_DIR, "config.json");
|
|
6
7
|
const DEFAULT_CONFIG = { version: 1, profiles: {} };
|
|
@@ -41,6 +42,12 @@ function isAgentConfig(value) {
|
|
|
41
42
|
const config = value;
|
|
42
43
|
if (config.version !== 1 || !config.profiles || typeof config.profiles !== "object")
|
|
43
44
|
return false;
|
|
45
|
+
if (config.telemetry !== undefined) {
|
|
46
|
+
if (!config.telemetry || typeof config.telemetry !== "object")
|
|
47
|
+
return false;
|
|
48
|
+
if (!isTelemetryLevel(config.telemetry.level))
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
44
51
|
for (const [name, profile] of Object.entries(config.profiles)) {
|
|
45
52
|
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(name) || !isProfile(profile))
|
|
46
53
|
return false;
|
|
@@ -75,6 +82,13 @@ function isProfile(value) {
|
|
|
75
82
|
profile.commands.some((item) => typeof item !== "string"))
|
|
76
83
|
return false;
|
|
77
84
|
}
|
|
85
|
+
if (profile.blacklistedCommands !== undefined) {
|
|
86
|
+
if (!Array.isArray(profile.blacklistedCommands) ||
|
|
87
|
+
profile.blacklistedCommands.some((item) => typeof item !== "string"))
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (profile.git !== undefined && typeof profile.git !== "boolean")
|
|
91
|
+
return false;
|
|
78
92
|
return true;
|
|
79
93
|
}
|
|
80
94
|
//# sourceMappingURL=config.js.map
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/src/logging.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export declare function printBanner(options: {
|
|
|
9
9
|
token?: string;
|
|
10
10
|
npmScripts?: string[];
|
|
11
11
|
commands?: string[];
|
|
12
|
+
blacklistedCommands?: string[];
|
|
13
|
+
gitEnabled?: boolean;
|
|
12
14
|
}): void;
|
|
13
15
|
export declare function printRequestLog(entry: RequestLog): void;
|
|
14
16
|
export declare function logRequest(entry: RequestLog): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2H7C,wBAAgB,SAAS,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2H7C,wBAAgB,SAAS,IAAI,IAAI,CAsChC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,CAqEP;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CA2BvD;AAcD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAElD;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC"}
|