@bookedsolid/reagent 0.13.2 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +149 -6
  2. package/dist/cli/commands/init/claude-md.d.ts +5 -0
  3. package/dist/cli/commands/init/claude-md.d.ts.map +1 -1
  4. package/dist/cli/commands/init/claude-md.js +21 -1
  5. package/dist/cli/commands/init/claude-md.js.map +1 -1
  6. package/dist/cli/commands/init/index.d.ts.map +1 -1
  7. package/dist/cli/commands/init/index.js +16 -4
  8. package/dist/cli/commands/init/index.js.map +1 -1
  9. package/dist/cli/commands/init/mcp-config.js +6 -6
  10. package/dist/cli/commands/init/mcp-config.js.map +1 -1
  11. package/dist/cli/commands/init/obsidian.d.ts +16 -0
  12. package/dist/cli/commands/init/obsidian.d.ts.map +1 -0
  13. package/dist/cli/commands/init/obsidian.js +95 -0
  14. package/dist/cli/commands/init/obsidian.js.map +1 -0
  15. package/dist/cli/commands/init/policy.d.ts.map +1 -1
  16. package/dist/cli/commands/init/policy.js +10 -1
  17. package/dist/cli/commands/init/policy.js.map +1 -1
  18. package/dist/cli/commands/obsidian.d.ts +2 -0
  19. package/dist/cli/commands/obsidian.d.ts.map +1 -0
  20. package/dist/cli/commands/obsidian.js +187 -0
  21. package/dist/cli/commands/obsidian.js.map +1 -0
  22. package/dist/cli/commands/upgrade-policy.d.ts +17 -0
  23. package/dist/cli/commands/upgrade-policy.d.ts.map +1 -0
  24. package/dist/cli/commands/upgrade-policy.js +123 -0
  25. package/dist/cli/commands/upgrade-policy.js.map +1 -0
  26. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  27. package/dist/cli/commands/upgrade.js +8 -26
  28. package/dist/cli/commands/upgrade.js.map +1 -1
  29. package/dist/cli/index.js +9 -0
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/gateway/native-tools.d.ts.map +1 -1
  32. package/dist/gateway/native-tools.js +39 -0
  33. package/dist/gateway/native-tools.js.map +1 -1
  34. package/dist/obsidian/cli.d.ts +49 -0
  35. package/dist/obsidian/cli.d.ts.map +1 -0
  36. package/dist/obsidian/cli.js +128 -0
  37. package/dist/obsidian/cli.js.map +1 -0
  38. package/dist/obsidian/index.d.ts +7 -0
  39. package/dist/obsidian/index.d.ts.map +1 -0
  40. package/dist/obsidian/index.js +5 -0
  41. package/dist/obsidian/index.js.map +1 -0
  42. package/dist/obsidian/kanban-generator.d.ts +9 -0
  43. package/dist/obsidian/kanban-generator.d.ts.map +1 -0
  44. package/dist/obsidian/kanban-generator.js +63 -0
  45. package/dist/obsidian/kanban-generator.js.map +1 -0
  46. package/dist/obsidian/vault-config.d.ts +142 -0
  47. package/dist/obsidian/vault-config.d.ts.map +1 -0
  48. package/dist/obsidian/vault-config.js +92 -0
  49. package/dist/obsidian/vault-config.js.map +1 -0
  50. package/dist/obsidian/vault-writer.d.ts +52 -0
  51. package/dist/obsidian/vault-writer.d.ts.map +1 -0
  52. package/dist/obsidian/vault-writer.js +166 -0
  53. package/dist/obsidian/vault-writer.js.map +1 -0
  54. package/dist/types/policy.d.ts +4 -0
  55. package/dist/types/policy.d.ts.map +1 -1
  56. package/hooks/dangerous-bash-interceptor.sh +43 -0
  57. package/hooks/reagent-obsidian-journal.sh +69 -0
  58. package/hooks/reagent-obsidian-precompact.sh +88 -0
  59. package/hooks/reagent-obsidian-tasks.sh +126 -0
  60. package/package.json +2 -2
  61. package/profiles/bst-internal.json +1 -1
  62. package/profiles/client-engagement.json +2 -2
