@herbertgao/pi-extensions 2026.9.6 → 2026.9.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.
- package/README.md +3 -8
- package/THIRD_PARTY_NOTICES.md +0 -4
- package/node_modules/@narumitw/pi-btw/README.md +2 -0
- package/node_modules/@narumitw/pi-btw/dist/index.ts +284 -365
- package/node_modules/@narumitw/pi-btw/dist/index.ts.map +3 -3
- package/node_modules/@narumitw/pi-btw/package.json +52 -53
- package/node_modules/@narumitw/pi-btw/src/bring-to-main.ts +494 -547
- package/node_modules/@narumitw/pi-btw/src/btw.ts +814 -856
- package/node_modules/@narumitw/pi-btw/src/fullscreen-ui.ts +673 -674
- package/node_modules/@narumitw/pi-btw/src/keybindings.ts +228 -270
- package/node_modules/@narumitw/pi-btw/src/main-tree-picker.ts +309 -318
- package/node_modules/@narumitw/pi-btw/src/menu.ts +416 -454
- package/node_modules/@narumitw/pi-btw/src/settings.ts +203 -219
- package/node_modules/@narumitw/pi-btw/src/side-thread.ts +173 -201
- package/node_modules/@narumitw/pi-btw/src/text.ts +21 -23
- package/node_modules/@narumitw/pi-btw/src/transcript-markdown.ts +65 -0
- package/node_modules/@narumitw/pi-btw/src/transcript-pager.ts +611 -662
- package/node_modules/grok-mermaid/CHANGELOG.md +46 -0
- package/node_modules/grok-mermaid/LICENSE +205 -0
- package/node_modules/grok-mermaid/README.md +191 -0
- package/node_modules/grok-mermaid/dist/ansi.d.ts +16 -0
- package/node_modules/grok-mermaid/dist/ansi.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/ansi.js +23 -0
- package/node_modules/grok-mermaid/dist/ansi.js.map +1 -0
- package/node_modules/grok-mermaid/dist/canvas.d.ts +87 -0
- package/node_modules/grok-mermaid/dist/canvas.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/canvas.js +366 -0
- package/node_modules/grok-mermaid/dist/canvas.js.map +1 -0
- package/node_modules/grok-mermaid/dist/graph.d.ts +74 -0
- package/node_modules/grok-mermaid/dist/graph.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/graph.js +91 -0
- package/node_modules/grok-mermaid/dist/graph.js.map +1 -0
- package/node_modules/grok-mermaid/dist/index.d.ts +32 -0
- package/node_modules/grok-mermaid/dist/index.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/index.js +100 -0
- package/node_modules/grok-mermaid/dist/index.js.map +1 -0
- package/node_modules/grok-mermaid/dist/labels.d.ts +62 -0
- package/node_modules/grok-mermaid/dist/labels.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/labels.js +324 -0
- package/node_modules/grok-mermaid/dist/labels.js.map +1 -0
- package/node_modules/grok-mermaid/dist/layout-seq.d.ts +12 -0
- package/node_modules/grok-mermaid/dist/layout-seq.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/layout-seq.js +194 -0
- package/node_modules/grok-mermaid/dist/layout-seq.js.map +1 -0
- package/node_modules/grok-mermaid/dist/layout.d.ts +87 -0
- package/node_modules/grok-mermaid/dist/layout.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/layout.js +881 -0
- package/node_modules/grok-mermaid/dist/layout.js.map +1 -0
- package/node_modules/grok-mermaid/dist/parse.d.ts +83 -0
- package/node_modules/grok-mermaid/dist/parse.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/parse.js +1151 -0
- package/node_modules/grok-mermaid/dist/parse.js.map +1 -0
- package/node_modules/grok-mermaid/dist/source-box.d.ts +18 -0
- package/node_modules/grok-mermaid/dist/source-box.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/source-box.js +78 -0
- package/node_modules/grok-mermaid/dist/source-box.js.map +1 -0
- package/node_modules/grok-mermaid/dist/types.d.ts +42 -0
- package/node_modules/grok-mermaid/dist/types.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/types.js +1 -0
- package/node_modules/grok-mermaid/dist/types.js.map +1 -0
- package/node_modules/grok-mermaid/dist/width-data.d.ts +2 -0
- package/node_modules/grok-mermaid/dist/width-data.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/width-data.js +994 -0
- package/node_modules/grok-mermaid/dist/width-data.js.map +1 -0
- package/node_modules/grok-mermaid/dist/width.d.ts +18 -0
- package/node_modules/grok-mermaid/dist/width.d.ts.map +1 -0
- package/node_modules/grok-mermaid/dist/width.js +76 -0
- package/node_modules/grok-mermaid/dist/width.js.map +1 -0
- package/node_modules/grok-mermaid/package.json +49 -0
- package/node_modules/grok-mermaid/src/ansi.ts +34 -0
- package/node_modules/grok-mermaid/src/canvas.ts +373 -0
- package/node_modules/grok-mermaid/src/graph.ts +142 -0
- package/node_modules/grok-mermaid/src/index.ts +104 -0
- package/node_modules/grok-mermaid/src/labels.ts +326 -0
- package/node_modules/grok-mermaid/src/layout-seq.ts +203 -0
- package/node_modules/grok-mermaid/src/layout.ts +1015 -0
- package/node_modules/grok-mermaid/src/parse.ts +1189 -0
- package/node_modules/grok-mermaid/src/source-box.ts +89 -0
- package/node_modules/grok-mermaid/src/types.ts +43 -0
- package/node_modules/grok-mermaid/src/width-data.ts +993 -0
- package/node_modules/grok-mermaid/src/width.ts +74 -0
- package/node_modules/pi-lens/CHANGELOG.md +239 -0
- package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +3 -0
- package/node_modules/pi-lens/dist/clients/actionable-warnings.js +30 -4
- package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +2 -0
- package/node_modules/pi-lens/dist/clients/bash-file-access.js +26 -0
- package/node_modules/pi-lens/dist/clients/biome-client.js +1 -1
- package/node_modules/pi-lens/dist/clients/blocker-freshness.js +403 -35
- package/node_modules/pi-lens/dist/clients/bootstrap.js +6 -1
- package/node_modules/pi-lens/dist/clients/cascade-format.js +200 -4
- package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +10 -2
- package/node_modules/pi-lens/dist/clients/degradation-ledger.js +16 -1
- package/node_modules/pi-lens/dist/clients/diagnostic-dispositions.js +12 -1
- package/node_modules/pi-lens/dist/clients/dispatch/ast-grep-catalog.js +65 -0
- package/node_modules/pi-lens/dist/clients/dispatch/auxiliary-lsp.js +28 -0
- package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +9 -2
- package/node_modules/pi-lens/dist/clients/dispatch/finding-policy.js +222 -0
- package/node_modules/pi-lens/dist/clients/dispatch/indent-detect.js +389 -13
- package/node_modules/pi-lens/dist/clients/dispatch/integration.js +175 -25
- package/node_modules/pi-lens/dist/clients/dispatch/rule-ignores.js +62 -0
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +21 -41
- package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +6 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +7 -7
- package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +2 -12
- package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +2 -21
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +1 -1
- package/node_modules/pi-lens/dist/clients/dispatch/types.js +4 -1
- package/node_modules/pi-lens/dist/clients/disposition-publish.js +1 -0
- package/node_modules/pi-lens/dist/clients/effective-config.js +1 -1
- package/node_modules/pi-lens/dist/clients/file-kinds.js +26 -1
- package/node_modules/pi-lens/dist/clients/file-role.js +21 -21
- package/node_modules/pi-lens/dist/clients/file-utils.js +156 -10
- package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +56 -9
- package/node_modules/pi-lens/dist/clients/format-service.js +39 -21
- package/node_modules/pi-lens/dist/clients/formatters.js +60 -13
- package/node_modules/pi-lens/dist/clients/generation-guard.js +2 -2
- package/node_modules/pi-lens/dist/clients/git-guard.js +11 -3
- package/node_modules/pi-lens/dist/clients/indent-retarget.js +78 -8
- package/node_modules/pi-lens/dist/clients/installer/index.js +333 -114
- package/node_modules/pi-lens/dist/clients/instance-reaper-state.js +7 -0
- package/node_modules/pi-lens/dist/clients/instance-reaper.js +20 -10
- package/node_modules/pi-lens/dist/clients/language-profile.js +23 -1
- package/node_modules/pi-lens/dist/clients/language-registry.js +5 -1
- package/node_modules/pi-lens/dist/clients/latency-logger.js +4 -1
- package/node_modules/pi-lens/dist/clients/lens-engine.js +12 -3
- package/node_modules/pi-lens/dist/clients/lens-events.js +2 -1
- package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +79 -0
- package/node_modules/pi-lens/dist/clients/live-bus-emitter.js +2 -1
- package/node_modules/pi-lens/dist/clients/lsp/client.js +25 -21
- package/node_modules/pi-lens/dist/clients/lsp/config.js +2 -2
- package/node_modules/pi-lens/dist/clients/lsp/index.js +7 -0
- package/node_modules/pi-lens/dist/clients/lsp/launch.js +16 -4
- package/node_modules/pi-lens/dist/clients/lsp/server.js +19 -2
- package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +2 -1
- package/node_modules/pi-lens/dist/clients/lsp-mutation.js +5 -3
- package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +12 -8
- package/node_modules/pi-lens/dist/clients/mcp/session.js +36 -4
- package/node_modules/pi-lens/dist/clients/ndjson-logger.js +24 -7
- package/node_modules/pi-lens/dist/clients/observed-mutation.js +40 -2
- package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +23 -3
- package/node_modules/pi-lens/dist/clients/opengrep-client.js +110 -15
- package/node_modules/pi-lens/dist/clients/path-utils.js +123 -3
- package/node_modules/pi-lens/dist/clients/performance-report.js +5 -1
- package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +1 -1
- package/node_modules/pi-lens/dist/clients/pipeline.js +74 -5
- package/node_modules/pi-lens/dist/clients/project-diagnostics/cache.js +37 -5
- package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +145 -18
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/dead-code.js +4 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +59 -3
- package/node_modules/pi-lens/dist/clients/project-lens-config.js +45 -2
- package/node_modules/pi-lens/dist/clients/read-guard.js +70 -11
- package/node_modules/pi-lens/dist/clients/resource-sampler.js +147 -9
- package/node_modules/pi-lens/dist/clients/ruff-client.js +1 -1
- package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +33 -5
- package/node_modules/pi-lens/dist/clients/runtime-context.js +6 -2
- package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +77 -7
- package/node_modules/pi-lens/dist/clients/runtime-session.js +21 -2
- package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +43 -12
- package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +330 -85
- package/node_modules/pi-lens/dist/clients/runtime-turn.js +147 -17
- package/node_modules/pi-lens/dist/clients/safe-spawn.js +258 -5
- package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +6 -0
- package/node_modules/pi-lens/dist/clients/session-event-guard.js +50 -5
- package/node_modules/pi-lens/dist/clients/sg-runner.js +23 -11
- package/node_modules/pi-lens/dist/clients/sgconfig.js +79 -2
- package/node_modules/pi-lens/dist/clients/test-runner-client.js +6 -41
- package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +43 -0
- package/node_modules/pi-lens/dist/clients/tool-agreement.js +423 -0
- package/node_modules/pi-lens/dist/clients/tool-config.js +50 -0
- package/node_modules/pi-lens/dist/clients/tool-cwd.js +47 -76
- package/node_modules/pi-lens/dist/clients/tool-policy.js +163 -7
- package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +120 -0
- package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +127 -189
- package/node_modules/pi-lens/dist/clients/widget-state.js +98 -0
- package/node_modules/pi-lens/dist/clients/word-index.js +5 -2
- package/node_modules/pi-lens/dist/clients/write-ordering-guard.js +7 -0
- package/node_modules/pi-lens/dist/index.js +27416 -24153
- package/node_modules/pi-lens/dist/mcp/server.js +5 -2
- package/node_modules/pi-lens/dist/tools/lens-diagnostic-mark.js +7 -1
- package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +168 -53
- package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +244 -72
- package/node_modules/pi-lens/docs/audit1.md +5 -5
- package/node_modules/pi-lens/docs/dependencies.md +11 -0
- package/node_modules/pi-lens/docs/dispositions.md +52 -0
- package/node_modules/pi-lens/docs/environment-variables.md +2 -2
- package/node_modules/pi-lens/docs/features.md +4 -4
- package/node_modules/pi-lens/docs/globalconfig.md +3 -1
- package/node_modules/pi-lens/docs/language-coverage.md +1 -0
- package/node_modules/pi-lens/docs/pi-lens-fixer.md +53 -94
- package/node_modules/pi-lens/docs/pi-lens-investigator.md +43 -38
- package/node_modules/pi-lens/docs/pi-lens-retro.md +97 -0
- package/node_modules/pi-lens/docs/pi-lens-reviewer.md +53 -66
- package/node_modules/pi-lens/docs/release-qa-baseline.md +22 -0
- package/node_modules/pi-lens/docs/settings.md +7 -4
- package/node_modules/pi-lens/docs/tree-sitter_rules_catalog.md +1 -1
- package/node_modules/pi-lens/docs/usage.md +2 -0
- package/node_modules/pi-lens/package.json +1 -1
- package/node_modules/pi-lens/rules/tree-sitter-queries/typescript/sql-injection.yml +24 -12
- package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +40 -0
- package/node_modules/pi-lens/skills/pi-lens-ast-grep/SKILL.md +15 -0
- package/node_modules/pi-lens/skills/pi-lens-lsp-navigation/SKILL.md +7 -0
- package/package.json +6 -11
- package/node_modules/@luxusai/pi-hindsight/CHANGELOG.md +0 -376
- package/node_modules/@luxusai/pi-hindsight/README.md +0 -92
- package/node_modules/@luxusai/pi-hindsight/docs/adr/001-memory-lifecycle-and-scope.md +0 -56
- package/node_modules/@luxusai/pi-hindsight/docs/adr/002-explicit-routing-strategy-seam.md +0 -169
- package/node_modules/@luxusai/pi-hindsight/docs/adr/003-tui-memory-mode-vocabulary.md +0 -107
- package/node_modules/@luxusai/pi-hindsight/docs/adr/004-lifeos-dual-bank-design.md +0 -89
- package/node_modules/@luxusai/pi-hindsight/docs/adr/005-domain-banks-and-agent-first-surface.md +0 -189
- package/node_modules/@luxusai/pi-hindsight/docs/assets/logos/pi-hindsight-logo-dark.webp +0 -0
- package/node_modules/@luxusai/pi-hindsight/docs/assets/logos/pi-hindsight-logo-dark@2x.webp +0 -0
- package/node_modules/@luxusai/pi-hindsight/docs/coding-memory-evaluation.md +0 -54
- package/node_modules/@luxusai/pi-hindsight/docs/compatibility.md +0 -75
- package/node_modules/@luxusai/pi-hindsight/docs/hindsight-core-functions.md +0 -300
- package/node_modules/@luxusai/pi-hindsight/docs/mission-and-mental-model-quality.md +0 -158
- package/node_modules/@luxusai/pi-hindsight/docs/next-opt-out-design.md +0 -164
- package/node_modules/@luxusai/pi-hindsight/docs/risky-memory-modes.md +0 -139
- package/node_modules/@luxusai/pi-hindsight/docs/starter-mental-model-suggestions.md +0 -74
- package/node_modules/@luxusai/pi-hindsight/docs/surface-reference.md +0 -261
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-operations.ts +0 -151
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-selection.ts +0 -18
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-settings-presenter.ts +0 -46
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-templates.ts +0 -383
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/banking.ts +0 -240
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/knowledge-page-seed.ts +0 -176
- package/node_modules/@luxusai/pi-hindsight/extensions/banks/retain-strategies.ts +0 -178
- package/node_modules/@luxusai/pi-hindsight/extensions/client/client-retry.ts +0 -41
- package/node_modules/@luxusai/pi-hindsight/extensions/client/client.ts +0 -386
- package/node_modules/@luxusai/pi-hindsight/extensions/client/fetch-compat.ts +0 -39
- package/node_modules/@luxusai/pi-hindsight/extensions/client/timeout.ts +0 -34
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-defaults.ts +0 -140
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-editing-model.ts +0 -61
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-editing-registry.ts +0 -925
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-field-paths.ts +0 -247
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-normalize.ts +0 -547
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config-writer.ts +0 -480
- package/node_modules/@luxusai/pi-hindsight/extensions/config/config.ts +0 -182
- package/node_modules/@luxusai/pi-hindsight/extensions/config/setup-gate.ts +0 -86
- package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-execute.ts +0 -1010
- package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-parse.ts +0 -175
- package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-plan.ts +0 -425
- package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-presentation.ts +0 -210
- package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-sessions.ts +0 -817
- package/node_modules/@luxusai/pi-hindsight/extensions/index.ts +0 -25
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/git-seed.ts +0 -319
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-recall.ts +0 -196
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-retain.ts +0 -189
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-runtime.ts +0 -65
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle.ts +0 -260
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/mental-models.ts +0 -244
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/observation-scopes.ts +0 -59
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall-cleanup.ts +0 -82
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall-visibility.ts +0 -45
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall.ts +0 -331
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-cursor.ts +0 -354
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-job-builder.ts +0 -66
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-receipts.ts +0 -132
- package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain.ts +0 -228
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-bank-template-operations.ts +0 -74
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-config-operations.ts +0 -16
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-control-operations.ts +0 -648
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-diagnostics-operations.ts +0 -105
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-identity.ts +0 -68
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-operation-service.ts +0 -71
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-operation-types.ts +0 -13
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-recall-operations.ts +0 -162
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-retain-operations.ts +0 -131
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-scope.ts +0 -104
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-session-operations.ts +0 -37
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/operation-catalog.ts +0 -893
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/reflect-presenter.ts +0 -35
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/scope-migrate.ts +0 -177
- package/node_modules/@luxusai/pi-hindsight/extensions/operations/tools.ts +0 -7
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/flush-presenter.ts +0 -21
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/jsonl-queue-store.ts +0 -112
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-delivery.ts +0 -111
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-lock.ts +0 -214
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-operations.ts +0 -70
- package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue.ts +0 -392
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/bank-template-presentation.ts +0 -45
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/commands.ts +0 -9
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/guided-setup.ts +0 -860
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/prefill-input.ts +0 -105
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-flow.ts +0 -189
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-server-probe.ts +0 -299
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-actions.ts +0 -201
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-facts.ts +0 -47
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-render.ts +0 -239
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-types.ts +0 -50
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui.ts +0 -259
- package/node_modules/@luxusai/pi-hindsight/extensions/tui/tool-presenters.ts +0 -77
- package/node_modules/@luxusai/pi-hindsight/extensions/types.ts +0 -534
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/diagnostics.ts +0 -319
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/messages.ts +0 -325
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/sanitize.ts +0 -42
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/session-memory-meta.ts +0 -244
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/session-operations.ts +0 -56
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/session.ts +0 -50
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/status-fields.ts +0 -167
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/status-health.ts +0 -207
- package/node_modules/@luxusai/pi-hindsight/extensions/utils/status.ts +0 -120
- package/node_modules/@luxusai/pi-hindsight/extensions/version.ts +0 -8
- package/node_modules/@luxusai/pi-hindsight/package.json +0 -118
- package/node_modules/@luxusai/pi-hindsight/skills/hindsight-memory-doctor/SKILL.md +0 -75
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# One-turn memory opt-out design
|
|
2
|
-
|
|
3
|
-
This document defines the preferred one-turn memory control for Pi Hindsight. It intentionally avoids prompt hashtag parsing such as `#nomem`.
|
|
4
|
-
|
|
5
|
-
## Problem
|
|
6
|
-
|
|
7
|
-
Users sometimes need a fast way to keep the next agent run out of automatic memory retention without changing the whole session mode.
|
|
8
|
-
|
|
9
|
-
Examples:
|
|
10
|
-
|
|
11
|
-
- The next prompt contains throwaway sensitive material.
|
|
12
|
-
- The next run is exploratory noise that should not become project memory.
|
|
13
|
-
- The user wants a quick one-shot control discoverable through Pi command autocomplete.
|
|
14
|
-
|
|
15
|
-
## Decision
|
|
16
|
-
|
|
17
|
-
Implemented in PR #55.
|
|
18
|
-
|
|
19
|
-
Use an explicit command:
|
|
20
|
-
|
|
21
|
-
```text
|
|
22
|
-
/hindsight:next-opt-out
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Do not parse prompt hashtags.
|
|
26
|
-
|
|
27
|
-
## Why command-based control
|
|
28
|
-
|
|
29
|
-
Pi command autocomplete makes the command discoverable by typing `next`, `opt`, or `out`.
|
|
30
|
-
|
|
31
|
-
A command is better than prompt parsing because it is:
|
|
32
|
-
|
|
33
|
-
- explicit in command history
|
|
34
|
-
- independent of Markdown syntax
|
|
35
|
-
- testable without parsing arbitrary prose
|
|
36
|
-
- less likely to be copied by agents into generated content
|
|
37
|
-
- easier to reason about during import and cursor handling
|
|
38
|
-
|
|
39
|
-
## Current semantics
|
|
40
|
-
|
|
41
|
-
`/hindsight:next-opt-out` applies once to the next completed agent run in the current session.
|
|
42
|
-
|
|
43
|
-
It disables automatic retain for that run only.
|
|
44
|
-
|
|
45
|
-
It does not disable recall. The user may still want memory context to answer the prompt, while not retaining the new prompt/result.
|
|
46
|
-
|
|
47
|
-
It does not affect explicit memory tools. If an agent or user explicitly calls `hindsight_retain`, that explicit retain remains intentional and should still work.
|
|
48
|
-
|
|
49
|
-
It does not affect historical import. Import reads the transcript as source material and is governed by import commands, not transient one-turn state.
|
|
50
|
-
|
|
51
|
-
It stores state outside provider-visible messages, alongside existing session memory metadata.
|
|
52
|
-
|
|
53
|
-
After the next completed agent run is skipped, the opt-out flag is consumed and cleared.
|
|
54
|
-
|
|
55
|
-
## Interactions
|
|
56
|
-
|
|
57
|
-
### `/hindsight:mode ignored`
|
|
58
|
-
|
|
59
|
-
Ignored mode already disables recall and retain for the session. `next-opt-out` is redundant while ignored mode is active.
|
|
60
|
-
|
|
61
|
-
### `/hindsight:mode read-only`
|
|
62
|
-
|
|
63
|
-
Read-only mode already disables retain while allowing recall. `next-opt-out` is redundant while read-only mode is active.
|
|
64
|
-
|
|
65
|
-
### `/hindsight:retain off`
|
|
66
|
-
|
|
67
|
-
Retain off already disables automatic retain for the session. `next-opt-out` is redundant while retain is off.
|
|
68
|
-
|
|
69
|
-
### Retain cursor
|
|
70
|
-
|
|
71
|
-
When `next-opt-out` skips a run, the retain cursor should mark the skipped projected messages as handled. Otherwise those messages could be retained on a later overlapping `agent_end` event after the one-turn opt-out expires.
|
|
72
|
-
|
|
73
|
-
This matches current read-only and ignored mode behavior.
|
|
74
|
-
|
|
75
|
-
### Recall
|
|
76
|
-
|
|
77
|
-
Recall remains enabled unless another session mode disables it. This keeps the command narrow and avoids surprising users who only wanted to prevent storage.
|
|
78
|
-
|
|
79
|
-
A future command could add recall control explicitly, but it should not be overloaded into this first command.
|
|
80
|
-
|
|
81
|
-
## User-facing behavior
|
|
82
|
-
|
|
83
|
-
Command:
|
|
84
|
-
|
|
85
|
-
```text
|
|
86
|
-
/hindsight:next-opt-out
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Success message:
|
|
90
|
-
|
|
91
|
-
```text
|
|
92
|
-
Hindsight will skip automatic retain for the next agent run in this session. nextRetain=off
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Session status should show pending one-turn opt-out:
|
|
96
|
-
|
|
97
|
-
```text
|
|
98
|
-
Hindsight session mode=normal; recall=true; retain=true; nextRetain=off; tags=none
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
When consumed, the activity notification says:
|
|
102
|
-
|
|
103
|
-
```text
|
|
104
|
-
Hindsight skipped retain for this run due to next-opt-out.
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Storage shape
|
|
108
|
-
|
|
109
|
-
Extend session memory metadata with a non-provider-visible field:
|
|
110
|
-
|
|
111
|
-
```json
|
|
112
|
-
{
|
|
113
|
-
"nextRetainMode": "off"
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
The default is `"normal"`.
|
|
118
|
-
|
|
119
|
-
Clearing the one-turn opt-out normalizes the field back to `"normal"`.
|
|
120
|
-
|
|
121
|
-
## Implemented tests
|
|
122
|
-
|
|
123
|
-
Tests assert external behavior, not internal helper details.
|
|
124
|
-
|
|
125
|
-
Covered:
|
|
126
|
-
|
|
127
|
-
- session metadata persists and consumes a one-turn retain opt-out
|
|
128
|
-
- next `agent_end` skips automatic retain
|
|
129
|
-
- skipped messages are added to retain cursor so they are not retained later
|
|
130
|
-
- opt-out clears after one completed agent run
|
|
131
|
-
|
|
132
|
-
Additional coverage added after implementation:
|
|
133
|
-
|
|
134
|
-
- command handler sets a pending one-turn retain opt-out
|
|
135
|
-
- `/hindsight:session` reports pending opt-out
|
|
136
|
-
- explicit `hindsight_retain` still queues normally while next opt-out is pending
|
|
137
|
-
- historical import ignores next opt-out state
|
|
138
|
-
|
|
139
|
-
Additional coverage added after fail-closed hardening:
|
|
140
|
-
|
|
141
|
-
- recall still runs while next retain is off
|
|
142
|
-
- ignored/read-only/retain-off modes remain stronger than next opt-out
|
|
143
|
-
- next opt-out remains pending if retain cursor marking fails
|
|
144
|
-
|
|
145
|
-
## Out of scope
|
|
146
|
-
|
|
147
|
-
- `#nomem` or any prompt hashtag parsing
|
|
148
|
-
- routing control through prompt text
|
|
149
|
-
- disabling explicit retain tool calls
|
|
150
|
-
- changing historical import behavior
|
|
151
|
-
- provider recall cache
|
|
152
|
-
- persisted recall transcript messages
|
|
153
|
-
|
|
154
|
-
## Future options
|
|
155
|
-
|
|
156
|
-
Possible future commands, only if real use justifies them:
|
|
157
|
-
|
|
158
|
-
```text
|
|
159
|
-
/hindsight:next-recall off
|
|
160
|
-
/hindsight:next-mode ignored
|
|
161
|
-
/hindsight:next-retain off
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Do not add aliases until the core command proves useful.
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Risky memory modes
|
|
2
|
-
|
|
3
|
-
Pi Hindsight keeps several tempting memory features deferred on purpose. The project is pre-release, so the reason is not backward compatibility. The reason is memory correctness: a feature that makes memory harder to reason about is not worth adding until it has a strong use case and a small, testable design.
|
|
4
|
-
|
|
5
|
-
## Baseline policy
|
|
6
|
-
|
|
7
|
-
The safe default path is:
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
ephemeral recall
|
|
11
|
-
fresh recall per turn
|
|
12
|
-
queue-first retain
|
|
13
|
-
stable document IDs
|
|
14
|
-
strict tag scope
|
|
15
|
-
explicit commands for user control
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Do not implement persisted recall, provider recall caching, or prompt hashtag controls unless a future design re-justifies them.
|
|
19
|
-
|
|
20
|
-
## Persisted recall messages in Pi transcript history
|
|
21
|
-
|
|
22
|
-
Persisted recall means writing recalled memories into the Pi session transcript as messages so they are visible after restart.
|
|
23
|
-
|
|
24
|
-
This is deferred.
|
|
25
|
-
|
|
26
|
-
Risks:
|
|
27
|
-
|
|
28
|
-
- Old recall blocks can be resent to model providers if filtering is absent or the extension is disabled incorrectly.
|
|
29
|
-
- Uninstalling the extension can turn custom recall blocks into ordinary prompt content.
|
|
30
|
-
- Recalled memory can accidentally be retained back into Hindsight, causing memory echo.
|
|
31
|
-
- Transcript import and cleanup logic becomes harder to reason about.
|
|
32
|
-
- Prompt-cache behavior becomes more fragile if historical recall blocks appear in the provider context.
|
|
33
|
-
|
|
34
|
-
Safe alternative:
|
|
35
|
-
|
|
36
|
-
- Keep recall ephemeral by default.
|
|
37
|
-
- Use `recall.storeLastRecall` to write the latest recall snapshot to a local sidecar file under `.pi/hindsight/`.
|
|
38
|
-
- Inspect that sidecar on disk when debugging; there is no public last-recall slash command.
|
|
39
|
-
|
|
40
|
-
Design rule:
|
|
41
|
-
|
|
42
|
-
```text
|
|
43
|
-
Visibility is OK. Provider reuse is not OK by default.
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Provider recall cache
|
|
47
|
-
|
|
48
|
-
Provider recall cache means reusing previous recall results as context for later model calls.
|
|
49
|
-
|
|
50
|
-
This is deferred.
|
|
51
|
-
|
|
52
|
-
Risks:
|
|
53
|
-
|
|
54
|
-
- Recall is query-dependent; different prompts need different memory.
|
|
55
|
-
- Cached recall can serve stale or irrelevant memory.
|
|
56
|
-
- Wrong cached memory makes answers confidently wrong.
|
|
57
|
-
- Cache invalidation adds complexity without improving correctness.
|
|
58
|
-
- It hides retrieval failures behind old results.
|
|
59
|
-
|
|
60
|
-
Safe alternative:
|
|
61
|
-
|
|
62
|
-
- Run fresh recall for each turn.
|
|
63
|
-
- Cache only for inspection, not provider injection.
|
|
64
|
-
- Keep the sidecar snapshot local, explicit, and opt-in.
|
|
65
|
-
|
|
66
|
-
Design rule:
|
|
67
|
-
|
|
68
|
-
```text
|
|
69
|
-
Recall returns candidates for this query, not reusable truth for future queries.
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Prompt hashtag controls such as `#nomem`
|
|
73
|
-
|
|
74
|
-
Prompt hashtag controls mean parsing user text for markers like `#nomem`, `#private`, `#global`, or `#project`.
|
|
75
|
-
|
|
76
|
-
This is deferred.
|
|
77
|
-
|
|
78
|
-
Risks:
|
|
79
|
-
|
|
80
|
-
- Markdown headings and normal prose use `#`.
|
|
81
|
-
- Prompt parsing creates invisible policy decisions inside normal conversation text.
|
|
82
|
-
- Agent-written text can accidentally copy or transform control markers.
|
|
83
|
-
- Retain cursor behavior becomes harder for one-turn skip semantics.
|
|
84
|
-
- Historical import semantics become ambiguous: should old `#nomem` markers still apply?
|
|
85
|
-
- Routing tags in prompts invite accidental cross-scope writes.
|
|
86
|
-
|
|
87
|
-
Safe alternative:
|
|
88
|
-
|
|
89
|
-
- Use explicit commands:
|
|
90
|
-
- `/hindsight` hub key `m` → `read-only`
|
|
91
|
-
- `/hindsight` hub key `m` → `ignored`
|
|
92
|
-
- `/hindsight:retain off`
|
|
93
|
-
- Use `/hindsight:next-opt-out` for command-based one-turn automatic retain opt-out instead of hashtag parsing.
|
|
94
|
-
|
|
95
|
-
Implemented one-turn direction:
|
|
96
|
-
|
|
97
|
-
```text
|
|
98
|
-
/hindsight:next-opt-out
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Why this is better:
|
|
102
|
-
|
|
103
|
-
- Pi command autocomplete makes it discoverable by typing `next`, `opt`, or `out`.
|
|
104
|
-
- The command is explicit in command history.
|
|
105
|
-
- The behavior can be tested without parsing arbitrary user prose.
|
|
106
|
-
- It does not conflict with Markdown.
|
|
107
|
-
|
|
108
|
-
Current semantics:
|
|
109
|
-
|
|
110
|
-
- Applies once to the next agent run in the current session.
|
|
111
|
-
- Disables automatic retain for that run.
|
|
112
|
-
- Leaves recall enabled unless a later design adds an explicit recall option.
|
|
113
|
-
- Does not affect explicit `hindsight_retain` tool calls.
|
|
114
|
-
- Does not affect historical import.
|
|
115
|
-
- Stores non-provider-visible session metadata for inspectability.
|
|
116
|
-
|
|
117
|
-
Design rule:
|
|
118
|
-
|
|
119
|
-
```text
|
|
120
|
-
Use commands for policy. Do not hide policy in prompt text.
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Decision summary
|
|
124
|
-
|
|
125
|
-
| Feature | Status | Safe alternative |
|
|
126
|
-
| ------------------------------------ | -------- | --------------------------------------------------- |
|
|
127
|
-
| Persisted recall transcript messages | Deferred | ephemeral recall + last-recall sidecar |
|
|
128
|
-
| Provider recall cache | Deferred | fresh recall per turn + local inspection snapshot |
|
|
129
|
-
| `#nomem` / prompt hashtag controls | Deferred | explicit commands such as `/hindsight:next-opt-out` |
|
|
130
|
-
|
|
131
|
-
## Reopening criteria
|
|
132
|
-
|
|
133
|
-
A deferred memory mode can be reconsidered only if all are true:
|
|
134
|
-
|
|
135
|
-
- The use case happens often enough to justify product complexity.
|
|
136
|
-
- The behavior can be explained in one paragraph.
|
|
137
|
-
- It has deterministic tests for recall, retain, import, and session mode interaction.
|
|
138
|
-
- It does not store recalled memory back into Hindsight.
|
|
139
|
-
- It fails closed instead of silently leaking memory across scopes.
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Starter mental model suggestions
|
|
2
|
-
|
|
3
|
-
Mental models are a **core** Hindsight feature. Pi Hindsight provisions them through use-profile-aware bank templates (guided setup or `/hindsight` → `t`), then injects non-empty model content into automatic context.
|
|
4
|
-
|
|
5
|
-
## Placement decision
|
|
6
|
-
|
|
7
|
-
Starter suggestions live here and in `extensions/banks/bank-templates.ts` (keep in sync). Applying a bundled template creates these models via Hindsight's bank-template import endpoint — dry-run gated, confirm before write. Arbitrary mental-model authoring remains in the Hindsight control-plane web UI.
|
|
8
|
-
|
|
9
|
-
For quality criteria and when agents should **propose** create/update/refresh (never silent), see [Mission and mental-model quality](mission-and-mental-model-quality.md).
|
|
10
|
-
|
|
11
|
-
## Product rules
|
|
12
|
-
|
|
13
|
-
- Suggestions are explicit opt-in (setup/TUI), never silent bank mutation on every boot.
|
|
14
|
-
- Creation shows name, bank, source query, and tags before submission.
|
|
15
|
-
- **Agent use** selects which seed set applies: `coding` vs `conversation` (real-life / chat agents).
|
|
16
|
-
- Tags on seeds must be a subset of retain tags (`source:pi`) so refresh is not empty.
|
|
17
|
-
- When models have content, automatic context injects them ephemerally under `<hindsight-mental-models>`; retain strips that injection like recall blocks.
|
|
18
|
-
- Seed `max_tokens` stays lean (600 prefs / 800 project) so inject does not dominate every turn (see [coding-memory-evaluation.md](coding-memory-evaluation.md)).
|
|
19
|
-
- Template triggers use `mode: delta`, `refresh_after_consolidation: true`, observation-first refresh, and `exclude_mental_models` (oh-my-pi / Claude Code pattern).
|
|
20
|
-
|
|
21
|
-
## Coding bank-global (shared coding bank)
|
|
22
|
-
|
|
23
|
-
| Name | Source query (summary) | Why |
|
|
24
|
-
| -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------- |
|
|
25
|
-
| Coding assistant operating preferences | Durable plan/verify/commit/tool + clarification style; exclude probe harness rules | Cross-repo prefs |
|
|
26
|
-
|
|
27
|
-
## Coding project bank
|
|
28
|
-
|
|
29
|
-
| Name | Source query | Why |
|
|
30
|
-
| ------------------------------ | ---------------------------------------------------------------------------------------- | --------------------- |
|
|
31
|
-
| Project architecture and seams | What are the stable architecture boundaries, modules, and seams in this project? | Where changes belong |
|
|
32
|
-
| Project conventions | What are this project's conventions for code style, build, testing, release, and review? | Consistency |
|
|
33
|
-
| Project decisions | What durable architectural or product decisions have been made…? | Stable decisions only |
|
|
34
|
-
|
|
35
|
-
## Conversation / life-task project bank
|
|
36
|
-
|
|
37
|
-
| Name | Source query | Why |
|
|
38
|
-
| ---------------------------- | -------------------------------------------------------------------------- | ---------------------- |
|
|
39
|
-
| Active goals and commitments | What goals, commitments, deadlines, and open loops is the user tracking…? | Ongoing work |
|
|
40
|
-
| People and context | Which people, roles, relationships, and recurring situations matter…? | Durable social context |
|
|
41
|
-
| Decisions and preferences | What durable decisions, preferences, and constraints has the user stated…? | Stable choices |
|
|
42
|
-
|
|
43
|
-
## Coding user bank
|
|
44
|
-
|
|
45
|
-
| Name | Source query | Why |
|
|
46
|
-
| -------------------------------------- | ------------------------------------------------------------ | ---------------- |
|
|
47
|
-
| User collaboration preferences | Durable collaboration/review/autonomy preferences | Cross-repo style |
|
|
48
|
-
| Coding assistant operating preferences | How coding assistants should plan, verify, commit, use tools | Agent behavior |
|
|
49
|
-
| Cross-project workflow habits | Issue/PR/release habits across repos | Process |
|
|
50
|
-
|
|
51
|
-
## Conversation user bank
|
|
52
|
-
|
|
53
|
-
| Name | Source query | Why |
|
|
54
|
-
| ----------------------------------- | -------------------------------------- | --------------- |
|
|
55
|
-
| Communication preferences | Tone, length, language preferences | Response shape |
|
|
56
|
-
| Life and task workflow habits | Real-life planning and task habits | LifeOS patterns |
|
|
57
|
-
| Priority and scheduling preferences | How the user prioritizes and schedules | Trade-offs |
|
|
58
|
-
|
|
59
|
-
## What not to seed
|
|
60
|
-
|
|
61
|
-
- Secrets, credentials, private URLs
|
|
62
|
-
- One-off session status
|
|
63
|
-
- Speculative personality profiles
|
|
64
|
-
- Project facts in the user bank (and vice versa for coding vs conversation mismatch)
|
|
65
|
-
|
|
66
|
-
## Template ids
|
|
67
|
-
|
|
68
|
-
| Id | Target | Agent use |
|
|
69
|
-
| ------------------------- | ------- | --------------------- |
|
|
70
|
-
| `pi-coding-project` | project | coding |
|
|
71
|
-
| `pi-conversation-project` | project | conversation |
|
|
72
|
-
| `pi-coding-user` | user | coding |
|
|
73
|
-
| `pi-conversation-user` | user | conversation |
|
|
74
|
-
| `pi-user-preferences` | user | coding (legacy alias) |
|