mythos-router 1.3.1 → 1.4.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/CHANGELOG.md +13 -0
- package/README.md +5 -1
- package/dist/cli.js +18 -22
- package/dist/cli.js.map +1 -1
- package/dist/commands/chat.d.ts +1 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +98 -12
- package/dist/commands/chat.js.map +1 -1
- package/dist/session.d.ts +20 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +54 -0
- package/dist/session.js.map +1 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [1.4.0] — 2026-04-27
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Session persistence & resume support** — Sessions are now atomically saved to `~/.mythos-router/sessions/latest.json` on exit. `mythos chat --resume` restores conversation history and budget state.
|
|
14
|
+
- **Context window guard** — Automatically compresses the oldest portion of conversation history when approaching token limits using a low-effort summarization step. Prevents context overflow crashes during long sessions.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **CLI signal handling** — Improved handling of `SIGINT`, `SIGTERM`, and `uncaughtException`, ensuring terminal state is restored and sessions are safely persisted on exit or crash.
|
|
18
|
+
- **Commander.js lifecycle** — Switched to `program.parseAsync()` to properly handle async command execution and prevent unhandled promise issues.
|
|
19
|
+
- **Startup race condition** — Removed a dynamic import in the default help path that could cause banner inconsistencies in some environments.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
10
23
|
## [1.3.1] — 2026-04-27
|
|
11
24
|
|
|
12
25
|
### Added
|
package/README.md
CHANGED
|
@@ -63,6 +63,7 @@ Zero slop. Zero hallucinated state. Full adaptive thinking.
|
|
|
63
63
|
| **Correction Turns** | Model gets 2 retries to match filesystem reality, then yields |
|
|
64
64
|
| **Integrity Gate** | `verify` command and startup hashing ensure zero drift |
|
|
65
65
|
| **Token Limiter** | Budget cap with graceful save — progress saved to MEMORY.md, never lose work |
|
|
66
|
+
| **Session Resume** | Pick up exactly where you left off after a crash or exit (`--resume`) |
|
|
66
67
|
| **Dry-Run Mode** | Preview every file operation before it executes — full transparency |
|
|
67
68
|
| **Verbose Tracing** | See exactly what the AI is parsing, thinking, and verifying |
|
|
68
69
|
| **Budget Analytics** | Persistent tracking of cost across sessions and projects via `stats` |
|
|
@@ -139,6 +140,7 @@ mythos chat -s react # Load the 'react' expert skill
|
|
|
139
140
|
mythos chat --test-cmd "npm test" # Enable autonomous test-driven self-healing
|
|
140
141
|
mythos chat --effort low # Budget mode (Haiku 3)
|
|
141
142
|
mythos chat --effort medium # Balanced (Sonnet 3.5)
|
|
143
|
+
mythos chat --resume # Resume your previous session exactly where you left off
|
|
142
144
|
mythos chat --dry-run # Preview all file changes before executing
|
|
143
145
|
mythos chat --verbose # See full SWD traces and thinking
|
|
144
146
|
mythos chat --branch refactor # Isolate session in a fresh git branch
|
|
@@ -390,11 +392,13 @@ When the budget is reached, mythos doesn't just kill your session — it perform
|
|
|
390
392
|
```
|
|
391
393
|
⏸ BUDGET REACHED — Graceful Save
|
|
392
394
|
498,231 tokens consumed across 25 turns (~$7.4200).
|
|
393
|
-
Progress saved to MEMORY.md. Resume with mythos chat to continue.
|
|
395
|
+
Progress saved to MEMORY.md. Resume with mythos chat --resume to continue.
|
|
394
396
|
Increase limits: mythos chat --max-tokens 1000000 --max-turns 50
|
|
395
397
|
Disable limits: mythos chat --no-budget
|
|
396
398
|
```
|
|
397
399
|
|
|
400
|
+
The system automatically saves your conversation history and budget state to `~/.mythos-router/sessions/latest.json`. You can instantly restore your exact context by running `mythos chat --resume`.
|
|
401
|
+
|
|
398
402
|
Token counts, estimated cost, and budget status are displayed after every chat response.
|
|
399
403
|
|
|
400
404
|
---
|
package/dist/cli.js
CHANGED
|
@@ -13,12 +13,20 @@ import { dreamCommand } from './commands/dream.js';
|
|
|
13
13
|
import { statsCommand } from './commands/stats.js';
|
|
14
14
|
import { providersCommand } from './commands/providers.js';
|
|
15
15
|
import { DEFAULT_MAX_TOKENS_PER_SESSION, DEFAULT_MAX_TURNS, } from './config.js';
|
|
16
|
+
import { BANNER } from './utils.js';
|
|
16
17
|
// ── Read version from package.json (single source of truth) ──
|
|
17
18
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
19
|
const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));
|
|
19
20
|
const program = new Command();
|
|
20
21
|
// ── Restore cursor on any exit (spinner crash safety) ────────
|
|
21
|
-
|
|
22
|
+
const restoreCursor = () => process.stdout.write('\x1b[?25h');
|
|
23
|
+
process.on('exit', restoreCursor);
|
|
24
|
+
process.on('SIGINT', () => { restoreCursor(); process.exit(0); });
|
|
25
|
+
process.on('uncaughtException', (err) => {
|
|
26
|
+
restoreCursor();
|
|
27
|
+
console.error(err);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
});
|
|
22
30
|
program
|
|
23
31
|
.name('mythos')
|
|
24
32
|
.description('Capybara-tier CLI router — Claude Opus 4.7 with Adaptive Thinking, ' +
|
|
@@ -38,52 +46,40 @@ program
|
|
|
38
46
|
.option('-t, --test-cmd <cmd>', 'Command to run after successful SWD execution (WARNING: assumes a trusted environment and executes arbitrary shell commands)')
|
|
39
47
|
.option('--max-test-retries <n>', 'Maximum number of times Claude can attempt to fix failing tests', '3')
|
|
40
48
|
.option('-s, --skill <names...>', 'Inject specific expert skills (e.g., -s mcp -s react)')
|
|
41
|
-
.
|
|
42
|
-
|
|
43
|
-
});
|
|
49
|
+
.option('--resume', 'Resume the last saved session (history + budget state)')
|
|
50
|
+
.action(chatCommand);
|
|
44
51
|
// ── mythos verify ────────────────────────────────────────────
|
|
45
52
|
program
|
|
46
53
|
.command('verify')
|
|
47
54
|
.description('Scan codebase and sync with MEMORY.md for zero drift')
|
|
48
55
|
.option('--dry-run', 'Preview verification without writing to MEMORY.md')
|
|
49
|
-
.action(
|
|
50
|
-
await verifyCommand(options);
|
|
51
|
-
});
|
|
56
|
+
.action(verifyCommand);
|
|
52
57
|
// ── mythos dream ─────────────────────────────────────────────
|
|
53
58
|
program
|
|
54
59
|
.command('dream')
|
|
55
60
|
.description('Summarize and compress agentic memory for context optimization')
|
|
56
61
|
.option('-f, --force', 'Force dream even with few entries', false)
|
|
57
62
|
.option('--dry-run', 'Preview compression without writing to MEMORY.md')
|
|
58
|
-
.action(
|
|
59
|
-
await dreamCommand(options);
|
|
60
|
-
});
|
|
63
|
+
.action(dreamCommand);
|
|
61
64
|
// ── mythos stats ─────────────────────────────────────────────
|
|
62
65
|
program
|
|
63
66
|
.command('stats')
|
|
64
67
|
.description('Show budget analytics and token usage across sessions')
|
|
65
68
|
.option('-d, --days <n>', 'Filter metrics by the last N days')
|
|
66
|
-
.action(
|
|
67
|
-
await statsCommand(options);
|
|
68
|
-
});
|
|
69
|
+
.action(statsCommand);
|
|
69
70
|
// ── mythos providers ─────────────────────────────────────────
|
|
70
71
|
program
|
|
71
72
|
.command('providers')
|
|
72
73
|
.description('Live dashboard of provider health, EMA scoring, and routing decisions')
|
|
73
74
|
.option('-w, --watch', 'Auto-refresh the dashboard when metrics change')
|
|
74
75
|
.option('--verbose', 'Show full error stacks for recent failures')
|
|
75
|
-
.action(
|
|
76
|
-
await providersCommand(options);
|
|
77
|
-
});
|
|
76
|
+
.action(providersCommand);
|
|
78
77
|
// ── Default: show help ───────────────────────────────────────
|
|
79
78
|
if (process.argv.length <= 2) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
console.log(BANNER);
|
|
83
|
-
program.help();
|
|
84
|
-
});
|
|
79
|
+
console.log(BANNER);
|
|
80
|
+
program.help();
|
|
85
81
|
}
|
|
86
82
|
else {
|
|
87
|
-
program.
|
|
83
|
+
program.parseAsync();
|
|
88
84
|
}
|
|
89
85
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,gEAAgE;AAChE,2BAA2B;AAC3B,+CAA+C;AAC/C,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/chat.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,MAAM;IACrB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAmfD,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwErE"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
// ─────────────────────────────────────────────────────────────
|
|
2
|
-
// mythos-router :: commands/chat.ts
|
|
3
|
-
// Interactive REPL with Capybara thinking protocol
|
|
4
|
-
// + Budget Limiter + Dry-Run + Verbose modes
|
|
5
|
-
// ─────────────────────────────────────────────────────────────
|
|
6
1
|
import * as readline from 'node:readline';
|
|
7
2
|
import * as path from 'node:path';
|
|
8
|
-
import { formatTokenUsage } from '../client.js';
|
|
3
|
+
import { formatTokenUsage, getOrchestrator } from '../client.js';
|
|
9
4
|
import { SWDEngine, parseActions, summarizeActions } from '../swd.js';
|
|
10
5
|
import { printSWDResults, dryRunSWD, printVerboseParse } from '../swd-cli.js';
|
|
11
6
|
import { saveSessionMetric } from '../metrics.js';
|
|
@@ -13,9 +8,9 @@ import { appendEntry, appendMetadataBlock, needsDream, getMemoryContext, printMe
|
|
|
13
8
|
import { MAX_CORRECTION_RETRIES, MODELS, validateApiKey } from '../config.js';
|
|
14
9
|
import { c, Spinner, BANNER, hr, heading, error as logError, warn as logWarn, success as logSuccess, runTestCommand } from '../utils.js';
|
|
15
10
|
import { SessionBudget } from '../budget.js';
|
|
16
|
-
import { getOrchestrator } from '../client.js';
|
|
17
11
|
import { buildSkillPrompt } from '../skills.js';
|
|
18
12
|
import { isGitRepo, hasUncommittedChanges, getCurrentBranch, commitChanges, getLatestHash, createAndCheckoutBranch } from '../git.js';
|
|
13
|
+
import { saveSession, loadSession, formatResumeInfo } from '../session.js';
|
|
19
14
|
// ── Chat Session Manager ─────────────────────────────────────
|
|
20
15
|
class ChatSession {
|
|
21
16
|
history = [];
|
|
@@ -36,7 +31,7 @@ class ChatSession {
|
|
|
36
31
|
let budgetMultiplier = 1.0;
|
|
37
32
|
try {
|
|
38
33
|
const skills = typeof options.skill === 'string' ? [options.skill] : (options.skill || []);
|
|
39
|
-
const skillResult = buildSkillPrompt(
|
|
34
|
+
const skillResult = buildSkillPrompt('', skills);
|
|
40
35
|
this.finalSystemPrompt = skillResult.prompt;
|
|
41
36
|
this.maxOutputTokens = skillResult.maxOutputTokens;
|
|
42
37
|
this.forceProvider = skillResult.forceProvider;
|
|
@@ -100,7 +95,56 @@ class ChatSession {
|
|
|
100
95
|
createAndCheckoutBranch(branchName);
|
|
101
96
|
return branchName;
|
|
102
97
|
}
|
|
98
|
+
async enforceContextWindowGuard() {
|
|
99
|
+
let historyLength = 0;
|
|
100
|
+
for (const msg of this.history) {
|
|
101
|
+
historyLength += msg.content.length;
|
|
102
|
+
}
|
|
103
|
+
// 1. Token estimation with 1.2x safety multiplier
|
|
104
|
+
const historyTokens = Math.ceil((historyLength / 4) * 1.2);
|
|
105
|
+
const systemPromptTokens = Math.ceil(((this.finalSystemPrompt?.length ?? 0) / 4) * 1.2);
|
|
106
|
+
// 3. System prompt inclusion safety buffer
|
|
107
|
+
const RESPONSE_BUFFER = 8192;
|
|
108
|
+
const effectiveLimit = 150_000 - systemPromptTokens - RESPONSE_BUFFER;
|
|
109
|
+
// 2. Compression ceiling rule
|
|
110
|
+
const MAX_MESSAGES = 120;
|
|
111
|
+
const overTokenLimit = historyTokens > effectiveLimit;
|
|
112
|
+
const overMessageLimit = this.history.length > MAX_MESSAGES;
|
|
113
|
+
if (!overTokenLimit && !overMessageLimit)
|
|
114
|
+
return;
|
|
115
|
+
// At least 60%, or more if needed to get under the message cap
|
|
116
|
+
const messagesToCompress = Math.max(Math.floor(this.history.length * 0.6), this.history.length - (MAX_MESSAGES - 1));
|
|
117
|
+
if (messagesToCompress < 2)
|
|
118
|
+
return;
|
|
119
|
+
const toCompress = this.history.slice(0, messagesToCompress);
|
|
120
|
+
const toKeep = this.history.slice(messagesToCompress);
|
|
121
|
+
const reason = overMessageLimit ? `message cap (> ${MAX_MESSAGES})` : '150k token limit';
|
|
122
|
+
this.ui.warn(`\n${c.yellow}Context approaching ${reason}. Compressing oldest ${messagesToCompress} turns...${c.reset}`);
|
|
123
|
+
const prompt = `Please summarize the following older conversation context into a dense, factual summary. Preserve all technical decisions, constraints, paths, and context needed to continue the work.\n\n<history>\n${JSON.stringify(toCompress, null, 2)}\n</history>`;
|
|
124
|
+
try {
|
|
125
|
+
const orchestrator = getOrchestrator();
|
|
126
|
+
const response = await orchestrator.sendMessage([{ role: 'user', content: prompt }], {
|
|
127
|
+
systemPrompt: 'You are a core memory compression system. Be extremely dense and factual.',
|
|
128
|
+
effort: 'low',
|
|
129
|
+
maxTokens: 4096,
|
|
130
|
+
deterministic: !!this.forceProvider
|
|
131
|
+
});
|
|
132
|
+
this.budget.record(response.usage.inputTokens, response.usage.outputTokens);
|
|
133
|
+
this.history = [
|
|
134
|
+
{ role: 'user', content: `[CONTEXT SUMMARY OF PREVIOUS TURNS]\n${response.text}` },
|
|
135
|
+
{ role: 'assistant', content: 'Acknowledged. I have the compressed context and will continue from here.' },
|
|
136
|
+
...toKeep
|
|
137
|
+
];
|
|
138
|
+
appendEntry('Context Compression', `Summarized ${messagesToCompress} turns to prevent context overflow.`, this.options.dryRun);
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
this.ui.warn(`\n${c.red}Summarization failed (${err.message}). Falling back to hard truncation.${c.reset}`);
|
|
142
|
+
this.history = toKeep;
|
|
143
|
+
appendEntry('Context Compression', `Hard truncation of ${messagesToCompress} turns due to summary failure.`, this.options.dryRun);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
103
146
|
async processInput(input) {
|
|
147
|
+
await this.enforceContextWindowGuard();
|
|
104
148
|
this.history.push({ role: 'user', content: input });
|
|
105
149
|
this.ui.startLoading('Capybara is thinking...');
|
|
106
150
|
let thinkingTokens = 0;
|
|
@@ -356,6 +400,19 @@ class ChatSession {
|
|
|
356
400
|
timestamp: new Date().toISOString(),
|
|
357
401
|
});
|
|
358
402
|
}
|
|
403
|
+
// Persist session for --resume
|
|
404
|
+
if (this.history.length > 0 && !this.options.dryRun) {
|
|
405
|
+
try {
|
|
406
|
+
saveSession(this.history, {
|
|
407
|
+
inputTokens: snap.inputTokens,
|
|
408
|
+
outputTokens: snap.outputTokens,
|
|
409
|
+
turns: snap.turns,
|
|
410
|
+
}, path.basename(process.cwd()));
|
|
411
|
+
}
|
|
412
|
+
catch (err) {
|
|
413
|
+
logWarn(`Session save failed: ${err.message}`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
359
416
|
}
|
|
360
417
|
}
|
|
361
418
|
// ── Terminal Implementation of ChatUI ────────────────────────
|
|
@@ -382,6 +439,19 @@ export async function chatCommand(options) {
|
|
|
382
439
|
ui.log(heading(`CHAT SESSION :: ${MODELS.high.toUpperCase()}`));
|
|
383
440
|
if (options.dryRun)
|
|
384
441
|
ui.log(` ${c.bgYellow}${c.black}${c.bold} DRY-RUN MODE ACTIVE ${c.reset}\n`);
|
|
442
|
+
// ── Resume previous session if requested ────────────────
|
|
443
|
+
if (options.resume) {
|
|
444
|
+
const saved = loadSession();
|
|
445
|
+
if (saved) {
|
|
446
|
+
session.history = saved.history;
|
|
447
|
+
// Re-record previous budget usage so the limiter is aware
|
|
448
|
+
session.budget.record(saved.budget.inputTokens, saved.budget.outputTokens);
|
|
449
|
+
ui.success(formatResumeInfo(saved));
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
ui.warn('No resumable session found. Starting fresh.');
|
|
453
|
+
}
|
|
454
|
+
}
|
|
385
455
|
let sandboxBranch = null;
|
|
386
456
|
try {
|
|
387
457
|
sandboxBranch = await session.setupSandbox();
|
|
@@ -398,6 +468,25 @@ export async function chatCommand(options) {
|
|
|
398
468
|
output: process.stdout,
|
|
399
469
|
prompt: `${c.magenta}${c.bold}mythos > ${c.reset}`,
|
|
400
470
|
});
|
|
471
|
+
let finalized = false;
|
|
472
|
+
const safeExit = async () => {
|
|
473
|
+
if (finalized)
|
|
474
|
+
return;
|
|
475
|
+
finalized = true;
|
|
476
|
+
try {
|
|
477
|
+
await session.finalize(sandboxBranch);
|
|
478
|
+
}
|
|
479
|
+
catch (err) {
|
|
480
|
+
logWarn(`Finalize failed: ${err.message}`);
|
|
481
|
+
}
|
|
482
|
+
process.exit(0);
|
|
483
|
+
};
|
|
484
|
+
process.on('SIGINT', () => safeExit());
|
|
485
|
+
process.on('SIGTERM', () => safeExit());
|
|
486
|
+
process.on('uncaughtException', async (err) => {
|
|
487
|
+
logError(`Unexpected error: ${err.stack || err.message}`);
|
|
488
|
+
await safeExit();
|
|
489
|
+
});
|
|
401
490
|
rl.prompt();
|
|
402
491
|
rl.on('line', async (line) => {
|
|
403
492
|
const input = line.trim();
|
|
@@ -413,9 +502,6 @@ export async function chatCommand(options) {
|
|
|
413
502
|
ui.divider();
|
|
414
503
|
rl.prompt();
|
|
415
504
|
});
|
|
416
|
-
rl.on('close',
|
|
417
|
-
await session.finalize(sandboxBranch);
|
|
418
|
-
process.exit(0);
|
|
419
|
-
});
|
|
505
|
+
rl.on('close', safeExit);
|
|
420
506
|
}
|
|
421
507
|
//# sourceMappingURL=chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qCAAqC;AACrC,oDAAoD;AACpD,8CAA8C;AAC9C,gEAAgE;AAEhE,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAiB,gBAAgB,EAAqC,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmB,gBAAgB,EAAsC,MAAM,WAAW,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjH,OAAO,EAAoB,sBAAsB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAe,KAAK,IAAI,QAAQ,EAAE,IAAI,IAAI,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtJ,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAA+B,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAetI,gEAAgE;AAChE,MAAM,WAAW;IACR,OAAO,GAAc,EAAE,CAAC;IACxB,MAAM,CAAgB;IACtB,MAAM,CAAY;IAClB,OAAO,CAAc;IACrB,iBAAiB,GAAW,EAAE,CAAC;IAC/B,eAAe,CAAU;IACzB,aAAa,CAAU;IACtB,EAAE,CAAS;IAEnB,YAAY,OAAoB,EAAE,EAAU;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,sBAAsB;QACtB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;QAC7E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAE9D,cAAc;QACd,IAAI,gBAAgB,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,0BAA0B;YACtG,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;YACnD,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;YAC/C,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;YAEhD,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBACvC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzH,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC7B;YACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YACvD,QAAQ;SACT,EACD,OAAO,CAAC,MAAM,KAAK,KAAK,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YACnG,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YACxE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC;oBAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;;oBAC7C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,+FAA+F;YAC/F,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,6BAA6B,OAAO,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,OAAO,EAAE,EAAE,CAAC,CAAC;gBACrF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEtC,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrF,IAAI,qBAAqB,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAExH,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,8BAA8B,CAAC,CAAC;QAE7H,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QAEnE,UAAU,CAAC,4BAA4B,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;QAEhD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,CAC/C,IAAI,CAAC,OAAO,EACZ;gBACE,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;gBAC1C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAqB;gBAC1C,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;gBACnC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,IAAI,cAAc,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpF,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;wBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,CAAC;gBACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;wBACpF,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;wBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAE5E,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE3D,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAE3C,2DAA2D;YAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;gBAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;gBACvC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;gBACzC,cAAc,EAAE;oBACd,GAAG,QAAQ,CAAC,QAAQ;oBACpB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;iBACpC;aACF,CAAC,EAAE,CAAC,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAErC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC5C,IAAI,OAAO;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAE1C,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,uCAAuC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,YAAoB,EAAE,SAAiB;QAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3C,WAAW,CACT,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,EACzC,gBAAgB,SAAS,CAAC,QAAQ,CAAC,MAAM,cAAc,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAW,EAC3F,IAAI,CACL,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACtB,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,SAAS,CAAC;QACzH,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,UAAwB;QACtD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,sBAAsB,EAAE,OAAO,EAAE,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,yBAAyB,OAAO,IAAI,sBAAsB,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjG,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;iBACnD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC7F,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,MAAM,GAAG,6DAA6D,QAAQ,yDAAyD,sBAAsB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YAEtL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,sBAAsB,OAAO,KAAK,CAAC,CAAC;YAEzD,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,CAC/C,IAAI,CAAC,OAAO,EACZ;oBACE,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;oBAC1C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAqB;oBAC1C,SAAS,EAAE,IAAI,CAAC,eAAe;oBAC/B,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;oBACnC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB;oBAC7C,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;wBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4BAC1B,aAAa,GAAG,IAAI,CAAC;wBACvB,CAAC;wBACD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;iBACF,CACF,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAE5E,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtB,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBAED,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAAC;oBACtC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,gBAAgB,GAAG,QAAQ,CAAC;QAEhC,wDAAwD;QACxD,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CACtC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,IAAI,EAAE,CAAC;QAEZ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAErD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,yBAAyB,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC;YAEjE,6BAA6B;YAC7B,IAAI,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;gBAClH,OAAO;YACT,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;YAEpB,0BAA0B;YAC1B,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACxE,IAAI,OAAO,GAAG,CAAC,IAAI,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;gBAC1D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iDAAiD,gBAAgB,MAAM,mBAAmB,iBAAiB,CAAC,CAAC;YAC5H,CAAC;YACD,gBAAgB,GAAG,mBAAmB,CAAC;YAEvC,yBAAyB;YACzB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,IAAI,GAAG,yBAAyB,CAAC;YACnC,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,IAAI,GAAG,wCAAwC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,0CAA0C,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAEzE,0BAA0B;YAC1B,MAAM,MAAM,GAAG,+BAA+B,GAAG,0FAA0F,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,gCAAgC,MAAM,uJAAuJ,CAAC;YAEtW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;YAEpD,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,CAC/C,IAAI,CAAC,OAAO,EACZ;gBACE,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;gBAC1C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAqB;gBAC1C,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;gBACnC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;gBAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAC1B,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;aACF,CACF,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAE5E,iBAAiB;YACjB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;gBAC5E,MAAM;YACR,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACtB,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,UAAU,+BAA+B,CAAC,CAAC;QAC9E,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IAGM,KAAK,CAAC,QAAQ,CAAC,aAA4B;QAChD,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;QACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,IAAI,qBAAqB,EAAE;oBAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAClE,UAAU,GAAG,aAAa,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAAC,OAAO,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAChJ,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzB,iBAAiB,CAAC;gBAChB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,gBAAgB;gBAC9B,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,UAAU;IACN,OAAO,CAAU;IAEzB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,GAAW,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,aAAa,CAAC,GAAW,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,WAAW,CAAC,GAAY,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAY,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,GAAG,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,GAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAW,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;CACjC;AAgBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,cAAc,EAAE,CAAC;IACjB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7C,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACf,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM;QAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAElG,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB,EAAE,CAAC;IACpB,EAAE,CAAC,OAAO,EAAE,CAAC;IAEb,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE;KACnD,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAEjF,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Message } from './providers/types.js';
|
|
2
|
+
export interface SessionData {
|
|
3
|
+
version: number;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
project: string;
|
|
6
|
+
history: Message[];
|
|
7
|
+
budget: {
|
|
8
|
+
inputTokens: number;
|
|
9
|
+
outputTokens: number;
|
|
10
|
+
turns: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function saveSession(history: Message[], budget: {
|
|
14
|
+
inputTokens: number;
|
|
15
|
+
outputTokens: number;
|
|
16
|
+
turns: number;
|
|
17
|
+
}, project: string): void;
|
|
18
|
+
export declare function loadSession(): SessionData | null;
|
|
19
|
+
export declare function formatResumeInfo(session: SessionData): string;
|
|
20
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAQpD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAGD,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACpE,OAAO,EAAE,MAAM,GACd,IAAI,CAcN;AAGD,wBAAgB,WAAW,IAAI,WAAW,GAAG,IAAI,CAiBhD;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAM7D"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────
|
|
2
|
+
// mythos-router :: session.ts
|
|
3
|
+
// Session persistence — save/resume conversation state
|
|
4
|
+
// Single JSON file, atomic writes, versioned format
|
|
5
|
+
// ─────────────────────────────────────────────────────────────
|
|
6
|
+
import { mkdirSync, writeFileSync, readFileSync, renameSync, existsSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
const SESSION_VERSION = 1;
|
|
10
|
+
const SESSIONS_DIR = join(homedir(), '.mythos-router', 'sessions');
|
|
11
|
+
const SESSION_FILE = join(SESSIONS_DIR, 'latest.json');
|
|
12
|
+
const SESSION_TMP = join(SESSIONS_DIR, 'latest.tmp');
|
|
13
|
+
// ── Save Session (atomic write) ──────────────────────────────
|
|
14
|
+
export function saveSession(history, budget, project) {
|
|
15
|
+
const data = {
|
|
16
|
+
version: SESSION_VERSION,
|
|
17
|
+
timestamp: new Date().toISOString(),
|
|
18
|
+
project,
|
|
19
|
+
history,
|
|
20
|
+
budget,
|
|
21
|
+
};
|
|
22
|
+
mkdirSync(SESSIONS_DIR, { recursive: true });
|
|
23
|
+
// Write to tmp first, then atomic rename
|
|
24
|
+
writeFileSync(SESSION_TMP, JSON.stringify(data, null, 2), 'utf-8');
|
|
25
|
+
renameSync(SESSION_TMP, SESSION_FILE);
|
|
26
|
+
}
|
|
27
|
+
// ── Load Session ─────────────────────────────────────────────
|
|
28
|
+
export function loadSession() {
|
|
29
|
+
if (!existsSync(SESSION_FILE))
|
|
30
|
+
return null;
|
|
31
|
+
try {
|
|
32
|
+
const raw = readFileSync(SESSION_FILE, 'utf-8');
|
|
33
|
+
const data = JSON.parse(raw);
|
|
34
|
+
// Version guard — silently ignore incompatible sessions
|
|
35
|
+
if (data.version !== SESSION_VERSION)
|
|
36
|
+
return null;
|
|
37
|
+
// Basic shape validation
|
|
38
|
+
if (!Array.isArray(data.history) || !data.budget || !data.timestamp)
|
|
39
|
+
return null;
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ── Format resume info for terminal ──────────────────────────
|
|
47
|
+
export function formatResumeInfo(session) {
|
|
48
|
+
const date = new Date(session.timestamp);
|
|
49
|
+
const timeStr = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
|
|
50
|
+
const dateStr = date.toLocaleDateString();
|
|
51
|
+
const totalTokens = session.budget.inputTokens + session.budget.outputTokens;
|
|
52
|
+
return `Resuming session from ${dateStr} ${timeStr} (${session.history.length} messages, ${totalTokens.toLocaleString()} tokens, ${session.budget.turns} turns)`;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,+BAA+B;AAC/B,wDAAwD;AACxD,qDAAqD;AACrD,gEAAgE;AAEhE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;AACnE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAerD,gEAAgE;AAChE,MAAM,UAAU,WAAW,CACzB,OAAkB,EAClB,MAAoE,EACpE,OAAe;IAEf,MAAM,IAAI,GAAgB;QACxB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC;IAEF,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,yCAAyC;IACzC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7B,wDAAwD;QACxD,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe;YAAE,OAAO,IAAI,CAAC;QAElD,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEjF,OAAO,IAAmB,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAC7E,OAAO,yBAAyB,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,cAAc,WAAW,CAAC,cAAc,EAAE,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AACnK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mythos-router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Capybara-tier CLI router — Claude Opus 4.7 with Adaptive Thinking, Strict Write Discipline, and Self-Healing Memory",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"mythos": "
|
|
8
|
-
"mythos-router": "
|
|
7
|
+
"mythos": "dist/cli.js",
|
|
8
|
+
"mythos-router": "dist/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"main": "./dist/index.js",
|
|
11
11
|
"exports": {
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
"engines": {
|
|
69
69
|
"node": ">=20.0.0"
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|