fivocell 4.1.2 → 4.1.3

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prelaunch-reality-check.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prelaunch-reality-check.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/prelaunch-reality-check.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const database_1 = require("../core/database");
37
+ const os = __importStar(require("os"));
38
+ const path = __importStar(require("path"));
39
+ const fs = __importStar(require("fs"));
40
+ // Pre-Launch Reality Check — Tests 1, 3, 5, 6
41
+ // These tests prove that the data backing `cell status --session` and
42
+ // `cell status --decisions` is queryable, well-formed, and survives restart.
43
+ const TMP_HOME = path.join(os.tmpdir(), 'fivo-cell-prelaunch-' + Date.now());
44
+ const REAL_HOME = process.env.USERPROFILE || process.env.HOME || '';
45
+ process.env.USERPROFILE = TMP_HOME;
46
+ process.env.HOME = TMP_HOME;
47
+ const behavioral_tracker_1 = require("../behavioral-tracker");
48
+ beforeAll(() => {
49
+ fs.mkdirSync(TMP_HOME, { recursive: true });
50
+ (0, database_1.initializeDatabase)();
51
+ (0, behavioral_tracker_1.initBehaviorTables)();
52
+ });
53
+ afterAll(() => {
54
+ try {
55
+ fs.rmSync(TMP_HOME, { recursive: true, force: true });
56
+ }
57
+ catch { }
58
+ process.env.USERPROFILE = REAL_HOME;
59
+ process.env.HOME = REAL_HOME;
60
+ });
61
+ describe('Pre-Launch Test 1: cell status --session', () => {
62
+ it('returns last touched file with timestamp', () => {
63
+ const db = (0, database_1.getDb)();
64
+ // Simulate a file save event being recorded
65
+ db.prepare(`
66
+ INSERT INTO session_files (project, file_path, touch_count, first_touched, last_touched)
67
+ VALUES (?, ?, 3, datetime('now', '-5 minutes'), datetime('now'))
68
+ `).run('prelaunch-test', 'src/server.ts');
69
+ const last = (0, behavioral_tracker_1.getLastTouchedFile)('prelaunch-test');
70
+ expect(last).not.toBeNull();
71
+ expect(last?.file).toBe('src/server.ts');
72
+ expect(last?.touchCount).toBe(3);
73
+ });
74
+ it('returns null when no files touched', () => {
75
+ const last = (0, behavioral_tracker_1.getLastTouchedFile)('no-such-project-ever');
76
+ expect(last).toBeNull();
77
+ });
78
+ it('returns most-recent when multiple files exist', () => {
79
+ const db = (0, database_1.getDb)();
80
+ db.prepare(`DELETE FROM session_files WHERE project = 'multi-file-test'`).run();
81
+ db.prepare(`
82
+ INSERT INTO session_files (project, file_path, touch_count, first_touched, last_touched)
83
+ VALUES
84
+ ('multi-file-test', 'src/old.ts', 1, datetime('now', '-1 hour'), datetime('now', '-1 hour')),
85
+ ('multi-file-test', 'src/new.ts', 2, datetime('now'), datetime('now'))
86
+ `).run();
87
+ const last = (0, behavioral_tracker_1.getLastTouchedFile)('multi-file-test');
88
+ expect(last?.file).toBe('src/new.ts');
89
+ });
90
+ it('counts detected patterns', () => {
91
+ const db = (0, database_1.getDb)();
92
+ db.prepare(`DELETE FROM code_patterns WHERE project = 'pattern-test'`).run();
93
+ db.prepare(`
94
+ INSERT INTO code_patterns (project, file_path, pattern_type, pattern_value, category, count, trust_score, language)
95
+ VALUES
96
+ ('pattern-test', 'a.ts', 'quote', 'single', 'style', 50, 90, 'ts'),
97
+ ('pattern-test', 'a.ts', 'semi', 'always', 'style', 50, 90, 'ts'),
98
+ ('pattern-test', 'b.ts', 'blind', 'no-try-catch', 'blind_spots', 5, 80, 'ts')
99
+ `).run();
100
+ const counts = (0, behavioral_tracker_1.getPatternCounts)('pattern-test');
101
+ expect(counts.total).toBe(3);
102
+ expect(counts.byCategory.style).toBe(2);
103
+ expect(counts.byCategory.blind_spots).toBe(1);
104
+ });
105
+ it('exposes current context from logContext', () => {
106
+ (0, behavioral_tracker_1.logContext)({ project: 'ctx-test', task: 'fixing blind spots', files: ['a.ts', 'b.ts'] });
107
+ const summary = (0, behavioral_tracker_1.getBehaviorSummary)('ctx-test');
108
+ expect(summary.currentContext?.task).toBe('fixing blind spots');
109
+ expect(summary.currentContext?.files).toEqual(['a.ts', 'b.ts']);
110
+ });
111
+ });
112
+ describe('Pre-Launch Test 3: cell status --decisions', () => {
113
+ it('returns last 5 decisions with ago + worked flag', () => {
114
+ const proj = 'decisions-test';
115
+ // Insert with explicit, spaced-out timestamps to guarantee ordering
116
+ const db = (0, database_1.getDb)();
117
+ db.prepare(`DELETE FROM decision_log WHERE project = ?`).run(proj);
118
+ db.prepare(`
119
+ INSERT INTO decision_log (project, file_path, decision, worked, decided_at)
120
+ VALUES
121
+ (?, 'a.ts', 'used better-sqlite3 for cross-platform compat', 1, datetime('now', '-3 minutes')),
122
+ (?, 'b.ts', 'skipped ts-node for ESM', 0, datetime('now', '-2 minutes')),
123
+ (?, 'server.ts', 'added outer try/catch in server.ts', 1, datetime('now', '-1 minute'))
124
+ `).run(proj, proj, proj);
125
+ const recent = (0, behavioral_tracker_1.getRecentDecisionsWithAgo)(proj, 5);
126
+ expect(recent.length).toBe(3);
127
+ // Most recent first
128
+ expect(recent[0].decision).toContain('outer try/catch');
129
+ expect(recent[0].worked).toBe(true);
130
+ expect(recent[0].ago).toMatch(/second|minute|hour/);
131
+ });
132
+ it('worked=true renders as Accepted, worked=false as Rejected', () => {
133
+ const proj = 'verdict-test';
134
+ const db = (0, database_1.getDb)();
135
+ db.prepare(`DELETE FROM decision_log WHERE project = ?`).run(proj);
136
+ db.prepare(`
137
+ INSERT INTO decision_log (project, decision, worked, decided_at)
138
+ VALUES
139
+ (?, 'good choice', 1, datetime('now', '-2 minutes')),
140
+ (?, 'bad choice', 0, datetime('now', '-1 minute'))
141
+ `).run(proj, proj);
142
+ const recent = (0, behavioral_tracker_1.getRecentDecisionsWithAgo)(proj, 5);
143
+ const accepted = recent.find(r => r.decision === 'good choice');
144
+ const rejected = recent.find(r => r.decision === 'bad choice');
145
+ expect(accepted?.worked).toBe(true);
146
+ expect(rejected?.worked).toBe(false);
147
+ });
148
+ it('returns empty array for unknown project', () => {
149
+ const recent = (0, behavioral_tracker_1.getRecentDecisionsWithAgo)('no-such-project-' + Date.now());
150
+ expect(recent).toEqual([]);
151
+ });
152
+ it('summary exposes totalDecisions count', () => {
153
+ const proj = 'count-test';
154
+ (0, behavioral_tracker_1.logDecision)({ project: proj, decision: 'one', worked: true });
155
+ (0, behavioral_tracker_1.logDecision)({ project: proj, decision: 'two', worked: false });
156
+ (0, behavioral_tracker_1.logDecision)({ project: proj, decision: 'three', worked: true });
157
+ const summary = (0, behavioral_tracker_1.getBehaviorSummary)(proj);
158
+ expect(summary.totalDecisions).toBeGreaterThanOrEqual(3);
159
+ });
160
+ });
161
+ describe('Pre-Launch Test 6: restart persistence', () => {
162
+ it('decisions survive a fresh summary call (SQLite-backed)', () => {
163
+ const proj = 'persist-test';
164
+ (0, behavioral_tracker_1.logDecision)({ project: proj, decision: 'persistent decision', worked: true });
165
+ // Call summary multiple times to simulate restarts
166
+ const s1 = (0, behavioral_tracker_1.getBehaviorSummary)(proj);
167
+ const s2 = (0, behavioral_tracker_1.getBehaviorSummary)(proj);
168
+ expect(s1.totalDecisions).toBe(s2.totalDecisions);
169
+ expect(s1.totalDecisions).toBeGreaterThanOrEqual(1);
170
+ });
171
+ });
172
+ //# sourceMappingURL=prelaunch-reality-check.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prelaunch-reality-check.test.js","sourceRoot":"","sources":["../../src/__tests__/prelaunch-reality-check.test.ts"],"names":[],"mappings":"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"}
@@ -60,10 +60,52 @@ describe('tool-specific formatting (Unit 2.5)', () => {
60
60
  it('Claude Code format: @cell block with sections', () => {
61
61
  const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude-code');
62
62
  const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'claude-code');
63
- expect(out).toContain('@cell Context');
64
- expect(out).toContain('Developer Context');
65
- expect(out).toContain('Style');
66
- expect(out).toContain('Blind Spots');
63
+ // Pre-Launch Test 7: header uses ⚡ CELL CONTEXT — <project>
64
+ expect(out).toContain(' CELL CONTEXT');
65
+ expect(out).toContain('fivo-cell');
66
+ // New section markers
67
+ expect(out).toContain('📦 PROJECT');
68
+ expect(out).toContain('Stack:');
69
+ expect(out).toContain('⚠️ BLIND SPOTS');
70
+ expect(out).toContain('🎯 LAST SESSION');
71
+ // Footer
72
+ expect(out).toContain('End @cell Context');
73
+ });
74
+ it('Pre-Launch Test 7: divider lines wrap the header', () => {
75
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude-code');
76
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'claude-code');
77
+ const divider = '━'.repeat(15);
78
+ // Header is wrapped with two divider lines
79
+ const dividerMatches = out.match(new RegExp(divider, 'g')) || [];
80
+ expect(dividerMatches.length).toBeGreaterThanOrEqual(2);
81
+ });
82
+ it('Pre-Launch Test 7: real project name appears (not "Fivo-Cell" literal)', () => {
83
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude-code');
84
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'claude-code');
85
+ expect(out).toContain('⚡ CELL CONTEXT — fivo-cell');
86
+ });
87
+ it('Pre-Launch Test 7: blind spots show as → file:line style', () => {
88
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude-code');
89
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'claude-code');
90
+ // blind spot section uses → prefix
91
+ expect(out).toMatch(/⚠️ BLIND SPOTS:[\s\S]*→/);
92
+ });
93
+ it('Pre-Launch Test 7: last session shows working-on task', () => {
94
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude-code');
95
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'claude-code');
96
+ expect(out).toMatch(/🎯 LAST SESSION[\s\S]*Working on:/);
97
+ });
98
+ it('@cell block works for @cell token (canonical name)', () => {
99
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', '@cell');
100
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, '@cell');
101
+ expect(out).toContain('⚡ CELL CONTEXT');
102
+ expect(out).toContain('📦 PROJECT');
103
+ });
104
+ it('@cell block works for cell-block token', () => {
105
+ const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'cell-block');
106
+ const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'cell-block');
107
+ expect(out).toContain('⚡ CELL CONTEXT');
108
+ expect(out).toContain('📦 PROJECT');
67
109
  });