package/README.md CHANGED
@@ -1,11 +1,8 @@
1
1
  # @bookedsolid/reagent
2
2
 
3
- Zero-trust MCP server for AI-assisted development. Every tool call policy enforced.
3
+ Governance layer for Claude Code — policy enforcement, hook-based safety gates, and audit logging for AI-assisted projects.
4
4
 
5
- reagent sits between Claude Code and every tool your AI agent can reach. It enforces
6
- graduated autonomy policies, redacts secrets before they touch the model, logs a
7
- hash-chained audit trail, and can halt all agent operations with a single command.
8
- Put it in `.mcp.json` once, and every project that uses it gets the same safety layer.
5
+ reagent enforces policy, prevents dangerous operations, and audits AI agent activity in Claude Code projects. One command (`reagent init`) installs 23 safety hooks and a full engineering team of AI specialists into your project. Every tool call — from every AI agent is governed by your `policy.yaml`. It's Claude Code + accountability.
9
6
 
10
7
  ## What it is
11
8
 
@@ -377,6 +374,143 @@ the task board from within Claude Code conversations.
377
374
  {"id":"T-001","type":"completed","title":"Implement login flow","commit_refs":["abc1234"],"pr_ref":"#42","timestamp":"2026-04-01T14:30:00.000Z"}
