mythos-router 1.1.7 → 1.1.9

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 ADDED
@@ -0,0 +1,123 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [1.1.9] — 2026-04-22
11
+
12
+ ### Added
13
+ - **Budget Analytics & Cost Profiling** — Persistent tracking of token usage and API costs across all sessions, projects, and commands.
14
+ - **`mythos stats` Command** — New reporting engine for financial transparency. Aggregate costs by command, project, or time period (last N days).
15
+ - **Global Metrics Store** — Local append-only JSON store in `~/.mythos-router/metrics.json` for cross-project financial auditing.
16
+ - **Session Instrumentation** — Automated recording of chat sessions and memory compression (dream) events.
17
+
18
+ ---
19
+
20
+ ## [1.1.8] — 2026-04-20
21
+
22
+ ### Added
23
+ - **Self-Healing Memory (V4)** — Re-architected memory system with a dual Authority/Derivative model. `MEMORY.md` remains the sole source of truth, backed by a rebuildable SQLite index.
24
+ - **SQLite Derivative Index** — High-performance query acceleration layer using `node:sqlite`.
25
+ - **FTS5 Smart Search** — Intelligent, ranked text retrieval via FTS5 virtual tables with `unicode61` tokenization.
26
+ - **Integrity Signposting** — SHA-256 manifest hashing on startup ensuring zero drift between the authoritative log and the search index.
27
+ - **Atomic Rebuilds** — Transactional reconstruction logic (`BEGIN/COMMIT`) to ensure index consistency even during hard crashes.
28
+
29
+ ### Changed
30
+ - **O(1) Append Protocol** — Optimized logging to use `appendFileSync` for better performance and durability under load.
31
+ - **Hardened Test Suite** — Expanded testing to verify SQLite initialization, FTS5 search ranking, and recovery logic.
32
+
33
+ ---
34
+
35
+ ## [1.1.7] — 2026-04-19
36
+
37
+ ### Added
38
+ - **Interactive Inline Diffs** — High-fidelity terminal previews for dry-run mode. Review exact line changes with ANSI coloring and line numbering before applying.
39
+ - **Myers Diff Engine** — Implemented a zero-dependency, line-based shortest-edit-script algorithm in `src/diff.ts`.
40
+
41
+ ### Changed
42
+ - **SWD Protocol Upgrade** — Updated the "Capybara" system prompt to include the `CONTENT` field for 100% verifiability of file operations.
43
+ - **Enhanced Regex Parsing** — Robust multi-line block extraction for complex code transfers.
44
+
45
+ ---
46
+
47
+ ## [1.1.6] — 2026-04-19
48
+
49
+ ### Added
50
+ - **Atomic SWD Rollbacks** — Transactional filesystem safety. If any file action in a batch fails verification, the entire operation is reverted to its pristine state.
51
+ - **Claude Opus 4.7 Support** — Official integration as the default `high` effort model.
52
+ - **Adaptive Thinking Protocol** — Real-time streaming of model reasoning in the CLI REPL.
53
+ - **Enhanced Dry-Run Previews** — Per-action confirmation prompts with detailed diff-style metadata.
54
+ - **Adaptive Thinking Mode** — Full support in `client.ts` for thought-process streaming.
55
+
56
+ ### Changed
57
+ - Updated model identifiers for Claude Opus 4.7 compatibility.
58
+ - Added SDK usage examples for programmatic integration.
59
+ - Updated pricing constants and tokenization logic for Opus 4.7 compatibility.
60
+ - Improved memory summarization "Dream" logic and session budget visualization.
61
+
62
+ ### Fixed
63
+ - Deduplicated internal `progressBar` utility.
64
+ - `--effort` flag now validates input and warns on unrecognized values.
65
+ - Improved path traversal detection in `resolveSafePath`.
66
+ - Fixed memory leakage in long REPL sessions.
67
+
68
+ ---
69
+
70
+ ## [1.1.3] — 2026-04-17
71
+
72
+ ### Added
73
+ - **Programmable SDK API** — Added the `src/index.ts` entry point and updated package module resolution.
74
+ - **Exposed Modules** — Native export of `{ runSWD, streamMessage, snapshotFiles }` for external integration.
75
+ - **SDK Documentation** — Integrated a new SDK Usage guide into the `README.md`.
76
+
77
+ ---
78
+
79
+ ## [1.1.2] — 2026-04-17
80
+
81
+ ### Added
82
+ - **Multi-Model Orchestration** — Dynamic routing engine delegating tasks by effort (Opus 4.7 for Thinking, Sonnet 3.5 for Writing, Haiku 3 for Verifying).
83
+ - **Dynamic CLI Badging** — Terminal now explicitly displays the exact model assigned to the current session.
84
+ - **Protocol Tokenomics** — Added the official `TOKENOMICS.md`, formalizing the $MYTHOS Reasoning Tier Matrix.
85
+
86
+ ---
87
+
88
+ ## [1.1.1] — 2026-04-12
89
+
90
+ ### Fixed
91
+ - **Zero-Drift Accuracy** — Filesystem scanner now recursively snapshots subdirectories for 100% drift detection.
92
+ - **True Dry-Run** — Fixed an issue where `MEMORY.md` was being created on disk even with the `--dry-run` flag.
93
+ - **Memory Example** — Enriched the default `MEMORY.md` to reflect real sessions with file modifications.
94
+ - **Codebase Polish** — Removed unused imports and obsolete Git-status checks.
95
+
96
+ ---
97
+
98
+ ## [1.1.0] — 2026-03-31
99
+
100
+ ### Added
101
+ - **Financial Safety** — Hard budget cap and token tracker to prevent bill-shock.
102
+ - **Dry-Run Mode** — Preview all file operations with `[Y/n]` prompts before execution.
103
+ - **Strict Write Discipline** — Enhanced verification logic for cleaner code.
104
+ - **Zero-Drift Scanning** — Initial `verify` command implementation.
105
+
106
+ ---
107
+
108
+ ## [1.0.0] — 2026-03-29
109
+
110
+ ### Added
111
+ - Initial release of mythos-router.
112
+ - **Strict Write Discipline (SWD)** — pre/post filesystem snapshot verification.
113
+ - **Adaptive Thinking** — Claude Opus with configurable effort levels.
114
+ - **Self-Healing Memory** — `MEMORY.md` auto-logging with verification status.
115
+ - **Correction Turns** — max 2 retries before yielding to human.
116
+ - **Dream/Verify Commands** — memory compression and drift detection.
117
+
118
+ [1.1.6]: https://github.com/thewaltero/mythos-router/compare/v1.1.3...v1.1.6
119
+ [1.1.3]: https://github.com/thewaltero/mythos-router/compare/v1.1.2...v1.1.3
120
+ [1.1.2]: https://github.com/thewaltero/mythos-router/compare/v1.1.1...v1.1.2
121
+ [1.1.1]: https://github.com/thewaltero/mythos-router/compare/v1.1.0...v1.1.1
122
+ [1.1.0]: https://github.com/thewaltero/mythos-router/compare/v1.0.0...v1.1.0
123
+ [1.0.0]: https://github.com/thewaltero/mythos-router/releases/tag/v1.0.0
package/README.md CHANGED
@@ -49,12 +49,14 @@ Zero slop. Zero hallucinated state. Full adaptive thinking.
49
49
  |---------|-------------|
