@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.
Files changed (304) hide show
  1. package/README.md +3 -8
  2. package/THIRD_PARTY_NOTICES.md +0 -4
  3. package/node_modules/@narumitw/pi-btw/README.md +2 -0
  4. package/node_modules/@narumitw/pi-btw/dist/index.ts +284 -365
  5. package/node_modules/@narumitw/pi-btw/dist/index.ts.map +3 -3
  6. package/node_modules/@narumitw/pi-btw/package.json +52 -53
  7. package/node_modules/@narumitw/pi-btw/src/bring-to-main.ts +494 -547
  8. package/node_modules/@narumitw/pi-btw/src/btw.ts +814 -856
  9. package/node_modules/@narumitw/pi-btw/src/fullscreen-ui.ts +673 -674
  10. package/node_modules/@narumitw/pi-btw/src/keybindings.ts +228 -270
  11. package/node_modules/@narumitw/pi-btw/src/main-tree-picker.ts +309 -318
  12. package/node_modules/@narumitw/pi-btw/src/menu.ts +416 -454
  13. package/node_modules/@narumitw/pi-btw/src/settings.ts +203 -219
  14. package/node_modules/@narumitw/pi-btw/src/side-thread.ts +173 -201
  15. package/node_modules/@narumitw/pi-btw/src/text.ts +21 -23
  16. package/node_modules/@narumitw/pi-btw/src/transcript-markdown.ts +65 -0
  17. package/node_modules/@narumitw/pi-btw/src/transcript-pager.ts +611 -662
  18. package/node_modules/grok-mermaid/CHANGELOG.md +46 -0
  19. package/node_modules/grok-mermaid/LICENSE +205 -0
  20. package/node_modules/grok-mermaid/README.md +191 -0
  21. package/node_modules/grok-mermaid/dist/ansi.d.ts +16 -0
  22. package/node_modules/grok-mermaid/dist/ansi.d.ts.map +1 -0
  23. package/node_modules/grok-mermaid/dist/ansi.js +23 -0
  24. package/node_modules/grok-mermaid/dist/ansi.js.map +1 -0
  25. package/node_modules/grok-mermaid/dist/canvas.d.ts +87 -0
  26. package/node_modules/grok-mermaid/dist/canvas.d.ts.map +1 -0
  27. package/node_modules/grok-mermaid/dist/canvas.js +366 -0
  28. package/node_modules/grok-mermaid/dist/canvas.js.map +1 -0
  29. package/node_modules/grok-mermaid/dist/graph.d.ts +74 -0
  30. package/node_modules/grok-mermaid/dist/graph.d.ts.map +1 -0
  31. package/node_modules/grok-mermaid/dist/graph.js +91 -0
  32. package/node_modules/grok-mermaid/dist/graph.js.map +1 -0
  33. package/node_modules/grok-mermaid/dist/index.d.ts +32 -0
  34. package/node_modules/grok-mermaid/dist/index.d.ts.map +1 -0
  35. package/node_modules/grok-mermaid/dist/index.js +100 -0
  36. package/node_modules/grok-mermaid/dist/index.js.map +1 -0
  37. package/node_modules/grok-mermaid/dist/labels.d.ts +62 -0
  38. package/node_modules/grok-mermaid/dist/labels.d.ts.map +1 -0
  39. package/node_modules/grok-mermaid/dist/labels.js +324 -0
  40. package/node_modules/grok-mermaid/dist/labels.js.map +1 -0
  41. package/node_modules/grok-mermaid/dist/layout-seq.d.ts +12 -0
  42. package/node_modules/grok-mermaid/dist/layout-seq.d.ts.map +1 -0
  43. package/node_modules/grok-mermaid/dist/layout-seq.js +194 -0
  44. package/node_modules/grok-mermaid/dist/layout-seq.js.map +1 -0
  45. package/node_modules/grok-mermaid/dist/layout.d.ts +87 -0
  46. package/node_modules/grok-mermaid/dist/layout.d.ts.map +1 -0
  47. package/node_modules/grok-mermaid/dist/layout.js +881 -0
  48. package/node_modules/grok-mermaid/dist/layout.js.map +1 -0
  49. package/node_modules/grok-mermaid/dist/parse.d.ts +83 -0
  50. package/node_modules/grok-mermaid/dist/parse.d.ts.map +1 -0
  51. package/node_modules/grok-mermaid/dist/parse.js +1151 -0
  52. package/node_modules/grok-mermaid/dist/parse.js.map +1 -0
  53. package/node_modules/grok-mermaid/dist/source-box.d.ts +18 -0
  54. package/node_modules/grok-mermaid/dist/source-box.d.ts.map +1 -0
  55. package/node_modules/grok-mermaid/dist/source-box.js +78 -0
  56. package/node_modules/grok-mermaid/dist/source-box.js.map +1 -0
  57. package/node_modules/grok-mermaid/dist/types.d.ts +42 -0
  58. package/node_modules/grok-mermaid/dist/types.d.ts.map +1 -0
  59. package/node_modules/grok-mermaid/dist/types.js +1 -0
  60. package/node_modules/grok-mermaid/dist/types.js.map +1 -0
  61. package/node_modules/grok-mermaid/dist/width-data.d.ts +2 -0
  62. package/node_modules/grok-mermaid/dist/width-data.d.ts.map +1 -0
  63. package/node_modules/grok-mermaid/dist/width-data.js +994 -0
  64. package/node_modules/grok-mermaid/dist/width-data.js.map +1 -0
  65. package/node_modules/grok-mermaid/dist/width.d.ts +18 -0
  66. package/node_modules/grok-mermaid/dist/width.d.ts.map +1 -0
  67. package/node_modules/grok-mermaid/dist/width.js +76 -0
  68. package/node_modules/grok-mermaid/dist/width.js.map +1 -0
  69. package/node_modules/grok-mermaid/package.json +49 -0
  70. package/node_modules/grok-mermaid/src/ansi.ts +34 -0
  71. package/node_modules/grok-mermaid/src/canvas.ts +373 -0
  72. package/node_modules/grok-mermaid/src/graph.ts +142 -0
  73. package/node_modules/grok-mermaid/src/index.ts +104 -0
  74. package/node_modules/grok-mermaid/src/labels.ts +326 -0
  75. package/node_modules/grok-mermaid/src/layout-seq.ts +203 -0
  76. package/node_modules/grok-mermaid/src/layout.ts +1015 -0
  77. package/node_modules/grok-mermaid/src/parse.ts +1189 -0
  78. package/node_modules/grok-mermaid/src/source-box.ts +89 -0
  79. package/node_modules/grok-mermaid/src/types.ts +43 -0
  80. package/node_modules/grok-mermaid/src/width-data.ts +993 -0
  81. package/node_modules/grok-mermaid/src/width.ts +74 -0
  82. package/node_modules/pi-lens/CHANGELOG.md +239 -0
  83. package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +3 -0
  84. package/node_modules/pi-lens/dist/clients/actionable-warnings.js +30 -4
  85. package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +2 -0
  86. package/node_modules/pi-lens/dist/clients/bash-file-access.js +26 -0
  87. package/node_modules/pi-lens/dist/clients/biome-client.js +1 -1
  88. package/node_modules/pi-lens/dist/clients/blocker-freshness.js +403 -35
  89. package/node_modules/pi-lens/dist/clients/bootstrap.js +6 -1
  90. package/node_modules/pi-lens/dist/clients/cascade-format.js +200 -4
  91. package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +10 -2
  92. package/node_modules/pi-lens/dist/clients/degradation-ledger.js +16 -1
  93. package/node_modules/pi-lens/dist/clients/diagnostic-dispositions.js +12 -1
  94. package/node_modules/pi-lens/dist/clients/dispatch/ast-grep-catalog.js +65 -0
  95. package/node_modules/pi-lens/dist/clients/dispatch/auxiliary-lsp.js +28 -0
  96. package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +9 -2
  97. package/node_modules/pi-lens/dist/clients/dispatch/finding-policy.js +222 -0
  98. package/node_modules/pi-lens/dist/clients/dispatch/indent-detect.js +389 -13
  99. package/node_modules/pi-lens/dist/clients/dispatch/integration.js +175 -25
  100. package/node_modules/pi-lens/dist/clients/dispatch/rule-ignores.js +62 -0
  101. package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +21 -41
  102. package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +6 -1
  103. package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +7 -7
  104. package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +2 -12
  105. package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +2 -21
  106. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +1 -1
  107. package/node_modules/pi-lens/dist/clients/dispatch/types.js +4 -1
  108. package/node_modules/pi-lens/dist/clients/disposition-publish.js +1 -0
  109. package/node_modules/pi-lens/dist/clients/effective-config.js +1 -1
  110. package/node_modules/pi-lens/dist/clients/file-kinds.js +26 -1
  111. package/node_modules/pi-lens/dist/clients/file-role.js +21 -21
  112. package/node_modules/pi-lens/dist/clients/file-utils.js +156 -10
  113. package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +56 -9
  114. package/node_modules/pi-lens/dist/clients/format-service.js +39 -21
  115. package/node_modules/pi-lens/dist/clients/formatters.js +60 -13
  116. package/node_modules/pi-lens/dist/clients/generation-guard.js +2 -2
  117. package/node_modules/pi-lens/dist/clients/git-guard.js +11 -3
  118. package/node_modules/pi-lens/dist/clients/indent-retarget.js +78 -8
  119. package/node_modules/pi-lens/dist/clients/installer/index.js +333 -114
  120. package/node_modules/pi-lens/dist/clients/instance-reaper-state.js +7 -0
  121. package/node_modules/pi-lens/dist/clients/instance-reaper.js +20 -10
  122. package/node_modules/pi-lens/dist/clients/language-profile.js +23 -1
  123. package/node_modules/pi-lens/dist/clients/language-registry.js +5 -1
  124. package/node_modules/pi-lens/dist/clients/latency-logger.js +4 -1
  125. package/node_modules/pi-lens/dist/clients/lens-engine.js +12 -3
  126. package/node_modules/pi-lens/dist/clients/lens-events.js +2 -1
  127. package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +79 -0
  128. package/node_modules/pi-lens/dist/clients/live-bus-emitter.js +2 -1
  129. package/node_modules/pi-lens/dist/clients/lsp/client.js +25 -21
  130. package/node_modules/pi-lens/dist/clients/lsp/config.js +2 -2
  131. package/node_modules/pi-lens/dist/clients/lsp/index.js +7 -0
  132. package/node_modules/pi-lens/dist/clients/lsp/launch.js +16 -4
  133. package/node_modules/pi-lens/dist/clients/lsp/server.js +19 -2
  134. package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +2 -1
  135. package/node_modules/pi-lens/dist/clients/lsp-mutation.js +5 -3
  136. package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +12 -8
  137. package/node_modules/pi-lens/dist/clients/mcp/session.js +36 -4
  138. package/node_modules/pi-lens/dist/clients/ndjson-logger.js +24 -7
  139. package/node_modules/pi-lens/dist/clients/observed-mutation.js +40 -2
  140. package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +23 -3
  141. package/node_modules/pi-lens/dist/clients/opengrep-client.js +110 -15
  142. package/node_modules/pi-lens/dist/clients/path-utils.js +123 -3
  143. package/node_modules/pi-lens/dist/clients/performance-report.js +5 -1
  144. package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +1 -1
  145. package/node_modules/pi-lens/dist/clients/pipeline.js +74 -5
  146. package/node_modules/pi-lens/dist/clients/project-diagnostics/cache.js +37 -5
  147. package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +145 -18
  148. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/dead-code.js +4 -1
  149. package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +59 -3
  150. package/node_modules/pi-lens/dist/clients/project-lens-config.js +45 -2
  151. package/node_modules/pi-lens/dist/clients/read-guard.js +70 -11
  152. package/node_modules/pi-lens/dist/clients/resource-sampler.js +147 -9
  153. package/node_modules/pi-lens/dist/clients/ruff-client.js +1 -1
  154. package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +33 -5
  155. package/node_modules/pi-lens/dist/clients/runtime-context.js +6 -2
  156. package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +77 -7
  157. package/node_modules/pi-lens/dist/clients/runtime-session.js +21 -2
  158. package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +43 -12
  159. package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +330 -85
  160. package/node_modules/pi-lens/dist/clients/runtime-turn.js +147 -17
  161. package/node_modules/pi-lens/dist/clients/safe-spawn.js +258 -5
  162. package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +6 -0
  163. package/node_modules/pi-lens/dist/clients/session-event-guard.js +50 -5
  164. package/node_modules/pi-lens/dist/clients/sg-runner.js +23 -11
  165. package/node_modules/pi-lens/dist/clients/sgconfig.js +79 -2
  166. package/node_modules/pi-lens/dist/clients/test-runner-client.js +6 -41
  167. package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +43 -0
  168. package/node_modules/pi-lens/dist/clients/tool-agreement.js +423 -0
  169. package/node_modules/pi-lens/dist/clients/tool-config.js +50 -0
  170. package/node_modules/pi-lens/dist/clients/tool-cwd.js +47 -76
  171. package/node_modules/pi-lens/dist/clients/tool-policy.js +163 -7
  172. package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +120 -0
  173. package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +127 -189
  174. package/node_modules/pi-lens/dist/clients/widget-state.js +98 -0
  175. package/node_modules/pi-lens/dist/clients/word-index.js +5 -2
  176. package/node_modules/pi-lens/dist/clients/write-ordering-guard.js +7 -0
  177. package/node_modules/pi-lens/dist/index.js +27416 -24153
  178. package/node_modules/pi-lens/dist/mcp/server.js +5 -2
  179. package/node_modules/pi-lens/dist/tools/lens-diagnostic-mark.js +7 -1
  180. package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +168 -53
  181. package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +244 -72
  182. package/node_modules/pi-lens/docs/audit1.md +5 -5
  183. package/node_modules/pi-lens/docs/dependencies.md +11 -0
  184. package/node_modules/pi-lens/docs/dispositions.md +52 -0
  185. package/node_modules/pi-lens/docs/environment-variables.md +2 -2
  186. package/node_modules/pi-lens/docs/features.md +4 -4
  187. package/node_modules/pi-lens/docs/globalconfig.md +3 -1
  188. package/node_modules/pi-lens/docs/language-coverage.md +1 -0
  189. package/node_modules/pi-lens/docs/pi-lens-fixer.md +53 -94
  190. package/node_modules/pi-lens/docs/pi-lens-investigator.md +43 -38
  191. package/node_modules/pi-lens/docs/pi-lens-retro.md +97 -0
  192. package/node_modules/pi-lens/docs/pi-lens-reviewer.md +53 -66
  193. package/node_modules/pi-lens/docs/release-qa-baseline.md +22 -0
  194. package/node_modules/pi-lens/docs/settings.md +7 -4
  195. package/node_modules/pi-lens/docs/tree-sitter_rules_catalog.md +1 -1
  196. package/node_modules/pi-lens/docs/usage.md +2 -0
  197. package/node_modules/pi-lens/package.json +1 -1
  198. package/node_modules/pi-lens/rules/tree-sitter-queries/typescript/sql-injection.yml +24 -12
  199. package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +40 -0
  200. package/node_modules/pi-lens/skills/pi-lens-ast-grep/SKILL.md +15 -0
  201. package/node_modules/pi-lens/skills/pi-lens-lsp-navigation/SKILL.md +7 -0
  202. package/package.json +6 -11
  203. package/node_modules/@luxusai/pi-hindsight/CHANGELOG.md +0 -376
  204. package/node_modules/@luxusai/pi-hindsight/README.md +0 -92
  205. package/node_modules/@luxusai/pi-hindsight/docs/adr/001-memory-lifecycle-and-scope.md +0 -56
  206. package/node_modules/@luxusai/pi-hindsight/docs/adr/002-explicit-routing-strategy-seam.md +0 -169
  207. package/node_modules/@luxusai/pi-hindsight/docs/adr/003-tui-memory-mode-vocabulary.md +0 -107
  208. package/node_modules/@luxusai/pi-hindsight/docs/adr/004-lifeos-dual-bank-design.md +0 -89
  209. package/node_modules/@luxusai/pi-hindsight/docs/adr/005-domain-banks-and-agent-first-surface.md +0 -189
  210. package/node_modules/@luxusai/pi-hindsight/docs/assets/logos/pi-hindsight-logo-dark.webp +0 -0
  211. package/node_modules/@luxusai/pi-hindsight/docs/assets/logos/pi-hindsight-logo-dark@2x.webp +0 -0
  212. package/node_modules/@luxusai/pi-hindsight/docs/coding-memory-evaluation.md +0 -54
  213. package/node_modules/@luxusai/pi-hindsight/docs/compatibility.md +0 -75
  214. package/node_modules/@luxusai/pi-hindsight/docs/hindsight-core-functions.md +0 -300
  215. package/node_modules/@luxusai/pi-hindsight/docs/mission-and-mental-model-quality.md +0 -158
  216. package/node_modules/@luxusai/pi-hindsight/docs/next-opt-out-design.md +0 -164
  217. package/node_modules/@luxusai/pi-hindsight/docs/risky-memory-modes.md +0 -139
  218. package/node_modules/@luxusai/pi-hindsight/docs/starter-mental-model-suggestions.md +0 -74
  219. package/node_modules/@luxusai/pi-hindsight/docs/surface-reference.md +0 -261
  220. package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-operations.ts +0 -151
  221. package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-selection.ts +0 -18
  222. package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-settings-presenter.ts +0 -46
  223. package/node_modules/@luxusai/pi-hindsight/extensions/banks/bank-templates.ts +0 -383
  224. package/node_modules/@luxusai/pi-hindsight/extensions/banks/banking.ts +0 -240
  225. package/node_modules/@luxusai/pi-hindsight/extensions/banks/knowledge-page-seed.ts +0 -176
  226. package/node_modules/@luxusai/pi-hindsight/extensions/banks/retain-strategies.ts +0 -178
  227. package/node_modules/@luxusai/pi-hindsight/extensions/client/client-retry.ts +0 -41
  228. package/node_modules/@luxusai/pi-hindsight/extensions/client/client.ts +0 -386
  229. package/node_modules/@luxusai/pi-hindsight/extensions/client/fetch-compat.ts +0 -39
  230. package/node_modules/@luxusai/pi-hindsight/extensions/client/timeout.ts +0 -34
  231. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-defaults.ts +0 -140
  232. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-editing-model.ts +0 -61
  233. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-editing-registry.ts +0 -925
  234. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-field-paths.ts +0 -247
  235. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-normalize.ts +0 -547
  236. package/node_modules/@luxusai/pi-hindsight/extensions/config/config-writer.ts +0 -480
  237. package/node_modules/@luxusai/pi-hindsight/extensions/config/config.ts +0 -182
  238. package/node_modules/@luxusai/pi-hindsight/extensions/config/setup-gate.ts +0 -86
  239. package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-execute.ts +0 -1010
  240. package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-parse.ts +0 -175
  241. package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-plan.ts +0 -425
  242. package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-presentation.ts +0 -210
  243. package/node_modules/@luxusai/pi-hindsight/extensions/imports/import-sessions.ts +0 -817
  244. package/node_modules/@luxusai/pi-hindsight/extensions/index.ts +0 -25
  245. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/git-seed.ts +0 -319
  246. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-recall.ts +0 -196
  247. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-retain.ts +0 -189
  248. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle-runtime.ts +0 -65
  249. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/memory-lifecycle.ts +0 -260
  250. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/mental-models.ts +0 -244
  251. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/observation-scopes.ts +0 -59
  252. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall-cleanup.ts +0 -82
  253. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall-visibility.ts +0 -45
  254. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/recall.ts +0 -331
  255. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-cursor.ts +0 -354
  256. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-job-builder.ts +0 -66
  257. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain-receipts.ts +0 -132
  258. package/node_modules/@luxusai/pi-hindsight/extensions/lifecycle/retain.ts +0 -228
  259. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-bank-template-operations.ts +0 -74
  260. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-config-operations.ts +0 -16
  261. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-control-operations.ts +0 -648
  262. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-diagnostics-operations.ts +0 -105
  263. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-identity.ts +0 -68
  264. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-operation-service.ts +0 -71
  265. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-operation-types.ts +0 -13
  266. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-recall-operations.ts +0 -162
  267. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-retain-operations.ts +0 -131
  268. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-scope.ts +0 -104
  269. package/node_modules/@luxusai/pi-hindsight/extensions/operations/memory-session-operations.ts +0 -37
  270. package/node_modules/@luxusai/pi-hindsight/extensions/operations/operation-catalog.ts +0 -893
  271. package/node_modules/@luxusai/pi-hindsight/extensions/operations/reflect-presenter.ts +0 -35
  272. package/node_modules/@luxusai/pi-hindsight/extensions/operations/scope-migrate.ts +0 -177
  273. package/node_modules/@luxusai/pi-hindsight/extensions/operations/tools.ts +0 -7
  274. package/node_modules/@luxusai/pi-hindsight/extensions/queue/flush-presenter.ts +0 -21
  275. package/node_modules/@luxusai/pi-hindsight/extensions/queue/jsonl-queue-store.ts +0 -112
  276. package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-delivery.ts +0 -111
  277. package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-lock.ts +0 -214
  278. package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue-operations.ts +0 -70
  279. package/node_modules/@luxusai/pi-hindsight/extensions/queue/queue.ts +0 -392
  280. package/node_modules/@luxusai/pi-hindsight/extensions/tui/bank-template-presentation.ts +0 -45
  281. package/node_modules/@luxusai/pi-hindsight/extensions/tui/commands.ts +0 -9
  282. package/node_modules/@luxusai/pi-hindsight/extensions/tui/guided-setup.ts +0 -860
  283. package/node_modules/@luxusai/pi-hindsight/extensions/tui/prefill-input.ts +0 -105
  284. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-flow.ts +0 -189
  285. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-server-probe.ts +0 -299
  286. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-actions.ts +0 -201
  287. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-facts.ts +0 -47
  288. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-render.ts +0 -239
  289. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui-types.ts +0 -50
  290. package/node_modules/@luxusai/pi-hindsight/extensions/tui/setup-tui.ts +0 -259
  291. package/node_modules/@luxusai/pi-hindsight/extensions/tui/tool-presenters.ts +0 -77
  292. package/node_modules/@luxusai/pi-hindsight/extensions/types.ts +0 -534
  293. package/node_modules/@luxusai/pi-hindsight/extensions/utils/diagnostics.ts +0 -319
  294. package/node_modules/@luxusai/pi-hindsight/extensions/utils/messages.ts +0 -325
  295. package/node_modules/@luxusai/pi-hindsight/extensions/utils/sanitize.ts +0 -42
  296. package/node_modules/@luxusai/pi-hindsight/extensions/utils/session-memory-meta.ts +0 -244
  297. package/node_modules/@luxusai/pi-hindsight/extensions/utils/session-operations.ts +0 -56
  298. package/node_modules/@luxusai/pi-hindsight/extensions/utils/session.ts +0 -50
  299. package/node_modules/@luxusai/pi-hindsight/extensions/utils/status-fields.ts +0 -167
  300. package/node_modules/@luxusai/pi-hindsight/extensions/utils/status-health.ts +0 -207
  301. package/node_modules/@luxusai/pi-hindsight/extensions/utils/status.ts +0 -120
  302. package/node_modules/@luxusai/pi-hindsight/extensions/version.ts +0 -8
  303. package/node_modules/@luxusai/pi-hindsight/package.json +0 -118
  304. package/node_modules/@luxusai/pi-hindsight/skills/hindsight-memory-doctor/SKILL.md +0 -75
