pi-vault-mind 0.16.29 → 0.16.31

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 (53) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +215 -13
  3. package/dist/src/commands.js +7 -7
  4. package/dist/src/context-capture.d.ts +11 -6
  5. package/dist/src/context-capture.js +12 -7
  6. package/dist/src/events.d.ts +2 -2
  7. package/dist/src/events.js +109 -132
  8. package/dist/src/index.js +9 -8
  9. package/dist/src/personalize.js +2 -2
  10. package/dist/src/settings-ui.js +1 -1
  11. package/dist/src/types.d.ts +1 -1
  12. package/dist/src/types.js +1 -1
  13. package/dist/src/utils.js +3 -3
  14. package/dist/test/check-deps-script.test.js +102 -0
  15. package/dist/test/context-capture.test.js +34 -14
  16. package/dist/test/events.test.js +210 -132
  17. package/dist/test/pvm-cli.test.js +118 -0
  18. package/dist/test/pvm-setup.test.js +218 -0
  19. package/dist/test/utils.test.js +26 -4
  20. package/dist/test/vault-pi-script.test.js +119 -0
  21. package/package.json +22 -7
  22. package/pi-vault-mind.config.example.json +1 -1
  23. package/runtime/pvm-extensions.json +11 -0
  24. package/runtime/skills/LICENSE +21 -0
  25. package/runtime/skills/json-canvas/SKILL.md +244 -0
  26. package/runtime/skills/json-canvas/references/EXAMPLES.md +329 -0
  27. package/runtime/skills/nlm-skill/LICENSE +21 -0
  28. package/runtime/skills/nlm-skill/SKILL.md +936 -0
  29. package/runtime/skills/nlm-skill/references/command_reference.md +1072 -0
  30. package/runtime/skills/nlm-skill/references/remote-mcp.md +83 -0
  31. package/runtime/skills/nlm-skill/references/studio-prompt-examples.md +420 -0
  32. package/runtime/skills/nlm-skill/references/studio-prompting-guide.md +399 -0
  33. package/runtime/skills/nlm-skill/references/troubleshooting.md +427 -0
  34. package/runtime/skills/nlm-skill/references/workflows.md +572 -0
  35. package/runtime/skills/obsidian-bases/SKILL.md +499 -0
  36. package/runtime/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -0
  37. package/runtime/skills/obsidian-cli/SKILL.md +106 -0
  38. package/runtime/skills/obsidian-markdown/SKILL.md +196 -0
  39. package/runtime/skills/obsidian-markdown/references/CALLOUTS.md +58 -0
  40. package/runtime/skills/obsidian-markdown/references/EMBEDS.md +70 -0
  41. package/runtime/skills/obsidian-markdown/references/PROPERTIES.md +61 -0
  42. package/scripts/check-deps.sh +182 -118
  43. package/scripts/generate-extension-packages-json.mjs +5 -5
  44. package/scripts/pvm-setup.mjs +218 -0
  45. package/scripts/pvm.mjs +173 -0
  46. package/scripts/setup-vault-pi.sh +2 -66
  47. package/scripts/vault-pi.sh +108 -13
  48. package/skills/github-release-notes-file/SKILL.md +0 -42
  49. package/skills/obsidian-guided-test-session/SKILL.md +0 -110
  50. package/skills/obsidian-interactive-test/SKILL.md +0 -88
  51. package/skills/obsidian-plugin-publish/SKILL.md +0 -58
  52. package/skills/pi-vault-mind-release/SKILL.md +0 -141
  53. package/skills/pre-test-release/SKILL.md +0 -116
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.31 — 2026-08-28
4
+
5
+ ### Added
6
+
7
+ - **One-command vault setup.** `pvm setup [vault-path]` installs the complete vault-local extension, task/subagent, NotebookLM, and curated skill profile before merge-safely scaffolding Vault Mind, model-router, and main-agent configuration.
8
+ - **Resource-only repair.** `pvm setup --resources-only [vault-path]` refreshes extensions, tools, and skills without changing vault configuration.
9
+ - **Dependency audit and repair.** `pvm check-deps [--fix] [--strict] [--obsidian] [vault-path]` verifies the host runtime, vault-local extensions, curated skills, and optional content or Obsidian tooling.
10
+
11
+ ### Changed
12
+
13
+ - **Pi 0.84.3 runtime.** Development and compatibility checks now target `@earendil-works/pi-coding-agent` and `@earendil-works/pi-tui` 0.84.3.
14
+ - **Node.js 22.19 runtime floor.** Package metadata, dependency audits, and setup documentation now match the minimum Node version required by Pi 0.84.3.
15
+ - **Current task and subagent extensions.** New vault setup installs `@juicesharp/rpiv-todo` 2.7.1 and `pi-subagents` 0.58.0, while removing the obsolete `@tintinweb/pi-tasks` package.
16
+ - **Pi Context 2.1.2 integration.** Session-start and turn-end capture now use the current checkpoint and context-event APIs.
17
+ - **Curated package surface.** Published Pi discovery exposes only Vault Mind usage, setup, and specialist content skills; internal release, plugin-development, and test workflows are no longer shipped as runtime skills.
18
+ - **Reproducible package tooling.** The repository now pins pnpm 10.34.5 so Corepack does not select an incompatible pnpm major during clean release builds.
19
+
20
+ ### Fixed
21
+
22
+ - **Quiet main-agent startup.** Automatic context management initializes without injecting a synthetic `/acm` user message into a new session.
23
+ - **Stable Pi launcher selection.** Setup avoids transient `npx` binaries and consistently provisions the vault-local agent directory with the installed Pi runtime.
24
+
25
+ ### Verification
26
+
27
+ - Node 24.19.0 with pnpm 10.34.5: dependency install, core build, and package-scoped Biome check completed successfully.
28
+ - Full core test suite: 937/937 passing.
29
+ - Packed `pi-vault-mind-0.16.31.tgz` successfully; the packaged `pvm --help` executable ran and exposed the `run`, `setup`, and `check-deps` commands.
30
+
31
+ ## 0.16.30 — 2026-08-27
32
+
33
+ ### Added
34
+
35
+ - **First-class `pvm` executable.** The npm package now exposes `pvm run [vault-path]`; it uses the current directory when the vault path is omitted and supports both global installation and `npx pi-vault-mind run`.
36
+ - **Explicit launch modes.** `pvm run` stays in the current terminal by default, with `--same-terminal`, `--new-window`, and `--auto` overrides.
37
+
38
+ ### Fixed
39
+
40
+ - **Portable vault launcher.** `vault-pi.sh` now handles interactive terminals directly, normalizes relative vault paths before deriving runtime state, removes inline-session PID files on exit, and rejects unknown flags instead of treating them as vault paths.
41
+
42
+ ### Verification
43
+
44
+ - Root and Obsidian builds passed; full test suite: 910/910 passing.
45
+ - `npm pack` includes `scripts/pvm.mjs` as an executable, and `npm exec` resolved the packed tarball's `pvm` command successfully.
46
+
3
47
  ## 0.16.29 — 2026-08-27
