dino-spec 11.6.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +19 -12
  2. package/bin/dino-hud.js +1 -1
  3. package/bin/dino.js +4 -4
  4. package/dist/cli/index.d.ts +14 -17
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +67 -396
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/commands/hooks/registry.d.ts +5 -1
  9. package/dist/commands/hooks/registry.d.ts.map +1 -1
  10. package/dist/commands/hooks/registry.js +29 -10
  11. package/dist/commands/hooks/registry.js.map +1 -1
  12. package/dist/commands/hooks/types.d.ts +1 -0
  13. package/dist/commands/hooks/types.d.ts.map +1 -1
  14. package/dist/commands/init.d.ts +7 -9
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +47 -38
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/refresh.d.ts +2 -2
  19. package/dist/commands/refresh.d.ts.map +1 -1
  20. package/dist/commands/refresh.js +6 -8
  21. package/dist/commands/refresh.js.map +1 -1
  22. package/dist/commands/session.d.ts +16 -1
  23. package/dist/commands/session.d.ts.map +1 -1
  24. package/dist/commands/session.js +68 -1
  25. package/dist/commands/session.js.map +1 -1
  26. package/dist/core/checkpoints/git-recovery.d.ts.map +1 -1
  27. package/dist/core/checkpoints/git-recovery.js +13 -46
  28. package/dist/core/checkpoints/git-recovery.js.map +1 -1
  29. package/dist/core/config/optional-commands.d.ts +36 -0
  30. package/dist/core/config/optional-commands.d.ts.map +1 -0
  31. package/dist/core/config/optional-commands.js +96 -0
  32. package/dist/core/config/optional-commands.js.map +1 -0
  33. package/dist/core/ralph/git-integration.d.ts.map +1 -1
  34. package/dist/core/ralph/git-integration.js +29 -83
  35. package/dist/core/ralph/git-integration.js.map +1 -1
  36. package/dist/core/session/roadmap-sync.d.ts.map +1 -1
  37. package/dist/core/session/roadmap-sync.js +10 -16
  38. package/dist/core/session/roadmap-sync.js.map +1 -1
  39. package/dist/hooks/index.d.ts +5 -4
  40. package/dist/hooks/index.d.ts.map +1 -1
  41. package/dist/hooks/index.js +6 -4
  42. package/dist/hooks/index.js.map +1 -1
  43. package/dist/hooks/post-edit.d.ts +3 -1
  44. package/dist/hooks/post-edit.d.ts.map +1 -1
  45. package/dist/hooks/post-edit.js +32 -87
  46. package/dist/hooks/post-edit.js.map +1 -1
  47. package/dist/hooks/post-execution.d.ts +17 -0
  48. package/dist/hooks/post-execution.d.ts.map +1 -0
  49. package/dist/hooks/post-execution.js +443 -0
  50. package/dist/hooks/post-execution.js.map +1 -0
  51. package/dist/hooks/pre-compact.d.ts.map +1 -1
  52. package/dist/hooks/pre-compact.js +10 -15
  53. package/dist/hooks/pre-compact.js.map +1 -1
  54. package/dist/hooks/pre-tool-use.d.ts.map +1 -1
  55. package/dist/hooks/pre-tool-use.js +11 -17
  56. package/dist/hooks/pre-tool-use.js.map +1 -1
  57. package/dist/hooks/pre-validate.d.ts.map +1 -1
  58. package/dist/hooks/pre-validate.js +11 -17
  59. package/dist/hooks/pre-validate.js.map +1 -1
  60. package/dist/hooks/session-end.d.ts +1 -3
  61. package/dist/hooks/session-end.d.ts.map +1 -1
  62. package/dist/hooks/session-end.js +16 -64
  63. package/dist/hooks/session-end.js.map +1 -1
  64. package/dist/hooks/session-start-verify.d.ts.map +1 -1
  65. package/dist/hooks/session-start-verify.js +7 -25
  66. package/dist/hooks/session-start-verify.js.map +1 -1
  67. package/dist/hooks/session-start.d.ts +3 -4
  68. package/dist/hooks/session-start.d.ts.map +1 -1
  69. package/dist/hooks/session-start.js +51 -77
  70. package/dist/hooks/session-start.js.map +1 -1
  71. package/dist/hooks/shared/index.d.ts +64 -0
  72. package/dist/hooks/shared/index.d.ts.map +1 -0
  73. package/dist/hooks/shared/index.js +164 -0
  74. package/dist/hooks/shared/index.js.map +1 -0
  75. package/dist/hooks/shared/paths.d.ts +64 -0
  76. package/dist/hooks/shared/paths.d.ts.map +1 -0
  77. package/dist/hooks/shared/paths.js +153 -0
  78. package/dist/hooks/shared/paths.js.map +1 -0
  79. package/dist/hooks/shared/session.d.ts +57 -0
  80. package/dist/hooks/shared/session.d.ts.map +1 -0
  81. package/dist/hooks/shared/session.js +173 -0
  82. package/dist/hooks/shared/session.js.map +1 -0
  83. package/dist/hooks/shared/utils.d.ts +104 -0
  84. package/dist/hooks/shared/utils.d.ts.map +1 -0
  85. package/dist/hooks/shared/utils.js +266 -0
  86. package/dist/hooks/shared/utils.js.map +1 -0
  87. package/dist/hooks/subagent-start.d.ts.map +1 -1
  88. package/dist/hooks/subagent-start.js +13 -19
  89. package/dist/hooks/subagent-start.js.map +1 -1
  90. package/dist/hooks/subagent-stop.d.ts.map +1 -1
  91. package/dist/hooks/subagent-stop.js +13 -19
  92. package/dist/hooks/subagent-stop.js.map +1 -1
  93. package/dist/hooks/user-prompt-submit.d.ts +3 -1
  94. package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
  95. package/dist/hooks/user-prompt-submit.js +19 -31
  96. package/dist/hooks/user-prompt-submit.js.map +1 -1
  97. package/dist/hud/index.d.ts +1 -0
  98. package/dist/hud/index.d.ts.map +1 -1
  99. package/dist/hud/index.js +1 -0
  100. package/dist/hud/index.js.map +1 -1
  101. package/dist/hud/render/git-status.d.ts.map +1 -1
  102. package/dist/hud/render/git-status.js +11 -15
  103. package/dist/hud/render/git-status.js.map +1 -1
  104. package/dist/hud/usage-rotation.d.ts +59 -0
  105. package/dist/hud/usage-rotation.d.ts.map +1 -0
  106. package/dist/hud/usage-rotation.js +227 -0
  107. package/dist/hud/usage-rotation.js.map +1 -0
  108. package/dist/hud/usage-tracker.d.ts.map +1 -1
  109. package/dist/hud/usage-tracker.js +3 -0
  110. package/dist/hud/usage-tracker.js.map +1 -1
  111. package/dist/mcp/setup.d.ts.map +1 -1
  112. package/dist/mcp/setup.js +28 -38
  113. package/dist/mcp/setup.js.map +1 -1
  114. package/dist/plugin/loader.d.ts +86 -0
  115. package/dist/plugin/loader.d.ts.map +1 -0
  116. package/dist/plugin/loader.js +175 -0
  117. package/dist/plugin/loader.js.map +1 -0
  118. package/dist/rules/index.d.ts.map +1 -1
  119. package/dist/rules/index.js +108 -74
  120. package/dist/rules/index.js.map +1 -1
  121. package/dist/skills/index.d.ts.map +1 -1
  122. package/dist/skills/index.js +1 -62
  123. package/dist/skills/index.js.map +1 -1
  124. package/dist/store/remote.d.ts.map +1 -1
  125. package/dist/store/remote.js +7 -8
  126. package/dist/store/remote.js.map +1 -1
  127. package/dist/utils/exec.d.ts +46 -0
  128. package/dist/utils/exec.d.ts.map +1 -0
  129. package/dist/utils/exec.js +111 -0
  130. package/dist/utils/exec.js.map +1 -0
  131. package/dist/utils/file-system.d.ts +7 -0
  132. package/dist/utils/file-system.d.ts.map +1 -1
  133. package/dist/utils/file-system.js +12 -0
  134. package/dist/utils/file-system.js.map +1 -1
  135. package/package.json +10 -9
  136. package/dist/commands/cache/analyze.d.ts +0 -26
  137. package/dist/commands/cache/analyze.d.ts.map +0 -1
  138. package/dist/commands/cache/analyze.js +0 -56
  139. package/dist/commands/cache/analyze.js.map +0 -1
  140. package/dist/commands/cache/clear.d.ts +0 -17
  141. package/dist/commands/cache/clear.d.ts.map +0 -1
  142. package/dist/commands/cache/clear.js +0 -34
  143. package/dist/commands/cache/clear.js.map +0 -1
  144. package/dist/commands/cache/index.d.ts +0 -7
  145. package/dist/commands/cache/index.d.ts.map +0 -1
  146. package/dist/commands/cache/index.js +0 -7
  147. package/dist/commands/cache/index.js.map +0 -1
  148. package/dist/commands/cache/status.d.ts +0 -17
  149. package/dist/commands/cache/status.d.ts.map +0 -1
  150. package/dist/commands/cache/status.js +0 -46
  151. package/dist/commands/cache/status.js.map +0 -1
  152. package/dist/commands/checkpoint/create.d.ts +0 -15
  153. package/dist/commands/checkpoint/create.d.ts.map +0 -1
  154. package/dist/commands/checkpoint/create.js +0 -42
  155. package/dist/commands/checkpoint/create.js.map +0 -1
  156. package/dist/commands/checkpoint/index.d.ts +0 -9
  157. package/dist/commands/checkpoint/index.d.ts.map +0 -1
  158. package/dist/commands/checkpoint/index.js +0 -9
  159. package/dist/commands/checkpoint/index.js.map +0 -1
  160. package/dist/commands/checkpoint/list.d.ts +0 -14
  161. package/dist/commands/checkpoint/list.d.ts.map +0 -1
  162. package/dist/commands/checkpoint/list.js +0 -42
  163. package/dist/commands/checkpoint/list.js.map +0 -1
  164. package/dist/commands/checkpoint/restore.d.ts +0 -13
  165. package/dist/commands/checkpoint/restore.d.ts.map +0 -1
  166. package/dist/commands/checkpoint/restore.js +0 -67
  167. package/dist/commands/checkpoint/restore.js.map +0 -1
  168. package/dist/commands/context/audit.d.ts +0 -25
  169. package/dist/commands/context/audit.d.ts.map +0 -1
  170. package/dist/commands/context/audit.js +0 -56
  171. package/dist/commands/context/audit.js.map +0 -1
  172. package/dist/commands/context/index.d.ts +0 -6
  173. package/dist/commands/context/index.d.ts.map +0 -1
  174. package/dist/commands/context/index.js +0 -6
  175. package/dist/commands/context/index.js.map +0 -1
  176. package/dist/commands/context/status.d.ts +0 -14
  177. package/dist/commands/context/status.d.ts.map +0 -1
  178. package/dist/commands/context/status.js +0 -76
  179. package/dist/commands/context/status.js.map +0 -1
  180. package/dist/commands/failures/add.d.ts +0 -18
  181. package/dist/commands/failures/add.d.ts.map +0 -1
  182. package/dist/commands/failures/add.js +0 -66
  183. package/dist/commands/failures/add.js.map +0 -1
  184. package/dist/commands/failures/check.d.ts +0 -13
  185. package/dist/commands/failures/check.d.ts.map +0 -1
  186. package/dist/commands/failures/check.js +0 -59
  187. package/dist/commands/failures/check.js.map +0 -1
  188. package/dist/commands/failures/index.d.ts +0 -14
  189. package/dist/commands/failures/index.d.ts.map +0 -1
  190. package/dist/commands/failures/index.js +0 -14
  191. package/dist/commands/failures/index.js.map +0 -1
  192. package/dist/commands/failures/list.d.ts +0 -13
  193. package/dist/commands/failures/list.d.ts.map +0 -1
  194. package/dist/commands/failures/list.js +0 -68
  195. package/dist/commands/failures/list.js.map +0 -1
  196. package/dist/commands/failures/remove.d.ts +0 -13
  197. package/dist/commands/failures/remove.d.ts.map +0 -1
  198. package/dist/commands/failures/remove.js +0 -58
  199. package/dist/commands/failures/remove.js.map +0 -1
  200. package/dist/commands/features/add.d.ts +0 -16
  201. package/dist/commands/features/add.d.ts.map +0 -1
  202. package/dist/commands/features/add.js +0 -31
  203. package/dist/commands/features/add.js.map +0 -1
  204. package/dist/commands/features/complete.d.ts +0 -13
  205. package/dist/commands/features/complete.d.ts.map +0 -1
  206. package/dist/commands/features/complete.js +0 -76
  207. package/dist/commands/features/complete.js.map +0 -1
  208. package/dist/commands/features/index.d.ts +0 -11
  209. package/dist/commands/features/index.d.ts.map +0 -1
  210. package/dist/commands/features/index.js +0 -11
  211. package/dist/commands/features/index.js.map +0 -1
  212. package/dist/commands/features/list.d.ts +0 -14
  213. package/dist/commands/features/list.d.ts.map +0 -1
  214. package/dist/commands/features/list.js +0 -47
  215. package/dist/commands/features/list.js.map +0 -1
  216. package/dist/commands/features/remove.d.ts +0 -13
  217. package/dist/commands/features/remove.d.ts.map +0 -1
  218. package/dist/commands/features/remove.js +0 -37
  219. package/dist/commands/features/remove.js.map +0 -1
  220. package/dist/commands/features/start.d.ts +0 -12
  221. package/dist/commands/features/start.d.ts.map +0 -1
  222. package/dist/commands/features/start.js +0 -28
  223. package/dist/commands/features/start.js.map +0 -1
  224. package/dist/commands/handoff.d.ts +0 -39
  225. package/dist/commands/handoff.d.ts.map +0 -1
  226. package/dist/commands/handoff.js +0 -196
  227. package/dist/commands/handoff.js.map +0 -1
  228. package/dist/commands/playbook.d.ts +0 -46
  229. package/dist/commands/playbook.d.ts.map +0 -1
  230. package/dist/commands/playbook.js +0 -264
  231. package/dist/commands/playbook.js.map +0 -1
  232. package/dist/commands/retrieve/index.d.ts +0 -8
  233. package/dist/commands/retrieve/index.d.ts.map +0 -1
  234. package/dist/commands/retrieve/index.js +0 -8
  235. package/dist/commands/retrieve/index.js.map +0 -1
  236. package/dist/commands/retrieve/retrieve.d.ts +0 -28
  237. package/dist/commands/retrieve/retrieve.d.ts.map +0 -1
  238. package/dist/commands/retrieve/retrieve.js +0 -205
  239. package/dist/commands/retrieve/retrieve.js.map +0 -1
  240. package/dist/commands/trace.d.ts +0 -35
  241. package/dist/commands/trace.d.ts.map +0 -1
  242. package/dist/commands/trace.js +0 -187
  243. package/dist/commands/trace.js.map +0 -1
  244. package/dist/commands/watch.d.ts +0 -41
  245. package/dist/commands/watch.d.ts.map +0 -1
  246. package/dist/commands/watch.js +0 -149
  247. package/dist/commands/watch.js.map +0 -1
  248. package/dist/hooks/post-build.d.ts +0 -13
  249. package/dist/hooks/post-build.d.ts.map +0 -1
  250. package/dist/hooks/post-build.js +0 -529
  251. package/dist/hooks/post-build.js.map +0 -1
  252. package/dist/hooks/post-lint.d.ts +0 -12
  253. package/dist/hooks/post-lint.d.ts.map +0 -1
  254. package/dist/hooks/post-lint.js +0 -552
  255. package/dist/hooks/post-lint.js.map +0 -1
  256. package/dist/hooks/post-test.d.ts +0 -16
  257. package/dist/hooks/post-test.d.ts.map +0 -1
  258. package/dist/hooks/post-test.js +0 -634
  259. package/dist/hooks/post-test.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,57 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * dino-spec CLI - v10.0.0
