pi-blackhole 0.4.2 → 0.4.5

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 (99) hide show
  1. package/README.md +17 -0
  2. package/dist/index.js +13390 -0
  3. package/dist/index.js.map +1 -0
  4. package/example-config.json +7 -2
  5. package/index.ts +44 -65
  6. package/package.json +22 -10
  7. package/src/commands/cleanup.ts +279 -240
  8. package/src/commands/memory.ts +236 -184
  9. package/src/commands/pi-vcc.ts +202 -152
  10. package/src/commands/vcc-recall.ts +126 -95
  11. package/src/core/brief.ts +167 -33
  12. package/src/core/build-sections.ts +8 -2
  13. package/src/core/config-env.ts +163 -0
  14. package/src/core/content.ts +31 -7
  15. package/src/core/drill-down.ts +41 -11
  16. package/src/core/filter-noise.ts +9 -3
  17. package/src/core/format-recall.ts +15 -6
  18. package/src/core/format.ts +14 -4
  19. package/src/core/lineage.ts +9 -3
  20. package/src/core/load-messages.ts +24 -5
  21. package/src/core/normalize.ts +38 -14
  22. package/src/core/provider-skip.ts +64 -0
  23. package/src/core/recall-scope.ts +11 -3
  24. package/src/core/render-entries.ts +22 -6
  25. package/src/core/sanitize.ts +5 -1
  26. package/src/core/search-entries.ts +111 -19
  27. package/src/core/settings.ts +1 -3
  28. package/src/core/summarize.ts +42 -21
  29. package/src/core/unified-config.ts +586 -411
  30. package/src/extract/commits.ts +4 -2
  31. package/src/extract/files.ts +10 -5
  32. package/src/extract/goals.ts +7 -2
  33. package/src/hooks/before-compact.ts +227 -88
  34. package/src/om/agents/dropper/agent.ts +388 -266
  35. package/src/om/agents/dropper/coverage.ts +102 -82
  36. package/src/om/agents/observer/agent.ts +250 -207
  37. package/src/om/agents/reflector/agent.ts +220 -154
  38. package/src/om/cleanup.ts +239 -218
  39. package/src/om/clipboard.ts +59 -51
  40. package/src/om/compaction-trigger.ts +461 -342
  41. package/src/om/config.ts +13 -6
  42. package/src/om/configure-overlay.ts +518 -355
  43. package/src/om/consolidation.ts +1470 -953
  44. package/src/om/cooldown.ts +75 -65
  45. package/src/om/debug-log.ts +86 -68
  46. package/src/om/ids.ts +1 -1
  47. package/src/om/inline-compaction.ts +697 -0
  48. package/src/om/ledger/fold.ts +89 -78
  49. package/src/om/ledger/progress.ts +181 -153
  50. package/src/om/ledger/projection.ts +248 -185
  51. package/src/om/ledger/recall.ts +247 -196
  52. package/src/om/ledger/render-summary.ts +79 -50
  53. package/src/om/ledger/types.ts +146 -117
  54. package/src/om/model-budget.ts +23 -13
  55. package/src/om/pending.ts +243 -179
  56. package/src/om/provider-stream.ts +134 -7
  57. package/src/om/retryable-error.ts +12 -16
  58. package/src/om/reverse-recall.ts +97 -91
  59. package/src/om/runtime.ts +546 -375
  60. package/src/om/serialize.ts +190 -166
  61. package/src/om/status-overlay.ts +246 -195
  62. package/src/om/tokens.ts +28 -21
  63. package/src/pi-base/blackhole-settings.ts +439 -0
  64. package/src/pi-base/config-manager.ts +1257 -0
  65. package/src/pi-base/config.ts +580 -0
  66. package/src/pi-base/core/config-env.ts +79 -0
  67. package/src/pi-base/env.ts +43 -0
  68. package/src/pi-base/paths.ts +47 -0
  69. package/src/pi-base/session.ts +88 -0
  70. package/src/pi-base/settings/body.ts +815 -0
  71. package/src/pi-base/settings/config-flow.ts +667 -0
  72. package/src/pi-base/settings/confirm.ts +99 -0
  73. package/src/pi-base/settings/fields/action.ts +43 -0
  74. package/src/pi-base/settings/fields/boolean.ts +47 -0
  75. package/src/pi-base/settings/fields/custom.ts +72 -0
  76. package/src/pi-base/settings/fields/enum.ts +310 -0
  77. package/src/pi-base/settings/fields/index.ts +53 -0
  78. package/src/pi-base/settings/fields/model.ts +452 -0
  79. package/src/pi-base/settings/fields/readonly.ts +38 -0
  80. package/src/pi-base/settings/fields/string.ts +527 -0
  81. package/src/pi-base/settings/fields/text.ts +115 -0
  82. package/src/pi-base/settings/frame.ts +214 -0
  83. package/src/pi-base/settings/helpers.ts +21 -0
  84. package/src/pi-base/settings/index.ts +86 -0
  85. package/src/pi-base/settings/inline-edit.ts +317 -0
  86. package/src/pi-base/settings/modal.ts +108 -0
  87. package/src/pi-base/settings/navigation.ts +69 -0
  88. package/src/pi-base/settings/render.ts +414 -0
  89. package/src/pi-base/settings/scope-selector.ts +166 -0
  90. package/src/pi-base/settings/types.ts +549 -0
  91. package/src/pi-base/settings/validate-field.ts +113 -0
  92. package/src/pi-base/settings/values.ts +98 -0
  93. package/src/pi-base/shell.ts +117 -0
  94. package/src/pi-base/types.ts +6 -0
  95. package/src/pi-base/ui.ts +32 -0
  96. package/src/tools/recall.ts +347 -225
  97. package/src/types.ts +20 -3
  98. package/tsup.config.ts +23 -0
  99. package/vitest.config.ts +15 -15
