@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.
- package/dist/db/db.d.ts +1 -1
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +159 -2
- package/dist/db/db.js.map +1 -1
- package/dist/db/published-shares-cache.d.ts +39 -0
- package/dist/db/published-shares-cache.d.ts.map +1 -0
- package/dist/db/published-shares-cache.js +60 -0
- package/dist/db/published-shares-cache.js.map +1 -0
- package/dist/db/queries.d.ts +58 -2
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +210 -26
- package/dist/db/queries.js.map +1 -1
- package/dist/db/search-query.d.ts +7 -0
- package/dist/db/search-query.d.ts.map +1 -1
- package/dist/db/search-query.js +26 -0
- package/dist/db/search-query.js.map +1 -1
- package/dist/db/share-drafts.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/worktree-identity-upgrade.d.ts +5 -3
- package/dist/migrations/worktree-identity-upgrade.d.ts.map +1 -1
- package/dist/migrations/worktree-identity-upgrade.js +23 -2
- package/dist/migrations/worktree-identity-upgrade.js.map +1 -1
- package/dist/observability/exporter-file.d.ts.map +1 -1
- package/dist/observability/exporter-pretty.d.ts.map +1 -1
- package/dist/observability/exporter-pretty.js.map +1 -1
- package/dist/parsers/claude.d.ts.map +1 -1
- package/dist/parsers/claude.js +4 -144
- package/dist/parsers/claude.js.map +1 -1
- package/dist/parsers/codex.d.ts +7 -1
- package/dist/parsers/codex.d.ts.map +1 -1
- package/dist/parsers/codex.js +47 -177
- package/dist/parsers/codex.js.map +1 -1
- package/dist/parsers/gemini.d.ts.map +1 -1
- package/dist/parsers/gemini.js +102 -2
- package/dist/parsers/gemini.js.map +1 -1
- package/dist/parsers/pi.d.ts +18 -0
- package/dist/parsers/pi.d.ts.map +1 -0
- package/dist/parsers/pi.js +154 -0
- package/dist/parsers/pi.js.map +1 -0
- package/dist/parsers/spool-prelude.d.ts +1 -15
- package/dist/parsers/spool-prelude.d.ts.map +1 -1
- package/dist/parsers/spool-prelude.js +3 -20
- package/dist/parsers/spool-prelude.js.map +1 -1
- package/dist/projects/groups.d.ts +4 -1
- package/dist/projects/groups.d.ts.map +1 -1
- package/dist/projects/groups.js +26 -9
- package/dist/projects/groups.js.map +1 -1
- package/dist/projects/identity.d.ts +1 -1
- package/dist/projects/identity.d.ts.map +1 -1
- package/dist/projects/identity.js +12 -1
- package/dist/projects/identity.js.map +1 -1
- package/dist/projects/sessions.js.map +1 -1
- package/dist/projects/worktree-resolvers.d.ts +3 -0
- package/dist/projects/worktree-resolvers.d.ts.map +1 -1
- package/dist/projects/worktree-resolvers.js +130 -2
- package/dist/projects/worktree-resolvers.js.map +1 -1
- package/dist/security/profile.d.ts.map +1 -1
- package/dist/security/profile.js +2 -3
- package/dist/security/profile.js.map +1 -1
- package/dist/security/purge.d.ts +16 -11
- package/dist/security/purge.d.ts.map +1 -1
- package/dist/security/purge.js +165 -24
- package/dist/security/purge.js.map +1 -1
- package/dist/security/types.d.ts +1 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/worker.d.ts.map +1 -1
- package/dist/security/worker.js +44 -8
- package/dist/security/worker.js.map +1 -1
- package/dist/sync/source-paths.d.ts.map +1 -1
- package/dist/sync/source-paths.js +47 -11
- package/dist/sync/source-paths.js.map +1 -1
- package/dist/sync/syncer.d.ts +59 -1
- package/dist/sync/syncer.d.ts.map +1 -1
- package/dist/sync/syncer.js +172 -36
- package/dist/sync/syncer.js.map +1 -1
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +3 -1
- package/dist/sync/watcher.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/util/resolve-bin.js.map +1 -1
- package/package.json +7 -4
package/dist/parsers/gemini.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAyB5D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AAEtF,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAA;
|
|
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":"
|
|
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
|
-
|
|
3
|
-
|
|
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
|
|
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;
|
|
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"}
|
package/dist/projects/groups.js
CHANGED
|
@@ -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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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":"
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAA4B,MAAM,4BAA4B,CAAA;AAQ3F,MAAM,SAAS,GAAG;IAChB,cAAc,EAAE,YAAY,EAAE,gBAAgB;IAC9C,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc;CACtC,CAAA;AAEV,MAAM,mBAAmB,GAAG;IAC1B,cAAc,EAAE,YAAY,EAAE,gBAAgB;CACtC,CAAA;AAEV,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,MAAM,EAAE,cAAc;CACvB,CAAC,CAAA;AACF,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AAE7D,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACxC,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAChD,IAAI,QAAQ;QAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACjD,+BAA+B;IAC/B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAkB,EAClB,EAAc,EACd,
|
|
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":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAwB/D,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,MAAM,UAAU,sBAAsB,CACpC,EAAqB,EACrB,WAAmB,EACnB,
|
|
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;
|
|
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"}
|