@oh-my-pi/pi-coding-agent 15.5.15 → 15.7.0

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 (274) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/dist/types/capability/rule-buckets.d.ts +30 -0
  3. package/dist/types/capability/rule.d.ts +7 -0
  4. package/dist/types/cli/classify-install-target.d.ts +0 -10
  5. package/dist/types/cli/completion-gen.d.ts +80 -0
  6. package/dist/types/cli/initial-message.d.ts +1 -1
  7. package/dist/types/cli/tiny-models-cli.d.ts +9 -0
  8. package/dist/types/commands/complete.d.ts +6 -0
  9. package/dist/types/commands/completions.d.ts +13 -0
  10. package/dist/types/commands/setup.d.ts +10 -1
  11. package/dist/types/commands/tiny-models.d.ts +22 -0
  12. package/dist/types/commit/analysis/conventional.d.ts +1 -1
  13. package/dist/types/commit/analysis/summary.d.ts +1 -1
  14. package/dist/types/commit/changelog/generate.d.ts +1 -1
  15. package/dist/types/commit/changelog/index.d.ts +2 -2
  16. package/dist/types/commit/map-reduce/map-phase.d.ts +1 -1
  17. package/dist/types/commit/map-reduce/reduce-phase.d.ts +1 -1
  18. package/dist/types/config/model-id-affixes.d.ts +10 -0
  19. package/dist/types/config/settings-schema.d.ts +402 -17
  20. package/dist/types/discovery/builtin-defaults.d.ts +1 -0
  21. package/dist/types/discovery/builtin-rules/index.d.ts +7 -0
  22. package/dist/types/discovery/helpers.d.ts +1 -1
  23. package/dist/types/discovery/index.d.ts +1 -0
  24. package/dist/types/discovery/substitute-plugin-root.d.ts +0 -4
  25. package/dist/types/edit/hashline/block-resolver.d.ts +9 -0
  26. package/dist/types/edit/hashline/index.d.ts +1 -0
  27. package/dist/types/eval/js/shared/rewrite-imports.d.ts +16 -1
  28. package/dist/types/eval/py/kernel.d.ts +3 -0
  29. package/dist/types/eval/py/runtime.d.ts +11 -1
  30. package/dist/types/export/html/template.generated.d.ts +1 -1
  31. package/dist/types/internal-urls/agent-protocol.d.ts +2 -1
  32. package/dist/types/internal-urls/artifact-protocol.d.ts +2 -1
  33. package/dist/types/internal-urls/local-protocol.d.ts +2 -1
  34. package/dist/types/internal-urls/memory-protocol.d.ts +2 -1
  35. package/dist/types/internal-urls/omp-protocol.d.ts +2 -1
  36. package/dist/types/internal-urls/router.d.ts +8 -1
  37. package/dist/types/internal-urls/rule-protocol.d.ts +2 -1
  38. package/dist/types/internal-urls/skill-protocol.d.ts +2 -1
  39. package/dist/types/internal-urls/types.d.ts +26 -0
  40. package/dist/types/main.d.ts +1 -0
  41. package/dist/types/memory-backend/index.d.ts +1 -0
  42. package/dist/types/memory-backend/resolve.d.ts +2 -1
  43. package/dist/types/memory-backend/types.d.ts +7 -1
  44. package/dist/types/mnemosyne/backend.d.ts +4 -0
  45. package/dist/types/mnemosyne/config.d.ts +29 -0
  46. package/dist/types/mnemosyne/index.d.ts +3 -0
  47. package/dist/types/mnemosyne/state.d.ts +72 -0
  48. package/dist/types/modes/components/custom-editor.d.ts +2 -3
  49. package/dist/types/modes/components/hook-selector.d.ts +27 -0
  50. package/dist/types/modes/components/index.d.ts +2 -0
  51. package/dist/types/modes/components/segment-track.d.ts +22 -0
  52. package/dist/types/modes/components/status-line/context-thresholds.d.ts +6 -0
  53. package/dist/types/modes/components/tiny-title-download-progress.d.ts +11 -0
  54. package/dist/types/modes/components/welcome.d.ts +22 -0
  55. package/dist/types/modes/controllers/extension-ui-controller.d.ts +4 -1
  56. package/dist/types/modes/gradient-highlight.d.ts +23 -0
  57. package/dist/types/modes/interactive-mode.d.ts +7 -4
  58. package/dist/types/modes/internal-url-autocomplete.d.ts +43 -0
  59. package/dist/types/modes/orchestrate.d.ts +10 -0
  60. package/dist/types/modes/setup-wizard/index.d.ts +16 -0
  61. package/dist/types/modes/setup-wizard/scenes/glyph.d.ts +2 -0
  62. package/dist/types/modes/setup-wizard/scenes/outro.d.ts +2 -0
  63. package/dist/types/modes/setup-wizard/scenes/providers.d.ts +2 -0
  64. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +19 -0
  65. package/dist/types/modes/setup-wizard/scenes/splash.d.ts +11 -0
  66. package/dist/types/modes/setup-wizard/scenes/theme.d.ts +2 -0
  67. package/dist/types/modes/setup-wizard/scenes/types.d.ts +43 -0
  68. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +19 -0
  69. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +14 -0
  70. package/dist/types/modes/theme/defaults/index.d.ts +8406 -8406
  71. package/dist/types/modes/theme/shimmer.d.ts +2 -0
  72. package/dist/types/modes/theme/theme.d.ts +11 -0
  73. package/dist/types/modes/types.d.ts +5 -1
  74. package/dist/types/modes/ultrathink.d.ts +3 -3
  75. package/dist/types/modes/utils/keybinding-matchers.d.ts +5 -0
  76. package/dist/types/sdk.d.ts +3 -0
  77. package/dist/types/session/agent-session.d.ts +33 -0
  78. package/dist/types/system-prompt.d.ts +2 -0
  79. package/dist/types/task/executor.d.ts +2 -0
  80. package/dist/types/task/render.d.ts +5 -1
  81. package/dist/types/tiny/device.d.ts +78 -0
  82. package/dist/types/tiny/dtype.d.ts +85 -0
  83. package/dist/types/tiny/models.d.ts +185 -0
  84. package/dist/types/tiny/text.d.ts +19 -0
  85. package/dist/types/tiny/title-client.d.ts +32 -0
  86. package/dist/types/tiny/title-protocol.d.ts +74 -0
  87. package/dist/types/tiny/worker.d.ts +2 -0
  88. package/dist/types/tools/bash.d.ts +3 -2
  89. package/dist/types/tools/eval.d.ts +1 -1
  90. package/dist/types/tools/index.d.ts +7 -4
  91. package/dist/types/tools/memory-edit.d.ts +40 -0
  92. package/dist/types/tools/{hindsight-recall.d.ts → memory-recall.d.ts} +6 -6
  93. package/dist/types/tools/{hindsight-reflect.d.ts → memory-reflect.d.ts} +6 -6
  94. package/dist/types/tools/memory-render.d.ts +60 -0
  95. package/dist/types/tools/{hindsight-retain.d.ts → memory-retain.d.ts} +6 -6
  96. package/dist/types/tools/todo-write.d.ts +8 -0
  97. package/dist/types/tools/tool-result.d.ts +2 -0
  98. package/dist/types/tui/code-cell.d.ts +2 -0
  99. package/dist/types/tui/output-block.d.ts +17 -0
  100. package/dist/types/utils/title-generator.d.ts +3 -0
  101. package/package.json +18 -14
  102. package/scripts/build-binary.ts +1 -0
  103. package/src/capability/rule-buckets.ts +64 -0
  104. package/src/capability/rule.ts +8 -0
  105. package/src/cli/completion-gen.ts +550 -0
  106. package/src/cli/setup-cli.ts +5 -3
  107. package/src/cli/tiny-models-cli.ts +127 -0
  108. package/src/cli-commands.ts +3 -0
  109. package/src/cli.ts +9 -15
  110. package/src/commands/complete.ts +66 -0
  111. package/src/commands/completions.ts +60 -0
  112. package/src/commands/setup.ts +29 -4
  113. package/src/commands/tiny-models.ts +36 -0
  114. package/src/config/model-equivalence.ts +43 -2
  115. package/src/config/model-id-affixes.ts +64 -0
  116. package/src/config/model-registry.ts +84 -10
  117. package/src/config/settings-schema.ts +275 -15
  118. package/src/discovery/builtin-defaults.ts +39 -0
  119. package/src/discovery/builtin-rules/index.ts +48 -0
  120. package/src/discovery/builtin-rules/rs-box-leak.md +48 -0
  121. package/src/discovery/builtin-rules/rs-future-prelude.md +23 -0
  122. package/src/discovery/builtin-rules/rs-lazylock.md +51 -0
  123. package/src/discovery/builtin-rules/rs-match-ergonomics.md +67 -0
  124. package/src/discovery/builtin-rules/rs-parking-lot.md +44 -0
  125. package/src/discovery/builtin-rules/rs-result-type.md +19 -0
  126. package/src/discovery/builtin-rules/ts-bare-catch.md +38 -0
  127. package/src/discovery/builtin-rules/ts-import-type.md +42 -0
  128. package/src/discovery/builtin-rules/ts-no-any.md +56 -0
  129. package/src/discovery/builtin-rules/ts-no-dynamic-import.md +39 -0
  130. package/src/discovery/builtin-rules/ts-no-return-type.md +45 -0
  131. package/src/discovery/builtin-rules/ts-no-tiny-functions.md +50 -0
  132. package/src/discovery/builtin-rules/ts-promise-with-resolvers.md +65 -0
  133. package/src/discovery/builtin-rules/ts-set-map.md +28 -0
  134. package/src/discovery/index.ts +1 -0
  135. package/src/edit/hashline/block-resolver.ts +14 -0
  136. package/src/edit/hashline/diff.ts +9 -8
  137. package/src/edit/hashline/execute.ts +2 -1
  138. package/src/edit/hashline/index.ts +1 -0
  139. package/src/eval/__tests__/shared-executors.test.ts +36 -0
  140. package/src/eval/js/shared/local-module-loader.ts +13 -1
  141. package/src/eval/js/shared/rewrite-imports.ts +31 -26
  142. package/src/eval/py/kernel.ts +37 -15
  143. package/src/eval/py/runtime.ts +57 -28
  144. package/src/export/html/template.generated.ts +1 -1
  145. package/src/export/html/template.js +0 -12
  146. package/src/export/ttsr.ts +2 -0
  147. package/src/internal-urls/agent-protocol.ts +18 -1
  148. package/src/internal-urls/artifact-protocol.ts +19 -1
  149. package/src/internal-urls/docs-index.generated.ts +8 -7
  150. package/src/internal-urls/local-protocol.ts +14 -1
  151. package/src/internal-urls/memory-protocol.ts +6 -1
  152. package/src/internal-urls/omp-protocol.ts +5 -1
  153. package/src/internal-urls/router.ts +20 -1
  154. package/src/internal-urls/rule-protocol.ts +8 -1
  155. package/src/internal-urls/skill-protocol.ts +8 -1
  156. package/src/internal-urls/types.ts +27 -0
  157. package/src/lsp/render.ts +1 -1
  158. package/src/main.ts +18 -1
  159. package/src/mcp/oauth-flow.ts +2 -2
  160. package/src/memory-backend/index.ts +1 -0
  161. package/src/memory-backend/resolve.ts +4 -1
  162. package/src/memory-backend/types.ts +8 -1
  163. package/src/mnemosyne/backend.ts +374 -0
  164. package/src/mnemosyne/config.ts +160 -0
  165. package/src/mnemosyne/index.ts +3 -0
  166. package/src/mnemosyne/state.ts +548 -0
  167. package/src/modes/acp/acp-agent.ts +11 -6
  168. package/src/modes/components/agent-dashboard.ts +4 -4
  169. package/src/modes/components/custom-editor.ts +3 -2
  170. package/src/modes/components/diff.ts +2 -2
  171. package/src/modes/components/extensions/extension-list.ts +3 -2
  172. package/src/modes/components/footer.ts +5 -6
  173. package/src/modes/components/history-search.ts +3 -3
  174. package/src/modes/components/hook-selector.ts +92 -8
  175. package/src/modes/components/index.ts +2 -0
  176. package/src/modes/components/mcp-add-wizard.ts +3 -3
  177. package/src/modes/components/model-selector.ts +5 -4
  178. package/src/modes/components/oauth-selector.ts +3 -3
  179. package/src/modes/components/segment-track.ts +52 -0
  180. package/src/modes/components/session-observer-overlay.ts +19 -13
  181. package/src/modes/components/session-selector.ts +3 -3
  182. package/src/modes/components/settings-defs.ts +7 -0
  183. package/src/modes/components/status-line/context-thresholds.ts +11 -0
  184. package/src/modes/components/status-line/segments.ts +2 -2
  185. package/src/modes/components/tiny-title-download-progress.ts +90 -0
  186. package/src/modes/components/tips.txt +13 -0
  187. package/src/modes/components/tool-execution.ts +72 -4
  188. package/src/modes/components/tree-selector.ts +3 -3
  189. package/src/modes/components/user-message-selector.ts +3 -3
  190. package/src/modes/components/welcome.ts +102 -43
  191. package/src/modes/controllers/command-controller.ts +16 -1
  192. package/src/modes/controllers/extension-ui-controller.ts +3 -1
  193. package/src/modes/controllers/input-controller.ts +69 -21
  194. package/src/modes/gradient-highlight.ts +70 -0
  195. package/src/modes/interactive-mode.ts +75 -114
  196. package/src/modes/internal-url-autocomplete.ts +143 -0
  197. package/src/modes/orchestrate.ts +36 -0
  198. package/src/modes/prompt-action-autocomplete.ts +12 -0
  199. package/src/modes/setup-wizard/index.ts +88 -0
  200. package/src/modes/setup-wizard/scenes/glyph.ts +96 -0
  201. package/src/modes/setup-wizard/scenes/outro.ts +35 -0
  202. package/src/modes/setup-wizard/scenes/providers.ts +69 -0
  203. package/src/modes/setup-wizard/scenes/sign-in.ts +193 -0
  204. package/src/modes/setup-wizard/scenes/splash.ts +201 -0
  205. package/src/modes/setup-wizard/scenes/theme.ts +299 -0
  206. package/src/modes/setup-wizard/scenes/types.ts +48 -0
  207. package/src/modes/setup-wizard/scenes/web-search.ts +128 -0
  208. package/src/modes/setup-wizard/wizard-overlay.ts +275 -0
  209. package/src/modes/theme/shimmer.ts +5 -0
  210. package/src/modes/theme/theme.ts +44 -20
  211. package/src/modes/types.ts +6 -1
  212. package/src/modes/ultrathink.ts +9 -53
  213. package/src/modes/utils/keybinding-matchers.ts +11 -0
  214. package/src/prompts/system/memory-consolidation-system.md +8 -0
  215. package/src/prompts/system/memory-extraction-system.md +26 -0
  216. package/src/prompts/{commands/orchestrate.md → system/orchestrate-notice.md} +6 -17
  217. package/src/prompts/system/system-prompt.md +2 -0
  218. package/src/prompts/system/tiny-title-system.md +8 -0
  219. package/src/prompts/tools/memory-edit.md +8 -0
  220. package/src/prompts/tools/read.md +4 -0
  221. package/src/prompts/tools/task.md +4 -7
  222. package/src/sdk.ts +13 -21
  223. package/src/session/agent-session.ts +128 -44
  224. package/src/slash-commands/builtin-registry.ts +18 -1
  225. package/src/system-prompt.ts +4 -0
  226. package/src/task/commands.ts +1 -5
  227. package/src/task/executor.ts +8 -0
  228. package/src/task/index.ts +2 -0
  229. package/src/task/render.ts +69 -26
  230. package/src/tiny/device.ts +117 -0
  231. package/src/tiny/dtype.ts +101 -0
  232. package/src/tiny/models.ts +218 -0
  233. package/src/tiny/text.ts +54 -0
  234. package/src/tiny/title-client.ts +395 -0
  235. package/src/tiny/title-protocol.ts +51 -0
  236. package/src/tiny/worker.ts +587 -0
  237. package/src/tools/bash.ts +74 -29
  238. package/src/tools/browser/tab-worker.ts +1 -1
  239. package/src/tools/eval.ts +9 -4
  240. package/src/tools/index.ts +17 -22
  241. package/src/tools/memory-edit.ts +59 -0
  242. package/src/tools/memory-recall.ts +100 -0
  243. package/src/tools/memory-reflect.ts +88 -0
  244. package/src/tools/memory-render.ts +185 -0
  245. package/src/tools/memory-retain.ts +91 -0
  246. package/src/tools/read.ts +1 -0
  247. package/src/tools/renderers.ts +4 -2
  248. package/src/tools/todo-write.ts +128 -29
  249. package/src/tools/tool-result.ts +8 -0
  250. package/src/tui/code-cell.ts +6 -1
  251. package/src/tui/output-block.ts +199 -38
  252. package/src/utils/title-generator.ts +115 -13
  253. package/dist/types/tools/recipe/index.d.ts +0 -46
  254. package/dist/types/tools/recipe/render.d.ts +0 -36
  255. package/dist/types/tools/recipe/runner.d.ts +0 -60
  256. package/dist/types/tools/recipe/runners/cargo.d.ts +0 -16
  257. package/dist/types/tools/recipe/runners/index.d.ts +0 -2
  258. package/dist/types/tools/recipe/runners/just.d.ts +0 -2
  259. package/dist/types/tools/recipe/runners/make.d.ts +0 -2
  260. package/dist/types/tools/recipe/runners/pkg.d.ts +0 -2
  261. package/dist/types/tools/recipe/runners/task.d.ts +0 -2
  262. package/src/prompts/tools/recipe.md +0 -16
  263. package/src/tools/hindsight-recall.ts +0 -69
  264. package/src/tools/hindsight-reflect.ts +0 -58
  265. package/src/tools/hindsight-retain.ts +0 -57
  266. package/src/tools/recipe/index.ts +0 -81
  267. package/src/tools/recipe/render.ts +0 -19
  268. package/src/tools/recipe/runner.ts +0 -219
  269. package/src/tools/recipe/runners/cargo.ts +0 -131
  270. package/src/tools/recipe/runners/index.ts +0 -8
  271. package/src/tools/recipe/runners/just.ts +0 -73
  272. package/src/tools/recipe/runners/make.ts +0 -101
  273. package/src/tools/recipe/runners/pkg.ts +0 -167
  274. package/src/tools/recipe/runners/task.ts +0 -72