4
48
 
5
49
  ### Fixed
package/README.md CHANGED
@@ -176,7 +176,7 @@ The Broadcaster agent can generate podcasts, study guides, and slide decks from
176
176
 
177
177
  ### Prerequisites
178
178
 
179
- - **Node.js** 20+ (matches `engines` in `package.json`)
179
+ - **Node.js** 22.19.0+ (matches `engines` in `package.json`)
180
180
  - **Embedding Provider** — choose one:
181
181
  - `@xenova/transformers` — built-in, no external deps (uses all-MiniLM-L6-v2, offline-capable)
182
182
  - `ollama` — requires Ollama running locally with `embeddinggemma` (higher quality)
@@ -190,32 +190,66 @@ The Broadcaster agent can generate podcasts, study guides, and slide decks from
190
190
  > bearer token are private to whoever owns it. (A standalone PyPI package for the
191
191
  > server may come later.)
192
192
 
193
- ### 1. Install with pi
193
+ ### 1. Install and set up the vault-local runtime
194
+
195
+ Install the first-class `pvm` CLI once, then run setup against a vault:
194
196
 
195
197
  ```bash
196
- pi install npm:pi-vault-mind # latest
197
- pi install npm:pi-vault-mind@0.7.0 # pinned
198
- pi -e npm:pi-vault-mind # try without installing
198
+ npm install --global pi-vault-mind
199
+ pvm setup /path/to/your/vault
200
+ pvm run /path/to/your/vault
199
201
  ```
