my-pi 0.1.7 → 0.1.8

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 (56) hide show
  1. package/README.md +104 -45
  2. package/dist/api-BRTlqVR4.js +2545 -0
  3. package/dist/api-BRTlqVR4.js.map +1 -0
  4. package/dist/api.js +1 -1
  5. package/dist/index.js +25 -2
  6. package/dist/index.js.map +1 -1
  7. package/package.json +13 -9
  8. package/src/extensions/{chain.test.ts → chain/index.test.ts} +1 -1
  9. package/src/extensions/{chain.ts → chain/index.ts} +1 -1
  10. package/src/extensions/{confirm-destructive.test.ts → confirm-destructive/index.test.ts} +1 -1
  11. package/src/extensions/{hooks-resolution.test.ts → hooks-resolution/index.test.ts} +1 -1
  12. package/src/extensions/{config.test.ts → manager/config.test.ts} +3 -0
  13. package/src/extensions/{config.ts → manager/config.ts} +13 -4
  14. package/src/extensions/{extensions.test.ts → manager/index.test.ts} +1 -1
  15. package/src/extensions/{prompt-presets.test.ts → prompt-presets/index.test.ts} +72 -1
  16. package/src/extensions/{prompt-presets.ts → prompt-presets/index.ts} +372 -43
  17. package/src/extensions/{working-indicator-config.test.ts → working-indicator/config.test.ts} +1 -1
  18. package/src/extensions/{working-indicator.test.ts → working-indicator/index.test.ts} +1 -1
  19. package/src/extensions/{working-indicator.ts → working-indicator/index.ts} +1 -1
  20. package/dist/api-DrJVpmLQ.js +0 -5443
  21. package/dist/api-DrJVpmLQ.js.map +0 -1
  22. package/dist/telemetry-db-BnenoOSj.js +0 -250
  23. package/dist/telemetry-db-BnenoOSj.js.map +0 -1
  24. package/dist/telemetry-schema.sql +0 -68
  25. package/src/extensions/filter-output.test.ts +0 -174
  26. package/src/extensions/filter-output.ts +0 -257
  27. package/src/extensions/lsp.test.ts +0 -550
  28. package/src/extensions/lsp.ts +0 -1044
  29. package/src/extensions/mcp.test.ts +0 -30
  30. package/src/extensions/mcp.ts +0 -411
  31. package/src/extensions/recall.test.ts +0 -26
  32. package/src/extensions/recall.ts +0 -69
  33. package/src/extensions/skills.ts +0 -564
  34. package/src/extensions/telemetry-config.test.ts +0 -96
  35. package/src/extensions/telemetry-config.ts +0 -80
  36. package/src/extensions/telemetry-db.test.ts +0 -315
  37. package/src/extensions/telemetry-db.ts +0 -513
  38. package/src/extensions/telemetry-schema.sql +0 -68
  39. package/src/extensions/telemetry.test.ts +0 -225
  40. package/src/extensions/telemetry.ts +0 -885
  41. package/src/mcp/client.test.ts +0 -217
  42. package/src/mcp/client.ts +0 -318
  43. package/src/mcp/config.test.ts +0 -201
  44. package/src/mcp/config.ts +0 -129
  45. package/src/skills/config.test.ts +0 -58
  46. package/src/skills/config.ts +0 -70
  47. package/src/skills/importer.test.ts +0 -301
  48. package/src/skills/importer.ts +0 -221
  49. package/src/skills/manager.ts +0 -222
  50. package/src/skills/scanner.ts +0 -275
  51. /package/src/extensions/{confirm-destructive.ts → confirm-destructive/index.ts} +0 -0
  52. /package/src/extensions/{handoff.ts → handoff/index.ts} +0 -0
  53. /package/src/extensions/{hooks-resolution.ts → hooks-resolution/index.ts} +0 -0
  54. /package/src/extensions/{extensions.ts → manager/index.ts} +0 -0
  55. /package/src/extensions/{session-name.ts → session-name/index.ts} +0 -0
  56. /package/src/extensions/{working-indicator-config.ts → working-indicator/config.ts} +0 -0
package/README.md CHANGED
@@ -160,7 +160,7 @@ Query and export helpers:
160
160
 
161
161
  Schema notes:
162
162
 
163
- - source of truth: `src/extensions/telemetry-schema.sql`
163
+ - source of truth: `packages/pi-telemetry/src/schema.sql`
164
164
  - current telemetry schema version: `1`
165
165
  - schema version is tracked with `PRAGMA user_version`
166
166
  - unversioned local telemetry databases are initialized/upgraded to v1
@@ -169,7 +169,6 @@ Schema notes:
169
169
  downgrading
170
170
  - opens the database in WAL mode: `PRAGMA journal_mode = WAL`
