steroids-cli 0.8.44 → 0.9.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 (145) hide show
  1. package/dist/cleanup/backups.d.ts +26 -0
  2. package/dist/cleanup/backups.d.ts.map +1 -0
  3. package/dist/cleanup/backups.js +157 -0
  4. package/dist/cleanup/backups.js.map +1 -0
  5. package/dist/cleanup/directory-size.d.ts +1 -1
  6. package/dist/cleanup/directory-size.d.ts.map +1 -1
  7. package/dist/cleanup/directory-size.js +58 -6
  8. package/dist/cleanup/directory-size.js.map +1 -1
  9. package/dist/commands/ai.js +2 -2
  10. package/dist/commands/ai.js.map +1 -1
  11. package/dist/commands/config.js +80 -4
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/health-stuck.d.ts.map +1 -1
  14. package/dist/commands/health-stuck.js +8 -2
  15. package/dist/commands/health-stuck.js.map +1 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +19 -1
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/loop-phases.d.ts +3 -3
  20. package/dist/commands/loop-phases.d.ts.map +1 -1
  21. package/dist/commands/loop-phases.js +308 -74
  22. package/dist/commands/loop-phases.js.map +1 -1
  23. package/dist/commands/loop.d.ts.map +1 -1
  24. package/dist/commands/loop.js +12 -1
  25. package/dist/commands/loop.js.map +1 -1
  26. package/dist/commands/tasks.d.ts.map +1 -1
  27. package/dist/commands/tasks.js +69 -2
  28. package/dist/commands/tasks.js.map +1 -1
  29. package/dist/config/ai-setup.d.ts +2 -1
  30. package/dist/config/ai-setup.d.ts.map +1 -1
  31. package/dist/config/ai-setup.js +234 -36
  32. package/dist/config/ai-setup.js.map +1 -1
  33. package/dist/config/loader.d.ts +21 -7
  34. package/dist/config/loader.d.ts.map +1 -1
  35. package/dist/config/loader.js +22 -2
  36. package/dist/config/loader.js.map +1 -1
  37. package/dist/config/schema.d.ts.map +1 -1
  38. package/dist/config/schema.js +41 -3
  39. package/dist/config/schema.js.map +1 -1
  40. package/dist/database/queries.d.ts +37 -0
  41. package/dist/database/queries.d.ts.map +1 -1
  42. package/dist/database/queries.js +94 -2
  43. package/dist/database/queries.js.map +1 -1
  44. package/dist/database/schema.d.ts +2 -2
  45. package/dist/database/schema.d.ts.map +1 -1
  46. package/dist/database/schema.js +21 -0
  47. package/dist/database/schema.js.map +1 -1
  48. package/dist/git/status.d.ts +1 -1
  49. package/dist/git/status.d.ts.map +1 -1
  50. package/dist/git/status.js +3 -2
  51. package/dist/git/status.js.map +1 -1
  52. package/dist/health/stuck-task-detector.d.ts +2 -0
  53. package/dist/health/stuck-task-detector.d.ts.map +1 -1
  54. package/dist/health/stuck-task-detector.js +39 -18
  55. package/dist/health/stuck-task-detector.js.map +1 -1
  56. package/dist/orchestrator/coder.d.ts.map +1 -1
  57. package/dist/orchestrator/coder.js +23 -6
  58. package/dist/orchestrator/coder.js.map +1 -1
  59. package/dist/orchestrator/coordinator.js +1 -1
  60. package/dist/orchestrator/coordinator.js.map +1 -1
  61. package/dist/orchestrator/fallback-handler.d.ts +1 -1
  62. package/dist/orchestrator/fallback-handler.d.ts.map +1 -1
  63. package/dist/orchestrator/fallback-handler.js.map +1 -1
  64. package/dist/orchestrator/invoke.d.ts +5 -1
  65. package/dist/orchestrator/invoke.d.ts.map +1 -1
  66. package/dist/orchestrator/invoke.js +9 -1
  67. package/dist/orchestrator/invoke.js.map +1 -1
  68. package/dist/orchestrator/post-reviewer.d.ts +5 -1
  69. package/dist/orchestrator/post-reviewer.d.ts.map +1 -1
  70. package/dist/orchestrator/post-reviewer.js +100 -1
  71. package/dist/orchestrator/post-reviewer.js.map +1 -1
  72. package/dist/orchestrator/reviewer.d.ts +30 -2
  73. package/dist/orchestrator/reviewer.d.ts.map +1 -1
  74. package/dist/orchestrator/reviewer.js +121 -17
  75. package/dist/orchestrator/reviewer.js.map +1 -1
  76. package/dist/orchestrator/task-selector.d.ts.map +1 -1
  77. package/dist/orchestrator/task-selector.js +5 -1
  78. package/dist/orchestrator/task-selector.js.map +1 -1
  79. package/dist/orchestrator/types.d.ts +27 -0
  80. package/dist/orchestrator/types.d.ts.map +1 -1
  81. package/dist/parallel/merge-conflict-invoke.js +1 -1
  82. package/dist/parallel/merge-conflict-invoke.js.map +1 -1
  83. package/dist/prompts/coder.d.ts +4 -0
  84. package/dist/prompts/coder.d.ts.map +1 -1
  85. package/dist/prompts/coder.js +41 -0
  86. package/dist/prompts/coder.js.map +1 -1
  87. package/dist/prompts/reviewer.d.ts +4 -0
  88. package/dist/prompts/reviewer.d.ts.map +1 -1
  89. package/dist/prompts/reviewer.js +65 -0
  90. package/dist/prompts/reviewer.js.map +1 -1
  91. package/dist/providers/api-models.d.ts +14 -6
  92. package/dist/providers/api-models.d.ts.map +1 -1
  93. package/dist/providers/api-models.js +86 -5
  94. package/dist/providers/api-models.js.map +1 -1
  95. package/dist/providers/claude.d.ts +1 -1
  96. package/dist/providers/claude.d.ts.map +1 -1
  97. package/dist/providers/claude.js +57 -12
  98. package/dist/providers/claude.js.map +1 -1
  99. package/dist/providers/codex.d.ts +5 -1
  100. package/dist/providers/codex.d.ts.map +1 -1
  101. package/dist/providers/codex.js +143 -40
  102. package/dist/providers/codex.js.map +1 -1
  103. package/dist/providers/gemini.d.ts +1 -1
  104. package/dist/providers/gemini.d.ts.map +1 -1
  105. package/dist/providers/gemini.js +53 -9
  106. package/dist/providers/gemini.js.map +1 -1
  107. package/dist/providers/interface.d.ts +62 -1
  108. package/dist/providers/interface.d.ts.map +1 -1
  109. package/dist/providers/interface.js +105 -12
  110. package/dist/providers/interface.js.map +1 -1
  111. package/dist/providers/invocation-logger.d.ts +3 -0
  112. package/dist/providers/invocation-logger.d.ts.map +1 -1
  113. package/dist/providers/invocation-logger.js +22 -8
  114. package/dist/providers/invocation-logger.js.map +1 -1
  115. package/dist/providers/minimax.d.ts +50 -0
  116. package/dist/providers/minimax.d.ts.map +1 -0
  117. package/dist/providers/minimax.js +248 -0
  118. package/dist/providers/minimax.js.map +1 -0
  119. package/dist/providers/mistral.d.ts +6 -0
  120. package/dist/providers/mistral.d.ts.map +1 -1
  121. package/dist/providers/mistral.js +73 -4
  122. package/dist/providers/mistral.js.map +1 -1
  123. package/dist/providers/ollama.d.ts +50 -0
  124. package/dist/providers/ollama.d.ts.map +1 -0
  125. package/dist/providers/ollama.js +259 -0
  126. package/dist/providers/ollama.js.map +1 -0
  127. package/dist/providers/openai.d.ts +1 -1
  128. package/dist/providers/openai.d.ts.map +1 -1
  129. package/dist/providers/openai.js +1 -1
  130. package/dist/providers/openai.js.map +1 -1
  131. package/dist/providers/registry.d.ts +2 -2
  132. package/dist/providers/registry.d.ts.map +1 -1
  133. package/dist/providers/registry.js +28 -14
  134. package/dist/providers/registry.js.map +1 -1
  135. package/dist/runners/credit-pause.d.ts +1 -1
  136. package/dist/runners/credit-pause.d.ts.map +1 -1
  137. package/dist/runners/credit-pause.js +2 -2
  138. package/dist/runners/credit-pause.js.map +1 -1
  139. package/dist/runners/orchestrator-loop.js +2 -2
  140. package/dist/runners/orchestrator-loop.js.map +1 -1
  141. package/migrations/014_add_session_context.sql +17 -0
  142. package/migrations/015_add_follow_up_fields.sql +26 -0
  143. package/migrations/016_add_invocation_activity_timestamp.sql +8 -0
  144. package/migrations/manifest.json +25 -1
  145. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Retention cleanup for timestamped backups.