package/README.md CHANGED
@@ -57,6 +57,21 @@ https://github.com/user-attachments/assets/a7dd804d-6aca-4bdb-8b6e-0dd779363a43
57
57
 
58
58
 
59
59
 
60
+ ---
61
+
62
+ ## Commands
63
+
64
+ ```text
65
+ /blackhole Manual compact — deterministic structural summary
66
+ /blackhole settings Open the configuration overlay (alias: /blackhole configure)
67
+ /blackhole cleanup Remove orphaned pending files
68
+ /blackhole om-off Disable observational memory
69
+ /blackhole om-on Enable observational memory
70
+ /blackhole-memory [status|view|full] Memory pipeline status & token counters
71
+ /blackhole-recall <query> [page:N] [scope:all] [mode:file|touched]
72
+ Search session history — also available to the agent as the `recall` tool
73
+ ```
74
+
60
75
  ---
61
76
 
62
77
  ## The problem it solves
@@ -263,6 +278,7 @@ Everything else has sensible defaults.
263
278
  | `compaction` | `"auto"` | When compaction triggers: `"auto"` (blackhole auto-fires), `"manual"` (only `/blackhole`), `"off"` (Pi handles auto + `/compact`, `/blackhole` still works) |
264
279
  | `compactionEngine` | `"blackhole"` | Which engine handles auto-compaction: `"blackhole"` or `"pi-default"`. Only meaningful when `compaction: "auto"` — for `"manual"`/`"off"` the hook lets Pi handle everything except `/blackhole` |
265
280
  | `tailBehavior` | `"minimal"` | How much stays visible after compaction: `"minimal"` (last user message only, default) or `"pi-default"` (gentle, ~20k tokens). Both `/blackhole` and auto-triggered default to `"minimal"`; set explicitly to opt into gentler cut |
281
+ | `midRunCompaction` | `"off"` | `"resume"` *(experimental)* opts into transparent compaction during long tool loops without replacing the active run; `"pause"` interrupts, compacts, and stops; `"off"` only checks when the run ends. Transparent mode fails closed on unsupported Pi internals. |
266
282
  | `memory` | `true` | `false` = OM workers off + no memory injection (compaction still runs) |
267
283
  | `model` | — | Base fallback model for all workers (last resort before session model) |
268
284
  | `observerModel` / `observerFallbackModels` | — / `[]` | Primary + fallback models for observer (extracts facts) |
@@ -283,6 +299,7 @@ Everything else has sensible defaults.
283
299
  | `dropperInputMaxTokens` | `80000` | Max dropper input budget |
284
300
  | `dropperPressureThreshold` | `0.70` | Fraction of `reflectorInputMaxTokens` at which dropper runs even without new data (pressure relief valve) |
285
301
  | `agentMaxTurns` | `16` | Max agent-loop turns per worker per run |
302
+ | `providerIdleTimeoutMs` | unset | Body-idle timeout for background provider streams (ms); `0` = disabled, unset = inherit pi's default |
286
303
  | `debug` | `false` | Pre-compaction snapshot to `/tmp/pi-blackhole-debug.json` |
287
304
  | `debugLog` | `false` | Continuous JSONL debug log to `~/.pi/agent/pi-blackhole/debug.ndjson` |
288
305