3
+ * dino-spec CLI - v12.0.0
4
4
  *
5
5
  * Automatic context engineering for Claude Code
6
6
  *
7
- * Commands:
8
- * dino init - Analyze codebase, generate CLAUDE.md, install hooks
7
+ * Core Commands:
8
+ * dino init - Initialize, refresh, or update dino-spec
9
9
  * dino status - Show session state and context health
10
- * dino refresh - Re-analyze codebase and update context
11
10
  * dino hooks - Manage Claude Code hooks
12
11
  * dino session - Manage session state (for hooks)
13
- * dino store - Manage skills store (install, remove, list)
14
- * dino memory - Manage persistent memories (list, decay, consolidate, search, browse)
15
- * dino failures - Manage failure registry (list, add, check, remove)
16
- * dino cache - Analyze and optimize KV-cache efficiency
17
- * dino context - Analyze and optimize context window usage
18
- * dino retrieve - Hybrid file retrieval with strategy selection
19
- * dino mcp - Manage dino MCP server (setup, serve, status, health)
20
- * dino watch - Real-time file watching for auto state updates
21
- * dino hud - Manage dino-hud statusline integration
22
- * dino check - Check if updates are available
23
- * dino update - Update managed files to latest version
12
+ * dino store - Manage skills store
13
+ * dino memory - Manage persistent memories
14
+ * dino mcp - Manage MCP server
15
+ * dino setup - Configure API providers
16
+ * dino hud - Statusline integration
24
17
  *