200
202
 
201
- Or from git:
203
+ `pvm setup` is safe to repeat. It installs or updates the required Vault Mind,
204
+ context, model-routing, task, and subagent extensions inside
205
+ `<vault>/.vault-mind/.pi/agent/`; installs the curated `obsidian-cli`,
206
+ `obsidian-markdown`, `obsidian-bases`, and `json-canvas` skills; and
207
+ merge-safely scaffolds Vault Mind, model-router, and main-agent configuration.
208
+ Existing user configuration, collections, model choices, and `system.md` are
209
+ preserved.
210
+
211
+ Refresh only extensions, tools, and skills without touching vault
212
+ configuration:
202
213
 
203
214
  ```bash
204
- pi install git:git@github.com:kylebrodeur/pi-vault-mind
215
+ pvm setup --resources-only /path/to/your/vault
205
216
  ```
206
217
 
207
- ### 2. Configure (interactive wizard)
218
+ Audit the isolated runtime without changing it, or repair it in place:
208
219
 
209
- ```
210
- /vm setup
220
+ ```bash
221
+ pvm check-deps /path/to/your/vault
222
+ pvm check-deps --fix /path/to/your/vault
211
223
  ```
212
224
 
213
- This configures the current vault's setup surface: vault path, embedding
214
- provider details, folder layout, and scaffolding.
225
+ Add `--strict` to fail when optional tools are missing and `--obsidian` to
226
+ include recommended Obsidian plugin checks.
215
227
 
216
- Or via CLI for scripting/repair:
228
+ Run either mode without a global installation:
217
229
 
218
230
  ```bash
231
+ npx --yes pi-vault-mind setup /path/to/your/vault
232
+ npx --yes pi-vault-mind run /path/to/your/vault
233
+ ```
234
+
235
+ Installing only the Pi extension remains supported:
236
+
237
+ ```bash
238
+ pi install npm:pi-vault-mind
239
+ pi -e npm:pi-vault-mind
240
+ ```
241
+
242
+ ### 2. Configure interactively when needed
243
+
244
+ Inside Pi, use the wizard to choose or change embedding providers, folder
245
+ layout, and other user-facing settings:
246
+
247
+ ```text
248
+ /vm setup
249
+ ```
250
+ For a non-interactive repair inside Pi:
251
+
252
+ ```text
219
253
  /vm setup --vault /home/you/Obsidian/MyVault --remoteUrl https://your-embedding-service-url.example.com --model embeddinggemma
220
254
  ```
221
255
 
@@ -269,6 +303,174 @@ Edit `<vault>/.vault-mind/vault-mind.config.json` to match your domain:
269
303
  }
270
304
  ```
271
305
 
