auden 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (181) hide show
  1. package/README.md +48 -5
  2. package/dist/auden-paths.d.ts +1 -0
  3. package/dist/auden-paths.d.ts.map +1 -1
  4. package/dist/auden-paths.js +1 -0
  5. package/dist/auden-paths.js.map +1 -1
  6. package/dist/commands/doctor.d.ts.map +1 -1
  7. package/dist/commands/doctor.js +99 -24
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/guides/active.d.ts.map +1 -1
  10. package/dist/commands/guides/active.js +3 -16
  11. package/dist/commands/guides/active.js.map +1 -1
  12. package/dist/commands/guides/index.d.ts.map +1 -1
  13. package/dist/commands/guides/index.js +6 -0
  14. package/dist/commands/guides/index.js.map +1 -1
  15. package/dist/commands/guides/search.d.ts.map +1 -1
  16. package/dist/commands/guides/search.js +3 -16
  17. package/dist/commands/guides/search.js.map +1 -1
  18. package/dist/commands/init.d.ts +11 -8
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +220 -128
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/mcp.js +2 -2
  23. package/dist/commands/mcp.js.map +1 -1
  24. package/dist/commands/pull.js +2 -2
  25. package/dist/commands/pull.js.map +1 -1
  26. package/dist/commands/rules/export.d.ts.map +1 -1
  27. package/dist/commands/rules/export.js +6 -18
  28. package/dist/commands/rules/export.js.map +1 -1
  29. package/dist/commands/rules/import.d.ts.map +1 -1
  30. package/dist/commands/rules/import.js +9 -25
  31. package/dist/commands/rules/import.js.map +1 -1
  32. package/dist/commands/rules/index.d.ts.map +1 -1
  33. package/dist/commands/rules/index.js +1 -1
  34. package/dist/commands/rules/index.js.map +1 -1
  35. package/dist/commands/rules/watch.d.ts.map +1 -1
  36. package/dist/commands/rules/watch.js +3 -6
  37. package/dist/commands/rules/watch.js.map +1 -1
  38. package/dist/commands/status.d.ts.map +1 -1
  39. package/dist/commands/status.js +4 -0
  40. package/dist/commands/status.js.map +1 -1
  41. package/dist/commands/sync.d.ts.map +1 -1
  42. package/dist/commands/sync.js +10 -3
  43. package/dist/commands/sync.js.map +1 -1
  44. package/dist/commands/update.d.ts +18 -0
  45. package/dist/commands/update.d.ts.map +1 -0
  46. package/dist/commands/update.js +113 -0
  47. package/dist/commands/update.js.map +1 -0
  48. package/dist/config.d.ts +61 -6
  49. package/dist/config.d.ts.map +1 -1
  50. package/dist/config.js +135 -36
  51. package/dist/config.js.map +1 -1
  52. package/dist/context/pull.d.ts +3 -3
  53. package/dist/context/pull.d.ts.map +1 -1
  54. package/dist/context/pull.js +5 -11
  55. package/dist/context/pull.js.map +1 -1
  56. package/dist/dashboard-health.d.ts +3 -1
  57. package/dist/dashboard-health.d.ts.map +1 -1
  58. package/dist/dashboard-health.js +44 -3
  59. package/dist/dashboard-health.js.map +1 -1
  60. package/dist/eval-provider.d.ts.map +1 -1
  61. package/dist/eval-provider.js +2 -4
  62. package/dist/eval-provider.js.map +1 -1
  63. package/dist/guides-cache.d.ts +8 -0
  64. package/dist/guides-cache.d.ts.map +1 -0
  65. package/dist/guides-cache.js +31 -0
  66. package/dist/guides-cache.js.map +1 -0
  67. package/dist/hook-bin.d.ts +3 -0
  68. package/dist/hook-bin.d.ts.map +1 -0
  69. package/dist/hook-bin.js +37 -0
  70. package/dist/hook-bin.js.map +1 -0
  71. package/dist/hook-logger.d.ts +24 -0
  72. package/dist/hook-logger.d.ts.map +1 -0
  73. package/dist/hook-logger.js +68 -0
  74. package/dist/hook-logger.js.map +1 -0
  75. package/dist/hook-script.d.ts +27 -0
  76. package/dist/hook-script.d.ts.map +1 -0
  77. package/dist/hook-script.js +74 -0
  78. package/dist/hook-script.js.map +1 -0
  79. package/dist/hooks-settings.d.ts +82 -0
  80. package/dist/hooks-settings.d.ts.map +1 -0
  81. package/dist/hooks-settings.js +206 -0
  82. package/dist/hooks-settings.js.map +1 -0
  83. package/dist/http-retry.d.ts +8 -0
  84. package/dist/http-retry.d.ts.map +1 -1
  85. package/dist/http-retry.js +14 -1
  86. package/dist/http-retry.js.map +1 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +4 -9
  89. package/dist/index.js.map +1 -1
  90. package/dist/mcp/client.d.ts.map +1 -1
  91. package/dist/mcp/client.js +2 -1
  92. package/dist/mcp/client.js.map +1 -1
  93. package/dist/mcp/write-items.d.ts +12 -6
  94. package/dist/mcp/write-items.d.ts.map +1 -1
  95. package/dist/mcp/write-items.js +16 -9
  96. package/dist/mcp/write-items.js.map +1 -1
  97. package/dist/path-resolve.d.ts +11 -0
  98. package/dist/path-resolve.d.ts.map +1 -0
  99. package/dist/path-resolve.js +48 -0
  100. package/dist/path-resolve.js.map +1 -0
  101. package/dist/prompt.d.ts +3 -0
  102. package/dist/prompt.d.ts.map +1 -0
  103. package/dist/prompt.js +22 -0
  104. package/dist/prompt.js.map +1 -0
  105. package/dist/rules/bundled-skills.d.ts +24 -0
  106. package/dist/rules/bundled-skills.d.ts.map +1 -0
  107. package/dist/rules/bundled-skills.js +27 -0
  108. package/dist/rules/bundled-skills.js.map +1 -0
  109. package/dist/rules/deletions-client.d.ts.map +1 -1
  110. package/dist/rules/deletions-client.js +1 -3
  111. package/dist/rules/deletions-client.js.map +1 -1
  112. package/dist/rules/discover.d.ts.map +1 -1
  113. package/dist/rules/discover.js +5 -0
  114. package/dist/rules/discover.js.map +1 -1
  115. package/dist/rules/import-client.d.ts.map +1 -1
  116. package/dist/rules/import-client.js +1 -3
  117. package/dist/rules/import-client.js.map +1 -1
  118. package/dist/rules/init-import.d.ts +24 -0
  119. package/dist/rules/init-import.d.ts.map +1 -0
  120. package/dist/rules/init-import.js +34 -0
  121. package/dist/rules/init-import.js.map +1 -0
  122. package/dist/rules/member-files-client.d.ts.map +1 -1
  123. package/dist/rules/member-files-client.js +2 -1
  124. package/dist/rules/member-files-client.js.map +1 -1
  125. package/dist/rules/pull-bundle.d.ts.map +1 -1
  126. package/dist/rules/pull-bundle.js +8 -1
  127. package/dist/rules/pull-bundle.js.map +1 -1
  128. package/dist/rules/watch.d.ts.map +1 -1
  129. package/dist/rules/watch.js +5 -0
  130. package/dist/rules/watch.js.map +1 -1
  131. package/dist/sync-client.d.ts.map +1 -1
  132. package/dist/sync-client.js +1 -3
  133. package/dist/sync-client.js.map +1 -1
  134. package/dist/sync-response.d.ts +0 -1
  135. package/dist/sync-response.d.ts.map +1 -1
  136. package/dist/sync-response.js.map +1 -1
  137. package/dist/token-verify.d.ts +9 -2
  138. package/dist/token-verify.d.ts.map +1 -1
  139. package/dist/token-verify.js +13 -3
  140. package/dist/token-verify.js.map +1 -1
  141. package/dist/update/assets.d.ts +65 -0
  142. package/dist/update/assets.d.ts.map +1 -0
  143. package/dist/update/assets.js +153 -0
  144. package/dist/update/assets.js.map +1 -0
  145. package/dist/update/cache.d.ts +46 -0
  146. package/dist/update/cache.d.ts.map +1 -0
  147. package/dist/update/cache.js +101 -0
  148. package/dist/update/cache.js.map +1 -0
  149. package/dist/update/install-manager.d.ts +51 -0
  150. package/dist/update/install-manager.d.ts.map +1 -0
  151. package/dist/update/install-manager.js +111 -0
  152. package/dist/update/install-manager.js.map +1 -0
  153. package/dist/update/notice.d.ts +120 -0
  154. package/dist/update/notice.d.ts.map +1 -0
  155. package/dist/update/notice.js +184 -0
  156. package/dist/update/notice.js.map +1 -0
  157. package/dist/update/perform.d.ts +76 -0
  158. package/dist/update/perform.d.ts.map +1 -0
  159. package/dist/update/perform.js +149 -0
  160. package/dist/update/perform.js.map +1 -0
  161. package/dist/update/registry.d.ts +32 -0
  162. package/dist/update/registry.d.ts.map +1 -0
  163. package/dist/update/registry.js +53 -0
  164. package/dist/update/registry.js.map +1 -0
  165. package/dist/update/version.d.ts +40 -0
  166. package/dist/update/version.d.ts.map +1 -0
  167. package/dist/update/version.js +101 -0
  168. package/dist/update/version.js.map +1 -0
  169. package/dist/url.d.ts +11 -0
  170. package/dist/url.d.ts.map +1 -0
  171. package/dist/url.js +13 -0
  172. package/dist/url.js.map +1 -0
  173. package/dist/version.d.ts +2 -0
  174. package/dist/version.d.ts.map +1 -0
  175. package/dist/version.js +16 -0
  176. package/dist/version.js.map +1 -0
  177. package/package.json +7 -6
  178. package/dist/commands/eval/index.d.ts +0 -2
  179. package/dist/commands/eval/index.d.ts.map +0 -1
  180. package/dist/commands/eval/index.js +0 -2
  181. package/dist/commands/eval/index.js.map +0 -1