@@ -105,6 +105,10 @@ export declare const SETTINGS_SCHEMA: {
105
105
  readonly type: "string";
106
106
  readonly default: undefined;
107
107
  };
108
+ readonly setupVersion: {
109
+ readonly type: "number";
110
+ readonly default: 0;
111
+ };
108
112
  readonly "auth.broker.url": {
109
113
  readonly type: "string";
110
114
  readonly default: undefined;
@@ -462,7 +466,7 @@ export declare const SETTINGS_SCHEMA: {
462
466
  readonly ui: {
463
467
  readonly tab: "tools";
464
468
  readonly label: "Artifact head size (KB)";
465
- readonly description: "Amount of head content kept inline alongside the tail when output spills to artifact (middle elision). 0 disables \u2014 keep tail only.";
469
+ readonly description: "Amount of head content kept inline alongside the tail when output spills to artifact (middle elision). 0 disables keep tail only.";
466
470
  readonly options: readonly [{
467
471
  readonly value: "0";
468
472
  readonly label: "0 KB";
@@ -1142,6 +1146,15 @@ export declare const SETTINGS_SCHEMA: {
1142
1146
  readonly description: "Skip welcome screen and startup status messages";
1143
1147
  };
1144
1148
  };
1149
+ readonly "startup.setupWizard": {
1150
+ readonly type: "boolean";
1151
+ readonly default: true;
1152
+ readonly ui: {
1153
+ readonly tab: "interaction";
1154
+ readonly label: "Setup Wizard";
1155
+ readonly description: "Show newly added onboarding steps once per setup version";
1156
+ };
1157
+ };
1145
1158
  readonly "startup.checkUpdate": {
1146
1159
  readonly type: "boolean";
1147
1160
  readonly default: true;
@@ -1597,12 +1610,12 @@ export declare const SETTINGS_SCHEMA: {
1597
1610
  };
1598
1611
  readonly "memory.backend": {
1599
1612
  readonly type: "enum";
1600
- readonly values: readonly ["off", "local", "hindsight"];
1613
+ readonly values: readonly ["off", "local", "hindsight", "mnemosyne"];
1601
1614
  readonly default: "off";
1602
1615
  readonly ui: {
1603
1616
  readonly tab: "memory";
1604
1617
  readonly label: "Memory Backend";
1605
- readonly description: "Off, local memory pipeline, or Hindsight remote memory";
1618
+ readonly description: "Off, local summary pipeline, Mnemosyne SQLite, or Hindsight remote memory";
1606
1619
  readonly options: readonly [{
1607
1620
  readonly value: "off";
1608
1621
  readonly label: "Off";
@@ -1615,9 +1628,195 @@ export declare const SETTINGS_SCHEMA: {
1615
1628
  readonly value: "hindsight";
1616
1629
  readonly label: "Hindsight";
1617
1630
  readonly description: "Vectorize Hindsight remote memory service";
1631
+ }, {
1632
+ readonly value: "mnemosyne";
1633
+ readonly label: "Mnemosyne";
1634
+ readonly description: "Local SQLite recall/retain backend with optional embeddings";
1635
+ }];
1636
+ };
1637
+ };
1638
+ readonly "mnemosyne.dbPath": {
1639
+ readonly type: "string";
1640
+ readonly default: undefined;
1641
+ readonly ui: {
1642
+ readonly tab: "memory";
1643
+ readonly label: "Mnemosyne DB Path";
1644
+ readonly description: "Optional SQLite DB path. Defaults to the agent memories directory.";
1645
+ readonly condition: "mnemosyneActive";
1646
+ };
1647
+ };
1648
+ readonly "mnemosyne.bank": {
1649
+ readonly type: "string";
1650
+ readonly default: undefined;
1651
+ readonly ui: {
1652
+ readonly tab: "memory";
1653
+ readonly label: "Mnemosyne Bank";
1654
+ readonly description: "Optional shared bank base name. Per-project modes derive project-local banks from it.";
1655
+ readonly condition: "mnemosyneActive";
1656
+ };
1657
+ };
1658
+ readonly "mnemosyne.scoping": {
1659
+ readonly type: "enum";
1660
+ readonly values: readonly ["global", "per-project", "per-project-tagged"];
1661
+ readonly default: "per-project";
1662
+ readonly ui: {
1663
+ readonly tab: "memory";
1664
+ readonly label: "Mnemosyne Scoping";
1665
+ readonly description: "global = one shared bank; per-project = isolated bank per cwd; per-project-tagged = project-local writes plus global recall visibility";
1666
+ readonly options: readonly [{
1667
+ readonly value: "global";
1668
+ readonly label: "Global";
1669
+ readonly description: "One shared Mnemosyne bank for every project";
1670
+ }, {
1671
+ readonly value: "per-project";
1672
+ readonly label: "Per project";
1673
+ readonly description: "Project-local Mnemosyne bank per cwd basename";
1674
+ }, {
1675
+ readonly value: "per-project-tagged";
1676
+ readonly label: "Per project (tagged)";
1677
+ readonly description: "Write to a project-local bank but merge project + shared recall results";
1618
1678
  }];
1679
+ readonly condition: "mnemosyneActive";
1680
+ };
1681
+ };
1682
+ readonly "mnemosyne.autoRecall": {
1683
+ readonly type: "boolean";
1684
+ readonly default: true;
1685
+ readonly ui: {
1686
+ readonly tab: "memory";
1687
+ readonly label: "Mnemosyne Auto Recall";
1688
+ readonly description: "Recall local memories into the first turn of each session";
1689
+ readonly condition: "mnemosyneActive";
1690
+ };
1691
+ };
1692
+ readonly "mnemosyne.autoRetain": {
1693
+ readonly type: "boolean";
1694
+ readonly default: true;
1695
+ readonly ui: {
1696
+ readonly tab: "memory";
1697
+ readonly label: "Mnemosyne Auto Retain";
1698
+ readonly description: "Retain completed conversation turns into local Mnemosyne memory";
1699
+ readonly condition: "mnemosyneActive";
1619
1700
  };
1620
1701
  };
1702
+ readonly "mnemosyne.noEmbeddings": {
1703
+ readonly type: "boolean";
1704
+ readonly default: false;
1705
+ readonly ui: {
1706
+ readonly tab: "memory";
1707
+ readonly label: "Mnemosyne Disable Embeddings";
1708
+ readonly description: "Force deterministic FTS-only recall instead of vector embeddings";
1709
+ readonly condition: "mnemosyneActive";
1710
+ };
1711
+ };
1712
+ readonly "mnemosyne.embeddingModel": {
1713
+ readonly type: "string";
1714
+ readonly default: undefined;
1715
+ readonly ui: {
1716
+ readonly tab: "memory";
1717
+ readonly label: "Mnemosyne Embedding Model";
1718
+ readonly description: "Optional embedding model override passed to Mnemosyne";
1719
+ readonly condition: "mnemosyneActive";
1720
+ };
1721
+ };
1722
+ readonly "mnemosyne.embeddingApiUrl": {
1723
+ readonly type: "string";
1724
+ readonly default: undefined;
1725
+ readonly ui: {
1726
+ readonly tab: "memory";
1727
+ readonly label: "Mnemosyne Embedding API URL";
1728
+ readonly description: "Optional OpenAI-compatible embedding endpoint passed to Mnemosyne";
1729
+ readonly condition: "mnemosyneActive";
1730
+ };
1731
+ };
1732
+ readonly "mnemosyne.embeddingApiKey": {
1733
+ readonly type: "string";
1734
+ readonly default: undefined;
1735
+ readonly ui: {
1736
+ readonly tab: "memory";
1737
+ readonly label: "Mnemosyne Embedding API Key";
1738
+ readonly description: "Optional embedding API key passed to Mnemosyne";
1739
+ readonly condition: "mnemosyneActive";
1740
+ };
1741
+ };
1742
+ readonly "mnemosyne.llmMode": {
1743
+ readonly type: "enum";
1744
+ readonly values: readonly ["none", "smol", "remote"];
1745
+ readonly default: "smol";
1746
+ readonly ui: {
1747
+ readonly tab: "memory";
1748
+ readonly label: "Mnemosyne LLM Mode";
1749
+ readonly description: "Use no LLM, the configured smol model, or a remote OpenAI-compatible endpoint";
1750
+ readonly condition: "mnemosyneActive";
1751
+ readonly options: readonly [{
1752
+ readonly value: "none";
1753
+ readonly label: "None";
1754
+ readonly description: "Disable Mnemosyne LLM-backed extraction";
1755
+ }, {
1756
+ readonly value: "smol";
1757
+ readonly label: "Smol";
1758
+ readonly description: "Use the configured pi-ai smol model";
1759
+ }, {
1760
+ readonly value: "remote";
1761
+ readonly label: "Remote";
1762
+ readonly description: "Use the Mnemosyne remote LLM settings below";
1763
+ }];
1764
+ };
1765
+ };
1766
+ readonly "mnemosyne.llmBaseUrl": {
1767
+ readonly type: "string";
1768
+ readonly default: undefined;
1769
+ readonly ui: {
1770
+ readonly tab: "memory";
1771
+ readonly label: "Mnemosyne LLM Base URL";
1772
+ readonly description: "Optional OpenAI-compatible LLM endpoint for Mnemosyne remote mode";
1773
+ readonly condition: "mnemosyneActive";
1774
+ };
1775
+ };
1776
+ readonly "mnemosyne.llmApiKey": {
1777
+ readonly type: "string";
1778
+ readonly default: undefined;
1779
+ readonly ui: {
1780
+ readonly tab: "memory";
1781
+ readonly label: "Mnemosyne LLM API Key";
1782
+ readonly description: "Optional LLM API key for Mnemosyne remote mode";
1783
+ readonly condition: "mnemosyneActive";
1784
+ };
1785
+ };
1786
+ readonly "mnemosyne.llmModel": {
1787
+ readonly type: "string";
1788
+ readonly default: undefined;
1789
+ readonly ui: {
1790
+ readonly tab: "memory";
1791
+ readonly label: "Mnemosyne LLM Model";
1792
+ readonly description: "Optional LLM model name for Mnemosyne remote mode";
1793
+ readonly condition: "mnemosyneActive";
1794
+ };
1795
+ };
1796
+ readonly "mnemosyne.retainEveryNTurns": {
1797
+ readonly type: "number";
1798
+ readonly default: 4;
1799
+ };
1800
+ readonly "mnemosyne.recallLimit": {
1801
+ readonly type: "number";
1802
+ readonly default: 8;
1803
+ };
1804
+ readonly "mnemosyne.recallContextTurns": {
1805
+ readonly type: "number";
1806
+ readonly default: 3;
1807
+ };
1808
+ readonly "mnemosyne.recallMaxQueryChars": {
1809
+ readonly type: "number";
1810
+ readonly default: 4000;
1811
+ };
1812
+ readonly "mnemosyne.injectionTokenLimit": {
1813
+ readonly type: "number";
1814
+ readonly default: 5000;
1815
+ };
1816
+ readonly "mnemosyne.debug": {
1817
+ readonly type: "boolean";
1818
+ readonly default: false;
1819
+ };
1621
1820
  readonly "hindsight.apiUrl": {
1622
1821
  readonly type: "string";
1623
1822
  readonly default: "http://localhost:8888";
@@ -1657,11 +1856,11 @@ export declare const SETTINGS_SCHEMA: {
1657
1856
  readonly options: readonly [{
1658
1857
  readonly value: "global";
1659
1858
  readonly label: "Global";
1660
- readonly description: "One shared bank \u2014 every project sees the same memories";
1859
+ readonly description: "One shared bank every project sees the same memories";
1661
1860
  }, {
1662
1861
  readonly value: "per-project";
1663
1862
  readonly label: "Per project";
1664
- readonly description: "Isolated bank per cwd basename \u2014 projects cannot see each other's memories";
1863
+ readonly description: "Isolated bank per cwd basename projects cannot see each other's memories";
1665
1864
  }, {
1666
1865
  readonly value: "per-project-tagged";
1667
1866
  readonly label: "Per project (tagged)";
@@ -1761,7 +1960,7 @@ export declare const SETTINGS_SCHEMA: {
1761
1960
  readonly ui: {
1762
1961
  readonly tab: "memory";
1763
1962
  readonly label: "Hindsight Mental Models";
1764
- readonly description: "Read curated reflect summaries (mental models) into developer instructions at boot. Loads existing models on the bank \u2014 does not write. Pair with hindsight.mentalModelAutoSeed to also auto-create the built-in seed set.";
1963
+ readonly description: "Read curated reflect summaries (mental models) into developer instructions at boot. Loads existing models on the bank does not write. Pair with hindsight.mentalModelAutoSeed to also auto-create the built-in seed set.";
1765
1964
  readonly condition: "hindsightActive";
1766
1965
  };
1767
1966
  };
@@ -1864,6 +2063,24 @@ export declare const SETTINGS_SCHEMA: {
1864
2063
  }];
1865
2064
  };
1866
2065
  };
2066
+ readonly "ttsr.builtinRules": {
2067
+ readonly type: "boolean";
2068
+ readonly default: true;
2069
+ readonly ui: {
2070
+ readonly tab: "context";
2071
+ readonly label: "Builtin Rules";
2072
+ readonly description: "Load the default rules shipped with the agent (override individually with ttsr.disabledRules)";
2073
+ };
2074
+ };
2075
+ readonly "ttsr.disabledRules": {
2076
+ readonly type: "array";
2077
+ readonly default: string[];
2078
+ readonly ui: {
2079
+ readonly tab: "context";
2080
+ readonly label: "Disabled Rules";
2081
+ readonly description: "Rule names to ignore entirely (applies to bundled defaults and your own rules)";
2082
+ };
2083
+ };
1867
2084
  readonly "edit.mode": {
1868
2085
  readonly type: "enum";
1869
2086
  readonly values: import("..").EditMode[];
@@ -1942,7 +2159,7 @@ export declare const SETTINGS_SCHEMA: {
1942
2159
  readonly ui: {
1943
2160
  readonly tab: "editing";
1944
2161
  readonly label: "Hash Lines";
1945
- readonly description: "Include snapshot-tag headers and line numbers in read output for hashline edit mode (\u00B6PATH#tag plus LINE:content)";
2162
+ readonly description: "Include snapshot-tag headers and line numbers in read output for hashline edit mode (¶PATH#tag plus LINE:content)";
1946
2163
  };
1947
2164
  };
1948
2165
  readonly "read.defaultLimit": {
@@ -2177,7 +2394,7 @@ export declare const SETTINGS_SCHEMA: {
2177
2394
  }, {
2178
2395
  readonly value: "write";
2179
2396
  readonly label: "Write";
2180
- readonly description: "Auto-approve read-only and write tools; require confirmation for exec tools such as bash, eval, browser, task, recipe, and ssh.";
2397
+ readonly description: "Auto-approve read-only and write tools; require confirmation for exec tools such as bash, eval, browser, task, and ssh.";
2181
2398
  }, {
2182
2399
  readonly value: "yolo";
2183
2400
  readonly label: "Yolo";
@@ -2384,15 +2601,6 @@ export declare const SETTINGS_SCHEMA: {
2384
2601
  readonly description: "Enable the tts tool for xAI Grok Voice speech synthesis";
2385
2602
  };
2386
2603
  };
2387
- readonly "recipe.enabled": {
2388
- readonly type: "boolean";
2389
- readonly default: true;
2390
- readonly ui: {
2391
- readonly tab: "tools";
2392
- readonly label: "Recipe";
2393
- readonly description: "Enable the recipe tool when a justfile / package.json / Cargo.toml / Makefile / Taskfile is present";
2394
- };
2395
- };
2396
2604
  readonly "inspect_image.enabled": {
2397
2605
  readonly type: "boolean";
2398
2606
  readonly default: false;
@@ -3151,6 +3359,179 @@ export declare const SETTINGS_SCHEMA: {
3151
3359
  }];
3152
3360
  };
3153
3361
  };
3362
+ readonly "providers.tinyModel": {
3363
+ readonly type: "enum";
3364
+ readonly values: readonly ["online", "lfm2-350m", "qwen3-0.6b", "gemma-270m", "qwen2.5-0.5b", "lfm2-700m"];
3365
+ readonly default: "online";
3366
+ readonly ui: {
3367
+ readonly tab: "providers";
3368
+ readonly label: "Tiny Model";
3369
+ readonly description: "Session-title model: online pi/smol by default, or a local on-device model";
3370
+ readonly options: ({
3371
+ value: "online";
3372
+ label: string;
3373
+ description: string;
3374
+ } | {
3375
+ value: "gemma-270m" | "lfm2-350m" | "lfm2-700m" | "qwen2.5-0.5b" | "qwen3-0.6b";
3376
+ label: "Gemma 270M" | "LFM2 350M" | "LFM2 700M" | "Qwen2.5 0.5B" | "Qwen3 0.6B";
3377
+ description: "Balanced local fallback; moderate quality and cache footprint." | "Highest-quality local option; larger and slower than LFM2 350M." | "Most robust local option; slower first load, about 500 MB cached." | "Recommended local model; best speed/quality balance, about 212 MB cached." | "Smallest viable local option; lower quality, lowest cache footprint.";
3378
+ })[];
3379
+ };
3380
+ };
3381
+ readonly "providers.tinyModelDevice": {
3382
+ readonly type: "enum";
3383
+ readonly values: readonly ["default", "gpu", "cpu", "metal", "webgpu", "cuda", "dml", "coreml", "auto", "wasm", "webnn", "webnn-gpu", "webnn-cpu", "webnn-npu"];
3384
+ readonly default: "default";
3385
+ readonly ui: {
3386
+ readonly tab: "providers";
3387
+ readonly label: "Tiny Model Device";
3388
+ readonly description: "ONNX execution provider for local tiny models (titles + memory). Default picks DirectML on Windows, CUDA on Linux x64, CPU elsewhere. The PI_TINY_DEVICE env var overrides this.";
3389
+ readonly options: readonly [{
3390
+ readonly value: "default";
3391
+ readonly label: "Default";
3392
+ readonly description: "DirectML on Windows, CUDA on Linux x64, CPU elsewhere";
3393
+ }, {
3394
+ readonly value: "gpu";
3395
+ readonly label: "GPU";
3396
+ readonly description: "Accelerated provider (WebGPU/Metal, CUDA, or DirectML)";
3397
+ }, {
3398
+ readonly value: "cpu";
3399
+ readonly label: "CPU";
3400
+ readonly description: "CPU-only inference";
3401
+ }, {
3402
+ readonly value: "metal";
3403
+ readonly label: "Metal";
3404
+ readonly description: "WebGPU alias for Apple GPUs";
3405
+ }, {
3406
+ readonly value: "webgpu";
3407
+ readonly label: "WebGPU";
3408
+ readonly description: "WebGPU/Metal backend";
3409
+ }, {
3410
+ readonly value: "cuda";
3411
+ readonly label: "CUDA";
3412
+ readonly description: "NVIDIA CUDA (Linux x64)";
3413
+ }, {
3414
+ readonly value: "dml";
3415
+ readonly label: "DirectML";
3416
+ readonly description: "DirectML backend (Windows)";
3417
+ }, {
3418
+ readonly value: "coreml";
3419
+ readonly label: "CoreML";
3420
+ readonly description: "Apple CoreML (opt-in; can fail to load)";
3421
+ }, {
3422
+ readonly value: "auto";
3423
+ readonly label: "Auto";
3424
+ readonly description: "Let ONNX Runtime choose a provider";
3425
+ }, {
3426
+ readonly value: "wasm";
3427
+ readonly label: "WASM";
3428
+ readonly description: "WebAssembly backend";
3429
+ }, {
3430
+ readonly value: "webnn";
3431
+ readonly label: "WebNN";
3432
+ readonly description: "WebNN backend";
3433
+ }, {
3434
+ readonly value: "webnn-gpu";
3435
+ readonly label: "WebNN GPU";
3436
+ readonly description: "WebNN GPU device";
3437
+ }, {
3438
+ readonly value: "webnn-cpu";
3439
+ readonly label: "WebNN CPU";
3440
+ readonly description: "WebNN CPU device";
3441
+ }, {
3442
+ readonly value: "webnn-npu";
3443
+ readonly label: "WebNN NPU";
3444
+ readonly description: "WebNN NPU device";
3445
+ }];
3446
+ };
3447
+ };
3448
+ readonly "providers.tinyModelDtype": {
3449
+ readonly type: "enum";
3450
+ readonly values: readonly ["default", "q4", "q4f16", "q8", "fp16", "fp32", "int8", "uint8", "bnb4", "q2", "q2f16", "q1", "q1f16", "auto"];
3451
+ readonly default: "default";
3452
+ readonly ui: {
3453
+ readonly tab: "providers";
3454
+ readonly label: "Tiny Model Precision";
3455
+ readonly description: "ONNX quantization/precision for local tiny models. Default uses each model's shipped dtype (q4); lower precision is faster, higher is more faithful. The PI_TINY_DTYPE env var overrides this.";
3456
+ readonly options: readonly [{
3457
+ readonly value: "default";
3458
+ readonly label: "Default";
3459
+ readonly description: "Each model's shipped dtype (currently q4)";
3460
+ }, {
3461
+ readonly value: "q4";
3462
+ readonly label: "q4";
3463
+ readonly description: "4-bit weights; smallest and fastest";
3464
+ }, {
3465
+ readonly value: "q4f16";
3466
+ readonly label: "q4f16";
3467
+ readonly description: "4-bit weights with fp16 activations";
3468
+ }, {
3469
+ readonly value: "q8";
3470
+ readonly label: "q8";
3471
+ readonly description: "8-bit quantization";
3472
+ }, {
3473
+ readonly value: "fp16";
3474
+ readonly label: "fp16";
3475
+ readonly description: "16-bit float; higher fidelity, larger";
3476
+ }, {
3477
+ readonly value: "fp32";
3478
+ readonly label: "fp32";
3479
+ readonly description: "Full precision; largest and slowest";
3480
+ }, {
3481
+ readonly value: "int8";
3482
+ readonly label: "int8";
3483
+ readonly description: "Signed 8-bit integer";
3484
+ }, {
3485
+ readonly value: "uint8";
3486
+ readonly label: "uint8";
3487
+ readonly description: "Unsigned 8-bit integer";
3488
+ }, {
3489
+ readonly value: "bnb4";
3490
+ readonly label: "bnb4";
3491
+ readonly description: "bitsandbytes 4-bit";
3492
+ }, {
3493
+ readonly value: "q2";
3494
+ readonly label: "q2";
3495
+ readonly description: "2-bit weights";
3496
+ }, {
3497
+ readonly value: "q2f16";
3498
+ readonly label: "q2f16";
3499
+ readonly description: "2-bit weights with fp16 activations";
3500
+ }, {
3501
+ readonly value: "q1";
3502
+ readonly label: "q1";
3503
+ readonly description: "1-bit weights";
3504
+ }, {
3505
+ readonly value: "q1f16";
3506
+ readonly label: "q1f16";
3507
+ readonly description: "1-bit weights with fp16 activations";
3508
+ }, {
3509
+ readonly value: "auto";
3510
+ readonly label: "Auto";
3511
+ readonly description: "Let transformers.js choose per device";
3512
+ }];
3513
+ };
3514
+ };
3515
+ readonly "providers.memoryModel": {
3516
+ readonly type: "enum";
3517
+ readonly values: readonly ["online", "qwen3-1.7b", "gemma-3-1b", "qwen2.5-1.5b", "lfm2-1.2b"];
3518
+ readonly default: "online";
3519
+ readonly ui: {
3520
+ readonly tab: "memory";
3521
+ readonly label: "Memory Model";
3522
+ readonly description: "Mnemosyne LLM for fact extraction + consolidation: online (smol/remote) by default, or a local on-device model";
3523
+ readonly condition: "mnemosyneActive";
3524
+ readonly options: ({
3525
+ value: "online";
3526
+ label: string;
3527
+ description: string;
3528
+ } | {
3529
+ value: "gemma-3-1b" | "lfm2-1.2b" | "qwen2.5-1.5b" | "qwen3-1.7b";
3530
+ label: "Gemma 3 1B" | "LFM2 1.2B" | "Qwen2.5 1.5B" | "Qwen3 1.7B";
3531
+ description: "Best consolidation/dedup; lighter footprint, but leaks small talk during extraction." | "Best extraction granularity (atomic facts); weaker consolidation." | "Fastest load; solid all-rounder, slightly noisier extraction labels." | "Recommended; most disciplined extraction (ignores chit-chat), good consolidation, about 1.1 GB cached.";
3532
+ })[];
3533
+ };
3534
+ };
3154
3535
  readonly "providers.kimiApiFormat": {
3155
3536
  readonly type: "enum";
3156
3537
  readonly values: readonly ["openai", "anthropic"];
@@ -3518,6 +3899,10 @@ export interface TtsrSettings {
3518
3899
  interruptMode: "never" | "prose-only" | "tool-only" | "always";
3519
3900
  repeatMode: "once" | "after-gap";
3520
3901
  repeatGap: number;
3902
+ /** Bucketing-only (read by bucketRules, not the TtsrManager). */
3903
+ builtinRules?: boolean;
3904
+ /** Bucketing-only (read by bucketRules, not the TtsrManager). */
3905
+ disabledRules?: string[];
3521
3906
  }
3522
3907
  export interface ExaSettings {
3523
3908
  enabled: boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ /** A bundled rule's stable name and raw markdown (frontmatter + body). */
2
+ export interface BuiltinRuleSource {
3
+ name: string;
4
+ content: string;
5
+ }
6
+ /** All bundled default rules, ordered by name. */
7
+ export declare const BUILTIN_RULE_SOURCES: readonly BuiltinRuleSource[];
@@ -10,7 +10,7 @@ export declare const SOURCE_PATHS: {
10
10
  readonly native: {
11
11
  readonly userBase: string;
12
12
  readonly userAgent: string;
13
- projectDir: string;
13
+ readonly projectDir: string;
14
14
  };
15
15
  readonly claude: {
16
16
  readonly userBase: ".claude";
@@ -20,6 +20,7 @@ import "../capability/system-prompt";
20
20
  import "../capability/tool";
21
21
  import "./agents-md";
22
22
  import "./builtin";
23
+ import "./builtin-defaults";
23
24
  import "./claude";
24
25
  import "./claude-plugins";
25
26
  import "./cline";
@@ -1,5 +1 @@
1
- /**
2
- * Recursively substitute ${CLAUDE_PLUGIN_ROOT} and ${OMP_PLUGIN_ROOT}
3
- * with the actual plugin root path in strings, arrays, and plain objects.
4
- */
5
1
  export declare function substitutePluginRoot<T>(value: T, rootPath: string): T;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tree-sitter-backed {@link BlockResolver} for the hashline `replace block N:`
3
+ * operator. Bridges the pure hashline seam to the native `blockRangeAt`
4
+ * primitive in `@oh-my-pi/pi-natives`, which infers the language from the file
5
+ * path and returns the 1-indexed line span of the syntactic block beginning on
6
+ * the requested line (or `null` when none can be resolved).
7
+ */
8
+ import type { BlockResolver } from "@oh-my-pi/hashline";
9
+ export declare const nativeBlockResolver: BlockResolver;
@@ -1,3 +1,4 @@
1
+ export * from "./block-resolver";
1
2
  export * from "./diff";
2
3
  export * from "./execute";
3
4
  export * from "./filesystem";
@@ -2,9 +2,24 @@ export declare function rewriteImports(code: string): string;
2
2
  export declare function collectModuleSourceSpecifiers(code: string): string[];
3
3
  export declare function rewriteModuleSourceSpecifiers(code: string, replacer: (source: string) => string): string;
4
4
  export declare function rewriteDynamicImports(code: string, callee?: string): string;
5
- export declare function stripTypeScriptSyntax(code: string): string;
5
+ /**
6
+ * Strip TypeScript syntax (type annotations, type-only imports/exports, `interface`, `as`,
7
+ * `satisfies`, generics in call expressions, etc.) before the import/lexical rewriters parse
8
+ * the code. Bun's native transpiler preserves `import`/`export` declarations, so downstream
9
+ * Babel rewrites still control module resolution.
10
+ *
11
+ * Eval cells use a cheap "looks like TS" heuristic to avoid transpiling ordinary JS. Known
12
+ * TypeScript modules pass `force` because a file can contain TS-only module syntax such as
13
+ * `import type` without any value-level type annotations.
14
+ */
15
+ type TypeScriptStripLoader = "ts" | "tsx";
16
+ export declare function stripTypeScriptSyntax(code: string, options?: {
17
+ force?: boolean;
18
+ loader?: TypeScriptStripLoader;
19
+ }): string;
6
20
  export declare function wrapCode(code: string): {
7
21
  source: string;
8
22
  asyncWrapped: boolean;
9
23
  finalExpressionReturned: boolean;
10
24
  };
25
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { type KernelDisplayOutput } from "./display";
2
+ import { type PythonRuntime } from "./runtime";
2
3
  export type { KernelDisplayOutput, PythonStatusEvent } from "./display";
3
4
  export { renderKernelDisplay } from "./display";
4
5
  export type KernelRuntimeEnv = Record<string, string | null>;
@@ -53,6 +54,8 @@ export interface PythonKernelAvailability {
53
54
  ok: boolean;
54
55
  pythonPath?: string;
55
56
  reason?: string;
57
+ /** The probed-working runtime, when one was found. */
58
+ runtime?: PythonRuntime;
56
59
  }
57
60
  export declare function checkPythonKernelAvailability(cwd: string): Promise<PythonKernelAvailability>;
58
61
  export declare class PythonKernel {
@@ -16,6 +16,16 @@ export declare function filterEnv(env: Record<string, string | undefined>): Reco
16
16
  */
17
17
  export declare function resolveVenvPath(cwd: string): string | undefined;
18
18
  /**
19
- * Resolve Python runtime including executable path, environment, and venv detection.
19
+ * Enumerate candidate Python runtimes in priority order: an active/project venv,
20
+ * the managed `~/.omp/python-env`, then the system interpreter on PATH. Every
21
+ * candidate that physically exists is returned so callers can probe each in turn
22
+ * rather than committing to the first — a managed env left behind by a removed
23
+ * `uv` install no longer shadows a working system Python.
24
+ */
25
+ export declare function enumeratePythonRuntimes(cwd: string, baseEnv: Record<string, string | undefined>): PythonRuntime[];
26
+ /**
27
+ * Resolve the highest-priority Python runtime. Prefer {@link enumeratePythonRuntimes}
28
+ * when you can probe candidates; this returns only the first one and throws when
29
+ * no interpreter exists.
20
30
  */
21
31
  export declare function resolvePythonRuntime(cwd: string, baseEnv: Record<string, string | undefined>): PythonRuntime;