171
171
  - waits up to 5s on lock contention: `PRAGMA busy_timeout = 5000`
172
- - packaged builds ship the schema as `dist/telemetry-schema.sql`
173
172
 
174
173
  CLI flags `--telemetry` and `--no-telemetry` override only the current
175
174
  process. `/telemetry on` and `/telemetry off` update the saved default
@@ -342,17 +341,26 @@ In interactive mode:
342
341
  - `/skills sync <key|name>` — sync an imported skill to its upstream
343
342
  - `/skills refresh` — rescan skill directories
344
343
  - `/skills defaults <all-enabled|all-disabled>` — set default policy
345
- - `/preset` — open the prompt preset manager (base presets + layers)
346
- - `/preset <name>` — activate a base preset or toggle a layer
347
- - `/preset base <name>` activate a base preset directly
348
- - `/preset enable <layer>` / `/preset disable <layer>` — toggle a
349
- prompt layer directly
350
- - `/preset edit <name>` — edit or create a project-local preset in
351
- `.pi/presets.json`
352
- - `/preset delete <name>` — delete a project-local preset
353
- - `/preset reset <name>` — remove a project-local override and fall
354
- back to user/built-in if available
355
- - `/preset clear`clear the active base preset and all layers
344
+ - `/prompt-preset` — open the prompt preset manager (base presets +
345
+ layers); `/preset` is a short alias
346
+ - `/prompt-preset help`show examples and common prompt preset
347
+ commands
348
+ - `/prompt-preset <name>` — activate a base preset or toggle a layer
349
+ - `/prompt-preset base <name>` — activate a base preset directly
350
+ - `/prompt-preset enable <layer>` / `/prompt-preset disable <layer>` —
351
+ toggle a prompt layer directly
352
+ - `/prompt-preset edit <name>` — edit or create a project preset in
353
+ `.pi/presets/<name>.md`
354
+ - `/prompt-preset edit-global <name>` edit or create a global preset
355
+ in `~/.pi/agent/presets/<name>.md`
356
+ - `/prompt-preset export-defaults` — copy built-in presets to editable
357
+ global Markdown files
358
+ - `/prompt-preset export-defaults project` — copy built-in presets to
359
+ editable project Markdown files
360
+ - `/prompt-preset delete <name>` — delete a project-local preset
361
+ - `/prompt-preset reset <name>` — remove a project-local override and
362
+ fall back to user/built-in if available
363
+ - `/prompt-preset clear` — clear the active base preset and all layers
356
364
  - `/chain` — inspect or switch the active agent chain
357
365
  - `/agents` — list discovered agent definitions
358
366
  - `/lsp status|list|restart` — inspect or restart language server
@@ -441,11 +449,30 @@ Preset sources are merged in this order:
441
449
 
442
450
  1. built-in defaults
443
451
  2. `~/.pi/agent/presets.json`
444
- 3. `.pi/presets.json`
452
+ 3. `~/.pi/agent/presets/*.md`
453
+ 4. `.pi/presets.json`
454
+ 5. `.pi/presets/*.md`
445
455
 
446
456
  Project presets override global/default presets with the same name.
447
- Strings are treated as base presets by default. Object entries may set
448
- `kind: "base"` or `kind: "layer"`.
457
+ Strings in JSON are treated as base presets by default. Object entries
458
+ may set `kind: "base"` or `kind: "layer"`. Markdown preset files use
459
+ the filename as the preset name and optional frontmatter:
460
+
461
+ ```markdown
462
+ ---
463
+ kind: base
464
+ description: Short, direct, no fluff
465
+ ---
466
+
467
+ Be concise and direct.
468
+ ```
469
+
470
+ Use `/prompt-preset export-defaults` to copy built-in presets to
471
+ `~/.pi/agent/presets/*.md` for editing, or
472
+ `/prompt-preset export-defaults project` to write `.pi/presets/*.md`.
473
+ `/prompt-preset edit <name>` writes a project Markdown preset;
474
+ `/prompt-preset edit-global <name>` writes a global one. `/preset` is
475
+ a short alias for `/prompt-preset`.
449
476
 
450
477
  CLI layering is supported too:
451
478
 
@@ -502,10 +529,10 @@ clients.
502
529
 
503
530
  ## Session Recall
504
531
 
505
- The recall extension nudges the model to use `npx pirecall` when the
506
- user references prior work or when historical project context would
507
- help. It also triggers a background `pirecall sync --json` on session
508
- start when the local recall database exists.
532
+ The recall package nudges the model to use `pnpx pirecall` or
533
+ `npx pirecall` when the user references prior work or when historical
534
+ project context would help. It also triggers `pirecall sync --json` on
535
+ session start and shutdown when the local recall database exists.
509
536
 
510
537
  ## Session Handoff
511
538
 
