@spool-lab/core 0.5.1 → 0.6.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.
Files changed (85) hide show
  1. package/dist/db/db.d.ts +1 -1
  2. package/dist/db/db.d.ts.map +1 -1
  3. package/dist/db/db.js +159 -2
  4. package/dist/db/db.js.map +1 -1
  5. package/dist/db/published-shares-cache.d.ts +39 -0
  6. package/dist/db/published-shares-cache.d.ts.map +1 -0
  7. package/dist/db/published-shares-cache.js +60 -0
  8. package/dist/db/published-shares-cache.js.map +1 -0
  9. package/dist/db/queries.d.ts +58 -2
  10. package/dist/db/queries.d.ts.map +1 -1
  11. package/dist/db/queries.js +210 -26
  12. package/dist/db/queries.js.map +1 -1
  13. package/dist/db/search-query.d.ts +7 -0
  14. package/dist/db/search-query.d.ts.map +1 -1
  15. package/dist/db/search-query.js +26 -0
  16. package/dist/db/search-query.js.map +1 -1
  17. package/dist/db/share-drafts.js.map +1 -1
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/migrations/worktree-identity-upgrade.d.ts +5 -3
  23. package/dist/migrations/worktree-identity-upgrade.d.ts.map +1 -1
  24. package/dist/migrations/worktree-identity-upgrade.js +23 -2
  25. package/dist/migrations/worktree-identity-upgrade.js.map +1 -1
  26. package/dist/observability/exporter-file.d.ts.map +1 -1
  27. package/dist/observability/exporter-pretty.d.ts.map +1 -1
  28. package/dist/observability/exporter-pretty.js.map +1 -1
  29. package/dist/parsers/claude.d.ts.map +1 -1
  30. package/dist/parsers/claude.js +4 -144
  31. package/dist/parsers/claude.js.map +1 -1
  32. package/dist/parsers/codex.d.ts +7 -1
  33. package/dist/parsers/codex.d.ts.map +1 -1
  34. package/dist/parsers/codex.js +47 -177
  35. package/dist/parsers/codex.js.map +1 -1
  36. package/dist/parsers/gemini.d.ts.map +1 -1
  37. package/dist/parsers/gemini.js +102 -2
  38. package/dist/parsers/gemini.js.map +1 -1
  39. package/dist/parsers/pi.d.ts +18 -0
  40. package/dist/parsers/pi.d.ts.map +1 -0
  41. package/dist/parsers/pi.js +154 -0
  42. package/dist/parsers/pi.js.map +1 -0
  43. package/dist/parsers/spool-prelude.d.ts +1 -15
  44. package/dist/parsers/spool-prelude.d.ts.map +1 -1
  45. package/dist/parsers/spool-prelude.js +3 -20
  46. package/dist/parsers/spool-prelude.js.map +1 -1
  47. package/dist/projects/groups.d.ts +4 -1
  48. package/dist/projects/groups.d.ts.map +1 -1
  49. package/dist/projects/groups.js +26 -9
  50. package/dist/projects/groups.js.map +1 -1
  51. package/dist/projects/identity.d.ts +1 -1
  52. package/dist/projects/identity.d.ts.map +1 -1
  53. package/dist/projects/identity.js +12 -1
  54. package/dist/projects/identity.js.map +1 -1
  55. package/dist/projects/sessions.js.map +1 -1
  56. package/dist/projects/worktree-resolvers.d.ts +3 -0
  57. package/dist/projects/worktree-resolvers.d.ts.map +1 -1
  58. package/dist/projects/worktree-resolvers.js +130 -2
  59. package/dist/projects/worktree-resolvers.js.map +1 -1
  60. package/dist/security/profile.d.ts.map +1 -1
  61. package/dist/security/profile.js +2 -3
  62. package/dist/security/profile.js.map +1 -1
  63. package/dist/security/purge.d.ts +16 -11
  64. package/dist/security/purge.d.ts.map +1 -1
  65. package/dist/security/purge.js +165 -24
  66. package/dist/security/purge.js.map +1 -1
  67. package/dist/security/types.d.ts +1 -1
  68. package/dist/security/types.d.ts.map +1 -1
  69. package/dist/security/worker.d.ts.map +1 -1
  70. package/dist/security/worker.js +44 -8
  71. package/dist/security/worker.js.map +1 -1
  72. package/dist/sync/source-paths.d.ts.map +1 -1
  73. package/dist/sync/source-paths.js +47 -11
  74. package/dist/sync/source-paths.js.map +1 -1
  75. package/dist/sync/syncer.d.ts +59 -1
  76. package/dist/sync/syncer.d.ts.map +1 -1
  77. package/dist/sync/syncer.js +172 -36
  78. package/dist/sync/syncer.js.map +1 -1
  79. package/dist/sync/watcher.d.ts.map +1 -1
  80. package/dist/sync/watcher.js +3 -1
  81. package/dist/sync/watcher.js.map +1 -1
  82. package/dist/types.d.ts +8 -1
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/util/resolve-bin.js.map +1 -1
  85. package/package.json +7 -4