378
375
  ```
379
376
 
377
+ ## Obsidian vault integration
378
+
379
+ reagent can integrate with [Obsidian](https://obsidian.md) vaults for project knowledge
380
+ management. Session journaling, task sync, knowledge extraction before context compaction,
381
+ and vault health monitoring — all driven by hooks and the CLI.
382
+
383
+ The integration is **opt-in by default**. Nothing Obsidian-related activates unless you
384
+ explicitly configure it. Every Obsidian operation is fail-silent: if the CLI is missing,
385
+ the vault path is wrong, or a sync target is disabled, reagent exits cleanly with no
386
+ errors and no blocked operations.
387
+
388
+ ### Prerequisites
389
+
390
+ - **Obsidian CLI** installed at `/usr/local/bin/obsidian`
391
+ - An Obsidian vault directory for each project you want to integrate
392
+
393
+ ### Setup
394
+
395
+ Enable the integration during init:
396
+
397
+ ```bash
398
+ reagent init --obsidian --vault-path /path/to/vault
399
+ ```
400
+
401
+ Or set the vault path via environment variable:
402
+
403
+ ```bash
404
+ export REAGENT_OBSIDIAN_VAULT=/path/to/vault
405
+ ```
406
+
407
+ Both methods write an `obsidian_vault` block to `.reagent/gateway.yaml`:
408
+
409
+ ```yaml
410
+ obsidian_vault:
411
+ enabled: true
412
+ vault_path: '/path/to/vault'
413
+ vault_name: 'MyProject'
414
+ paths:
415
+ root: 'Projects/Reagent'
416
+ kanban: 'Projects/Reagent/Kanban.md'
417
+ sources: 'Projects/Reagent/Sources'
418
+ wiki: 'Projects/Reagent/Auto'
419
+ tasks: 'Tasks'
420
+ sessions: 'Wiki/Sessions'
421
+ sync:
422
+ kanban: false
423
+ context_dump: false
424
+ wiki_refresh: false
425
+ journal: true # Tier 1 — on by default when integration is enabled
426
+ precompact: false # Tier 2 — opt-in
427
+ tasks: true # Tier 3 — on by default when integration is enabled
428
+ precompact:
429
+ engine: 'claude' # 'claude' or 'ollama'
430
+ model: null # null = use default model for the engine
431
+ ```
432
+
433
+ Vault path resolution order:
434
+
435
+ 1. `REAGENT_OBSIDIAN_VAULT` environment variable (absolute path)
436
+ 2. `obsidian_vault.vault_path` in `gateway.yaml`
437
+ 3. Not set — integration disabled
438
+
439
+ ### Three-tier hook architecture
440
+
441
+ Obsidian sync is organized into three tiers, each backed by a dedicated Claude Code hook.
442
+ Each tier operates independently and can be enabled or disabled individually.
443
+
444
+ **Tier 1 — Session Journal** (`reagent-obsidian-journal.sh`)
445
+
446
+ Fires when a Claude Code session ends. Appends a session summary to the daily note in
447
+ your vault via `obsidian daily:append`. The summary includes the project name, a session
448
+ identifier, timestamp, and task state counts (completed, in progress, blocked, backlog)
449
+ pulled from `.reagent/tasks.jsonl`.
450
+
451
+ Enable: `sync.journal: true` (default when integration is enabled).
452
+
453
+ **Tier 2 — PreCompact Knowledge Extraction** (`reagent-obsidian-precompact.sh`)
454
+
455
+ Fires before Claude Code compacts context. Creates a session knowledge note in
456
+ `Wiki/Sessions/` (or your configured `paths.sessions` directory) with frontmatter
457
+ tagging the project, date, session ID, and extraction engine.
458
+
459
+ This tier is a stub — the knowledge extraction engine is not yet fully implemented.
460
+ The hook creates a structured placeholder note with sections for Decisions, Discoveries,
461
+ and Open Questions. The `precompact.engine` field (`claude` or `ollama`) determines which
462
+ backend will perform extraction when the implementation is complete.
463
+
464
+ Enable: `sync.precompact: true` (disabled by default).
465
+
466
+ **Tier 3 — Task Materialization** (`reagent-obsidian-tasks.sh`)
467
+
468
+ Fires after `task_create` and `task_update` MCP tool calls. Materializes each task as an
469
+ individual Obsidian note in the `Tasks/` directory with typed frontmatter:
470
+
471
+ ```yaml
472
+ ---
473
+ reagent_managed: true
474
+ task_id: T-001
475
+ project: my-project
476
+ status: started
477
+ urgency: critical
478
+ assignee: frontend-specialist
479
+ ---
480
+ ```
481
+
482
+ Sync is one-way: JSONL to Obsidian. The hook extracts the task ID from the tool result,
483
+ reads the latest event for that task from `.reagent/tasks.jsonl`, and creates or overwrites
484
+ the corresponding note.
485
+
486
+ Enable: `sync.tasks: true` (default when integration is enabled).
487
+
488
+ ### CLI commands
489
+
490
+ ```
491
+ reagent obsidian sync [--target kanban|context|wiki|tasks] [--dry-run]
492
+ Sync enabled targets to the Obsidian vault. Without --target, syncs all
493
+ enabled targets. --dry-run previews what would be written.
494
+
495
+ reagent obsidian status
496
+ Show current Obsidian configuration: vault path, CLI availability,
497
+ configured paths, and which sync targets are enabled or disabled.
498
+
499
+ reagent obsidian health
500
+ Show vault health metrics: orphan notes, unresolved links, and dead ends.
501
+ Requires vault_name set in gateway.yaml and the Obsidian CLI installed.
502
+
503
+ reagent obsidian journal
504
+ Manually trigger a session journal entry in the daily note. Useful for
505
+ ad-hoc journaling outside of the automatic session-end hook.
506
+ ```
507
+
508
+ ### Vault-per-project mapping
509
+
510
+ Each project maps to its own Obsidian vault. The vault path is resolved per-project from
511
+ that project's `.reagent/gateway.yaml` or `REAGENT_OBSIDIAN_VAULT` environment variable.
512
+ There is no global vault registry — each project is self-contained.
513
+
380
514
  ## CLI reference
381
515
 
382
516
  ```
@@ -391,6 +525,8 @@ reagent init [options]
391
525
  --tasks-channel <id> Discord channel ID for task events
392
526
  --releases-channel Discord channel ID for release events
393
527
  --dev-channel <id> Discord channel ID for dev activity
528
+ --obsidian Enable Obsidian vault integration in gateway.yaml
529
+ --vault-path <path> Absolute path to the Obsidian vault directory
394
530
 
395
531
  reagent serve
396
532
  Starts the MCP server on stdio. Loaded by Claude Code via .mcp.json.
@@ -411,12 +547,19 @@ reagent catalyze [targetDir]
411
547
  --audit Compare current state against the last plan and show drift
412
548
  --dry-run Print analysis without writing files
413
549
 
414
- reagent upgrade [--dry-run]
550
+ reagent upgrade [--dry-run] [--clean-blocked-paths]
415
551
  Re-syncs installed hooks from the current package version and updates the