68
110
  it('Cursor format: structured, no narrative, focused on hot files + style + decisions', () => {
69
111
  const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'cursor');
@@ -98,8 +140,9 @@ describe('tool-specific formatting (Unit 2.5)', () => {
98
140
  it('Unknown tool: falls back to @cell block', () => {
99
141
  const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'unknown-tool');
100
142
  const out = (0, prompt_builder_1.formatContextForTool)(ctx, 'unknown-tool');
101
- expect(out).toContain('@cell Context');
102
- expect(out).toContain('Developer Context');
143
+ // Falls back to the new visual @cell block
144
+ expect(out).toContain(' CELL CONTEXT');
145
+ expect(out).toContain('📦 PROJECT');
103
146
  });
104
147
  it('formatContextForTool is case-insensitive', () => {
105
148
  const ctx = (0, prompt_builder_1.buildContext)('fivo-cell', 'claude');
@@ -1 +1 @@
1
- {"version":3,"file":"tool-specific-format.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-specific-format.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-specific-format.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-specific-format.test.ts"],"names":[],"mappings":"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"}
@@ -87,4 +87,34 @@ export declare function getBehaviorSummary(project?: string): {
87
87
  currentContext: ReturnType<typeof getCurrentContext>;
88
88
  stuckIssues: ReturnType<typeof getStuckPatterns>;
89
89
  };
90
+ /**
91
+ * Get the most-recently-touched file in a project, with timestamp + touch count.
92
+ * Source of truth: session_files table (updated by live-watcher on every file_save).
93
+ * Returns null if no files have been touched yet.
94
+ */
95
+ export declare function getLastTouchedFile(project?: string): {
96
+ file: string;
97
+ lastTouched: string;
98
+ touchCount: number;
99
+ } | null;
100
+ /**
101
+ * Count detected patterns for a project, split by category.
102
+ * Mirrors what the @cell block displays under "Patterns detected: N".
103
+ */
104
+ export declare function getPatternCounts(project?: string): {
105
+ total: number;
106
+ byCategory: Record<string, number>;
107
+ };
108
+ /**
109
+ * Get the most recent decisions for a project (with formatted "X minutes ago" string).
110
+ * Default limit 5 — matches what `cell status --decisions` displays.
111
+ */
112
+ export declare function getRecentDecisionsWithAgo(project?: string, limit?: number): Array<{
113
+ id: number;
114
+ file: string;
115
+ decision: string;
116
+ worked: boolean;
117
+ ago: string;
118
+ decidedAt: string;
119
+ }>;
90
120
  //# sourceMappingURL=behavioral-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"behavioral-tracker.d.ts","sourceRoot":"","sources":["../src/behavioral-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"behavioral-tracker.d.ts","sourceRoot":"","sources":["../src/behavioral-tracker.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ exports.logStuck = logStuck;
13
13
  exports.logStuckResolved = logStuckResolved;
14
14
  exports.getStuckPatterns = getStuckPatterns;
15
15
  exports.getBehaviorSummary = getBehaviorSummary;
16
+ exports.getLastTouchedFile = getLastTouchedFile;
17
+ exports.getPatternCounts = getPatternCounts;
18
+ exports.getRecentDecisionsWithAgo = getRecentDecisionsWithAgo;
16
19
  const database_1 = require("./core/database");
17
20
  function initBehaviorTables() {
18
21
  const db = (0, database_1.getDb)();
@@ -182,4 +185,88 @@ function getBehaviorSummary(project) {
182
185
  stuckIssues: getStuckPatterns(project),
183
186
  };
184
187
  }
188
+ // ─── Pre-Launch Test Suite helpers ──────────────────────────────────────────
189
+ /**
190
+ * Get the most-recently-touched file in a project, with timestamp + touch count.
191
+ * Source of truth: session_files table (updated by live-watcher on every file_save).
192
+ * Returns null if no files have been touched yet.
193
+ */
194
+ function getLastTouchedFile(project) {
195
+ const db = (0, database_1.getDb)();
196
+ const where = project ? 'WHERE project = ?' : '';
197
+ const params = project ? [project] : [];
198
+ const row = db.prepare(`
199
+ SELECT file_path as file, last_touched as lastTouched, touch_count as touchCount
200
+ FROM session_files ${where}
201
+ ORDER BY last_touched DESC LIMIT 1
202
+ `).get(...params);
203
+ if (!row)
204
+ return null;
205
+ return row;
206
+ }
207
+ /**
208
+ * Count detected patterns for a project, split by category.
209
+ * Mirrors what the @cell block displays under "Patterns detected: N".
210
+ */
211
+ function getPatternCounts(project) {
212
+ try {
213
+ const db = (0, database_1.getDb)();
214
+ const where = project ? 'WHERE project = ?' : '';
215
+ const params = project ? [project] : [];
216
+ const rows = db.prepare(`
217
+ SELECT category, COUNT(*) as cnt
218
+ FROM code_patterns ${where}
219
+ GROUP BY category
220
+ `).all(...params);
221
+ const byCategory = {};
222
+ let total = 0;
223
+ for (const r of rows) {
224
+ byCategory[r.category || 'unknown'] = Number(r.cnt);
225
+ total += Number(r.cnt);
226
+ }
227
+ return { total, byCategory };
228
+ }
229
+ catch {
230
+ return { total: 0, byCategory: {} };
231
+ }
232
+ }
233
+ /**
234
+ * Get the most recent decisions for a project (with formatted "X minutes ago" string).
235
+ * Default limit 5 — matches what `cell status --decisions` displays.
236
+ */
237
+ function getRecentDecisionsWithAgo(project, limit = 5) {
238
+ const rows = getDecisions(project, limit);
239
+ const now = Date.now();
240
+ return rows.map(r => {
241
+ const ts = new Date(r.decidedAt).getTime();
242
+ const diffMs = now - ts;
243
+ return {
244
+ id: r.id,
245
+ file: r.file,
246
+ decision: r.decision,
247
+ // SQLite returns worked as 0/1 integer; coerce to boolean
248
+ worked: Boolean(r.worked),
249
+ ago: formatAgo(diffMs),
250
+ decidedAt: r.decidedAt,
251
+ };
252
+ });
253
+ }
254
+ function formatAgo(ms) {
255
+ if (ms < 0)
256
+ return 'just now';
257
+ const sec = Math.floor(ms / 1000);
258
+ if (sec < 60)
259
+ return `${sec} second${sec === 1 ? '' : 's'} ago`;
260
+ const min = Math.floor(sec / 60);
261
+ if (min < 60)
262
+ return `${min} minute${min === 1 ? '' : 's'} ago`;
263
+ const hr = Math.floor(min / 60);
264
+ if (hr < 24)
265
+ return `${hr} hour${hr === 1 ? '' : 's'} ago`;
266
+ const day = Math.floor(hr / 24);
267
+ if (day < 30)
268
+ return `${day} day${day === 1 ? '' : 's'} ago`;
269
+ const month = Math.floor(day / 30);
270
+ return `${month} month${month === 1 ? '' : 's'} ago`;
271
+ }
185
272
  //# sourceMappingURL=behavioral-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"behavioral-tracker.js","sourceRoot":"","sources":["../src/behavioral-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"behavioral-tracker.js","sourceRoot":"","sources":["../src/behavioral-tracker.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -102,6 +102,12 @@ switch (cmd) {
102
102
  case 'status':
103
103
  doStatus();
104
104
  break;
105
+ case 'session':
106
+ doSession();
107
+ break;
108
+ case 'decisions':
109
+ doDecisions();
110
+ break;
105
111
  case 'team':
106
112
  doTeam();
107
113
  break;
@@ -316,6 +322,18 @@ function semiLabel(s) {
316
322
  return s;
317
323
  }
318
324
  function doStatus() {
325
+ // ─── Flag passthroughs (Pre-Launch Test 1 + Test 3) ────────────────────
326
+ // Allow `cell status --session` and `cell status --decisions` as
327
+ // documented in the pre-launch test suite. The dedicated `cell session`
328
+ // and `cell decisions` top-level commands still work.
329
+ if (args[1] === '--session') {
330
+ doSession();
331
+ return;
332
+ }
333
+ if (args[1] === '--decisions') {
334
+ doDecisions();
335
+ return;
336
+ }
319
337
  const banner = figlet_1.default.textSync('CELL', { font: 'ANSI Shadow', horizontalLayout: 'fitted' });
320
338
  console.log((0, gradient_string_1.default)(['#FF6B35', '#FFAB91'])(banner));
321
339
  console.log();
@@ -491,6 +509,92 @@ function showProjectStatus() {
491
509
  }
492
510
  console.log();
493
511
  }
512
+ // ─── cell status --session (Pre-Launch Test 1) ──────────────────────────────
513
+ function doSession() {
514
+ console.log();
515
+ console.log(C.bold(' Cell Session — Last Activity'));
516
+ console.log(C.dim(' ───────────────────────────────'));
517
+ console.log();
518
+ try {
519
+ const { getLastTouchedFile, getPatternCounts, getBehaviorSummary } = require('./behavioral-tracker');
520
+ const last = getLastTouchedFile(project);
521
+ const patterns = getPatternCounts(project);
522
+ const behavior = getBehaviorSummary(project);
523
+ if (last) {
524
+ const ago = formatTimeAgo(new Date(last.lastTouched).getTime());
525
+ console.log(` Last file: ${C.num(last.file)}`);
526
+ console.log(` Time: ${ago} (${last.touchCount} touch${last.touchCount === 1 ? '' : 'es'})`);
527
+ }
528
+ else {
529
+ console.log(C.dim(' Last file: (none yet — save a file to start tracking)'));
530
+ }
531
+ console.log(` Patterns: ${C.num(String(patterns.total))} detected`);
532
+ if (Object.keys(patterns.byCategory).length > 0) {
533
+ const catStr = Object.entries(patterns.byCategory)
534
+ .slice(0, 5)
535
+ .map(([cat, n]) => `${cat}=${n}`)
536
+ .join(', ');
537
+ console.log(C.dim(` ${catStr}`));
538
+ }
539
+ if (behavior.currentContext) {
540
+ console.log(` Current task: ${C.num(behavior.currentContext.task)}`);
541
+ }
542
+ }
543
+ catch (err) {
544
+ const msg = err instanceof Error ? err.message : String(err);
545
+ console.log(C.warn(` Session lookup failed: ${msg}`));
546
+ }
547
+ console.log();
548
+ }
549
+ // ─── cell status --decisions (Pre-Launch Test 3) ────────────────────────────
550
+ function doDecisions() {
551
+ console.log();
552
+ console.log(C.bold(' Cell Decisions — Recent Activity'));
553
+ console.log(C.dim(' ─────────────────────────────────'));
554
+ console.log();
555
+ try {
556
+ const { getRecentDecisionsWithAgo, getBehaviorSummary } = require('./behavioral-tracker');
557
+ const decisions = getRecentDecisionsWithAgo(project, 5);
558
+ const behavior = getBehaviorSummary(project);
559
+ if (decisions.length === 0) {
560
+ console.log(C.dim(' No decisions logged yet.'));
561
+ console.log(C.dim(' Decisions are auto-logged when AI suggestions are accepted/rejected in your IDE.'));
562
+ }
563
+ else {
564
+ for (const d of decisions) {
565
+ const verdict = d.worked ? C.success('Accepted') : C.warn('Rejected');
566
+ console.log(` ${verdict} ${d.decision}`);
567
+ console.log(C.dim(` ${d.ago}${d.file ? ' · ' + d.file : ''}`));
568
+ }
569
+ }
570
+ console.log();
571
+ console.log(C.dim(` Total: ${behavior.totalDecisions} decision${behavior.totalDecisions === 1 ? '' : 's'} logged`));
572
+ }
573
+ catch (err) {
574
+ const msg = err instanceof Error ? err.message : String(err);
575
+ console.log(C.warn(` Decisions lookup failed: ${msg}`));
576
+ }
577
+ console.log();
578
+ }
579
+ function formatTimeAgo(ts) {
580
+ const diff = Date.now() - ts;
581
+ if (diff < 0)
582
+ return 'just now';
583
+ const sec = Math.floor(diff / 1000);
584
+ if (sec < 60)
585
+ return `${sec} second${sec === 1 ? '' : 's'} ago`;
586
+ const min = Math.floor(sec / 60);
587
+ if (min < 60)
588
+ return `${min} minute${min === 1 ? '' : 's'} ago`;
589
+ const hr = Math.floor(min / 60);
590
+ if (hr < 24)
591
+ return `${hr} hour${hr === 1 ? '' : 's'} ago`;
592
+ const day = Math.floor(hr / 24);
593
+ if (day < 30)
594
+ return `${day} day${day === 1 ? '' : 's'} ago`;
595
+ const month = Math.floor(day / 30);
596
+ return `${month} month${month === 1 ? '' : 's'} ago`;
597
+ }
494
598
  // ─── cell team ──────────────────────────────────────────────────────────────
495
599
  function doTeam() {
496
600
  console.log();
@@ -1056,7 +1160,7 @@ function doContext() {
1056
1160
  try {
1057
1161
  const { buildContext, formatContextForTool } = require('./core/prompt-builder');
1058
1162
  ctx = buildContext(projectArg, toolArg);
1059
- const text = formatContextForTool(ctx, toolArg);
1163
+ const text = formatContextForTool(ctx, toolArg, projectArg);
1060
1164
  console.log(text);
1061
1165
  }
1062
1166
  catch (e) {
@@ -1076,6 +1180,10 @@ function doHelp() {
1076
1180
  console.log(` ${C.primary('cell scan')} Scan codebase + build layers`);
1077
1181
  console.log(` ${C.primary('cell analyze')} AI prompts from scan data`);
1078
1182
  console.log(` ${C.primary('cell status')} What Cell knows about you`);
1183
+ console.log(` ${C.primary('cell status --session')} Last touched file + patterns (Pre-Launch Test 1)`);
1184
+ console.log(` ${C.primary('cell status --decisions')} Recent decisions with verdict (Pre-Launch Test 3)`);
1185
+ console.log(` ${C.primary('cell session')} Same as cell status --session`);
1186
+ console.log(` ${C.primary('cell decisions')} Same as cell status --decisions`);
1079
1187
  console.log(` ${C.primary('cell team')} Team collaboration (git-based)`);
1080
1188
  console.log(` ${C.primary('cell community')} Community patterns + benchmarks`);
1081
1189
  console.log(` ${C.primary('cell watch [start|stop|events|check|status] [proj] [dir]')} Live file watcher`);