25
- * Progressive context loading (--minimal flag on init):
26
- * dino init --minimal - Generate minimal CLAUDE.md with MCP resource references
18
+ * v12.0.0 Changes:
19
+ * - Removed: failures, features, checkpoint, cache, trace, playbook, retrieve, watch, handoff
20
+ * - Merged: refresh → init --refresh
21
+ * - Merged: update → init --update
22
+ * - Merged: provider → setup
23
+ * - Result: 83 → 35 commands (-58%)
27
24
  */
28
25
  import { Command } from 'commander';
29
26
  import chalk from 'chalk';
30
27
  import { VERSION } from '../core/config.js';
31
28
  import { getDinoHeader } from '../utils/ascii-art.js';
32
- import { initCommand, bootstrapCommand } from '../commands/init.js';
29
+ import { initCommand } from '../commands/init.js';
33
30
  import { statusCommand } from '../commands/status.js';
34
31
  import { refreshCommand } from '../commands/refresh.js';
32
+ import { updateCommand } from '../commands/update.js';
35
33
  import { hooksSetupCommand, hooksStatusCommand, hooksRemoveCommand, hooksEnableCommand, hooksDisableCommand, hooksListCommand, hooksDebugCommand, } from '../commands/hooks/index.js';
36
- import { sessionReadCommand, sessionUpdateCommand, sessionVerifyCommand } from '../commands/session.js';
34
+ import { sessionReadCommand, sessionUpdateCommand, sessionVerifyCommand, sessionCleanupCommand } from '../commands/session.js';
37
35
  import { sessionSyncCommand } from '../commands/session-sync.js';
