@tinycloud/courier 0.2.0-beta.37 → 0.2.0-beta.39

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.
Files changed (87) hide show
  1. package/README.md +369 -12
  2. package/dist/a2a.d.ts +6 -0
  3. package/dist/a2a.js +10 -0
  4. package/dist/a2a.js.map +1 -1
  5. package/dist/approval.d.ts +6 -5
  6. package/dist/approval.js +7 -16
  7. package/dist/approval.js.map +1 -1
  8. package/dist/args.js +1 -1
  9. package/dist/args.js.map +1 -1
  10. package/dist/broker-config.d.ts +24 -0
  11. package/dist/broker-config.js +99 -0
  12. package/dist/broker-config.js.map +1 -0
  13. package/dist/broker.d.ts +77 -0
  14. package/dist/broker.js +253 -0
  15. package/dist/broker.js.map +1 -0
  16. package/dist/commands.js +5 -2
  17. package/dist/commands.js.map +1 -1
  18. package/dist/consumed.d.ts +10 -0
  19. package/dist/consumed.js +54 -0
  20. package/dist/consumed.js.map +1 -0
  21. package/dist/guard/binaries.d.ts +17 -0
  22. package/dist/guard/binaries.js +89 -0
  23. package/dist/guard/binaries.js.map +1 -0
  24. package/dist/guard/cleanhome.d.ts +27 -0
  25. package/dist/guard/cleanhome.js +111 -0
  26. package/dist/guard/cleanhome.js.map +1 -0
  27. package/dist/guard/command.d.ts +13 -0
  28. package/dist/guard/command.js +158 -0
  29. package/dist/guard/command.js.map +1 -0
  30. package/dist/guard/expansion.d.ts +10 -0
  31. package/dist/guard/expansion.js +74 -0
  32. package/dist/guard/expansion.js.map +1 -0
  33. package/dist/guard/hook.d.ts +38 -0
  34. package/dist/guard/hook.js +124 -0
  35. package/dist/guard/hook.js.map +1 -0
  36. package/dist/guard/install.d.ts +67 -0
  37. package/dist/guard/install.js +193 -0
  38. package/dist/guard/install.js.map +1 -0
  39. package/dist/guard/network.d.ts +7 -0
  40. package/dist/guard/network.js +78 -0
  41. package/dist/guard/network.js.map +1 -0
  42. package/dist/guard/normalize.d.ts +28 -0
  43. package/dist/guard/normalize.js +257 -0
  44. package/dist/guard/normalize.js.map +1 -0
  45. package/dist/guard/paseo.d.ts +30 -0
  46. package/dist/guard/paseo.js +148 -0
  47. package/dist/guard/paseo.js.map +1 -0
  48. package/dist/guard/paths.d.ts +31 -0
  49. package/dist/guard/paths.js +180 -0
  50. package/dist/guard/paths.js.map +1 -0
  51. package/dist/guard/policy.d.ts +65 -0
  52. package/dist/guard/policy.js +1179 -0
  53. package/dist/guard/policy.js.map +1 -0
  54. package/dist/guard/shell.d.ts +55 -0
  55. package/dist/guard/shell.js +727 -0
  56. package/dist/guard/shell.js.map +1 -0
  57. package/dist/index.d.ts +2 -0
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/keys.d.ts +4 -1
  61. package/dist/keys.js +7 -2
  62. package/dist/keys.js.map +1 -1
  63. package/dist/main.js +44 -4
  64. package/dist/main.js.map +1 -1
  65. package/dist/node.d.ts +1 -1
  66. package/dist/node.js +3 -3
  67. package/dist/node.js.map +1 -1
  68. package/dist/notify.d.ts +43 -0
  69. package/dist/notify.js +92 -0
  70. package/dist/notify.js.map +1 -0
  71. package/dist/pause.d.ts +32 -0
  72. package/dist/pause.js +111 -0
  73. package/dist/pause.js.map +1 -0
  74. package/dist/profile.d.ts +3 -3
  75. package/dist/profile.js +12 -12
  76. package/dist/profile.js.map +1 -1
  77. package/dist/wake.d.ts +17 -0
  78. package/dist/wake.js +74 -13
  79. package/dist/wake.js.map +1 -1
  80. package/dist/watch-cmd.d.ts +3 -0
  81. package/dist/watch-cmd.js +56 -2
  82. package/dist/watch-cmd.js.map +1 -1
  83. package/dist/watch.d.ts +134 -0
  84. package/dist/watch.js +697 -13
  85. package/dist/watch.js.map +1 -1
  86. package/package.json +1 -1
  87. package/skills/courier/SKILL.md +119 -8
