@yeshwanthyk/coding-agent 0.3.21 → 0.3.23

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/dist/mmem.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * mmem client for full-text session search
3
+ * Gracefully falls back when mmem unavailable
4
+ */
5
+ export interface MmemSession {
6
+ path: string;
7
+ title: string;
8
+ lastActivity: number;
9
+ score: number;
10
+ }
11
+ export type MmemSearchResult = {
12
+ ok: true;
13
+ sessions: MmemSession[];
14
+ } | {
15
+ ok: false;
16
+ reason: "not-installed" | "not-indexed" | "exec-error" | "parse-error";
17
+ };
18
+ /**
19
+ * Search sessions via mmem with full-text search
20
+ * Filters to marvin sessions in the specified cwd
21
+ */
22
+ export declare function searchSessions(query: string, cwd: string, limit?: number): MmemSearchResult;
23
+ /**
24
+ * Trigger mmem index in background (non-blocking)
25
+ * Call after session ends or when picker opens
26
+ */
27
+ export declare function triggerBackgroundIndex(): void;
28
+ //# sourceMappingURL=mmem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mmem.d.ts","sourceRoot":"","sources":["../src/mmem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAA;CAAE,CAAC;AAiB1F;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,gBAAgB,CAgDvF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAS7C"}
package/dist/mmem.js ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * mmem client for full-text session search
3
+ * Gracefully falls back when mmem unavailable
4
+ */
5
+ import { spawnSync, spawn } from "bun";
6
+ /**
7
+ * Encode cwd to match marvin's session directory naming
8
+ * e.g., /Users/foo/bar -> --Users--foo--bar--
9
+ */
10
+ function encodeCwd(cwd) {
11
+ return `--${cwd.replace(/\//g, "--")}--`;
12
+ }
13
+ /**
14
+ * Search sessions via mmem with full-text search
15
+ * Filters to marvin sessions in the specified cwd
16
+ */
17
+ export function searchSessions(query, cwd, limit = 30) {
18
+ // Check if mmem exists
19
+ const which = spawnSync(["which", "mmem"]);
20
+ if (which.exitCode !== 0) {
21
+ return { ok: false, reason: "not-installed" };
22
+ }
23
+ // Run search
24
+ const result = spawnSync([
25
+ "mmem", "find", query,
26
+ "--agent", "marvin",
27
+ "--scope", "session",
28
+ "--limit", String(limit),
29
+ "--json",
30
+ ]);
31
+ if (result.exitCode !== 0) {
32
+ const stderr = result.stderr.toString();
33
+ if (stderr.includes("no such table") || stderr.includes("no index")) {
34
+ return { ok: false, reason: "not-indexed" };
35
+ }
36
+ return { ok: false, reason: "exec-error" };
37
+ }
38
+ // Parse JSON
39
+ let data;
40
+ try {
41
+ const stdout = result.stdout.toString().trim();
42
+ if (!stdout) {
43
+ return { ok: true, sessions: [] };
44
+ }
45
+ data = JSON.parse(stdout);
46
+ }
47
+ catch {
48
+ return { ok: false, reason: "parse-error" };
49
+ }
50
+ // Filter to current cwd and transform
51
+ const encodedCwd = encodeCwd(cwd);
52
+ const sessions = data
53
+ .filter((r) => r.path.includes(encodedCwd))
54
+ .map((r) => ({
55
+ path: r.path,
56
+ title: r.title,
57
+ lastActivity: parseInt(r.last_message_at, 10),
58
+ score: r.score,
59
+ }));
60
+ return { ok: true, sessions };
61
+ }
62
+ /**
63
+ * Trigger mmem index in background (non-blocking)
64
+ * Call after session ends or when picker opens
65
+ */
66
+ export function triggerBackgroundIndex() {
67
+ try {
68
+ spawn(["mmem", "index"], {
69
+ detached: true,
70
+ stdio: ["ignore", "ignore", "ignore"],
71
+ });
72
+ }
73
+ catch {
74
+ // Silently ignore - mmem may not be installed
75
+ }
76
+ }
77
+ //# sourceMappingURL=mmem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mmem.js","sourceRoot":"","sources":["../src/mmem.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * OpenTUI-based session picker
2
+ * OpenTUI-based session picker with full-text search
3
3
  */