@@ -5,48 +5,47 @@ import { createInterface } from 'node:readline/promises';
5
5
  import { PROTOCOL_VERSION } from '@auden.to/protocol';
6
6
  import { defineCommand } from 'citty';
7
7
  import { AUDEN_CONFIG, AUDEN_HOOKS_DIR, AUDEN_HOOK_SCRIPT, AUDEN_HOME, AUDEN_RUNS_DIR, } from '../auden-paths.js';
8
- import { AUDEN_CONFIG_MODE, DEFAULT_DASHBOARD_URL, ensureAudenDir, normalizeDashboardUrl, readConfigDashboardUrl, readConfigDiscoverGlobal, readConfigToken, resolveDashboardUrl, writeConfigDashboardUrl, writeConfigDiscoverGlobal, writeConfigToken, } from '../config.js';
8
+ import { AUDEN_CONFIG_MODE, DEFAULT_DASHBOARD_URL, ensureAudenDir, normalizeDashboardUrl, readConfigDashboardUrl, readConfigDiscoverGlobal, resolveDashboardUrl, resolveToken, writeConfigDashboardUrl, writeConfigDiscoverGlobal, writeConfigToken, } from '../config.js';
9
9
  import { DEFAULT_EVAL_PROVIDER, DEFAULT_OPENROUTER_MODEL } from '../eval-provider.js';