38
36
  import { compactCommand, compactStatusCommand } from '../commands/compact.js';
39
37
  import { storeListCommand, storeInstallCommand, storeRemoveCommand, storeSyncCommand, storeSearchCommand, listFilteredSkills, } from '../commands/store/index.js';
40
- import { checkCommand, updateCommand } from '../commands/update.js';
41
38
  import { memoryListCommand, memoryStatsCommand, memoryDecayCommand, memoryConsolidateCommand, memoryReflectCommand, memoryPruneCommand, memoryRecallCommand, memorySearchCommand, memoryBrowseCommand, } from '../commands/memory/index.js';
42
- import { failuresListCommand, failuresAddCommand, failuresCheckCommand, failuresRemoveCommand, } from '../commands/failures/index.js';
43
- import { featuresListCommand, featuresAddCommand, featuresStartCommand, featuresCompleteCommand, featuresRemoveCommand, } from '../commands/features/index.js';
44
- import { cacheAnalyzeCommand, cacheStatusCommand, cacheClearCommand } from '../commands/cache/index.js';
45
- import { contextAuditCommand, contextStatusCommand } from '../commands/context/index.js';
46
- import { checkpointCreateCommand, checkpointListCommand, checkpointRestoreCommand, } from '../commands/checkpoint/index.js';
47
- import { retrieveCommand, retrieveStatusCommand, } from '../commands/retrieve/index.js';
48
39
  import { mcpServeCommand } from '../commands/mcp-serve.js';
49
40
  import { mcpSetupCommand, mcpStatusCommand, mcpRemoveCommand, mcpHealthCommand, } from '../commands/mcp.js';
50
- import { traceListCommand, traceShowCommand, traceQueryCommand, } from '../commands/trace.js';
51
- import { playbookListCommand, playbookShowCommand, playbookEvolveCommand, playbookSuggestCommand, playbookStatusCommand, } from '../commands/playbook.js';
52
- import { watchCommand, watchStatusCommand, } from '../commands/watch.js';
53
41
  import { hudInstallCommand, hudUninstallCommand, hudConfigCommand, hudPreviewCommand, hudDebugCommand, hudDebugClearCommand, } from '../commands/hud.js';