4
4
  import type { SessionManager } from "./session-manager.js";
5
5
  export declare function selectSession(sessionManager: SessionManager): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"session-picker.d.ts","sourceRoot":"","sources":["../src/session-picker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAyF1D,wBAAsB,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0C1F"}
1
+ {"version":3,"file":"session-picker.d.ts","sourceRoot":"","sources":["../src/session-picker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAsR3D,wBAAsB,aAAa,CAClC,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CxB"}
@@ -1,4 +1,5 @@
1
1
  import { effect as _$effect } from "@opentui/solid";
2
+ import { memo as _$memo } from "@opentui/solid";
2
3
  import { insert as _$insert } from "@opentui/solid";
3
4
  import { createComponent as _$createComponent } from "@opentui/solid";
4
5
  import { createTextNode as _$createTextNode } from "@opentui/solid";
@@ -6,10 +7,12 @@ import { insertNode as _$insertNode } from "@opentui/solid";
6
7
  import { setProp as _$setProp } from "@opentui/solid";
7
8
  import { createElement as _$createElement } from "@opentui/solid";
8
9
  /**
9
- * OpenTUI-based session picker
10
+ * OpenTUI-based session picker with full-text search
10
11
  */
11
- import { render, useTerminalDimensions, useKeyboard } from "@opentui/solid";
12
- import { SelectList, ThemeProvider, useTheme } from "@yeshwanthyk/open-tui";
12
+ import { render, useKeyboard, useTerminalDimensions } from "@opentui/solid";
13
+ import { Input, SelectList, ThemeProvider, useTheme } from "@yeshwanthyk/open-tui";
14
+ import { createMemo, createSignal, For, onMount, Show } from "solid-js";
15
+ import { searchSessions, triggerBackgroundIndex } from "./mmem.js";
13
16
  /** Detect system dark/light mode (macOS only, defaults to dark) */
14
17
  function detectThemeMode() {
15
18
  try {
@@ -19,74 +22,258 @@ function detectThemeMode() {
19
22
  return "dark";
20
23
  }
21
24
  }
25
+ function getDateCategory(timestamp) {
26
+ const now = new Date();
27
+ const date = new Date(timestamp);
28
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
29
+ const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000);
30
+ const weekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
31
+ if (date >= today) return "Today";
32
+ if (date >= yesterday) return "Yesterday";
33
+ if (date >= weekAgo) return "This Week";
34
+ return "Older";
35
+ }
36
+ function groupByDate(sessions) {
37
+ const categories = ["Today", "Yesterday", "This Week", "Older"];
38
+ const grouped = {
39
+ Today: [],
40
+ Yesterday: [],
41
+ "This Week": [],
42
+ Older: []
43
+ };
44
+ for (const session of sessions) {
45
+ const cat = getDateCategory(session.lastActivity);
46
+ grouped[cat].push(session);
47
+ }
48
+ return categories.map(cat => ({
49
+ category: cat,
50
+ sessions: grouped[cat]
51
+ })).filter(g => g.sessions.length > 0);
52
+ }
22
53
  function SessionPickerApp(props) {
23
54
  const {
24
55
  theme
25
56
  } = useTheme();
26
57
  const dimensions = useTerminalDimensions();
27
58
  let listRef;
28
- const items = props.sessions.map(s => ({
59
+ const [query, setQuery] = createSignal("");
60
+ const [searchFocused, setSearchFocused] = createSignal(true);
61
+ const [usingFallback, setUsingFallback] = createSignal(false);
62
+ // Trigger background index on mount
63
+ onMount(() => {
64
+ triggerBackgroundIndex();
65
+ });
66
+ // Convert loaded sessions to display format
67
+ const loadedSessions = createMemo(() => props.sessions.map(s => ({
68
+ path: s.path,
69
+ title: s.firstMessage,
70
+ lastActivity: s.lastActivity,
71
+ messageCount: s.messageCount,
72
+ modelId: s.modelId
73
+ })));
74
+ // Search results (mmem or fallback)
75
+ const searchResults = createMemo(() => {
76
+ const q = query().trim();
77
+ if (!q) return null;
78
+ // Try mmem search
79
+ const result = searchSessions(q, props.cwd);
80
+ if (result.ok) {
81
+ setUsingFallback(false);
82
+ return result.sessions;
83
+ }
84
+ // Fallback to title filter
85
+ setUsingFallback(true);
86
+ const lowerQ = q.toLowerCase();
87
+ return loadedSessions().filter(s => s.title.toLowerCase().includes(lowerQ));
88
+ });
89
+ // Final display list
90
+ const displaySessions = createMemo(() => searchResults() ?? loadedSessions());
91
+ // Group by date only when not searching
92
+ const grouped = createMemo(() => {
93
+ if (query().trim()) return null;
94
+ return groupByDate(displaySessions());
95
+ });
96
+ // Flat items for SelectList
97
+ const items = createMemo(() => displaySessions().map(s => ({
29
98
  value: s.path,
30
- label: formatFirstMessage(s.firstMessage),
31
- description: formatMeta(s.timestamp, s.messageCount, s.modelId)
32
- }));
99
+ label: formatFirstMessage(s.title),
100
+ description: formatMeta(s.lastActivity, s.messageCount, s.modelId)
101
+ })));
33
102
  useKeyboard(e => {
34
103
  if (e.name === "up" || e.ctrl && e.name === "p") {
35
104
  listRef?.moveUp();
36
105
  } else if (e.name === "down" || e.ctrl && e.name === "n") {
37
106
  listRef?.moveDown();
38
- } else if (e.name === "return") {
107
+ } else if (e.name === "return" && !searchFocused()) {
39
108
  listRef?.select();
40
109
  } else if (e.name === "escape" || e.ctrl && e.name === "c") {
41
- props.onCancel();
110
+ if (query()) {
111
+ setQuery("");
112
+ } else {
113
+ props.onCancel();
114
+ }
42
115
  }
43
116
  });
117
+ const maxVisible = () => Math.min(10, dimensions().height - 6);
44
118
  return (() => {
45
119
  var _el$ = _$createElement("box"),
46
120
  _el$2 = _$createElement("text"),
47
121
  _el$4 = _$createElement("box"),
48
122
  _el$5 = _$createElement("box"),
49
- _el$6 = _$createElement("text");
123
+ _el$6 = _$createElement("text"),
124
+ _el$8 = _$createElement("box"),
125
+ _el$9 = _$createElement("box"),
126
+ _el$0 = _$createElement("box"),
127
+ _el$1 = _$createElement("text");
50
128
  _$insertNode(_el$, _el$2);
51
129
  _$insertNode(_el$, _el$4);
52
130
  _$insertNode(_el$, _el$5);
53
- _$insertNode(_el$, _el$6);
131
+ _$insertNode(_el$, _el$8);
132
+ _$insertNode(_el$, _el$9);
133
+ _$insertNode(_el$, _el$0);
54
134
  _$setProp(_el$, "flexDirection", "column");
55
135
  _$insertNode(_el$2, _$createTextNode(`Resume Session`));
56
136
  _$setProp(_el$4, "height", 1);
57
- _$insert(_el$, _$createComponent(SelectList, {
58
- ref: r => {
59
- listRef = r;
137
+ _$insertNode(_el$5, _el$6);
138
+ _$setProp(_el$5, "flexDirection", "row");
139
+ _$insertNode(_el$6, _$createTextNode(`Search: `));
140
+ _$insert(_el$5, _$createComponent(Input, {
141
+ get value() {
142
+ return query();
60
143
  },
61
- items: items,
62
- get maxVisible() {
63
- return Math.min(10, dimensions().height - 4);
144
+ placeholder: "search sessions...",
145
+ get focused() {
146
+ return searchFocused();
64
147
  },
65
148
  get width() {
66
- return dimensions().width - 2;
149
+ return dimensions().width - 12;
150
+ },
151
+ onChange: v => setQuery(v),
152
+ onSubmit: () => setSearchFocused(false),
153
+ onEscape: () => {
154
+ if (query()) {
155
+ setQuery("");
156
+ } else {
157
+ props.onCancel();
158
+ }
159
+ }
160
+ }), null);
161
+ _$setProp(_el$8, "height", 1);
162
+ _$insert(_el$, _$createComponent(Show, {
163
+ get when() {
164
+ return grouped();
67
165
  },
68
- onSelect: item => props.onSelect(item.value),
69
- get onCancel() {
70
- return props.onCancel;
166
+ get fallback() {
167
+ return _$createComponent(SelectList, {
168
+ ref: r => {
169
+ listRef = r;
170
+ },
171
+ get items() {
172
+ return items();
173
+ },
174
+ get maxVisible() {
175
+ return maxVisible();
176
+ },
177
+ get width() {
178
+ return dimensions().width - 2;
179
+ },
180
+ onSelect: item => props.onSelect(item.value),
181
+ get onCancel() {
182
+ return props.onCancel;
183
+ }
184
+ });
185
+ },
186
+ children: groups => (() => {
187
+ var _el$13 = _$createElement("box");
188
+ _$setProp(_el$13, "flexDirection", "column");
189
+ _$insert(_el$13, _$createComponent(For, {
190
+ get each() {
191
+ return groups();
192
+ },
193
+ children: group => (() => {
194
+ var _el$14 = _$createElement("box"),
195
+ _el$15 = _$createElement("text"),
196
+ _el$16 = _$createElement("box");
197
+ _$insertNode(_el$14, _el$15);
198
+ _$insertNode(_el$14, _el$16);
199
+ _$setProp(_el$14, "flexDirection", "column");
200
+ _$insert(_el$15, () => group.category);
201
+ _$insert(_el$14, _$createComponent(For, {
202
+ get each() {
203
+ return group.sessions;
204
+ },
205
+ children: (session, idx) => (() => {
206
+ var _el$17 = _$createElement("text"),
207
+ _el$18 = _$createTextNode(` `),
208
+ _el$19 = _$createElement("span");
209
+ _$insertNode(_el$17, _el$18);
210
+ _$insertNode(_el$17, _el$19);
211
+ _$insert(_el$17, () => idx() === 0 ? "→ " : " ", _el$18);
212
+ _$insert(_el$17, () => formatFirstMessage(session.title), _el$18);
213
+ _$insert(_el$19, () => formatRelativeTime(session.lastActivity));
214
+ _$effect(_p$ => {
215
+ var _v$8 = idx() === 0 ? theme.text : theme.textMuted,
216
+ _v$9 = {
217
+ fg: theme.textMuted
218
+ };
219
+ _v$8 !== _p$.e && (_p$.e = _$setProp(_el$17, "fg", _v$8, _p$.e));
220
+ _v$9 !== _p$.t && (_p$.t = _$setProp(_el$19, "style", _v$9, _p$.t));
221
+ return _p$;
222
+ }, {
223
+ e: undefined,
224
+ t: undefined
225
+ });
226
+ return _el$17;
227
+ })()
228
+ }), _el$16);
229
+ _$setProp(_el$16, "height", 1);
230
+ _$effect(_$p => _$setProp(_el$15, "fg", theme.accent, _$p));
231
+ return _el$14;
232
+ })()
233
+ }));
234
+ return _el$13;
235
+ })()
236
+ }), _el$9);
237
+ _$setProp(_el$9, "flexGrow", 1);
238
+ _$insertNode(_el$0, _el$1);
239
+ _$setProp(_el$0, "flexDirection", "row");
240
+ _$setProp(_el$0, "justifyContent", "space-between");
241
+ _$insertNode(_el$1, _$createTextNode(`↑/↓ navigate · Enter select · Esc cancel`));
242
+ _$insert(_el$0, _$createComponent(Show, {
243
+ get when() {
244
+ return _$memo(() => !!usingFallback())() && query();
245
+ },
246
+ get children() {
247
+ var _el$11 = _$createElement("text");
248
+ _$insertNode(_el$11, _$createTextNode(`[title only]`));
249
+ _$effect(_$p => _$setProp(_el$11, "fg", theme.textMuted, _$p));
250
+ return _el$11;
71
251
  }
72
- }), _el$5);
73
- _$setProp(_el$5, "flexGrow", 1);
74
- _$insertNode(_el$6, _$createTextNode(`↑/↓ navigate · Enter select · Esc cancel`));
252
+ }), null);
75
253
  _$effect(_p$ => {
76
254
  var _v$ = dimensions().width,
77
255
  _v$2 = dimensions().height,
78
- _v$3 = theme.textMuted,
79
- _v$4 = theme.textMuted;
256
+ _v$3 = theme.text,
257
+ _v$4 = dimensions().width - 2,
258
+ _v$5 = theme.textMuted,
259
+ _v$6 = dimensions().width - 2,
260
+ _v$7 = theme.textMuted;
80
261
  _v$ !== _p$.e && (_p$.e = _$setProp(_el$, "width", _v$, _p$.e));
81
262
  _v$2 !== _p$.t && (_p$.t = _$setProp(_el$, "height", _v$2, _p$.t));
82
263
  _v$3 !== _p$.a && (_p$.a = _$setProp(_el$2, "fg", _v$3, _p$.a));
83
- _v$4 !== _p$.o && (_p$.o = _$setProp(_el$6, "fg", _v$4, _p$.o));
264
+ _v$4 !== _p$.o && (_p$.o = _$setProp(_el$5, "width", _v$4, _p$.o));
265
+ _v$5 !== _p$.i && (_p$.i = _$setProp(_el$6, "fg", _v$5, _p$.i));
266
+ _v$6 !== _p$.n && (_p$.n = _$setProp(_el$0, "width", _v$6, _p$.n));
267
+ _v$7 !== _p$.s && (_p$.s = _$setProp(_el$1, "fg", _v$7, _p$.s));
84
268
  return _p$;
85
269
  }, {
86
270
  e: undefined,
87
271
  t: undefined,
88
272
  a: undefined,
89
- o: undefined
273
+ o: undefined,
274
+ i: undefined,
275
+ n: undefined,
276
+ s: undefined
90
277
  });
91
278
  return _el$;
92
279
  })();
@@ -94,9 +281,12 @@ function SessionPickerApp(props) {
94
281
  function formatFirstMessage(msg) {
95
282
  return msg.replace(/\n/g, " ").slice(0, 60);
96
283
  }
97
- function formatMeta(ts, count, model) {
98
- const ago = formatRelativeTime(ts);
99
- return `${ago} · ${count} msgs · ${model}`;
284
+ function formatMeta(lastActivity, count, model) {
285
+ const ago = formatRelativeTime(lastActivity);
286
+ const parts = [ago];
287
+ if (count !== undefined) parts.push(`${count} msgs`);
288
+ if (model) parts.push(model);
289
+ return parts.join(" · ");
100
290
  }
101
291
  function formatRelativeTime(ts) {
102
292
  const seconds = Math.floor((Date.now() - ts) / 1000);
@@ -114,6 +304,7 @@ export async function selectSession(sessionManager) {
114
304
  const sessions = allSessions.filter(s => s.messageCount > 0 && !s.firstMessage.startsWith("System context:"));
115
305
  if (sessions.length === 0) return null;
116
306
  if (sessions.length === 1) return sessions[0].path;
307
+ const cwd = process.cwd();
117
308
  return new Promise(resolve => {
118
309
  let resolved = false;
119
310
  const doResolve = value => {
@@ -132,6 +323,7 @@ export async function selectSession(sessionManager) {
132
323
  get children() {
133
324
  return _$createComponent(SessionPickerApp, {
134
325
  sessions: sessions,
326
+ cwd: cwd,
135
327
  onSelect: path => doResolve(path),
136
328
  onCancel: () => doResolve(null)
137
329
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session-picker.jsx","sourceRoot":"","sources":["../src/session-picker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-picker.jsx","sourceRoot":"","sources":["../src/session-picker.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeshwanthyk/coding-agent",
3
- "version": "0.3.21",
3
+ "version": "0.3.23",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "marvin": "./dist/cli.js"