50
50
  | **Adaptive Thinking** | Opus 4.7 with configurable effort levels (high/medium/low) |
51
51
  | **Strict Write Discipline** | Pre/post filesystem snapshots verify every model claim |
52
- | **Self-Healing Memory** | `MEMORY.md` logs every action; auto-compresses via "Dream" |
52
+ | **Self-Healing Memory** | Authority-based logging with a rebuildable SQLite FTS5 search index |
53
53
  | **Correction Turns** | Model gets 2 retries to match filesystem reality, then yields |
54
- | **Drift Detection** | `verify` command syncs codebase state with memory |
54
+ | **Integrity Gate** | `verify` command and startup hashing ensure zero drift |
55
55
  | **Token Limiter** | Budget cap with graceful save — progress saved to MEMORY.md, never lose work |
56
56
  | **Dry-Run Mode** | Preview every file operation before it executes — full transparency |
57
57
  | **Verbose Tracing** | See exactly what the AI is parsing, thinking, and verifying |
58
+ | **Budget Analytics** | Persistent tracking of cost across sessions and projects via `stats` |
59
+ | **Session Branching** | Isolate AI actions in a namespaced git branch (`mythos/`) |
58
60
  | **Zero Build** | Runs directly via `tsx` — no compile step in dev |
59
61
 