@@ -1,259 +0,0 @@
1
- import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
2
- import { redactError } from "../utils/sanitize.js";
3
- import type { FieldId } from "../config/config-editing-model.js";
4
- import {
5
- createMemoryOperations,
6
- type MemoryOperationsDeps,
7
- } from "../operations/memory-operation-service.js";
8
- import {
9
- flushRetainQueueNotifyLevel,
10
- formatFlushRetainQueueResult,
11
- } from "../queue/flush-presenter.js";
12
- import { defaultTemplateIdFor, listBankTemplatesForAgentUse } from "../banks/bank-templates.js";
13
- import {
14
- buildIgnoreRepoPatch,
15
- hasProjectHindsightConfig,
16
- maybeOfferHistoricalImportForSetup,
17
- runGuidedSetup,
18
- } from "./guided-setup.js";
19
- import {
20
- renderBankTemplateApplyResult,
21
- renderBankTemplateMentalModelDetails,
22
- } from "./bank-template-presentation.js";
23
- import { buildSetupTabs } from "./setup-tui-facts.js";
24
- import { createSetupComponent } from "./setup-tui-render.js";
25
- import { handleDeployment, handleFieldEdit, handleResetFieldAction } from "./setup-tui-actions.js";
26
- import type { SetupActionId, SetupUiState, ThemeLike } from "./setup-tui-types.js";
27
- import { CANCEL } from "./setup-tui-types.js";
28
- import type { SessionMemoryMode } from "../utils/session-memory-meta.js";
29
- import { getSessionFile } from "../utils/session.js";
30
-
31
- export { buildRetainReceiptStatusFacts, createSetupComponent } from "./setup-tui-render.js";
32
- export {
33
- applySetupIntent,
34
- currentSetupTab,
35
- normalizeSetupUiState,
36
- selectedSetupField,
37
- selectedSetupIndex,
38
- setupIntentFromInput,
39
- } from "./setup-flow.js";
40
- export type { SetupIntent, SetupResult } from "./setup-flow.js";
41
- export type {
42
- SetupActionId,
43
- SetupProfileChoice,
44
- SetupStep,
45
- SetupUiState,
46
- ThemeLike,
47
- } from "./setup-tui-types.js";
48
-
49
- async function showSetupTui(
50
- ctx: ExtensionCommandContext,
51
- deps: MemoryOperationsDeps,
52
- state: SetupUiState,
53
- ): Promise<SetupActionId | null> {
54
- const config = deps.getConfig();
55
- const projectBankId = deps.getProjectBankId();
56
- const tabs = await buildSetupTabs({ ctx, config, projectBankId, deps, state });
57
- return ctx.ui.custom<SetupActionId | null>((tui, theme, _keybindings, done) => {
58
- const component = createSetupComponent(tabs, theme as ThemeLike, state, done);
59
- return {
60
- render: (width: number) => component.render(width),
61
- invalidate: () => component.invalidate(),
62
- handleInput: (data: string) => {
63
- component.handleInput?.(data);
64
- tui.requestRender();
65
- },
66
- };
67
- });
68
- }
69
-
70
- async function handleSetMode(
71
- ctx: ExtensionCommandContext,
72
- deps: MemoryOperationsDeps,
73
- ): Promise<void> {
74
- const choice = await ctx.ui.select("Session memory mode", [
75
- "normal",
76
- "read-only",
77
- "ignored",
78
- CANCEL,
79
- ]);
80
- if (!choice || choice === CANCEL) return;
81
- const sessionFile = getSessionFile(ctx);
82
- const result = await createMemoryOperations(deps).setSessionMode(
83
- ctx.cwd,
84
- sessionFile,
85
- choice as SessionMemoryMode,
86
- );
87
- ctx.ui.notify(`Session memory mode: ${result.meta.mode}`, "info");
88
- }
89
-
90
- async function handleNextOptOut(
91
- ctx: ExtensionCommandContext,
92
- deps: MemoryOperationsDeps,
93
- ): Promise<void> {
94
- const sessionFile = getSessionFile(ctx);
95
- const result = await createMemoryOperations(deps).setNextRetainOff(ctx.cwd, sessionFile);
96
- ctx.ui.notify(
97
- `Hindsight will skip automatic retain for the next agent run. nextRetain=${result.meta.nextRetainMode}`,
98
- "info",
99
- );
100
- }
101
-
102
- async function handleApplyMentalModels(
103
- ctx: ExtensionCommandContext,
104
- deps: MemoryOperationsDeps,
105
- ): Promise<void> {
106
- const operations = createMemoryOperations(deps);
107
- const config = deps.getConfig();
108
- const templates = [...listBankTemplatesForAgentUse(config.agentUse)];
109
- const labels = templates.map(
110
- (template) => `${template.id} — ${template.label} (${template.target})`,
111
- );
112
- const choice = await ctx.ui.select(`Mental model sets for agent use “${config.agentUse}”`, [
113
- ...labels,
114
- CANCEL,
115
- ]);
116
- if (!choice || choice === CANCEL) return;
117
- const index = labels.indexOf(choice);
118
- const template = index >= 0 ? templates[index] : undefined;
119
- if (!template) {
120
- ctx.ui.notify(`Unknown template selection: ${choice}`, "warning");
121
- return;
122
- }
123
- const dryRun = await operations.applyBankTemplate({ templateId: template.id, dryRun: true });
124
- const details = renderBankTemplateMentalModelDetails(dryRun.template);
125
- const confirmed = await ctx.ui.confirm(
126
- `Apply ${template.id} to ${dryRun.bankId}?`,
127
- `${details ? `${details}\n\n` : ""}${renderBankTemplateApplyResult(dryRun)}\n\nThis writes bank config and creates/updates mental models. Continue?`,
128
- );
129
- if (!confirmed) return;
130
- const applied = await operations.applyBankTemplate({ templateId: template.id, dryRun: false });
131
- ctx.ui.notify(renderBankTemplateApplyResult(applied), "info");
132
- }
133
-
134
- async function handleImportSessions(
135
- ctx: ExtensionCommandContext,
136
- deps: MemoryOperationsDeps,
137
- ): Promise<void> {
138
- const config = deps.getConfig();
139
- const setupProfile = config.banks.project.enabled
140
- ? config.banks.user.enabled
141
- ? "project-user"
142
- : "project-only"
143
- : config.banks.user.enabled
144
- ? "user-only"
145
- : "recall-only";
146
- await maybeOfferHistoricalImportForSetup({
147
- ctx,
148
- operations: createMemoryOperations(deps),
149
- setupProfile,
150
- cwd: ctx.cwd,
151
- projectBankId: deps.getProjectBankId(),
152
- ...(config.banks.user.bankId ? { globalBankId: config.banks.user.bankId } : {}),
153
- });
154
- }
155
-
156
- async function handleDoctor(
157
- ctx: ExtensionCommandContext,
158
- deps: MemoryOperationsDeps,
159
- ): Promise<void> {
160
- const sessionFile = getSessionFile(ctx);
161
- const report = await createMemoryOperations(deps).doctor(ctx.cwd, sessionFile);
162
- ctx.ui.notify(report, "info");
163
- }
164
-
165
- async function handleInitConfig(
166
- ctx: ExtensionCommandContext,
167
- deps: MemoryOperationsDeps,
168
- ): Promise<void> {
169
- const result = await createMemoryOperations(deps).init(ctx.cwd);
170
- ctx.ui.notify(
171
- `Wrote ${result.path}; project bank ${result.projectBankId}. Mental models: apply from hub (t).`,
172
- "info",
173
- );
174
- }
175
-
176
- async function handleIgnoreRepo(
177
- ctx: ExtensionCommandContext,
178
- deps: MemoryOperationsDeps,
179
- ): Promise<boolean> {
180
- const confirmed = await ctx.ui.confirm(
181
- "Ignore Hindsight in this repo?",
182
- "Writes project config with enabled=false, setupComplete=true, and status.style=off. Automatic memory, status bar, and tool calls stay off; /hindsight remains available to re-enable.",
183
- );
184
- if (!confirmed) return false;
185
- const result = await createMemoryOperations(deps).configure(ctx.cwd, buildIgnoreRepoPatch());
186
- try {
187
- ctx.ui.setStatus?.("hindsight", undefined);
188
- } catch {
189
- // Best effort; some hosts may not expose setStatus on command UI.
190
- }
191
- ctx.ui.notify(
192
- `Wrote ${result.path}: Hindsight disabled for this repo (enabled=false, status.style=off). Tools refuse calls until re-enabled via /hindsight.`,
193
- "info",
194
- );
195
- return true;
196
- }
197
-
198
- export async function runHindsightSetupTui(
199
- ctx: ExtensionCommandContext,
200
- deps: MemoryOperationsDeps,
201
- ): Promise<void> {
202
- const state: SetupUiState = { tabIndex: 0, selectedByTab: {} };
203
- if (!hasProjectHindsightConfig(ctx.cwd)) {
204
- const choice = await ctx.ui.select("No project Hindsight config found", [
205
- "Guided setup",
206
- "Open hub",
207
- "Ignore this repo",
208
- "Skip for now",
209
- ]);
210
- if (choice === "Guided setup") await runGuidedSetup({ ctx, deps, cwd: ctx.cwd });
211
- else if (choice === "Ignore this repo") {
212
- await handleIgnoreRepo(ctx, deps);
213
- return;
214
- } else if (choice === "Skip for now" || !choice) return;
215
- }
216
- while (true) {
217
- const config = deps.getConfig();
218
- const projectBankId = deps.getProjectBankId();
219
- const action = await showSetupTui(ctx, deps, state);
220
- if (!action || action === "done") return;
221
- try {
222
- if (action === "choose-deployment") await handleDeployment(ctx, deps, config);
223
- else if (action === "guided-setup") await runGuidedSetup({ ctx, deps, cwd: ctx.cwd });
224
- else if (action === "flush-queue") {
225
- const result = await createMemoryOperations(deps).flush(ctx.cwd);
226
- ctx.ui.notify(formatFlushRetainQueueResult(result), flushRetainQueueNotifyLevel(result));
227
- } else if (action === "set-mode") await handleSetMode(ctx, deps);
228
- else if (action === "next-opt-out") await handleNextOptOut(ctx, deps);
229
- else if (action === "apply-mental-models") await handleApplyMentalModels(ctx, deps);
230
- else if (action === "import-sessions") await handleImportSessions(ctx, deps);
231
- else if (action === "run-doctor") await handleDoctor(ctx, deps);
232
- else if (action === "init-config") await handleInitConfig(ctx, deps);
233
- else if (action === "toggle-advanced") {
234
- state.showAdvanced = !state.showAdvanced;
235
- state.selectedByTab = {};
236
- state.tabIndex = 0;
237
- } else if (action.startsWith("reset:")) {
238
- await handleResetFieldAction({
239
- ctx,
240
- deps,
241
- config,
242
- projectBankId,
243
- fieldId: action.slice("reset:".length) as FieldId,
244
- });
245
- } else
246
- await handleFieldEdit({ fieldId: action as FieldId, ctx, deps, config, projectBankId });
247
- } catch (error) {
248
- ctx.ui.notify(redactError(error), "error");
249
- }
250
- }
251
- }
252
-
253
- /** Shared helper for guided setup: default template id for active agent use. */
254
- export function guidedMentalModelTemplateId(
255
- target: "project" | "user",
256
- agentUse: "coding" | "conversation",
257
- ): string {
258
- return defaultTemplateIdFor(target, agentUse);
259
- }
@@ -1,77 +0,0 @@
1
- import { keyText, type Theme, type ToolRenderResultOptions } from "@earendil-works/pi-coding-agent";
2
- import { Text } from "@earendil-works/pi-tui";
3
- import type { MemoryOperations } from "../operations/memory-operation-service.js";
4
-
5
- type ToolTextResponse<Details> = {
6
- content: Array<{ type: "text"; text: string }>;
7
- details: Details;
8
- };
9
-
10
- type ToolTextContent = { type: string; text?: string };
11
-
12
- export const DEFAULT_COLLAPSED_TOOL_RESULT_LINES = 12;
13
-
14
- export type NormalizedToolText = {
15
- text: string;
16
- hiddenLineCount: number;
17
- totalLineCount: number;
18
- canFold: boolean;
19
- };
20
-
21
- export type RetainToolResult = Awaited<ReturnType<MemoryOperations["retainExplicit"]>>;
22
-
23
- export function normalizeToolResultText(
24
- text: string,
25
- expanded: boolean,
26
- maxLines = DEFAULT_COLLAPSED_TOOL_RESULT_LINES,
27
- ): NormalizedToolText {
28
- const lines = text.split("\n");
29
- const canFold = lines.length > maxLines;
30
- const hiddenLineCount = canFold && !expanded ? lines.length - maxLines : 0;
31
- return {
32
- text: hiddenLineCount > 0 ? lines.slice(0, maxLines).join("\n") : text,
33
- hiddenLineCount,
34
- totalLineCount: lines.length,
35
- canFold,
36
- };
37
- }
38
-
39
- function renderFoldHint(normalized: NormalizedToolText, theme: Theme) {
40
- if (!normalized.canFold) return "";
41
- if (normalized.hiddenLineCount > 0) {
42
- const plural = normalized.hiddenLineCount === 1 ? "" : "s";
43
- return `\n${theme.fg("muted", `... ${normalized.hiddenLineCount} more line${plural} (`)}${theme.fg(
44
- "dim",
45
- keyText("app.tools.expand"),
46
- )}${theme.fg("muted", " to expand)")}`;
47
- }
48
- return `\n${theme.fg("muted", "(")}${theme.fg("dim", keyText("app.tools.expand"))}${theme.fg(
49
- "muted",
50
- " to collapse)",
51
- )}`;
52
- }
53
-
54
- export function renderMemoryToolTextResult(
55
- result: { content: ToolTextContent[] },
56
- options: Pick<ToolRenderResultOptions, "expanded">,
57
- theme: Theme,
58
- ) {
59
- const rawText = result.content.find((part) => part.type === "text")?.text ?? "";
60
- const normalized = normalizeToolResultText(rawText, options.expanded);
61
- const text = normalized.text || theme.fg("dim", "(no text output)");
62
- return new Text(`${text}${renderFoldHint(normalized, theme)}`, 0, 0);
63
- }
64
-
65
- export function retainToolResponse(result: RetainToolResult): ToolTextResponse<RetainToolResult> {
66
- const deadLetterStatus = result.deadLettered
67
- ? ` ${result.deadLettered} job${result.deadLettered === 1 ? "" : "s"} moved to dead-letter queue; run /hindsight to inspect.`
68
- : "";
69
- const text =
70
- result.remaining > 0
71
- ? `Queued for ${result.bankId}; ${result.remaining} job${result.remaining === 1 ? "" : "s"} pending.${deadLetterStatus}`
72
- : `Retained in ${result.bankId} as ${result.documentId}.${deadLetterStatus}`;
73
- const operationText = result.operationIds?.length
74
- ? ` Operation IDs: ${result.operationIds.join(", ")}.`
75
- : "";
76
- return { content: [{ type: "text", text: `${text}${operationText}` }], details: result };
77
- }