@@ -3,9 +3,94 @@ import { dirname, join } from 'node:path';
3
3
  import { homedir } from 'node:os';
4
4
  import { stripSpoolSystemPrelude } from './spool-prelude.js';
5
5
  const GEMINI_INDEXABLE_TYPES = new Set(['user', 'gemini', 'info', 'warning', 'error']);
6
+ /** Replays a Gemini CLI JSONL session log into a single session record.
7
+ *
8
+ * Mirrors the upstream loader (gemini-cli chatRecordingService.ts
9
+ * loadConversationRecord): a line is exactly one of — a `$rewindTo`
10
+ * marker (drop that message and everything after it), a message
11
+ * snapshot keyed by `id` (later snapshots replace earlier ones, e.g.
12
+ * tool-call status updates), a `$set` metadata update whose
13
+ * `messages` array is a checkpoint that REPLACES all prior messages,
14
+ * or the initial metadata line. */
15
+ function loadJsonlRecord(raw) {
16
+ const record = {};
17
+ const messages = new Map();
18
+ const setMessage = (msg) => {
19
+ if (!msg || typeof msg !== 'object')
20
+ return;
21
+ const message = msg;
22
+ if (typeof message.id !== 'string')
23
+ return;
24
+ messages.set(message.id, message);
25
+ };
26
+ const applyMetadata = (src) => {
27
+ if (typeof src['sessionId'] === 'string')
28
+ record.sessionId = src['sessionId'];
29
+ if (typeof src['startTime'] === 'string')
30
+ record.startTime = src['startTime'];
31
+ if (typeof src['lastUpdated'] === 'string')
32
+ record.lastUpdated = src['lastUpdated'];
33
+ if (typeof src['kind'] === 'string')
34
+ record.kind = src['kind'];
35
+ if (typeof src['summary'] === 'string')
36
+ record.summary = src['summary'];
37
+ };
38
+ for (const line of raw.split('\n')) {
39
+ if (!line.trim())
40
+ continue;
41
+ let parsed;
42
+ try {
43
+ parsed = JSON.parse(line);
44
+ }
45
+ catch {
46
+ continue;
47
+ }
48
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
49
+ continue;
50
+ const obj = parsed;
51
+ if (typeof obj['$rewindTo'] === 'string') {
52
+ let found = false;
53
+ for (const id of messages.keys()) {
54
+ if (id === obj['$rewindTo'])
55
+ found = true;
56
+ if (found)
57
+ messages.delete(id);
58
+ }
59
+ if (!found)
60
+ messages.clear();
61
+ continue;
62
+ }
63
+ if (typeof obj['id'] === 'string') {
64
+ setMessage(obj);
65
+ continue;
66
+ }
67
+ if (obj['$set'] && typeof obj['$set'] === 'object') {
68
+ const set = obj['$set'];
69
+ if (Array.isArray(set['messages'])) {
70
+ messages.clear();
71
+ for (const msg of set['messages'])
72
+ setMessage(msg);
73
+ }
74
+ applyMetadata(set);
75
+ continue;
76
+ }
77
+ if (typeof obj['sessionId'] === 'string') {
78
+ applyMetadata(obj);
79
+ // A legacy whole-file record can appear as a single JSONL line.
80
+ if (Array.isArray(obj['messages'])) {
81
+ for (const msg of obj['messages'])
82
+ setMessage(msg);
83
+ }
84
+ }
85
+ }
86
+ record.messages = Array.from(messages.values());
87
+ return record;
88
+ }
6
89
  export function loadGeminiSession(filePath) {
7
90
  const raw = readFileSync(filePath, 'utf8');
8
- const record = JSON.parse(raw);
91
+ const record = filePath.endsWith('.jsonl')
92
+ ? loadJsonlRecord(raw)
93
+ : JSON.parse(raw);
9
94
  if (record.kind === 'subagent')
10
95
  return { kind: 'filtered' };
11
96
  if (!Array.isArray(record.messages) || record.messages.length === 0)
@@ -16,7 +101,10 @@ export function loadGeminiSession(filePath) {
16
101
  const type = message.type;
17
102
  if (!type || !GEMINI_INDEXABLE_TYPES.has(type))
18
103
  continue;
19
- const contentText = extractText(message.content);
104
+ // <session_context> is environment metadata gemini-cli injects into the
105
+ // first user turn — strip it so it never pollutes FTS or derived titles.
106
+ const rawText = extractText(message.content);
107
+ const contentText = type === 'user' ? stripSessionContext(rawText) : rawText;
20
108
  const toolNames = extractToolNames(message.toolCalls);
21
109
  if (!contentText && toolNames.length === 0)
22
110
  continue;
@@ -94,6 +182,18 @@ function extractText(content) {
94
182
  .filter(Boolean)
95
183
  .join('\n'));
96
184
  }
185
+ function stripSessionContext(text) {
186
+ let result = text;
187
+ let open = result.indexOf('<session_context>');
188
+ while (open !== -1) {
189
+ const close = result.indexOf('</session_context>', open + '<session_context>'.length);
190
+ if (close === -1)
191
+ break;
192
+ result = result.slice(0, open) + result.slice(close + '</session_context>'.length);
193
+ open = result.indexOf('<session_context>');
194
+ }
195
+ return result.trim();
196
+ }
97
197
  function extractToolNames(toolCalls) {
98
198
  if (!Array.isArray(toolCalls))
99
199
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/parsers/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/parsers/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ParseSessionResult, ParsedSession } from '../types.js';
2
+ export declare const PI_INDEX_VERSION = "pi-v1-session-search-fts";
3
+ /** Parses a pi agent session log (JSONL, session format v3).
4
+ *
5
+ * A file is one linear event log: a `session` header line (id, cwd,
6
+ * start timestamp), then `message` records whose payload role is
7
+ * `user`, `assistant`, or `toolResult`, interleaved with settings
8
+ * events (`model_change`, `thinking_level_change`). Only user and
9
+ * assistant messages are indexed — `toolResult` records carry tool
10
+ * output, and pi assistant messages already name their tool calls
11
+ * via `toolCall` content blocks. */
12
+ export declare function loadPiSession(filePath: string): ParseSessionResult;
13
+ export declare function parsePiSession(filePath: string): ParsedSession | null;
14
+ /** Decode a pi session directory slug to a display path.
15
+ * e.g. '--Users-claw-code-spool--' → '/Users/claw/code/spool'
16
+ * Note: lossy for paths containing hyphens — prefer cwd from the header. */
17
+ export declare function decodePiSessionDirSlug(slug: string): string;
18
+ //# sourceMappingURL=pi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/parsers/pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAA;AAKnF,eAAO,MAAM,gBAAgB,6BAA6B,CAAA;AAwB1D;;;;;;;;qCAQqC;AACrC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CA8ElE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAOrE;AA6BD;;6EAE6E;AAC7E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3D"}
@@ -0,0 +1,154 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { basename } from 'node:path';
3
+ import { stripSpoolSystemPrelude } from './spool-prelude.js';
4
+ // v1: initial pi support — session header + message records from
5
+ // ~/.pi/agent/sessions/<cwd-slug>/<timestamp>_<uuid>.jsonl.
6
+ export const PI_INDEX_VERSION = 'pi-v1-session-search-fts';
7
+ /** Parses a pi agent session log (JSONL, session format v3).
8
+ *
9
+ * A file is one linear event log: a `session` header line (id, cwd,
10
+ * start timestamp), then `message` records whose payload role is
11
+ * `user`, `assistant`, or `toolResult`, interleaved with settings
12
+ * events (`model_change`, `thinking_level_change`). Only user and
13
+ * assistant messages are indexed — `toolResult` records carry tool
14
+ * output, and pi assistant messages already name their tool calls
15
+ * via `toolCall` content blocks. */
16
+ export function loadPiSession(filePath) {
17
+ const raw = readFileSync(filePath, 'utf8');
18
+ let sessionUuid = '';
19
+ let cwd = '';
20
+ let headerStartedAt = '';
21
+ let model = '';
22
+ const messages = [];
23
+ for (const line of raw.split('\n')) {
24
+ if (!line.trim())
25
+ continue;
26
+ let parsed;
27
+ try {
28
+ parsed = JSON.parse(line);
29
+ }
30
+ catch {
31
+ continue;
32
+ }
33
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
34
+ continue;
35
+ const record = parsed;
36
+ if (record.type === 'session') {
37
+ if (typeof record.id === 'string')
38
+ sessionUuid = record.id;
39
+ if (typeof record.cwd === 'string')
40
+ cwd = record.cwd;
41
+ if (typeof record.timestamp === 'string')
42
+ headerStartedAt = record.timestamp;
43
+ continue;
44
+ }
45
+ if (record.type === 'model_change') {
46
+ if (typeof record.modelId === 'string' && record.modelId)
47
+ model = record.modelId;
48
+ continue;
49
+ }
50
+ if (record.type !== 'message' || !record.message || typeof record.message !== 'object')
51
+ continue;
52
+ const role = record.message.role;
53
+ if (role !== 'user' && role !== 'assistant')
54
+ continue;
55
+ const contentText = extractText(record.message.content);
56
+ const toolNames = extractToolNames(record.message.content);
57
+ if (!contentText && toolNames.length === 0)
58
+ continue;
59
+ if (role === 'assistant' && typeof record.message.model === 'string' && record.message.model) {
60
+ model = record.message.model;
61
+ }
62
+ messages.push({
63
+ uuid: typeof record.id === 'string' && record.id
64
+ ? record.id
65
+ : `pi-${sessionUuid || basename(filePath)}-${messages.length}`,
66
+ parentUuid: typeof record.parentId === 'string' ? record.parentId : null,
67
+ role,
68
+ contentText,
69
+ timestamp: record.timestamp ?? headerStartedAt ?? new Date().toISOString(),
70
+ isSidechain: false,
71
+ toolNames,
72
+ seq: messages.length,
73
+ });
74
+ }
75
+ if (messages.length === 0)
76
+ return { kind: 'skipped' };
77
+ const firstUserMessage = messages.find(message => message.role === 'user' && message.contentText.trim().length > 0);
78
+ const title = firstUserMessage?.contentText.trim().slice(0, 120) || '(no title)';
79
+ return {
80
+ kind: 'parsed',
81
+ session: {
82
+ source: 'pi',
83
+ sessionUuid: sessionUuid || sessionUuidFromFileName(filePath),
84
+ filePath,
85
+ title,
86
+ cwd,
87
+ model,
88
+ startedAt: headerStartedAt || messages[0].timestamp,
89
+ endedAt: messages[messages.length - 1].timestamp,
90
+ messages,
91
+ },
92
+ };
93
+ }
94
+ export function parsePiSession(filePath) {
95
+ try {
96
+ const result = loadPiSession(filePath);
97
+ return result.kind === 'parsed' ? result.session : null;
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ function extractText(content) {
104
+ if (typeof content === 'string')
105
+ return stripSpoolSystemPrelude(content).trim();
106
+ if (!Array.isArray(content))
107
+ return '';
108
+ return stripSpoolSystemPrelude(content
109
+ .map(block => {
110
+ if (!block || typeof block !== 'object')
111
+ return '';
112
+ const { type, text } = block;
113
+ return type === 'text' && typeof text === 'string' ? text : '';
114
+ })
115
+ .filter(Boolean)
116
+ .join('\n'))
117
+ .trim();
118
+ }
119
+ function extractToolNames(content) {
120
+ if (!Array.isArray(content))
121
+ return [];
122
+ return Array.from(new Set(content
123
+ .map(block => {
124
+ if (!block || typeof block !== 'object')
125
+ return undefined;
126
+ const { type, name } = block;
127
+ return type === 'toolCall' && typeof name === 'string' && name.trim().length > 0 ? name : undefined;
128
+ })
129
+ .filter((name) => typeof name === 'string')));
130
+ }
131
+ /** Decode a pi session directory slug to a display path.
132
+ * e.g. '--Users-claw-code-spool--' → '/Users/claw/code/spool'
133
+ * Note: lossy for paths containing hyphens — prefer cwd from the header. */
134
+ export function decodePiSessionDirSlug(slug) {
135
+ const withoutPrefix = slug.replace(/^-+/, '');
136
+ let end = withoutPrefix.length;
137
+ while (end > 0 && withoutPrefix[end - 1] === '-')
138
+ end--;
139
+ const trimmed = withoutPrefix.slice(0, end);
140
+ if (!trimmed)
141
+ return slug;
142
+ return '/' + trimmed.replace(/-/g, '/');
143
+ }
144
+ /** Session files are named `<timestamp>_<uuid>.jsonl`; recover the uuid
145
+ * when a truncated/rewritten file lost its `session` header line. */
146
+ function sessionUuidFromFileName(filePath) {
147
+ const name = basename(filePath, '.jsonl');
148
+ const underscore = name.indexOf('_');
149
+ if (underscore === -1)
150
+ return filePath;
151
+ const candidate = name.slice(underscore + 1);
152
+ return candidate.length > 0 ? candidate : filePath;
153
+ }
154
+ //# sourceMappingURL=pi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/parsers/pi.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,2 @@
1
- /**
2
- * Spool wraps its agent-search system instructions in this marker before
3
- * sending them to ACP, so the parsers can strip them back out when indexing
4
- * the on-disk JSONL. Without the marker, our system prompt would appear as
5
- * the first user message in every agent-search session — polluting the
6
- * derived title, the FTS index, and the session detail view.
7
- *
8
- * The user's actual query is sent OUTSIDE the marker block (at the end of
9
- * the message text), so after stripping the prelude only the bare query
10
- * remains.
11
- */
12
- export declare const SPOOL_SYSTEM_PRELUDE_OPEN = "<spool-system-prelude>";
13
- export declare const SPOOL_SYSTEM_PRELUDE_CLOSE = "</spool-system-prelude>";
14
- export declare function wrapSpoolSystemPrelude(systemBody: string, userQuery: string): string;
15
- export declare function stripSpoolSystemPrelude(text: string): string;
1
+ export { SPOOL_SYSTEM_PRELUDE_CLOSE, SPOOL_SYSTEM_PRELUDE_OPEN, stripSpoolSystemPrelude, wrapSpoolSystemPrelude, } from '@spool-lab/session-kit';
16
2
  //# sourceMappingURL=spool-prelude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spool-prelude.d.ts","sourceRoot":"","sources":["../../src/parsers/spool-prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,2BAA2B,CAAA;AACjE,eAAO,MAAM,0BAA0B,4BAA4B,CAAA;AAEnE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"spool-prelude.d.ts","sourceRoot":"","sources":["../../src/parsers/spool-prelude.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA"}
@@ -1,21 +1,4 @@
1
- /**
2
- * Spool wraps its agent-search system instructions in this marker before
3
- * sending them to ACP, so the parsers can strip them back out when indexing
4
- * the on-disk JSONL. Without the marker, our system prompt would appear as
5
- * the first user message in every agent-search session — polluting the
6
- * derived title, the FTS index, and the session detail view.
7
- *
8
- * The user's actual query is sent OUTSIDE the marker block (at the end of
9
- * the message text), so after stripping the prelude only the bare query
10
- * remains.
11
- */
12
- export const SPOOL_SYSTEM_PRELUDE_OPEN = '<spool-system-prelude>';
13
- export const SPOOL_SYSTEM_PRELUDE_CLOSE = '</spool-system-prelude>';
14
- export function wrapSpoolSystemPrelude(systemBody, userQuery) {
15
- return `${SPOOL_SYSTEM_PRELUDE_OPEN}\n${systemBody}\n${SPOOL_SYSTEM_PRELUDE_CLOSE}\n\n${userQuery}`;
16
- }
17
- const STRIP_RE = /<spool-system-prelude>[\s\S]*?<\/spool-system-prelude>/g;
18
- export function stripSpoolSystemPrelude(text) {
19
- return text.replace(STRIP_RE, '').trim();
20
- }
1
+ // Moved to @spool-lab/session-kit so the web reader strips the same
2
+ // prelude; re-exported here to keep core's public surface stable.
3
+ export { SPOOL_SYSTEM_PRELUDE_CLOSE, SPOOL_SYSTEM_PRELUDE_OPEN, stripSpoolSystemPrelude, wrapSpoolSystemPrelude, } from '@spool-lab/session-kit';
21
4
  //# sourceMappingURL=spool-prelude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spool-prelude.js","sourceRoot":"","sources":["../../src/parsers/spool-prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAA;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,yBAAyB,CAAA;AAEnE,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,SAAiB;IAC1E,OAAO,GAAG,yBAAyB,KAAK,UAAU,KAAK,0BAA0B,OAAO,SAAS,EAAE,CAAA;AACrG,CAAC;AAED,MAAM,QAAQ,GAAG,yDAAyD,CAAA;AAE1E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC"}
1
+ {"version":3,"file":"spool-prelude.js","sourceRoot":"","sources":["../../src/parsers/spool-prelude.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,kEAAkE;AAClE,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA"}
@@ -1,4 +1,7 @@
1
1
  import type Database from 'better-sqlite3';
2
- import type { ProjectGroup } from '../types.js';
2
+ import type { ProjectGroup, ProjectGroupWithPaths } from '../types.js';
3
3
  export declare function listProjectGroups(db: Database.Database): ProjectGroup[];
4
+ export declare function listProjectGroups(db: Database.Database, opts: {
5
+ withPaths: true;
6
+ }): ProjectGroupWithPaths[];
4
7
  //# sourceMappingURL=groups.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/projects/groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,aAAa,CAAA;AAEnF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,EAAE,CAyBvE"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/projects/groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAsC,MAAM,aAAa,CAAA;AAE1G,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,EAAE,CAAA;AACxE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG,qBAAqB,EAAE,CAAA"}
@@ -1,6 +1,8 @@
1
- export function listProjectGroups(db) {
1
+ export function listProjectGroups(db, opts) {
2
+ const withPaths = opts?.withPaths === true;
2
3
  const rows = db.prepare(`
3
4
  SELECT identity_kind, identity_key, display_name, sources_csv,
5
+ ${withPaths ? 'display_paths_json, cwds_json,' : ''}
4
6
  session_count, last_session_at
5
7
  FROM project_groups_v
6
8
  ORDER BY
@@ -8,13 +10,28 @@ export function listProjectGroups(db) {
8
10
  last_session_at IS NULL,
9
11
  last_session_at DESC
10
12
  `).all();
11
- return rows.map(r => ({
12
- identityKind: r.identity_kind,
13
- identityKey: r.identity_key,
14
- displayName: r.display_name,
15
- sources: (r.sources_csv ?? '').split(',').filter(Boolean),
16
- sessionCount: r.session_count,
17
- lastSessionAt: r.last_session_at,
18
- }));
13
+ return rows.map(r => {
14
+ const group = {
15
+ identityKind: r.identity_kind,
16
+ identityKey: r.identity_key,
17
+ displayName: r.display_name,
18
+ sources: (r.sources_csv ?? '').split(',').filter(Boolean),
19
+ sessionCount: r.session_count,
20
+ lastSessionAt: r.last_session_at,
21
+ };
22
+ if (!withPaths)
23
+ return group;
24
+ return {
25
+ ...group,
26
+ displayPaths: parseStringArray(r.display_paths_json ?? null),
27
+ cwds: parseStringArray(r.cwds_json ?? null),
28
+ };
29
+ });
30
+ }
31
+ function parseStringArray(value) {
32
+ if (!value)
33
+ return [];
34
+ const parsed = JSON.parse(value);
35
+ return Array.isArray(parsed) ? parsed.filter((v) => typeof v === 'string' && v.length > 0) : [];
19
36
  }
20
37
  //# sourceMappingURL=groups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/projects/groups.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,EAAqB;IACrD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;GAQvB,CAAC,CAAC,GAAG,EAOJ,CAAA;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAoB;QAC5E,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,aAAa,EAAE,CAAC,CAAC,eAAe;KACjC,CAAC,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/projects/groups.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,iBAAiB,CAC/B,EAAqB,EACrB,IAA8B;IAE9B,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;aAEb,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE;;;;;;;GAO3D,CAAC,CAAC,GAAG,EASJ,CAAA;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAClB,MAAM,KAAK,GAAiB;YAC1B,YAAY,EAAE,CAAC,CAAC,aAAa;YAC7B,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5E,YAAY,EAAE,CAAC,CAAC,aAAa;YAC7B,aAAa,EAAE,CAAC,CAAC,eAAe;SACjC,CAAA;QACD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAA;QAC5B,OAAO;YACL,GAAG,KAAK;YACR,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC;YAC5D,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;SACZ,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAA;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9G,CAAC"}
@@ -12,5 +12,5 @@ export interface IdentityFs {
12
12
  };
13
13
  }
14
14
  export declare function normalizeGitRemote(url: string): string | null;
15
- export declare function computeIdentity(cwd: string | null, fs: IdentityFs, resolvers?: readonly WorktreeUpstreamResolver[], synthesizers?: readonly IdentitySynthesizer[]): ProjectIdentity;
15
+ export declare function computeIdentity(cwd: string | null, fs: IdentityFs, resolvers?: readonly WorktreeUpstreamResolver[], synthesizers?: readonly IdentitySynthesizer[], gitRemoteHint?: string | null): ProjectIdentity;
16
16
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/projects/identity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE3F,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAChG;AAgBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU7D;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,EAAE,EAAE,UAAU,EACd,SAAS,GAAE,SAAS,wBAAwB,EAAsB,EAClE,YAAY,GAAE,SAAS,mBAAmB,EAAyB,GAClE,eAAe,CA6EjB"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/projects/identity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE3F,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAChG;AAgBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU7D;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,EAAE,EAAE,UAAU,EACd,SAAS,GAAE,SAAS,wBAAwB,EAAsB,EAClE,YAAY,GAAE,SAAS,mBAAmB,EAAyB,EACnE,aAAa,GAAE,MAAM,GAAG,IAAW,GAClC,eAAe,CAyFjB"}
@@ -28,7 +28,18 @@ export function normalizeGitRemote(url) {
28
28
  return null;
29
29
  return s.toLowerCase();
30
30
  }
31
- export function computeIdentity(cwd, fs, resolvers = DEFAULT_RESOLVERS, synthesizers = DEFAULT_SYNTHESIZERS) {
31
+ export function computeIdentity(cwd, fs, resolvers = DEFAULT_RESOLVERS, synthesizers = DEFAULT_SYNTHESIZERS, gitRemoteHint = null) {
32
+ // Provider-recorded metadata is the strongest signal: it was captured while
33
+ // the checkout still existed, so it remains valid after a worktree is
34
+ // deleted or its parent directory is moved.
35
+ const hintedRemote = normalizeGitRemote(gitRemoteHint ?? '');
36
+ if (hintedRemote) {
37
+ return {
38
+ kind: 'git_remote',
39
+ key: hintedRemote,
40
+ displayName: deriveDisplayName({ kind: 'git_remote', key: hintedRemote, fs }),
41
+ };
42
+ }
32
43
  if (!cwd)
33
44
  return loose();
34
45
  const home = homedir();
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/projects/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/projects/identity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/projects/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/projects/sessions.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ export interface WorktreeUpstreamResolver {
14
14
  }
15
15
  /** Test hook: reset the in-process cache so tests can stub the DB. */
16
16
  export declare function _resetSupersetCacheForTests(): void;
17
+ /** Test hook: reset every persistent-store cache. */
18
+ export declare function _resetWorktreeResolverCachesForTests(): void;
17
19
  export declare const supersetResolver: WorktreeUpstreamResolver;
20
+ export declare const orcaResolver: WorktreeUpstreamResolver;
18
21
  export declare const DEFAULT_RESOLVERS: readonly WorktreeUpstreamResolver[];
19
22
  //# sourceMappingURL=worktree-resolvers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-resolvers.d.ts","sourceRoot":"","sources":["../../src/projects/worktree-resolvers.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACpC;AAwCD,sEAAsE;AACtE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,eAAO,MAAM,gBAAgB,EAAE,wBAgB9B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,SAAS,wBAAwB,EAE/D,CAAA"}
1
+ {"version":3,"file":"worktree-resolvers.d.ts","sourceRoot":"","sources":["../../src/projects/worktree-resolvers.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACpC;AA+DD,sEAAsE;AACtE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,qDAAqD;AACrD,wBAAgB,oCAAoC,IAAI,IAAI,CAG3D;AAED,eAAO,MAAM,gBAAgB,EAAE,wBAgB9B,CAAA;AAkGD,eAAO,MAAM,YAAY,EAAE,wBA4B1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,SAAS,wBAAwB,EAG/D,CAAA"}