60
62
  ---
@@ -72,10 +74,12 @@ Choose the right model for the job via the `--effort` flag:
72
74
 
73
75
  The `dream` command automatically uses `low` effort (Haiku) for cost-efficient memory compression, and `verify` uses lightweight scanning — so you only burn Opus tokens when you need deep reasoning.
74
76
 
75
- ### 2. Automated "Dream" Summarization
76
- Even with massive 200k+ context windows, models suffer from degradation ("lost in the middle") when packed with raw chat history.
77
+ ### 2. Authority-Based "Self-Healing" Memory
78
+ Most agentic systems stored state in opaque databases or messy JSON files. Mythos Router treats `MEMORY.md` as the **Sole Authority**.
77
79
 
78
- As memory approaches capacity, the `dream` command delegates a compression phase to a low-cost model (Haiku 3). It condenses transaction logs into tight summaries while preserving core architectural decisions and constraints. This prevents context drift and saves API costs on every subsequent turn.
80
+ Every action is logged in Markdown first. On startup, the system verifies the integrity of the log via SHA-256 manifest hashing and reconstructs a high-performance **Derivative SQLite Index** (FTS5). If the index drifts or the database is deleted, the system self-heals by rebuilding from the authoritative Markdown source.
81
+
82
+ As memory approaches capacity, the `dream` command delegates a compression phase to a low-cost model (Haiku 3), ensuring your "Sacred Log" is always lean and relevant.
79
83
 
80
84
  ---
81
85
 
@@ -122,6 +126,7 @@ mythos chat --effort low # Budget mode (Haiku 3)
122
126
  mythos chat --effort medium # Balanced (Sonnet 3.5)
123
127
  mythos chat --dry-run # Preview all file changes before executing
124
128
  mythos chat --verbose # See full SWD traces and thinking
129
+ mythos chat --branch refactor # Isolate session in a fresh git branch
125
130
  mythos chat --dry-run --verbose # Maximum transparency