54
- import { handoffCreateCommand, handoffLoadCommand, handoffStatusCommand, handoffClearCommand, } from '../commands/handoff.js';
55
42
  import { providerAddCommand, providerListCommand, providerRemoveCommand, providerSetupCommand, providerShowCommand, } from '../commands/provider.js';
56
43
  import { setupCommand } from '../commands/setup.js';
57
44
  const program = new Command();
@@ -67,22 +54,30 @@ program.hook('preAction', (thisCommand) => {
67
54
  chalk.level = 0;
68
55
  }
69
56
  });
70
- // Init command
57
+ // Init command (v12.0.0: merged refresh and update)
71
58
  program
72
59
  .command('init [path]')
73
60
  .description('Initialize dino-spec: analyze codebase, generate CLAUDE.md, install hooks')
74
61
  .option('-f, --force', 'Force reinitialize, overwriting existing files')
75
62
  .option('-m, --minimal', 'Use minimal CLAUDE.md for progressive context loading (~67% smaller)')
76
- .option('-b, --bootstrap', 'Run bootstrap after init to generate init-context.md (v7.0.0)')
63
+ .option('-b, --bootstrap', 'Run bootstrap after init to generate init-context.md')
64
+ .option('-r, --refresh', 'Re-analyze codebase and update CLAUDE.md (was: dino refresh)')
65
+ .option('--refresh-full', 'Full regenerate instead of updating sections')
66
+ .option('-u, --update', 'Update managed files to latest version (was: dino update)')
67
+ .option('--update-scope <scope>', 'Update scope: all, skills, rules, agents, statusline, mcp', 'all')
77
68
  .action(async (targetPath = '.', options) => {
78
- await initCommand(targetPath, options);
79
- });
80
- // Bootstrap command (v7.0.0)
81
- program
82
- .command('bootstrap')
83
- .description('Generate init-context.md with project setup summary (v7.0.0)')
84
- .action(async () => {
85
- await bootstrapCommand();
69
+ if (options.refresh) {
70
+ await refreshCommand({ full: options.refreshFull, minimal: options.minimal });
71
+ }
72
+ else if (options.update) {
73
+ await updateCommand({
74
+ force: options.force,
75
+ scope: options.updateScope,
76
+ });
77
+ }
78
+ else {
79
+ await initCommand(targetPath, options);
80
+ }
86
81
  });
87
82
  // Status command
88
83
  program
@@ -92,15 +87,6 @@ program
92
87
  .action(async (options) => {
93
88
  await statusCommand(options);
94
89
  });
95
- // Refresh command
96
- program
97
- .command('refresh')
98
- .description('Re-analyze codebase and update CLAUDE.md')
99
- .option('--full', 'Full regenerate instead of updating sections')
100
- .option('-m, --minimal', 'Switch to minimal mode for progressive context loading')
101
- .action(async (options) => {
102
- await refreshCommand(options);
103
- });
104
90
  // Hooks subcommand
105
91
  const hooksCmd = program
106
92
  .command('hooks')
@@ -217,6 +203,13 @@ sessionCmd
217
203
  .action(async (options) => {
218
204
  await sessionSyncCommand(options);
219
205
  });
206
+ sessionCmd
207
+ .command('cleanup')
208
+ .description('Clean up HUD usage data - rotate old samples to archive (v12.2.0)')
209
+ .option('--json', 'Output as JSON')
210
+ .action(async (options) => {
211
+ await sessionCleanupCommand(options);
212
+ });
220
213
  // Store subcommand
221
214
  const storeCmd = program
222
215
  .command('store')
@@ -347,259 +340,13 @@ memoryCmd
347
340
  .action(async () => {
348
341
  await memoryBrowseCommand();
349
342
  });
