@provos/ironcurtain 0.3.0 → 0.4.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/LICENSE +0 -1
- package/README.md +20 -1
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/config-command.d.ts +1 -0
- package/dist/config/config-command.js +138 -34
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/constitution-user-base.md +2 -0
- package/dist/config/first-start.js +31 -3
- package/dist/config/first-start.js.map +1 -1
- package/dist/config/generated/compiled-policy.json +158 -64
- package/dist/config/generated/test-scenarios.json +144 -293
- package/dist/config/generated/tool-annotations.json +17 -3
- package/dist/config/index.js +49 -17
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.js +9 -4
- package/dist/config/paths.js.map +1 -1
- package/dist/config/user-config.d.ts +47 -0
- package/dist/config/user-config.js +97 -4
- package/dist/config/user-config.js.map +1 -1
- package/dist/docker/adapters/claude-code.js +14 -3
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/agent-adapter.d.ts +2 -0
- package/dist/docker/audit-log-tailer.d.ts +4 -3
- package/dist/docker/audit-log-tailer.js +9 -7
- package/dist/docker/audit-log-tailer.js.map +1 -1
- package/dist/docker/docker-agent-session.d.ts +11 -0
- package/dist/docker/docker-agent-session.js +103 -22
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-manager.js +82 -15
- package/dist/docker/docker-manager.js.map +1 -1
- package/dist/docker/managed-proxy.d.ts +7 -3
- package/dist/docker/managed-proxy.js +98 -8
- package/dist/docker/managed-proxy.js.map +1 -1
- package/dist/docker/mitm-proxy.d.ts +7 -4
- package/dist/docker/mitm-proxy.js +152 -62
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/orientation.d.ts +1 -1
- package/dist/docker/orientation.js +5 -2
- package/dist/docker/orientation.js.map +1 -1
- package/dist/docker/platform.d.ts +20 -0
- package/dist/docker/platform.js +24 -0
- package/dist/docker/platform.js.map +1 -0
- package/dist/docker/provider-config.d.ts +38 -2
- package/dist/docker/provider-config.js +61 -0
- package/dist/docker/provider-config.js.map +1 -1
- package/dist/docker/types.d.ts +48 -6
- package/dist/pipeline/compile.js +2 -2
- package/dist/pipeline/compile.js.map +1 -1
- package/dist/pipeline/constitution-compiler.js +5 -2
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/handwritten-scenarios.js +9 -10
- package/dist/pipeline/handwritten-scenarios.js.map +1 -1
- package/dist/pipeline/policy-verifier.d.ts +1 -1
- package/dist/pipeline/policy-verifier.js +7 -4
- package/dist/pipeline/policy-verifier.js.map +1 -1
- package/dist/pipeline/types.d.ts +7 -1
- package/dist/servers/fetch-server.d.ts +4 -3
- package/dist/servers/fetch-server.js +72 -10
- package/dist/servers/fetch-server.js.map +1 -1
- package/dist/servers/search-providers.d.ts +29 -0
- package/dist/servers/search-providers.js +156 -0
- package/dist/servers/search-providers.js.map +1 -0
- package/dist/session/index.js +16 -6
- package/dist/session/index.js.map +1 -1
- package/dist/signal/bot-command.d.ts +13 -0
- package/dist/signal/bot-command.js +54 -0
- package/dist/signal/bot-command.js.map +1 -0
- package/dist/signal/format.d.ts +31 -0
- package/dist/signal/format.js +101 -0
- package/dist/signal/format.js.map +1 -0
- package/dist/signal/index.d.ts +16 -0
- package/dist/signal/index.js +13 -0
- package/dist/signal/index.js.map +1 -0
- package/dist/signal/markdown-to-signal.d.ts +29 -0
- package/dist/signal/markdown-to-signal.js +154 -0
- package/dist/signal/markdown-to-signal.js.map +1 -0
- package/dist/signal/setup-signal.d.ts +48 -0
- package/dist/signal/setup-signal.js +443 -0
- package/dist/signal/setup-signal.js.map +1 -0
- package/dist/signal/signal-bot-daemon.d.ts +142 -0
- package/dist/signal/signal-bot-daemon.js +504 -0
- package/dist/signal/signal-bot-daemon.js.map +1 -0
- package/dist/signal/signal-config.d.ts +64 -0
- package/dist/signal/signal-config.js +53 -0
- package/dist/signal/signal-config.js.map +1 -0
- package/dist/signal/signal-container.d.ts +37 -0
- package/dist/signal/signal-container.js +112 -0
- package/dist/signal/signal-container.js.map +1 -0
- package/dist/signal/signal-transport.d.ts +34 -0
- package/dist/signal/signal-transport.js +70 -0
- package/dist/signal/signal-transport.js.map +1 -0
- package/dist/trusted-process/mcp-proxy-server.js +34 -3
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/path-utils.d.ts +5 -1
- package/dist/trusted-process/path-utils.js +47 -4
- package/dist/trusted-process/path-utils.js.map +1 -1
- package/dist/trusted-process/tcp-server-transport.d.ts +43 -0
- package/dist/trusted-process/tcp-server-transport.js +119 -0
- package/dist/trusted-process/tcp-server-transport.js.map +1 -0
- package/dist/types/argument-roles.js +20 -5
- package/dist/types/argument-roles.js.map +1 -1
- package/docker/Dockerfile.base.arm64 +23 -0
- package/package.json +6 -3
- package/src/config/constitution-user-base.md +2 -0
- package/src/config/generated/compiled-policy.json +158 -64
- package/src/config/generated/test-scenarios.json +144 -293
- package/src/config/generated/tool-annotations.json +17 -3
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -303,6 +303,19 @@ Or with npm scripts during development: `npm start` / `npm start "task"`.
|
|
|
303
303
|
|
|
304
304
|
When Docker is available and `ANTHROPIC_API_KEY` is set, `ironcurtain start` automatically selects Docker mode (claude-code agent). Otherwise it falls back to the builtin agent silently. The selected mode is logged to stderr. Use `--agent builtin` or `--agent claude-code` to force a specific agent; explicit selection fails fast with a clear error if prerequisites are missing.
|
|
305
305
|
|
|
306
|
+
### 6. Signal messaging transport (optional)
|
|
307
|
+
|
|
308
|
+
IronCurtain includes a Signal messaging transport that lets you interact with agent sessions from your phone. All communication is end-to-end encrypted via the Signal protocol.
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
ironcurtain setup-signal # Interactive setup wizard (one-time)
|
|
312
|
+
ironcurtain bot # Start the Signal bot daemon
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Once running, send messages from the Signal app to control agent sessions, receive responses, and approve or deny escalations — all from your phone.
|
|
316
|
+
|
|
317
|
+
See [TRANSPORT.md](TRANSPORT.md) for the full setup guide, architecture details, and why we chose Signal over alternatives like Telegram.
|
|
318
|
+
|
|
306
319
|
### Session Commands
|
|
307
320
|
|
|
308
321
|
During an interactive session:
|
|
@@ -325,6 +338,7 @@ IronCurtain stores its configuration and session data in `~/.ironcurtain/`:
|
|
|
325
338
|
├── constitution.md # User-local base constitution (overrides package default)
|
|
326
339
|
├── constitution-user.md # Your policy customizations (generated by customize-policy)
|
|
327
340
|
├── generated/ # User-compiled policy artifacts (overrides package defaults)
|
|
341
|
+
├── signal-data/ # Signal transport persistent data (registration keys)
|
|
328
342
|
├── sessions/
|
|
329
343
|
│ └── {sessionId}/
|
|
330
344
|
│ ├── sandbox/ # Per-session filesystem sandbox
|
|
@@ -436,9 +450,10 @@ See [docs/SECURITY_CONCERNS.md](docs/SECURITY_CONCERNS.md) for a detailed threat
|
|
|
436
450
|
| **Missing API key** | Set the environment variable (`ANTHROPIC_API_KEY`, `GOOGLE_GENERATIVE_AI_API_KEY`, or `OPENAI_API_KEY`) or add the corresponding key to `~/.ironcurtain/config.json`. |
|
|
437
451
|
| **Sandbox unavailable** | OS-level sandboxing requires `bubblewrap` and `socat`. Install both, or set `"sandboxPolicy": "warn"` in your MCP server config for development. |
|
|
438
452
|
| **Budget exhausted** | Adjust limits in `~/.ironcurtain/config.json` under `resourceBudget`. Set any individual limit to `null` to disable it. |
|
|
439
|
-
| **Node version errors** |
|
|
453
|
+
| **Node version errors** | Node.js 22+ is required (`isolated-vm` needs `>=22.0.0`). Maximum supported is Node 25 (`<26`). |
|
|
440
454
|
| **Policy doesn't match intent** | Review `compiled-policy.json` to see the generated rules. Run `ironcurtain customize-policy` to refine your constitution, then `ironcurtain compile-policy` to recompile. Specific wording produces better rules — vague phrasing leads to vague policy. |
|
|
441
455
|
| **Auto-approve not triggering** | The auto-approver only approves when the user's message explicitly authorizes the action (e.g., "push to origin" for `git_push`). Vague messages like "go ahead" always escalate to human review. Verify `autoApprove.enabled` is `true` in `config.json`. |
|
|
456
|
+
| **Signal bot not responding** | Verify the signal-cli container is running (`docker ps \| grep ironcurtain-signal`). Check that Signal is configured (`ironcurtain setup-signal`). See [TRANSPORT.md](TRANSPORT.md) for detailed troubleshooting. |
|
|
442
457
|
|
|
443
458
|
## Development
|
|
444
459
|
|
|
@@ -450,6 +465,8 @@ npm run lint # Lint
|
|
|
450
465
|
npm run build # TypeScript compilation + asset copy
|
|
451
466
|
```
|
|
452
467
|
|
|
468
|
+
See [TESTING.md](TESTING.md) for the full testing guide, including integration test flags and conventions.
|
|
469
|
+
|
|
453
470
|
### Project Structure
|
|
454
471
|
|
|
455
472
|
```
|
|
@@ -463,6 +480,8 @@ src/
|
|
|
463
480
|
├── sandbox/ # V8 isolated execution environment
|
|
464
481
|
├── trusted-process/ # Policy engine, MCP proxy, audit log, escalation
|
|
465
482
|
├── pipeline/ # Constitution → policy compilation pipeline
|
|
483
|
+
├── signal/ # Signal messaging transport (bot daemon, setup, formatting)
|
|
484
|
+
├── docker/ # Docker agent mode, container management
|
|
466
485
|
└── types/ # Shared type definitions
|
|
467
486
|
```
|
|
468
487
|
|
package/dist/cli.js
CHANGED
|
@@ -20,7 +20,10 @@ Usage:
|
|
|
20
20
|
|
|
21
21
|
Commands:
|
|
22
22
|
start [task] Run the agent (interactive or single-shot)
|
|
23
|
+
bot Run the Signal messaging transport daemon
|
|
23
24
|
setup Run the first-start wizard (always runs)
|
|
25
|
+
setup-signal Interactive Signal transport onboarding
|
|
26
|
+
--re-trust: re-verify a changed identity key
|
|
24
27
|
annotate-tools Classify MCP tool arguments via LLM
|
|
25
28
|
compile-policy Compile constitution into enforceable policy rules
|
|
26
29
|
refresh-lists Re-resolve dynamic lists without full recompilation
|
|
@@ -104,6 +107,18 @@ switch (subcommand) {
|
|
|
104
107
|
await runFirstStart();
|
|
105
108
|
break;
|
|
106
109
|
}
|
|
110
|
+
case 'bot': {
|
|
111
|
+
const agentName = values.agent;
|
|
112
|
+
const { runBot } = await import('./signal/bot-command.js');
|
|
113
|
+
await runBot({ agent: agentName });
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case 'setup-signal': {
|
|
117
|
+
const reTrust = process.argv.includes('--re-trust');
|
|
118
|
+
const { runSignalSetup } = await import('./signal/setup-signal.js');
|
|
119
|
+
await runSignalSetup({ reTrust });
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
107
122
|
default:
|
|
108
123
|
console.error(`Unknown command: ${subcommand}\n`);
|
|
109
124
|
printHelp();
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,SAAS,UAAU;IACjB,oFAAoF;IACpF,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAwB,CAAC;IACtF,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,KAAK,CACX
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { type UserConfig, type ResolvedUserConfig } from './user-config.js';
|
|
|
9
9
|
export declare function formatTokens(n: number | null): string;
|
|
10
10
|
export declare function formatSeconds(n: number | null): string;
|
|
11
11
|
export declare function formatCost(n: number | null): string;
|
|
12
|
+
export declare function maskApiKey(key: string | undefined | null): string;
|
|
12
13
|
interface DiffEntry {
|
|
13
14
|
from: unknown;
|
|
14
15
|
to: unknown;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* menu — users must set them via environment variables or edit JSON directly.
|
|
7
7
|
*/
|
|
8
8
|
import * as p from '@clack/prompts';
|
|
9
|
-
import { loadUserConfig, saveUserConfig, validateModelId, ESCALATION_TIMEOUT_MIN, ESCALATION_TIMEOUT_MAX, } from './user-config.js';
|
|
9
|
+
import { loadUserConfig, saveUserConfig, validateModelId, ESCALATION_TIMEOUT_MIN, ESCALATION_TIMEOUT_MAX, WEB_SEARCH_PROVIDERS, WEB_SEARCH_PROVIDER_LABELS, WEB_SEARCH_PROVIDER_URLS, } from './user-config.js';
|
|
10
10
|
import { getUserConfigPath } from './paths.js';
|
|
11
11
|
/** Known model options for selection prompts. */
|
|
12
12
|
const KNOWN_MODELS = [
|
|
@@ -19,12 +19,9 @@ const KNOWN_MODELS = [
|
|
|
19
19
|
{ value: 'openai:gpt-4o-mini', label: 'GPT-4o Mini' },
|
|
20
20
|
];
|
|
21
21
|
const CUSTOM_MODEL_SENTINEL = '__custom__';
|
|
22
|
-
/**
|
|
23
|
-
function
|
|
24
|
-
|
|
25
|
-
p.cancel('Configuration cancelled.');
|
|
26
|
-
process.exit(0);
|
|
27
|
-
}
|
|
22
|
+
/** Returns true if the user pressed ESC / Ctrl-C on a prompt. */
|
|
23
|
+
function isCancelled(value) {
|
|
24
|
+
return p.isCancel(value);
|
|
28
25
|
}
|
|
29
26
|
// ─── Formatters ──────────────────────────────────────────────
|
|
30
27
|
export function formatTokens(n) {
|
|
@@ -56,6 +53,13 @@ export function formatCost(n) {
|
|
|
56
53
|
return 'disabled';
|
|
57
54
|
return `$${n.toFixed(2)}`;
|
|
58
55
|
}
|
|
56
|
+
export function maskApiKey(key) {
|
|
57
|
+
if (!key)
|
|
58
|
+
return 'none';
|
|
59
|
+
if (key.length <= 6)
|
|
60
|
+
return '***';
|
|
61
|
+
return key.slice(0, 3) + '...' + key.slice(-3);
|
|
62
|
+
}
|
|
59
63
|
function formatModelShort(id) {
|
|
60
64
|
const known = KNOWN_MODELS.find((m) => m.value === id);
|
|
61
65
|
return known ? known.label : id;
|
|
@@ -81,6 +85,27 @@ export function computeDiff(resolved, pending) {
|
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
}
|
|
88
|
+
// webSearch — compare provider and per-provider blocks
|
|
89
|
+
if (pending.webSearch) {
|
|
90
|
+
const pw = pending.webSearch;
|
|
91
|
+
const rw = resolved.webSearch;
|
|
92
|
+
if (pw.provider !== undefined && pw.provider !== rw.provider) {
|
|
93
|
+
diffs.push(['webSearch.provider', { from: rw.provider ?? 'none', to: pw.provider ?? 'none' }]);
|
|
94
|
+
}
|
|
95
|
+
// Show API key changes as masked values
|
|
96
|
+
for (const prov of ['brave', 'tavily', 'serpapi']) {
|
|
97
|
+
const pendingBlock = pw[prov];
|
|
98
|
+
if (!pendingBlock)
|
|
99
|
+
continue;
|
|
100
|
+
const resolvedBlock = rw[prov];
|
|
101
|
+
if ('apiKey' in pendingBlock && pendingBlock.apiKey !== resolvedBlock?.apiKey) {
|
|
102
|
+
diffs.push([
|
|
103
|
+
`webSearch.${prov}.apiKey`,
|
|
104
|
+
{ from: maskApiKey(resolvedBlock?.apiKey), to: maskApiKey(pendingBlock.apiKey) },
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
84
109
|
return diffs;
|
|
85
110
|
}
|
|
86
111
|
function formatDiffValue(key, value) {
|
|
@@ -107,14 +132,16 @@ async function promptModelId(message, current) {
|
|
|
107
132
|
}));
|
|
108
133
|
options.push({ value: CUSTOM_MODEL_SENTINEL, label: 'Custom...', hint: undefined });
|
|
109
134
|
const selected = await p.select({ message, options, initialValue: current });
|
|
110
|
-
|
|
135
|
+
if (isCancelled(selected))
|
|
136
|
+
return undefined;
|
|
111
137
|
if (selected === CUSTOM_MODEL_SENTINEL) {
|
|
112
138
|
const custom = await p.text({
|
|
113
139
|
message: 'Enter model ID (e.g., "anthropic:model-name"):',
|
|
114
140
|
placeholder: current,
|
|
115
141
|
validate: (val) => (val ? validateModelId(val) : 'Model ID is required'),
|
|
116
142
|
});
|
|
117
|
-
|
|
143
|
+
if (isCancelled(custom))
|
|
144
|
+
return undefined;
|
|
118
145
|
return custom;
|
|
119
146
|
}
|
|
120
147
|
return selected;
|
|
@@ -133,7 +160,8 @@ async function promptNullableNumber(opts) {
|
|
|
133
160
|
{ value: 'keep', label: 'Keep current', hint: currentDisplay },
|
|
134
161
|
],
|
|
135
162
|
});
|
|
136
|
-
|
|
163
|
+
if (isCancelled(action))
|
|
164
|
+
return undefined;
|
|
137
165
|
if (action === 'keep')
|
|
138
166
|
return undefined;
|
|
139
167
|
if (action === 'disable')
|
|
@@ -150,7 +178,8 @@ async function promptNullableNumber(opts) {
|
|
|
150
178
|
return opts.validate?.(n);
|
|
151
179
|
},
|
|
152
180
|
});
|
|
153
|
-
|
|
181
|
+
if (isCancelled(input))
|
|
182
|
+
return undefined;
|
|
154
183
|
return Number(input);
|
|
155
184
|
}
|
|
156
185
|
// ─── Category handlers ───────────────────────────────────────
|
|
@@ -167,8 +196,7 @@ async function handleModels(resolved, pending) {
|
|
|
167
196
|
{ value: 'back', label: 'Back' },
|
|
168
197
|
],
|
|
169
198
|
});
|
|
170
|
-
|
|
171
|
-
if (field === 'back')
|
|
199
|
+
if (isCancelled(field) || field === 'back')
|
|
172
200
|
return;
|
|
173
201
|
const current = field === 'agentModelId' ? currentAgent : currentPolicy;
|
|
174
202
|
const newValue = await promptModelId(field === 'agentModelId' ? 'Select agent model:' : 'Select policy model:', current);
|
|
@@ -204,8 +232,7 @@ async function handleSecurity(resolved, pending) {
|
|
|
204
232
|
{ value: 'back', label: 'Back' },
|
|
205
233
|
],
|
|
206
234
|
});
|
|
207
|
-
|
|
208
|
-
if (field === 'back')
|
|
235
|
+
if (isCancelled(field) || field === 'back')
|
|
209
236
|
return;
|
|
210
237
|
if (field === 'timeout') {
|
|
211
238
|
const input = await p.text({
|
|
@@ -224,7 +251,8 @@ async function handleSecurity(resolved, pending) {
|
|
|
224
251
|
return undefined;
|
|
225
252
|
},
|
|
226
253
|
});
|
|
227
|
-
|
|
254
|
+
if (isCancelled(input))
|
|
255
|
+
continue;
|
|
228
256
|
const newTimeout = Number(input);
|
|
229
257
|
if (newTimeout !== currentTimeout) {
|
|
230
258
|
pending.escalationTimeoutSeconds = newTimeout;
|
|
@@ -235,7 +263,8 @@ async function handleSecurity(resolved, pending) {
|
|
|
235
263
|
message: 'Enable auto-approve for escalations?',
|
|
236
264
|
initialValue: currentAutoApproveEnabled,
|
|
237
265
|
});
|
|
238
|
-
|
|
266
|
+
if (isCancelled(enabled))
|
|
267
|
+
continue;
|
|
239
268
|
if (enabled !== currentAutoApproveEnabled) {
|
|
240
269
|
pending.autoApprove = { ...pending.autoApprove, enabled: enabled };
|
|
241
270
|
}
|
|
@@ -267,8 +296,7 @@ async function handleResourceLimits(resolved, pending) {
|
|
|
267
296
|
{ value: 'back', label: 'Back' },
|
|
268
297
|
],
|
|
269
298
|
});
|
|
270
|
-
|
|
271
|
-
if (field === 'back')
|
|
299
|
+
if (isCancelled(field) || field === 'back')
|
|
272
300
|
return;
|
|
273
301
|
if (field === 'warnThresholdPercent') {
|
|
274
302
|
const input = await p.text({
|
|
@@ -285,7 +313,8 @@ async function handleResourceLimits(resolved, pending) {
|
|
|
285
313
|
return undefined;
|
|
286
314
|
},
|
|
287
315
|
});
|
|
288
|
-
|
|
316
|
+
if (isCancelled(input))
|
|
317
|
+
continue;
|
|
289
318
|
const newVal = Number(input);
|
|
290
319
|
if (newVal !== budget.warnThresholdPercent) {
|
|
291
320
|
pending.resourceBudget = { ...pending.resourceBudget, warnThresholdPercent: newVal };
|
|
@@ -293,13 +322,21 @@ async function handleResourceLimits(resolved, pending) {
|
|
|
293
322
|
}
|
|
294
323
|
else {
|
|
295
324
|
const key = field;
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
325
|
+
let formatFn;
|
|
326
|
+
switch (key) {
|
|
327
|
+
case 'maxTotalTokens':
|
|
328
|
+
formatFn = formatTokens;
|
|
329
|
+
break;
|
|
330
|
+
case 'maxSessionSeconds':
|
|
331
|
+
formatFn = formatSeconds;
|
|
332
|
+
break;
|
|
333
|
+
case 'maxEstimatedCostUsd':
|
|
334
|
+
formatFn = formatCost;
|
|
335
|
+
break;
|
|
336
|
+
default:
|
|
337
|
+
formatFn = (n) => (n === null ? 'disabled' : String(n));
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
303
340
|
const result = await promptNullableNumber({
|
|
304
341
|
message: `${key}:`,
|
|
305
342
|
current: budget[key],
|
|
@@ -333,15 +370,15 @@ async function handleAutoCompact(resolved, pending) {
|
|
|
333
370
|
{ value: 'back', label: 'Back' },
|
|
334
371
|
],
|
|
335
372
|
});
|
|
336
|
-
|
|
337
|
-
if (field === 'back')
|
|
373
|
+
if (isCancelled(field) || field === 'back')
|
|
338
374
|
return;
|
|
339
375
|
if (field === 'enabled') {
|
|
340
376
|
const enabled = await p.confirm({
|
|
341
377
|
message: 'Enable auto-compaction?',
|
|
342
378
|
initialValue: compact.enabled,
|
|
343
379
|
});
|
|
344
|
-
|
|
380
|
+
if (isCancelled(enabled))
|
|
381
|
+
continue;
|
|
345
382
|
if (enabled !== compact.enabled) {
|
|
346
383
|
pending.autoCompact = { ...pending.autoCompact, enabled: enabled };
|
|
347
384
|
}
|
|
@@ -361,7 +398,8 @@ async function handleAutoCompact(resolved, pending) {
|
|
|
361
398
|
return undefined;
|
|
362
399
|
},
|
|
363
400
|
});
|
|
364
|
-
|
|
401
|
+
if (isCancelled(input))
|
|
402
|
+
continue;
|
|
365
403
|
const newVal = Number(input);
|
|
366
404
|
if (newVal !== compact.thresholdTokens) {
|
|
367
405
|
pending.autoCompact = { ...pending.autoCompact, thresholdTokens: newVal };
|
|
@@ -382,7 +420,8 @@ async function handleAutoCompact(resolved, pending) {
|
|
|
382
420
|
return undefined;
|
|
383
421
|
},
|
|
384
422
|
});
|
|
385
|
-
|
|
423
|
+
if (isCancelled(input))
|
|
424
|
+
continue;
|
|
386
425
|
const newVal = Number(input);
|
|
387
426
|
if (newVal !== compact.keepRecentMessages) {
|
|
388
427
|
pending.autoCompact = { ...pending.autoCompact, keepRecentMessages: newVal };
|
|
@@ -396,6 +435,59 @@ async function handleAutoCompact(resolved, pending) {
|
|
|
396
435
|
}
|
|
397
436
|
}
|
|
398
437
|
}
|
|
438
|
+
// ─── Web Search ──────────────────────────────────────────────
|
|
439
|
+
async function handleWebSearch(resolved, pending) {
|
|
440
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- interactive loop exited via return
|
|
441
|
+
while (true) {
|
|
442
|
+
const currentProvider = pending.webSearch?.provider ?? resolved.webSearch.provider;
|
|
443
|
+
const currentLabel = currentProvider ? WEB_SEARCH_PROVIDER_LABELS[currentProvider] : 'not configured';
|
|
444
|
+
const action = await p.select({
|
|
445
|
+
message: 'Web Search',
|
|
446
|
+
options: [
|
|
447
|
+
{ value: 'select', label: 'Select provider', hint: currentLabel },
|
|
448
|
+
{ value: 'disable', label: 'Disable web search' },
|
|
449
|
+
{ value: 'back', label: 'Back' },
|
|
450
|
+
],
|
|
451
|
+
});
|
|
452
|
+
if (isCancelled(action) || action === 'back')
|
|
453
|
+
return;
|
|
454
|
+
if (action === 'disable') {
|
|
455
|
+
// Clear all webSearch fields by setting provider to undefined (removes from config)
|
|
456
|
+
pending.webSearch = {};
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
// Select provider
|
|
460
|
+
const providerOptions = WEB_SEARCH_PROVIDERS.map((prov) => ({
|
|
461
|
+
value: prov,
|
|
462
|
+
label: WEB_SEARCH_PROVIDER_LABELS[prov],
|
|
463
|
+
hint: prov === currentProvider ? '(current)' : undefined,
|
|
464
|
+
}));
|
|
465
|
+
const selected = await p.select({
|
|
466
|
+
message: 'Select search provider:',
|
|
467
|
+
options: providerOptions,
|
|
468
|
+
});
|
|
469
|
+
if (isCancelled(selected))
|
|
470
|
+
continue;
|
|
471
|
+
const provider = selected;
|
|
472
|
+
p.note(`Get an API key at ${WEB_SEARCH_PROVIDER_URLS[provider]}`, WEB_SEARCH_PROVIDER_LABELS[provider]);
|
|
473
|
+
const currentKey = resolved.webSearch[provider]?.apiKey;
|
|
474
|
+
const apiKey = await p.text({
|
|
475
|
+
message: `${WEB_SEARCH_PROVIDER_LABELS[provider]} API key:`,
|
|
476
|
+
placeholder: currentKey ? '(keep current)' : 'Enter API key',
|
|
477
|
+
validate: (val) => {
|
|
478
|
+
if (!val && !currentKey)
|
|
479
|
+
return 'API key is required';
|
|
480
|
+
return undefined;
|
|
481
|
+
},
|
|
482
|
+
});
|
|
483
|
+
if (isCancelled(apiKey))
|
|
484
|
+
continue;
|
|
485
|
+
pending.webSearch = {
|
|
486
|
+
provider,
|
|
487
|
+
[provider]: { apiKey: apiKey || currentKey || '' },
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
}
|
|
399
491
|
// ─── Menu descriptions ───────────────────────────────────────
|
|
400
492
|
function modelsHint(resolved, pending) {
|
|
401
493
|
const agent = formatModelShort(pending.agentModelId ?? resolved.agentModelId);
|
|
@@ -415,6 +507,10 @@ function autoCompactHint(resolved, pending) {
|
|
|
415
507
|
const c = { ...resolved.autoCompact, ...pending.autoCompact };
|
|
416
508
|
return c.enabled ? `on, threshold: ${formatTokens(c.thresholdTokens)}` : 'off';
|
|
417
509
|
}
|
|
510
|
+
function webSearchHint(resolved, pending) {
|
|
511
|
+
const provider = pending.webSearch?.provider ?? resolved.webSearch.provider;
|
|
512
|
+
return provider ? WEB_SEARCH_PROVIDER_LABELS[provider] : 'not configured';
|
|
513
|
+
}
|
|
418
514
|
function changeCount(resolved, pending) {
|
|
419
515
|
const diffs = computeDiff(resolved, pending);
|
|
420
516
|
if (diffs.length === 0)
|
|
@@ -448,11 +544,15 @@ export async function runConfigCommand() {
|
|
|
448
544
|
{ value: 'security', label: 'Security', hint: securityHint(resolved, pending) },
|
|
449
545
|
{ value: 'resources', label: 'Resource Limits', hint: resourceHint(resolved, pending) },
|
|
450
546
|
{ value: 'compact', label: 'Auto-Compact', hint: autoCompactHint(resolved, pending) },
|
|
547
|
+
{ value: 'websearch', label: 'Web Search', hint: webSearchHint(resolved, pending) },
|
|
451
548
|
{ value: 'save', label: 'Save & Exit', hint: changeCount(resolved, pending) },
|
|
452
549
|
{ value: 'cancel', label: 'Cancel', hint: 'discard all changes' },
|
|
453
550
|
],
|
|
454
551
|
});
|
|
455
|
-
|
|
552
|
+
if (isCancelled(category)) {
|
|
553
|
+
p.cancel('Changes discarded.');
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
456
556
|
switch (category) {
|
|
457
557
|
case 'models':
|
|
458
558
|
await handleModels(resolved, pending);
|
|
@@ -466,6 +566,9 @@ export async function runConfigCommand() {
|
|
|
466
566
|
case 'compact':
|
|
467
567
|
await handleAutoCompact(resolved, pending);
|
|
468
568
|
break;
|
|
569
|
+
case 'websearch':
|
|
570
|
+
await handleWebSearch(resolved, pending);
|
|
571
|
+
break;
|
|
469
572
|
case 'cancel':
|
|
470
573
|
p.cancel('Changes discarded.');
|
|
471
574
|
return;
|
|
@@ -483,7 +586,8 @@ export async function runConfigCommand() {
|
|
|
483
586
|
message: 'Save these changes?',
|
|
484
587
|
initialValue: true,
|
|
485
588
|
});
|
|
486
|
-
|
|
589
|
+
if (isCancelled(confirmed))
|
|
590
|
+
continue;
|
|
487
591
|
if (confirmed) {
|
|
488
592
|
saveUserConfig(pending);
|
|
489
593
|
p.outro('Configuration saved.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/config/config-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/config/config-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,3 +7,5 @@
|
|
|
7
7
|
- The agent is allowed to perform all local read and write git operations within the sandbox
|
|
8
8
|
- The agent must ask for human approval for all other git operations
|
|
9
9
|
- The agent may fetch web content from popular news sites.
|
|
10
|
+
- The agent may perform web searches to find information
|
|
11
|
+
- The agent may fetch web content from popular development sites.
|
|
@@ -9,7 +9,7 @@ import { readFileSync } from 'node:fs';
|
|
|
9
9
|
import { dirname, resolve } from 'node:path';
|
|
10
10
|
import { fileURLToPath } from 'node:url';
|
|
11
11
|
import * as p from '@clack/prompts';
|
|
12
|
-
import { USER_CONFIG_DEFAULTS } from './user-config.js';
|
|
12
|
+
import { USER_CONFIG_DEFAULTS, WEB_SEARCH_PROVIDERS, WEB_SEARCH_PROVIDER_LABELS, WEB_SEARCH_PROVIDER_URLS, saveUserConfig, } from './user-config.js';
|
|
13
13
|
import { parseModelId } from './model-provider.js';
|
|
14
14
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
15
|
/** Maps provider IDs to their expected environment variable names. */
|
|
@@ -95,13 +95,41 @@ export async function runFirstStart() {
|
|
|
95
95
|
if (allPresent) {
|
|
96
96
|
p.log.info('All required API keys are configured.');
|
|
97
97
|
}
|
|
98
|
-
// Step 4:
|
|
98
|
+
// Step 4: Optional web search provider
|
|
99
|
+
p.log.info('Web search lets the agent look up documentation, error messages, and current\n' +
|
|
100
|
+
'information. This is optional but makes the agent significantly more helpful.');
|
|
101
|
+
const providerOptions = WEB_SEARCH_PROVIDERS.map((prov) => ({
|
|
102
|
+
value: prov,
|
|
103
|
+
label: WEB_SEARCH_PROVIDER_LABELS[prov],
|
|
104
|
+
hint: WEB_SEARCH_PROVIDER_URLS[prov],
|
|
105
|
+
}));
|
|
106
|
+
const setupSearch = await p.select({
|
|
107
|
+
message: 'Set up a web search provider?',
|
|
108
|
+
options: [
|
|
109
|
+
...providerOptions,
|
|
110
|
+
{ value: 'skip', label: 'Skip for now', hint: 'configure later via ironcurtain config' },
|
|
111
|
+
],
|
|
112
|
+
});
|
|
113
|
+
handleCancel(setupSearch);
|
|
114
|
+
if (setupSearch !== 'skip') {
|
|
115
|
+
const provider = setupSearch;
|
|
116
|
+
const apiKey = await p.text({
|
|
117
|
+
message: `Enter your ${provider} API key:`,
|
|
118
|
+
validate: (val) => (!val ? 'API key is required' : undefined),
|
|
119
|
+
});
|
|
120
|
+
handleCancel(apiKey);
|
|
121
|
+
saveUserConfig({
|
|
122
|
+
webSearch: { provider, [provider]: { apiKey: apiKey } },
|
|
123
|
+
});
|
|
124
|
+
p.log.success(`Web search configured with ${provider}.`);
|
|
125
|
+
}
|
|
126
|
+
// Step 5: Suggest customization
|
|
99
127
|
p.note('You can customize IronCurtain to fit your workflow:\n\n' +
|
|
100
128
|
' ironcurtain config — change models, resource limits, and other settings\n' +
|
|
101
129
|
' ironcurtain customize-policy — LLM-assisted interactive policy customization\n' +
|
|
102
130
|
' ironcurtain compile-policy — recompile after constitution changes\n' +
|
|
103
131
|
' ironcurtain annotate-tools — reclassify tool arguments after server changes', 'Customization');
|
|
104
|
-
// Step
|
|
132
|
+
// Step 6: Outro
|
|
105
133
|
p.outro('Run `ironcurtain start` to begin.');
|
|
106
134
|
}
|
|
107
135
|
//# sourceMappingURL=first-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-start.js","sourceRoot":"","sources":["../../src/config/first-start.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"first-start.js","sourceRoot":"","sources":["../../src/config/first-start.ts"],"names":[],"mappings":"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"}
|