@spences10/pi-context 0.0.5 → 0.0.7
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 +29 -3
- package/dist/config.d.ts +36 -0
- package/dist/config.js +184 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +445 -33
- package/dist/index.js.map +1 -1
- package/dist/policy.d.ts +1 -1
- package/dist/policy.js +15 -6
- package/dist/policy.js.map +1 -1
- package/dist/store.d.ts +4 -2
- package/dist/store.js +76 -10
- package/dist/store.js.map +1 -1
- package/dist/text.js +6 -1
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -39,18 +39,25 @@ pi -e ./packages/pi-context
|
|
|
39
39
|
- `context_purge` / `/context purge [days]` — delete old indexed
|
|
40
40
|
output. Also supports source/project/session filters and
|
|
41
41
|
`/context purge expired`.
|
|
42
|
+
- `/context settings` — choose retention/size presets or inspect the
|
|
43
|
+
effective saved/env-backed policy.
|
|
42
44
|
|
|
43
45
|
Use `/context` in interactive mode for a small modal with list, stats,
|
|
44
|
-
and purge actions.
|
|
46
|
+
settings, and purge actions.
|
|
45
47
|
|
|
46
|
-
Receipts
|
|
48
|
+
Receipts include the source id, first exact chunk id, and the main
|
|
49
|
+
retrieval path:
|
|
47
50
|
|
|
48
51
|
```text
|
|
52
|
+
First chunk id: ctx_..._0001
|
|
49
53
|
context_search query:"..." source_id:"ctx_..."
|
|
50
54
|
context_get source_id:"ctx_..."
|
|
51
55
|
context_list
|
|
52
56
|
```
|
|
53
57
|
|
|
58
|
+
`context_get` accepts exact chunk ids plus ordinal aliases such as `1`
|
|
59
|
+
or `0001`, and legacy guessed references such as `ctx_...:chunk:000`.
|
|
60
|
+
|
|
54
61
|
## Coverage policy
|
|
55
62
|
|
|
56
63
|
Intentional sidecar-backed output:
|
|
@@ -89,7 +96,21 @@ back to the current project path. Retrieval tools use that scope by
|
|
|
89
96
|
default to avoid leaking other projects or sessions into results; pass
|
|
90
97
|
`global: true` when you intend to search or list everything.
|
|
91
98
|
|
|
92
|
-
Retention
|
|
99
|
+
Retention, storage cap, and capture thresholds are saved at
|
|
100
|
+
`~/.config/my-pi/context.json` via `/context settings`. Presets
|
|
101
|
+
include `default`, `light`, `balanced`, `research`, and `archive`;
|
|
102
|
+
custom values are available with:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
/context settings custom <days|off> <max-mb|off> [capture-kb] [capture-lines] [purge-on-shutdown]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Capture thresholds control when large tool output is moved into the
|
|
109
|
+
sidecar instead of staying inline in the model context. Defaults match
|
|
110
|
+
historical behavior: generic tools capture after `24 KiB` or `300`
|
|
111
|
+
lines; MCP output captures after `50 KiB` or `2000` lines.
|
|
112
|
+
|
|
113
|
+
Environment variables override saved settings:
|
|
93
114
|
|
|
94
115
|
- `MY_PI_CONTEXT_RETENTION_DAYS` — default `7`; set `0`, `off`, or
|
|
95
116
|
`disabled` to disable age cleanup.
|
|
@@ -97,6 +118,11 @@ Retention is env-backed:
|
|
|
97
118
|
cleanup on shutdown.
|
|
98
119
|
- `MY_PI_CONTEXT_MAX_MB` — optional max stored raw bytes; oldest
|
|
99
120
|
sources are removed first when exceeded.
|
|
121
|
+
- `MY_PI_CONTEXT_CAPTURE_MAX_KB` / `MY_PI_CONTEXT_CAPTURE_MAX_LINES` —
|
|
122
|
+
generic tool-output capture threshold.
|
|
123
|
+
- `MY_PI_CONTEXT_MCP_MAX_KB` / `MY_PI_CONTEXT_MCP_MAX_LINES` — MCP
|
|
124
|
+
output capture threshold.
|
|
125
|
+
- `MY_PI_CONTEXT_CONFIG` — override the saved settings file path.
|
|
100
126
|
|
|
101
127
|
## Safety model
|
|
102
128
|
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type ContextSettingsPreset = 'default' | 'light' | 'balanced' | 'research' | 'archive';
|
|
2
|
+
export interface ContextOutputLimits {
|
|
3
|
+
max_bytes: number;
|
|
4
|
+
max_lines: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ContextSettingsValues {
|
|
7
|
+
retention_days: number | null;
|
|
8
|
+
max_mb: number | null;
|
|
9
|
+
purge_on_shutdown: boolean;
|
|
10
|
+
capture_max_bytes: number;
|
|
11
|
+
capture_max_lines: number;
|
|
12
|
+
mcp_max_bytes: number;
|
|
13
|
+
mcp_max_lines: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ContextSettingsConfig extends ContextSettingsValues {
|
|
16
|
+
version: 1;
|
|
17
|
+
preset: ContextSettingsPreset | 'custom';
|
|
18
|
+
}
|
|
19
|
+
export interface ContextSettingsPresetDefinition extends ContextSettingsValues {
|
|
20
|
+
label: string;
|
|
21
|
+
description: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const DEFAULT_CONTEXT_CAPTURE_MAX_BYTES: number;
|
|
24
|
+
export declare const DEFAULT_CONTEXT_CAPTURE_MAX_LINES = 300;
|
|
25
|
+
export declare const DEFAULT_CONTEXT_MCP_MAX_BYTES: number;
|
|
26
|
+
export declare const DEFAULT_CONTEXT_MCP_MAX_LINES = 2000;
|
|
27
|
+
export declare const CONTEXT_SETTINGS_PRESETS: Record<ContextSettingsPreset, ContextSettingsPresetDefinition>;
|
|
28
|
+
export declare const DEFAULT_CONTEXT_SETTINGS: ContextSettingsConfig;
|
|
29
|
+
export declare function get_context_settings_config_path(): string;
|
|
30
|
+
export declare function context_settings_from_preset(preset: ContextSettingsPreset): ContextSettingsConfig;
|
|
31
|
+
export declare function load_context_settings_config(): ContextSettingsConfig | null;
|
|
32
|
+
export declare function save_context_settings_config(config: ContextSettingsConfig): void;
|
|
33
|
+
export declare function get_context_capture_limits(env?: NodeJS.ProcessEnv): ContextOutputLimits;
|
|
34
|
+
export declare function get_context_mcp_output_limits(env?: NodeJS.ProcessEnv): ContextOutputLimits;
|
|
35
|
+
export declare function normalize_context_settings_config(value: Partial<ContextSettingsConfig>): ContextSettingsConfig;
|
|
36
|
+
export declare function is_context_settings_preset(value: unknown): value is ContextSettingsPreset;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
export const DEFAULT_CONTEXT_CAPTURE_MAX_BYTES = 24 * 1024;
|
|
5
|
+
export const DEFAULT_CONTEXT_CAPTURE_MAX_LINES = 300;
|
|
6
|
+
export const DEFAULT_CONTEXT_MCP_MAX_BYTES = 50 * 1024;
|
|
7
|
+
export const DEFAULT_CONTEXT_MCP_MAX_LINES = 2_000;
|
|
8
|
+
export const CONTEXT_SETTINGS_PRESETS = {
|
|
9
|
+
default: {
|
|
10
|
+
label: 'Default',
|
|
11
|
+
description: '7 days, no size cap; capture after 24 KiB / 300 lines',
|
|
12
|
+
retention_days: 7,
|
|
13
|
+
max_mb: null,
|
|
14
|
+
purge_on_shutdown: false,
|
|
15
|
+
capture_max_bytes: DEFAULT_CONTEXT_CAPTURE_MAX_BYTES,
|
|
16
|
+
capture_max_lines: DEFAULT_CONTEXT_CAPTURE_MAX_LINES,
|
|
17
|
+
mcp_max_bytes: DEFAULT_CONTEXT_MCP_MAX_BYTES,
|
|
18
|
+
mcp_max_lines: DEFAULT_CONTEXT_MCP_MAX_LINES,
|
|
19
|
+
},
|
|
20
|
+
light: {
|
|
21
|
+
label: 'Light',
|
|
22
|
+
description: '1 day, 50 MiB cap; capture after 16 KiB / 200 lines',
|
|
23
|
+
retention_days: 1,
|
|
24
|
+
max_mb: 50,
|
|
25
|
+
purge_on_shutdown: false,
|
|
26
|
+
capture_max_bytes: 16 * 1024,
|
|
27
|
+
capture_max_lines: 200,
|
|
28
|
+
mcp_max_bytes: 32 * 1024,
|
|
29
|
+
mcp_max_lines: 1_000,
|
|
30
|
+
},
|
|
31
|
+
balanced: {
|
|
32
|
+
label: 'Balanced',
|
|
33
|
+
description: '7 days, 250 MiB cap; capture after 24 KiB / 300 lines',
|
|
34
|
+
retention_days: 7,
|
|
35
|
+
max_mb: 250,
|
|
36
|
+
purge_on_shutdown: false,
|
|
37
|
+
capture_max_bytes: DEFAULT_CONTEXT_CAPTURE_MAX_BYTES,
|
|
38
|
+
capture_max_lines: DEFAULT_CONTEXT_CAPTURE_MAX_LINES,
|
|
39
|
+
mcp_max_bytes: DEFAULT_CONTEXT_MCP_MAX_BYTES,
|
|
40
|
+
mcp_max_lines: DEFAULT_CONTEXT_MCP_MAX_LINES,
|
|
41
|
+
},
|
|
42
|
+
research: {
|
|
43
|
+
label: 'Research',
|
|
44
|
+
description: '30 days, 1 GiB cap; capture after 48 KiB / 600 lines',
|
|
45
|
+
retention_days: 30,
|
|
46
|
+
max_mb: 1024,
|
|
47
|
+
purge_on_shutdown: false,
|
|
48
|
+
capture_max_bytes: 48 * 1024,
|
|
49
|
+
capture_max_lines: 600,
|
|
50
|
+
mcp_max_bytes: 96 * 1024,
|
|
51
|
+
mcp_max_lines: 3_000,
|
|
52
|
+
},
|
|
53
|
+
archive: {
|
|
54
|
+
label: 'Archive',
|
|
55
|
+
description: '90 days, 5 GiB cap; capture after 64 KiB / 1,000 lines',
|
|
56
|
+
retention_days: 90,
|
|
57
|
+
max_mb: 5120,
|
|
58
|
+
purge_on_shutdown: false,
|
|
59
|
+
capture_max_bytes: 64 * 1024,
|
|
60
|
+
capture_max_lines: 1_000,
|
|
61
|
+
mcp_max_bytes: 128 * 1024,
|
|
62
|
+
mcp_max_lines: 4_000,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
export const DEFAULT_CONTEXT_SETTINGS = {
|
|
66
|
+
version: 1,
|
|
67
|
+
preset: 'default',
|
|
68
|
+
retention_days: CONTEXT_SETTINGS_PRESETS.default.retention_days,
|
|
69
|
+
max_mb: CONTEXT_SETTINGS_PRESETS.default.max_mb,
|
|
70
|
+
purge_on_shutdown: CONTEXT_SETTINGS_PRESETS.default.purge_on_shutdown,
|
|
71
|
+
capture_max_bytes: CONTEXT_SETTINGS_PRESETS.default.capture_max_bytes,
|
|
72
|
+
capture_max_lines: CONTEXT_SETTINGS_PRESETS.default.capture_max_lines,
|
|
73
|
+
mcp_max_bytes: CONTEXT_SETTINGS_PRESETS.default.mcp_max_bytes,
|
|
74
|
+
mcp_max_lines: CONTEXT_SETTINGS_PRESETS.default.mcp_max_lines,
|
|
75
|
+
};
|
|
76
|
+
export function get_context_settings_config_path() {
|
|
77
|
+
if (process.env.MY_PI_CONTEXT_CONFIG)
|
|
78
|
+
return process.env.MY_PI_CONTEXT_CONFIG;
|
|
79
|
+
const xdg = process.env.XDG_CONFIG_HOME || join(homedir(), '.config');
|
|
80
|
+
return join(xdg, 'my-pi', 'context.json');
|
|
81
|
+
}
|
|
82
|
+
export function context_settings_from_preset(preset) {
|
|
83
|
+
const definition = CONTEXT_SETTINGS_PRESETS[preset];
|
|
84
|
+
return {
|
|
85
|
+
version: 1,
|
|
86
|
+
preset,
|
|
87
|
+
retention_days: definition.retention_days,
|
|
88
|
+
max_mb: definition.max_mb,
|
|
89
|
+
purge_on_shutdown: definition.purge_on_shutdown,
|
|
90
|
+
capture_max_bytes: definition.capture_max_bytes,
|
|
91
|
+
capture_max_lines: definition.capture_max_lines,
|
|
92
|
+
mcp_max_bytes: definition.mcp_max_bytes,
|
|
93
|
+
mcp_max_lines: definition.mcp_max_lines,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function load_context_settings_config() {
|
|
97
|
+
const path = get_context_settings_config_path();
|
|
98
|
+
if (!existsSync(path))
|
|
99
|
+
return null;
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
102
|
+
return normalize_context_settings_config(parsed);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export function save_context_settings_config(config) {
|
|
109
|
+
const path = get_context_settings_config_path();
|
|
110
|
+
const dir = dirname(path);
|
|
111
|
+
if (!existsSync(dir))
|
|
112
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
113
|
+
const tmp = `${path}.tmp-${Date.now()}`;
|
|
114
|
+
writeFileSync(tmp, JSON.stringify(config, null, '\t') + '\n', {
|
|
115
|
+
mode: 0o600,
|
|
116
|
+
});
|
|
117
|
+
renameSync(tmp, path);
|
|
118
|
+
}
|
|
119
|
+
export function get_context_capture_limits(env = process.env) {
|
|
120
|
+
const saved = load_context_settings_config();
|
|
121
|
+
const fallback = saved ?? DEFAULT_CONTEXT_SETTINGS;
|
|
122
|
+
return {
|
|
123
|
+
max_bytes: parse_positive_byte_env(env.MY_PI_CONTEXT_CAPTURE_MAX_KB, fallback.capture_max_bytes),
|
|
124
|
+
max_lines: parse_positive_number_env(env.MY_PI_CONTEXT_CAPTURE_MAX_LINES, fallback.capture_max_lines),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function get_context_mcp_output_limits(env = process.env) {
|
|
128
|
+
const saved = load_context_settings_config();
|
|
129
|
+
const fallback = saved ?? DEFAULT_CONTEXT_SETTINGS;
|
|
130
|
+
return {
|
|
131
|
+
max_bytes: parse_positive_byte_env(env.MY_PI_CONTEXT_MCP_MAX_KB, fallback.mcp_max_bytes),
|
|
132
|
+
max_lines: parse_positive_number_env(env.MY_PI_CONTEXT_MCP_MAX_LINES, fallback.mcp_max_lines),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function normalize_context_settings_config(value) {
|
|
136
|
+
const preset = is_context_settings_preset(value.preset)
|
|
137
|
+
? value.preset
|
|
138
|
+
: value.preset === 'custom'
|
|
139
|
+
? 'custom'
|
|
140
|
+
: 'custom';
|
|
141
|
+
const base = preset !== 'custom'
|
|
142
|
+
? context_settings_from_preset(preset)
|
|
143
|
+
: DEFAULT_CONTEXT_SETTINGS;
|
|
144
|
+
return {
|
|
145
|
+
version: 1,
|
|
146
|
+
preset,
|
|
147
|
+
retention_days: normalize_optional_positive_number(value.retention_days, base.retention_days),
|
|
148
|
+
max_mb: normalize_optional_positive_number(value.max_mb, base.max_mb),
|
|
149
|
+
purge_on_shutdown: typeof value.purge_on_shutdown === 'boolean'
|
|
150
|
+
? value.purge_on_shutdown
|
|
151
|
+
: base.purge_on_shutdown,
|
|
152
|
+
capture_max_bytes: normalize_positive_number(value.capture_max_bytes, base.capture_max_bytes),
|
|
153
|
+
capture_max_lines: normalize_positive_number(value.capture_max_lines, base.capture_max_lines),
|
|
154
|
+
mcp_max_bytes: normalize_positive_number(value.mcp_max_bytes, base.mcp_max_bytes),
|
|
155
|
+
mcp_max_lines: normalize_positive_number(value.mcp_max_lines, base.mcp_max_lines),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export function is_context_settings_preset(value) {
|
|
159
|
+
return (typeof value === 'string' &&
|
|
160
|
+
Object.hasOwn(CONTEXT_SETTINGS_PRESETS, value));
|
|
161
|
+
}
|
|
162
|
+
function normalize_optional_positive_number(value, fallback) {
|
|
163
|
+
if (value === null)
|
|
164
|
+
return null;
|
|
165
|
+
if (typeof value !== 'number')
|
|
166
|
+
return fallback;
|
|
167
|
+
return Number.isFinite(value) && value > 0 ? value : fallback;
|
|
168
|
+
}
|
|
169
|
+
function normalize_positive_number(value, fallback) {
|
|
170
|
+
if (typeof value !== 'number')
|
|
171
|
+
return fallback;
|
|
172
|
+
return Number.isFinite(value) && value > 0 ? value : fallback;
|
|
173
|
+
}
|
|
174
|
+
function parse_positive_number_env(value, fallback) {
|
|
175
|
+
if (value === undefined || value.trim() === '')
|
|
176
|
+
return fallback;
|
|
177
|
+
const parsed = Number(value.trim());
|
|
178
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
179
|
+
}
|
|
180
|
+
function parse_positive_byte_env(value, fallback) {
|
|
181
|
+
const kb = parse_positive_number_env(value, fallback / 1024);
|
|
182
|
+
return Math.round(kb * 1024);
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ExtensionAPI } from '@mariozechner/pi-coding-agent';
|
|
2
2
|
export default function context_sidecar(pi: ExtensionAPI): void;
|
|
3
|
+
export { CONTEXT_SETTINGS_PRESETS, context_settings_from_preset, get_context_capture_limits, get_context_mcp_output_limits, get_context_settings_config_path, load_context_settings_config, save_context_settings_config, } from './config.js';
|
|
4
|
+
export type { ContextOutputLimits, ContextSettingsConfig, ContextSettingsPreset, ContextSettingsValues, } from './config.js';
|
|
3
5
|
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
6
|
export type { ContextCleanupResult, ContextListResult, ContextPurgeDetails, ContextRetentionPolicy, ContextScopeOptions, ContextSearchResult, ContextStats, StoreContextInput, StoredContextOutput, } from './store.js';
|