350
- // Failures subcommand (v6.7.0)
351
- const failuresCmd = program
352
- .command('failures')
353
- .description('Manage failure registry (past errors and solutions)');
354
- failuresCmd
355
- .command('list')
356
- .description('List all recorded failures')
357
- .option('--json', 'Output as JSON')
358
- .action(async (options) => {
359
- await failuresListCommand(options);
360
- });
361
- failuresCmd
362
- .command('add <error>')
363
- .description('Add a failure to the registry')
364
- .option('--solution <text>', 'What worked instead')
365
- .option('--file <path>', 'Related file')
366
- .option('--context <text>', 'What was tried')
367
- .option('--json', 'Output as JSON')
368
- .option('--auto', 'Auto mode for hooks (silent, skip confirmation)')
369
- .action(async (error, options) => {
370
- await failuresAddCommand(error, options);
371
- });
372
- failuresCmd
373
- .command('check <text>')
374
- .description('Check for matching failures')
375
- .option('--json', 'Output as JSON')
376
- .action(async (text, options) => {
377
- await failuresCheckCommand(text, options);
378
- });
379
- failuresCmd
380
- .command('remove <id>')
381
- .description('Remove a failure from the registry')
382
- .option('--json', 'Output as JSON')
383
- .action(async (id, options) => {
384
- await failuresRemoveCommand(id, options);
385
- });
386
- // Features subcommand (v7.0.0)
387
- const featuresCmd = program
388
- .command('features')
389
- .description('Track features through their lifecycle (v7.0.0)');
390
- featuresCmd
391
- .command('list')
392
- .description('List all tracked features')
393
- .option('--status <status>', 'Filter by status (planned|in_progress|blocked|completed)')
394
- .option('--json', 'Output as JSON')
395
- .action(async (options) => {
396
- await featuresListCommand(options);
397
- });
398
- featuresCmd
399
- .command('add <name>')
400
- .description('Add a new feature')
401
- .option('-d, --description <text>', 'Feature description')
402
- .option('--dependencies <ids>', 'Comma-separated dependency feature IDs')
403
- .option('--criteria <criteria>', 'Comma-separated completion criteria')
404
- .option('-p, --priority <n>', 'Priority (1 = highest)', parseInt)
405
- .option('--json', 'Output as JSON')
406
- .action(async (name, options) => {
407
- await featuresAddCommand(name, options);
408
- });
409
- featuresCmd
410
- .command('start <id>')
411
- .description('Start working on a feature (mark as in_progress)')
412
- .option('--json', 'Output as JSON')
413
- .action(async (id, options) => {
414
- await featuresStartCommand(id, options);
415
- });
416
- featuresCmd
417
- .command('complete <id>')
418
- .description('Complete a feature (validates dependencies and criteria)')
419
- .option('-f, --force', 'Complete even with unmet criteria')
420
- .option('--json', 'Output as JSON')
421
- .action(async (id, options) => {
422
- await featuresCompleteCommand(id, options);
423
- });
424
- featuresCmd
425
- .command('remove <id>')
426
- .description('Remove a feature')
427
- .option('-f, --force', 'Skip confirmation')
428
- .option('--json', 'Output as JSON')
429
- .action(async (id, options) => {
430
- await featuresRemoveCommand(id, options);
431
- });
432
- // Checkpoint subcommand (v7.0.0)
433
- const checkpointCmd = program
434
- .command('checkpoint')
435
- .description('Git-based checkpoint management for recovery (v7.0.0)');
436
- checkpointCmd
437
- .command('create')
438
- .description('Create a new checkpoint')
439
- .option('-m, --message <text>', 'Checkpoint message')
440
- .option('--milestone <type>', 'Milestone type (session-start|tests-passing|build-passing|feature-complete|manual)')
441
- .option('--json', 'Output as JSON')
442
- .action(async (options) => {
443
- await checkpointCreateCommand(options);
444
- });
445
- checkpointCmd
446
- .command('list')
447
- .description('List all checkpoints')
448
- .option('--milestone <type>', 'Filter by milestone type')
449
- .option('--json', 'Output as JSON')
450
- .action(async (options) => {
451
- await checkpointListCommand(options);
452
- });
453
- checkpointCmd
454
- .command('restore [id]')
455
- .description('Restore to a checkpoint')
456
- .option('--last-working', 'Restore to the last checkpoint with passing tests')
457
- .option('--json', 'Output as JSON')
458
- .action(async (id, options) => {
459
- await checkpointRestoreCommand(id, options);
460
- });
461
- // Cache subcommand (v6.9.0)
462
- const cacheCmd = program
463
- .command('cache')
464
- .description('Analyze and optimize KV-cache efficiency');
465
- cacheCmd
466
- .command('analyze')
467
- .description('Analyze context files for cache-breaking patterns')
468
- .option('--json', 'Output as JSON')
469
- .action(async (options) => {
470
- await cacheAnalyzeCommand(options);
471
- });
472
- cacheCmd
473
- .command('status')
474
- .description('Show file cache statistics (v9.17.0)')
475
- .option('--json', 'Output as JSON')
476
- .action(async (options) => {
477
- await cacheStatusCommand(options);
478
- });
479
- cacheCmd
480
- .command('clear')
481
- .description('Clear file cache (v9.17.0)')
482
- .option('--json', 'Output as JSON')
483
- .action(async (options) => {
484
- await cacheClearCommand(options);
485
- });
486
- // Context subcommand (v6.9.0)
487
- const contextCmd = program
488
- .command('context')
489
- .description('Analyze and optimize context window usage');
490
- contextCmd
491
- .command('audit')
492
- .description('Audit context for compression opportunities and redundancy')
493
- .option('--json', 'Output as JSON')
494
- .action(async (options) => {
495
- await contextAuditCommand(options);
496
- });
497
- contextCmd
498
- .command('status')
499
- .description('Show context budget status with thresholds and recommendations (v9.0.0)')
500
- .option('--json', 'Output as JSON')
501
- .option('-v, --verbose', 'Show detailed consumption breakdown')
502
- .action(async (options) => {
503
- await contextStatusCommand(options);
504
- });
505
- // Trace subcommand (v9.0.0)
506
- const traceCmd = program
507
- .command('trace')
508
- .description('View and query execution traces (v9.0.0)');
509
- traceCmd
510
- .command('list')
511
- .description('List available traces')
512
- .option('--json', 'Output as JSON')
513
- .option('-l, --limit <n>', 'Number of traces to show (default: 20)', parseInt)
514
- .action(async (options) => {
515
- await traceListCommand(options);
516
- });
517
- traceCmd
518
- .command('show [traceId]')
519
- .description('Show a specific trace or the latest trace')
520
- .option('--json', 'Output as JSON')
521
- .option('-e, --events', 'Show recent events')
522
- .option('-t, --tools', 'Show tool call summary')
523
- .option('-d, --decisions', 'Show decision timeline')
524
- .action(async (traceId, options) => {
525
- await traceShowCommand(traceId, options);
526
- });
527
- traceCmd
528
- .command('query')
529
- .description('Query traces for specific events')
530
- .option('--json', 'Output as JSON')
531
- .option('--types <types>', 'Event types to filter (comma-separated)')
532
- .option('--agent-id <id>', 'Filter by agent ID')
533
- .option('--tool-name <name>', 'Filter by tool name')
534
- .option('-l, --limit <n>', 'Limit results (default: 50)', parseInt)
535
- .action(async (options) => {
536
- await traceQueryCommand(options);
537
- });
538
- // Playbook subcommand (v9.0.0)
539
- const playbookCmd = program
540
- .command('playbook')
541
- .description('Manage ACE playbooks for self-improving strategies (v9.0.0)');
542
- playbookCmd
543
- .command('list')
544
- .description('List available playbooks')
545
- .option('--json', 'Output as JSON')
546
- .action(async (options) => {
547
- await playbookListCommand(options);
548
- });
549
- playbookCmd
550
- .command('show [playbookId]')
551
- .description('Show playbook details')
552
- .option('--json', 'Output as JSON')
553
- .option('-s, --strategies', 'Show all strategies')
554
- .action(async (playbookId, options) => {
555
- await playbookShowCommand(playbookId, options);
556
- });
557
- playbookCmd
558
- .command('evolve')
559
- .description('Evolve playbook from execution traces')
560
- .option('--json', 'Output as JSON')
561
- .option('-t, --type <type>', 'Evolution type (generate|reflect|curate|full)', 'full')
562
- .option('-f, --force', 'Force evolution even if thresholds not met')
563
- .action(async (options) => {
564
- await playbookEvolveCommand(options);
565
- });
566
- playbookCmd
567
- .command('suggest <task>')
568
- .description('Suggest strategies for a task')
569
- .option('--json', 'Output as JSON')
570
- .option('--files <files>', 'Comma-separated list of involved files')
571
- .option('--phase <phase>', 'Current phase')
572
- .option('-l, --limit <n>', 'Maximum suggestions (default: 5)', parseInt)
573
- .action(async (task, options) => {
574
- await playbookSuggestCommand(task, options);
575
- });
576
- playbookCmd
577
- .command('status')
578
- .description('Show playbook system status')
579
- .option('--json', 'Output as JSON')
580
- .action(async (options) => {
581
- await playbookStatusCommand(options);
582
- });
583
- // Retrieve subcommand (v7.1.0)
584
- const retrieveCmd = program
585
- .command('retrieve [query]')
586
- .description('Hybrid file retrieval with strategy selection (v7.1.0)');
587
- retrieveCmd
588
- .option('-s, --strategy <strategy>', 'Retrieval strategy (eager|lazy|hybrid|predictive)')
589
- .option('-e, --explore', 'Enable deep exploration mode')
590
- .option('-f, --files <files...>', 'Start files for exploration')
591
- .option('-m, --max-files <n>', 'Maximum files to retrieve', parseInt)
592
- .option('--json', 'Output as JSON')
593
- .action(async (query, options) => {
594
- await retrieveCommand(query, options);
595
- });
596
- retrieveCmd
597
- .command('status')
598
- .description('Show retrieval system status and cache stats')
599
- .option('--json', 'Output as JSON')
600
- .action(async (options) => {
601
- await retrieveStatusCommand(options);
602
- });
343
+ // Failures command removed in v12.0.0 - manual error tracking not useful
344
+ // Features command removed in v12.0.0 - use memory/roadmap instead
345
+ // Checkpoint command removed in v12.0.0 - git already handles this
346
+ // Cache command removed in v12.0.0 - always empty, not useful
347
+ // Trace command removed in v12.0.0 - debugging niche, rarely used
348
+ // Playbook command removed in v12.0.0 - complex, rarely used
349
+ // Retrieve command removed in v12.0.0 - too complex, not useful
603
350
  // MCP command group (v9.1.1)