306
+ ## Using Vault Mind agent identities
307
+
308
+ Vault Mind keeps the interactive Pi session on the unrestricted `main` persona
309
+ unless you explicitly select a specialist boundary. Bundled specialist skills
310
+ are available resources; merely loading them does not change the active
311
+ persona.
312
+
313
+ ### Start the vault-local main agent
314
+
315
+ From the vault directory, start Pi in the current terminal:
316
+
317
+ ```bash
318
+ pvm run
319
+ ```
320
+
321
+ You can launch a different vault from anywhere or use the package without a
322
+ global install:
323
+
324
+ ```bash
325
+ pvm run /path/to/your/vault
326
+ npx --yes pi-vault-mind run /path/to/your/vault
327
+ ```
328
+
329
+ `pvm run` defaults to the current terminal. This is the recommended Obsidian
330
+ Terminal profile command. Use a vault-path placeholder supplied by the plugin,
331
+ or provide the vault's absolute path. Override the launch mode when needed:
332
+
333
+ ```bash
334
+ pvm run --same-terminal /path/to/your/vault
335
+ pvm run --new-window /path/to/your/vault
336
+ pvm run --auto /path/to/your/vault
337
+ ```
338
+
339
+ `--new-window` opens a dedicated Terminal/iTerm window. `--auto` uses the
340
+ current terminal when attached to a TTY and falls back to a new window
341
+ otherwise. The packaged shell launcher remains available for direct use as
342
+ `scripts/vault-pi.sh`.
343
+
344
+ In every mode, the launcher runs Pi inside the target vault with its
345
+ configuration isolated under `<vault>/.vault-mind/.pi/agent/`. It also prevents
346
+ two launcher-managed Pi processes from running for the same vault and removes
347
+ the PID file when an inline session exits.
348
+
349
+ Check the active persona after startup:
350
+
351
+ ```text
352
+ /vm identity status
353
+ ```
354
+
355
+ A normal main-agent session reports:
356
+
357
+ ```text
358
+ Persona: main
359
+ Effective boundary: none (main agent)
360
+ ```
361
+
362
+ `Injection` may report `enabled` or `disabled`. An enabled injector still
363
+ applies no boundary while the persona is `main`.
364
+
365
+ ### Use specialist agents without changing the main session
366
+
367
+ Normally, leave the interactive session on `main` and dispatch specialist work
368
+ through the passive watcher:
369
+
370
+ ```text
371
+ @agent-Miner
372
+ Research and extract the durable facts from this note.
373
+ ```
374
+
375
+ The watcher runs that work as an isolated specialist job. It does not turn the
376
+ interactive terminal into the Miner persona. The same distinction applies to
377
+ `@agent-Broadcaster`, `@agent-Manager`, and `@agent-Heavy-Lifter`.
378
+
379
+ ### Explicitly change the interactive persona
380
+
381
+ Use an identity boundary only when the current interactive session itself
382
+ should follow a specialist capability contract:
383
+
384
+ ```text
385
+ /vm identity set miner
386
+ /vm identity set broadcaster
387
+ /vm identity set manager
388
+ /vm identity set heavy-lifter
389
+ ```
390
+
391
+ | Persona | Intended interactive boundary |
392
+ |---|---|
393
+ | `main` | Unrestricted primary agent with the full configured toolset |
394
+ | `manager` | Orchestrates collections, publishing, and subagents; does not run Bash |
395
+ | `miner` | Extracts and stores knowledge; does not run Bash or publish |
396
+ | `broadcaster` | Produces presentation artifacts; does not run Bash or write durable knowledge |
397
+ | `heavy-lifter` | Performs file and Bash work in isolation; does not write durable knowledge or publish |
398
+
399
+ `/vm identity set <role>` persists the selected persona, enables boundary
400
+ injection, and applies on the next agent turn.
401
+
402
+ Use the remaining controls to inspect or suspend that selection:
403
+
404
+ ```text
405
+ /vm identity status
406
+ /vm identity off
407
+ /vm identity on
408
+ ```
409
+
410
+ - `off` disables boundary injection without discarding the selected persona.
411
+ - `on` re-enables the configured persona boundary on the next agent turn.
412
+ - `status` shows the configured persona, injection switch, effective boundary,
413
+ and any environment overrides.
414
+
415
+ Restore the safe main-agent default with:
416
+
417
+ ```text
418
+ /vm identity set main
419
+ /vm identity off
420
+ /vm identity status
421
+ ```
422
+
423
+ The final status should show `Effective boundary: none (main agent)`.
424
+
425
+ ### Configuration and environment overrides
426
+
427
+ Identity controls are stored in the vault-local configuration:
428
+
429
+ ```json
430
+ {
431
+ "vaultMind": {
432
+ "identities": {
433
+ "activeRole": "main",
434
+ "injectBoundaries": false
435
+ }
436
+ }
437
+ }
438
+ ```
439
+
440
+ The canonical path is
441
+ `<vault>/.vault-mind/vault-mind.config.json` under
442
+ `vaultMind.identities`. Identity commands preserve any existing
443
+ `vaultMind.identities.roles` allowlists.
444
+
445
+ Launch automation and explicit specialist forks can override the saved values
446
+ for one process:
447
+
448
+ ```bash
449
+ VAULT_MIND_AGENT_ROLE=miner VAULT_MIND_IDENTITY_INJECTION=on pi
450
+ VAULT_MIND_IDENTITY_INJECTION=off pi
451
+ ```
452
+
453
+ `VAULT_MIND_AGENT_ROLE` takes precedence over `activeRole`.
454
+ `VAULT_MIND_IDENTITY_INJECTION=off` suppresses every boundary, while `on`
455
+ enables the explicitly selected role. Missing, `main`, `none`, and unknown
456
+ roles all resolve safely to the unrestricted main agent.
457
+
458
+ ### Troubleshoot an unexpected specialist boundary
459
+
460
+ 1. Run `/vm identity status` and check both the configured persona and any
461
+ reported environment overrides.
462
+ 2. If an environment override is present, exit Pi, unset
463
+ `VAULT_MIND_AGENT_ROLE` and `VAULT_MIND_IDENTITY_INJECTION`, then relaunch.
464
+ 3. Run `/vm identity set main`, followed by `/vm identity off`.
465
+ 4. Send the next agent turn and re-run `/vm identity status`; boundary changes
466
+ take effect on the next turn.
467
+ 5. Confirm Pi was started for the intended vault and uses
468
+ `<vault>/.vault-mind/.pi/agent/` as `PI_CODING_AGENT_DIR`.
469
+
470
+ Do not edit `SYSTEM.md` or an agent skill to change the interactive identity.
471
+ Those files provide operating instructions and resources; persona selection
472
+ belongs in `vaultMind.identities` or an explicit environment override.
473
+
272
474
  ## Example domains