416
552
  version stamp in policy.yaml. Run after upgrading the reagent package.
553
+ --clean-blocked-paths replaces the blanket '.reagent/' blocked path with
554
+ granular entries, allowing agents to write to operational files (tasks,
555
+ review cache) while keeping policy and audit files protected.
417
556
 
418
557
  reagent cache <set|get|del> <key> [value]
419
558
  Manages the review cache used by commit-review-gate and push-review-gate.
559
+
560
+ reagent obsidian <sync|status|health|journal>
561
+ Obsidian vault integration commands. See the Obsidian vault integration
562
+ section above for full documentation.
420
563
  ```
421
564
 
422
565
  ## Configuration
@@ -1,3 +1,8 @@
1
1
  import type { InstallResult, ClaudeMdConfig } from './types.js';
2
+ /**
3
+ * Detect the package manager in use by checking for lockfiles in the target directory.
4
+ * Returns the appropriate preflight command string.
5
+ */
6
+ export declare function detectPreflightCmd(targetDir: string): string;
2
7
  export declare function installClaudeMd(targetDir: string, claudeMdConfig: ClaudeMdConfig, dryRun: boolean): InstallResult[];
3
8
  //# sourceMappingURL=claude-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/claude-md.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,GACd,aAAa,EAAE,CA8DjB"}
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/claude-md.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,OAAO,GACd,aAAa,EAAE,CAmEjB"}
@@ -1,6 +1,22 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { PKG_ROOT, getPkgVersion } from '../../utils.js';
4
+ /**
5
+ * Detect the package manager in use by checking for lockfiles in the target directory.
6
+ * Returns the appropriate preflight command string.
7
+ */
8
+ export function detectPreflightCmd(targetDir) {
9
+ if (fs.existsSync(path.join(targetDir, 'pnpm-lock.yaml')))
10
+ return 'pnpm preflight';
11
+ if (fs.existsSync(path.join(targetDir, 'yarn.lock')))
12
+ return 'yarn preflight';
13
+ if (fs.existsSync(path.join(targetDir, 'bun.lockb')))
14
+ return 'bun run preflight';
15
+ if (fs.existsSync(path.join(targetDir, 'package-lock.json')))
16
+ return 'npm run preflight';
17
+ // No lockfile found — safe fallback
18
+ return 'npm run preflight';
19
+ }
4
20
  export function installClaudeMd(targetDir, claudeMdConfig, dryRun) {
5
21
  const PKG_VERSION = getPkgVersion();
6
22
  const claudeMdPath = path.join(targetDir, 'CLAUDE.md');
@@ -9,11 +25,15 @@ export function installClaudeMd(targetDir, claudeMdConfig, dryRun) {
9
25
  console.error(' ERROR: templates/CLAUDE.md not found in package.');
10
26
  return [{ file: 'CLAUDE.md', status: 'warn' }];
11
27
  }
28
+ // Use the resolved preflight command from the config. The caller (index.ts) is responsible
29
+ // for running detectPreflightCmd and injecting it; claudeMdConfig.preflightCmd is the
30
+ // already-resolved value. Fall back to the safe default only if nothing was provided.
31
+ const preflightCmd = claudeMdConfig.preflightCmd || 'npm run preflight';
12
32
  let template = fs.readFileSync(templatePath, 'utf8');
13
33
  const safe = (val) => String(val).replace(/\{\{[^}]*\}\}/g, '');
14
34
  template = template
15
35
  .replace(/\{\{VERSION\}\}/g, PKG_VERSION)
16
- .replace(/\{\{PREFLIGHT_CMD\}\}/g, safe(claudeMdConfig.preflightCmd || 'pnpm preflight'))
36
+ .replace(/\{\{PREFLIGHT_CMD\}\}/g, safe(preflightCmd))
17
37
  .replace(/\{\{ATTRIBUTION_RULE\}\}/g, safe(claudeMdConfig.attributionRule || 'Do not include AI attribution in client-facing content.'));
18
38
  const MARKER_START = '<!-- reagent-managed:start -->';
19
39
  const MARKER_END = '<!-- reagent-managed:end -->';
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/claude-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/claude-md.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/index.ts"],"names":[],"mappings":"AAmBA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAoL5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/index.ts"],"names":[],"mappings":"AAoBA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAgM5C"}
@@ -5,7 +5,7 @@ import { installGitignoreEntries } from './gitignore.js';
5
5
  import { installCursorRules } from './cursor-rules.js';
6
6
  import { installHuskyHook } from './husky-hooks.js';
7
7
  import { installClaudeHooks } from './claude-hooks.js';
8
- import { installClaudeMd } from './claude-md.js';
8
+ import { installClaudeMd, detectPreflightCmd } from './claude-md.js';
9
9
  import { installPolicy } from './policy.js';
10
10
  import { installGatewayConfig, checkMcpDuplicates } from './gateway-config.js';
11
11
  import { installMcpJson } from './mcp-config.js';
@@ -15,13 +15,17 @@ import { installPm } from './pm.js';
15
15
  import { installGitHub } from './github.js';
16
16
  import { installProfile, listTechProfiles } from './profiles.js';
17
17
  import { installDiscord, parseDiscordArgs } from './discord.js';
18
+ import { installObsidian, parseObsidianArgs } from './obsidian.js';
18
19
  export function runInit(args) {
19
20
  const profileName = parseFlag(args, '--profile') || 'client-engagement';
20
21
  const targetDir = process.cwd();
21
22
  const dryRun = args.includes('--dry-run');
22
23
  const withGitHub = args.includes('--github');
23
24
  const withDiscord = args.includes('--discord');
25
+ const withObsidian = args.includes('--obsidian');
24
26
  const PKG_VERSION = getPkgVersion();
27
+ // --preflight-cmd overrides lockfile detection; used to inject a custom preflight command
28
+ const preflightCmdOverride = parseFlag(args, '--preflight-cmd');
25
29
  // Validate profile name format
26
30
  if (!/^[a-z0-9][a-z0-9-]*$/.test(profileName)) {
27
31
  console.error(`Invalid profile name: "${profileName}" (only lowercase letters, numbers, hyphens allowed)`);
@@ -98,7 +102,10 @@ export function runInit(args) {
98
102
  }
99
103
  // Step 7: CLAUDE.md
100
104
  if (profile.claudeMd) {
101
- results.push(...installClaudeMd(targetDir, profile.claudeMd, dryRun));
105
+ // Resolve preflight command: CLI flag > lockfile detection > profile default > safe fallback
106
+ const resolvedPreflightCmd = preflightCmdOverride || detectPreflightCmd(targetDir);
107
+ const claudeMdConfig = { ...profile.claudeMd, preflightCmd: resolvedPreflightCmd };
108
+ results.push(...installClaudeMd(targetDir, claudeMdConfig, dryRun));
102
109
  }
103
110
  // Step 8: Policy
104
111
  results.push(...installPolicy(targetDir, profileName, profile, dryRun, isTechProfile ? profileName : undefined));
@@ -130,7 +137,12 @@ export function runInit(args) {
130
137
  const discordOpts = parseDiscordArgs(args);
131
138
  results.push(...installDiscord(targetDir, discordOpts, dryRun));
132
139
  }
133
- // Step 15: Tech profile overlay (hooks, gates, agents) — runs after base init
140
+ // Step 15: Obsidian vault integration (opt-in via --obsidian flag)
141
+ if (withObsidian) {
142
+ const obsidianOpts = parseObsidianArgs(args);
143
+ results.push(...installObsidian(targetDir, obsidianOpts, dryRun));
144
+ }
145
+ // Step 16: Tech profile overlay (hooks, gates, agents) — runs after base init
134
146
  if (isTechProfile) {
135
147
  const profileResult = installProfile(profileName, targetDir, dryRun);
136
148
  results.push(...profileResult.results);
@@ -177,7 +189,7 @@ function printSummary(results, dryRun, showCommitInstructions) {
177
189
  console.log('\n✓ reagent init complete');
178
190
  if (showCommitInstructions) {
179
191
  console.log('\nCommit these files (safe to commit):');
180
- console.log(' git add .mcp.json .cursor/rules/ .husky/ .claude/commands/ CLAUDE.md .reagent/policy.yaml .reagent/gateway.yaml && git commit -m "chore: add reagent zero-trust config"');
192
+ console.log(' git add .mcp.json .cursor/rules/ .husky/ .claude/commands/ CLAUDE.md .reagent/policy.yaml .reagent/gateway.yaml && git commit -m "chore: add reagent governance config"');
181
193
  console.log('');
182
194
  console.log('Do NOT commit (gitignored — stays on your machine):');
183
195
  console.log(' .claude/hooks/');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,mBAAmB,CAAC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IAEpC,+BAA+B;IAC/B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CACX,0BAA0B,WAAW,sDAAsD,CAC5F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEzD,qDAAqD;IACrD,2EAA2E;IAC3E,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,mBAAmB;QAC1D,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,OAAO,CAAC,CAAC;IAC3D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,eAAe,MAAM,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;IACvC,IAAI,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,8DAA8D;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,eAAe,OAAO,CAAC,CAAC;IACzE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,0BAA0B,eAAe,6BAA6B,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,EAAE;aACrB,WAAW,CAAC,WAAW,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CACX,aAAa;YACX,CAAC,CAAC,2BAA2B,eAAe,iCAAiC;YAC7E,CAAC,CAAC,sBAAsB,eAAe,EAAE,CAC5C,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAkB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhF,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,0FAA0F;IAC1F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,6EAA6E;QAC7E,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,UAAU,CAAC;QACtE,OAAO,CAAC,yBAAyB,CAAC,GAAG,cAAc,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,IAAI,CACV,GAAG,aAAa,CACd,SAAS,EACT,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACxC,CACF,CAAC;IAEF,4FAA4F;IAC5F,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnD,+FAA+F;IAC/F,OAAO,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,2FAA2F;IAC3F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1D,8BAA8B;IAC9B,OAAO,CAAC,IAAI,CACV,GAAG,SAAS,CACV,SAAS,EACT,OAAO,CAAC,EAEK,EACb,MAAM,CACP,CACF,CAAC;IAEF,2DAA2D;IAC3D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,OAAO,CAAC,IAAI,CACV,GAAG,aAAa,CAAC;YACf,SAAS;YACT,WAAW;YACX,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,8EAA8E;IAC9E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,yCAAyC,CAAC,CAAC;YACnF,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,IAAI,CAAC,CAAC;YACxD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CACnB,OAAwB,EACxB,MAAe,EACf,sBAA+B;IAE/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAE1D,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CACT,2KAA2K,CAC5K,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/index.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,17 @@ import path from 'node:path';
6
6
  * Uses stdio transport so Claude Code spawns `reagent serve` directly —
7
7
  * no daemon required, works immediately after `reagent init`.
8
8
  *
9
- * `npx reagent serve` resolves in order:
10
- * 1. ./node_modules/.bin/reagent (local install)
11
- * 2. PATH reagent (global install)
9
+ * `npx @bookedsolid/reagent serve` resolves in order:
10
+ * 1. ./node_modules/.bin/reagent (local install — npx checks here first)
11
+ * 2. npm registry fetch (npx auto-installs if not found locally)
12
12
  *
13
- * This means the committed .mcp.json works on any machine regardless of
14
- * whether reagent was installed locally or globally.
13
+ * Using the scoped package name ensures npx can always resolve the binary,
14
+ * whether reagent is installed locally, globally, or fetched on demand.
15
15
  */
16
16
  const REAGENT_MCP_ENTRY = {
17
17
  type: 'stdio',
18
18
  command: 'npx',
19
- args: ['reagent', 'serve'],
19
+ args: ['@bookedsolid/reagent', 'serve'],
20
20
  };
21
21
  /**
22
22
  * Write (or merge into) .mcp.json in `targetDir` with a reagent stdio entry.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;;;;;;;;;;GAYG;AACH,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CAClB,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAe;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAElD,4DAA4D;IAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,QAAkD,CAAC;QACvD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAErD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;YACzD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YACjC,sCAAsC;YACtC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,qCAAqC;QACrC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,yCAAyC;IACzC,MAAM,MAAM,GAAG;QACb,UAAU,EAAE;YACV,OAAO,EAAE,iBAAiB;SAC3B;KACF,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;;;;;;;;;;GAYG;AACH,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,sBAAsB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAe;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAElD,4DAA4D;IAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,QAAkD,CAAC;QACvD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAErD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;YACzD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YACjC,sCAAsC;YACtC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,qCAAqC;QACrC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,yCAAyC;IACzC,MAAM,MAAM,GAAG;QACb,UAAU,EAAE;YACV,OAAO,EAAE,iBAAiB;SAC3B;KACF,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { InstallResult } from './types.js';
2
+ export interface ObsidianInitOptions {
3
+ vaultPath?: string;
4
+ }
5
+ /**
6
+ * Install or update the obsidian_vault section in .reagent/gateway.yaml.
7
+ *
8
+ * Wired into `reagent init --obsidian`.
9
+ * Non-interactive: reads opts from args.
10
+ */
11
+ export declare function installObsidian(targetDir: string, opts: ObsidianInitOptions, dryRun: boolean): InstallResult[];
12
+ /**
13
+ * Parse --obsidian flags from CLI args.
14
+ */
15
+ export declare function parseObsidianArgs(args: string[]): ObsidianInitOptions;
16
+ //# sourceMappingURL=obsidian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obsidian.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/obsidian.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,OAAO,GACd,aAAa,EAAE,CAmDjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAMrE"}
@@ -0,0 +1,95 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { parse as parseYaml } from 'yaml';
4
+ /**
5
+ * Generate the obsidian_vault YAML block to append to gateway.yaml.
6
+ * Always installs as disabled — user must explicitly enable.
7
+ */
8
+ function buildObsidianVaultYaml(opts) {
9
+ return `
10
+ # Optional: Obsidian vault integration
11
+ # Syncs task state, context, and wiki pages to an Obsidian vault as plain markdown.
12
+ # Set REAGENT_OBSIDIAN_VAULT env var to your vault root path, or set vault_path below.
13
+ # All sync targets are opt-in and disabled by default.
14
+ obsidian_vault:
15
+ enabled: false
16
+ vault_path: '${opts.vaultPath || ''}'
17
+ vault_name: ''
18
+ paths:
19
+ root: 'Projects/Reagent'
20
+ kanban: 'Projects/Reagent/Kanban.md'
21
+ sources: 'Projects/Reagent/Sources'
22
+ wiki: 'Projects/Reagent/Auto'
23
+ tasks: 'Tasks'
24
+ sessions: 'Wiki/Sessions'
25
+ sync:
26
+ kanban: false
27
+ context_dump: false
28
+ wiki_refresh: false
29
+ journal: true
30
+ precompact: false
31
+ tasks: true
32
+ precompact:
33
+ engine: 'claude'
34
+ model: null
35
+ `;
36
+ }
37
+ /**
38
+ * Install or update the obsidian_vault section in .reagent/gateway.yaml.
39
+ *
40
+ * Wired into `reagent init --obsidian`.
41
+ * Non-interactive: reads opts from args.
42
+ */
43
+ export function installObsidian(targetDir, opts, dryRun) {
44
+ const results = [];
45
+ const gatewayPath = path.join(targetDir, '.reagent', 'gateway.yaml');
46
+ if (!fs.existsSync(gatewayPath)) {
47
+ return [{ file: '.reagent/gateway.yaml (not found — run reagent init first)', status: 'warn' }];
48
+ }
49
+ const raw = fs.readFileSync(gatewayPath, 'utf8');
50
+ let parsed;
51
+ try {
52
+ parsed = parseYaml(raw);
53
+ }
54
+ catch {
55
+ return [{ file: '.reagent/gateway.yaml (YAML parse error)', status: 'warn' }];
56
+ }
57
+ if ('obsidian_vault' in parsed) {
58
+ return [
59
+ {
60
+ file: '.reagent/gateway.yaml (obsidian_vault already configured)',
61
+ status: 'skipped',
62
+ },
63
+ ];
64
+ }
65
+ const obsidianYaml = buildObsidianVaultYaml(opts);
66
+ if (!dryRun) {
67
+ fs.appendFileSync(gatewayPath, obsidianYaml, 'utf8');
68
+ }
69
+ results.push({ file: '.reagent/gateway.yaml (+obsidian_vault)', status: 'updated' });
70
+ if (!dryRun) {
71
+ console.log('');
72
+ console.log('Obsidian vault integration configured (disabled by default).');
73
+ console.log('');
74
+ console.log('To enable:');
75
+ console.log(' 1. Set your vault path:');
76
+ console.log(' export REAGENT_OBSIDIAN_VAULT="~/path/to/your/vault"');
77
+ console.log('');
78
+ console.log(' 2. Enable in .reagent/gateway.yaml:');
79
+ console.log(' obsidian_vault.enabled: true');
80
+ console.log(' obsidian_vault.sync.kanban: true');
81
+ console.log('');
82
+ console.log(' 3. Sync: reagent obsidian sync');
83
+ console.log('');
84
+ }
85
+ return results;
86
+ }
87
+ /**
88
+ * Parse --obsidian flags from CLI args.
89
+ */
90
+ export function parseObsidianArgs(args) {
91
+ const idx = args.indexOf('--vault-path');
92
+ const vaultPath = idx !== -1 && args[idx + 1] && !args[idx + 1].startsWith('--') ? args[idx + 1] : undefined;
93
+ return { vaultPath };
94
+ }
95
+ //# sourceMappingURL=obsidian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obsidian.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/obsidian.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa,EAAE,CAkFjB"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa,EAAE,CA2FjB"}
@@ -18,7 +18,6 @@ export function installPolicy(targetDir, profileName, profile, dryRun, techProfi
18
18
  const blockedPaths = profile.blockedPaths ?? [
19
19
  '.reagent/policy.yaml',
20
20
  '.reagent/HALT',
21
- '.reagent/review-cache.json',
22
21
  '.github/workflows/',
23
22
  '.env',
24
23
  '.env.*',
@@ -76,6 +75,16 @@ coverage:
76
75
  # disabled — no gate (not recommended)
77
76
  security:
78
77
  disclosure_mode: "${disclosureMode}"
78
+
79
+ # Context protection — commands that must run in subagents, never in coordinator
80
+ # The dangerous-bash-interceptor hook blocks these commands when run directly.
81
+ # Prevents context window exhaustion from verbose test/build output.
82
+ context_protection:
83
+ delegate_to_subagent:
84
+ - "pnpm run preflight"
85
+ - "pnpm run test"
86
+ - "pnpm run build"
87
+ max_bash_output_lines: 100
79
88
  `;