10
+ import { buildHookScript } from '../hook-script.js';
11
+ import { AUDEN_HOOK_COMMAND, mergeAudenLoggerHook } from '../hooks-settings.js';
10
12
  import { discoverGuideFiles } from '../rules/discover.js';
13
+ import { formatImportSummary, importDiscoveredGuides } from '../rules/init-import.js';
11
14
  import { pullGuidesIntoRepo } from '../rules/init-pull.js';
12
15
  import { BUNDLED_SKILLS } from '../skill-template.js';
13
16
  import { verifyDashboardToken } from '../token-verify.js';
14
- const HOOK_SCRIPT = `#!/usr/bin/env node
17
+ import { CLI_VERSION } from '../version.js';
15
18
  /**
16
- * Auden PostToolUse hook logs agent actions to ~/.auden/runs/<session_id>.jsonl
17
- * Always exits 0 so it never blocks the agent.
19
+ * Write the bundled Claude Code skills into `<cwd>/.claude/skills/`.
20
+ *
21
+ * Shared by full `init` and `init --skills-only` so the two cannot diverge.
22
+ * `overwrite` replaces existing files; otherwise an existing skill is left
23
+ * alone (it may carry the user's edits).
18
24
  */
19
- import { appendFileSync, mkdirSync } from 'node:fs'
20
- import { homedir } from 'node:os'
21
- import { join } from 'node:path'
22
-
23
- let body = ''
24
- process.stdin.setEncoding('utf8')
25
- process.stdin.on('data', (chunk) => { body += chunk })
26
- process.stdin.on('end', () => {
27
- try {
28
- const event = JSON.parse(body)
29
- const sessionId = event.session_id ?? 'unknown'
30
- const toolName = event.tool_name ?? 'unknown'
31
- const toolInput = event.tool_input ?? {}
32
-
33
- const entry = {
34
- timestamp: new Date().toISOString(),
35
- sessionId,
36
- toolName,
37
- filePath: toolInput.file_path ?? toolInput.path ?? undefined,
38
- command: toolInput.command ?? undefined,
25
+ async function writeBundledSkills(cwd, overwrite) {
26
+ for (const skill of BUNDLED_SKILLS) {
27
+ const rel = `.claude/skills/${skill.name}/SKILL.md`;
28
+ const skillDir = join(cwd, '.claude', 'skills', skill.name);
29
+ const skillPath = join(skillDir, 'SKILL.md');
30
+ try {
31
+ const skillExists = await access(skillPath)
32
+ .then(() => true)
33
+ .catch(() => false);
34
+ if (skillExists && !overwrite) {
35
+ console.log(` ${rel} already exists skipped (use --force to overwrite)`);
36
+ }
37
+ else {
38
+ await mkdir(skillDir, { recursive: true });
39
+ await writeFile(skillPath, skill.content);
40
+ console.log(` ${skillExists ? 'updated' : 'created'} ${rel}`);
41
+ }
42
+ }
43
+ catch (err) {
44
+ const message = err instanceof Error ? err.message : String(err);
45
+ console.warn(` warning: could not write ${rel} — ${message}`);
46
+ }
39
47
  }
40
-
41
- const runsDir = join(homedir(), '.auden', 'runs')
42
- mkdirSync(runsDir, { recursive: true })
43
- appendFileSync(join(runsDir, \`\${sessionId}.jsonl\`), JSON.stringify(entry) + '\\n')
44
- } catch {
45
- // Never block the agent
46
- }
47
- process.exit(0)
48
- })
49
- `;
48
+ }
50
49
  const AGENTS_MD_TEMPLATE = `# AGENTS.md
51
50
 
52
51
  ## Rules
@@ -64,30 +63,42 @@ export const initCommand = defineCommand({
64
63
  description: 'Overwrite existing ~/.auden/config.json, AGENTS.md, and .claude/skills/; ensure .agents/ exists',
65
64
  default: false,
66
65
  },
67
- 'no-skill': {
66
+ // Declared positively with `default: true` so `--no-skill` works. citty
67
+ // parses `--no-<name>` as setting `<name>` to false, which means an arg
68
+ // *named* `no-skill` can never be set by the flag that reads like it: the
69
+ // parse produces `skill: false` and leaves `no-skill` at its default. Every
70
+ // negative flag below has the same shape for the same reason.
71
+ skill: {
68
72
  type: 'boolean',
69
- description: 'Skip writing the Claude Code skills to .claude/skills/',
70
- default: false,
73
+ description: 'Write the bundled Claude Code skills to .claude/skills/ (--no-skill to skip)',
74
+ default: true,
71
75
  },
72
- 'no-eval-hook': {
76
+ 'skills-only': {
73
77
  type: 'boolean',
74
- description: 'Skip registering the Claude Code Stop hook that runs "auden eval" at session end',
78
+ description: 'Rewrite only the bundled skills in .claude/skills/, touching nothing else the safe way to clear skill drift after a CLI upgrade (`--force` would also reset ~/.auden/config.json and AGENTS.md)',
75
79
  default: false,
76
80
  },
77
- 'no-prompt': {
81
+ 'eval-hook': {
78
82
  type: 'boolean',
79
- description: 'Skip interactive prompts (e.g. the global rule discovery question)',
80
- default: false,
83
+ description: 'Register the Claude Code Stop hook that runs "auden eval" at session end (--no-eval-hook to skip)',
84
+ default: true,
81
85
  },
86
+ prompt: {
87
+ type: 'boolean',
88
+ description: 'Ask interactive questions (e.g. the global rule discovery question); --no-prompt skips them all',
89
+ default: true,
90
+ },
91
+ // Deliberately undefaulted: these are tri-state, and a default would
92
+ // collapse two of the states. Unset means "ask", `--pull-guides` means
93
+ // "always", `--no-pull-guides` means "never" — which citty gives us for
94
+ // free as undefined / true / false on one positively-named arg.
82
95
  'pull-guides': {
83
96
  type: 'boolean',
84
- description: 'Pull your guides from the dashboard into this repo without prompting (requires a token)',
85
- default: false,
97
+ description: 'Pull your guides from the dashboard into this repo without prompting (requires a token); --no-pull-guides never offers',
86
98
  },
87
- 'no-pull-guides': {
99
+ 'import-guides': {
88
100
  type: 'boolean',
89
- description: 'Never offer to pull guides from the dashboard into this repo',
90
- default: false,
101
+ description: "Import this repo's existing guide files into the dashboard without prompting (requires a token); --no-import-guides never offers",
91
102
  },
92
103
  'dashboard-url': {
93
104
  type: 'string',
@@ -104,6 +115,33 @@ export const initCommand = defineCommand({
104
115
  },
105
116
  async run({ args }) {
106
117
  const cwd = process.cwd();
118
+ // `--skills-only` exists so a user clearing skill drift after an upgrade
119
+ // has a non-destructive path. The obvious alternative, `--force`, also
120
+ // rewrites ~/.auden/config.json from defaults — discarding the stored API
121
+ // token and every other setting — and replaces AGENTS.md. Refreshing two
122
+ // generated skill files should not cost anyone their credentials.
123
+ if (args['skills-only']) {
124
+ await writeBundledSkills(cwd, true);
125
+ return;
126
+ }
127
+ // Whether init can ask the user anything at all. Hoisted because it also
128
+ // decides how wide step 0's scan needs to be.
129
+ const interactive = args.prompt && process.stdin.isTTY === true;
130
+ // 0. Scan for guide files the user already has, BEFORE any of the writes
131
+ // below. Steps 4 and 6 create an AGENTS.md stub and the bundled skills;
132
+ // scanning afterwards would offer to import init's own scaffolding as
133
+ // if the user had written it. (Bundled skills are excluded from
134
+ // discovery outright — the AGENTS.md stub is not, hence the ordering.)
135
+ //
136
+ // The global roots (`~/.claude/skills`, `~/.cursor/rules`) are walked
137
+ // recursively and their contents read, so they are scanned only when the
138
+ // discoverGlobal prompt below can actually run — the sole consumer. A
139
+ // `--no-prompt`/CI init pays for the repo scan only. init's import offer
140
+ // is repo-scoped by design; globals go up via `guides import --global`.
141
+ const home = homedir();
142
+ const preexistingGuideFiles = await discoverGuideFiles(interactive ? { cwd, global: true, homedir: home } : { cwd });
143
+ const globalGuideFiles = preexistingGuideFiles.filter((f) => f.displayPath.startsWith('~/'));
144
+ const repoGuideFiles = preexistingGuideFiles.filter((f) => !f.displayPath.startsWith('~/'));
107
145
  // 1. Global config + runs dir
108
146
  // ~/.auden/ holds the bearer token in config.json — owner-only
109
147
  // permissions on both the directory and the file.
@@ -147,7 +185,7 @@ export const initCommand = defineCommand({
147
185
  else if (existingDashboardUrl) {
148
186
  console.log(` ~/.auden/config.json: dashboardUrl = ${existingDashboardUrl} (pass --dashboard-url to change)`);
149
187
  }
150
- else if (args['no-prompt'] || !process.stdin.isTTY) {
188
+ else if (!args.prompt || !process.stdin.isTTY) {
151
189
  console.log(` ~/.auden/config.json: dashboardUrl unset — runtime falls back to ${DEFAULT_DASHBOARD_URL}`);
152
190
  }
153
191
  else {
@@ -178,22 +216,33 @@ export const initCommand = defineCommand({
178
216
  // just works. Verified against the dashboard when reachable; a token
179
217
  // the server outright rejects is not stored, while an unreachable
180
218
  // server stores it unverified so offline/CI init still works.
219
+ // A rejected flag is also barred from the later steps (import/pull):
220
+ // resolving it again would let a credential we deliberately refused to
221
+ // store still make dashboard calls — and mask a valid stored token.
222
+ let tokenFlagRejected = false;
181
223
  if (args.token.trim()) {
182
- const verifyUrl = await resolveDashboardUrl();
224
+ const verifyUrl = await resolveDashboardUrl(args['dashboard-url']);
183
225
  const verification = await verifyDashboardToken(verifyUrl, args.token.trim());
184
226
  if (verification === 'rejected') {
227
+ tokenFlagRejected = true;
185
228
  console.warn(` warning: token rejected by ${verifyUrl} — not stored. Check it and run \`auden sync --token <token>\`.`);