@@ -518,38 +545,70 @@ file that can be piped into a new session:
518
545
  pnpx my-pi@latest < handoff-1234567890.md
519
546
  ```
520
547
 
548
+ ## Reusable Pi packages
549
+
550
+ This repo is a pnpm workspace. The `my-pi` harness depends on reusable
551
+ Pi packages via `workspace:*`, and those packages can also be
552
+ published and installed into vanilla `pi` independently:
553
+
554
+ ```bash
555
+ pi install npm:@spences10/pi-redact
556
+ pi install npm:@spences10/pi-telemetry
557
+ pi install npm:@spences10/pi-mcp
558
+ pi install npm:@spences10/pi-lsp
559
+ pi install npm:@spences10/pi-skills
560
+ pi install npm:@spences10/pi-recall
561
+ pi install npm:@spences10/pi-nopeek
562
+ ```
563
+
564
+ - [`@spences10/pi-redact`](./packages/pi-redact/README.md) — output
565
+ redaction and `/redact-stats`
566
+ - [`@spences10/pi-telemetry`](./packages/pi-telemetry/README.md) —
567
+ local SQLite telemetry and `/telemetry`
568
+ - [`@spences10/pi-mcp`](./packages/pi-mcp/README.md) — MCP server
569
+ integration and `/mcp`
570
+ - [`@spences10/pi-lsp`](./packages/pi-lsp/README.md) — LSP-backed
571
+ diagnostics and symbol tools
572
+ - [`@spences10/pi-skills`](./packages/pi-skills/README.md) — skill
573
+ management, import, and sync
574
+ - [`@spences10/pi-recall`](./packages/pi-recall/README.md) — pirecall
575
+ reminder and background sync
576
+ - [`@spences10/pi-nopeek`](./packages/pi-nopeek/README.md) — nopeek
577
+ reminder for secret-safe environment loading
578
+
579
+ Each package README is the entry point for install instructions,
580
+ commands, runtime behavior, and development notes.
581
+
521
582
  ## Project Structure
522
583
 
523
584
  ```
524
585
  src/
525
- index.ts CLI entry point (citty + pi SDK)
526
- api.ts Programmatic API (create_my_pi + re-exports)
586
+ index.ts CLI entry point (citty + pi SDK)
587
+ api.ts Programmatic API (create_my_pi + re-exports)
527
588
  extensions/
528
- config.ts Persistent built-in extension config
529
- extensions.ts Built-in extension manager (/extensions)
530
- mcp.ts MCP server integration
531
- skills.ts Skill discovery and toggle
532
- chain.ts Agent chain pipelines
533
- filter-output.ts Secret redaction in tool output
534
- handoff.ts Session context export
535
- lsp.ts Language server tools and /lsp command
536
- telemetry.ts Local telemetry extension and /telemetry command
537
- prompt-presets.ts Runtime prompt preset selection and editing
538
- recall.ts Past session recall guidance
539
- telemetry-*.ts Telemetry config + SQLite storage
540
- mcp/
541
- client.ts Minimal MCP stdio client (JSON-RPC 2.0)
542
- config.ts Loads and merges mcp.json configs
543
- skills/
544
- manager.ts Skill enable/disable state management
545
- scanner.ts Skill discovery across sources
546
- config.ts Persistent skills config (~/.config/my-pi/)
589
+ manager/ Built-in extension manager and config
590
+ chain/ Agent chain pipelines
591
+ handoff/ Session context export
592
+ prompt-presets/ Runtime prompt preset selection and editing
593
+ session-name/ Session auto-naming
594
+ confirm-destructive/ Destructive action confirmations
595
+ hooks-resolution/ Claude-style hook resolution
596
+ working-indicator/ Streaming indicator customization
597
+ packages/
598
+ pi-redact/ Installable Pi package for output redaction
599
+ pi-telemetry/ Installable Pi package for SQLite telemetry
600
+ pi-mcp/ Installable Pi package for MCP integration
601
+ pi-lsp/ Installable Pi package for LSP tools
602
+ pi-skills/ Installable Pi package for skill management
603
+ pi-recall/ Installable Pi package for pirecall reminders
604
+ pi-nopeek/ Installable Pi package for nopeek reminders
547
605
  .pi/
548
606
  agents/
549
- *.md Agent definitions (frontmatter + system prompt)
550
- agent-chain.yaml Chain pipeline definitions
551
- presets.json Optional project prompt presets
552
- mcp.json Project MCP server config
607
+ *.md Agent definitions (frontmatter + system prompt)
608
+ agent-chain.yaml Chain pipeline definitions
609
+ presets.json Optional project prompt presets (JSON)
610
+ presets/*.md Optional project prompt presets (Markdown files)
611
+ mcp.json Project MCP server config
553
612
  ```
554
613
 
555
614
  ## Development