80
89
  fs.writeFileSync(policyPath, content, 'utf8');
81
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,WAAmB,EACnB,OAAsB,EACtB,MAAe,EACf,WAAoB;IAEpB,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAExD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC;QAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,UAAU,CAAC;QACtE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;QAC3D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI;YAC3C,sBAAsB;YACtB,eAAe;YACf,4BAA4B;YAC5B,oBAAoB;YACpB,MAAM;YACN,QAAQ;SACT,CAAC;QACF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM;YAC1C,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,OAAO,GAAG,+DAA+D,WAAW;;;;;YAKlF,WAAW;EACrB,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,0BAA0B,WAAW;iBAC3E,GAAG;;;;;;;;;;;;;;;;;;wBAkBI,gBAAgB;;;gBAGxB,gBAAgB;;;;;;;;;;;;aAYnB,eAAe;eACb,iBAAiB;;;;;;;;sBAQV,cAAc;CACnC,CAAC;QACE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,WAAmB,EACnB,OAAsB,EACtB,MAAe,EACf,WAAoB;IAEpB,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAExD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC;QAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,UAAU,CAAC;QACtE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;QAC3D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI;YAC3C,sBAAsB;YACtB,eAAe;YACf,oBAAoB;YACpB,MAAM;YACN,QAAQ;SACT,CAAC;QACF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM;YAC1C,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,OAAO,GAAG,+DAA+D,WAAW;;;;;YAKlF,WAAW;EACrB,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,0BAA0B,WAAW;iBAC3E,GAAG;;;;;;;;;;;;;;;;;;wBAkBI,gBAAgB;;;gBAGxB,gBAAgB;;;;;;;;;;;;aAYnB,eAAe;eACb,iBAAiB;;;;;;;;sBAQV,cAAc;;;;;;;;;;;CAWnC,CAAC;QACE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runObsidian(args: string[]): void;
2
+ //# sourceMappingURL=obsidian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obsidian.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/obsidian.ts"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA0BhD"}