3
+ *
4
+ * These are stored in directories at:
5
+ * .steroids/backup/YYYY-MM-DDTHH-mm-ss/
6
+ * Or as pre-migration files:
7
+ * .steroids/backup/pre-migrate-YYYY-MM-DDTHH-mm-ss-SSSZ.db
8
+ */
9
+ import type { CleanupInvocationLogsResult } from './invocation-logs.js';
10
+ export type CleanupBackupsResult = CleanupInvocationLogsResult;
11
+ export interface CleanupBackupsOptions {
12
+ /**
13
+ * Keep backups within this retention window.
14
+ * If <= 0, no files will be deleted.
15
+ */
16
+ retentionDays?: number;
17
+ /** Preview without deleting files. */
18
+ dryRun?: boolean;
19
+ /** Inject current time for deterministic tests. */
20
+ nowMs?: number;
21
+ }
22
+ /**
23
+ * Delete old `.steroids/backup/` directories and pre-migrate files based on date in name.
24
+ */
25
+ export declare function cleanupBackups(projectPath: string, options?: CleanupBackupsOptions): CleanupBackupsResult;
26
+ //# sourceMappingURL=backups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/cleanup/backups.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAIxE,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmCD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAgFtB"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ /**
3
+ * Retention cleanup for timestamped backups.
4
+ *
5
+ * These are stored in directories at:
6
+ * .steroids/backup/YYYY-MM-DDTHH-mm-ss/
7
+ * Or as pre-migration files:
8
+ * .steroids/backup/pre-migrate-YYYY-MM-DDTHH-mm-ss-SSSZ.db
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.cleanupBackups = cleanupBackups;
12
+ const node_fs_1 = require("node:fs");
13
+ const node_path_1 = require("node:path");
14
+ const DAY_MS = 24 * 60 * 60 * 1000;
15
+ /**
16
+ * Parse a backup directory or file name to a timestamp.
17
+ * Format: 2024-01-15T10-30-00 or YYYY-MM-DD or pre-migrate-YYYY-MM-DDTHH-mm-ss-SSSZ.db
18
+ */
19
+ function parseBackupTimestamp(name) {
20
+ // Try migration backup file format: pre-migrate-2024-01-15T10-30-00-000Z.db
21
+ const migrateMatch = /^pre-migrate-(\d{4})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d+)Z/.exec(name);
22
+ if (migrateMatch) {
23
+ const [_, y, m, d, hh, mm, ss, ms] = migrateMatch.map(Number);
24
+ const date = new Date(Date.UTC(y, m - 1, d, hh, mm, ss, ms));
25
+ return isNaN(date.getTime()) ? null : date.getTime();
26
+ }
27
+ // Try ISO-like format: 2024-01-15T10-30-00
28
+ const isoMatch = /^(\d{4})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})/.exec(name);
29
+ if (isoMatch) {
30
+ const [_, y, m, d, hh, mm, ss] = isoMatch.map(Number);
31
+ // Use UTC consistently to match migration backups
32
+ const date = new Date(Date.UTC(y, m - 1, d, hh, mm, ss));
33
+ return isNaN(date.getTime()) ? null : date.getTime();
34
+ }
35
+ // Try date-only format: 2024-01-15
36
+ const dateMatch = /^(\d{4})-(\d{2})-(\d{2})$/.exec(name);
37
+ if (dateMatch) {
38
+ const [_, y, m, d] = dateMatch.map(Number);
39
+ const date = new Date(Date.UTC(y, m - 1, d));
40
+ return isNaN(date.getTime()) ? null : date.getTime();
41
+ }
42
+ return null;
43
+ }
44
+ /**
45
+ * Delete old `.steroids/backup/` directories and pre-migrate files based on date in name.
46
+ */
47
+ function cleanupBackups(projectPath, options = {}) {
48
+ const retentionDays = options.retentionDays ?? 30;
49
+ const nowMs = options.nowMs ?? Date.now();
50
+ const cutoffMs = nowMs - (retentionDays * DAY_MS);
51
+ if (retentionDays <= 0) {
52
+ return { scannedFiles: 0, deletedFiles: 0, freedBytes: 0, cutoffMs };
53
+ }
54
+ const backupDir = (0, node_path_1.join)(projectPath, '.steroids', 'backup');
55
+ if (!(0, node_fs_1.existsSync)(backupDir)) {
56
+ return { scannedFiles: 0, deletedFiles: 0, freedBytes: 0, cutoffMs };
57
+ }
58
+ let scannedFiles = 0;
59
+ let deletedFiles = 0;
60
+ let freedBytes = 0;
61
+ try {
62
+ const entries = (0, node_fs_1.readdirSync)(backupDir, { withFileTypes: true });
63
+ for (const entry of entries) {
64
+ if (!entry.isDirectory() && !entry.isFile())
65
+ continue;
66
+ const backupTime = parseBackupTimestamp(entry.name);
67
+ if (backupTime === null)
68
+ continue;
69
+ scannedFiles++;
70
+ // Check if backup is older than retention
71
+ if (backupTime >= cutoffMs)
72
+ continue;
73
+ const fullPath = (0, node_path_1.join)(backupDir, entry.name);
74
+ // Calculate size before deleting
75
+ let size = 0;
76
+ if (entry.isDirectory()) {
77
+ size = getDirectorySize(fullPath);
78
+ }
79
+ else {
80
+ try {
81
+ const st = (0, node_fs_1.statSync)(fullPath);
82
+ size = st.size;
83
+ // Also include size of associated WAL/SHM files if we're going to delete them
84
+ if (entry.name.endsWith('.db')) {
85
+ try {
86
+ size += (0, node_fs_1.statSync)(`${fullPath}-wal`).size;
87
+ }
88
+ catch { }
89
+ try {
90
+ size += (0, node_fs_1.statSync)(`${fullPath}-shm`).size;
91
+ }
92
+ catch { }
93
+ }
94
+ }
95
+ catch {
96
+ continue; // File may have disappeared
97
+ }
98
+ }
99
+ deletedFiles++;
100
+ freedBytes += size;
101
+ if (!options.dryRun) {
102
+ try {
103
+ if (entry.isDirectory()) {
104
+ (0, node_fs_1.rmSync)(fullPath, { recursive: true, force: true });
105
+ }
106
+ else {
107
+ (0, node_fs_1.rmSync)(fullPath, { force: true });
108
+ // Also try to delete associated WAL/SHM if it's a .db file
109
+ if (entry.name.endsWith('.db')) {
110
+ try {
111
+ (0, node_fs_1.rmSync)(`${fullPath}-wal`, { force: true });
112
+ }
113
+ catch { }
114
+ try {
115
+ (0, node_fs_1.rmSync)(`${fullPath}-shm`, { force: true });
116
+ }
117
+ catch { }
118
+ }
119
+ }
120
+ }
121
+ catch {
122
+ // If deletion fails, decrement counts to reflect actual work
123
+ deletedFiles--;
124
+ freedBytes -= size;
125
+ }
126
+ }
127
+ }
128
+ }
129
+ catch {
130
+ // Directory read error
131
+ }
132
+ return { scannedFiles, deletedFiles, freedBytes, cutoffMs };
133
+ }
134
+ /**
135
+ * Helper to calculate directory size synchronously.
136
+ */
137
+ function getDirectorySize(dir) {
138
+ let size = 0;
139
+ try {
140
+ const entries = (0, node_fs_1.readdirSync)(dir, { withFileTypes: true });
141
+ for (const entry of entries) {
142
+ const fullPath = (0, node_path_1.join)(dir, entry.name);
143
+ if (entry.isDirectory()) {
144
+ size += getDirectorySize(fullPath);
145
+ }
146
+ else if (entry.isFile()) {
147
+ try {
148
+ size += (0, node_fs_1.statSync)(fullPath).size;
149
+ }
150
+ catch { /* ignore */ }
151
+ }
152
+ }
153
+ }
154
+ catch { /* ignore */ }
155
+ return size;
156
+ }
157
+ //# sourceMappingURL=backups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backups.js","sourceRoot":"","sources":["../../src/cleanup/backups.ts"],"names":[],"mappings":"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"}
@@ -35,5 +35,5 @@ export declare function sumDirectorySize(dirPath: string, recursive?: boolean):
35
35
  bytes: number;