186
229
  }
187
230
  else {
231
+ // 'blocked' and 'unreachable' both say nothing about the token, so it
232
+ // is stored unverified either way — but they have different causes and
233
+ // different fixes, so don't report a policy denial as a network error.
188
234
  await writeConfigToken(args.token);
189
- console.log(verification === 'ok'
190
- ? ' ~/.auden/config.json: token verified and stored'
191
- : ` ~/.auden/config.json: token stored (could not reach ${verifyUrl} to verify)`);
235
+ const storedNote = verification === 'ok'
236
+ ? 'token verified and stored'
237
+ : verification === 'blocked'
238
+ ? `token stored unverified — ${verifyUrl} answered 403 through an intermediary (likely an egress allowlist), not a rejection of the token`
239
+ : `token stored (could not reach ${verifyUrl} to verify)`;
240
+ console.log(` ~/.auden/config.json: ${storedNote}`);
192
241
  }
193
242
  }
194
243
  // 2. Hook script
195
244
  await mkdir(AUDEN_HOOKS_DIR, { recursive: true });
196
- await writeFile(AUDEN_HOOK_SCRIPT, HOOK_SCRIPT);
245
+ await writeFile(AUDEN_HOOK_SCRIPT, buildHookScript(CLI_VERSION));
197
246
  await chmod(AUDEN_HOOK_SCRIPT, 0o755);