604
351
  const mcpCmd = program
605
352
  .command('mcp')
@@ -641,29 +388,7 @@ mcpCmd
641
388
  .action(async () => {
642
389
  await mcpServeCommand();
643
390
  });
644
- // Watch command (v9.0.0)
645
- const watchCmd = program
646
- .command('watch')
647
- .description('Real-time file watching for automatic state updates (v9.0.0)');
648
- watchCmd
649
- .option('--verbose', 'Show detailed change information')
650
- .option('--polling', 'Use polling instead of native events (for network drives)')
651
- .option('--poll-interval <ms>', 'Polling interval in milliseconds', parseInt)
652
- .option('--debounce <ms>', 'Debounce delay in milliseconds', parseInt)
653
- .action(async (options) => {
654
- await watchCommand({
655
- verbose: options.verbose,
656
- polling: options.polling,
657
- pollInterval: options.pollInterval,
658
- debounceDelay: options.debounce,
659
- });
660
- });
661
- watchCmd
662
- .command('status')
663
- .description('Show watcher status')
664
- .action(async () => {
665
- await watchStatusCommand();
666
- });
391
+ // Watch command removed in v12.0.0 - hooks handle file changes
667
392
  // HUD command (v9.0.1)
668
393
  const hudCmd = program
669
394
  .command('hud')
@@ -711,43 +436,13 @@ hudCmd
711
436
  .action(async () => {
712
437
  await hudDebugClearCommand();
713
438
  });