package/dist/profile.d.ts CHANGED
@@ -59,10 +59,10 @@ export interface Profile {
59
59
  export declare function profileDir(): string;
60
60
  export declare function profileExists(): boolean;
61
61
  export declare function writeSecure(file: string, obj: unknown): void;
62
- export declare function loadProfile(): Profile;
62
+ export declare function loadProfile(home?: string): Profile;
63
63
  export declare function saveProfile(profile: Profile): void;
64
- export declare function loadKey(): AgentKey;
64
+ export declare function loadKey(home?: string): AgentKey;
65
65
  export declare function saveKey(key: AgentKey): void;
66
- export declare function loadGrant(): OwnerGrant | undefined;
66
+ export declare function loadGrant(home?: string): OwnerGrant | undefined;
67
67
  export declare function saveGrant(grant: OwnerGrant): void;
68
68
  export declare function getPeer(p: Profile, handle: string): StoredPeer;
package/dist/profile.js CHANGED
@@ -4,10 +4,10 @@ import { randomBytes } from 'node:crypto';
4
4
  import { cmd } from './program.js';
5
5
  import { CourierError } from './errors.js';
6
6
  export function profileDir() {
7
- return process.env.COURIER_HOME ?? path.join(process.env.HOME ?? '.', '.courier');
7
+ return process.env.COURIER_HOME || path.join(process.env.HOME ?? '.', '.courier');
8
8
  }
9
- function profilePath(name) {
10
- return path.join(profileDir(), name);
9
+ function profilePath(name, home = profileDir()) {
10
+ return path.join(home, name);
11
11
  }
12
12
  export function profileExists() {
13
13
  return fs.existsSync(profilePath('profile.json'));
@@ -32,14 +32,14 @@ export function writeSecure(file, obj) {
32
32
  catch { /* renamed or absent */ }
33
33
  }
34
34
  }
35
- function readSecure(name, required) {
36
- const file = profilePath(name);
35
+ function readSecure(name, required, home = profileDir()) {
36
+ const file = profilePath(name, home);
37
37
  if (!fs.existsSync(file)) {
38
38
  if (required)
39
39
  throw new CourierError('no-profile', `Missing ${name} in ${profileDir()}. Run \`${cmd('init')}\` first.`);
40
40
  return undefined;
41
41
  }
42
- const dirMode = fs.statSync(profileDir()).mode & 0o777;
42
+ const dirMode = fs.statSync(home).mode & 0o777;
43
43
  if ((dirMode & 0o077) !== 0) {
44
44
  throw new CourierError('profile-permissions', `${profileDir()} must be owner-only (mode 0700); found mode ${dirMode.toString(8)}.`);
45
45
  }
@@ -54,8 +54,8 @@ function readSecure(name, required) {
54
54
  throw new CourierError('bad-profile', `Invalid ${name}: ${e.message}`);
55
55
  }
56
56
  }
57
- export function loadProfile() {
58
- const loaded = readSecure('profile.json', true);
57
+ export function loadProfile(home = profileDir()) {
58
+ const loaded = readSecure('profile.json', true, home);
59
59
  if (!loaded || typeof loaded !== 'object' || !('version' in loaded)) {
60
60
  throw new CourierError('bad-profile', `Corrupt profile at ${profilePath('profile.json')}`);
61
61
  }
@@ -73,8 +73,8 @@ export function loadProfile() {
73
73
  export function saveProfile(profile) {
74
74
  writeSecure(profilePath('profile.json'), profile);
75
75
  }
76
- export function loadKey() {
77
- const key = readSecure('key.json', true);
76
+ export function loadKey(home = profileDir()) {
77
+ const key = readSecure('key.json', true, home);
78
78
  if (key.v !== 1 || !key.jwk || !key.did?.startsWith('did:key:')) {
79
79
  throw new CourierError('bad-profile', `Corrupt agent key at ${profilePath('key.json')}`);
80
80
  }
@@ -83,8 +83,8 @@ export function loadKey() {
83
83
  export function saveKey(key) {
84
84
  writeSecure(profilePath('key.json'), key);
85
85
  }
86
- export function loadGrant() {
87
- const grant = readSecure('grant.json', false);
86
+ export function loadGrant(home = profileDir()) {
87
+ const grant = readSecure('grant.json', false, home);
88
88
  if (grant && (grant.v !== 1 || !grant.delegationHeader?.Authorization || !grant.delegationCid || !grant.siwe)) {
89
89
  throw new CourierError('bad-profile', `Corrupt owner grant at ${profilePath('grant.json')}`);
90
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
package/dist/wake.d.ts CHANGED
@@ -63,6 +63,8 @@ export interface WakeConfig {
63
63
  /** Courier profile dir handed to the woken agent. */
64
64
  home: string;
65
65
  exec?: string;
66
+ /** Test/operator source HOME for the minimal model login and git identity; never inherited by the agent. */
67
+ realHome?: string;
66
68
  paseo: {
67
69
  bin: string;
68
70
  provider: string;
@@ -73,6 +75,15 @@ export interface WakeConfig {
73
75
  settings?: string;
74
76
  allow: string[];
75
77
  };
78
+ /** How a woken agent reaches the guard hook (`node <entry> … guard`); the `paseo` adapter installs it in `cwd`. */
79
+ guard?: {
80
+ argv: string[];
81
+ entry: string;
82
+ };
83
+ /** `--unguarded`: the operator accepts that the `exec` adapter runs without the Courier guard. */
84
+ unguarded?: boolean;
85
+ /** `--env-pass NAME`: extra variables of the watcher's environment a woken agent may inherit (default none). */
86
+ envPass?: string[];
76
87
  timeoutMs: number;
77
88
  }
78
89
  /**
@@ -80,8 +91,14 @@ export interface WakeConfig {
80
91
  * `--resume`) gets only what is left of `totalMs`, so the whole wake stays under the claim lease.
81
92
  */
82
93
  export declare function deadlineRunner(run: Runner, totalMs: number, now?: () => number): Runner;
94
+ /** Printed on every `exec` wake (stderr, so the service log has it). */
95
+ export declare const UNGUARDED_NOTICE = "this wake is not approval-guarded: the exec adapter installs no Courier guard, so the command it runs can merge, deploy or publish without an approval";
96
+ export declare const UNGUARDED_REFUSAL: string;
83
97
  export declare function createWaker(config: WakeConfig, deps: {
84
98
  run: Runner;
85
99
  sessions: SessionStore;
86
100
  env?: NodeJS.ProcessEnv;
101
+ prepareGuard?: () => void;
102
+ prompt?: (request: WakeRequest) => string;
103
+ notice?: (line: string) => void;
87
104
  }): Waker;
package/dist/wake.js CHANGED
@@ -4,7 +4,13 @@ import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { oneLine } from './a2a.js';
6
6
  import { defer } from './defer.js';
7
+ import { CourierError } from './errors.js';
7
8
  import { cmd } from './program.js';
9
+ import { agentHome, courierEnvOverrides, courierOnlyEnv } from './guard/install.js';
10
+ import { realpathBest } from './guard/paths.js';
11
+ import { startsAgentCli } from './guard/policy.js';
12
+ import { prepareCleanHome, prepareAgentProfile } from './guard/cleanhome.js';
13
+ import { GUARD_LABEL, installProjectGuard, isClaudeProvider, paseoEnv, sameDir, verifyProjectGuard } from './guard/paseo.js';
8
14
  /** One JSON object per line on stdout: the watcher log. */
9
15
  export function jsonLineLog(write = (line) => process.stdout.write(line)) {
10
16
  return (event, fields = {}) => write(`${JSON.stringify({ t: new Date().toISOString(), event, ...fields })}\n`);
@@ -31,8 +37,9 @@ export function wakePrompt(request, owner) {
31
37
  if (request.approvals?.length) {
32
38
  paragraphs.push(`${who} decided on ${request.approvals.length === 1 ? 'a request' : 'requests'} you filed in thread ${subject} (${request.threadId}): ` +
33
39
  `${request.approvals.map((a) => `${a.requestId} (${label(a.decision, 12)})`).join(', ')}. ` +
34
- `Before you act, run \`${cmd('approval <requestId> --verb <verb> --target <target>')}\` with the verb and target of what you are about to do: ` +
35
- `it checks the decision against your request and exits non-zero unless it is approved, matches, is under 24 hours old and unused. If it fails, or the decision is denied, do not take the action; update the task and tell ${peer} only what ${who} allows.`);
40
+ `Check the decision with \`${cmd('approval <requestId> --peek')}\`: it exits non-zero unless the decision is approved, matches your request, is under 24 hours old and unused. ` +
41
+ `If it approves a PR merge, run exactly \`${cmd('run-approved <requestId>')}\`: the broker verifies the stored approval and consumes it before a fixed merge command. Your owner runs other gated actions. The guard always refuses direct gated commands; do not run \`${cmd('approval')}\` without --peek first. ` +
42
+ `If the check fails, or the decision is denied, do not take the action; update the task and tell ${peer} only what ${who} allows.`);
36
43
  }
37
44
  return paragraphs.join('\n\n');
38
45
  }
@@ -136,23 +143,51 @@ export function deadlineRunner(run, totalMs, now = Date.now) {
136
143
  return result;
137
144
  };
138
145
  }
146
+ /** Printed on every `exec` wake (stderr, so the service log has it). */
147
+ export const UNGUARDED_NOTICE = 'this wake is not approval-guarded: the exec adapter installs no Courier guard, so the command it runs can merge, deploy or publish without an approval';
148
+ export const UNGUARDED_REFUSAL = '--wake exec installs no Courier guard (no approval check on merge, deploy, publish or pushes to main), so it needs --unguarded. ' +
149
+ 'Use it only for commands that cannot merge, deploy or publish; for an agent that can, use --wake claude or --wake paseo --paseo-provider claude, which are guarded.';
139
150
  export function createWaker(config, deps) {
140
151
  const env = deps.env ?? process.env;
141
- const prompt = (request) => wakePrompt(request, config.owner);
152
+ const notice = deps.notice ?? ((line) => process.stderr.write(`${line}\n`));
153
+ const prompt = deps.prompt ?? ((request) => wakePrompt(request, config.owner));
154
+ /** Install the project guard in the agent's cwd and prove it works; throws, so the wake stays pending, if it cannot. */
155
+ const prepareGuard = deps.prepareGuard ?? (() => {
156
+ if (!config.guard)
157
+ throw new Error('no guard is configured for this wake adapter; refusing to wake an agent without one');
158
+ verifyProjectGuard(installProjectGuard(config.cwd, config.home, config.guard), config.cwd);
159
+ });
160
+ const prepareHome = () => {
161
+ const courier = realpathBest(config.home);
162
+ const cwd = realpathBest(config.cwd);
163
+ if (cwd === courier || cwd.startsWith(`${courier}${path.sep}`))
164
+ throw new Error('agent cwd must be outside the Courier tree');
165
+ prepareCleanHome({
166
+ realHome: config.realHome ?? env.HOME ?? os.homedir(),
167
+ cleanHome: agentHome(config.home), claude: config.adapter !== 'exec',
168
+ });
169
+ prepareAgentProfile(config.home);
170
+ };
142
171
  const exec = async (request) => {
172
+ // The exec adapter installs no guard. It runs only when the operator said so, and says so on every wake.
173
+ if (!config.unguarded)
174
+ throw new CourierError('usage', UNGUARDED_REFUSAL);
175
+ if (config.exec && startsAgentCli(config.exec))
176
+ throw new CourierError('usage', '--unguarded exec cannot start an agent CLI; use a guarded adapter.');
177
+ prepareHome();
178
+ notice(`${UNGUARDED_NOTICE} (thread ${request.threadId}, peer ${label(request.peer)})`);
143
179
  const run = deadlineRunner(deps.run, config.timeoutMs);
144
180
  const result = await run('/bin/sh', ['-c', config.exec], {
145
181
  cwd: config.cwd,
146
182
  timeoutMs: config.timeoutMs,
147
183
  env: {
148
- ...env,
149
- COURIER_HOME: config.home,
184
+ ...courierOnlyEnv(env, config.home, config.envPass),
150
185
  COURIER_THREAD: request.threadId,
151
186
  COURIER_PEER: request.peer,
152
187
  COURIER_MESSAGES: JSON.stringify(request.messages),
153
188
  COURIER_APPROVALS: JSON.stringify(request.approvals ?? []),
154
189
  COURIER_SUBJECT: request.subject,
155
- COURIER_PROMPT: prompt(request),
190
+ COURIER_PROMPT: `${prompt(request)}\n\n${UNGUARDED_NOTICE}.`,
156
191
  },
157
192
  });
158
193
  if (result.code !== 0)
@@ -161,16 +196,21 @@ export function createWaker(config, deps) {
161
196
  const claude = async (request) => {
162
197
  const run = deadlineRunner(deps.run, config.timeoutMs);
163
198
  const key = `${request.peer}/${request.threadId}`;
199
+ // A woken Claude never runs without the guard (spec §7): the settings file always carries the PreToolUse hook.
200
+ if (!config.claude.settings)
201
+ throw new Error('claude wake needs the guard settings file (courier guard settings)');
202
+ prepareHome();
164
203
  const attempt = async (session) => {
165
204
  const args = ['-p', '--output-format', 'json'];
166
205
  if (session)
167
206
  args.push('--resume', session);
168
- if (config.claude.settings)
169
- args.push('--settings', config.claude.settings);
207
+ args.push('--settings', config.claude.settings);
208
+ // No user or project MCP server loads (B3): their tools run with their own credentials, outside the guard.
209
+ args.push('--strict-mcp-config');
170
210
  if (config.claude.allow.length)
171
211
  args.push('--allowedTools', ...config.claude.allow);
172
212
  const result = await run(config.claude.bin, args, {
173
- cwd: config.cwd, env: { ...env, COURIER_HOME: config.home }, input: prompt(request), timeoutMs: config.timeoutMs,
213
+ cwd: config.cwd, env: courierOnlyEnv(env, config.home, config.envPass), input: prompt(request), timeoutMs: config.timeoutMs,
174
214
  });
175
215
  let parsed;
176
216
  for (const line of result.stdout.trim().split('\n').reverse()) {
@@ -196,8 +236,14 @@ export function createWaker(config, deps) {
196
236
  const paseo = async (request) => {
197
237
  const run = deadlineRunner(deps.run, config.timeoutMs);
198
238
  const { bin, provider, mode } = config.paseo;
199
- const base = { cwd: config.cwd, timeoutMs: config.timeoutMs };
200
- const listed = await run(bin, ['ls', '-g', '--json', '--label', `courier-thread=${request.threadId}`], base);
239
+ // Fail closed (spec §7): a Paseo agent is woken only if its cwd carries a guard that was just proven to refuse.
240
+ if (!isClaudeProvider(provider)) {
241
+ throw new Error(`the Courier guard only covers Claude agents (--paseo-provider claude); "${provider}" would run unguarded, so no agent was woken`);
242
+ }
243
+ prepareGuard();
244
+ prepareHome();
245
+ const base = { cwd: config.cwd, timeoutMs: config.timeoutMs, env: paseoEnv(env) };
246
+ const listed = await run(bin, ['ls', '-g', '--json', '--label', `courier-thread=${request.threadId}`, '--label', GUARD_LABEL], base);
201
247
  if (listed.code !== 0)
202
248
  throw failure('paseo ls', listed);
203
249
  let agents;
@@ -207,7 +253,9 @@ export function createWaker(config, deps) {
207
253
  catch {
208
254
  throw new Error(`paseo ls returned non-JSON: ${tail(listed.stdout)}`);
209
255
  }
210
- const existing = agents.find((a) => typeof a.id === 'string')?.id;
256
+ // Only an agent that carries the guard label, runs Claude, and sits in the guarded cwd is ever messaged.
257
+ const existing = agents.find((a) => typeof a.id === 'string' && typeof a.provider === 'string' && isClaudeProvider(a.provider)
258
+ && typeof a.cwd === 'string' && sameDir(a.cwd, config.cwd))?.id;
211
259
  if (existing) {
212
260
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'courier-wake-'));
213
261
  const file = path.join(dir, 'prompt.txt');
@@ -229,13 +277,26 @@ export function createWaker(config, deps) {
229
277
  '--cwd', config.cwd,
230
278
  '--label', `courier-thread=${request.threadId}`,
231
279
  '--label', `courier-peer=${request.peer}`,
232
- '--env', `COURIER_HOME=${config.home}`,
280
+ '--label', GUARD_LABEL,
281
+ ...Object.entries(courierEnvOverrides(env, config.home, config.envPass)).flatMap(([name, value]) => ['--env', `${name}=${value}`]),
233
282
  ...(mode ? ['--mode', mode] : []),
234
283
  prompt(request),
235
284
  ];
236
285
  const created = await run(bin, args, base);
237
286
  if (created.code !== 0)
238
287
  throw failure('paseo run', created);
288
+ // The agent must have started where the guard is. A caller-scoped Paseo environment can redirect `--cwd`; stop it if so.
289
+ let started;
290
+ try {
291
+ started = JSON.parse(created.stdout.slice(Math.max(0, created.stdout.indexOf('{'))));
292
+ }
293
+ catch { /* checked below */ }
294
+ const where = started && typeof started.cwd === 'string' ? started.cwd : undefined;
295
+ if (!where || !sameDir(where, config.cwd) || typeof started?.provider !== 'string' || !isClaudeProvider(started.provider)) {
296
+ if (typeof started?.agentId === 'string')
297
+ await run(bin, ['delete', started.agentId], base);
298
+ throw new Error(`paseo started an agent outside the guarded directory ${config.cwd} (${where ?? 'unknown'}); it was stopped and nothing was woken`);
299
+ }
239
300
  };
240
301
  switch (config.adapter) {
241
302
  case 'none': return noWaker;
package/dist/wake.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { ParsedArgs } from './args.js';
2
2
  import { type WatchOptions } from './watch.js';
3
3
  import { type WakeConfig } from './wake.js';
4
+ import { type NotifyConfig } from './notify.js';
4
5
  export declare function watchOptions(args: ParsedArgs): WatchOptions;
5
6
  export declare const watchUsage: () => string;
6
7
  export declare function wakeConfig(args: ParsedArgs, owner: string | undefined): WakeConfig;
8
+ /** macOS defaults to desktop notification; other hosts always have the local notifications log. */
9
+ export declare function notifyConfig(args: ParsedArgs, wake: WakeConfig, platform?: string): NotifyConfig;
7
10
  /**
8
11
  * Stable per profile and machine (`<COURIER_HOME>/watcher-id`, created once, create-only): a restarted watcher is
9
12
  * recognised as the same watcher by its wake claims; another profile or machine gets a different id, so never copy or
package/dist/watch-cmd.js CHANGED
@@ -8,7 +8,12 @@ import { CourierError } from './errors.js';
8
8
  import { loadProfile, profileDir, writeSecure } from './profile.js';
9
9
  import { courierNode, peerHooks, peerKv } from './node.js';
10
10
  import { WATCH_DEFAULTS, Watcher } from './watch.js';
11
- import { createWaker, jsonLineLog, killAllRunners, spawnRunner } from './wake.js';
11
+ import { UNGUARDED_REFUSAL, createWaker, jsonLineLog, killAllRunners, spawnRunner } from './wake.js';
12
+ import { startsAgentCli } from './guard/policy.js';
13
+ import { guardArgv } from './guard/command.js';
14
+ import { writeGuardSettings } from './guard/install.js';
15
+ import { createNotifier } from './notify.js';
16
+ import { postPausedInform } from './pause.js';
12
17
  import { applyPlan, launchdPlan, renderPlan, serviceName, systemdPlan, } from './service.js';
13
18
  const ADAPTERS = ['none', 'paseo', 'claude', 'exec'];
14
19
  /** Flags that configure the service install, not the watcher it runs. */
@@ -31,14 +36,24 @@ function value(args, name) {
31
36
  throw new CourierError('usage', `--${name} needs a value.`);
32
37
  return v;
33
38
  }
39
+ function wakeBudget(args) {
40
+ if (!args.has('wake-budget'))
41
+ return WATCH_DEFAULTS.wakeBudget;
42
+ const raw = args.get('wake-budget');
43
+ const value = Number(raw);
44
+ if (!Number.isInteger(value) || value < 1 || value > 1000)
45
+ throw new CourierError('usage', `--wake-budget must be a whole number from 1 to 1000 (got "${raw}").`);
46
+ return value;
47
+ }
34
48
  export function watchOptions(args) {
35
49
  return {
50
+ wakeBudget: wakeBudget(args),
36
51
  debounceMs: seconds(args, 'debounce', WATCH_DEFAULTS.debounceMs, 0, 600),
37
52
  pollMs: seconds(args, 'poll', WATCH_DEFAULTS.pollMs, 10, 3600),
38
53
  ticketSeconds: seconds(args, 'ticket', WATCH_DEFAULTS.ticketSeconds * 1000, 5, 300) / 1000,
39
54
  };
40
55
  }
41
- export const watchUsage = () => `Usage: ${cmd('watch [--wake none|paseo|claude|exec] [--exec <cmd>] [--cwd dir] [--debounce 30] [--poll 60] [--ticket 25] [--once]')}\n` +
56
+ export const watchUsage = () => `Usage: ${cmd('watch [--wake none|paseo|claude|exec] [--exec <cmd> --unguarded] [--env-pass NAME]… [--cwd dir] [--debounce 30] [--poll 60] [--ticket 25] [--wake-budget 12] [--notify osascript|exec|none] [--once]')}\n` +
42
57
  ` ${cmd('watch … (--install-launchd | --install-systemd) [--dry-run] [--name n]')}`;
43
58
  /** Where a bare `claude`/`paseo` resolves now, so a service with a minimal PATH still finds it. */
44
59
  function resolveBin(name, searchPath = process.env.PATH ?? '') {
@@ -66,13 +81,27 @@ export function wakeConfig(args, owner) {
66
81
  throw new CourierError('usage', `--wake exec needs --exec <cmd>. ${watchUsage()}`);
67
82
  if (exec && adapter !== 'exec')
68
83
  throw new CourierError('usage', '--exec only applies with --wake exec.');
84
+ const unguarded = args.has('unguarded');
85
+ if (unguarded && adapter !== 'exec')
86
+ throw new CourierError('usage', '--unguarded only applies with --wake exec; the claude and paseo adapters are always guarded.');
87
+ if (adapter === 'exec' && !unguarded)
88
+ throw new CourierError('usage', `${UNGUARDED_REFUSAL}\n${watchUsage()}`);
89
+ if (adapter === 'exec' && exec && startsAgentCli(exec))
90
+ throw new CourierError('usage', '--unguarded exec cannot start an agent CLI; use the guarded claude or paseo adapter.');
69
91
  const allow = args.all('claude-allow');
92
+ const envPass = args.all('env-pass');
93
+ for (const name of envPass) {
94
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
95
+ throw new CourierError('usage', `--env-pass needs a variable name (got "${name}").`);
96
+ }
70
97
  return {
71
98
  adapter,
72
99
  cwd: path.resolve(value(args, 'cwd') ?? process.cwd()),
73
100
  owner: owner ?? 'your owner',
74
101
  home: profileDir(),
75
102
  exec,
103
+ unguarded,
104
+ envPass,
76
105
  paseo: { bin: value(args, 'paseo-bin') ?? 'paseo', provider: value(args, 'paseo-provider') ?? 'claude', mode: value(args, 'paseo-mode') },
77
106
  // A woken claude may run only Courier commands unless the owner widens it with --claude-settings/--claude-allow.
78
107
  claude: { bin: value(args, 'claude-bin') ?? 'claude', settings: value(args, 'claude-settings'), allow: allow.length ? allow : [`Bash(${programName()}:*)`] },
@@ -80,6 +109,19 @@ export function wakeConfig(args, owner) {
80
109
  timeoutMs: seconds(args, 'wake-timeout', 15 * 60_000, 10, 30 * 60),
81
110
  };
82
111
  }
112
+ const NOTIFIERS = ['none', 'osascript', 'exec'];
113
+ /** macOS defaults to desktop notification; other hosts always have the local notifications log. */
114
+ export function notifyConfig(args, wake, platform = process.platform) {
115
+ const exec = value(args, 'notify-exec');
116
+ const adapter = (value(args, 'notify') ?? (exec ? 'exec' : platform === 'darwin' ? 'osascript' : 'none'));
117
+ if (!NOTIFIERS.includes(adapter))
118
+ throw new CourierError('usage', `Unknown --notify "${adapter}". Use none, osascript or exec. Notifications never start or message an agent.`);
119
+ if (adapter === 'exec' && !exec)
120
+ throw new CourierError('usage', '--notify exec needs --notify-exec <cmd>.');
121
+ if (exec && startsAgentCli(exec))
122
+ throw new CourierError('usage', 'notifications cannot start an agent CLI');
123
+ return { adapter, owner: wake.owner, exec, wake };
124
+ }
83
125
  /**
84
126
  * Stable per profile and machine (`<COURIER_HOME>/watcher-id`, created once, create-only): a restarted watcher is
85
127
  * recognised as the same watcher by its wake claims; another profile or machine gets a different id, so never copy or
@@ -203,9 +245,19 @@ export async function cmdWatch(args) {
203
245
  const config = wakeConfig(args, profile?.selfHandle);
204
246
  if (!profile)
205
247
  return installService(args, config);
248
+ if (config.adapter === 'claude' || config.adapter === 'paseo')
249
+ config.guard = { argv: guardArgv(), entry: process.argv[1] ?? '' };
250
+ if (config.adapter === 'claude') {
251
+ // The owner's own --claude-settings is merged under the guard, never used instead of it.
252
+ config.claude.settings = writeGuardSettings({
253
+ ...config.guard, home: config.home, ...(config.claude.settings ? { userSettings: config.claude.settings } : {}),
254
+ });
255
+ }
206
256
  const log = jsonLineLog();
207
257
  const node = await courierNode(profile);
208
258
  const watcher = new Watcher({
259
+ notificationHome: config.home,
260
+ notifyOnly: config.adapter === 'none',
209
261
  selfKv: node.kv,
210
262
  spaceId: profile.spaceId,
211
263
  selfHooks: node.hooks,
@@ -213,6 +265,8 @@ export async function cmdWatch(args) {
213
265
  loadPeers: () => Object.values(loadProfile().peers),
214
266
  kvFor: (peer) => peerKv(node, loadProfile(), peer),
215
267
  wake: createWaker(config, { run: spawnRunner, sessions: fileSessions() }),
268
+ postInform: async (peer, threadId, text, pauseId) => { await postPausedInform(node.kv, loadProfile(), peer, threadId, text, pauseId); },
269
+ notify: createNotifier(notifyConfig(args, config), { run: spawnRunner }),
216
270
  holder: { profileId: watcherProfileId() },
217
271
  log,
218
272
  }, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"watch-cmd.js","sourceRoot":"","sources":["../src/watch-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch-cmd.js","sourceRoot":"","sources":["../src/watch-cmd.ts"],"names":[],"mappings":"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"}