198
247
  console.log(' installed ~/.auden/hooks/log-action.mjs');
199
248
  // 3. Claude Code hooks in .claude/settings.json
@@ -201,8 +250,11 @@ export const initCommand = defineCommand({
201
250
  const settingsPath = join(claudeDir, 'settings.json');
202
251
  const audenHookEntry = {
203
252
  type: 'command',
204
- // JSON.stringify safely quotes/escapes paths (e.g. home directories with spaces).
205
- command: `node ${JSON.stringify(AUDEN_HOOK_SCRIPT)}`,
253
+ // Bare command, resolved through PATH from the `auden-hook` bin. Nothing
254
+ // machine-specific, so this file is identical everywhere and safe to
255
+ // commit; older versions wrote an absolute path here and the merge below
256
+ // migrates those.
257
+ command: AUDEN_HOOK_COMMAND,
206
258
  timeout: 5,
207
259
  };
208
260
  try {
@@ -224,29 +276,32 @@ export const initCommand = defineCommand({
224
276
  settings['hooks'] = {};
225
277
  const hooks = settings['hooks'];
226
278
  let settingsChanged = false;
227
- // PostToolUse: action logger
228
- if (!Array.isArray(hooks['PostToolUse']))
229
- hooks['PostToolUse'] = [];
230
- const postToolUse = hooks['PostToolUse'];
231
- const loggerInstalled = postToolUse.some((group) => {
232
- const groupHooks = group['hooks'];
233
- return (Array.isArray(groupHooks) &&
234
- groupHooks.some((h) => typeof h === 'object' &&
235
- h !== null &&
236
- h['command']
237
- ?.toString()
238
- .includes('log-action.mjs')));
239
- });
240
- if (!loggerInstalled) {
241
- postToolUse.push({ hooks: [audenHookEntry] });
279
+ // PostToolUse: action logger. Settings files written by older versions
280
+ // embed an absolute path to the generated script, so one that arrived
281
+ // from elsewhere (committed to the repo, baked into an image layer,
282
+ // carried across a home-directory move) points at a script this machine
283
+ // does not have. Migrate those in place instead of skipping or stacking
284
+ // a second entry beside them.
285
+ const loggerMerge = mergeAudenLoggerHook(hooks['PostToolUse'], audenHookEntry);
286
+ hooks['PostToolUse'] = loggerMerge.postToolUse;
287
+ if (loggerMerge.action === 'installed') {
242
288
  settingsChanged = true;
243
289
  console.log(' updated .claude/settings.json with PostToolUse hook');
244
290
  }
291
+ else if (loggerMerge.action === 'repaired') {
292
+ settingsChanged = true;
293
+ for (const stalePath of loggerMerge.repairedFrom) {
294
+ console.log(` migrated .claude/settings.json PostToolUse hook to \`${AUDEN_HOOK_COMMAND}\` — it pointed at ${stalePath}, which is specific to the machine that wrote it`);
295
+ }
296
+ if (loggerMerge.removedDuplicates > 0) {
297
+ console.log(` removed ${loggerMerge.removedDuplicates} duplicate auden PostToolUse hook(s) — each one logged every action again`);
298
+ }
299
+ }
245
300
  else {
246
301
  console.log(' .claude/settings.json already has auden PostToolUse hook — skipped');
247
302
  }
248
303
  // Stop: session-end eval (skipped when --no-eval-hook)
249
- if (!args['no-eval-hook']) {
304
+ if (args['eval-hook']) {
250
305
  if (!Array.isArray(hooks['Stop']))
251
306
  hooks['Stop'] = [];
252
307
  const stop = hooks['Stop'];
@@ -279,6 +334,13 @@ export const initCommand = defineCommand({
279
334
  console.warn(' warning: could not update .claude/settings.json');
280
335
  }
281
336
  // 4. AGENTS.md
337
+ //
338
+ // `--force` replaces an existing AGENTS.md with the template, which makes
339
+ // step 0's snapshot of it stale. Record that so the import below sends only
340
+ // what is actually on disk — a guide whose content and hash no longer match
341
+ // the file it claims to come from would show as drift on the next watch or
342
+ // export round-trip.
343
+ const clobberedGuidePaths = new Set();
282
344
  const agentsMdPath = join(cwd, 'AGENTS.md');
283
345
  const agentsMdExists = await access(agentsMdPath)
284
346
  .then(() => true)
@@ -288,7 +350,9 @@ export const initCommand = defineCommand({
288
350
  }
289
351
  else {
290
352
  await writeFile(agentsMdPath, AGENTS_MD_TEMPLATE);
291
- console.log(' created AGENTS.md');
353
+ if (agentsMdExists)
354
+ clobberedGuidePaths.add('AGENTS.md');
355
+ console.log(agentsMdExists ? ' overwrote AGENTS.md' : ' created AGENTS.md');
292
356
  }
293
357
  // 5. .agents/
294
358
  const agentsDirPath = join(cwd, '.agents');
@@ -304,75 +368,98 @@ export const initCommand = defineCommand({
304
368
  console.log(' created .agents/');
305
369
  }
306
370
  // 6. Claude Code skills (auden + context-layer round-trip skills)
307
- if (!args['no-skill']) {
308
- for (const skill of BUNDLED_SKILLS) {
309
- const rel = `.claude/skills/${skill.name}/SKILL.md`;
310
- const skillDir = join(cwd, '.claude', 'skills', skill.name);
311
- const skillPath = join(skillDir, 'SKILL.md');
312
- try {
313
- const skillExists = await access(skillPath)
314
- .then(() => true)
315
- .catch(() => false);
316
- if (skillExists && !args.force) {
317
- console.log(` ${rel} already exists — skipped (use --force to overwrite)`);
318
- }
319
- else {
320
- await mkdir(skillDir, { recursive: true });
321
- await writeFile(skillPath, skill.content);
322
- console.log(` created ${rel}`);
323
- }
324
- }
325
- catch (err) {
326
- const message = err instanceof Error ? err.message : String(err);
327
- console.warn(` warning: could not write ${rel} — ${message}`);
328
- }
329
- }
371
+ if (args.skill) {
372
+ await writeBundledSkills(cwd, args.force);
330
373
  }
331
374
  // 7. Optional: ask whether to enable global rule discovery
332
- if (!args['no-prompt'] && process.stdin.isTTY) {
375
+ if (interactive) {
333
376
  const alreadyEnabled = await readConfigDiscoverGlobal().catch(() => false);
334
377
  if (alreadyEnabled) {
335
378
  console.log(' ~/.auden/config.json: discoverGlobal already enabled — skipping prompt');
336
- console.log(' (pass `auden rules import --no-global` to skip globals for one run)');
379
+ console.log(' (pass `auden guides import --no-global` to skip globals for one run)');
337
380
  }
338
- else {
339
- const home = homedir();
340
- const allFiles = await discoverGuideFiles({ cwd, global: true, homedir: home });
341
- const globalFiles = allFiles.filter((f) => f.displayPath.startsWith('~/'));
342
- if (globalFiles.length > 0) {
343
- const summary = globalFiles.map((f) => f.displayPath).join(', ');
344
- const rl = createInterface({ input: process.stdin, output: process.stdout });
345
- try {
346
- const answer = (await rl.question(`\nFound global rule file(s): ${summary}\n` +
347
- 'Scan global config by default during "auden rules import"? [y/N] '))
348
- .trim()
349
- .toLowerCase();
350
- if (answer === 'y' || answer === 'yes') {
351
- try {
352
- await writeConfigDiscoverGlobal(true);
353
- console.log(' ~/.auden/config.json: discoverGlobal = true');
354
- }
355
- catch (err) {
356
- console.warn(` warning: could not persist discoverGlobal — ${err instanceof Error ? err.message : String(err)}`);
357
- }
381
+ else if (globalGuideFiles.length > 0) {
382
+ const summary = globalGuideFiles.map((f) => f.displayPath).join(', ');
383
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
384
+ try {
385
+ const answer = (await rl.question(`\nFound global rule file(s): ${summary}\n` +
386
+ 'Scan global config by default during "auden guides import"? [y/N] '))
387
+ .trim()
388
+ .toLowerCase();
389
+ if (answer === 'y' || answer === 'yes') {
390
+ try {
391
+ await writeConfigDiscoverGlobal(true);
392
+ console.log(' ~/.auden/config.json: discoverGlobal = true');
393
+ }
394
+ catch (err) {
395
+ console.warn(` warning: could not persist discoverGlobal — ${err instanceof Error ? err.message : String(err)}`);
358
396
  }
359
397
  }
360
- finally {
361
- rl.close();
362
- }
398
+ }
399
+ finally {
400
+ rl.close();
401
+ }
402
+ }
403
+ }
404
+ // Flag → $AUDEN_TOKEN → config: a scripted setup that exports the token
405
+ // instead of persisting it still gets the import/pull below. A flag the
406
+ // dashboard rejected in step 1c is dropped here so it neither makes calls
407
+ // of its own nor shadows a valid token already in the config.
408
+ const token = await resolveToken(tokenFlagRejected ? '' : args.token).catch(() => '');
409
+ const hasToken = Boolean(token);
410
+ // 8. Optional: import the guide files this repo already had (step 0's scan)
411
+ // into the dashboard. Most repos arrive with an AGENTS.md or CLAUDE.md
412
+ // already written, and without this the only way to get them in was to
413
+ // know `auden guides import` exists. Runs before the pull below so
414
+ // what's on disk goes up first and the pull only fills in the rest.
415
+ // Needs a token. Forced with --import-guides, suppressed with
416
+ // --no-import-guides or --no-prompt, otherwise offered interactively.
417
+ const importableGuideFiles = repoGuideFiles.filter((f) => !clobberedGuidePaths.has(f.payloadPath));
418
+ for (const file of repoGuideFiles) {
419
+ if (clobberedGuidePaths.has(file.payloadPath)) {
420
+ console.log(` ${file.displayPath} was replaced by --force — its previous contents are not imported.`);
421
+ }
422
+ }
423
+ if (hasToken && importableGuideFiles.length > 0 && args['import-guides'] !== false) {
424
+ let shouldImport = args['import-guides'] === true;
425
+ if (!shouldImport && interactive) {
426
+ const summary = importableGuideFiles.map((f) => f.displayPath).join(', ');
427
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
428
+ try {
429
+ const answer = (await rl.question(`\nFound ${importableGuideFiles.length} existing guide file(s) in this repo: ${summary}\n` +
430
+ 'Import them into your dashboard now? [Y/n] '))
431
+ .trim()
432
+ .toLowerCase();
433
+ shouldImport = answer === '' || answer === 'y' || answer === 'yes';
434
+ }
435
+ finally {
436
+ rl.close();
437
+ }
438
+ }
439
+ if (shouldImport) {
440
+ const dashboardUrl = await resolveDashboardUrl(args['dashboard-url']);
441
+ try {
442
+ const result = await importDiscoveredGuides(importableGuideFiles, {
443
+ dashboardUrl,
444
+ token,
445
+ });
446
+ console.log(` Imported into ${dashboardUrl}:`);
447
+ for (const line of formatImportSummary(result))
448
+ console.log(line);
449
+ }
450
+ catch (err) {
451
+ console.warn(` warning: could not import guide files — ${err instanceof Error ? err.message : String(err)}`);
452
+ console.warn(' Retry any time with `auden guides import`.');
363
453
  }
364
454
  }
365
455
  }
366
- const storedToken = await readConfigToken().catch(() => '');
367
- const hasToken = Boolean(storedToken);
368
- // 8. Optional: pull the user's guides into this repo so a fresh project
456
+ // 9. Optional: pull the user's guides into this repo so a fresh project
369
457
  // starts with their accumulated setup rather than cold. Needs a token —
370
458
  // everything above is local; this is the one step that talks to the
371
459
  // dashboard. Forced with --pull-guides, suppressed with --no-pull-guides
372
460
  // or --no-prompt, otherwise offered interactively.
373
- if (hasToken && !args['no-pull-guides']) {
374
- const interactive = !args['no-prompt'] && process.stdin.isTTY === true;
375
- let shouldPull = args['pull-guides'];
461
+ if (hasToken && args['pull-guides'] !== false) {
462
+ let shouldPull = args['pull-guides'] === true;
376
463
  if (!shouldPull && interactive) {
377
464
  const rl = createInterface({ input: process.stdin, output: process.stdout });
378
465
  try {
@@ -386,12 +473,12 @@ export const initCommand = defineCommand({
386
473
  }
387
474
  }
388
475
  if (shouldPull) {
389
- const dashboardUrl = await resolveDashboardUrl();
476
+ const dashboardUrl = await resolveDashboardUrl(args['dashboard-url']);
390
477
  try {
391
478
  const result = await pullGuidesIntoRepo({
392
479
  cwd,
393
480
  dashboardUrl,
394
- token: storedToken,
481
+ token,
395
482
  color: process.stdout.isTTY === true,
396
483
  onPull: (count, target) => {
397
484
  console.log(` Pulled ${count} guide(s) from ${dashboardUrl} → ${target}`);
@@ -428,6 +515,11 @@ export const initCommand = defineCommand({
428
515
  else {
429
516
  console.log(' auden sync --token <token> — connect your dashboard (Settings → Developer → CLI Token); remembered after the first run');
430
517
  }
518
+ // Always listed, not just when this run found files: someone who adds an
519
+ // AGENTS.md tomorrow needs to know the command exists today.
520
+ console.log(importableGuideFiles.length > 0
521
+ ? ` auden guides import — send this repo's existing guide files (${importableGuideFiles.length} found) to your dashboard`
522
+ : " auden guides import — send this repo's existing guide files to your dashboard");
431
523
  console.log(' auden guides active — list cached guides');
432
524
  console.log(' auden doctor — verify your environment');
433
525
  console.log(' auden eval — evaluate the most recent agent run (also runs at session end via Stop hook)');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
2
  import { defineCommand } from 'citty';
3
- import { readConfigMcpBundles, readConfigMcpWrite, readConfigToken, resolveDashboardUrl, } from '../config.js';
3
+ import { readConfigMcpBundles, readConfigMcpWrite, resolveDashboardUrl, resolveToken, } from '../config.js';
4
4
  import { createContextClient } from '../mcp/client.js';
5
5
  import { parseBundleAllowlist } from '../mcp/scope.js';
6
6
  import { createMcpServer } from '../mcp/server.js';
@@ -34,7 +34,7 @@ export const mcpCommand = defineCommand({
34
34
  async run({ args }) {
35
35
  // stdout is the JSON-RPC channel for stdio transport — every human-facing
36
36
  // message here must go to stderr so it never corrupts the protocol stream.
37
- const token = args.token.trim() || (await readConfigToken());
37
+ const token = await resolveToken(args.token);
38
38
  if (!token) {
39
39
  console.error('No Auden token configured. Get one from the dashboard (Settings → Developer → CLI Token), then run `auden init --token <token>` or pass `auden mcp --token <token>`.');
40
40
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACtC,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK;QACX,WAAW,EACT,iGAAiG;KACpG;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uFAAuF;YACzF,OAAO,EAAE,EAAE;SACZ;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2FAA2F;YAC7F,OAAO,EAAE,EAAE;SACZ;QACD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;YACf,WAAW,EACT,wEAAwE;YAC1E,OAAO,EAAE,KAAK;SACf;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,6FAA6F;YAC/F,OAAO,EAAE,EAAE;SACZ;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,sKAAsK,CACvK,CAAA;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAA;QAEhC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QAE7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;QACxE,OAAO,CAAC,KAAK,CACX,2BAA2B,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,IAAI,CAChG,CAAA;QAED,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;IAClD,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACtC,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK;QACX,WAAW,EACT,iGAAiG;KACpG;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,uFAAuF;YACzF,OAAO,EAAE,EAAE;SACZ;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2FAA2F;YAC7F,OAAO,EAAE,EAAE;SACZ;QACD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;YACf,WAAW,EACT,wEAAwE;YAC1E,OAAO,EAAE,KAAK;SACf;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,6FAA6F;YAC/F,OAAO,EAAE,EAAE;SACZ;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,sKAAsK,CACvK,CAAA;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAA;QAEhC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QAE7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;QACxE,OAAO,CAAC,KAAK,CACX,2BAA2B,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,IAAI,CAChG,CAAA;QAED,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;IAClD,CAAC;CACF,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import { readConfigToken, resolveDashboardUrl } from '../config.js';
2
+ import { resolveDashboardUrl, resolveToken } from '../config.js';
3
3
  import { defaultPullDir, pullBundleToDir } from '../context/pull.js';
4
4
  import { createContextClient } from '../mcp/client.js';
5
5
  // Mirror the REST endpoint's (and MCP server's) MAX_LIMIT so an over-large
@@ -68,7 +68,7 @@ export const pullCommand = defineCommand({
68
68
  process.exitCode = 1;
69
69
  return;
70
70
  }
71
- const token = args.token.trim() || (await readConfigToken());
71
+ const token = await resolveToken(args.token);
72
72
  if (!token) {
73
73
  console.error('No Auden token configured. Get one from the dashboard (Settings → Developer → CLI Token), then run `auden init --token <token>` or pass `auden pull <bundle> --token <token>`.');
74
74
  process.exitCode = 1;