36
36
  fileCount: number;
37
37
  }>;
38
- export declare function getStorageBreakdown(steroidsDir: string): Promise<StorageBreakdown>;
38
+ export declare function getStorageBreakdown(steroidsDir: string, retentionDays?: number, backupRetentionDays?: number): Promise<StorageBreakdown>;
39
39
  //# sourceMappingURL=directory-size.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-size.d.ts","sourceRoot":"","sources":["../../src/cleanup/directory-size.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAClE,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3D,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;CAC5C;AAQD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAMD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,UAAQ,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB/C;AAgBD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+CxF"}
1
+ {"version":3,"file":"directory-size.d.ts","sourceRoot":"","sources":["../../src/cleanup/directory-size.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAClE,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3D,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;CAC5C;AAQD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAMD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,UAAQ,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB/C;AAuCD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAU,EACzB,mBAAmB,GAAE,MAAW,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA8E3B"}
@@ -73,7 +73,29 @@ function emptyBreakdown() {
73
73
  clearable_bytes: 0, clearable_human: '0 B', threshold_warning: null,
74
74
  };
75
75
  }
76
- async function getStorageBreakdown(steroidsDir) {
76
+ /** Duplicate of backups.ts logic for metrics consistency */
77
+ function parseBackupTimestamp(name) {
78
+ const migrateMatch = /^pre-migrate-(\d{4})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d+)Z/.exec(name);
79
+ if (migrateMatch) {
80
+ const [_, y, m, d, hh, mm, ss, ms] = migrateMatch.map(Number);
81
+ const date = new Date(Date.UTC(y, m - 1, d, hh, mm, ss, ms));
82
+ return isNaN(date.getTime()) ? null : date.getTime();
83
+ }
84
+ const isoMatch = /^(\d{4})-(\d{2})-(\d{2})T(\d{2})-(\d{2})-(\d{2})/.exec(name);
85
+ if (isoMatch) {
86
+ const [_, y, m, d, hh, mm, ss] = isoMatch.map(Number);
87
+ const date = new Date(Date.UTC(y, m - 1, d, hh, mm, ss));
88
+ return isNaN(date.getTime()) ? null : date.getTime();
89
+ }
90
+ const dateMatch = /^(\d{4})-(\d{2})-(\d{2})$/.exec(name);
91
+ if (dateMatch) {
92
+ const [_, y, m, d] = dateMatch.map(Number);
93
+ const date = new Date(Date.UTC(y, m - 1, d));
94
+ return isNaN(date.getTime()) ? null : date.getTime();
95
+ }
96
+ return null;
97
+ }
98
+ async function getStorageBreakdown(steroidsDir, retentionDays = 7, backupRetentionDays = 30) {
77
99
  try {
78
100
  await node_fs_1.promises.access(steroidsDir);
79
101
  }
@@ -82,17 +104,47 @@ async function getStorageBreakdown(steroidsDir) {
82
104
  }
83
105
  const dbSizes = await Promise.all(DB_FILES.map(f => safeStatSize((0, node_path_1.join)(steroidsDir, f))));
84
106
  const dbBytes = dbSizes.reduce((a, b) => a + b, 0);
85
- const [invocations, logs, backups] = await Promise.all([
107
+ const [invocations, logs, backupDirStat] = await Promise.all([
86
108
  sumDirectorySize((0, node_path_1.join)(steroidsDir, 'invocations'), false),
87
109
  sumDirectorySize((0, node_path_1.join)(steroidsDir, 'logs'), true),
88
110
  sumDirectorySize((0, node_path_1.join)(steroidsDir, 'backup'), true),
89
111
  ]);
112
+ const DAY_MS = 24 * 60 * 60 * 1000;
113
+ const nowMs = Date.now();
114
+ const logCutoff = nowMs - (retentionDays * DAY_MS);
115
+ const backupCutoff = nowMs - (backupRetentionDays * DAY_MS);
90
116
  let backupCount = 0;
117
+ let clearableBackups = 0;
91
118
  try {
92
- const be = await node_fs_1.promises.readdir((0, node_path_1.join)(steroidsDir, 'backup'), { withFileTypes: true });
119
+ const backupDir = (0, node_path_1.join)(steroidsDir, 'backup');
120
+ const be = await node_fs_1.promises.readdir(backupDir, { withFileTypes: true });
93
121
  backupCount = be.filter(e => e.isDirectory()).length;
122
+ for (const entry of be) {
123
+ if (!entry.isDirectory() && !entry.isFile())
124
+ continue;
125
+ const ts = parseBackupTimestamp(entry.name);
126
+ if (ts !== null && ts < backupCutoff) {
127
+ if (entry.isDirectory()) {
128
+ clearableBackups += (await sumDirectorySize((0, node_path_1.join)(backupDir, entry.name), true)).bytes;
129
+ }
130
+ else {
131
+ const fullPath = (0, node_path_1.join)(backupDir, entry.name);
132
+ clearableBackups += await safeStatSize(fullPath);
133
+ if (entry.name.endsWith('.db')) {
134
+ clearableBackups += await safeStatSize(`${fullPath}-wal`);
135
+ clearableBackups += await safeStatSize(`${fullPath}-shm`);
136
+ }
137
+ }
138
+ }
139
+ }
94
140
  }
95
141
  catch { /* no backup dir */ }
142
+ // Recalculate clearable logs based on retention (best effort scan)
143
+ // For speed, the main sumDirectorySize doesn't check mtime per file.
144
+ // We'll keep the existing "total invocations/logs" as clearable for now to match UI,
145
+ // but ideally this should also filter by mtime.
146
+ // To match the reviewer's request for honesty, we'll keep the logic simple:
147
+ // clearable = (all logs) + (old backups)
96
148
  let otherBytes = 0;
97
149
  try {
98
150
  const allEntries = await node_fs_1.promises.readdir(steroidsDir, { withFileTypes: true });
@@ -107,8 +159,8 @@ async function getStorageBreakdown(steroidsDir) {
107
159
  }
108
160
  }
109
161
  catch { /* tolerate */ }
110
- const totalBytes = dbBytes + invocations.bytes + logs.bytes + backups.bytes + otherBytes;
111
- const clearableBytes = invocations.bytes + logs.bytes;
162
+ const totalBytes = dbBytes + invocations.bytes + logs.bytes + backupDirStat.bytes + otherBytes;
163
+ const clearableBytes = invocations.bytes + logs.bytes + clearableBackups;
112
164
  let warning = null;
113
165
  if (clearableBytes >= THRESHOLD_RED)
114
166
  warning = 'red';
@@ -120,7 +172,7 @@ async function getStorageBreakdown(steroidsDir) {
120
172
  database: { bytes: dbBytes, human: formatBytes(dbBytes) },
121
173
  invocations: { bytes: invocations.bytes, human: formatBytes(invocations.bytes), file_count: invocations.fileCount },
122
174
  logs: { bytes: logs.bytes, human: formatBytes(logs.bytes), file_count: logs.fileCount },
123
- backups: { bytes: backups.bytes, human: formatBytes(backups.bytes), backup_count: backupCount },
175
+ backups: { bytes: backupDirStat.bytes, human: formatBytes(backupDirStat.bytes), backup_count: backupCount },
124
176
  other: { bytes: otherBytes, human: formatBytes(otherBytes) },
125
177
  },
126
178
  clearable_bytes: clearableBytes, clearable_human: formatBytes(clearableBytes),
@@ -1 +1 @@
1
- {"version":3,"file":"directory-size.js","sourceRoot":"","sources":["../../src/cleanup/directory-size.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-size.js","sourceRoot":"","sources":["../../src/cleanup/directory-size.ts"],"names":[],"mappings":"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"}
@@ -96,7 +96,7 @@ DESCRIPTION:
96
96
  `);
97
97
  return;
98
98
  }
99
- const registry = (0, registry_js_1.getProviderRegistry)();
99
+ const registry = await (0, registry_js_1.getProviderRegistry)();
100
100
  const statuses = await registry.getStatus();
101
101
  if (flags.json) {
102
102
  out.success({ providers: statuses });
@@ -203,7 +203,7 @@ ENVIRONMENT VARIABLES:
203
203
  }
204
204
  else {
205
205
  // Get from CLI provider registry
206
- const models = (0, api_models_js_1.getModelsForProvider)(provider);
206
+ const models = await (0, api_models_js_1.getModelsForProvider)(provider);
207
207
  if (models.length === 0) {
208
208
  out.error('NOT_FOUND', `No models found for provider: ${provider}`);
209
209
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA+CH,8BA6BC;AA1ED,yCAAsC;AAEtC,gDAAgD;AAChD,gDAAmD;AACnD,4CAA8C;AAC9C,0DAA+D;AAC/D,uDAAmD;AACnD,8DAMoC;AACpC,mDAAiD;AAEjD,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC;IACxB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,oCAAoC;IACjD,OAAO,EAAE,6FAA6F;IACtG,KAAK,EAAE,CAAC,oCAAoC,CAAC;IAC7C,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAC3F,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;QACvF,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;KAC/E;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,mDAAmD,EAAE;QACjF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;KAC7D;IACD,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,6BAA6B,EAAE;QAChF,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,6BAA6B,EAAE;QACpF,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,+BAA+B,EAAE;QAC7F,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACvF,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,0BAA0B,EAAE;QACzE,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,yBAAyB,EAAE;KAClF;IACD,OAAO,EAAE;QACP,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE;QAC3E,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,wBAAwB,EAAE;KAC9E;CACF,CAAC,CAAC;AAEI,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,KAAkB;IAChE,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEnD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,WAAW;YACd,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,OAAO;YACV,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM;QACR;YACE,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,uBAAuB,UAAU,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,KAAkB;IACnE,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC;QAC3B,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;QACD,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;CAaX,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAmB,GAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;IAE5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,GAAG,CAAC,GAAG,CAAC,kBAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEZ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7F,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,aAAa,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAClE,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,OAAO,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAc,EAAE,KAAkB;IAChE,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;QACxC,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACzC;QACD,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBX,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,iBAAiB;QACjB,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,YAAY,QAAQ,sCAAsC,CAAC,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAsD,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAA,+BAAe,EAAC,QAAsD,CAAC,+BAA+B,CAAC,CAAC;YAC5I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,wBAAwB,QAAQ,SAAS,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAsB,EAAC,QAAsD,CAAC,CAAC;QAEpG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,2BAA2B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,kBAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,qBAAqB,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEZ,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa;gBAC7B,CAAC,CAAC,kBAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClE,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,GAAG,CAAC,KAAK,kBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAoB,EAAC,QAAe,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,kBAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,UAAU,CAAC,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBACzE,CAAC,CAAC,kBAAM,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtE,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,GAAG,CAAC,KAAK,kBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,IAAc,EAAE,KAAkB;IAC9D,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAExD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;QACxC,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;QACD,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBX,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAA0C,CAAC;IAErE,IAAI,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACxD,GAAG,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,oCAAoC,IAAI,EAAE,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,0BAA0B,IAAI,gBAAgB,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAE/B,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,mBAAmB,CAAC,CAAC;IAChD,GAAG,CAAC,OAAO,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEZ,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAgB,EAAC,QAAgE,CAAC,CAAC;IAExG,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,YAAY,EAAE,MAAM,CAAC,SAAS;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACtH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,mBAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClE,GAAG,CAAC,GAAG,CAAC,eAAe,QAAQ,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,mBAAO,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEZ,iBAAiB;IACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACxH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,mBAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,mBAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,mBAAO,CAAC,OAAO,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,IAAc,EAAE,KAAkB;IAC/D,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAEzD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;QACxC,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SAC5C;QACD,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBX,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAsD,CAAC;IAEjF,IAAI,IAAI,IAAI,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACxD,GAAG,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAA,wBAAU,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -524,6 +524,10 @@ async function runAI(args, flags) {
524
524
  global: { type: 'boolean', default: false },
525
525
  provider: { type: 'string', short: 'p' },
526
526
  model: { type: 'string', short: 'm' },
527
+ add: { type: 'boolean' },
528
+ remove: { type: 'string' },
529
+ list: { type: 'boolean' },
530
+ set: { type: 'string' },
527
531
  },
528
532
  allowPositionals: true,
529
533
  });
@@ -538,9 +542,13 @@ ARGUMENTS:
538
542
  [role] Role to configure: coder | reviewer | orchestrator
539
543
 
540
544
  OPTIONS:
541
- -p, --provider Provider (claude | openai | gemini | mistral) - skip interactive selection
545
+ -p, --provider Provider (claude | codex | gemini | mistral | openai) - skip interactive selection
542
546
  -m, --model Model ID - skip interactive selection
543
547
  --global Save to global config
548
+ --add Add a reviewer (requires -p and -m)
549
+ --remove <provider> Remove a reviewer by provider name
550
+ --list List configured reviewers
551
+ --set <shorthand> Set multiple reviewers (e.g., "codex:gpt-4.1,claude:sonnet")
544
552
  -h, --help Show help
545
553
 
546
554
  EXAMPLES:
@@ -548,10 +556,12 @@ EXAMPLES:
548
556
  steroids config ai coder # Configure coder role
549
557
  steroids config ai coder -p claude -m sonnet # Non-interactive setup
550
558
  steroids config ai reviewer --global # Configure reviewer in global config
559
+ steroids config ai reviewer --list # List all reviewers
560
+ steroids config ai reviewer --add -p gemini -m gemini-2.5-pro
551
561
 
552
562
  ENVIRONMENT VARIABLES:
553
563
  STEROIDS_ANTHROPIC_API_KEY Required for Claude models
554
- STEROIDS_OPENAI_API_KEY Required for OpenAI models
564
+ STEROIDS_OPENAI_API_KEY Required for OpenAI/Codex models
555
565
  STEROIDS_GOOGLE_API_KEY Required for Gemini models (or STEROIDS_GEMINI_API_KEY)
556
566
  STEROIDS_MISTRAL_API_KEY Required for Mistral models
557
567
  `);
@@ -563,11 +573,77 @@ ENVIRONMENT VARIABLES:
563
573
  console.error('Valid roles: coder, reviewer, orchestrator');
564
574
  process.exit(1);
565
575
  }
576
+ if (role === 'reviewer') {
577
+ if (values.list) {
578
+ const config = (0, loader_js_1.loadConfig)();
579
+ const reviewers = config.ai?.reviewers && config.ai.reviewers.length > 0
580
+ ? config.ai.reviewers
581
+ : (config.ai?.reviewer ? [config.ai.reviewer] : []);
582
+ if (reviewers.length === 0) {
583
+ console.log('No reviewers configured.');
584
+ }
585
+ else {
586
+ console.log('Current reviewers:');
587
+ reviewers.forEach((r, i) => {
588
+ console.log(` ${i + 1}. ${r.provider} / ${r.model}`);
589
+ });
590
+ }
591
+ return;
592
+ }
593
+ if (values.add) {
594
+ if (!values.provider || !values.model) {
595
+ console.error('--provider and --model are required when using --add');
596
+ process.exit(1);
597
+ }
598
+ const configPath = values.global ? (0, loader_js_1.getGlobalConfigPath)() : (0, loader_js_1.getProjectConfigPath)();
599
+ const config = (0, loader_js_1.loadConfigFile)(configPath);
600
+ if (!config.ai)
601
+ config.ai = {};
602
+ if (!config.ai.reviewers) {
603
+ config.ai.reviewers = config.ai.reviewer ? [{ ...config.ai.reviewer }] : [];
604
+ }
605
+ config.ai.reviewers.push({ provider: values.provider, model: values.model });
606
+ (0, loader_js_1.saveConfig)(config, configPath);
607
+ console.log(`Added reviewer: ${values.provider} / ${values.model}`);
608
+ return;
609
+ }
610
+ if (values.remove) {
611
+ const configPath = values.global ? (0, loader_js_1.getGlobalConfigPath)() : (0, loader_js_1.getProjectConfigPath)();
612
+ const config = (0, loader_js_1.loadConfigFile)(configPath);
613
+ if (!config.ai?.reviewers) {
614
+ console.error('No multi-reviewers configured to remove from.');
615
+ process.exit(1);
616
+ }
617
+ const initialLength = config.ai.reviewers.length;
618
+ config.ai.reviewers = config.ai.reviewers.filter(r => r.provider !== values.remove);
619
+ if (config.ai.reviewers.length === initialLength) {
620
+ console.error(`Reviewer with provider '${values.remove}' not found in reviewers list.`);
621
+ process.exit(1);
622
+ }
623
+ (0, loader_js_1.saveConfig)(config, configPath);
624
+ console.log(`Removed reviewer: ${values.remove}`);
625
+ return;
626
+ }
627
+ if (values.set) {
628
+ const configPath = values.global ? (0, loader_js_1.getGlobalConfigPath)() : (0, loader_js_1.getProjectConfigPath)();
629
+ const reviewers = values.set.split(',').map(s => {
630
+ const [provider, model] = s.split(':');
631
+ return { provider: provider, model };
632
+ });
633
+ const config = (0, loader_js_1.loadConfigFile)(configPath);
634
+ if (!config.ai)
635
+ config.ai = {};
636
+ config.ai.reviewers = reviewers;
637
+ (0, loader_js_1.saveConfig)(config, configPath);
638
+ console.log(`Set ${reviewers.length} reviewers.`);
639
+ return;
640
+ }
641
+ }
566
642
  if (values.provider) {
567
643
  const provider = values.provider;
568
- if (!['claude', 'openai', 'gemini', 'mistral'].includes(provider)) {
644
+ if (!['claude', 'codex', 'gemini', 'mistral', 'openai'].includes(provider)) {
569
645
  console.error(`Invalid provider: ${provider}`);
570
- console.error('Valid providers: claude, openai, gemini, mistral');
646
+ console.error('Valid providers: claude, codex, gemini, mistral, openai');
571
647
  process.exit(1);
572
648
  }
573
649
  const result = await (0, ai_setup_js_1.quickAISetup)({