@spences10/pi-context 0.0.2 → 0.0.4
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/README.md +87 -9
- package/dist/index.d.ts +2 -2
- package/dist/index.js +339 -25
- package/dist/index.js.map +1 -1
- package/dist/policy.d.ts +3 -0
- package/dist/policy.js +30 -0
- package/dist/policy.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.js +45 -0
- package/dist/schema.js.map +1 -0
- package/dist/schema.sql +49 -0
- package/dist/store.d.ts +26 -66
- package/dist/store.js +326 -269
- package/dist/store.js.map +1 -1
- package/dist/text.d.ts +10 -0
- package/dist/text.js +184 -0
- package/dist/text.js.map +1 -0
- package/dist/types.d.ts +138 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +11 -7
package/README.md
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
# @spences10/pi-context
|
|
2
2
|
|
|
3
|
-
Local SQLite context sidecar for Pi. Oversized tool output is
|
|
4
|
-
in an FTS5-backed database and replaced with a
|
|
5
|
-
the
|
|
3
|
+
Local SQLite context sidecar for Pi. Oversized text tool output is
|
|
4
|
+
redacted, stored in an FTS5-backed database, and replaced with a
|
|
5
|
+
compact receipt that shows the source id, project/session scope, and
|
|
6
|
+
retrieval actions.
|
|
7
|
+
|
|
8
|
+
This is an ephemeral overflow cache for large artifacts, not durable
|
|
9
|
+
session memory. Use `pirecall` for durable session history.
|
|
10
|
+
|
|
11
|
+
## Runtime
|
|
12
|
+
|
|
13
|
+
Requires Node.js `>=24.15.0` for native `node:sqlite` plus FTS5. The
|
|
14
|
+
`my-pi` CLI suppresses Node's expected `node:sqlite`
|
|
15
|
+
`ExperimentalWarning`; standalone package consumers own their process
|
|
16
|
+
warning policy until Node marks `node:sqlite` stable.
|
|
6
17
|
|
|
7
18
|
## Local development
|
|
8
19
|
|
|
@@ -15,14 +26,81 @@ pi -e ./packages/pi-context
|
|
|
15
26
|
|
|
16
27
|
## Commands/tools
|
|
17
28
|
|
|
18
|
-
- `context_search` — search indexed tool output
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- `
|
|
29
|
+
- `context_search` — search indexed tool output in the current
|
|
30
|
+
project/session scope by default. Pass `global: true` to search all
|
|
31
|
+
scopes.
|
|
32
|
+
- `context_get` — retrieve exact stored chunks by source id.
|
|
33
|
+
- `context_list` / `/context list [limit]` — list recent indexed
|
|
34
|
+
sources in the current scope with source ids, tool names, sizes, and
|
|
35
|
+
previews.
|
|
36
|
+
- `context_stats` / `/context stats` / `/context-stats` — scoped
|
|
37
|
+
totals, global totals, DB size, oldest/newest sources, and active
|
|
38
|
+
retention policy.
|
|
39
|
+
- `context_purge` / `/context purge [days]` — delete old indexed
|
|
40
|
+
output. Also supports source/project/session filters and
|
|
41
|
+
`/context purge expired`.
|
|
42
|
+
|
|
43
|
+
Use `/context` in interactive mode for a small modal with list, stats,
|
|
44
|
+
and purge actions.
|
|
45
|
+
|
|
46
|
+
Receipts suggest the main retrieval path:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
context_search query:"..." source_id:"ctx_..."
|
|
50
|
+
context_get source_id:"ctx_..."
|
|
51
|
+
context_list
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Coverage policy
|
|
55
|
+
|
|
56
|
+
Intentional sidecar-backed output:
|
|
57
|
+
|
|
58
|
+
- `read` and `bash` text output: handled by the generic `tool_result`
|
|
59
|
+
hook when output exceeds byte/line thresholds.
|
|
60
|
+
- MCP tool output: handled directly in `@spences10/pi-mcp` before
|
|
61
|
+
temp-file fallback, then ignored by the generic hook because
|
|
62
|
+
receipts already contain `[context-sidecar]`.
|
|
63
|
+
- LSP tool output: handled by the generic hook for large text
|
|
64
|
+
diagnostics or symbol/reference dumps; small structured summaries
|
|
65
|
+
stay inline.
|
|
66
|
+
- Hook output and telemetry summaries: not directly indexed unless
|
|
67
|
+
they appear as large text tool results.
|
|
68
|
+
|
|
69
|
+
Intentionally skipped output:
|
|
70
|
+
|
|
71
|
+
- `context_*` tools: avoids recursive indexing of
|
|
72
|
+
retrieval/maintenance output.
|
|
73
|
+
- `team`: coordination/mailbox/task state belongs in team-mode and
|
|
74
|
+
session history surfaces, not this overflow cache.
|
|
75
|
+
- Non-text/image results: ignored by `pi-context`; image/file handling
|
|
76
|
+
should use dedicated tool-specific surfaces.
|
|
77
|
+
|
|
78
|
+
Any newly sidecar-backed text follows the same redaction,
|
|
79
|
+
project/session scope, retention, and dedupe rules.
|
|
80
|
+
|
|
81
|
+
## Storage, scoping, and retention
|
|
22
82
|
|
|
23
83
|
The default DB path is
|
|
24
84
|
`${PI_CODING_AGENT_DIR:-~/.pi/agent}/context.db`. Set
|
|
25
85
|
`MY_PI_CONTEXT_DB` to override it.
|
|
26
86
|
|
|
27
|
-
|
|
28
|
-
|
|
87
|
+
New sources are scoped by Pi session file/id when available, falling
|
|
88
|
+
back to the current project path. Retrieval tools use that scope by
|
|
89
|
+
default to avoid leaking other projects or sessions into results; pass
|
|
90
|
+
`global: true` when you intend to search or list everything.
|
|
91
|
+
|
|
92
|
+
Retention is env-backed:
|
|
93
|
+
|
|
94
|
+
- `MY_PI_CONTEXT_RETENTION_DAYS` — default `7`; set `0`, `off`, or
|
|
95
|
+
`disabled` to disable age cleanup.
|
|
96
|
+
- `MY_PI_CONTEXT_PURGE_ON_SHUTDOWN` — set `true`/`1`/`yes`/`on` to run
|
|
97
|
+
cleanup on shutdown.
|
|
98
|
+
- `MY_PI_CONTEXT_MAX_MB` — optional max stored raw bytes; oldest
|
|
99
|
+
sources are removed first when exceeded.
|
|
100
|
+
|
|
101
|
+
## Safety model
|
|
102
|
+
|
|
103
|
+
This is redacted local persistence and retrieval, not a security
|
|
104
|
+
sandbox. Stored text is redacted with `@spences10/pi-redact` before
|
|
105
|
+
persistence, but anything persisted in the local SQLite DB should
|
|
106
|
+
still be treated as local tool output.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ExtensionAPI } from '@mariozechner/pi-coding-agent';
|
|
2
2
|
export default function context_sidecar(pi: ExtensionAPI): void;
|
|
3
|
-
export { get_context_store, is_context_sidecar_enabled, maybe_store_context_output, set_context_sidecar_enabled, should_index_text, } from './store.js';
|
|
4
|
-
export type { ContextSearchResult, ContextStats, StoreContextInput, StoredContextOutput, } from './store.js';
|
|
3
|
+
export { get_context_store, is_context_sidecar_enabled, maybe_store_context_output, parse_context_retention_policy, set_context_sidecar_enabled, should_index_text, } from './store.js';
|
|
4
|
+
export type { ContextCleanupResult, ContextListResult, ContextPurgeDetails, ContextRetentionPolicy, ContextScopeOptions, ContextSearchResult, ContextStats, StoreContextInput, StoredContextOutput, } from './store.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { show_confirm_modal, show_picker_modal, show_text_modal, } from '@spences10/pi-tui-modal';
|
|
1
2
|
import { Type } from 'typebox';
|
|
2
3
|
import { get_context_store, is_context_sidecar_enabled, maybe_store_context_output, set_context_sidecar_enabled, should_index_text, } from './store.js';
|
|
3
4
|
function is_text_content(item) {
|
|
@@ -18,12 +19,31 @@ function summarize_tool_input(input) {
|
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
function should_skip_tool(tool_name) {
|
|
22
|
+
// Coverage policy:
|
|
23
|
+
// - context_* tools are retrieval/maintenance output; indexing them would
|
|
24
|
+
// recurse and make the sidecar harder to reason about.
|
|
25
|
+
// - team output is coordination state, not bulky artifact content; keep it in
|
|
26
|
+
// team/pirecall surfaces rather than duplicating mailbox/task state here.
|
|
27
|
+
// - MCP receipts are produced before generic tool_result hooks; the hook also
|
|
28
|
+
// ignores existing [context-sidecar] receipts so direct MCP storage is not
|
|
29
|
+
// indexed a second time.
|
|
21
30
|
return (tool_name === 'context_search' ||
|
|
22
31
|
tool_name === 'context_get' ||
|
|
32
|
+
tool_name === 'context_list' ||
|
|
23
33
|
tool_name === 'context_stats' ||
|
|
24
34
|
tool_name === 'context_purge' ||
|
|
25
35
|
tool_name === 'team');
|
|
26
36
|
}
|
|
37
|
+
function session_id_from_context(ctx) {
|
|
38
|
+
const manager = ctx?.sessionManager;
|
|
39
|
+
return (manager?.getSessionFile?.() ?? manager?.getSessionId?.() ?? null);
|
|
40
|
+
}
|
|
41
|
+
function scope_from_context(ctx) {
|
|
42
|
+
return {
|
|
43
|
+
project_path: ctx?.cwd ?? process.cwd(),
|
|
44
|
+
session_id: session_id_from_context(ctx),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
27
47
|
function format_search_results(results) {
|
|
28
48
|
if (results.length === 0)
|
|
29
49
|
return 'No indexed context matched.';
|
|
@@ -36,32 +56,148 @@ function format_search_results(results) {
|
|
|
36
56
|
].join('\n'))
|
|
37
57
|
.join('\n\n---\n\n');
|
|
38
58
|
}
|
|
59
|
+
function format_list_results(results) {
|
|
60
|
+
if (results.length === 0)
|
|
61
|
+
return 'No indexed context sources found.';
|
|
62
|
+
return results
|
|
63
|
+
.map((result) => [
|
|
64
|
+
`## ${result.source_id}`,
|
|
65
|
+
`Created: ${new Date(result.created_at).toISOString()} • Tool: ${result.tool_name}`,
|
|
66
|
+
`Size: ${result.bytes} bytes, ${result.lines} lines, ${result.chunk_count} chunks`,
|
|
67
|
+
`Project: ${result.project_path ?? '(none)'}`,
|
|
68
|
+
`Session: ${result.session_id ?? '(none)'}`,
|
|
69
|
+
result.input_summary
|
|
70
|
+
? `Input: ${result.input_summary}`
|
|
71
|
+
: undefined,
|
|
72
|
+
result.first_chunk_title
|
|
73
|
+
? `First chunk: ${result.first_chunk_title}`
|
|
74
|
+
: undefined,
|
|
75
|
+
result.preview ? `Preview: ${result.preview}` : undefined,
|
|
76
|
+
]
|
|
77
|
+
.filter(Boolean)
|
|
78
|
+
.join('\n'))
|
|
79
|
+
.join('\n\n');
|
|
80
|
+
}
|
|
81
|
+
function format_purge_details(details) {
|
|
82
|
+
const filters = [
|
|
83
|
+
details.source_id ? `source_id=${details.source_id}` : undefined,
|
|
84
|
+
details.project_path !== undefined
|
|
85
|
+
? `project_path=${details.project_path ?? '(none)'}`
|
|
86
|
+
: undefined,
|
|
87
|
+
details.session_id !== undefined
|
|
88
|
+
? `session_id=${details.session_id ?? '(none)'}`
|
|
89
|
+
: undefined,
|
|
90
|
+
details.older_than_days !== undefined
|
|
91
|
+
? `older_than_days=${details.older_than_days}`
|
|
92
|
+
: undefined,
|
|
93
|
+
]
|
|
94
|
+
.filter(Boolean)
|
|
95
|
+
.join(', ');
|
|
96
|
+
return `Deleted ${details.deleted} context source(s).${filters ? ` Filters: ${filters}.` : ''}`;
|
|
97
|
+
}
|
|
39
98
|
function format_stats(stats) {
|
|
99
|
+
const scoped = stats.scope_project_path || stats.scope_session_id;
|
|
40
100
|
return [
|
|
41
101
|
'## context-sidecar stats',
|
|
42
102
|
'',
|
|
43
103
|
`- Enabled: ${is_context_sidecar_enabled()}`,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
104
|
+
scoped
|
|
105
|
+
? `- Scope: project=${stats.scope_project_path ?? '(none)'}, session=${stats.scope_session_id ?? '(none)'}`
|
|
106
|
+
: '- Scope: global',
|
|
107
|
+
`- Scoped sources: ${stats.sources}`,
|
|
108
|
+
`- Scoped chunks: ${stats.chunks}`,
|
|
109
|
+
`- Scoped raw bytes stored: ${stats.bytes_stored}`,
|
|
110
|
+
`- Global sources: ${stats.global_sources}`,
|
|
111
|
+
`- Global chunks: ${stats.global_chunks}`,
|
|
112
|
+
`- Global raw bytes stored: ${stats.global_bytes_stored}`,
|
|
47
113
|
`- Bytes returned: ${stats.bytes_returned}`,
|
|
48
114
|
`- Bytes saved: ${stats.bytes_saved}`,
|
|
49
115
|
`- Reduction: ${stats.reduction_pct}%`,
|
|
50
116
|
`- DB bytes: ${stats.total_bytes}`,
|
|
117
|
+
`- Scoped oldest source: ${format_timestamp(stats.oldest_created_at)}`,
|
|
118
|
+
`- Scoped newest source: ${format_timestamp(stats.newest_created_at)}`,
|
|
119
|
+
`- Global oldest source: ${format_timestamp(stats.global_oldest_created_at)}`,
|
|
120
|
+
`- Global newest source: ${format_timestamp(stats.global_newest_created_at)}`,
|
|
121
|
+
`- Retention days: ${stats.retention_days ?? 'disabled'}`,
|
|
122
|
+
`- Purge on shutdown: ${stats.purge_on_shutdown}`,
|
|
123
|
+
`- Max DB size: ${stats.max_mb === null ? 'disabled' : `${stats.max_mb} MiB`}`,
|
|
51
124
|
].join('\n');
|
|
52
125
|
}
|
|
126
|
+
function format_timestamp(timestamp) {
|
|
127
|
+
return timestamp === null
|
|
128
|
+
? '(none)'
|
|
129
|
+
: new Date(timestamp).toISOString();
|
|
130
|
+
}
|
|
131
|
+
async function show_context_text_modal(ctx, title, text) {
|
|
132
|
+
await show_text_modal(ctx, {
|
|
133
|
+
title,
|
|
134
|
+
text,
|
|
135
|
+
max_visible_lines: 18,
|
|
136
|
+
overlay_options: { width: '80%', minWidth: 64 },
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
async function show_context_stats(ctx) {
|
|
140
|
+
const scope = scope_from_context(ctx);
|
|
141
|
+
const text = format_stats(get_context_store(scope).stats(scope));
|
|
142
|
+
if (ctx.hasUI) {
|
|
143
|
+
await show_context_text_modal(ctx, 'Context sidecar stats', text);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
ctx.ui.notify(text, 'info');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function show_context_list(ctx, limit) {
|
|
150
|
+
const scope = scope_from_context(ctx);
|
|
151
|
+
const text = format_list_results(get_context_store(scope).list({ ...scope, limit }));
|
|
152
|
+
if (ctx.hasUI) {
|
|
153
|
+
await show_context_text_modal(ctx, 'Context sidecar sources', text);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
ctx.ui.notify(text, 'info');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function purge_context(ctx, options = {}) {
|
|
160
|
+
const policy = get_context_store().stats();
|
|
161
|
+
const days = options.older_than_days ?? policy.retention_days ?? 14;
|
|
162
|
+
const description = options.expired
|
|
163
|
+
? 'Delete expired context sources now?'
|
|
164
|
+
: options.source_id
|
|
165
|
+
? `Delete context source ${options.source_id}?`
|
|
166
|
+
: `Delete context sources older than ${days} day(s)?`;
|
|
167
|
+
const confirmed = ctx.hasUI
|
|
168
|
+
? await show_confirm_modal(ctx, {
|
|
169
|
+
title: 'Purge context sidecar?',
|
|
170
|
+
message: description,
|
|
171
|
+
confirm_label: 'Purge',
|
|
172
|
+
})
|
|
173
|
+
: await ctx.ui.confirm('Purge context sidecar?', description);
|
|
174
|
+
if (!confirmed)
|
|
175
|
+
return;
|
|
176
|
+
const scope = scope_from_context(ctx);
|
|
177
|
+
const details = options.expired
|
|
178
|
+
? { deleted: get_context_store(scope).cleanup().deleted }
|
|
179
|
+
: get_context_store(scope).purge_with_details({
|
|
180
|
+
...scope,
|
|
181
|
+
older_than_days: options.source_id ? undefined : days,
|
|
182
|
+
source_id: options.source_id,
|
|
183
|
+
});
|
|
184
|
+
ctx.ui.notify(format_purge_details(details), 'info');
|
|
185
|
+
}
|
|
53
186
|
export default function context_sidecar(pi) {
|
|
54
187
|
set_context_sidecar_enabled(true, { project_path: process.cwd() });
|
|
55
188
|
pi.on('session_start', async (_event, ctx) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
189
|
+
const scope = scope_from_context(ctx);
|
|
190
|
+
set_context_sidecar_enabled(true, scope);
|
|
191
|
+
get_context_store(scope).cleanup();
|
|
60
192
|
});
|
|
61
193
|
pi.on('session_shutdown', async () => {
|
|
194
|
+
const store = get_context_store();
|
|
195
|
+
const stats = store.stats();
|
|
196
|
+
if (stats.purge_on_shutdown)
|
|
197
|
+
store.cleanup();
|
|
62
198
|
set_context_sidecar_enabled(false);
|
|
63
199
|
});
|
|
64
|
-
pi.on('tool_result', async (event) => {
|
|
200
|
+
pi.on('tool_result', async (event, ctx) => {
|
|
65
201
|
const tool_name = String(event.toolName ?? 'tool');
|
|
66
202
|
if (should_skip_tool(tool_name))
|
|
67
203
|
return;
|
|
@@ -80,6 +216,7 @@ export default function context_sidecar(pi) {
|
|
|
80
216
|
text,
|
|
81
217
|
tool_name,
|
|
82
218
|
input_summary: summarize_tool_input(event.input),
|
|
219
|
+
...scope_from_context(ctx),
|
|
83
220
|
});
|
|
84
221
|
if (!stored)
|
|
85
222
|
return;
|
|
@@ -105,9 +242,15 @@ export default function context_sidecar(pi) {
|
|
|
105
242
|
limit: Type.Optional(Type.Number({
|
|
106
243
|
description: 'Maximum chunks to return, default 5',
|
|
107
244
|
})),
|
|
245
|
+
global: Type.Optional(Type.Boolean({
|
|
246
|
+
description: 'Search all indexed sources instead of current project/session scope',
|
|
247
|
+
})),
|
|
108
248
|
}),
|
|
109
|
-
async execute(_toolCallId, params) {
|
|
110
|
-
const
|
|
249
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
250
|
+
const scope = scope_from_context(ctx);
|
|
251
|
+
const results = get_context_store(scope).search(params.query, {
|
|
252
|
+
...(params.global ? {} : scope),
|
|
253
|
+
global: params.global,
|
|
111
254
|
source_id: params.source_id,
|
|
112
255
|
tool_name: params.tool_name,
|
|
113
256
|
limit: params.limit,
|
|
@@ -131,9 +274,13 @@ export default function context_sidecar(pi) {
|
|
|
131
274
|
parameters: Type.Object({
|
|
132
275
|
source_id: Type.String({ description: 'Indexed source id' }),
|
|
133
276
|
chunk_id: Type.Optional(Type.String({ description: 'Optional exact chunk id' })),
|
|
277
|
+
global: Type.Optional(Type.Boolean({
|
|
278
|
+
description: 'Retrieve across all scopes instead of current project/session scope',
|
|
279
|
+
})),
|
|
134
280
|
}),
|
|
135
|
-
async execute(_toolCallId, params) {
|
|
136
|
-
const
|
|
281
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
282
|
+
const scope = scope_from_context(ctx);
|
|
283
|
+
const chunks = get_context_store(scope).get(params.source_id, params.chunk_id, { ...(params.global ? {} : scope), global: params.global });
|
|
137
284
|
const text = chunks.length
|
|
138
285
|
? chunks
|
|
139
286
|
.map((chunk) => [
|
|
@@ -150,13 +297,68 @@ export default function context_sidecar(pi) {
|
|
|
150
297
|
};
|
|
151
298
|
},
|
|
152
299
|
});
|
|
300
|
+
pi.registerTool({
|
|
301
|
+
name: 'context_list',
|
|
302
|
+
label: 'Context List',
|
|
303
|
+
description: 'List indexed sources in the local SQLite context sidecar.',
|
|
304
|
+
promptSnippet: 'List recent indexed context-sidecar sources without knowing a source id',
|
|
305
|
+
parameters: Type.Object({
|
|
306
|
+
source_id: Type.Optional(Type.String({ description: 'Limit to one source id' })),
|
|
307
|
+
tool_name: Type.Optional(Type.String({ description: 'Limit to one tool name' })),
|
|
308
|
+
project_path: Type.Optional(Type.String({ description: 'Limit to one project path' })),
|
|
309
|
+
session_id: Type.Optional(Type.String({ description: 'Limit to one session id' })),
|
|
310
|
+
newer_than_days: Type.Optional(Type.Number({
|
|
311
|
+
description: 'Only sources newer than N days',
|
|
312
|
+
})),
|
|
313
|
+
older_than_days: Type.Optional(Type.Number({
|
|
314
|
+
description: 'Only sources older than N days',
|
|
315
|
+
})),
|
|
316
|
+
limit: Type.Optional(Type.Number({ description: 'Maximum sources, default 10' })),
|
|
317
|
+
offset: Type.Optional(Type.Number({ description: 'Pagination offset, default 0' })),
|
|
318
|
+
global: Type.Optional(Type.Boolean({
|
|
319
|
+
description: 'List all scopes instead of current project/session scope',
|
|
320
|
+
})),
|
|
321
|
+
}),
|
|
322
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
323
|
+
const scope = scope_from_context(ctx);
|
|
324
|
+
const has_explicit_scope = params.project_path !== undefined ||
|
|
325
|
+
params.session_id !== undefined;
|
|
326
|
+
const project_path = has_explicit_scope
|
|
327
|
+
? params.project_path
|
|
328
|
+
: scope.project_path;
|
|
329
|
+
const session_id = has_explicit_scope
|
|
330
|
+
? params.session_id
|
|
331
|
+
: scope.session_id;
|
|
332
|
+
const results = get_context_store(scope).list({
|
|
333
|
+
project_path,
|
|
334
|
+
session_id,
|
|
335
|
+
global: params.global || has_explicit_scope,
|
|
336
|
+
source_id: params.source_id,
|
|
337
|
+
tool_name: params.tool_name,
|
|
338
|
+
newer_than_days: params.newer_than_days,
|
|
339
|
+
older_than_days: params.older_than_days,
|
|
340
|
+
limit: params.limit,
|
|
341
|
+
offset: params.offset,
|
|
342
|
+
});
|
|
343
|
+
return {
|
|
344
|
+
content: [
|
|
345
|
+
{
|
|
346
|
+
type: 'text',
|
|
347
|
+
text: format_list_results(results),
|
|
348
|
+
},
|
|
349
|
+
],
|
|
350
|
+
details: { count: results.length },
|
|
351
|
+
};
|
|
352
|
+
},
|
|
353
|
+
});
|
|
153
354
|
pi.registerTool({
|
|
154
355
|
name: 'context_stats',
|
|
155
356
|
label: 'Context Stats',
|
|
156
357
|
description: 'Show byte accounting for the local SQLite context sidecar.',
|
|
157
358
|
parameters: Type.Object({}),
|
|
158
|
-
async execute() {
|
|
159
|
-
const
|
|
359
|
+
async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
|
|
360
|
+
const scope = scope_from_context(ctx);
|
|
361
|
+
const stats = get_context_store(scope).stats(scope);
|
|
160
362
|
return {
|
|
161
363
|
content: [
|
|
162
364
|
{ type: 'text', text: format_stats(stats) },
|
|
@@ -168,35 +370,147 @@ export default function context_sidecar(pi) {
|
|
|
168
370
|
pi.registerTool({
|
|
169
371
|
name: 'context_purge',
|
|
170
372
|
label: 'Context Purge',
|
|
171
|
-
description: 'Delete indexed context-sidecar output by age or
|
|
373
|
+
description: 'Delete indexed context-sidecar output by age, source, project, session, or active retention policy.',
|
|
172
374
|
parameters: Type.Object({
|
|
375
|
+
expired: Type.Optional(Type.Boolean({
|
|
376
|
+
description: 'Run active retention cleanup now instead of manual age purge',
|
|
377
|
+
})),
|
|
173
378
|
older_than_days: Type.Optional(Type.Number({
|
|
174
|
-
description: 'Delete sources older than this many days;
|
|
379
|
+
description: 'Delete sources older than this many days; defaults to active retention days or 14',
|
|
175
380
|
})),
|
|
176
381
|
source_id: Type.Optional(Type.String({ description: 'Delete one source id' })),
|
|
382
|
+
project_path: Type.Optional(Type.String({
|
|
383
|
+
description: 'Limit purge to one project path',
|
|
384
|
+
})),
|
|
385
|
+
session_id: Type.Optional(Type.String({ description: 'Limit purge to one session id' })),
|
|
386
|
+
global: Type.Optional(Type.Boolean({
|
|
387
|
+
description: 'Purge all scopes instead of current project/session scope',
|
|
388
|
+
})),
|
|
177
389
|
}),
|
|
178
|
-
async execute(_toolCallId, params) {
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
390
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
391
|
+
const scope = scope_from_context(ctx);
|
|
392
|
+
const store = get_context_store(scope);
|
|
393
|
+
const stats = store.stats();
|
|
394
|
+
const has_explicit_scope = params.project_path !== undefined ||
|
|
395
|
+
params.session_id !== undefined;
|
|
396
|
+
const project_path = params.global
|
|
397
|
+
? params.project_path
|
|
398
|
+
: has_explicit_scope
|
|
399
|
+
? params.project_path
|
|
400
|
+
: scope.project_path;
|
|
401
|
+
const session_id = params.global
|
|
402
|
+
? params.session_id
|
|
403
|
+
: has_explicit_scope
|
|
404
|
+
? params.session_id
|
|
405
|
+
: scope.session_id;
|
|
406
|
+
const details = params.expired
|
|
407
|
+
? { deleted: store.cleanup().deleted }
|
|
408
|
+
: store.purge_with_details({
|
|
409
|
+
project_path,
|
|
410
|
+
session_id,
|
|
411
|
+
older_than_days: params.source_id
|
|
412
|
+
? undefined
|
|
413
|
+
: (params.older_than_days ??
|
|
414
|
+
stats.retention_days ??
|
|
415
|
+
14),
|
|
416
|
+
source_id: params.source_id,
|
|
417
|
+
});
|
|
183
418
|
return {
|
|
184
419
|
content: [
|
|
185
420
|
{
|
|
186
421
|
type: 'text',
|
|
187
|
-
text:
|
|
422
|
+
text: format_purge_details(details),
|
|
188
423
|
},
|
|
189
424
|
],
|
|
190
|
-
details
|
|
425
|
+
details,
|
|
191
426
|
};
|
|
192
427
|
},
|
|
193
428
|
});
|
|
429
|
+
pi.registerCommand('context', {
|
|
430
|
+
description: 'Inspect and manage the context sidecar',
|
|
431
|
+
getArgumentCompletions: (prefix) => ['list', 'stats', 'purge']
|
|
432
|
+
.filter((item) => item.startsWith(prefix.trim()))
|
|
433
|
+
.map((item) => ({ value: item, label: item })),
|
|
434
|
+
handler: async (args, ctx) => {
|
|
435
|
+
const [sub = '', ...rest] = args
|
|
436
|
+
.trim()
|
|
437
|
+
.split(/\s+/)
|
|
438
|
+
.filter(Boolean);
|
|
439
|
+
if (!sub && ctx.hasUI) {
|
|
440
|
+
const selected = await show_picker_modal(ctx, {
|
|
441
|
+
title: 'Context sidecar',
|
|
442
|
+
subtitle: 'Local SQLite storage for oversized tool output',
|
|
443
|
+
items: [
|
|
444
|
+
{
|
|
445
|
+
value: 'list',
|
|
446
|
+
label: 'List recent sources',
|
|
447
|
+
description: 'Browse indexed output in this scope',
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
value: 'stats',
|
|
451
|
+
label: 'Show stats',
|
|
452
|
+
description: 'Byte accounting and storage reduction',
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
value: 'purge',
|
|
456
|
+
label: 'Purge old context',
|
|
457
|
+
description: 'Delete sources older than 14 days',
|
|
458
|
+
},
|
|
459
|
+
],
|
|
460
|
+
});
|
|
461
|
+
if (!selected)
|
|
462
|
+
return;
|
|
463
|
+
if (selected === 'list')
|
|
464
|
+
await show_context_list(ctx);
|
|
465
|
+
else if (selected === 'stats')
|
|
466
|
+
await show_context_stats(ctx);
|
|
467
|
+
else
|
|
468
|
+
await purge_context(ctx);
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
switch (sub || 'list') {
|
|
472
|
+
case 'list': {
|
|
473
|
+
const [limit_text] = rest;
|
|
474
|
+
const limit = limit_text ? Number(limit_text) : undefined;
|
|
475
|
+
if (limit !== undefined && !Number.isFinite(limit)) {
|
|
476
|
+
ctx.ui.notify('Usage: /context list [limit]', 'warning');
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
await show_context_list(ctx, limit);
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
case 'stats':
|
|
483
|
+
await show_context_stats(ctx);
|
|
484
|
+
return;
|
|
485
|
+
case 'purge': {
|
|
486
|
+
const [kind, value] = rest;
|
|
487
|
+
if (kind === 'expired') {
|
|
488
|
+
await purge_context(ctx, { expired: true });
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
if (kind === 'source' && value) {
|
|
492
|
+
await purge_context(ctx, { source_id: value });
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
const days = kind ? Number(kind) : undefined;
|
|
496
|
+
if (days !== undefined && !Number.isFinite(days)) {
|
|
497
|
+
ctx.ui.notify('Usage: /context purge [older-than-days] | expired | source <source-id>', 'warning');
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
await purge_context(ctx, { older_than_days: days });
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
default:
|
|
504
|
+
ctx.ui.notify(`Unknown context command: ${sub}. Use list, stats, or purge.`, 'warning');
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
});
|
|
194
508
|
pi.registerCommand('context-stats', {
|
|
195
509
|
description: 'Show context sidecar byte accounting',
|
|
196
510
|
handler: async (_args, ctx) => {
|
|
197
|
-
ctx
|
|
511
|
+
await show_context_stats(ctx);
|
|
198
512
|
},
|
|
199
513
|
});
|
|
200
514
|
}
|
|
201
|
-
export { get_context_store, is_context_sidecar_enabled, maybe_store_context_output, set_context_sidecar_enabled, should_index_text, } from './store.js';
|
|
515
|
+
export { get_context_store, is_context_sidecar_enabled, maybe_store_context_output, parse_context_retention_policy, set_context_sidecar_enabled, should_index_text, } from './store.js';
|
|
202
516
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACN,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,GAGjB,MAAM,YAAY,CAAC;AAEpB,SAAS,eAAe,CACvB,IAAa;IAEb,OAAO,CACN,CAAC,CAAC,IAAI;QACN,OAAO,IAAI,KAAK,QAAQ;QACvB,IAA2B,CAAC,IAAI,KAAK,MAAM;QAC5C,OAAQ,IAA2B,CAAC,IAAI,KAAK,QAAQ,CACrD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IAC1C,OAAO,CACN,SAAS,KAAK,gBAAgB;QAC9B,SAAS,KAAK,aAAa;QAC3B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,MAAM,CACpB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC7B,OAA8B;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,6BAA6B,CAAC;IAC/D,OAAO,OAAO;SACZ,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACtB;QACC,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;QACrD,WAAW,MAAM,CAAC,SAAS,aAAa,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,SAAS,EAAE;QACrF,EAAE;QACF,MAAM,CAAC,OAAO;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ;SACA,IAAI,CAAC,aAAa,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAmB;IACxC,OAAO;QACN,0BAA0B;QAC1B,EAAE;QACF,cAAc,0BAA0B,EAAE,EAAE;QAC5C,cAAc,KAAK,CAAC,OAAO,EAAE;QAC7B,aAAa,KAAK,CAAC,MAAM,EAAE;QAC3B,uBAAuB,KAAK,CAAC,YAAY,EAAE;QAC3C,qBAAqB,KAAK,CAAC,cAAc,EAAE;QAC3C,kBAAkB,KAAK,CAAC,WAAW,EAAE;QACrC,gBAAgB,KAAK,CAAC,aAAa,GAAG;QACtC,eAAe,KAAK,CAAC,WAAW,EAAE;KAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAgB;IACvD,2BAA2B,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEnE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5C,2BAA2B,CAAC,IAAI,EAAE;YACjC,YAAY,EAAE,GAAG,CAAC,GAAG;YACrB,UAAU,EAAE,SAAS;SACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACpC,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QACnD,IAAI,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO;QAE1C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAO;QAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAAE,OAAO;QAErC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,0BAA0B,CAAC;gBACzC,IAAI;gBACJ,SAAS;gBACT,aAAa,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aAC1D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,OAAO;QACR,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACV,sEAAsE;QACvE,aAAa,EACZ,8EAA8E;QAC/E,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;YACvD,SAAS,EAAE,IAAI,CAAC,QAAQ,CACvB,IAAI,CAAC,MAAM,CAAC;gBACX,WAAW,EAAE,gCAAgC;aAC7C,CAAC,CACF;YACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CACvB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CACtD;YACD,KAAK,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,MAAM,CAAC;gBACX,WAAW,EAAE,qCAAqC;aAClD,CAAC,CACF;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAChC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACxD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;aACnB,CAAC,CAAC;YACH,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC;qBACpC;iBACD;gBACD,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;aAClC,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EACV,8DAA8D;QAC/D,aAAa,EAAE,kDAAkD;QACjE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;YAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CACvD;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAChC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,GAAG,CACrC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,CACf,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM;gBACzB,CAAC,CAAC,MAAM;qBACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACd;oBACC,MAAM,KAAK,CAAC,EAAE,EAAE;oBAChB,WAAW,KAAK,CAAC,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE;oBACrD,EAAE;oBACF,KAAK,CAAC,OAAO;iBACb,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ;qBACA,IAAI,CAAC,aAAa,CAAC;gBACtB,CAAC,CAAC,kBAAkB,CAAC;YACtB,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;aACjC,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACV,4DAA4D;QAC7D,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO;YACZ,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO;gBACN,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;iBACpD;gBACD,OAAO,EAAE,KAAK;aACd,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACV,4DAA4D;QAC7D,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,eAAe,EAAE,IAAI,CAAC,QAAQ,CAC7B,IAAI,CAAC,MAAM,CAAC;gBACX,WAAW,EACV,sDAAsD;aACvD,CAAC,CACF;YACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CACvB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CACpD;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAChC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC,KAAK,CAAC;gBACzC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAC;YACH,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,WAAW,OAAO,qBAAqB;qBAC7C;iBACD;gBACD,OAAO,EAAE,EAAE,OAAO,EAAE;aACpB,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE;QACnC,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,YAAY,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,EACzC,MAAM,CACN,CAAC;QACH,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EACN,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,GACjB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/policy.d.ts
ADDED