aura-code 0.3.6 → 0.5.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.
- package/README.md +54 -2
- package/dist/agent/compactor.d.ts +26 -0
- package/dist/agent/compactor.js +156 -0
- package/dist/agent/compactor.js.map +1 -0
- package/dist/agent/design.d.ts +17 -0
- package/dist/agent/design.js +175 -0
- package/dist/agent/design.js.map +1 -0
- package/dist/agent/loop.js +8 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.js +5 -2
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/cli/display.js +40 -4
- package/dist/cli/display.js.map +1 -1
- package/dist/cli/index.js +258 -44
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/project-config.d.ts +6 -0
- package/dist/config/project-config.js +2 -0
- package/dist/config/project-config.js.map +1 -1
- package/dist/dream/dream.d.ts +48 -0
- package/dist/dream/dream.js +187 -0
- package/dist/dream/dream.js.map +1 -0
- package/dist/kanban/index.d.ts +5 -0
- package/dist/kanban/index.js +11 -0
- package/dist/kanban/index.js.map +1 -0
- package/dist/kanban/pipeline.d.ts +16 -0
- package/dist/kanban/pipeline.js +910 -0
- package/dist/kanban/pipeline.js.map +1 -0
- package/dist/kanban/server.d.ts +5 -0
- package/dist/kanban/server.js +820 -0
- package/dist/kanban/server.js.map +1 -0
- package/dist/kanban/types.d.ts +75 -0
- package/dist/kanban/types.js +6 -0
- package/dist/kanban/types.js.map +1 -0
- package/dist/learnlight/driven.d.ts +2 -0
- package/dist/learnlight/driven.js +109 -0
- package/dist/learnlight/driven.js.map +1 -0
- package/dist/learnlight/index.d.ts +4 -0
- package/dist/learnlight/index.js +32 -0
- package/dist/learnlight/index.js.map +1 -0
- package/dist/learnlight/lesson-prep.d.ts +36 -0
- package/dist/learnlight/lesson-prep.js +224 -0
- package/dist/learnlight/lesson-prep.js.map +1 -0
- package/dist/learnlight/report.d.ts +2 -0
- package/dist/learnlight/report.js +37 -0
- package/dist/learnlight/report.js.map +1 -0
- package/dist/learnlight/types.d.ts +72 -0
- package/dist/learnlight/types.js +6 -0
- package/dist/learnlight/types.js.map +1 -0
- package/dist/perception/graph-store.d.ts +11 -0
- package/dist/perception/graph-store.js +33 -0
- package/dist/perception/graph-store.js.map +1 -1
- package/dist/perception/index.d.ts +1 -1
- package/dist/perception/index.js +2 -1
- package/dist/perception/index.js.map +1 -1
- package/dist/providers/factory.d.ts +16 -0
- package/dist/providers/factory.js +72 -0
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/openai-compatible.js +80 -49
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/research/council.d.ts +26 -0
- package/dist/research/council.js +225 -0
- package/dist/research/council.js.map +1 -0
- package/dist/research/research.d.ts +24 -0
- package/dist/research/research.js +116 -0
- package/dist/research/research.js.map +1 -0
- package/dist/ruby/alternator.d.ts +36 -1
- package/dist/ruby/alternator.js +40 -31
- package/dist/ruby/alternator.js.map +1 -1
- package/dist/ruby/stats.js +10 -11
- package/dist/ruby/stats.js.map +1 -1
- package/dist/ruby/types.js +1 -1
- package/dist/ruby/types.js.map +1 -1
- package/dist/safety/permissions.d.ts +8 -0
- package/dist/safety/permissions.js +12 -0
- package/dist/safety/permissions.js.map +1 -1
- package/dist/setup/provider-registry.js +14 -0
- package/dist/setup/provider-registry.js.map +1 -1
- package/dist/setup/provider-test.js +24 -2
- package/dist/setup/provider-test.js.map +1 -1
- package/dist/setup/telegram-wizard.d.ts +57 -0
- package/dist/setup/telegram-wizard.js +343 -0
- package/dist/setup/telegram-wizard.js.map +1 -0
- package/dist/tools/audio-transcribe.d.ts +20 -0
- package/dist/tools/audio-transcribe.js +39 -28
- package/dist/tools/audio-transcribe.js.map +1 -1
- package/dist/tools/gmail-tool.d.ts +11 -0
- package/dist/tools/gmail-tool.js +221 -0
- package/dist/tools/gmail-tool.js.map +1 -0
- package/dist/tools/read-file.js +13 -0
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/telegram-bot.js +103 -18
- package/dist/tools/telegram-bot.js.map +1 -1
- package/dist/tools/telegram-voice.d.ts +22 -0
- package/dist/tools/telegram-voice.js +203 -0
- package/dist/tools/telegram-voice.js.map +1 -0
- package/dist/tools/telegram.d.ts +6 -1
- package/dist/tools/telegram.js +115 -5
- package/dist/tools/telegram.js.map +1 -1
- package/dist/tools/video-render.d.ts +11 -0
- package/dist/tools/video-render.js +189 -0
- package/dist/tools/video-render.js.map +1 -0
- package/dist/util/errors.js +6 -0
- package/dist/util/errors.js.map +1 -1
- package/dist/viz/index.js +816 -30
- package/dist/viz/index.js.map +1 -1
- package/package.json +3 -2
package/dist/cli/display.js
CHANGED
|
@@ -71,7 +71,7 @@ function createTerminalDisplay() {
|
|
|
71
71
|
console.error('\n' + chalk_1.default.hex('#b15439')(` ✗ ${msg}`));
|
|
72
72
|
},
|
|
73
73
|
header(title, subtitle) {
|
|
74
|
-
const w = Math.min((process.stdout.columns ?? 80) - 2,
|
|
74
|
+
const w = Math.min((process.stdout.columns ?? 80) - 2, 144);
|
|
75
75
|
const pad = (s) => ` ${s}`;
|
|
76
76
|
console.log('');
|
|
77
77
|
console.log(boxTop(w));
|
|
@@ -81,14 +81,17 @@ function createTerminalDisplay() {
|
|
|
81
81
|
console.log(boxBottom(w));
|
|
82
82
|
},
|
|
83
83
|
summary(text, turns, toolCount) {
|
|
84
|
-
const w = Math.min((process.stdout.columns ?? 80) - 2,
|
|
84
|
+
const w = Math.min((process.stdout.columns ?? 80) - 2, 144);
|
|
85
85
|
const pad = (s) => ` ${s}`;
|
|
86
86
|
console.log('');
|
|
87
87
|
console.log(boxTop(w));
|
|
88
88
|
console.log(boxLine(chalk_1.default.hex('#5a9e6e').bold(pad('✓ Done')), w));
|
|
89
89
|
console.log(boxLine(chalk_1.default.hex('#8a7768')(pad(`${turns} turn${turns > 1 ? 's' : ''} · ${toolCount} tool call${toolCount > 1 ? 's' : ''}`)), w));
|
|
90
90
|
if (text) {
|
|
91
|
-
|
|
91
|
+
const innerWidth = Math.max(w - 4, 10); // w - 2 (border chars) - 2 (pad()'s leading spaces)
|
|
92
|
+
text.split('\n').forEach(l => {
|
|
93
|
+
wrapLine(l, innerWidth).forEach(wl => console.log(boxLine(chalk_1.default.hex('#c8b5a0')(pad(wl)), w)));
|
|
94
|
+
});
|
|
92
95
|
}
|
|
93
96
|
console.log(boxBottom(w) + '\n');
|
|
94
97
|
},
|
|
@@ -104,7 +107,7 @@ function createTerminalDisplay() {
|
|
|
104
107
|
console.log(chalk_1.default.hex(colour)(` ◯ Circuit ${info.provider}: ${info.state}`));
|
|
105
108
|
},
|
|
106
109
|
showPlan(plan) {
|
|
107
|
-
const w = Math.min((process.stdout.columns ?? 80) - 2,
|
|
110
|
+
const w = Math.min((process.stdout.columns ?? 80) - 2, 144);
|
|
108
111
|
const pad = (s) => ` ${s}`;
|
|
109
112
|
// Build a position map so dependency arrows show step numbers, not raw UUIDs
|
|
110
113
|
const idxMap = new Map(plan.steps.map((s, i) => [s.id, i + 1]));
|
|
@@ -141,6 +144,39 @@ function boxTop(width, color = '#4e3d30') {
|
|
|
141
144
|
const inner = '─'.repeat(Math.max(width - 2, 2));
|
|
142
145
|
return chalk_1.default.hex(color)(`┌${inner}┐`);
|
|
143
146
|
}
|
|
147
|
+
/** Word-wrap a single line to fit within `width` visible characters. Breaks
|
|
148
|
+
* on whitespace; a token longer than `width` alone is hard-broken rather
|
|
149
|
+
* than left to overflow. Used so long lines (markdown table rows, bullet
|
|
150
|
+
* points) flow across multiple box lines instead of being truncated. */
|
|
151
|
+
function wrapLine(text, width) {
|
|
152
|
+
if (text.length <= width)
|
|
153
|
+
return [text];
|
|
154
|
+
const words = text.split(' ');
|
|
155
|
+
const out = [];
|
|
156
|
+
let current = '';
|
|
157
|
+
for (const word of words) {
|
|
158
|
+
if (word.length > width) {
|
|
159
|
+
if (current) {
|
|
160
|
+
out.push(current);
|
|
161
|
+
current = '';
|
|
162
|
+
}
|
|
163
|
+
for (let i = 0; i < word.length; i += width)
|
|
164
|
+
out.push(word.slice(i, i + width));
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const candidate = current ? `${current} ${word}` : word;
|
|
168
|
+
if (candidate.length > width) {
|
|
169
|
+
out.push(current);
|
|
170
|
+
current = word;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
current = candidate;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (current)
|
|
177
|
+
out.push(current);
|
|
178
|
+
return out;
|
|
179
|
+
}
|
|
144
180
|
/** Render a colored bottom border: └──────────┘ */
|
|
145
181
|
function boxBottom(width, color = '#4e3d30') {
|
|
146
182
|
const inner = '─'.repeat(Math.max(width - 2, 2));
|
package/dist/cli/display.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":";;;;;AA+BA,sDAmJC;AA4ED,sCAUC;AAGD,4CAqBC;AAhSD,kDAA0B;AA+B1B,SAAgB,qBAAqB;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,OAAO;QACL,aAAa;YACX,gCAAgC;QAClC,CAAC;QAED,UAAU,CAAC,IAAY;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,SAAS;YACP,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAY,EAAE,GAAW;YACjC,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,QAAQ,CAAC,IAAY,EAAE,KAA8B;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,SAAiB;YACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC;gBACjG,CAAC,CAAC,MAAM,CAAC;YAEX,MAAM,OAAO,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE/E,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1G,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC3J,CAAC;YACH,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAY,EAAE,MAAc;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,CAAC,GAAW;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,GAAW;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,GAAW;YACf,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,CAAC,KAAa,EAAE,QAAiB;YACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,SAAiB;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,SAAS,aAAa,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/I,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oDAAoD;gBAC5F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC3B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChG,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,IAAI;YACR,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,gBAAgB,IAAI,cAAc,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5H,CAAC;QAED,QAAQ,CAAC,IAAI;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,OAAO,CAAC,IAAI;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,QAAQ,CAAC,IAAmB;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,6EAA6E;YAC7E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAiB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAM,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAK,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAK,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7F,MAAM,IAAI,GAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBACnC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrF,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,WAAW,CAAC,IAAc;YACxB,MAAM,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpG,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,aAAa,CAAC,IAAc,EAAE,OAAe;YAC3C,MAAM,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/D,MAAM,EAAE,GAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,gDAAgD;AAChD,SAAS,MAAM,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;;yEAGyE;AACzE,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,OAAO,EAAE,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;YAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAChF,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mDAAmD;AACnD,SAAS,SAAS,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,+DAA+D;AAC/D,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,KAAK,GAAG,SAAS;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,uCAAuC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,uEAAuE;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC1B,uCAAuC;gBACvC,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;oBAAE,GAAG,EAAE,CAAC;gBACvD,GAAG,EAAE,CAAC,CAAC,0BAA0B;YACnC,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,CAAC;YACR,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QAC3C,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1C,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACpF,CAAC;AAED,gFAAgF;AAEhF,sFAAsF;AACtF,SAAgB,aAAa,CAAC,CAAS;IACrC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,wEAAwE;AACxE,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,KAAa,EACb,SAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/F,MAAM,IAAI,GAAG,SAAS;QACpB,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QACjC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,OAAO,KAAK,IAAI,IAAI,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC;AAC5D,CAAC;AAED,iFAAiF;AAEjF,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAA2B;QACpC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI;QAChD,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG;QACnD,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;KAClD,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAA8B;IAC/D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,KAAK,UAAU,CAAC,CAAG,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzF,KAAK,WAAW,CAAC,CAAE,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,YAAY,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,aAAa,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxF,KAAK,WAAW,CAAC,CAAE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,WAAW,CAAC,CAAE,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9F,KAAK,UAAU,CAAC,CAAG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACxE,OAAO,CAAC,CAAW,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -66,6 +66,8 @@ const diamond_js_1 = require("./diamond.js");
|
|
|
66
66
|
const episode_capture_js_1 = require("../ruby/episode-capture.js");
|
|
67
67
|
const model_selector_js_1 = require("../ruby/model-selector.js");
|
|
68
68
|
const stats_js_1 = require("../ruby/stats.js");
|
|
69
|
+
const alternator_js_1 = require("../ruby/alternator.js");
|
|
70
|
+
const types_js_1 = require("../ruby/types.js");
|
|
69
71
|
const load_env_js_1 = require("../util/load-env.js");
|
|
70
72
|
const factory_js_2 = require("../providers/factory.js");
|
|
71
73
|
// Load API keys from ~/.hermes/.env, ~/.config/aura-code/.env, and project .env
|
|
@@ -783,6 +785,9 @@ async function main() {
|
|
|
783
785
|
if (!perception || (0, index_js_4.isStale)(perception)) {
|
|
784
786
|
display.agentThinking();
|
|
785
787
|
perception = await (0, index_js_4.extractPerception)(ctx.root);
|
|
788
|
+
// Persist so the viz dashboard and context summary stay populated
|
|
789
|
+
(0, index_js_4.savePerception)(perception).catch(() => { });
|
|
790
|
+
(0, index_js_4.saveGraphForViz)(perception).catch(() => { });
|
|
786
791
|
}
|
|
787
792
|
const decision = await (0, index_js_3.routeTask)({ provider, context: ctx, task, perception: perception ?? undefined });
|
|
788
793
|
if (decision.shouldDecompose && decision.confidence > 0.8) {
|
|
@@ -795,7 +800,11 @@ async function main() {
|
|
|
795
800
|
catch {
|
|
796
801
|
// Router failed — fall through to single agent
|
|
797
802
|
}
|
|
798
|
-
// ──
|
|
803
|
+
// ── Competence-based model selection ───────────────────────────────────────
|
|
804
|
+
// Picks the best-performing model among already-configured, same-family
|
|
805
|
+
// options based on task similarity to past episodes. Distinct from
|
|
806
|
+
// RubyAlternator below — this only chooses among models you've already
|
|
807
|
+
// set up; it never tries a free local model first.
|
|
799
808
|
// Only when the user has NOT explicitly specified --model or :model
|
|
800
809
|
if (!userSetModel && !globalCfg?.defaultModel) {
|
|
801
810
|
try {
|
|
@@ -818,9 +827,13 @@ async function main() {
|
|
|
818
827
|
}
|
|
819
828
|
}
|
|
820
829
|
const doVerify = cliVerify || !!fileConfig.verify;
|
|
830
|
+
const rubyConfig = { ...types_js_1.DEFAULT_RUBY_CONFIG, ...fileConfig.ruby };
|
|
821
831
|
const episodeStart = Date.now();
|
|
822
832
|
let result;
|
|
833
|
+
let alternatorHandledEpisode = false;
|
|
823
834
|
if (doVerify) {
|
|
835
|
+
// Ruby-alternation doesn't support the verification wrapper yet —
|
|
836
|
+
// a verified task always runs directly against the selected model.
|
|
824
837
|
const { runWithVerification } = await Promise.resolve().then(() => __importStar(require('../verify/index.js')));
|
|
825
838
|
const maxRetries = cliMaxVerifyRetries ?? fileConfig.maxVerifyRetries ?? defaults_js_1.DEFAULTS.maxVerifyRetries;
|
|
826
839
|
const testCommand = cliTestCommand ?? fileConfig.testCommand;
|
|
@@ -841,6 +854,20 @@ async function main() {
|
|
|
841
854
|
});
|
|
842
855
|
result = wrapperResult.loopResult;
|
|
843
856
|
}
|
|
857
|
+
else if (rubyConfig.enabled) {
|
|
858
|
+
const alternator = new alternator_js_1.RubyAlternator({
|
|
859
|
+
rubyConfig,
|
|
860
|
+
largeModelProvider: provider,
|
|
861
|
+
projectRoot: ctx.root,
|
|
862
|
+
context: ctx,
|
|
863
|
+
display,
|
|
864
|
+
permissions,
|
|
865
|
+
initialHistory: activeChatHistory,
|
|
866
|
+
});
|
|
867
|
+
const altResult = await alternator.run(task);
|
|
868
|
+
result = altResult.loopResult;
|
|
869
|
+
alternatorHandledEpisode = true; // alternator.run() already saved its own episode
|
|
870
|
+
}
|
|
844
871
|
else {
|
|
845
872
|
result = await (0, loop_js_1.runAgentLoop)({
|
|
846
873
|
provider, task, context: ctx, permissions, display,
|
|
@@ -853,26 +880,30 @@ async function main() {
|
|
|
853
880
|
sessionPath,
|
|
854
881
|
});
|
|
855
882
|
}
|
|
856
|
-
// Persist episode for Ruby Principle training data
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
883
|
+
// Persist episode for Ruby Principle training data — skip when
|
|
884
|
+
// RubyAlternator already saved its own (richer) episode above, to
|
|
885
|
+
// avoid double-counting every task in the stats/dashboard.
|
|
886
|
+
if (!alternatorHandledEpisode) {
|
|
887
|
+
try {
|
|
888
|
+
const { randomBytes } = await Promise.resolve().then(() => __importStar(require('crypto')));
|
|
889
|
+
await (0, episode_capture_js_1.saveEpisode)(ctx.root, {
|
|
890
|
+
id: randomBytes(4).toString('hex') + '-' + Date.now().toString(36),
|
|
891
|
+
timestamp: Date.now(),
|
|
892
|
+
task,
|
|
893
|
+
projectRoot: ctx.root,
|
|
894
|
+
rubyAttempted: false,
|
|
895
|
+
rubySucceeded: false,
|
|
896
|
+
largeModelUsed: runtimeConfig.model,
|
|
897
|
+
largeModelOutput: result.summary,
|
|
898
|
+
reviewerApproved: result.success,
|
|
899
|
+
tokensUsed: { largeModel: result.usage.totalTokens },
|
|
900
|
+
durationMs: Date.now() - episodeStart,
|
|
901
|
+
taskCategory: 'other',
|
|
902
|
+
});
|
|
903
|
+
}
|
|
904
|
+
catch {
|
|
905
|
+
// Episode recording is best-effort; never block the user
|
|
906
|
+
}
|
|
876
907
|
}
|
|
877
908
|
// Update history so REPL continues the conversation
|
|
878
909
|
activeChatHistory = result.history;
|
|
@@ -920,6 +951,7 @@ async function main() {
|
|
|
920
951
|
permissions, cumulative,
|
|
921
952
|
chatState: { projectRoot, activeChatId, activeChatHistory, activeChatTitle, noSession },
|
|
922
953
|
rl,
|
|
954
|
+
rubyEnabled: { ...types_js_1.DEFAULT_RUBY_CONFIG, ...fileConfig.ruby }.enabled,
|
|
923
955
|
};
|
|
924
956
|
const cmdResult = await handleReplCommand(input, replCtx);
|
|
925
957
|
if (cmdResult.handled) {
|
|
@@ -930,11 +962,19 @@ async function main() {
|
|
|
930
962
|
activeChatHistory = cmdResult.newHistory;
|
|
931
963
|
if (cmdResult.newTitle !== undefined)
|
|
932
964
|
activeChatTitle = cmdResult.newTitle;
|
|
965
|
+
// :ruby on/off persists by mutating the loaded config the gate reads.
|
|
966
|
+
if (cmdResult.rubyEnabled !== undefined) {
|
|
967
|
+
fileConfig.ruby = { ...fileConfig.ruby, enabled: cmdResult.rubyEnabled };
|
|
968
|
+
}
|
|
933
969
|
ask();
|
|
934
970
|
return;
|
|
935
971
|
}
|
|
936
972
|
// Run task — pass current conversation history for stay-active mode
|
|
937
|
-
// ──
|
|
973
|
+
// ── Competence-based model selection ───────────────────────────────
|
|
974
|
+
// Picks the best-performing model among already-configured, same-family
|
|
975
|
+
// options based on task similarity to past episodes. Distinct from
|
|
976
|
+
// RubyAlternator below — this only chooses among models you've already
|
|
977
|
+
// set up; it never tries a free local model first.
|
|
938
978
|
// Only when the user has NOT set a model explicitly via --model or :model
|
|
939
979
|
if (!userSetModel && !globalCfg?.defaultModel) {
|
|
940
980
|
try {
|
|
@@ -957,8 +997,16 @@ async function main() {
|
|
|
957
997
|
let result;
|
|
958
998
|
try {
|
|
959
999
|
const currentProvider = buildProvider(display);
|
|
1000
|
+
const replConfirmFn = async (msg) => new Promise(res => {
|
|
1001
|
+
rl.question(`\n⚠️ ${msg} [y/N] `, a => {
|
|
1002
|
+
res(a.trim().toLowerCase() === 'y' || a.trim().toLowerCase() === 'yes');
|
|
1003
|
+
});
|
|
1004
|
+
});
|
|
960
1005
|
const doVerify = argv.verify === true || !!fileConfig.verify;
|
|
1006
|
+
const rubyConfig = { ...types_js_1.DEFAULT_RUBY_CONFIG, ...fileConfig.ruby };
|
|
961
1007
|
if (doVerify) {
|
|
1008
|
+
// Ruby-alternation doesn't support the verification wrapper yet —
|
|
1009
|
+
// a verified task always runs directly against the selected model.
|
|
962
1010
|
const { runWithVerification } = await Promise.resolve().then(() => __importStar(require('../verify/index.js')));
|
|
963
1011
|
const maxRetries = cliMaxVerifyRetries ?? fileConfig.maxVerifyRetries ?? defaults_js_1.DEFAULTS.maxVerifyRetries;
|
|
964
1012
|
const testCommand = cliTestCommand ?? fileConfig.testCommand;
|
|
@@ -968,11 +1016,7 @@ async function main() {
|
|
|
968
1016
|
context: ctx, permissions, display,
|
|
969
1017
|
initialHistory: activeChatHistory,
|
|
970
1018
|
maxTurns: resolved.maxTurns,
|
|
971
|
-
confirmFn:
|
|
972
|
-
rl.question(`\\n⚠️ ${msg} [y/N] `, a => {
|
|
973
|
-
res(a.trim().toLowerCase() === 'y' || a.trim().toLowerCase() === 'yes');
|
|
974
|
-
});
|
|
975
|
-
}),
|
|
1019
|
+
confirmFn: replConfirmFn,
|
|
976
1020
|
spawnConfig: {
|
|
977
1021
|
apiKey: runtimeConfig.apiKey,
|
|
978
1022
|
baseUrl: runtimeConfig.baseUrl ?? undefined,
|
|
@@ -985,17 +1029,27 @@ async function main() {
|
|
|
985
1029
|
});
|
|
986
1030
|
result = wrapperResult.loopResult;
|
|
987
1031
|
}
|
|
1032
|
+
else if (rubyConfig.enabled) {
|
|
1033
|
+
const alternator = new alternator_js_1.RubyAlternator({
|
|
1034
|
+
rubyConfig,
|
|
1035
|
+
largeModelProvider: currentProvider,
|
|
1036
|
+
projectRoot: ctx.root,
|
|
1037
|
+
context: ctx,
|
|
1038
|
+
display,
|
|
1039
|
+
permissions,
|
|
1040
|
+
confirmFn: replConfirmFn,
|
|
1041
|
+
initialHistory: activeChatHistory,
|
|
1042
|
+
});
|
|
1043
|
+
const altResult = await alternator.run(input);
|
|
1044
|
+
result = altResult.loopResult;
|
|
1045
|
+
}
|
|
988
1046
|
else {
|
|
989
1047
|
result = await (0, loop_js_1.runAgentLoop)({
|
|
990
1048
|
provider: currentProvider, task: input,
|
|
991
1049
|
context: ctx, permissions, display,
|
|
992
1050
|
initialHistory: activeChatHistory,
|
|
993
1051
|
maxTurns: resolved.maxTurns,
|
|
994
|
-
confirmFn:
|
|
995
|
-
rl.question(`\\n⚠️ ${msg} [y/N] `, a => {
|
|
996
|
-
res(a.trim().toLowerCase() === 'y' || a.trim().toLowerCase() === 'yes');
|
|
997
|
-
});
|
|
998
|
-
}),
|
|
1052
|
+
confirmFn: replConfirmFn,
|
|
999
1053
|
spawnConfig: {
|
|
1000
1054
|
apiKey: runtimeConfig.apiKey,
|
|
1001
1055
|
baseUrl: runtimeConfig.baseUrl ?? undefined,
|
|
@@ -1165,13 +1219,23 @@ async function handleReplCommand(input, c) {
|
|
|
1165
1219
|
' ── Context / Stats ──────────────────────────────',
|
|
1166
1220
|
' :context Show loaded project context',
|
|
1167
1221
|
' :graph Show codebase knowledge graph summary',
|
|
1168
|
-
' :graph refresh
|
|
1222
|
+
' :graph refresh Extract + persist codebase graph',
|
|
1169
1223
|
' :plans List saved execution plans',
|
|
1170
1224
|
' :viz, :dashboard Generate and open the memory dashboard',
|
|
1225
|
+
' :dream [experimental] Consolidate today\'s episodes into a dated dream (dreams/*.md)',
|
|
1226
|
+
' :dream full [experimental] Consolidate ALL episodes, ignoring the last-dream cutoff',
|
|
1227
|
+
' :rem [experimental] List dream files and open the most recent one',
|
|
1228
|
+
' :research <topic> Multi-step research pass, saved to research/*.md (inspired by DeerFlow)',
|
|
1229
|
+
' :council <topic> Ecclesia — 5 independent agents research the topic, synthesized into one verdict (council/*.md)',
|
|
1230
|
+
' :ruby [on|off] Toggle the Ruby Principle (default: off)',
|
|
1231
|
+
' :design [slug|list|off] Set/list the design system auto-applied to UI builds',
|
|
1171
1232
|
' /stats, /usage Show token + cost usage this session',
|
|
1172
1233
|
' /clear, /reset Reset cumulative usage stats',
|
|
1173
1234
|
'',
|
|
1174
1235
|
' ── General ──────────────────────────────────────',
|
|
1236
|
+
' :approve all Auto-approve all tool calls (no confirmations)',
|
|
1237
|
+
' :approve normal Require confirmation for destructive ops',
|
|
1238
|
+
' :approve read-only Block all write operations',
|
|
1175
1239
|
' :quit, :q, /exit Exit',
|
|
1176
1240
|
'',
|
|
1177
1241
|
].join('\n')));
|
|
@@ -1301,6 +1365,142 @@ async function handleReplCommand(input, c) {
|
|
|
1301
1365
|
}
|
|
1302
1366
|
return { handled: true };
|
|
1303
1367
|
}
|
|
1368
|
+
if (input === ':dream' || input === ':dream full') {
|
|
1369
|
+
const full = input === ':dream full';
|
|
1370
|
+
console.log(chalk_1.default.hex('#8a7768')('\n Dreaming — consolidating episodes…\n'));
|
|
1371
|
+
try {
|
|
1372
|
+
const { runDream } = await Promise.resolve().then(() => __importStar(require('../dream/dream.js')));
|
|
1373
|
+
const { createResilientProvider } = await Promise.resolve().then(() => __importStar(require('../providers/resilient-factory.js')));
|
|
1374
|
+
const provider = createResilientProvider({ model: c.providerConfig.model, apiKey: c.providerConfig.apiKey, baseUrl: c.providerConfig.baseUrl }, {}, c.display);
|
|
1375
|
+
const res = await runDream({ projectRoot: c.ctx.root, provider, full });
|
|
1376
|
+
if (res.skipped) {
|
|
1377
|
+
console.log(chalk_1.default.hex('#cc9e5c')(` ⤳ Nothing to dream about — ${res.reason}.\n`));
|
|
1378
|
+
}
|
|
1379
|
+
else {
|
|
1380
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Dream written: ${res.path}`));
|
|
1381
|
+
console.log(chalk_1.default.hex('#8a7768')(` Consolidated ${res.episodeCount} episode(s).\n`));
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
catch (e) {
|
|
1385
|
+
console.log(chalk_1.default.hex('#b15439')(` ✗ ${String(e)}\n`));
|
|
1386
|
+
}
|
|
1387
|
+
return { handled: true };
|
|
1388
|
+
}
|
|
1389
|
+
if (input.startsWith(':research ')) {
|
|
1390
|
+
const topic = input.slice(':research '.length).trim();
|
|
1391
|
+
if (!topic) {
|
|
1392
|
+
console.log(chalk_1.default.hex('#b15439')('\n Usage: :research <topic>\n'));
|
|
1393
|
+
return { handled: true };
|
|
1394
|
+
}
|
|
1395
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Researching "${topic}"…\n`));
|
|
1396
|
+
try {
|
|
1397
|
+
const { runResearch } = await Promise.resolve().then(() => __importStar(require('../research/research.js')));
|
|
1398
|
+
const { createResilientProvider } = await Promise.resolve().then(() => __importStar(require('../providers/resilient-factory.js')));
|
|
1399
|
+
const provider = createResilientProvider({ model: c.providerConfig.model, apiKey: c.providerConfig.apiKey, baseUrl: c.providerConfig.baseUrl }, {}, c.display);
|
|
1400
|
+
const res = await runResearch({
|
|
1401
|
+
projectRoot: c.ctx.root,
|
|
1402
|
+
topic,
|
|
1403
|
+
provider,
|
|
1404
|
+
context: c.ctx,
|
|
1405
|
+
permissions: c.permissions,
|
|
1406
|
+
display: c.display,
|
|
1407
|
+
});
|
|
1408
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Research written: ${res.path}`));
|
|
1409
|
+
console.log(chalk_1.default.hex('#8a7768')(` ${res.turns} turn(s) · ${res.toolCalls} tool call(s).\n`));
|
|
1410
|
+
}
|
|
1411
|
+
catch (e) {
|
|
1412
|
+
console.log(chalk_1.default.hex('#b15439')(` ✗ ${String(e)}\n`));
|
|
1413
|
+
}
|
|
1414
|
+
return { handled: true };
|
|
1415
|
+
}
|
|
1416
|
+
if (input.startsWith(':council ')) {
|
|
1417
|
+
const topic = input.slice(':council '.length).trim();
|
|
1418
|
+
if (!topic) {
|
|
1419
|
+
console.log(chalk_1.default.hex('#b15439')('\n Usage: :council <topic>\n'));
|
|
1420
|
+
return { handled: true };
|
|
1421
|
+
}
|
|
1422
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Convening Ecclesia on "${topic}" — 5 independent agents…\n`));
|
|
1423
|
+
try {
|
|
1424
|
+
const { runCouncil } = await Promise.resolve().then(() => __importStar(require('../research/council.js')));
|
|
1425
|
+
const { createResilientProvider } = await Promise.resolve().then(() => __importStar(require('../providers/resilient-factory.js')));
|
|
1426
|
+
const synthesisProvider = createResilientProvider({ model: c.providerConfig.model, apiKey: c.providerConfig.apiKey, baseUrl: c.providerConfig.baseUrl }, {}, c.display);
|
|
1427
|
+
const res = await runCouncil({
|
|
1428
|
+
projectRoot: c.ctx.root,
|
|
1429
|
+
topic,
|
|
1430
|
+
synthesisProvider,
|
|
1431
|
+
context: c.ctx,
|
|
1432
|
+
permissions: c.permissions,
|
|
1433
|
+
display: c.display,
|
|
1434
|
+
});
|
|
1435
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Ecclesia verdict: ${res.path}`));
|
|
1436
|
+
console.log(chalk_1.default.hex('#8a7768')(` ${res.panelSize} agents` + (res.agentFailures > 0 ? `, ${res.agentFailures} failed` : '') + `.\n`));
|
|
1437
|
+
}
|
|
1438
|
+
catch (e) {
|
|
1439
|
+
console.log(chalk_1.default.hex('#b15439')(` ✗ ${String(e)}\n`));
|
|
1440
|
+
}
|
|
1441
|
+
return { handled: true };
|
|
1442
|
+
}
|
|
1443
|
+
if (input === ':rem') {
|
|
1444
|
+
const dir = path.join(c.ctx.root, 'dreams');
|
|
1445
|
+
let files = [];
|
|
1446
|
+
try {
|
|
1447
|
+
files = fs.readdirSync(dir).filter(f => f.endsWith('.md')).sort().reverse();
|
|
1448
|
+
}
|
|
1449
|
+
catch { /* no dreams dir */ }
|
|
1450
|
+
if (files.length === 0) {
|
|
1451
|
+
console.log(chalk_1.default.hex('#8a7768')('\n No dreams yet. Run :dream after some work.\n'));
|
|
1452
|
+
}
|
|
1453
|
+
else {
|
|
1454
|
+
console.log(chalk_1.default.hex('#cc785c').bold('\n Dreams\n'));
|
|
1455
|
+
for (const f of files.slice(0, 20))
|
|
1456
|
+
console.log(chalk_1.default.hex('#ede0cc')(` ${f}`));
|
|
1457
|
+
const latest = path.join(dir, files[0]);
|
|
1458
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Most recent: ${latest}\n`));
|
|
1459
|
+
console.log(chalk_1.default.hex('#4e3d30')(fs.readFileSync(latest, 'utf8')));
|
|
1460
|
+
}
|
|
1461
|
+
return { handled: true };
|
|
1462
|
+
}
|
|
1463
|
+
if (input === ':ruby' || input === ':ruby on' || input === ':ruby off') {
|
|
1464
|
+
if (input === ':ruby') {
|
|
1465
|
+
const state = c.rubyEnabled ? chalk_1.default.hex('#5a9e6e')('ON') : chalk_1.default.hex('#b15439')('OFF');
|
|
1466
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Ruby Principle is ${state}. Use :ruby on / :ruby off to change.\n`));
|
|
1467
|
+
return { handled: true };
|
|
1468
|
+
}
|
|
1469
|
+
const on = input === ':ruby on';
|
|
1470
|
+
c.rubyEnabled = on;
|
|
1471
|
+
const state = on ? chalk_1.default.hex('#5a9e6e')('ON') : chalk_1.default.hex('#b15439')('OFF');
|
|
1472
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Ruby Principle is now ${state} for this session.\n`));
|
|
1473
|
+
return { handled: true, rubyEnabled: on };
|
|
1474
|
+
}
|
|
1475
|
+
if (input === ':design' || input.startsWith(':design ')) {
|
|
1476
|
+
const { listDesignSlugs } = await Promise.resolve().then(() => __importStar(require('../agent/design.js')));
|
|
1477
|
+
const slugs = listDesignSlugs(c.ctx.root);
|
|
1478
|
+
const arg = input.slice(':design'.length).trim();
|
|
1479
|
+
if (slugs.length === 0) {
|
|
1480
|
+
console.log(chalk_1.default.hex('#b15439')('\n No design-systems/ folder found in this project.\n'));
|
|
1481
|
+
return { handled: true };
|
|
1482
|
+
}
|
|
1483
|
+
if (arg === '' || arg === 'list') {
|
|
1484
|
+
const current = process.env.AURA_DESIGN || 'terracotta';
|
|
1485
|
+
console.log(chalk_1.default.hex('#cc785c').bold(`\n Design systems (${slugs.length}) — default: ${current}\n`));
|
|
1486
|
+
console.log(chalk_1.default.hex('#ede0cc')(' ' + slugs.join(' ')));
|
|
1487
|
+
console.log(chalk_1.default.hex('#8a7768')('\n :design <slug> sets the default · auto-applies on website/UI tasks.\n'));
|
|
1488
|
+
return { handled: true };
|
|
1489
|
+
}
|
|
1490
|
+
if (arg === 'off') {
|
|
1491
|
+
process.env.AURA_DESIGN = '__none__';
|
|
1492
|
+
console.log(chalk_1.default.hex('#8a7768')('\n Design auto-injection disabled for this session.\n'));
|
|
1493
|
+
return { handled: true };
|
|
1494
|
+
}
|
|
1495
|
+
if (slugs.includes(arg)) {
|
|
1496
|
+
process.env.AURA_DESIGN = arg;
|
|
1497
|
+
console.log(chalk_1.default.hex('#5a9e6e')(`\n Default design set to "${arg}" for this session.\n`));
|
|
1498
|
+
}
|
|
1499
|
+
else {
|
|
1500
|
+
console.log(chalk_1.default.hex('#b15439')(`\n Unknown design "${arg}". Run :design to list available slugs.\n`));
|
|
1501
|
+
}
|
|
1502
|
+
return { handled: true };
|
|
1503
|
+
}
|
|
1304
1504
|
if (input === ':plans') {
|
|
1305
1505
|
const { planStore } = await Promise.resolve().then(() => __importStar(require('../orchestration/plan-store.js')));
|
|
1306
1506
|
const plans = await planStore.list();
|
|
@@ -1323,24 +1523,25 @@ async function handleReplCommand(input, c) {
|
|
|
1323
1523
|
return { handled: true };
|
|
1324
1524
|
}
|
|
1325
1525
|
if (input === ':graph refresh') {
|
|
1326
|
-
console.log(chalk_1.default.hex('#8a7768')('\n
|
|
1327
|
-
const { execFileSync } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
1526
|
+
console.log(chalk_1.default.hex('#8a7768')('\n Extracting codebase graph...\n'));
|
|
1328
1527
|
try {
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
}
|
|
1336
|
-
catch {
|
|
1528
|
+
const perception = await (0, index_js_4.extractPerception)(c.ctx.root);
|
|
1529
|
+
await (0, index_js_4.savePerception)(perception);
|
|
1530
|
+
await (0, index_js_4.saveGraphForViz)(perception);
|
|
1531
|
+
const nodeCount = perception.nodes.length;
|
|
1532
|
+
const edgeCount = perception.edges.length;
|
|
1533
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Extracted ${nodeCount} nodes, ${edgeCount} edges.\n`));
|
|
1534
|
+
}
|
|
1535
|
+
catch (err) {
|
|
1536
|
+
console.log(chalk_1.default.hex('#f85149')(` ✗ Extraction failed: ${err instanceof Error ? err.message : String(err)}\n`));
|
|
1537
|
+
}
|
|
1337
1538
|
// Reload context graph
|
|
1338
1539
|
c.ctx.graphSummary = (0, context_js_1.loadGraphSummary)(c.ctx.root);
|
|
1339
1540
|
if (c.ctx.graphSummary) {
|
|
1340
1541
|
console.log(chalk_1.default.hex('#5a9e6e')(' ✓ Graph loaded and injected into context.\n'));
|
|
1341
1542
|
}
|
|
1342
1543
|
else {
|
|
1343
|
-
console.log(chalk_1.default.hex('#8a7768')(' No graph.json found after refresh
|
|
1544
|
+
console.log(chalk_1.default.hex('#8a7768')(' No graph.json found after refresh.\n'));
|
|
1344
1545
|
}
|
|
1345
1546
|
return { handled: true };
|
|
1346
1547
|
}
|
|
@@ -1406,6 +1607,18 @@ async function handleReplCommand(input, c) {
|
|
|
1406
1607
|
console.log(chalk_1.default.hex('#5a9e6e')(' ✓ Session stats reset'));
|
|
1407
1608
|
return { handled: true };
|
|
1408
1609
|
}
|
|
1610
|
+
// ── Permission commands ──────────────────────────────────────────────────
|
|
1611
|
+
if (input.startsWith(':approve ')) {
|
|
1612
|
+
const raw = input.slice(':approve '.length).trim();
|
|
1613
|
+
const mapped = raw === 'all' ? 'auto' : raw;
|
|
1614
|
+
if (mapped !== 'auto' && mapped !== 'normal' && mapped !== 'read-only') {
|
|
1615
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Usage: :approve all | :approve normal | :approve read-only'));
|
|
1616
|
+
return { handled: true };
|
|
1617
|
+
}
|
|
1618
|
+
c.permissions.setLevel(mapped);
|
|
1619
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Permission level set to ${mapped}`));
|
|
1620
|
+
return { handled: true };
|
|
1621
|
+
}
|
|
1409
1622
|
if (input === '/stats' || input === '/usage') {
|
|
1410
1623
|
const u = c.cumulative;
|
|
1411
1624
|
const total = u.inputTokens + u.outputTokens;
|
|
@@ -1790,6 +2003,7 @@ ${chalk_1.default.hex('#cc785c').bold(' aura')} ${chalk_1.default.hex('#8a7768'
|
|
|
1790
2003
|
--test-command <cmd> Shell command run as part of verification (e.g. "npm test")
|
|
1791
2004
|
--max-turns <n> Max agent loop turns before stopping (default: 150)
|
|
1792
2005
|
--analyze Mine session history for weakness patterns; save report
|
|
2006
|
+
--stats Show episode stats — completion rate, avg duration, top model, tokens
|
|
1793
2007
|
--propose-harness Generate system-prompt patches from weakness report
|
|
1794
2008
|
--apply-harness <id> Apply a proposal patch; reverts if tests fail
|
|
1795
2009
|
--workflow <name> ... Create and run a sequential workflow with named steps
|