126
131
  ```
127
132
 
@@ -196,6 +201,20 @@ mythos dream --dry-run # Preview without writing
196
201
 
197
202
  When `MEMORY.md` exceeds 100 entries, older logs are compressed into a summary block using Claude (low effort, minimal token burn). Recent entries are preserved intact.
198
203
 
204
+ ### `mythos stats` — Budget Analytics & Cost Profiling
205
+
206
+ ```bash
207
+ mythos stats # Show all-time token usage and costs
208
+ mythos stats --days 7 # Filter for the last week
209
+ ```
210
+
211
+ Tracks every penny spent across all your projects. Costs are aggregated by:
212
+ - **Command** (e.g., `chat` vs `dream`)
213
+ - **Project** (directory name)
214
+ - **Time Period**
215
+
216
+ Data is stored locally in `~/.mythos-router/metrics.json`.
217
+
199
218
  ### 🔌 SDK Usage (For Agentic Systems)
200
219
 
201
220
  `mythos-router` exposes its Strict Write Discipline engine for programmatic use:
@@ -232,11 +251,13 @@ mythos-router/
232
251
  │ ├── budget.ts # Session budget limiter (token cap, turn cap)
233
252
  │ ├── swd.ts # Strict Write Discipline + dry-run preview
234
253
  │ ├── memory.ts # MEMORY.md self-healing manager (dry-run aware)
254
+ │ ├── metrics.ts # Global metrics store (persistent budget tracking)
235
255
  │ ├── utils.ts # Terminal formatting, badges, prompts (zero-dep)
236
256
  │ └── commands/
237
257
  │ ├── chat.ts # Interactive REPL (budget + dry-run + verbose)
238
258
  │ ├── verify.ts # Codebase ↔ Memory scanner (dry-run aware)
239
- └── dream.ts # Memory compression (dry-run aware)
259
+ ├── dream.ts # Memory compression (dry-run aware)
260
+ │ └── stats.ts # Budget analytics reporter
240
261
  ├── test/ # Automated test suite (node:test)
241
262
  ├── .mythosignore # SWD scan exclusions
242
263
  ├── MEMORY.md # Auto-generated agentic memory
package/dist/cli.js CHANGED
@@ -7,13 +7,14 @@ import { Command } from 'commander';
7
7
  import { chatCommand } from './commands/chat.js';
8
8
  import { verifyCommand } from './commands/verify.js';
9
9
  import { dreamCommand } from './commands/dream.js';
10
+ import { statsCommand } from './commands/stats.js';
10
11
  import { DEFAULT_MAX_TOKENS_PER_SESSION, DEFAULT_MAX_TURNS, } from './config.js';
11
12
  const program = new Command();
12
13
  program
13
14
  .name('mythos')
14
15
  .description('Capybara-tier CLI router — Claude Opus 4.7 with Adaptive Thinking, ' +
15
16
  'Strict Write Discipline, and Self-Healing Memory.')
16
- .version('1.1.7');
17
+ .version('1.1.9');
17
18
  // ── mythos chat ──────────────────────────────────────────────
18
19
  program
19
20
  .command('chat')
@@ -24,6 +25,7 @@ program
24
25
  .option('--no-budget', 'Disable budget limits (expert mode — use at your own risk)')
25
26
  .option('--dry-run', 'Preview all file operations without executing them')
26
27
  .option('--verbose', 'Show detailed SWD traces and memory operations')
28
+ .option('-b, --branch <name>', 'Run session in a new git branch for sandboxed reasoning')
27
29
  .action(async (options) => {
28
30
  await chatCommand(options);
29
31
  });
@@ -44,6 +46,14 @@ program
44
46
  .action(async (options) => {
45
47
  await dreamCommand(options);
46
48
  });
49
+ // ── mythos stats ─────────────────────────────────────────────
50
+ program
51
+ .command('stats')
52
+ .description('Show budget analytics and token usage across sessions')
53
+ .option('-d, --days <n>', 'Filter metrics by the last N days')
54
+ .action(async (options) => {
55
+ await statsCommand(options);
56
+ });
47
57
  // ── Default: show help ───────────────────────────────────────
48
58
  if (process.argv.length <= 2) {
49
59
  // Import banner and show it before help
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,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,EACL,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,qEAAqE;IACrE,mDAAmD,CACpD;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CACL,sBAAsB,EACtB,8CAA8C,EAC9C,MAAM,CACP;KACA,MAAM,CACL,kBAAkB,EAClB,oCAAoC,8BAA8B,CAAC,cAAc,EAAE,GAAG,EACtF,MAAM,CAAC,8BAA8B,CAAC,CACvC;KACA,MAAM,CACL,iBAAiB,EACjB,mCAAmC,iBAAiB,GAAG,EACvD,MAAM,CAAC,iBAAiB,CAAC,CAC1B;KACA,MAAM,CACL,aAAa,EACb,4DAA4D,CAC7D;KACA,MAAM,CACL,WAAW,EACX,oDAAoD,CACrD;KACA,MAAM,CACL,WAAW,EACX,gDAAgD,CACjD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CACL,WAAW,EACX,mDAAmD,CACpD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,mCAAmC,EAAE,KAAK,CAAC;KACjE,MAAM,CACL,WAAW,EACX,kDAAkD,CACnD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ interface ChatOptions {
5
5
  budget?: boolean;
6
6
  dryRun?: boolean;
7
7
  verbose?: boolean;
8
+ branch?: string;
8
9
  }
9
10
  export declare function chatCommand(options: ChatOptions): Promise<void>;
10
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAsCA,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;CACnB;AAGD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2RrE"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAiDA,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;CACjB;AAGD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwWrE"}
@@ -6,10 +6,13 @@
6
6
  import * as readline from 'node:readline';
7
7
  import { streamMessage, formatTokenUsage, } from '../client.js';
8
8
  import { snapshotFiles, runSWD, printSWDResults, parseFileActions, dryRunSWD, printVerboseParse, resolveSafePath, } from '../swd.js';
9
- import { appendEntry, needsDream, printMemoryStatus, getMemoryContext, } from '../memory.js';
9
+ import { saveSessionMetric } from '../metrics.js';
10
+ import * as path from 'node:path';
11
+ import { appendEntry, appendMetadataBlock, needsDream, printMemoryStatus, getMemoryContext, } from '../memory.js';
10
12
  import { MAX_CORRECTION_RETRIES, BUDGET_WARN_PERCENT, MODELS, } from '../config.js';
11
- import { c, Spinner, BANNER, hr, dryRunBadge, verboseBadge } from '../utils.js';
13
+ import { c, Spinner, BANNER, hr, dryRunBadge, verboseBadge, error as logError, warn as logWarn } from '../utils.js';
12
14
  import { SessionBudget } from '../budget.js';
15
+ import { isGitRepo, hasUncommittedChanges, getCurrentBranch, createAndCheckoutBranch, commitChanges, getLatestHash, } from '../git.js';
13
16
  // ── Chat Command ─────────────────────────────────────────────
14
17
  export async function chatCommand(options) {
15
18
  const effort = (options.effort ?? 'high');
@@ -21,6 +24,44 @@ export async function chatCommand(options) {
21
24
  maxTokens: parseInt(options.maxTokens ?? '500000', 10) || 500_000,
22
25
  maxTurns: parseInt(options.maxTurns ?? '25', 10) || 25,
23
26
  }, budgetEnabled);
27
+ // ── Sandbox Branching ────────────────────────────────────
28
+ let sandboxBranch = null;
29
+ if (options.branch) {
30
+ if (!isGitRepo()) {
31
+ logError('Not a git repository. Cannot use --branch flag.');
32
+ process.exit(1);
33
+ }
34
+ const current = getCurrentBranch();
35
+ if (current.startsWith('mythos/')) {
36
+ logError(`Already inside a mythos branch session: ${c.bold}${current}${c.reset}`);
37
+ logError('Nested sandboxing is blocked to prevent Git ambiguity.');
38
+ process.exit(1);
39
+ }
40
+ if (hasUncommittedChanges()) {
41
+ logError('Uncommitted changes detected in working tree.');
42
+ logError('Please commit or stash your changes before starting a sandboxed session.');
43
+ process.exit(1);
44
+ }
45
+ // Generate unique branch name: mythos/<name>-YYYYMMDD-HHMM
46
+ const timestampStr = new Date()
47
+ .toISOString()
48
+ .replace(/[-T:]/g, '')
49
+ .slice(0, 12); // YYYYMMDDHHMM
50
+ const formattedTimestamp = `${timestampStr.slice(0, 8)}-${timestampStr.slice(8)}`;
51
+ const sanitizedName = options.branch
52
+ .toLowerCase()
53
+ .replace(/[^a-z0-9]/g, '-')
54
+ .replace(/-+/g, '-')
55
+ .replace(/^-|-$/g, '');
56
+ sandboxBranch = `mythos/${sanitizedName}-${formattedTimestamp}`;
57
+ try {
58
+ createAndCheckoutBranch(sandboxBranch);
59
+ }
60
+ catch (err) {
61
+ logError(`Failed to create sandbox branch: ${err.message}`);
62
+ process.exit(1);
63
+ }
64
+ }
24
65
  // ── Banner ───────────────────────────────────────────────
25
66
  console.log(BANNER);
26
67
  // Mode badges
@@ -35,6 +76,10 @@ export async function chatCommand(options) {
35
76
  if (!budgetEnabled)
36
77
  modes.push(`${c.yellow}budget: disabled${c.reset}`);
37
78
  console.log(` ${modes.join(' · ')}`);
79
+ if (sandboxBranch) {
80
+ console.log(` ${c.green}✔ Sandbox mode enabled${c.reset}`);
81
+ console.log(` ${c.dim}branch: ${c.bold}${sandboxBranch}${c.reset}`);
82
+ }
38
83
  if (dryRun) {
39
84
  console.log(` ${dryRunBadge()} ${c.dim}Filesystem writes previewed. API calls execute normally.${c.reset}`);
40
85
  }
@@ -86,9 +131,13 @@ export async function chatCommand(options) {
86
131
  if (budgetEnabled && budget.status().turns > 0) {
87
132
  console.log(`\n${budget.formatBar()}`);
88
133
  }
134
+ if (sandboxBranch) {
135
+ console.log(`\n${c.green}✔ Session complete${c.reset} ${c.dim}(branch: ${c.bold}${sandboxBranch}${c.dim})${c.reset}`);
136
+ }
137
+ // ── Session Finalization (Auto-Commit + Metadata) ──
138
+ await finalizeSession(sandboxBranch, dryRun);
89
139
  console.log(`\n${c.dim}Capybara signing off. 🐾${c.reset}\n`);
90
- rl.close();
91
- process.exit(0);
140
+ shutdown();
92
141
  }
93
142
  if (input === '/dream') {
94
143
  console.log(`${c.dim}Use ${c.cyan}mythos dream${c.dim} command for memory compression.${c.reset}`);
@@ -117,12 +166,13 @@ export async function chatCommand(options) {
117
166
  // ── Graceful Save: persist progress before stopping ──
118
167
  const summary = budget.formatSessionSummary();
119
168
  appendEntry(summary, '⏸ Session paused — budget reached', dryRun);
169
+ // Finalize session with metadata
170
+ await finalizeSession(sandboxBranch, dryRun);
120
171
  const warning = budget.formatWarning();
121
172
  if (warning)
122
173
  console.log(`\n${warning}`);
123
174
  console.log(`\n${budget.formatBar()}`);
124
- rl.close();
125
- process.exit(0);
175
+ shutdown();
126
176
  }
127
177
  // Add user message
128
178
  conversationHistory.push({ role: 'user', content: input });
@@ -236,8 +286,25 @@ export async function chatCommand(options) {
236
286
  console.log(hr());
237
287
  rl.prompt();
238
288
  });
239
- rl.on('close', () => {
289
+ function shutdown() {
290
+ const snap = budget.status();
291
+ if (snap.totalTokens > 0) {
292
+ saveSessionMetric({
293
+ command: 'chat',
294
+ project: path.basename(process.cwd()),
295
+ inputTokens: snap.inputTokens,
296
+ outputTokens: snap.outputTokens,
297
+ turns: snap.turns,
298
+ costUSD: snap.estimatedCostUSD,
299
+ durationMs: snap.elapsedMs,
300
+ timestamp: new Date().toISOString(),
301
+ });
302
+ }
303
+ rl.close();
240
304
  process.exit(0);
305
+ }
306
+ rl.on('close', () => {
307
+ shutdown();
241
308
  });
242
309
  }
243
310
  // ── Correction Loop ──────────────────────────────────────────
@@ -322,4 +389,30 @@ function summarizeActions(output, userInput) {
322
389
  // Fallback: first 80 chars of user input
323
390
  return `chat: ${userInput.slice(0, 80)}`;
324
391
  }
392
+ /**
393
+ * Handles deterministic session finalization:
394
+ * 1. Auto-commits changes (if git and dirty)
395
+ * 2. Records commit hash and branch in MEMORY.md metadata block
396
+ */
397
+ async function finalizeSession(sandboxBranch, dryRun) {
398
+ let commitHash = 'none';
399
+ const repo = isGitRepo();
400
+ if (repo && !dryRun) {
401
+ try {
402
+ if (hasUncommittedChanges()) {
403
+ commitChanges('mythos: session end');
404
+ }
405
+ commitHash = getLatestHash();
406
+ }
407
+ catch (err) {
408
+ logWarn(`Auto-commit failed: ${err.message}`);
409
+ }
410
+ }
411
+ const metadata = {
412
+ commit: commitHash,
413
+ branch: sandboxBranch || (repo ? getCurrentBranch() : 'none'),
414
+ timestamp_end: new Date().toISOString(),
415
+ };
416
+ appendMetadataBlock(metadata, dryRun);
417
+ }
325
418
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dream.d.ts","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"AAiBA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GhB"}
1
+ {"version":3,"file":"dream.d.ts","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"AAoBA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HhB"}
@@ -5,6 +5,9 @@
5
5
  import { readMemory, writeCompressedMemory, initMemory, appendEntry, } from '../memory.js';
6
6
  import { sendMessage } from '../client.js';
7
7
  import { c, heading, hr, Spinner, success, info, warn, dryRunBadge } from '../utils.js';
8
+ import { saveSessionMetric } from '../metrics.js';
9
+ import { COST_PER_INPUT_TOKEN, COST_PER_OUTPUT_TOKEN } from '../config.js';
10
+ import * as path from 'node:path';
8
11
  // ── Dream Command ────────────────────────────────────────────
9
12
  export async function dreamCommand(options) {
10
13
  const dryRun = options.dryRun === true;
@@ -73,6 +76,18 @@ export async function dreamCommand(options) {
73
76
  console.log(`${c.dim} Before: ${beforeSize} chars → After: ${afterSize} chars (${ratio}% reduction)${c.reset}`);
74
77
  console.log(`${c.dim} Tokens used: ${c.cyan}${response.inputTokens + response.outputTokens}${c.reset}`);
75
78
  appendEntry(`dream: compressed ${toCompress.length} entries`, `✅ ${ratio}% reduction`, dryRun);
79
+ // Save metric
80
+ const costUSD = (response.inputTokens * COST_PER_INPUT_TOKEN) + (response.outputTokens * COST_PER_OUTPUT_TOKEN);
81
+ saveSessionMetric({
82
+ command: 'dream',
83
+ project: path.basename(process.cwd()),
84
+ inputTokens: response.inputTokens,
85
+ outputTokens: response.outputTokens,
86
+ turns: 1,
87
+ costUSD,
88
+ durationMs: 0, // Not easily trackable without start time, 0 is fine
89
+ timestamp: new Date().toISOString(),
90
+ });
76
91
  }
77
92
  catch (err) {
78
93
  spinner.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sCAAsC;AACtC,4CAA4C;AAC5C,gEAAgE;AAEhE,OAAO,EACL,UAAU,EACV,qBAAqB,EAErB,UAAU,EACV,WAAW,GAEZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAGlC;IACC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,iDAAiD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACvG,CAAC;IAED,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAEtE,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,qDAAqD;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAC7F,CAAC;IACF,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,KAAK,IAAI,CACvF,CAAC;IAEF,2CAA2C;IAC3C,MAAM,WAAW,GAAG,UAAU;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC;YACE;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EACL,8EAA8E;oBAC9E,aAAa,UAAU,CAAC,MAAM,8CAA8C;oBAC5E,wDAAwD;oBACxD,uCAAuC;oBACvC,0CAA0C;oBAC1C,8CAA8C;oBAC9C,wDAAwD;oBACxD,yEAAyE;oBACzE,2EAA2E;oBAC3E,mEAAmE;oBACnE,SAAS;oBACT,4CAA4C;oBAC5C,2CAA2C;oBAC3C,WAAW;aACd;SACF,EACD,KAAK,EAAE,6CAA6C;QACpD,6EAA6E,CAC9E,CAAC;QAEF,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErC,0BAA0B;QAC1B,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE/C,QAAQ;QACR,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,CACL,cAAc,UAAU,CAAC,MAAM,0BAA0B,CAC1D,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,GAAG,aAAa,UAAU,mBAAmB,SAAS,WAAW,KAAK,eAAe,CAAC,CAAC,KAAK,EAAE,CACpG,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,EAAE,CAC5F,CAAC;QAEF,WAAW,CACT,qBAAqB,UAAU,CAAC,MAAM,UAAU,EAChD,KAAK,KAAK,aAAa,EACvB,MAAM,CACP,CAAC;QAEF,cAAc;QACd,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,qBAAqB,CAAC,CAAC;QAChH,iBAAiB,CAAC;YAChB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACrC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,KAAK,EAAE,CAAC;YACR,OAAO;YACP,UAAU,EAAE,CAAC,EAAE,qDAAqD;YACpE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpE,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface StatsOptions {
2
+ days?: string;
3
+ }
4
+ export declare function statsCommand(options: StatsOptions): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEvE"}
@@ -0,0 +1,68 @@
1
+ import { loadSessionMetrics } from '../metrics.js';
2
+ import { c, hr, BANNER } from '../utils.js';
3
+ export async function statsCommand(options) {
4
+ const allMetrics = loadSessionMetrics();
5
+ if (allMetrics.length === 0) {
6
+ console.log(BANNER);
7
+ console.log(` ${c.dim}No metrics found yet. Start chatting to log some metrics!${c.reset}`);
8
+ return;
9
+ }
10
+ // Filter by days if provided
11
+ let metrics = allMetrics;
12
+ if (options.days) {
13
+ const days = parseInt(options.days, 10);
14
+ if (!isNaN(days)) {
15
+ const cutoff = new Date();
16
+ cutoff.setDate(cutoff.getDate() - days);
17
+ metrics = allMetrics.filter(m => new Date(m.timestamp) >= cutoff);
18
+ }
19
+ }
20
+ let totalCost = 0;
21
+ let totalInputTokens = 0;
22
+ let totalOutputTokens = 0;
23
+ let totalTurns = 0;
24
+ const costByCommand = {};
25
+ const costByProject = {};
26
+ for (const m of metrics) {
27
+ totalCost += m.costUSD;
28
+ totalInputTokens += m.inputTokens;
29
+ totalOutputTokens += m.outputTokens;
30
+ totalTurns += m.turns;
31
+ costByCommand[m.command] = (costByCommand[m.command] || 0) + m.costUSD;
32
+ costByProject[m.project] = (costByProject[m.project] || 0) + m.costUSD;
33
+ }
34
+ console.log(BANNER);
35
+ console.log(` ${c.cyan}Budget Analytics & Cost Profiling${c.reset}`);
36
+ if (options.days) {
37
+ console.log(` ${c.dim}Showing data for the last ${options.days} days${c.reset}`);
38
+ }
39
+ else {
40
+ console.log(` ${c.dim}Showing all-time data${c.reset}`);
41
+ }
42
+ console.log(hr());
43
+ // Overall Stats
44
+ console.log(`${c.bold}Overall Usage${c.reset}`);
45
+ console.log(` Total Sessions : ${metrics.length}`);
46
+ console.log(` Total Turns : ${totalTurns}`);
47
+ console.log(` Input Tokens : ${totalInputTokens.toLocaleString()}`);
48
+ console.log(` Output Tokens : ${totalOutputTokens.toLocaleString()}`);
49
+ console.log(` Total Cost : ${c.green}$${totalCost.toFixed(4)}${c.reset}`);
50
+ console.log('');
51
+ // Cost by Command
52
+ console.log(`${c.bold}Cost by Command${c.reset}`);
53
+ const sortedCommands = Object.entries(costByCommand).sort((a, b) => b[1] - a[1]);
54
+ for (const [cmd, cost] of sortedCommands) {
55
+ const percentage = totalCost > 0 ? ((cost / totalCost) * 100).toFixed(1) : '0.0';
56
+ console.log(` ${cmd.padEnd(14)} : ${c.green}$${cost.toFixed(4)}${c.reset} ${c.dim}(${percentage}%)${c.reset}`);
57
+ }
58
+ console.log('');
59
+ // Cost by Project
60
+ console.log(`${c.bold}Cost by Project${c.reset}`);
61
+ const sortedProjects = Object.entries(costByProject).sort((a, b) => b[1] - a[1]);
62
+ for (const [proj, cost] of sortedProjects) {
63
+ const percentage = totalCost > 0 ? ((cost / totalCost) * 100).toFixed(1) : '0.0';
64
+ console.log(` ${proj.padEnd(14)} : ${c.green}$${cost.toFixed(4)}${c.reset} ${c.dim}(${percentage}%)${c.reset}`);
65
+ }
66
+ console.log(hr());
67
+ }
68
+ //# sourceMappingURL=stats.js.map