714
- // Handoff command (v9.0.2)
715
- const handoffCmd = program
716
- .command('handoff')
717
- .description('Manage session handoff context for continuity (v9.0.2)');
718
- handoffCmd
719
- .command('create')
720
- .description('Save current context for handoff')
721
- .option('-n, --notes <text>', 'Add notes for the next session')
722
- .option('--json', 'Output as JSON')
723
- .action(async (options) => {
724
- await handoffCreateCommand(options);
725
- });
726
- handoffCmd
727
- .command('load')
728
- .description('Load handoff context (used by /dino.handoff skill)')
729
- .option('--json', 'Output as JSON')
730
- .action(async (options) => {
731
- await handoffLoadCommand(options);
732
- });
733
- handoffCmd
734
- .command('status')
735
- .description('Show pending handoff status')
736
- .option('--json', 'Output as JSON')
737
- .action(async (options) => {
738
- await handoffStatusCommand(options);
739
- });
740
- handoffCmd
741
- .command('clear')
742
- .description('Clear handoff files')
743
- .option('-f, --force', 'Skip confirmation')
744
- .action(async (options) => {
745
- await handoffClearCommand(options);
746
- });
747
- // Setup command (v11.5.0) - Interactive provider setup wizard
748
- program
439
+ // Handoff command removed in v12.0.0 - AI agent handles continuity
440
+ // Setup command (v12.0.0: merged provider commands)
441
+ const setupCmd = program
749
442
  .command('setup')
750
- .description('Interactive wizard to configure Claude Code providers (v11.5.0)')
443
+ .description('Configure Claude Code providers and API settings');
444
+ // Default action: interactive wizard
445
+ setupCmd
751
446
  .option('--provider <name>', 'Provider name (for non-interactive mode)')
752
447
  .option('--key <key>', 'API key (for non-interactive mode)')
753
448
  .option('--url <url>', 'Base URL (auto-detected for known providers)')
@@ -761,40 +456,37 @@ program
761
456
  .action(async (options) => {
762
457
  await setupCommand(options);
763
458
  });
764
- // Provider command (v11.4.0) - Full provider management with model support
765
- const providerCmd = program
766
- .command('provider')
767
- .description('Manage API providers for Claude Code (v11.4.0)');
768
- providerCmd
459
+ // Provider subcommands merged into setup
460
+ setupCmd
769
461
  .command('add <name>')
770
462
  .description('Add a provider (e.g., zai, anthropic, minimax)')
771
463
  .option('--key <key>', 'API key (required)')
772
464
  .option('--url <url>', 'Base URL (auto-detected for known providers)')
773
465
  .option('--model <model>', 'Default model (ANTHROPIC_MODEL)')
774
- .option('--haiku <model>', 'Haiku-class model (ANTHROPIC_DEFAULT_HAIKU_MODEL)')
775
- .option('--sonnet <model>', 'Sonnet-class model (ANTHROPIC_DEFAULT_SONNET_MODEL)')
776
- .option('--opus <model>', 'Opus-class model (ANTHROPIC_DEFAULT_OPUS_MODEL)')
466
+ .option('--haiku <model>', 'Haiku-class model')
467
+ .option('--sonnet <model>', 'Sonnet-class model')
468
+ .option('--opus <model>', 'Opus-class model')
777
469
  .option('--disable-nonessential-traffic', 'Disable telemetry, updates, error reporting')
778
470
  .option('--auth-token', 'Use Bearer token auth instead of API key')
779
471
  .option('--json', 'Output as JSON')
780
472
  .action(async (name, options) => {
781
473
  await providerAddCommand(name, options);
782
474
  });
783
- providerCmd
475
+ setupCmd
784
476
  .command('list')
785
477
  .description('List configured providers')
786
478
  .option('--json', 'Output as JSON')
787
479
  .action(async (options) => {
788
480
  await providerListCommand(options);
789
481
  });
790
- providerCmd
482
+ setupCmd
791
483
  .command('show <name>')
792
484
  .description('Show provider details and environment variables')
793
485
  .option('--json', 'Output as JSON')
794
486
  .action(async (name, options) => {
795
487
  await providerShowCommand(name, options);
796
488
  });
797
- providerCmd
489
+ setupCmd
798
490
  .command('remove <name>')
799
491
  .description('Remove a provider')
800
492
  .option('-f, --force', 'Skip confirmation')
@@ -802,36 +494,15 @@ providerCmd
802
494
  .action(async (name, options) => {
803
495
  await providerRemoveCommand(name, options);
804
496
  });
805
- providerCmd
806
- .command('setup')
497
+ setupCmd
498
+ .command('shell')
807
499
  .description('Generate shell functions for your $PROFILE')
808
500
  .option('-s, --shell <shell>', 'Shell type: powershell, bash (auto-detected)')
809
501
  .option('--json', 'Output as JSON')
810
502
  .action(async (options) => {
811
503
  await providerSetupCommand(options);
812
504
  });
813
- // Check command
814
- program
815
- .command('check')
816
- .description('Check if updates are available')
817
- .option('--json', 'Output as JSON')
818
- .action(async (options) => {
819
- await checkCommand(options);
820
- });
821
- // Update command
822
- program
823
- .command('update')
824
- .description('Update managed files to latest version')
825
- .option('--dry-run', 'Preview changes without applying')
826
- .option('-f, --force', 'Update even customized files')
827
- .option('--scope <scope>', 'Update scope: all, skills, rules, agents, statusline, mcp', 'all')
828
- .action(async (options) => {
829
- await updateCommand({
830
- dryRun: options.dryRun,
831
- force: options.force,
832
- scope: options.scope,
833
- });
834
- });
505
+ // Update command removed in v12.0.0 - use: dino init --update
835
506
  // Parse and execute
836
507
  program.parse();
837
508
  //# sourceMappingURL=index.js.map