273
475
 
274
476
  ### Research project
@@ -259,7 +259,7 @@ const handleInit = async (_args, ctx, pi) => {
259
259
  const existing = JSON.parse(fs.readFileSync(cfgDest, "utf-8"));
260
260
  existing.extensionCompatibility = existing.extensionCompatibility || {};
261
261
  existing.extensionCompatibility["pi-context"] = {
262
- tagPatterns: [],
262
+ checkpointPatterns: [],
263
263
  enhanceInjectors: false,
264
264
  autoEnableAcm: true,
265
265
  indexContextEvents: true,
@@ -314,7 +314,7 @@ const handleValidate = async (_args, ctx, pi) => {
314
314
  const contextCfg = getPiContextConfig(cfg);
315
315
  const willCapture = hasContext && contextCfg.enabled;
316
316
  lines.push("", "🧩 Extension Integrations:", " • pi-context:");
317
- lines.push(` - Tools installed: ${hasContext ? "✅ Yes (context_tag, context_log, context_checkout)" : "❌ No"}`);
317
+ lines.push(` - Tools installed: ${hasContext ? "✅ Yes (context_checkpoint, context_timeline, context_compact)" : "❌ No"}`);
318
318
  lines.push(` - Config enabled: ${contextCfg.enabled ? "✅ Yes" : "❌ No"}`);
319
319
  lines.push(` - Will capture events: ${willCapture ? "✅ Yes — on next turn" : "❌ No"}`);
320
320
  if (hasContext && !contextCfg.enabled)
@@ -1122,10 +1122,10 @@ const handleContext = async (args, ctx, pi) => {
1122
1122
  ` - Config enabled: ${piContextCfg.enabled ? "✅" : "❌"}`,
1123
1123
  ` - Will capture on next turn: ${willCapture ? "✅ Yes" : "❌ No"}`,
1124
1124
  "",
1125
- `Tag Patterns: ${piContextCfg.tagPatterns?.length || 0}`,
1126
- ...(piContextCfg.tagPatterns?.length
1127
- ? piContextCfg.tagPatterns.map((p) => ` • "${p}"`)
1128
- : [" (none — no tag-based lookups)"]),
1125
+ `Checkpoint Patterns: ${piContextCfg.checkpointPatterns?.length || 0}`,
1126
+ ...(piContextCfg.checkpointPatterns?.length
1127
+ ? piContextCfg.checkpointPatterns.map((p) => ` • "${p}"`)
1128
+ : [" (none — no checkpoint-based lookups)"]),
1129
1129
  "",
1130
1130
  `Enhance Injectors: ${piContextCfg.enhanceInjectors ? "Yes" : "No"}`,
1131
1131
  `autoEnableAcm: ${piContextCfg.autoEnableAcm ? "Yes" : "No"}`,
@@ -1163,7 +1163,7 @@ const _toggleContext = (cfgPath, enabled) => {
1163
1163
  const existing = JSON.parse(fs.readFileSync(cfgPath, "utf-8"));
1164
1164
  existing.extensionCompatibility = existing.extensionCompatibility || {};
1165
1165
  existing.extensionCompatibility["pi-context"] = {
1166
- tagPatterns: [],
1166
+ checkpointPatterns: [],
1167
1167
  enhanceInjectors: false,
1168
1168
  autoEnableAcm: true,
1169
1169
  indexContextEvents: true,
@@ -1,18 +1,23 @@
1
1
  /**
2
- * Context Capture — Layer 4 auto-trigger pi-context /acm.
2
+ * Context Capture — Layer 4 pi-context /acm reminder.
3
+ *
4
+ * On extension load, reminds the human to run /acm to enable agentic context
5
+ * management. Does NOT inject /acm as a user or model message; the reminder
6
+ * is an unobtrusive UI notification only.
3
7
  *
4
- * On extension load, auto-sends /acm to enable agentic context management.
5
8
  * Injects context_checkpoint instructions into agent task prompts.
6
9
  *
7
10
  * Note: context_compact requires CommandCtx (only in main session, not
8
11
  * subagent forks). Subagent forks use context_checkpoint and context_timeline.
9
12
  */
10
- import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
13
+ import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
11
14
  /**
12
- * Auto-send /acm on extension load to enable agentic context management
13
- * for the Manager session.
15
+ * Notify the human to run /acm to enable agentic context management.
16
+ *
17
+ * Uses ctx.ui.notify — a transient TUI notification that never enters the
18
+ * session history and is never delivered to the model.
14
19
  */
15
- export declare function enableACM(pi: ExtensionAPI): void;
20
+ export declare function notifyAcmReminder(ctx: ExtensionContext): void;
16
21
  /**
17
22
  * Build context_checkpoint instructions to inject into a dispatch task prompt.
18
23
  *
@@ -1,19 +1,24 @@
1
1
  /**
2
- * Context Capture — Layer 4 auto-trigger pi-context /acm.
2
+ * Context Capture — Layer 4 pi-context /acm reminder.
3
+ *
4
+ * On extension load, reminds the human to run /acm to enable agentic context
5
+ * management. Does NOT inject /acm as a user or model message; the reminder
6
+ * is an unobtrusive UI notification only.
3
7
  *
4
- * On extension load, auto-sends /acm to enable agentic context management.
5
8
  * Injects context_checkpoint instructions into agent task prompts.
6
9
  *
7
10
  * Note: context_compact requires CommandCtx (only in main session, not
8
11
  * subagent forks). Subagent forks use context_checkpoint and context_timeline.
9
12
  */
10
- // ── ACM auto-trigger ──────────────────────────────────────────────────────────
13
+ // ── ACM reminder notification ─────────────────────────────────────────────────
11
14
  /**
12
- * Auto-send /acm on extension load to enable agentic context management
13
- * for the Manager session.
15
+ * Notify the human to run /acm to enable agentic context management.
16
+ *
17
+ * Uses ctx.ui.notify — a transient TUI notification that never enters the
18
+ * session history and is never delivered to the model.
14
19
  */
15
- export function enableACM(pi) {
16
- pi.sendUserMessage("/acm", { deliverAs: "followUp" });
20
+ export function notifyAcmReminder(ctx) {
21
+ ctx.ui.notify("Run /acm to enable agentic context management for this session.", "info");
17
22
  }
18
23
  // ── Checkpoint instructions for agent task prompts ────────────────────────────
19
24
  /**
@@ -1,13 +1,13 @@
1
1
  import type { BeforeAgentStartEvent, ExtensionAPI, ExtensionContext, TurnEndEvent } from "@earendil-works/pi-coding-agent";
2
2
  /**
3
- * Handles before_agent_start to inject collection entries and pi-context tag matches
3
+ * Handles before_agent_start to inject collection entries and pi-context checkpoint matches
4
4
  * into the system prompt.
5
5
  */
6
6
  export declare const handleBeforeAgentStart: (pi: ExtensionAPI, event: BeforeAgentStartEvent, ctx: ExtensionContext) => Promise<{
7
7
  systemPrompt?: string;
8
8
  } | undefined>;
9
9
  /**
10
- * Handles turn_end to capture pi-context events and append them to the
10
+ * Handles turn_end to capture pi-context checkpoints and summaries in the
11
11
  * context_events collection.
12
12
  */
13
13
  export declare const handleTurnEnd: (pi: ExtensionAPI, _event: TurnEndEvent, ctx: ExtensionContext) => Promise<void>;