open-multi-agent-kit 0.79.1 → 0.80.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 (2366) hide show
  1. package/AGENTS.md +679 -0
  2. package/CHANGELOG.md +424 -4225
  3. package/CLAUDE.md +110 -0
  4. package/DESIGN.md +358 -0
  5. package/GEMINI.md +8 -0
  6. package/LICENSE +21 -0
  7. package/MATURITY.md +76 -0
  8. package/README.md +101 -609
  9. package/ROADMAP.md +127 -0
  10. package/SECURITY.md +83 -0
  11. package/WORKER_MANIFEST.md +35 -0
  12. package/dist/adapters/commandcode/commandcode-cli-adapter.d.ts +10 -0
  13. package/dist/adapters/commandcode/commandcode-cli-adapter.js +57 -0
  14. package/dist/adapters/kimi/ascii-art.d.ts +1 -0
  15. package/dist/adapters/kimi/ascii-art.js +23 -0
  16. package/dist/adapters/kimi/banner.d.ts +53 -0
  17. package/dist/adapters/kimi/banner.js +284 -0
  18. package/dist/adapters/kimi/bug-filter.d.ts +15 -0
  19. package/dist/adapters/kimi/bug-filter.js +150 -0
  20. package/dist/adapters/kimi/capability.d.ts +25 -0
  21. package/dist/adapters/kimi/capability.js +68 -0
  22. package/dist/adapters/kimi/continue-prompt-guard.d.ts +20 -0
  23. package/dist/adapters/kimi/continue-prompt-guard.js +70 -0
  24. package/dist/adapters/kimi/isolated-home.d.ts +21 -0
  25. package/dist/adapters/kimi/isolated-home.js +270 -0
  26. package/dist/adapters/kimi/runner.d.ts +71 -0
  27. package/dist/adapters/kimi/runner.js +1084 -0
  28. package/dist/adapters/kimi/simple-art.d.ts +1 -0
  29. package/dist/adapters/kimi/simple-art.js +1 -0
  30. package/dist/adapters/kimi/statusline.d.ts +26 -0
  31. package/dist/adapters/kimi/statusline.js +142 -0
  32. package/dist/adapters/kimi/usage.d.ts +52 -0
  33. package/dist/adapters/kimi/usage.js +481 -0
  34. package/dist/adapters/kimi/wire-client.d.ts +142 -0
  35. package/dist/adapters/kimi/wire-client.js +725 -0
  36. package/dist/adapters/kimi/wire-protocol-types.d.ts +549 -0
  37. package/dist/adapters/kimi/wire-protocol-types.js +59 -0
  38. package/dist/adapters/opencode/opencode-cli-adapter.d.ts +9 -0
  39. package/dist/adapters/opencode/opencode-cli-adapter.js +43 -0
  40. package/dist/awareness/classifiers/browser-console-classifier.d.ts +3 -0
  41. package/dist/awareness/classifiers/browser-console-classifier.js +47 -0
  42. package/dist/awareness/classifiers/evidence-gap-classifier.d.ts +3 -0
  43. package/dist/awareness/classifiers/evidence-gap-classifier.js +31 -0
  44. package/dist/awareness/classifiers/stalled-run-classifier.d.ts +2 -0
  45. package/dist/awareness/classifiers/stalled-run-classifier.js +24 -0
  46. package/dist/awareness/notice-store.d.ts +6 -0
  47. package/dist/awareness/notice-store.js +91 -0
  48. package/dist/awareness/notice.d.ts +17 -0
  49. package/dist/awareness/notice.js +1 -0
  50. package/dist/awareness/noticer-engine.d.ts +42 -0
  51. package/dist/awareness/noticer-engine.js +63 -0
  52. package/dist/awareness/router.d.ts +6 -0
  53. package/dist/awareness/router.js +46 -0
  54. package/dist/benchmark/contracts.d.ts +116 -0
  55. package/dist/benchmark/contracts.js +6 -0
  56. package/dist/benchmark/fixtures.d.ts +11 -0
  57. package/dist/benchmark/fixtures.js +124 -0
  58. package/dist/benchmark/harness.d.ts +13 -0
  59. package/dist/benchmark/harness.js +191 -0
  60. package/dist/benchmark/shadow-mode.d.ts +17 -0
  61. package/dist/benchmark/shadow-mode.js +95 -0
  62. package/dist/brand/matrix-rain.d.ts +15 -0
  63. package/dist/brand/matrix-rain.js +132 -0
  64. package/dist/brand/night-city.theme.json +178 -0
  65. package/dist/brand/omk-matrix-art.d.ts +1 -0
  66. package/dist/brand/omk-matrix-art.js +10 -0
  67. package/dist/brand/omk-simple-art.d.ts +7 -0
  68. package/dist/brand/omk-simple-art.js +13 -0
  69. package/dist/brand/palette.d.ts +90 -0
  70. package/dist/brand/palette.js +129 -0
  71. package/dist/brand/rust-forge.theme.json +216 -0
  72. package/dist/brand/theme-compiled.d.ts +61 -0
  73. package/dist/brand/theme-compiled.js +241 -0
  74. package/dist/brand/theme.d.ts +41 -0
  75. package/dist/brand/theme.js +275 -0
  76. package/dist/browser/browser-feedback.d.ts +10 -0
  77. package/dist/browser/browser-feedback.js +84 -0
  78. package/dist/browser/browser-observer.d.ts +21 -0
  79. package/dist/browser/browser-observer.js +159 -0
  80. package/dist/browser/browser-session.d.ts +26 -0
  81. package/dist/browser/browser-session.js +63 -0
  82. package/dist/cli/command-registry.d.ts +2 -0
  83. package/dist/cli/command-registry.js +20 -0
  84. package/dist/cli/input/argv-parser.d.ts +16 -0
  85. package/dist/cli/input/argv-parser.js +50 -0
  86. package/dist/cli/input/command-envelope.d.ts +16 -0
  87. package/dist/cli/input/command-envelope.js +64 -0
  88. package/dist/cli/input/config-loader.d.ts +16 -0
  89. package/dist/cli/input/config-loader.js +48 -0
  90. package/dist/cli/input/index.d.ts +8 -0
  91. package/dist/cli/input/index.js +8 -0
  92. package/dist/cli/input/input-resolver.d.ts +13 -0
  93. package/dist/cli/input/input-resolver.js +50 -0
  94. package/dist/cli/input/validator.d.ts +10 -0
  95. package/dist/cli/input/validator.js +37 -0
  96. package/dist/cli/main.d.ts +4 -0
  97. package/dist/cli/main.js +34 -0
  98. package/dist/cli/output/error-renderer.d.ts +10 -0
  99. package/dist/cli/output/error-renderer.js +68 -0
  100. package/dist/cli/output/hash.d.ts +1 -0
  101. package/dist/cli/output/hash.js +10 -0
  102. package/dist/cli/output/index.d.ts +9 -0
  103. package/dist/cli/output/index.js +9 -0
  104. package/dist/cli/output/json-renderer.d.ts +7 -0
  105. package/dist/cli/output/json-renderer.js +35 -0
  106. package/dist/cli/output/markdown-renderer.d.ts +5 -0
  107. package/dist/cli/output/markdown-renderer.js +86 -0
  108. package/dist/cli/output/nlp-renderer.d.ts +7 -0
  109. package/dist/cli/output/nlp-renderer.js +96 -0
  110. package/dist/cli/output/output-router.d.ts +5 -0
  111. package/dist/cli/output/output-router.js +33 -0
  112. package/dist/cli/register-awareness-commands.d.ts +2 -0
  113. package/dist/cli/register-awareness-commands.js +133 -0
  114. package/dist/cli/register-basic-commands.d.ts +2 -0
  115. package/dist/cli/register-basic-commands.js +489 -0
  116. package/dist/cli/register-integration-commands.d.ts +2 -0
  117. package/dist/cli/register-integration-commands.js +59 -0
  118. package/dist/cli/register-mcp-dag-cron-screenshot-commands.d.ts +2 -0
  119. package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +275 -0
  120. package/dist/cli/register-openai-codex-commands.d.ts +2 -0
  121. package/dist/cli/register-openai-codex-commands.js +55 -0
  122. package/dist/cli/register-provider-commands.d.ts +2 -0
  123. package/dist/cli/register-provider-commands.js +244 -0
  124. package/dist/cli/register-spec-agent-goal-commands.d.ts +2 -0
  125. package/dist/cli/register-spec-agent-goal-commands.js +486 -0
  126. package/dist/cli/register-tool-commands.d.ts +2 -0
  127. package/dist/cli/register-tool-commands.js +202 -0
  128. package/dist/cli/register-workflow-commands.d.ts +2 -0
  129. package/dist/cli/register-workflow-commands.js +158 -0
  130. package/dist/cli/registry/core.d.ts +2 -0
  131. package/dist/cli/registry/core.js +27 -0
  132. package/dist/cli/registry/session.d.ts +2 -0
  133. package/dist/cli/registry/session.js +137 -0
  134. package/dist/cli/registry/system.d.ts +2 -0
  135. package/dist/cli/registry/system.js +95 -0
  136. package/dist/cli/registry/tooling.d.ts +2 -0
  137. package/dist/cli/registry/tooling.js +112 -0
  138. package/dist/cli/registry/visual.d.ts +2 -0
  139. package/dist/cli/registry/visual.js +91 -0
  140. package/dist/cli/release-promotion-gate.d.ts +21 -0
  141. package/dist/cli/release-promotion-gate.js +93 -0
  142. package/dist/cli/root.d.ts +12 -0
  143. package/dist/cli/root.js +121 -0
  144. package/dist/cli/runtime/capability-selector.d.ts +18 -0
  145. package/dist/cli/runtime/capability-selector.js +208 -0
  146. package/dist/cli/runtime/cli-runtime.d.ts +10 -0
  147. package/dist/cli/runtime/cli-runtime.js +35 -0
  148. package/dist/cli/runtime/cli-writer.d.ts +18 -0
  149. package/dist/cli/runtime/cli-writer.js +87 -0
  150. package/dist/cli/runtime/command-bus.d.ts +45 -0
  151. package/dist/cli/runtime/command-bus.js +145 -0
  152. package/dist/cli/runtime/event-bus.d.ts +12 -0
  153. package/dist/cli/runtime/event-bus.js +31 -0
  154. package/dist/cli/runtime/generic-provider-adapter.d.ts +24 -0
  155. package/dist/cli/runtime/generic-provider-adapter.js +38 -0
  156. package/dist/cli/runtime/index.d.ts +17 -0
  157. package/dist/cli/runtime/index.js +18 -0
  158. package/dist/cli/runtime/intent-classifier.d.ts +16 -0
  159. package/dist/cli/runtime/intent-classifier.js +113 -0
  160. package/dist/cli/runtime/plan-controller.d.ts +7 -0
  161. package/dist/cli/runtime/plan-controller.js +29 -0
  162. package/dist/cli/runtime/provider-adapter-registry.d.ts +32 -0
  163. package/dist/cli/runtime/provider-adapter-registry.js +60 -0
  164. package/dist/cli/runtime/provider-event-normalizer.d.ts +19 -0
  165. package/dist/cli/runtime/provider-event-normalizer.js +150 -0
  166. package/dist/cli/runtime/run-controller.d.ts +7 -0
  167. package/dist/cli/runtime/run-controller.js +30 -0
  168. package/dist/cli/runtime/runtime-sidecar.d.ts +17 -0
  169. package/dist/cli/runtime/runtime-sidecar.js +138 -0
  170. package/dist/cli/runtime/task-controller.d.ts +7 -0
  171. package/dist/cli/runtime/task-controller.js +29 -0
  172. package/dist/cli/runtime/types.d.ts +312 -0
  173. package/dist/cli/runtime/types.js +6 -0
  174. package/dist/cli/theme/index.d.ts +18 -0
  175. package/dist/cli/theme/index.js +11 -0
  176. package/dist/cli/theme/oklab-quantize.d.ts +29 -0
  177. package/dist/cli/theme/oklab-quantize.js +105 -0
  178. package/dist/cli/theme/render-table.d.ts +59 -0
  179. package/dist/cli/theme/render-table.js +112 -0
  180. package/dist/cli/theme/status-frame.d.ts +10 -0
  181. package/dist/cli/theme/status-frame.js +22 -0
  182. package/dist/cli/theme/terminal-capability.d.ts +23 -0
  183. package/dist/cli/theme/terminal-capability.js +104 -0
  184. package/dist/cli/theme/theme-doc.d.ts +22 -0
  185. package/dist/cli/theme/theme-doc.js +97 -0
  186. package/dist/cli/theme/theme-registry.d.ts +25 -0
  187. package/dist/cli/theme/theme-registry.js +445 -0
  188. package/dist/cli/theme/theme-resolver.d.ts +12 -0
  189. package/dist/cli/theme/theme-resolver.js +38 -0
  190. package/dist/cli/theme/tier-explain.d.ts +21 -0
  191. package/dist/cli/theme/tier-explain.js +60 -0
  192. package/dist/cli/ui/event.d.ts +66 -0
  193. package/dist/cli/ui/event.js +1 -0
  194. package/dist/cli/ui/green-rain-renderer.d.ts +17 -0
  195. package/dist/cli/ui/green-rain-renderer.js +97 -0
  196. package/dist/cli/ui/neon-grid-renderer.d.ts +25 -0
  197. package/dist/cli/ui/neon-grid-renderer.js +170 -0
  198. package/dist/cli/ui/plain-renderer.d.ts +37 -0
  199. package/dist/cli/ui/plain-renderer.js +162 -0
  200. package/dist/cli/ui/renderer.d.ts +7 -0
  201. package/dist/cli/ui/renderer.js +1 -0
  202. package/dist/cli/ui/rich-renderer.d.ts +32 -0
  203. package/dist/cli/ui/rich-renderer.js +234 -0
  204. package/dist/cli/ui/route-blocked-panel.d.ts +5 -0
  205. package/dist/cli/ui/route-blocked-panel.js +67 -0
  206. package/dist/cli/ui/rust-forge-renderer.d.ts +19 -0
  207. package/dist/cli/ui/rust-forge-renderer.js +143 -0
  208. package/dist/cli/ui/system24-renderer.d.ts +96 -0
  209. package/dist/cli/ui/system24-renderer.js +533 -0
  210. package/dist/cli/v2/chat-repl.d.ts +38 -0
  211. package/dist/cli/v2/chat-repl.js +338 -0
  212. package/dist/cli/v2/cli-v2-skeleton.d.ts +105 -0
  213. package/dist/cli/v2/cli-v2-skeleton.js +465 -0
  214. package/dist/cli/v2/interactive-prompt.d.ts +52 -0
  215. package/dist/cli/v2/interactive-prompt.js +192 -0
  216. package/dist/cli/v2/persistent-memory.d.ts +70 -0
  217. package/dist/cli/v2/persistent-memory.js +229 -0
  218. package/dist/cli/v2/provider-commands.d.ts +120 -0
  219. package/dist/cli/v2/provider-commands.js +244 -0
  220. package/dist/cli/v2/release-commands.d.ts +29 -0
  221. package/dist/cli/v2/release-commands.js +95 -0
  222. package/dist/cli/v2/workflow-commands.d.ts +72 -0
  223. package/dist/cli/v2/workflow-commands.js +198 -0
  224. package/dist/cli.d.ts +0 -1
  225. package/dist/cli.js +16 -17
  226. package/dist/cockpit/git-numstat.d.ts +10 -0
  227. package/dist/cockpit/git-numstat.js +97 -0
  228. package/dist/cockpit/lsp-status.d.ts +5 -0
  229. package/dist/cockpit/lsp-status.js +51 -0
  230. package/dist/cockpit/types.d.ts +66 -0
  231. package/dist/cockpit/types.js +4 -0
  232. package/dist/cockpit/views/rail-view.d.ts +9 -0
  233. package/dist/cockpit/views/rail-view.js +160 -0
  234. package/dist/commands/agent.d.ts +6 -0
  235. package/dist/commands/agent.js +263 -0
  236. package/dist/commands/appshot.d.ts +15 -0
  237. package/dist/commands/appshot.js +122 -0
  238. package/dist/commands/auth.d.ts +43 -0
  239. package/dist/commands/auth.js +169 -0
  240. package/dist/commands/browser.d.ts +18 -0
  241. package/dist/commands/browser.js +110 -0
  242. package/dist/commands/chat/chat-turn-dag.d.ts +21 -0
  243. package/dist/commands/chat/chat-turn-dag.js +72 -0
  244. package/dist/commands/chat/core.d.ts +27 -0
  245. package/dist/commands/chat/core.js +423 -0
  246. package/dist/commands/chat/index.d.ts +5 -0
  247. package/dist/commands/chat/index.js +5 -0
  248. package/dist/commands/chat/native-root-loop.d.ts +82 -0
  249. package/dist/commands/chat/native-root-loop.js +1589 -0
  250. package/dist/commands/chat/runtime.d.ts +46 -0
  251. package/dist/commands/chat/runtime.js +406 -0
  252. package/dist/commands/chat/slash/commands/control.d.ts +2 -0
  253. package/dist/commands/chat/slash/commands/control.js +196 -0
  254. package/dist/commands/chat/slash/commands/diagnostics.d.ts +2 -0
  255. package/dist/commands/chat/slash/commands/diagnostics.js +64 -0
  256. package/dist/commands/chat/slash/commands/harness.d.ts +2 -0
  257. package/dist/commands/chat/slash/commands/harness.js +21 -0
  258. package/dist/commands/chat/slash/commands/index.d.ts +2 -0
  259. package/dist/commands/chat/slash/commands/index.js +18 -0
  260. package/dist/commands/chat/slash/commands/routing.d.ts +2 -0
  261. package/dist/commands/chat/slash/commands/routing.js +385 -0
  262. package/dist/commands/chat/slash/commands/session.d.ts +2 -0
  263. package/dist/commands/chat/slash/commands/session.js +104 -0
  264. package/dist/commands/chat/slash/commands/tool-plane.d.ts +2 -0
  265. package/dist/commands/chat/slash/commands/tool-plane.js +64 -0
  266. package/dist/commands/chat/slash/commands/ui.d.ts +2 -0
  267. package/dist/commands/chat/slash/commands/ui.js +108 -0
  268. package/dist/commands/chat/slash/context.d.ts +3 -0
  269. package/dist/commands/chat/slash/context.js +9 -0
  270. package/dist/commands/chat/slash/format.d.ts +3 -0
  271. package/dist/commands/chat/slash/format.js +19 -0
  272. package/dist/commands/chat/slash/parser.d.ts +15 -0
  273. package/dist/commands/chat/slash/parser.js +97 -0
  274. package/dist/commands/chat/slash/registry.d.ts +13 -0
  275. package/dist/commands/chat/slash/registry.js +38 -0
  276. package/dist/commands/chat/slash/result.d.ts +7 -0
  277. package/dist/commands/chat/slash/result.js +35 -0
  278. package/dist/commands/chat/slash/types.d.ts +32 -0
  279. package/dist/commands/chat/slash/types.js +1 -0
  280. package/dist/commands/chat/startup.d.ts +68 -0
  281. package/dist/commands/chat/startup.js +150 -0
  282. package/dist/commands/chat/state.d.ts +3 -0
  283. package/dist/commands/chat/state.js +100 -0
  284. package/dist/commands/chat/utils.d.ts +25 -0
  285. package/dist/commands/chat/utils.js +218 -0
  286. package/dist/commands/chat.d.ts +2 -0
  287. package/dist/commands/chat.js +2 -0
  288. package/dist/commands/cockpit/core.d.ts +5 -0
  289. package/dist/commands/cockpit/core.js +91 -0
  290. package/dist/commands/cockpit/render.d.ts +5 -0
  291. package/dist/commands/cockpit/render.js +970 -0
  292. package/dist/commands/cockpit/scroll.d.ts +39 -0
  293. package/dist/commands/cockpit/scroll.js +87 -0
  294. package/dist/commands/cockpit/telemetry.d.ts +30 -0
  295. package/dist/commands/cockpit/telemetry.js +361 -0
  296. package/dist/commands/cockpit/update-loop.d.ts +54 -0
  297. package/dist/commands/cockpit/update-loop.js +285 -0
  298. package/dist/commands/cockpit/utils.d.ts +233 -0
  299. package/dist/commands/cockpit/utils.js +388 -0
  300. package/dist/commands/cockpit.d.ts +8 -0
  301. package/dist/commands/cockpit.js +7 -0
  302. package/dist/commands/codex.d.ts +70 -0
  303. package/dist/commands/codex.js +597 -0
  304. package/dist/commands/consent.d.ts +24 -0
  305. package/dist/commands/consent.js +255 -0
  306. package/dist/commands/cron.d.ts +16 -0
  307. package/dist/commands/cron.js +187 -0
  308. package/dist/commands/dag-from-spec.d.ts +31 -0
  309. package/dist/commands/dag-from-spec.js +344 -0
  310. package/dist/commands/dag.d.ts +10 -0
  311. package/dist/commands/dag.js +512 -0
  312. package/dist/commands/design.d.ts +73 -0
  313. package/dist/commands/design.js +1253 -0
  314. package/dist/commands/diff-runs.d.ts +3 -0
  315. package/dist/commands/diff-runs.js +36 -0
  316. package/dist/commands/do.d.ts +29 -0
  317. package/dist/commands/do.js +196 -0
  318. package/dist/commands/doctor/checks.d.ts +19 -0
  319. package/dist/commands/doctor/checks.js +861 -0
  320. package/dist/commands/doctor/core.d.ts +2 -0
  321. package/dist/commands/doctor/core.js +53 -0
  322. package/dist/commands/doctor/fix-plan.d.ts +69 -0
  323. package/dist/commands/doctor/fix-plan.js +78 -0
  324. package/dist/commands/doctor/fix.d.ts +5 -0
  325. package/dist/commands/doctor/fix.js +1002 -0
  326. package/dist/commands/doctor/report.d.ts +7 -0
  327. package/dist/commands/doctor/report.js +140 -0
  328. package/dist/commands/doctor/utils.d.ts +52 -0
  329. package/dist/commands/doctor/utils.js +124 -0
  330. package/dist/commands/doctor.d.ts +2 -0
  331. package/dist/commands/doctor.js +1 -0
  332. package/dist/commands/goal-interview.d.ts +18 -0
  333. package/dist/commands/goal-interview.js +396 -0
  334. package/dist/commands/goal.d.ts +46 -0
  335. package/dist/commands/goal.js +492 -0
  336. package/dist/commands/google.d.ts +1 -0
  337. package/dist/commands/google.js +27 -0
  338. package/dist/commands/graph.d.ts +71 -0
  339. package/dist/commands/graph.js +208 -0
  340. package/dist/commands/hud.d.ts +57 -0
  341. package/dist/commands/hud.js +1031 -0
  342. package/dist/commands/image.d.ts +16 -0
  343. package/dist/commands/image.js +102 -0
  344. package/dist/commands/init/config.d.ts +8 -0
  345. package/dist/commands/init/config.js +97 -0
  346. package/dist/commands/init/constants.d.ts +7 -0
  347. package/dist/commands/init/constants.js +49 -0
  348. package/dist/commands/init/content.d.ts +12 -0
  349. package/dist/commands/init/content.js +1775 -0
  350. package/dist/commands/init/core.d.ts +2 -0
  351. package/dist/commands/init/core.js +298 -0
  352. package/dist/commands/init/interactive.d.ts +9 -0
  353. package/dist/commands/init/interactive.js +170 -0
  354. package/dist/commands/init/scaffold.d.ts +17 -0
  355. package/dist/commands/init/scaffold.js +146 -0
  356. package/dist/commands/init/types.d.ts +35 -0
  357. package/dist/commands/init/types.js +1 -0
  358. package/dist/commands/init/utils.d.ts +13 -0
  359. package/dist/commands/init/utils.js +107 -0
  360. package/dist/commands/init.d.ts +32 -0
  361. package/dist/commands/init.js +2581 -0
  362. package/dist/commands/inspect.d.ts +9 -0
  363. package/dist/commands/inspect.js +12 -0
  364. package/dist/commands/lsp.d.ts +8 -0
  365. package/dist/commands/lsp.js +60 -0
  366. package/dist/commands/mcp/config.d.ts +32 -0
  367. package/dist/commands/mcp/config.js +286 -0
  368. package/dist/commands/mcp/doctor-fix.d.ts +12 -0
  369. package/dist/commands/mcp/doctor-fix.js +261 -0
  370. package/dist/commands/mcp/doctor.d.ts +55 -0
  371. package/dist/commands/mcp/doctor.js +400 -0
  372. package/dist/commands/mcp/list.d.ts +1 -0
  373. package/dist/commands/mcp/list.js +57 -0
  374. package/dist/commands/mcp/shared.d.ts +50 -0
  375. package/dist/commands/mcp/shared.js +210 -0
  376. package/dist/commands/mcp/test.d.ts +5 -0
  377. package/dist/commands/mcp/test.js +458 -0
  378. package/dist/commands/mcp.d.ts +8 -0
  379. package/dist/commands/mcp.js +5 -0
  380. package/dist/commands/menu.d.ts +4 -0
  381. package/dist/commands/menu.js +213 -0
  382. package/dist/commands/merge.d.ts +9 -0
  383. package/dist/commands/merge.js +363 -0
  384. package/dist/commands/mode.d.ts +3 -0
  385. package/dist/commands/mode.js +60 -0
  386. package/dist/commands/model.d.ts +15 -0
  387. package/dist/commands/model.js +219 -0
  388. package/dist/commands/notice.d.ts +7 -0
  389. package/dist/commands/notice.js +76 -0
  390. package/dist/commands/open-design-agent.d.ts +46 -0
  391. package/dist/commands/open-design-agent.js +569 -0
  392. package/dist/commands/orchestrate.d.ts +18 -0
  393. package/dist/commands/orchestrate.js +284 -0
  394. package/dist/commands/parallel/core.d.ts +34 -0
  395. package/dist/commands/parallel/core.js +296 -0
  396. package/dist/commands/parallel/index.d.ts +5 -0
  397. package/dist/commands/parallel/index.js +5 -0
  398. package/dist/commands/parallel/interactive.d.ts +27 -0
  399. package/dist/commands/parallel/interactive.js +172 -0
  400. package/dist/commands/parallel/orchestrator.d.ts +40 -0
  401. package/dist/commands/parallel/orchestrator.js +564 -0
  402. package/dist/commands/parallel/utils.d.ts +12 -0
  403. package/dist/commands/parallel/utils.js +114 -0
  404. package/dist/commands/parallel/worker.d.ts +43 -0
  405. package/dist/commands/parallel/worker.js +276 -0
  406. package/dist/commands/parallel.d.ts +4 -0
  407. package/dist/commands/parallel.js +3 -0
  408. package/dist/commands/plan.d.ts +6 -0
  409. package/dist/commands/plan.js +113 -0
  410. package/dist/commands/project-index.d.ts +18 -0
  411. package/dist/commands/project-index.js +312 -0
  412. package/dist/commands/provider.d.ts +65 -0
  413. package/dist/commands/provider.js +625 -0
  414. package/dist/commands/rail.d.ts +6 -0
  415. package/dist/commands/rail.js +7 -0
  416. package/dist/commands/replay.d.ts +7 -0
  417. package/dist/commands/replay.js +10 -0
  418. package/dist/commands/research.d.ts +5 -0
  419. package/dist/commands/research.js +48 -0
  420. package/dist/commands/run.d.ts +15 -0
  421. package/dist/commands/run.js +312 -0
  422. package/dist/commands/runs.d.ts +36 -0
  423. package/dist/commands/runs.js +504 -0
  424. package/dist/commands/screenshot.d.ts +10 -0
  425. package/dist/commands/screenshot.js +72 -0
  426. package/dist/commands/skill.d.ts +28 -0
  427. package/dist/commands/skill.js +382 -0
  428. package/dist/commands/snip.d.ts +8 -0
  429. package/dist/commands/snip.js +77 -0
  430. package/dist/commands/spec.d.ts +17 -0
  431. package/dist/commands/spec.js +262 -0
  432. package/dist/commands/specify.d.ts +18 -0
  433. package/dist/commands/specify.js +111 -0
  434. package/dist/commands/star.d.ts +3 -0
  435. package/dist/commands/star.js +35 -0
  436. package/dist/commands/summary.d.ts +5 -0
  437. package/dist/commands/summary.js +445 -0
  438. package/dist/commands/sync.d.ts +6 -0
  439. package/dist/commands/sync.js +129 -0
  440. package/dist/commands/team.d.ts +8 -0
  441. package/dist/commands/team.js +302 -0
  442. package/dist/commands/verify.d.ts +4 -0
  443. package/dist/commands/verify.js +378 -0
  444. package/dist/commands/version.d.ts +7 -0
  445. package/dist/commands/version.js +101 -0
  446. package/dist/commands/web-bridge.d.ts +12 -0
  447. package/dist/commands/web-bridge.js +75 -0
  448. package/dist/commands/why.d.ts +14 -0
  449. package/dist/commands/why.js +46 -0
  450. package/dist/commands/workflow.d.ts +13 -0
  451. package/dist/commands/workflow.js +385 -0
  452. package/dist/contracts/command.d.ts +25 -0
  453. package/dist/contracts/command.js +1 -0
  454. package/dist/contracts/dag.d.ts +142 -0
  455. package/dist/contracts/dag.js +4 -0
  456. package/dist/contracts/decision.d.ts +23 -0
  457. package/dist/contracts/decision.js +1 -0
  458. package/dist/contracts/envelope.d.ts +29 -0
  459. package/dist/contracts/envelope.js +1 -0
  460. package/dist/contracts/errors.d.ts +13 -0
  461. package/dist/contracts/errors.js +15 -0
  462. package/dist/contracts/evidence-bundle.d.ts +52 -0
  463. package/dist/contracts/evidence-bundle.js +1 -0
  464. package/dist/contracts/evidence.d.ts +23 -0
  465. package/dist/contracts/evidence.js +1 -0
  466. package/dist/contracts/goal.d.ts +169 -0
  467. package/dist/contracts/goal.js +4 -0
  468. package/dist/contracts/hud.d.ts +17 -0
  469. package/dist/contracts/hud.js +4 -0
  470. package/dist/contracts/index.d.ts +10 -0
  471. package/dist/contracts/index.js +10 -0
  472. package/dist/contracts/interview.d.ts +106 -0
  473. package/dist/contracts/interview.js +9 -0
  474. package/dist/contracts/orchestration.d.ts +215 -0
  475. package/dist/contracts/orchestration.js +4 -0
  476. package/dist/contracts/proof.d.ts +32 -0
  477. package/dist/contracts/proof.js +1 -0
  478. package/dist/contracts/provider-health.d.ts +79 -0
  479. package/dist/contracts/provider-health.js +57 -0
  480. package/dist/contracts/provider.d.ts +35 -0
  481. package/dist/contracts/provider.js +1 -0
  482. package/dist/contracts/replay.d.ts +95 -0
  483. package/dist/contracts/replay.js +7 -0
  484. package/dist/contracts/run.d.ts +34 -0
  485. package/dist/contracts/run.js +1 -0
  486. package/dist/contracts/safety.d.ts +10 -0
  487. package/dist/contracts/safety.js +4 -0
  488. package/dist/contracts/version.d.ts +21 -0
  489. package/dist/contracts/version.js +1 -0
  490. package/dist/contracts/web-bridge.d.ts +95 -0
  491. package/dist/contracts/web-bridge.js +168 -0
  492. package/dist/contracts/worker-context.d.ts +70 -0
  493. package/dist/contracts/worker-context.js +1 -0
  494. package/dist/evidence/attempt-record.d.ts +78 -0
  495. package/dist/evidence/attempt-record.js +16 -0
  496. package/dist/evidence/bundle-validator.d.ts +7 -0
  497. package/dist/evidence/bundle-validator.js +103 -0
  498. package/dist/evidence/context-snapshot.d.ts +20 -0
  499. package/dist/evidence/context-snapshot.js +81 -0
  500. package/dist/evidence/decision-trace.d.ts +14 -0
  501. package/dist/evidence/decision-trace.js +54 -0
  502. package/dist/evidence/diagnosis.d.ts +15 -0
  503. package/dist/evidence/diagnosis.js +279 -0
  504. package/dist/evidence/evidence-recorder.d.ts +19 -0
  505. package/dist/evidence/evidence-recorder.js +55 -0
  506. package/dist/evidence/evidence-trust-score.d.ts +101 -0
  507. package/dist/evidence/evidence-trust-score.js +408 -0
  508. package/dist/evidence/graph-ontology-relation-gate.d.ts +10 -0
  509. package/dist/evidence/graph-ontology-relation-gate.js +46 -0
  510. package/dist/evidence/headroom-replay-verifier.d.ts +19 -0
  511. package/dist/evidence/headroom-replay-verifier.js +86 -0
  512. package/dist/evidence/index.d.ts +26 -0
  513. package/dist/evidence/index.js +12 -0
  514. package/dist/evidence/proof-trust-cli.d.ts +8 -0
  515. package/dist/evidence/proof-trust-cli.js +27 -0
  516. package/dist/evidence/proof-trust.d.ts +14 -0
  517. package/dist/evidence/proof-trust.js +373 -0
  518. package/dist/evidence/regression-proof-matrix.d.ts +42 -0
  519. package/dist/evidence/regression-proof-matrix.js +72 -0
  520. package/dist/evidence/run-trace.d.ts +103 -0
  521. package/dist/evidence/run-trace.js +191 -0
  522. package/dist/evidence/trust-calibration.d.ts +25 -0
  523. package/dist/evidence/trust-calibration.js +151 -0
  524. package/dist/goal/compiler.d.ts +5 -0
  525. package/dist/goal/compiler.js +350 -0
  526. package/dist/goal/control-loop.d.ts +124 -0
  527. package/dist/goal/control-loop.js +1123 -0
  528. package/dist/goal/ensemble-memory.d.ts +26 -0
  529. package/dist/goal/ensemble-memory.js +55 -0
  530. package/dist/goal/eval-criteria.d.ts +3 -0
  531. package/dist/goal/eval-criteria.js +72 -0
  532. package/dist/goal/evidence.d.ts +20 -0
  533. package/dist/goal/evidence.js +321 -0
  534. package/dist/goal/goal-daemon.d.ts +40 -0
  535. package/dist/goal/goal-daemon.js +318 -0
  536. package/dist/goal/intake.d.ts +48 -0
  537. package/dist/goal/intake.js +561 -0
  538. package/dist/goal/intent-analyzer.d.ts +9 -0
  539. package/dist/goal/intent-analyzer.js +322 -0
  540. package/dist/goal/intent-frame.d.ts +65 -0
  541. package/dist/goal/intent-frame.js +596 -0
  542. package/dist/goal/interview-assimilation.d.ts +13 -0
  543. package/dist/goal/interview-assimilation.js +383 -0
  544. package/dist/goal/interview-question-bank.d.ts +11 -0
  545. package/dist/goal/interview-question-bank.js +225 -0
  546. package/dist/goal/interview-scoring.d.ts +31 -0
  547. package/dist/goal/interview-scoring.js +187 -0
  548. package/dist/goal/interview-session.d.ts +25 -0
  549. package/dist/goal/interview-session.js +116 -0
  550. package/dist/goal/persistence.d.ts +11 -0
  551. package/dist/goal/persistence.js +134 -0
  552. package/dist/goal/prompt-digest.d.ts +13 -0
  553. package/dist/goal/prompt-digest.js +111 -0
  554. package/dist/goal/scoring.d.ts +2 -0
  555. package/dist/goal/scoring.js +69 -0
  556. package/dist/goal/wake-policy.d.ts +26 -0
  557. package/dist/goal/wake-policy.js +58 -0
  558. package/dist/harness/create-harness-task-runner.d.ts +43 -0
  559. package/dist/harness/create-harness-task-runner.js +56 -0
  560. package/dist/harness/execute-harness-run.d.ts +34 -0
  561. package/dist/harness/execute-harness-run.js +109 -0
  562. package/dist/hooks/events.d.ts +71 -0
  563. package/dist/hooks/events.js +1 -0
  564. package/dist/hooks/hook-bus.d.ts +13 -0
  565. package/dist/hooks/hook-bus.js +59 -0
  566. package/dist/hooks/hook-registry.d.ts +6 -0
  567. package/dist/hooks/hook-registry.js +64 -0
  568. package/dist/hooks/index.d.ts +3 -0
  569. package/dist/hooks/index.js +2 -0
  570. package/dist/hud/index.d.ts +9 -0
  571. package/dist/hud/index.js +11 -0
  572. package/dist/hud/live-renderer.d.ts +17 -0
  573. package/dist/hud/live-renderer.js +52 -0
  574. package/dist/hud/render.d.ts +64 -0
  575. package/dist/hud/render.js +960 -0
  576. package/dist/hud/types.d.ts +58 -0
  577. package/dist/hud/types.js +7 -0
  578. package/dist/input/input-artifacts.d.ts +10 -0
  579. package/dist/input/input-artifacts.js +19 -0
  580. package/dist/input/input-envelope.d.ts +86 -0
  581. package/dist/input/input-envelope.js +87 -0
  582. package/dist/integrations/servarr/adapter.d.ts +29 -0
  583. package/dist/integrations/servarr/adapter.js +156 -0
  584. package/dist/integrations/servarr/commands.d.ts +15 -0
  585. package/dist/integrations/servarr/commands.js +119 -0
  586. package/dist/integrations/servarr/schema.d.ts +34 -0
  587. package/dist/integrations/servarr/schema.js +149 -0
  588. package/dist/kimi/ascii-art.d.ts +1 -0
  589. package/dist/kimi/ascii-art.js +23 -0
  590. package/dist/kimi/banner.d.ts +53 -0
  591. package/dist/kimi/banner.js +284 -0
  592. package/dist/kimi/bug-filter.d.ts +15 -0
  593. package/dist/kimi/bug-filter.js +150 -0
  594. package/dist/kimi/capability.d.ts +25 -0
  595. package/dist/kimi/capability.js +68 -0
  596. package/dist/kimi/isolated-home.d.ts +21 -0
  597. package/dist/kimi/isolated-home.js +270 -0
  598. package/dist/kimi/runner.d.ts +74 -0
  599. package/dist/kimi/runner.js +1052 -0
  600. package/dist/kimi/simple-art.d.ts +1 -0
  601. package/dist/kimi/simple-art.js +1 -0
  602. package/dist/kimi/statusline.d.ts +26 -0
  603. package/dist/kimi/statusline.js +142 -0
  604. package/dist/kimi/usage.d.ts +52 -0
  605. package/dist/kimi/usage.js +481 -0
  606. package/dist/kimi/wire-client.d.ts +95 -0
  607. package/dist/kimi/wire-client.js +338 -0
  608. package/dist/lsp/default-config.d.ts +16 -0
  609. package/dist/lsp/default-config.js +26 -0
  610. package/dist/mcp/acp-server.d.ts +2 -0
  611. package/dist/mcp/acp-server.js +357 -0
  612. package/dist/mcp/autoconnect.d.ts +60 -0
  613. package/dist/mcp/autoconnect.js +192 -0
  614. package/dist/mcp/client.d.ts +112 -0
  615. package/dist/mcp/client.js +276 -0
  616. package/dist/mcp/config-permissions.d.ts +23 -0
  617. package/dist/mcp/config-permissions.js +66 -0
  618. package/dist/mcp/consent-flow.d.ts +152 -0
  619. package/dist/mcp/consent-flow.js +329 -0
  620. package/dist/mcp/filesystem-readonly-server.d.ts +2 -0
  621. package/dist/mcp/filesystem-readonly-server.js +320 -0
  622. package/dist/mcp/governance.d.ts +292 -0
  623. package/dist/mcp/governance.js +602 -0
  624. package/dist/mcp/host.d.ts +154 -0
  625. package/dist/mcp/host.js +792 -0
  626. package/dist/mcp/omk-project-server.d.ts +2 -0
  627. package/dist/mcp/omk-project-server.js +1632 -0
  628. package/dist/mcp/omk-web-bridge-server.d.ts +14 -0
  629. package/dist/mcp/omk-web-bridge-server.js +154 -0
  630. package/dist/mcp/permission-resolver.d.ts +67 -0
  631. package/dist/mcp/permission-resolver.js +124 -0
  632. package/dist/mcp/quality-gate.d.ts +36 -0
  633. package/dist/mcp/quality-gate.js +247 -0
  634. package/dist/mcp/quarantine.d.ts +11 -0
  635. package/dist/mcp/quarantine.js +79 -0
  636. package/dist/mcp/secret-scanner.d.ts +195 -0
  637. package/dist/mcp/secret-scanner.js +742 -0
  638. package/dist/mcp/server-catalog.d.ts +36 -0
  639. package/dist/mcp/server-catalog.js +168 -0
  640. package/dist/mcp/shared-secret-registry.d.ts +61 -0
  641. package/dist/mcp/shared-secret-registry.js +171 -0
  642. package/dist/mcp/transports/stdio.d.ts +22 -0
  643. package/dist/mcp/transports/stdio.js +165 -0
  644. package/dist/mcp/transports/streamable-http.d.ts +31 -0
  645. package/dist/mcp/transports/streamable-http.js +289 -0
  646. package/dist/mcp/transports/transport.d.ts +20 -0
  647. package/dist/mcp/transports/transport.js +3 -0
  648. package/dist/memory/embedding.d.ts +11 -0
  649. package/dist/memory/embedding.js +24 -0
  650. package/dist/memory/graph-delta-log.d.ts +137 -0
  651. package/dist/memory/graph-delta-log.js +650 -0
  652. package/dist/memory/graph-viewer.d.ts +72 -0
  653. package/dist/memory/graph-viewer.js +383 -0
  654. package/dist/memory/kuzu-memory-store.d.ts +37 -0
  655. package/dist/memory/kuzu-memory-store.js +453 -0
  656. package/dist/memory/local-graph-memory-store.d.ts +264 -0
  657. package/dist/memory/local-graph-memory-store.js +1875 -0
  658. package/dist/memory/memory-config.d.ts +51 -0
  659. package/dist/memory/memory-config.js +187 -0
  660. package/dist/memory/memory-store.d.ts +66 -0
  661. package/dist/memory/memory-store.js +228 -0
  662. package/dist/memory/ontology-model.d.ts +175 -0
  663. package/dist/memory/ontology-model.js +131 -0
  664. package/dist/metrics/provenance-ratio.d.ts +16 -0
  665. package/dist/metrics/provenance-ratio.js +33 -0
  666. package/dist/openai/image-client.d.ts +103 -0
  667. package/dist/openai/image-client.js +380 -0
  668. package/dist/orchestration/adaptorch-topology.d.ts +59 -0
  669. package/dist/orchestration/adaptorch-topology.js +194 -0
  670. package/dist/orchestration/agent-worker.d.ts +72 -0
  671. package/dist/orchestration/agent-worker.js +278 -0
  672. package/dist/orchestration/capability-agents.d.ts +14 -0
  673. package/dist/orchestration/capability-agents.js +180 -0
  674. package/dist/orchestration/capability-routing.d.ts +65 -0
  675. package/dist/orchestration/capability-routing.js +121 -0
  676. package/dist/orchestration/compiled-dag-executor.d.ts +56 -0
  677. package/dist/orchestration/compiled-dag-executor.js +88 -0
  678. package/dist/orchestration/completion-artifacts.d.ts +37 -0
  679. package/dist/orchestration/completion-artifacts.js +84 -0
  680. package/dist/orchestration/completion-sentinel.d.ts +37 -0
  681. package/dist/orchestration/completion-sentinel.js +66 -0
  682. package/dist/orchestration/contracts/index.d.ts +45 -0
  683. package/dist/orchestration/contracts/index.js +6 -0
  684. package/dist/orchestration/dag-artifacts.d.ts +11 -0
  685. package/dist/orchestration/dag-artifacts.js +42 -0
  686. package/dist/orchestration/dag-compiler-presets.d.ts +20 -0
  687. package/dist/orchestration/dag-compiler-presets.js +476 -0
  688. package/dist/orchestration/dag-compiler-types.d.ts +43 -0
  689. package/dist/orchestration/dag-compiler-types.js +1 -0
  690. package/dist/orchestration/dag-compiler.d.ts +3 -0
  691. package/dist/orchestration/dag-compiler.js +135 -0
  692. package/dist/orchestration/dag.d.ts +196 -0
  693. package/dist/orchestration/dag.js +310 -0
  694. package/dist/orchestration/diagnostics.d.ts +27 -0
  695. package/dist/orchestration/diagnostics.js +262 -0
  696. package/dist/orchestration/enhanced-modes.d.ts +116 -0
  697. package/dist/orchestration/enhanced-modes.js +231 -0
  698. package/dist/orchestration/enhanced-parallel-orchestrator.d.ts +127 -0
  699. package/dist/orchestration/enhanced-parallel-orchestrator.js +734 -0
  700. package/dist/orchestration/ensemble-decision.d.ts +42 -0
  701. package/dist/orchestration/ensemble-decision.js +301 -0
  702. package/dist/orchestration/ensemble.d.ts +22 -0
  703. package/dist/orchestration/ensemble.js +558 -0
  704. package/dist/orchestration/eta.d.ts +10 -0
  705. package/dist/orchestration/eta.js +75 -0
  706. package/dist/orchestration/evidence-check.d.ts +36 -0
  707. package/dist/orchestration/evidence-check.js +257 -0
  708. package/dist/orchestration/evidence-gate.d.ts +34 -0
  709. package/dist/orchestration/evidence-gate.js +513 -0
  710. package/dist/orchestration/execution-planner.d.ts +40 -0
  711. package/dist/orchestration/execution-planner.js +252 -0
  712. package/dist/orchestration/executor.d.ts +11 -0
  713. package/dist/orchestration/executor.js +1072 -0
  714. package/dist/orchestration/hedge-persona-weights.d.ts +25 -0
  715. package/dist/orchestration/hedge-persona-weights.js +43 -0
  716. package/dist/orchestration/interactive-orchestrator.d.ts +134 -0
  717. package/dist/orchestration/interactive-orchestrator.js +450 -0
  718. package/dist/orchestration/log-streamer.d.ts +104 -0
  719. package/dist/orchestration/log-streamer.js +293 -0
  720. package/dist/orchestration/loop-artifacts.d.ts +14 -0
  721. package/dist/orchestration/loop-artifacts.js +20 -0
  722. package/dist/orchestration/loop-controller-headroom.d.ts +6 -0
  723. package/dist/orchestration/loop-controller-headroom.js +33 -0
  724. package/dist/orchestration/loop-controller.d.ts +14 -0
  725. package/dist/orchestration/loop-controller.js +311 -0
  726. package/dist/orchestration/loop-guard.d.ts +28 -0
  727. package/dist/orchestration/loop-guard.js +104 -0
  728. package/dist/orchestration/loop-state.d.ts +86 -0
  729. package/dist/orchestration/loop-state.js +1 -0
  730. package/dist/orchestration/merge-arbiter.d.ts +91 -0
  731. package/dist/orchestration/merge-arbiter.js +376 -0
  732. package/dist/orchestration/node-monitor.d.ts +18 -0
  733. package/dist/orchestration/node-monitor.js +98 -0
  734. package/dist/orchestration/orchestrate-prompt.d.ts +43 -0
  735. package/dist/orchestration/orchestrate-prompt.js +533 -0
  736. package/dist/orchestration/orchestration-state.d.ts +3 -0
  737. package/dist/orchestration/orchestration-state.js +2 -0
  738. package/dist/orchestration/parallel-orchestrator.d.ts +165 -0
  739. package/dist/orchestration/parallel-orchestrator.js +607 -0
  740. package/dist/orchestration/parallel-ui.d.ts +52 -0
  741. package/dist/orchestration/parallel-ui.js +479 -0
  742. package/dist/orchestration/repair-policy.d.ts +20 -0
  743. package/dist/orchestration/repair-policy.js +221 -0
  744. package/dist/orchestration/route-calibration.d.ts +27 -0
  745. package/dist/orchestration/route-calibration.js +123 -0
  746. package/dist/orchestration/routing/inventory.d.ts +9 -0
  747. package/dist/orchestration/routing/inventory.js +273 -0
  748. package/dist/orchestration/routing/mcp-config.d.ts +17 -0
  749. package/dist/orchestration/routing/mcp-config.js +158 -0
  750. package/dist/orchestration/routing/types.d.ts +59 -0
  751. package/dist/orchestration/routing/types.js +4 -0
  752. package/dist/orchestration/routing.d.ts +45 -0
  753. package/dist/orchestration/routing.js +1072 -0
  754. package/dist/orchestration/run-state.d.ts +36 -0
  755. package/dist/orchestration/run-state.js +176 -0
  756. package/dist/orchestration/scheduler.d.ts +11 -0
  757. package/dist/orchestration/scheduler.js +88 -0
  758. package/dist/orchestration/skill-assigner.d.ts +22 -0
  759. package/dist/orchestration/skill-assigner.js +345 -0
  760. package/dist/orchestration/state-machine/index.d.ts +3 -0
  761. package/dist/orchestration/state-machine/index.js +3 -0
  762. package/dist/orchestration/state-machine/node-state-machine.d.ts +24 -0
  763. package/dist/orchestration/state-machine/node-state-machine.js +35 -0
  764. package/dist/orchestration/state-machine/run-state-machine.d.ts +38 -0
  765. package/dist/orchestration/state-machine/run-state-machine.js +161 -0
  766. package/dist/orchestration/state-machine/run-state-manager.d.ts +108 -0
  767. package/dist/orchestration/state-machine/run-state-manager.js +314 -0
  768. package/dist/orchestration/state-persister.d.ts +7 -0
  769. package/dist/orchestration/state-persister.js +84 -0
  770. package/dist/orchestration/task-graph.d.ts +46 -0
  771. package/dist/orchestration/task-graph.js +299 -0
  772. package/dist/orchestration/verification-only.d.ts +28 -0
  773. package/dist/orchestration/verification-only.js +94 -0
  774. package/dist/providers/anthropic-messages-runner.d.ts +17 -0
  775. package/dist/providers/anthropic-messages-runner.js +197 -0
  776. package/dist/providers/attempt-recorder.d.ts +10 -0
  777. package/dist/providers/attempt-recorder.js +38 -0
  778. package/dist/providers/codex-cli-runner.d.ts +11 -0
  779. package/dist/providers/codex-cli-runner.js +144 -0
  780. package/dist/providers/context-preflight.d.ts +47 -0
  781. package/dist/providers/context-preflight.js +134 -0
  782. package/dist/providers/deepseek/deepseek-balance.d.ts +29 -0
  783. package/dist/providers/deepseek/deepseek-balance.js +80 -0
  784. package/dist/providers/deepseek/deepseek-client.d.ts +53 -0
  785. package/dist/providers/deepseek/deepseek-client.js +164 -0
  786. package/dist/providers/deepseek/deepseek-config.d.ts +89 -0
  787. package/dist/providers/deepseek/deepseek-config.js +272 -0
  788. package/dist/providers/deepseek/deepseek-errors.d.ts +5 -0
  789. package/dist/providers/deepseek/deepseek-errors.js +48 -0
  790. package/dist/providers/deepseek/deepseek-provider.d.ts +10 -0
  791. package/dist/providers/deepseek/deepseek-provider.js +162 -0
  792. package/dist/providers/deepseek/deepseek-super-config.d.ts +31 -0
  793. package/dist/providers/deepseek/deepseek-super-config.js +136 -0
  794. package/dist/providers/deepseek-provider.d.ts +8 -0
  795. package/dist/providers/deepseek-provider.js +78 -0
  796. package/dist/providers/health.d.ts +16 -0
  797. package/dist/providers/health.js +101 -0
  798. package/dist/providers/index.d.ts +23 -0
  799. package/dist/providers/index.js +23 -0
  800. package/dist/providers/kimi-provider-failure.d.ts +8 -0
  801. package/dist/providers/kimi-provider-failure.js +56 -0
  802. package/dist/providers/kimi-provider.d.ts +7 -0
  803. package/dist/providers/kimi-provider.js +27 -0
  804. package/dist/providers/model-registry.d.ts +104 -0
  805. package/dist/providers/model-registry.js +677 -0
  806. package/dist/providers/model-table.d.ts +24 -0
  807. package/dist/providers/model-table.js +140 -0
  808. package/dist/providers/model-tabs.d.ts +33 -0
  809. package/dist/providers/model-tabs.js +98 -0
  810. package/dist/providers/openai-compatible-runner.d.ts +17 -0
  811. package/dist/providers/openai-compatible-runner.js +180 -0
  812. package/dist/providers/provider-health.d.ts +46 -0
  813. package/dist/providers/provider-health.js +200 -0
  814. package/dist/providers/provider-router.d.ts +8 -0
  815. package/dist/providers/provider-router.js +174 -0
  816. package/dist/providers/provider-runtime.d.ts +17 -0
  817. package/dist/providers/provider-runtime.js +270 -0
  818. package/dist/providers/provider-stats.d.ts +56 -0
  819. package/dist/providers/provider-stats.js +303 -0
  820. package/dist/providers/provider-task-runner.d.ts +23 -0
  821. package/dist/providers/provider-task-runner.js +1202 -0
  822. package/dist/providers/provider.d.ts +76 -0
  823. package/dist/providers/provider.js +9 -0
  824. package/dist/providers/router.d.ts +14 -0
  825. package/dist/providers/router.js +563 -0
  826. package/dist/providers/runner/deepseek-helpers.d.ts +38 -0
  827. package/dist/providers/runner/deepseek-helpers.js +150 -0
  828. package/dist/providers/runner/env.d.ts +12 -0
  829. package/dist/providers/runner/env.js +98 -0
  830. package/dist/providers/runner/execution.d.ts +26 -0
  831. package/dist/providers/runner/execution.js +42 -0
  832. package/dist/providers/runner/helpers.d.ts +9 -0
  833. package/dist/providers/runner/helpers.js +38 -0
  834. package/dist/providers/runner/results.d.ts +26 -0
  835. package/dist/providers/runner/results.js +104 -0
  836. package/dist/providers/thinking-levels.d.ts +7 -0
  837. package/dist/providers/thinking-levels.js +72 -0
  838. package/dist/providers/types.d.ts +143 -0
  839. package/dist/providers/types.js +60 -0
  840. package/dist/replay/differ.d.ts +5 -0
  841. package/dist/replay/differ.js +314 -0
  842. package/dist/replay/index.d.ts +6 -0
  843. package/dist/replay/index.js +4 -0
  844. package/dist/replay/inspector.d.ts +14 -0
  845. package/dist/replay/inspector.js +264 -0
  846. package/dist/replay/manifest-builder.d.ts +11 -0
  847. package/dist/replay/manifest-builder.js +184 -0
  848. package/dist/replay/replay-engine.d.ts +18 -0
  849. package/dist/replay/replay-engine.js +265 -0
  850. package/dist/runtime/adapter.d.ts +77 -0
  851. package/dist/runtime/adapter.js +28 -0
  852. package/dist/runtime/advanced-control-loop.d.ts +60 -0
  853. package/dist/runtime/advanced-control-loop.js +136 -0
  854. package/dist/runtime/agent-runtime.d.ts +162 -0
  855. package/dist/runtime/agent-runtime.js +31 -0
  856. package/dist/runtime/authority-matrix.d.ts +23 -0
  857. package/dist/runtime/authority-matrix.js +159 -0
  858. package/dist/runtime/blast-radius.d.ts +10 -0
  859. package/dist/runtime/blast-radius.js +14 -0
  860. package/dist/runtime/cache-stable-session.d.ts +55 -0
  861. package/dist/runtime/cache-stable-session.js +108 -0
  862. package/dist/runtime/capability-injection.d.ts +39 -0
  863. package/dist/runtime/capability-injection.js +93 -0
  864. package/dist/runtime/chat-advisory-runtime.d.ts +2 -0
  865. package/dist/runtime/chat-advisory-runtime.js +74 -0
  866. package/dist/runtime/child-env.d.ts +31 -0
  867. package/dist/runtime/child-env.js +131 -0
  868. package/dist/runtime/codex-cli-runtime.d.ts +10 -0
  869. package/dist/runtime/codex-cli-runtime.js +80 -0
  870. package/dist/runtime/codex-runtime.d.ts +38 -0
  871. package/dist/runtime/codex-runtime.js +286 -0
  872. package/dist/runtime/command-bus.d.ts +13 -0
  873. package/dist/runtime/command-bus.js +57 -0
  874. package/dist/runtime/context-broker-converter.d.ts +9 -0
  875. package/dist/runtime/context-broker-converter.js +126 -0
  876. package/dist/runtime/context-broker.d.ts +34 -0
  877. package/dist/runtime/context-broker.js +339 -0
  878. package/dist/runtime/context-budget-optimizer.d.ts +73 -0
  879. package/dist/runtime/context-budget-optimizer.js +300 -0
  880. package/dist/runtime/context-capsule.d.ts +81 -0
  881. package/dist/runtime/context-capsule.js +46 -0
  882. package/dist/runtime/contracts/command-envelope.d.ts +99 -0
  883. package/dist/runtime/contracts/command-envelope.js +5 -0
  884. package/dist/runtime/contracts/evidence.d.ts +139 -0
  885. package/dist/runtime/contracts/evidence.js +134 -0
  886. package/dist/runtime/contracts/reasoning-trace.d.ts +120 -0
  887. package/dist/runtime/contracts/reasoning-trace.js +10 -0
  888. package/dist/runtime/contracts/router-v2.d.ts +44 -0
  889. package/dist/runtime/contracts/router-v2.js +4 -0
  890. package/dist/runtime/contracts/shared.d.ts +61 -0
  891. package/dist/runtime/contracts/shared.js +12 -0
  892. package/dist/runtime/contracts/weakness-remediation.d.ts +83 -0
  893. package/dist/runtime/contracts/weakness-remediation.js +44 -0
  894. package/dist/runtime/core-verified-preset.d.ts +37 -0
  895. package/dist/runtime/core-verified-preset.js +205 -0
  896. package/dist/runtime/data-retention-gate.d.ts +42 -0
  897. package/dist/runtime/data-retention-gate.js +123 -0
  898. package/dist/runtime/debloat-nlp.d.ts +140 -0
  899. package/dist/runtime/debloat-nlp.js +398 -0
  900. package/dist/runtime/deepseek-runtime.d.ts +32 -0
  901. package/dist/runtime/deepseek-runtime.js +276 -0
  902. package/dist/runtime/external-cli-adapter.d.ts +29 -0
  903. package/dist/runtime/external-cli-adapter.js +296 -0
  904. package/dist/runtime/freedomd-evidence-envelope.d.ts +57 -0
  905. package/dist/runtime/freedomd-evidence-envelope.js +110 -0
  906. package/dist/runtime/freedomd-exception.d.ts +32 -0
  907. package/dist/runtime/freedomd-exception.js +95 -0
  908. package/dist/runtime/freedomd-incidents.d.ts +23 -0
  909. package/dist/runtime/freedomd-incidents.js +103 -0
  910. package/dist/runtime/freedomd-policy.d.ts +35 -0
  911. package/dist/runtime/freedomd-policy.js +114 -0
  912. package/dist/runtime/freedomd-router.d.ts +66 -0
  913. package/dist/runtime/freedomd-router.js +433 -0
  914. package/dist/runtime/glm-api-runtime.d.ts +4 -0
  915. package/dist/runtime/glm-api-runtime.js +15 -0
  916. package/dist/runtime/headroom-aware-loop-decision.d.ts +21 -0
  917. package/dist/runtime/headroom-aware-loop-decision.js +67 -0
  918. package/dist/runtime/headroom-loop-risk.d.ts +19 -0
  919. package/dist/runtime/headroom-loop-risk.js +43 -0
  920. package/dist/runtime/headroom-policy.d.ts +50 -0
  921. package/dist/runtime/headroom-policy.js +184 -0
  922. package/dist/runtime/index.d.ts +9 -0
  923. package/dist/runtime/index.js +9 -0
  924. package/dist/runtime/kimi-api-runtime.d.ts +60 -0
  925. package/dist/runtime/kimi-api-runtime.js +455 -0
  926. package/dist/runtime/kimi-print-runtime.d.ts +10 -0
  927. package/dist/runtime/kimi-print-runtime.js +108 -0
  928. package/dist/runtime/kimi-wire-protocol-runtime.d.ts +44 -0
  929. package/dist/runtime/kimi-wire-protocol-runtime.js +452 -0
  930. package/dist/runtime/kimi-wire-runtime.d.ts +17 -0
  931. package/dist/runtime/kimi-wire-runtime.js +112 -0
  932. package/dist/runtime/legacy-bridge.d.ts +14 -0
  933. package/dist/runtime/legacy-bridge.js +27 -0
  934. package/dist/runtime/local-llm-runtime.d.ts +33 -0
  935. package/dist/runtime/local-llm-runtime.js +222 -0
  936. package/dist/runtime/mimo-api-runtime.d.ts +13 -0
  937. package/dist/runtime/mimo-api-runtime.js +24 -0
  938. package/dist/runtime/nlg-renderer.d.ts +38 -0
  939. package/dist/runtime/nlg-renderer.js +132 -0
  940. package/dist/runtime/ouroboros-policy.d.ts +57 -0
  941. package/dist/runtime/ouroboros-policy.js +134 -0
  942. package/dist/runtime/output-router.d.ts +20 -0
  943. package/dist/runtime/output-router.js +171 -0
  944. package/dist/runtime/private-stderr.d.ts +13 -0
  945. package/dist/runtime/private-stderr.js +69 -0
  946. package/dist/runtime/process-session.d.ts +27 -0
  947. package/dist/runtime/process-session.js +35 -0
  948. package/dist/runtime/prompt-envelope.d.ts +28 -0
  949. package/dist/runtime/prompt-envelope.js +78 -0
  950. package/dist/runtime/proof-bundle-trust.d.ts +74 -0
  951. package/dist/runtime/proof-bundle-trust.js +100 -0
  952. package/dist/runtime/provider-event-normalizer.d.ts +117 -0
  953. package/dist/runtime/provider-event-normalizer.js +454 -0
  954. package/dist/runtime/provider-maturity-gate.d.ts +43 -0
  955. package/dist/runtime/provider-maturity-gate.js +127 -0
  956. package/dist/runtime/provider-sovereignty.d.ts +81 -0
  957. package/dist/runtime/provider-sovereignty.js +285 -0
  958. package/dist/runtime/provider-tool-contracts.d.ts +24 -0
  959. package/dist/runtime/provider-tool-contracts.js +56 -0
  960. package/dist/runtime/public-surface.d.ts +93 -0
  961. package/dist/runtime/public-surface.js +146 -0
  962. package/dist/runtime/reasoning-trace.d.ts +46 -0
  963. package/dist/runtime/reasoning-trace.js +289 -0
  964. package/dist/runtime/recovery-artifact-store.d.ts +39 -0
  965. package/dist/runtime/recovery-artifact-store.js +111 -0
  966. package/dist/runtime/renderers.d.ts +33 -0
  967. package/dist/runtime/renderers.js +221 -0
  968. package/dist/runtime/router-v2-scoring.d.ts +16 -0
  969. package/dist/runtime/router-v2-scoring.js +156 -0
  970. package/dist/runtime/runtime-backed-task-runner.d.ts +21 -0
  971. package/dist/runtime/runtime-backed-task-runner.js +456 -0
  972. package/dist/runtime/runtime-bootstrap.d.ts +33 -0
  973. package/dist/runtime/runtime-bootstrap.js +277 -0
  974. package/dist/runtime/runtime-failure-classifier.d.ts +15 -0
  975. package/dist/runtime/runtime-failure-classifier.js +107 -0
  976. package/dist/runtime/runtime-health-probes.d.ts +30 -0
  977. package/dist/runtime/runtime-health-probes.js +102 -0
  978. package/dist/runtime/runtime-registry.d.ts +23 -0
  979. package/dist/runtime/runtime-registry.js +95 -0
  980. package/dist/runtime/runtime-router.d.ts +60 -0
  981. package/dist/runtime/runtime-router.js +1174 -0
  982. package/dist/runtime/sandbox-profile.d.ts +54 -0
  983. package/dist/runtime/sandbox-profile.js +136 -0
  984. package/dist/runtime/slash-commands.d.ts +46 -0
  985. package/dist/runtime/slash-commands.js +652 -0
  986. package/dist/runtime/stable-json.d.ts +9 -0
  987. package/dist/runtime/stable-json.js +45 -0
  988. package/dist/runtime/structured-compaction.d.ts +107 -0
  989. package/dist/runtime/structured-compaction.js +414 -0
  990. package/dist/runtime/tool-call-repair.d.ts +35 -0
  991. package/dist/runtime/tool-call-repair.js +181 -0
  992. package/dist/runtime/tool-dispatch-contracts.d.ts +102 -0
  993. package/dist/runtime/tool-dispatch-contracts.js +171 -0
  994. package/dist/runtime/tool-plane.d.ts +31 -0
  995. package/dist/runtime/tool-plane.js +160 -0
  996. package/dist/runtime/tool-proxy.d.ts +20 -0
  997. package/dist/runtime/tool-proxy.js +109 -0
  998. package/dist/runtime/tool-registry-contract.d.ts +40 -0
  999. package/dist/runtime/tool-registry-contract.js +52 -0
  1000. package/dist/runtime/ui-components.d.ts +64 -0
  1001. package/dist/runtime/ui-components.js +232 -0
  1002. package/dist/runtime/weakness-remediation-index.d.ts +27 -0
  1003. package/dist/runtime/weakness-remediation-index.js +37 -0
  1004. package/dist/runtime/weights-config.d.ts +90 -0
  1005. package/dist/runtime/weights-config.js +249 -0
  1006. package/dist/runtime/worker-manifest.d.ts +34 -0
  1007. package/dist/runtime/worker-manifest.js +204 -0
  1008. package/dist/safety/approval-policy.d.ts +4 -0
  1009. package/dist/safety/approval-policy.js +33 -0
  1010. package/dist/safety/enforcement-engine.d.ts +89 -0
  1011. package/dist/safety/enforcement-engine.js +279 -0
  1012. package/dist/safety/guard-hooks.d.ts +3 -0
  1013. package/dist/safety/guard-hooks.js +64 -0
  1014. package/dist/safety/tool-authority-gate.d.ts +102 -0
  1015. package/dist/safety/tool-authority-gate.js +200 -0
  1016. package/dist/schema/command.schema.d.ts +121 -0
  1017. package/dist/schema/command.schema.js +25 -0
  1018. package/dist/schema/decision.schema.d.ts +57 -0
  1019. package/dist/schema/decision.schema.js +32 -0
  1020. package/dist/schema/envelope.schema.d.ts +216 -0
  1021. package/dist/schema/envelope.schema.js +38 -0
  1022. package/dist/schema/error.schema.d.ts +51 -0
  1023. package/dist/schema/error.schema.js +12 -0
  1024. package/dist/schema/evidence-bundle.schema.d.ts +196 -0
  1025. package/dist/schema/evidence-bundle.schema.js +38 -0
  1026. package/dist/schema/evidence.schema.d.ts +58 -0
  1027. package/dist/schema/evidence.schema.js +31 -0
  1028. package/dist/schema/index.d.ts +10 -0
  1029. package/dist/schema/index.js +10 -0
  1030. package/dist/schema/proof-bundle.schema.d.ts +150 -0
  1031. package/dist/schema/proof-bundle.schema.js +41 -0
  1032. package/dist/schema/provider.schema.d.ts +138 -0
  1033. package/dist/schema/provider.schema.js +35 -0
  1034. package/dist/schema/run-manifest.schema.d.ts +168 -0
  1035. package/dist/schema/run-manifest.schema.js +35 -0
  1036. package/dist/schema/version.schema.d.ts +64 -0
  1037. package/dist/schema/version.schema.js +21 -0
  1038. package/dist/theme/ansi.d.ts +15 -0
  1039. package/dist/theme/ansi.js +48 -0
  1040. package/dist/theme/colors.d.ts +87 -0
  1041. package/dist/theme/colors.js +105 -0
  1042. package/dist/theme/extended-palette.d.ts +85 -0
  1043. package/dist/theme/extended-palette.js +108 -0
  1044. package/dist/theme/external-theme-adapters.d.ts +27 -0
  1045. package/dist/theme/external-theme-adapters.js +52 -0
  1046. package/dist/theme/hud-theme.d.ts +6 -0
  1047. package/dist/theme/hud-theme.js +41 -0
  1048. package/dist/theme/index.d.ts +12 -0
  1049. package/dist/theme/index.js +20 -0
  1050. package/dist/theme/layout.d.ts +24 -0
  1051. package/dist/theme/layout.js +160 -0
  1052. package/dist/theme/library-effects.d.ts +12 -0
  1053. package/dist/theme/library-effects.js +47 -0
  1054. package/dist/theme/metrics.d.ts +23 -0
  1055. package/dist/theme/metrics.js +93 -0
  1056. package/dist/theme/parallel.d.ts +68 -0
  1057. package/dist/theme/parallel.js +356 -0
  1058. package/dist/theme/working-indicator.d.ts +38 -0
  1059. package/dist/theme/working-indicator.js +149 -0
  1060. package/dist/tui/model.d.ts +28 -0
  1061. package/dist/tui/model.js +1 -0
  1062. package/dist/tui/terminal-frame-renderer.d.ts +27 -0
  1063. package/dist/tui/terminal-frame-renderer.js +130 -0
  1064. package/dist/tui/views/capabilities-view.d.ts +3 -0
  1065. package/dist/tui/views/capabilities-view.js +13 -0
  1066. package/dist/tui/views/common.d.ts +11 -0
  1067. package/dist/tui/views/common.js +35 -0
  1068. package/dist/tui/views/dag-view.d.ts +3 -0
  1069. package/dist/tui/views/dag-view.js +12 -0
  1070. package/dist/tui/views/evidence-view.d.ts +3 -0
  1071. package/dist/tui/views/evidence-view.js +18 -0
  1072. package/dist/tui/views/index.d.ts +4 -0
  1073. package/dist/tui/views/index.js +3 -0
  1074. package/dist/ui/omk-sigil.d.ts +13 -0
  1075. package/dist/ui/omk-sigil.js +268 -0
  1076. package/dist/ui/omk-working-sweep.d.ts +61 -0
  1077. package/dist/ui/omk-working-sweep.js +406 -0
  1078. package/dist/util/agent-schema.d.ts +24 -0
  1079. package/dist/util/agent-schema.js +293 -0
  1080. package/dist/util/appshot-store.d.ts +68 -0
  1081. package/dist/util/appshot-store.js +506 -0
  1082. package/dist/util/chat-agent-mode.d.ts +184 -0
  1083. package/dist/util/chat-agent-mode.js +938 -0
  1084. package/dist/util/chat-cockpit.d.ts +56 -0
  1085. package/dist/util/chat-cockpit.js +389 -0
  1086. package/dist/util/chat-startup.d.ts +35 -0
  1087. package/dist/util/chat-startup.js +330 -0
  1088. package/dist/util/chat-state.d.ts +27 -0
  1089. package/dist/util/chat-state.js +105 -0
  1090. package/dist/util/checkpoint.d.ts +21 -0
  1091. package/dist/util/checkpoint.js +238 -0
  1092. package/dist/util/cli-contract.d.ts +46 -0
  1093. package/dist/util/cli-contract.js +72 -0
  1094. package/dist/util/clipboard-image.d.ts +49 -0
  1095. package/dist/util/clipboard-image.js +263 -0
  1096. package/dist/util/command-envelope.d.ts +19 -0
  1097. package/dist/util/command-envelope.js +31 -0
  1098. package/dist/util/cron-engine.d.ts +24 -0
  1099. package/dist/util/cron-engine.js +227 -0
  1100. package/dist/util/events-logger.d.ts +30 -0
  1101. package/dist/util/events-logger.js +142 -0
  1102. package/dist/util/execution-selection.d.ts +13 -0
  1103. package/dist/util/execution-selection.js +82 -0
  1104. package/dist/util/first-run-star.d.ts +58 -0
  1105. package/dist/util/first-run-star.js +264 -0
  1106. package/dist/util/fs/core.d.ts +5 -0
  1107. package/dist/util/fs/core.js +35 -0
  1108. package/dist/util/fs/internal.d.ts +14 -0
  1109. package/dist/util/fs/internal.js +169 -0
  1110. package/dist/util/fs/kimi-sync.d.ts +41 -0
  1111. package/dist/util/fs/kimi-sync.js +495 -0
  1112. package/dist/util/fs/logo.d.ts +2 -0
  1113. package/dist/util/fs/logo.js +78 -0
  1114. package/dist/util/fs/manifest.d.ts +6 -0
  1115. package/dist/util/fs/manifest.js +40 -0
  1116. package/dist/util/fs/mcp-diagnose.d.ts +15 -0
  1117. package/dist/util/fs/mcp-diagnose.js +205 -0
  1118. package/dist/util/fs/mcp-runtime-config.d.ts +23 -0
  1119. package/dist/util/fs/mcp-runtime-config.js +424 -0
  1120. package/dist/util/fs/paths.d.ts +13 -0
  1121. package/dist/util/fs/paths.js +82 -0
  1122. package/dist/util/fs/preflight.d.ts +27 -0
  1123. package/dist/util/fs/preflight.js +271 -0
  1124. package/dist/util/fs.d.ts +8 -0
  1125. package/dist/util/fs.js +8 -0
  1126. package/dist/util/git.d.ts +11 -0
  1127. package/dist/util/git.js +39 -0
  1128. package/dist/util/hash.d.ts +2 -0
  1129. package/dist/util/hash.js +13 -0
  1130. package/dist/util/help-text.d.ts +1 -0
  1131. package/dist/util/help-text.js +60 -0
  1132. package/dist/util/i18n.d.ts +10 -0
  1133. package/dist/util/i18n.js +848 -0
  1134. package/dist/util/json-envelope.d.ts +15 -0
  1135. package/dist/util/json-envelope.js +28 -0
  1136. package/dist/util/mcp-preflight.d.ts +26 -0
  1137. package/dist/util/mcp-preflight.js +29 -0
  1138. package/dist/util/mode-preset.d.ts +29 -0
  1139. package/dist/util/mode-preset.js +222 -0
  1140. package/dist/util/mode-selector.d.ts +6 -0
  1141. package/dist/util/mode-selector.js +74 -0
  1142. package/dist/util/output-buffer.d.ts +12 -0
  1143. package/dist/util/output-buffer.js +59 -0
  1144. package/dist/util/process-tree.d.ts +18 -0
  1145. package/dist/util/process-tree.js +102 -0
  1146. package/dist/util/project-root.d.ts +27 -0
  1147. package/dist/util/project-root.js +382 -0
  1148. package/dist/util/provider-usage.d.ts +2 -0
  1149. package/dist/util/provider-usage.js +1 -0
  1150. package/dist/util/reasoning-nlp.d.ts +84 -0
  1151. package/dist/util/reasoning-nlp.js +325 -0
  1152. package/dist/util/resource-profile.d.ts +32 -0
  1153. package/dist/util/resource-profile.js +219 -0
  1154. package/dist/util/run-store.d.ts +38 -0
  1155. package/dist/util/run-store.js +151 -0
  1156. package/dist/util/run-view-model.d.ts +111 -0
  1157. package/dist/util/run-view-model.js +333 -0
  1158. package/dist/util/runtime-profile.d.ts +34 -0
  1159. package/dist/util/runtime-profile.js +149 -0
  1160. package/dist/util/runtime-scope.d.ts +2 -0
  1161. package/dist/util/runtime-scope.js +19 -0
  1162. package/dist/util/scoped-agent-file.d.ts +47 -0
  1163. package/dist/util/scoped-agent-file.js +121 -0
  1164. package/dist/util/screenshot-store.d.ts +42 -0
  1165. package/dist/util/screenshot-store.js +340 -0
  1166. package/dist/util/secret-mask.d.ts +5 -0
  1167. package/dist/util/secret-mask.js +41 -0
  1168. package/dist/util/session.d.ts +19 -0
  1169. package/dist/util/session.js +81 -0
  1170. package/dist/util/shell.d.ts +30 -0
  1171. package/dist/util/shell.js +350 -0
  1172. package/dist/util/snippet.d.ts +17 -0
  1173. package/dist/util/snippet.js +110 -0
  1174. package/dist/util/sync-manifest.d.ts +13 -0
  1175. package/dist/util/sync-manifest.js +22 -0
  1176. package/dist/util/terminal-input.d.ts +45 -0
  1177. package/dist/util/terminal-input.js +67 -0
  1178. package/dist/util/terminal-kit-bridge.d.ts +24 -0
  1179. package/dist/util/terminal-kit-bridge.js +60 -0
  1180. package/dist/util/terminal-layout.d.ts +18 -0
  1181. package/dist/util/terminal-layout.js +112 -0
  1182. package/dist/util/terminal-owner.d.ts +20 -0
  1183. package/dist/util/terminal-owner.js +95 -0
  1184. package/dist/util/theme.d.ts +9 -0
  1185. package/dist/util/theme.js +9 -0
  1186. package/dist/util/timeout-config.d.ts +18 -0
  1187. package/dist/util/timeout-config.js +101 -0
  1188. package/dist/util/todo-sync.d.ts +58 -0
  1189. package/dist/util/todo-sync.js +473 -0
  1190. package/dist/util/update-check.d.ts +94 -0
  1191. package/dist/util/update-check.js +355 -0
  1192. package/dist/util/usage-view-model.d.ts +22 -0
  1193. package/dist/util/usage-view-model.js +57 -0
  1194. package/dist/util/user-visible-output.d.ts +19 -0
  1195. package/dist/util/user-visible-output.js +48 -0
  1196. package/dist/util/version.d.ts +4 -0
  1197. package/dist/util/version.js +52 -0
  1198. package/dist/util/worktree.d.ts +10 -0
  1199. package/dist/util/worktree.js +165 -0
  1200. package/dist/ux/explain-loop-decision.d.ts +4 -0
  1201. package/dist/ux/explain-loop-decision.js +55 -0
  1202. package/dist/ux/intent-router.d.ts +15 -0
  1203. package/dist/ux/intent-router.js +64 -0
  1204. package/dist/ux/natural-entrypoint.d.ts +21 -0
  1205. package/dist/ux/natural-entrypoint.js +122 -0
  1206. package/dist/version.d.ts +13 -0
  1207. package/dist/version.js +22 -0
  1208. package/dist/web-bridge/host.d.ts +8 -0
  1209. package/dist/web-bridge/host.js +109 -0
  1210. package/dist/web-bridge/native-host.d.ts +6 -0
  1211. package/dist/web-bridge/native-host.js +40 -0
  1212. package/dist/web-bridge/status.d.ts +84 -0
  1213. package/dist/web-bridge/status.js +201 -0
  1214. package/docs/2026-05-01-16gb-lite-mode.md +37 -0
  1215. package/docs/2026-05-01-critical-issues-and-improvements.md +361 -0
  1216. package/docs/2026-05-01-dag-ensemble-runtime.md +74 -0
  1217. package/docs/2026-05-02-p1-p2-hardening-handoff.md +139 -0
  1218. package/docs/2026-05-05-adjustable-timeouts-and-cron-jobs.md +252 -0
  1219. package/docs/2026-05-08-omk-hardening-plan.md +62 -0
  1220. package/docs/2026-05-14/critical-issues.md +20 -0
  1221. package/docs/2026-05-14/improvements.md +14 -0
  1222. package/docs/2026-05-14/init-checklist.md +25 -0
  1223. package/docs/2026-05-14/plan.md +20 -0
  1224. package/docs/2026-05-15/critical-issues.md +20 -0
  1225. package/docs/2026-05-15/improvements.md +14 -0
  1226. package/docs/2026-05-15/init-checklist.md +25 -0
  1227. package/docs/2026-05-15/plan.md +20 -0
  1228. package/docs/2026-05-16/critical-issues.md +20 -0
  1229. package/docs/2026-05-16/improvements.md +14 -0
  1230. package/docs/2026-05-16/init-checklist.md +25 -0
  1231. package/docs/2026-05-16/plan.md +20 -0
  1232. package/docs/2026-05-17/critical-issues.md +20 -0
  1233. package/docs/2026-05-17/improvements.md +14 -0
  1234. package/docs/2026-05-17/init-checklist.md +25 -0
  1235. package/docs/2026-05-17/plan.md +20 -0
  1236. package/docs/2026-05-18/improvements.md +14 -0
  1237. package/docs/2026-05-18/init-checklist.md +25 -0
  1238. package/docs/2026-05-18/plan.md +20 -0
  1239. package/docs/2026-05-18-critical-issues-and-improvements.md +441 -0
  1240. package/docs/2026-05-18-project-direction.md +223 -0
  1241. package/docs/2026-05-19/critical-issues.md +20 -0
  1242. package/docs/2026-05-19/improvements.md +14 -0
  1243. package/docs/2026-05-19/init-checklist.md +25 -0
  1244. package/docs/2026-05-19/plan.md +20 -0
  1245. package/docs/2026-05-20/critical-issues.md +20 -0
  1246. package/docs/2026-05-20/improvements.md +14 -0
  1247. package/docs/2026-05-20/init-checklist.md +25 -0
  1248. package/docs/2026-05-20/plan.md +20 -0
  1249. package/docs/2026-05-21/critical-issues.md +20 -0
  1250. package/docs/2026-05-21/improvements.md +14 -0
  1251. package/docs/2026-05-21/init-checklist.md +25 -0
  1252. package/docs/2026-05-21/plan.md +20 -0
  1253. package/docs/2026-05-22/critical-issues.md +20 -0
  1254. package/docs/2026-05-22/improvements.md +14 -0
  1255. package/docs/2026-05-22/init-checklist.md +25 -0
  1256. package/docs/2026-05-22/plan.md +20 -0
  1257. package/docs/2026-05-23/critical-issues.md +20 -0
  1258. package/docs/2026-05-23/improvements.md +14 -0
  1259. package/docs/2026-05-23/init-checklist.md +25 -0
  1260. package/docs/2026-05-23/plan.md +20 -0
  1261. package/docs/2026-05-24/critical-issues.md +30 -0
  1262. package/docs/2026-05-24/improvements.md +23 -0
  1263. package/docs/2026-05-24/init-checklist.md +25 -0
  1264. package/docs/2026-05-24/plan.md +22 -0
  1265. package/docs/2026-05-25/critical-issues.md +20 -0
  1266. package/docs/2026-05-25/improvements.md +14 -0
  1267. package/docs/2026-05-25/init-checklist.md +25 -0
  1268. package/docs/2026-05-25/plan.md +20 -0
  1269. package/docs/2026-05-26/critical-issues.md +20 -0
  1270. package/docs/2026-05-26/improvements.md +14 -0
  1271. package/docs/2026-05-26/init-checklist.md +25 -0
  1272. package/docs/2026-05-26/plan.md +20 -0
  1273. package/docs/2026-05-27/critical-issues.md +20 -0
  1274. package/docs/2026-05-27/improvements.md +14 -0
  1275. package/docs/2026-05-27/init-checklist.md +25 -0
  1276. package/docs/2026-05-27/plan.md +20 -0
  1277. package/docs/2026-05-28/critical-issues.md +20 -0
  1278. package/docs/2026-05-28/improvements.md +14 -0
  1279. package/docs/2026-05-28/init-checklist.md +25 -0
  1280. package/docs/2026-05-28/plan.md +20 -0
  1281. package/docs/2026-05-29/critical-issues.md +20 -0
  1282. package/docs/2026-05-29/improvements.md +14 -0
  1283. package/docs/2026-05-29/init-checklist.md +25 -0
  1284. package/docs/2026-05-29/plan.md +20 -0
  1285. package/docs/2026-05-30/critical-issues.md +20 -0
  1286. package/docs/2026-05-30/improvements.md +14 -0
  1287. package/docs/2026-05-30/init-checklist.md +25 -0
  1288. package/docs/2026-05-30/plan.md +20 -0
  1289. package/docs/2026-05-31/critical-issues.md +20 -0
  1290. package/docs/2026-05-31/improvements.md +14 -0
  1291. package/docs/2026-05-31/init-checklist.md +25 -0
  1292. package/docs/2026-05-31/plan.md +20 -0
  1293. package/docs/2026-06-01/critical-issues.md +20 -0
  1294. package/docs/2026-06-01/improvements.md +14 -0
  1295. package/docs/2026-06-01/init-checklist.md +25 -0
  1296. package/docs/2026-06-01/plan.md +20 -0
  1297. package/docs/2026-06-02/critical-issues.md +20 -0
  1298. package/docs/2026-06-02/improvements.md +14 -0
  1299. package/docs/2026-06-02/init-checklist.md +25 -0
  1300. package/docs/2026-06-02/plan.md +20 -0
  1301. package/docs/2026-06-03/critical-issues.md +20 -0
  1302. package/docs/2026-06-03/improvements.md +14 -0
  1303. package/docs/2026-06-03/init-checklist.md +25 -0
  1304. package/docs/2026-06-03/plan.md +20 -0
  1305. package/docs/2026-06-04/critical-issues.md +20 -0
  1306. package/docs/2026-06-04/improvements.md +14 -0
  1307. package/docs/2026-06-04/init-checklist.md +25 -0
  1308. package/docs/2026-06-04/plan.md +20 -0
  1309. package/docs/2026-06-05/critical-issues.md +20 -0
  1310. package/docs/2026-06-05/improvements.md +14 -0
  1311. package/docs/2026-06-05/init-checklist.md +25 -0
  1312. package/docs/2026-06-05/plan.md +20 -0
  1313. package/docs/2026-06-06/critical-issues.md +20 -0
  1314. package/docs/2026-06-06/improvements.md +14 -0
  1315. package/docs/2026-06-06/init-checklist.md +25 -0
  1316. package/docs/2026-06-06/plan.md +20 -0
  1317. package/docs/2026-06-07/critical-issues.md +20 -0
  1318. package/docs/2026-06-07/improvements.md +14 -0
  1319. package/docs/2026-06-07/init-checklist.md +25 -0
  1320. package/docs/2026-06-07/plan.md +20 -0
  1321. package/docs/2026-06-08/critical-issues.md +20 -0
  1322. package/docs/2026-06-08/improvements.md +14 -0
  1323. package/docs/2026-06-08/init-checklist.md +25 -0
  1324. package/docs/2026-06-08/plan.md +20 -0
  1325. package/docs/2026-06-09/critical-issues.md +20 -0
  1326. package/docs/2026-06-09/improvements.md +14 -0
  1327. package/docs/2026-06-09/init-checklist.md +25 -0
  1328. package/docs/2026-06-09/plan.md +20 -0
  1329. package/docs/2026-06-10/critical-issues.md +20 -0
  1330. package/docs/2026-06-10/improvements.md +14 -0
  1331. package/docs/2026-06-10/init-checklist.md +25 -0
  1332. package/docs/2026-06-10/plan.md +20 -0
  1333. package/docs/2026-06-11/critical-issues.md +20 -0
  1334. package/docs/2026-06-11/improvements.md +14 -0
  1335. package/docs/2026-06-11/init-checklist.md +25 -0
  1336. package/docs/2026-06-11/plan.md +20 -0
  1337. package/docs/2026-06-14/critical-issues.md +19 -0
  1338. package/docs/2026-06-14/improvements.md +15 -0
  1339. package/docs/2026-06-14/init-checklist.md +25 -0
  1340. package/docs/2026-06-14/plan.md +20 -0
  1341. package/docs/2026-06-15/critical-issues.md +19 -0
  1342. package/docs/2026-06-15/improvements.md +15 -0
  1343. package/docs/2026-06-15/init-checklist.md +25 -0
  1344. package/docs/2026-06-15/plan.md +20 -0
  1345. package/docs/2026-06-16/critical-issues.md +19 -0
  1346. package/docs/2026-06-16/improvements.md +15 -0
  1347. package/docs/2026-06-16/init-checklist.md +25 -0
  1348. package/docs/2026-06-16/plan.md +20 -0
  1349. package/docs/ARCHITECTURE_ANALYSIS_CODEGRAPH.md +224 -0
  1350. package/docs/GSTACK_MIGRATION.md +169 -0
  1351. package/docs/OMK_CLI_V2_RUNTIME_ARCHITECTURE.md +2058 -0
  1352. package/docs/adr/0001-no-native-rust-lane.md +52 -0
  1353. package/docs/algorithm-hardening-playbook.md +219 -0
  1354. package/docs/benchmark-design.md +122 -0
  1355. package/docs/claims.md +85 -0
  1356. package/docs/cli-v2-migration.md +87 -0
  1357. package/docs/codex-oauth-setup.md +62 -0
  1358. package/docs/comparisons/omk-vs-claude-code.md +31 -0
  1359. package/docs/comparisons/omk-vs-codex.md +33 -0
  1360. package/docs/comparisons/omk-vs-mcp-agent.md +33 -0
  1361. package/docs/comparisons/omk-vs-opencode.md +32 -0
  1362. package/docs/decision-layer-calibration.md +20 -0
  1363. package/docs/decisions/2026-06-10-git-history-bloat.md +61 -0
  1364. package/docs/decisions/ADR-theme-dark-only-assets.md +43 -0
  1365. package/docs/demo/verified-run/README.md +32 -0
  1366. package/docs/demo/verified-run/artifacts/README.md +18 -0
  1367. package/docs/demo/verified-run/capture-plan.md +51 -0
  1368. package/docs/demo/verified-run/generated-diff.md +27 -0
  1369. package/docs/demo/verified-run/raw-prompt.md +21 -0
  1370. package/docs/demo/verified-run/video-shot-list.md +14 -0
  1371. package/docs/design-md.md +35 -0
  1372. package/docs/geo-eval-prompts.md +53 -0
  1373. package/docs/getting-started.md +37 -0
  1374. package/docs/github-organic-promotion.md +127 -0
  1375. package/docs/headroom-omk-final-summary.md +188 -0
  1376. package/docs/headroom-omk-integration.md +394 -0
  1377. package/docs/headroom-omk-setup-guide.md +422 -0
  1378. package/docs/headroom-omk-usage-examples.md +371 -0
  1379. package/docs/hud-and-parallel-ux.md +155 -0
  1380. package/docs/integrations/adaptorch.md +46 -0
  1381. package/docs/integrations/ouroboros.md +96 -0
  1382. package/docs/kimi-oauth-usage-status.md +33 -0
  1383. package/docs/kimi-okabe-dmail.md +44 -0
  1384. package/docs/local-graph-memory.md +102 -0
  1385. package/docs/lsp.md +48 -0
  1386. package/docs/mcp-ontology-proposal.md +12 -0
  1387. package/docs/native-root-runtime-algorithms.md +402 -0
  1388. package/docs/native-root-runtime-hardening.md +141 -0
  1389. package/docs/neo4j-memory.md +5 -0
  1390. package/docs/openai-platform-image-keys.md +23 -0
  1391. package/docs/phase1-final-report.md +154 -0
  1392. package/docs/post-0793-hardening-roadmap.md +123 -0
  1393. package/docs/provider-maturity.md +46 -0
  1394. package/docs/runtime-architecture.md +89 -0
  1395. package/docs/use-cases/evidence-gated-coding-agents.md +52 -0
  1396. package/docs/use-cases/no-kimi-mode.md +38 -0
  1397. package/docs/use-cases/provider-routing-for-ai-coding.md +36 -0
  1398. package/docs/use-cases/replayable-agent-runs.md +40 -0
  1399. package/docs/use-cases/scoped-mcp-for-coding-agents.md +34 -0
  1400. package/docs/versioning.md +55 -0
  1401. package/docs/what-is-omk.md +64 -0
  1402. package/llms.txt +48 -0
  1403. package/package.json +200 -97
  1404. package/readmeasset/.npmignore +27 -0
  1405. package/readmeasset/ASSET_INDEX.md +44 -0
  1406. package/readmeasset/ASSET_PROVENANCE.md +136 -0
  1407. package/readmeasset/omk-adaptorch-ouroboros-supermemory.svg +95 -0
  1408. package/readmeasset/omk-control-surfaces.svg +55 -0
  1409. package/readmeasset/omk-core-loop.svg +26 -0
  1410. package/readmeasset/omk-evidence-gate-card.png +0 -0
  1411. package/readmeasset/omk-freedomd-control-plane.svg +59 -0
  1412. package/readmeasset/omk-freedomd-control-plane.webp +0 -0
  1413. package/readmeasset/omk-github-banner.webp +0 -0
  1414. package/readmeasset/omk-github-header.webp +0 -0
  1415. package/readmeasset/omk-init-control-loop.svg +118 -0
  1416. package/readmeasset/omk-install-card.png +0 -0
  1417. package/readmeasset/omk-logo-512.png +0 -0
  1418. package/readmeasset/omk-logo-mark.svg +8 -0
  1419. package/readmeasset/omk-parallel-subagents.svg +97 -0
  1420. package/readmeasset/omk-provider-router-card.png +0 -0
  1421. package/readmeasset/omk-release-assertions.svg +51 -0
  1422. package/readmeasset/omk-runtime-flow-0.78.0.webp +0 -0
  1423. package/readmeasset/omk-social-preview.png +0 -0
  1424. package/readmeasset/omk-tui-0.78.0.webp +0 -0
  1425. package/readmeasset/omk_tui.png +0 -0
  1426. package/templates/.kimi/AGENTS.md +93 -0
  1427. package/templates/.omk/agents/okabe.yaml +30 -0
  1428. package/templates/.omk/agents/roles/aggregator.yaml +13 -0
  1429. package/templates/.omk/agents/roles/architect.yaml +13 -0
  1430. package/templates/.omk/agents/roles/coder.yaml +9 -0
  1431. package/templates/.omk/agents/roles/explorer.yaml +13 -0
  1432. package/templates/.omk/agents/roles/integrator.yaml +13 -0
  1433. package/templates/.omk/agents/roles/interviewer.yaml +13 -0
  1434. package/templates/.omk/agents/roles/ontology.yaml +18 -0
  1435. package/templates/.omk/agents/roles/planner.yaml +13 -0
  1436. package/templates/.omk/agents/roles/qa.yaml +12 -0
  1437. package/templates/.omk/agents/roles/researcher.yaml +13 -0
  1438. package/templates/.omk/agents/roles/reviewer.yaml +13 -0
  1439. package/templates/.omk/agents/roles/router.yaml +13 -0
  1440. package/templates/.omk/agents/roles/security.yaml +12 -0
  1441. package/templates/.omk/agents/roles/tester.yaml +12 -0
  1442. package/templates/.omk/agents/roles/vision-debugger.yaml +12 -0
  1443. package/templates/.omk/agents/root.yaml +62 -0
  1444. package/templates/.omk/lsp.json +27 -0
  1445. package/templates/.omk/prompts/root.md +74 -0
  1446. package/templates/AGENTS.md +510 -0
  1447. package/templates/skills/agents/agentmemory/SKILL.md +40 -0
  1448. package/templates/skills/agents/andrej-karpathy-skills/SKILL.md +41 -0
  1449. package/templates/skills/agents/claude-for-legal/SKILL.md +63 -0
  1450. package/templates/skills/agents/claude-for-legal/references/workflow-catalog.md +38 -0
  1451. package/templates/skills/agents/matt-pocock-skills/SKILL.md +40 -0
  1452. package/templates/skills/agents/multica/SKILL.md +40 -0
  1453. package/templates/skills/agents/omk-agent-reach-websearch/SKILL.md +55 -0
  1454. package/templates/skills/agents/omk-backend-api-review/SKILL.md +30 -0
  1455. package/templates/skills/agents/omk-code-review/SKILL.md +40 -0
  1456. package/templates/skills/agents/omk-context-broker/SKILL.md +57 -0
  1457. package/templates/skills/agents/omk-control-loop-debugger/SKILL.md +49 -0
  1458. package/templates/skills/agents/omk-design-system/SKILL.md +22 -0
  1459. package/templates/skills/agents/omk-docs-release/SKILL.md +42 -0
  1460. package/templates/skills/agents/omk-evidence-contract/SKILL.md +52 -0
  1461. package/templates/skills/agents/omk-frontend-implementation/SKILL.md +13 -0
  1462. package/templates/skills/agents/omk-frontend-ui-review/SKILL.md +29 -0
  1463. package/templates/skills/agents/omk-git-commit-pr/SKILL.md +45 -0
  1464. package/templates/skills/agents/omk-industrial-control-loop/SKILL.md +33 -0
  1465. package/templates/skills/agents/omk-plan-first/SKILL.md +39 -0
  1466. package/templates/skills/agents/omk-project-rules/SKILL.md +46 -0
  1467. package/templates/skills/agents/omk-python-typing/SKILL.md +33 -0
  1468. package/templates/skills/agents/omk-quality-gate/SKILL.md +54 -0
  1469. package/templates/skills/agents/omk-repo-explorer/SKILL.md +33 -0
  1470. package/templates/skills/agents/omk-research-verify/SKILL.md +30 -0
  1471. package/templates/skills/agents/omk-secret-guard/SKILL.md +23 -0
  1472. package/templates/skills/agents/omk-security-review/SKILL.md +49 -0
  1473. package/templates/skills/agents/omk-test-debug-loop/SKILL.md +43 -0
  1474. package/templates/skills/agents/omk-troubleshooting/SKILL.md +14 -0
  1475. package/templates/skills/agents/omk-typescript-strict/SKILL.md +38 -0
  1476. package/templates/skills/agents/omk-worktree-team/SKILL.md +44 -0
  1477. package/templates/skills/agents/react-doctor/SKILL.md +46 -0
  1478. package/templates/skills/kimi/agentmemory/SKILL.md +40 -0
  1479. package/templates/skills/kimi/andrej-karpathy-skills/SKILL.md +41 -0
  1480. package/templates/skills/kimi/awesome-design-md/SKILL.md +54 -0
  1481. package/templates/skills/kimi/claude-for-legal/SKILL.md +63 -0
  1482. package/templates/skills/kimi/claude-for-legal/references/workflow-catalog.md +38 -0
  1483. package/templates/skills/kimi/deepseek-api/SKILL.md +27 -0
  1484. package/templates/skills/kimi/deepseek-disable/SKILL.md +20 -0
  1485. package/templates/skills/kimi/deepseek-enable/SKILL.md +20 -0
  1486. package/templates/skills/kimi/deepseekset/SKILL.md +27 -0
  1487. package/templates/skills/kimi/graph-view/SKILL.md +29 -0
  1488. package/templates/skills/kimi/matt-pocock-skills/SKILL.md +40 -0
  1489. package/templates/skills/kimi/multica/SKILL.md +40 -0
  1490. package/templates/skills/kimi/omk-agent-reach-websearch/SKILL.md +55 -0
  1491. package/templates/skills/kimi/omk-backend-api-review/SKILL.md +30 -0
  1492. package/templates/skills/kimi/omk-code-review/SKILL.md +34 -0
  1493. package/templates/skills/kimi/omk-context-broker/SKILL.md +57 -0
  1494. package/templates/skills/kimi/omk-control-loop-debugger/SKILL.md +49 -0
  1495. package/templates/skills/kimi/omk-design-md/SKILL.md +55 -0
  1496. package/templates/skills/kimi/omk-design-system/SKILL.md +22 -0
  1497. package/templates/skills/kimi/omk-docs-release/SKILL.md +42 -0
  1498. package/templates/skills/kimi/omk-evidence-contract/SKILL.md +52 -0
  1499. package/templates/skills/kimi/omk-flow-bugfix/SKILL.md +20 -0
  1500. package/templates/skills/kimi/omk-flow-design-to-code/SKILL.md +23 -0
  1501. package/templates/skills/kimi/omk-flow-feature-dev/SKILL.md +24 -0
  1502. package/templates/skills/kimi/omk-flow-pr-review/SKILL.md +17 -0
  1503. package/templates/skills/kimi/omk-flow-refactor/SKILL.md +21 -0
  1504. package/templates/skills/kimi/omk-flow-release/SKILL.md +20 -0
  1505. package/templates/skills/kimi/omk-flow-team-run/SKILL.md +24 -0
  1506. package/templates/skills/kimi/omk-frontend-implementation/SKILL.md +13 -0
  1507. package/templates/skills/kimi/omk-frontend-ui-review/SKILL.md +29 -0
  1508. package/templates/skills/kimi/omk-git-commit-pr/SKILL.md +45 -0
  1509. package/templates/skills/kimi/omk-global-rules/SKILL.md +31 -0
  1510. package/templates/skills/kimi/omk-industrial-control-loop/SKILL.md +33 -0
  1511. package/templates/skills/kimi/omk-kimi-runtime/SKILL.md +46 -0
  1512. package/templates/skills/kimi/omk-multimodal-ui-review/SKILL.md +26 -0
  1513. package/templates/skills/kimi/omk-plan-first/SKILL.md +39 -0
  1514. package/templates/skills/kimi/omk-project-rules/SKILL.md +21 -0
  1515. package/templates/skills/kimi/omk-python-typing/SKILL.md +33 -0
  1516. package/templates/skills/kimi/omk-quality-gate/SKILL.md +36 -0
  1517. package/templates/skills/kimi/omk-repo-explorer/SKILL.md +33 -0
  1518. package/templates/skills/kimi/omk-research-verify/SKILL.md +30 -0
  1519. package/templates/skills/kimi/omk-secret-guard/SKILL.md +23 -0
  1520. package/templates/skills/kimi/omk-security-review/SKILL.md +49 -0
  1521. package/templates/skills/kimi/omk-task-router/SKILL.md +27 -0
  1522. package/templates/skills/kimi/omk-test-debug-loop/SKILL.md +43 -0
  1523. package/templates/skills/kimi/omk-typescript-strict/SKILL.md +38 -0
  1524. package/templates/skills/kimi/omk-worktree-team/SKILL.md +44 -0
  1525. package/templates/skills/kimi/open-design/SKILL.md +56 -0
  1526. package/templates/skills/kimi/provider/SKILL.md +47 -0
  1527. package/templates/skills/kimi/react-doctor/SKILL.md +46 -0
  1528. package/templates/skills/kimi/speckit-analyze/SKILL.md +255 -0
  1529. package/templates/skills/kimi/speckit-checklist/SKILL.md +367 -0
  1530. package/templates/skills/kimi/speckit-clarify/SKILL.md +249 -0
  1531. package/templates/skills/kimi/speckit-constitution/SKILL.md +152 -0
  1532. package/templates/skills/kimi/speckit-implement/SKILL.md +204 -0
  1533. package/templates/skills/kimi/speckit-plan/SKILL.md +147 -0
  1534. package/templates/skills/kimi/speckit-specify/SKILL.md +325 -0
  1535. package/templates/skills/kimi/speckit-tasks/SKILL.md +197 -0
  1536. package/templates/skills/kimi/speckit-taskstoissues/SKILL.md +101 -0
  1537. package/templates/skills/kimi/think/SKILL.md +41 -0
  1538. package/templates/spec-kit-omk-preset/commands/plan.md +21 -0
  1539. package/templates/spec-kit-omk-preset/commands/tasks.md +21 -0
  1540. package/templates/spec-kit-omk-preset/preset.yml +12 -0
  1541. package/templates/spec-kit-omk-preset/templates/plan-template.md +75 -0
  1542. package/templates/spec-kit-omk-preset/templates/spec-template.md +80 -0
  1543. package/templates/spec-kit-omk-preset/templates/tasks-template.md +160 -0
  1544. package/templates/web-bridge/chrome-extension/README.md +18 -0
  1545. package/templates/web-bridge/chrome-extension/background.js +57 -0
  1546. package/templates/web-bridge/chrome-extension/content-script.js +46 -0
  1547. package/templates/web-bridge/chrome-extension/manifest.json +16 -0
  1548. package/templates/web-bridge/chrome-extension/popup.html +21 -0
  1549. package/templates/web-bridge/chrome-extension/popup.js +9 -0
  1550. package/dist/bun/cli.d.ts +0 -3
  1551. package/dist/bun/cli.d.ts.map +0 -1
  1552. package/dist/bun/cli.js +0 -10
  1553. package/dist/bun/cli.js.map +0 -1
  1554. package/dist/bun/register-bedrock.d.ts +0 -2
  1555. package/dist/bun/register-bedrock.d.ts.map +0 -1
  1556. package/dist/bun/register-bedrock.js +0 -4
  1557. package/dist/bun/register-bedrock.js.map +0 -1
  1558. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  1559. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  1560. package/dist/bun/restore-sandbox-env.js +0 -32
  1561. package/dist/bun/restore-sandbox-env.js.map +0 -1
  1562. package/dist/cli/args.d.ts +0 -56
  1563. package/dist/cli/args.d.ts.map +0 -1
  1564. package/dist/cli/args.js +0 -392
  1565. package/dist/cli/args.js.map +0 -1
  1566. package/dist/cli/config-selector.d.ts +0 -14
  1567. package/dist/cli/config-selector.d.ts.map +0 -1
  1568. package/dist/cli/config-selector.js +0 -31
  1569. package/dist/cli/config-selector.js.map +0 -1
  1570. package/dist/cli/file-processor.d.ts +0 -15
  1571. package/dist/cli/file-processor.d.ts.map +0 -1
  1572. package/dist/cli/file-processor.js +0 -82
  1573. package/dist/cli/file-processor.js.map +0 -1
  1574. package/dist/cli/initial-message.d.ts +0 -18
  1575. package/dist/cli/initial-message.d.ts.map +0 -1
  1576. package/dist/cli/initial-message.js +0 -22
  1577. package/dist/cli/initial-message.js.map +0 -1
  1578. package/dist/cli/list-models.d.ts +0 -9
  1579. package/dist/cli/list-models.d.ts.map +0 -1
  1580. package/dist/cli/list-models.js +0 -98
  1581. package/dist/cli/list-models.js.map +0 -1
  1582. package/dist/cli/session-picker.d.ts +0 -9
  1583. package/dist/cli/session-picker.d.ts.map +0 -1
  1584. package/dist/cli/session-picker.js +0 -35
  1585. package/dist/cli/session-picker.js.map +0 -1
  1586. package/dist/cli.d.ts.map +0 -1
  1587. package/dist/cli.js.map +0 -1
  1588. package/dist/config.d.ts +0 -132
  1589. package/dist/config.d.ts.map +0 -1
  1590. package/dist/config.js +0 -529
  1591. package/dist/config.js.map +0 -1
  1592. package/dist/core/adaptive-runtime.d.ts +0 -150
  1593. package/dist/core/adaptive-runtime.d.ts.map +0 -1
  1594. package/dist/core/adaptive-runtime.js +0 -378
  1595. package/dist/core/adaptive-runtime.js.map +0 -1
  1596. package/dist/core/agent-session-runtime.d.ts +0 -117
  1597. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  1598. package/dist/core/agent-session-runtime.js +0 -300
  1599. package/dist/core/agent-session-runtime.js.map +0 -1
  1600. package/dist/core/agent-session-services.d.ts +0 -87
  1601. package/dist/core/agent-session-services.d.ts.map +0 -1
  1602. package/dist/core/agent-session-services.js +0 -119
  1603. package/dist/core/agent-session-services.js.map +0 -1
  1604. package/dist/core/agent-session.d.ts +0 -604
  1605. package/dist/core/agent-session.d.ts.map +0 -1
  1606. package/dist/core/agent-session.js +0 -2535
  1607. package/dist/core/agent-session.js.map +0 -1
  1608. package/dist/core/auth-guidance.d.ts +0 -5
  1609. package/dist/core/auth-guidance.d.ts.map +0 -1
  1610. package/dist/core/auth-guidance.js +0 -21
  1611. package/dist/core/auth-guidance.js.map +0 -1
  1612. package/dist/core/auth-storage.d.ts +0 -141
  1613. package/dist/core/auth-storage.d.ts.map +0 -1
  1614. package/dist/core/auth-storage.js +0 -445
  1615. package/dist/core/auth-storage.js.map +0 -1
  1616. package/dist/core/bash-executor.d.ts +0 -32
  1617. package/dist/core/bash-executor.d.ts.map +0 -1
  1618. package/dist/core/bash-executor.js +0 -111
  1619. package/dist/core/bash-executor.js.map +0 -1
  1620. package/dist/core/compaction/branch-summarization.d.ts +0 -90
  1621. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  1622. package/dist/core/compaction/branch-summarization.js +0 -249
  1623. package/dist/core/compaction/branch-summarization.js.map +0 -1
  1624. package/dist/core/compaction/compaction.d.ts +0 -132
  1625. package/dist/core/compaction/compaction.d.ts.map +0 -1
  1626. package/dist/core/compaction/compaction.js +0 -635
  1627. package/dist/core/compaction/compaction.js.map +0 -1
  1628. package/dist/core/compaction/index.d.ts +0 -7
  1629. package/dist/core/compaction/index.d.ts.map +0 -1
  1630. package/dist/core/compaction/index.js +0 -7
  1631. package/dist/core/compaction/index.js.map +0 -1
  1632. package/dist/core/compaction/utils.d.ts +0 -38
  1633. package/dist/core/compaction/utils.d.ts.map +0 -1
  1634. package/dist/core/compaction/utils.js +0 -153
  1635. package/dist/core/compaction/utils.js.map +0 -1
  1636. package/dist/core/defaults.d.ts +0 -3
  1637. package/dist/core/defaults.d.ts.map +0 -1
  1638. package/dist/core/defaults.js +0 -2
  1639. package/dist/core/defaults.js.map +0 -1
  1640. package/dist/core/diagnostics.d.ts +0 -15
  1641. package/dist/core/diagnostics.d.ts.map +0 -1
  1642. package/dist/core/diagnostics.js +0 -2
  1643. package/dist/core/diagnostics.js.map +0 -1
  1644. package/dist/core/event-bus.d.ts +0 -9
  1645. package/dist/core/event-bus.d.ts.map +0 -1
  1646. package/dist/core/event-bus.js +0 -25
  1647. package/dist/core/event-bus.js.map +0 -1
  1648. package/dist/core/exec.d.ts +0 -29
  1649. package/dist/core/exec.d.ts.map +0 -1
  1650. package/dist/core/exec.js +0 -75
  1651. package/dist/core/exec.js.map +0 -1
  1652. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  1653. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  1654. package/dist/core/export-html/ansi-to-html.js +0 -249
  1655. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  1656. package/dist/core/export-html/index.d.ts +0 -37
  1657. package/dist/core/export-html/index.d.ts.map +0 -1
  1658. package/dist/core/export-html/index.js +0 -226
  1659. package/dist/core/export-html/index.js.map +0 -1
  1660. package/dist/core/export-html/template.css +0 -1066
  1661. package/dist/core/export-html/template.html +0 -55
  1662. package/dist/core/export-html/template.js +0 -1864
  1663. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  1664. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  1665. package/dist/core/export-html/tool-renderer.js +0 -108
  1666. package/dist/core/export-html/tool-renderer.js.map +0 -1
  1667. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  1668. package/dist/core/export-html/vendor/marked.min.js +0 -6
  1669. package/dist/core/extensions/index.d.ts +0 -12
  1670. package/dist/core/extensions/index.d.ts.map +0 -1
  1671. package/dist/core/extensions/index.js +0 -9
  1672. package/dist/core/extensions/index.js.map +0 -1
  1673. package/dist/core/extensions/loader.d.ts +0 -24
  1674. package/dist/core/extensions/loader.d.ts.map +0 -1
  1675. package/dist/core/extensions/loader.js +0 -494
  1676. package/dist/core/extensions/loader.js.map +0 -1
  1677. package/dist/core/extensions/runner.d.ts +0 -161
  1678. package/dist/core/extensions/runner.d.ts.map +0 -1
  1679. package/dist/core/extensions/runner.js +0 -842
  1680. package/dist/core/extensions/runner.js.map +0 -1
  1681. package/dist/core/extensions/types.d.ts +0 -1181
  1682. package/dist/core/extensions/types.d.ts.map +0 -1
  1683. package/dist/core/extensions/types.js +0 -45
  1684. package/dist/core/extensions/types.js.map +0 -1
  1685. package/dist/core/extensions/wrapper.d.ts +0 -20
  1686. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  1687. package/dist/core/extensions/wrapper.js +0 -22
  1688. package/dist/core/extensions/wrapper.js.map +0 -1
  1689. package/dist/core/footer-data-provider.d.ts +0 -54
  1690. package/dist/core/footer-data-provider.d.ts.map +0 -1
  1691. package/dist/core/footer-data-provider.js +0 -338
  1692. package/dist/core/footer-data-provider.js.map +0 -1
  1693. package/dist/core/http-dispatcher.d.ts +0 -21
  1694. package/dist/core/http-dispatcher.d.ts.map +0 -1
  1695. package/dist/core/http-dispatcher.js +0 -48
  1696. package/dist/core/http-dispatcher.js.map +0 -1
  1697. package/dist/core/index.d.ts +0 -12
  1698. package/dist/core/index.d.ts.map +0 -1
  1699. package/dist/core/index.js +0 -12
  1700. package/dist/core/index.js.map +0 -1
  1701. package/dist/core/keybindings.d.ts +0 -353
  1702. package/dist/core/keybindings.d.ts.map +0 -1
  1703. package/dist/core/keybindings.js +0 -295
  1704. package/dist/core/keybindings.js.map +0 -1
  1705. package/dist/core/messages.d.ts +0 -77
  1706. package/dist/core/messages.d.ts.map +0 -1
  1707. package/dist/core/messages.js +0 -123
  1708. package/dist/core/messages.js.map +0 -1
  1709. package/dist/core/model-registry.d.ts +0 -150
  1710. package/dist/core/model-registry.d.ts.map +0 -1
  1711. package/dist/core/model-registry.js +0 -789
  1712. package/dist/core/model-registry.js.map +0 -1
  1713. package/dist/core/model-resolver.d.ts +0 -110
  1714. package/dist/core/model-resolver.d.ts.map +0 -1
  1715. package/dist/core/model-resolver.js +0 -495
  1716. package/dist/core/model-resolver.js.map +0 -1
  1717. package/dist/core/omk-control.d.ts +0 -62
  1718. package/dist/core/omk-control.d.ts.map +0 -1
  1719. package/dist/core/omk-control.js +0 -190
  1720. package/dist/core/omk-control.js.map +0 -1
  1721. package/dist/core/omk-subagent.d.ts +0 -17
  1722. package/dist/core/omk-subagent.d.ts.map +0 -1
  1723. package/dist/core/omk-subagent.js +0 -704
  1724. package/dist/core/omk-subagent.js.map +0 -1
  1725. package/dist/core/output-guard.d.ts +0 -7
  1726. package/dist/core/output-guard.d.ts.map +0 -1
  1727. package/dist/core/output-guard.js +0 -89
  1728. package/dist/core/output-guard.js.map +0 -1
  1729. package/dist/core/package-manager.d.ts +0 -206
  1730. package/dist/core/package-manager.d.ts.map +0 -1
  1731. package/dist/core/package-manager.js +0 -2056
  1732. package/dist/core/package-manager.js.map +0 -1
  1733. package/dist/core/prompt-templates.d.ts +0 -52
  1734. package/dist/core/prompt-templates.d.ts.map +0 -1
  1735. package/dist/core/prompt-templates.js +0 -238
  1736. package/dist/core/prompt-templates.js.map +0 -1
  1737. package/dist/core/provider-attribution.d.ts +0 -4
  1738. package/dist/core/provider-attribution.d.ts.map +0 -1
  1739. package/dist/core/provider-attribution.js +0 -78
  1740. package/dist/core/provider-attribution.js.map +0 -1
  1741. package/dist/core/provider-display-names.d.ts +0 -2
  1742. package/dist/core/provider-display-names.d.ts.map +0 -1
  1743. package/dist/core/provider-display-names.js +0 -35
  1744. package/dist/core/provider-display-names.js.map +0 -1
  1745. package/dist/core/resolve-config-value.d.ts +0 -31
  1746. package/dist/core/resolve-config-value.d.ts.map +0 -1
  1747. package/dist/core/resolve-config-value.js +0 -249
  1748. package/dist/core/resolve-config-value.js.map +0 -1
  1749. package/dist/core/resource-loader.d.ts +0 -194
  1750. package/dist/core/resource-loader.d.ts.map +0 -1
  1751. package/dist/core/resource-loader.js +0 -740
  1752. package/dist/core/resource-loader.js.map +0 -1
  1753. package/dist/core/runtime-defaults.d.ts +0 -14
  1754. package/dist/core/runtime-defaults.d.ts.map +0 -1
  1755. package/dist/core/runtime-defaults.js +0 -15
  1756. package/dist/core/runtime-defaults.js.map +0 -1
  1757. package/dist/core/sdk.d.ts +0 -109
  1758. package/dist/core/sdk.d.ts.map +0 -1
  1759. package/dist/core/sdk.js +0 -270
  1760. package/dist/core/sdk.js.map +0 -1
  1761. package/dist/core/session-cwd.d.ts +0 -19
  1762. package/dist/core/session-cwd.d.ts.map +0 -1
  1763. package/dist/core/session-cwd.js +0 -38
  1764. package/dist/core/session-cwd.js.map +0 -1
  1765. package/dist/core/session-manager.d.ts +0 -332
  1766. package/dist/core/session-manager.d.ts.map +0 -1
  1767. package/dist/core/session-manager.js +0 -1218
  1768. package/dist/core/session-manager.js.map +0 -1
  1769. package/dist/core/settings-manager.d.ts +0 -273
  1770. package/dist/core/settings-manager.d.ts.map +0 -1
  1771. package/dist/core/settings-manager.js +0 -839
  1772. package/dist/core/settings-manager.js.map +0 -1
  1773. package/dist/core/skills.d.ts +0 -60
  1774. package/dist/core/skills.d.ts.map +0 -1
  1775. package/dist/core/skills.js +0 -387
  1776. package/dist/core/skills.js.map +0 -1
  1777. package/dist/core/slash-commands.d.ts +0 -26
  1778. package/dist/core/slash-commands.d.ts.map +0 -1
  1779. package/dist/core/slash-commands.js +0 -98
  1780. package/dist/core/slash-commands.js.map +0 -1
  1781. package/dist/core/source-info.d.ts +0 -18
  1782. package/dist/core/source-info.d.ts.map +0 -1
  1783. package/dist/core/source-info.js +0 -19
  1784. package/dist/core/source-info.js.map +0 -1
  1785. package/dist/core/system-prompt.d.ts +0 -28
  1786. package/dist/core/system-prompt.d.ts.map +0 -1
  1787. package/dist/core/system-prompt.js +0 -120
  1788. package/dist/core/system-prompt.js.map +0 -1
  1789. package/dist/core/telemetry.d.ts +0 -3
  1790. package/dist/core/telemetry.d.ts.map +0 -1
  1791. package/dist/core/telemetry.js +0 -10
  1792. package/dist/core/telemetry.js.map +0 -1
  1793. package/dist/core/timings.d.ts +0 -4
  1794. package/dist/core/timings.d.ts.map +0 -1
  1795. package/dist/core/timings.js +0 -32
  1796. package/dist/core/timings.js.map +0 -1
  1797. package/dist/core/tools/bash.d.ts +0 -68
  1798. package/dist/core/tools/bash.d.ts.map +0 -1
  1799. package/dist/core/tools/bash.js +0 -337
  1800. package/dist/core/tools/bash.js.map +0 -1
  1801. package/dist/core/tools/edit-diff.d.ts +0 -87
  1802. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  1803. package/dist/core/tools/edit-diff.js +0 -345
  1804. package/dist/core/tools/edit-diff.js.map +0 -1
  1805. package/dist/core/tools/edit.d.ts +0 -51
  1806. package/dist/core/tools/edit.d.ts.map +0 -1
  1807. package/dist/core/tools/edit.js +0 -284
  1808. package/dist/core/tools/edit.js.map +0 -1
  1809. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  1810. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  1811. package/dist/core/tools/file-mutation-queue.js +0 -52
  1812. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  1813. package/dist/core/tools/find.d.ts +0 -35
  1814. package/dist/core/tools/find.d.ts.map +0 -1
  1815. package/dist/core/tools/find.js +0 -297
  1816. package/dist/core/tools/find.js.map +0 -1
  1817. package/dist/core/tools/grep.d.ts +0 -37
  1818. package/dist/core/tools/grep.d.ts.map +0 -1
  1819. package/dist/core/tools/grep.js +0 -304
  1820. package/dist/core/tools/grep.js.map +0 -1
  1821. package/dist/core/tools/index.d.ts +0 -40
  1822. package/dist/core/tools/index.d.ts.map +0 -1
  1823. package/dist/core/tools/index.js +0 -112
  1824. package/dist/core/tools/index.js.map +0 -1
  1825. package/dist/core/tools/ls.d.ts +0 -37
  1826. package/dist/core/tools/ls.d.ts.map +0 -1
  1827. package/dist/core/tools/ls.js +0 -167
  1828. package/dist/core/tools/ls.js.map +0 -1
  1829. package/dist/core/tools/output-accumulator.d.ts +0 -52
  1830. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  1831. package/dist/core/tools/output-accumulator.js +0 -184
  1832. package/dist/core/tools/output-accumulator.js.map +0 -1
  1833. package/dist/core/tools/path-utils.d.ts +0 -10
  1834. package/dist/core/tools/path-utils.d.ts.map +0 -1
  1835. package/dist/core/tools/path-utils.js +0 -99
  1836. package/dist/core/tools/path-utils.js.map +0 -1
  1837. package/dist/core/tools/read.d.ts +0 -35
  1838. package/dist/core/tools/read.d.ts.map +0 -1
  1839. package/dist/core/tools/read.js +0 -289
  1840. package/dist/core/tools/read.js.map +0 -1
  1841. package/dist/core/tools/render-utils.d.ts +0 -24
  1842. package/dist/core/tools/render-utils.d.ts.map +0 -1
  1843. package/dist/core/tools/render-utils.js +0 -65
  1844. package/dist/core/tools/render-utils.js.map +0 -1
  1845. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  1846. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  1847. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  1848. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  1849. package/dist/core/tools/truncate.d.ts +0 -70
  1850. package/dist/core/tools/truncate.d.ts.map +0 -1
  1851. package/dist/core/tools/truncate.js +0 -215
  1852. package/dist/core/tools/truncate.js.map +0 -1
  1853. package/dist/core/tools/write.d.ts +0 -26
  1854. package/dist/core/tools/write.d.ts.map +0 -1
  1855. package/dist/core/tools/write.js +0 -197
  1856. package/dist/core/tools/write.js.map +0 -1
  1857. package/dist/index.d.ts +0 -32
  1858. package/dist/index.d.ts.map +0 -1
  1859. package/dist/index.js +0 -45
  1860. package/dist/index.js.map +0 -1
  1861. package/dist/main.d.ts +0 -12
  1862. package/dist/main.d.ts.map +0 -1
  1863. package/dist/main.js +0 -673
  1864. package/dist/main.js.map +0 -1
  1865. package/dist/migrations.d.ts +0 -35
  1866. package/dist/migrations.d.ts.map +0 -1
  1867. package/dist/migrations.js +0 -401
  1868. package/dist/migrations.js.map +0 -1
  1869. package/dist/modes/index.d.ts +0 -9
  1870. package/dist/modes/index.d.ts.map +0 -1
  1871. package/dist/modes/index.js +0 -8
  1872. package/dist/modes/index.js.map +0 -1
  1873. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1874. package/dist/modes/interactive/cockpit-scroll.d.ts +0 -54
  1875. package/dist/modes/interactive/cockpit-scroll.d.ts.map +0 -1
  1876. package/dist/modes/interactive/cockpit-scroll.js +0 -133
  1877. package/dist/modes/interactive/cockpit-scroll.js.map +0 -1
  1878. package/dist/modes/interactive/components/armin.d.ts +0 -34
  1879. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  1880. package/dist/modes/interactive/components/armin.js +0 -333
  1881. package/dist/modes/interactive/components/armin.js.map +0 -1
  1882. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  1883. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  1884. package/dist/modes/interactive/components/assistant-message.js +0 -121
  1885. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  1886. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  1887. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  1888. package/dist/modes/interactive/components/bash-execution.js +0 -175
  1889. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  1890. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  1891. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  1892. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  1893. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  1894. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  1895. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  1896. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  1897. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  1898. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  1899. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  1900. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  1901. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  1902. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  1903. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  1904. package/dist/modes/interactive/components/config-selector.js +0 -506
  1905. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  1906. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  1907. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  1908. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  1909. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  1910. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  1911. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  1912. package/dist/modes/interactive/components/custom-editor.js +0 -70
  1913. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  1914. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  1915. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  1916. package/dist/modes/interactive/components/custom-message.js +0 -79
  1917. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  1918. package/dist/modes/interactive/components/diff.d.ts +0 -12
  1919. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  1920. package/dist/modes/interactive/components/diff.js +0 -133
  1921. package/dist/modes/interactive/components/diff.js.map +0 -1
  1922. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  1923. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  1924. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  1925. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  1926. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  1927. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  1928. package/dist/modes/interactive/components/earendil-announcement.js +0 -42
  1929. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  1930. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  1931. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  1932. package/dist/modes/interactive/components/extension-editor.js +0 -119
  1933. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  1934. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  1935. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  1936. package/dist/modes/interactive/components/extension-input.js +0 -61
  1937. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  1938. package/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  1939. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  1940. package/dist/modes/interactive/components/extension-selector.js +0 -83
  1941. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  1942. package/dist/modes/interactive/components/footer.d.ts +0 -35
  1943. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  1944. package/dist/modes/interactive/components/footer.js +0 -223
  1945. package/dist/modes/interactive/components/footer.js.map +0 -1
  1946. package/dist/modes/interactive/components/index.d.ts +0 -36
  1947. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  1948. package/dist/modes/interactive/components/index.js +0 -37
  1949. package/dist/modes/interactive/components/index.js.map +0 -1
  1950. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  1951. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  1952. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  1953. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  1954. package/dist/modes/interactive/components/login-dialog.d.ts +0 -51
  1955. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  1956. package/dist/modes/interactive/components/login-dialog.js +0 -174
  1957. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  1958. package/dist/modes/interactive/components/model-selector.d.ts +0 -69
  1959. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  1960. package/dist/modes/interactive/components/model-selector.js +0 -411
  1961. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  1962. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -31
  1963. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  1964. package/dist/modes/interactive/components/oauth-selector.js +0 -165
  1965. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  1966. package/dist/modes/interactive/components/omk-brand-surface.d.ts +0 -58
  1967. package/dist/modes/interactive/components/omk-brand-surface.d.ts.map +0 -1
  1968. package/dist/modes/interactive/components/omk-brand-surface.js +0 -330
  1969. package/dist/modes/interactive/components/omk-brand-surface.js.map +0 -1
  1970. package/dist/modes/interactive/components/omk-brand.d.ts +0 -10
  1971. package/dist/modes/interactive/components/omk-brand.d.ts.map +0 -1
  1972. package/dist/modes/interactive/components/omk-brand.js +0 -12
  1973. package/dist/modes/interactive/components/omk-brand.js.map +0 -1
  1974. package/dist/modes/interactive/components/omk-control-dashboard.d.ts +0 -36
  1975. package/dist/modes/interactive/components/omk-control-dashboard.d.ts.map +0 -1
  1976. package/dist/modes/interactive/components/omk-control-dashboard.js +0 -348
  1977. package/dist/modes/interactive/components/omk-control-dashboard.js.map +0 -1
  1978. package/dist/modes/interactive/components/omk-control-layout.d.ts +0 -34
  1979. package/dist/modes/interactive/components/omk-control-layout.d.ts.map +0 -1
  1980. package/dist/modes/interactive/components/omk-control-layout.js +0 -85
  1981. package/dist/modes/interactive/components/omk-control-layout.js.map +0 -1
  1982. package/dist/modes/interactive/components/omk-history-panel.d.ts +0 -27
  1983. package/dist/modes/interactive/components/omk-history-panel.d.ts.map +0 -1
  1984. package/dist/modes/interactive/components/omk-history-panel.js +0 -162
  1985. package/dist/modes/interactive/components/omk-history-panel.js.map +0 -1
  1986. package/dist/modes/interactive/components/omk-neon-hud.d.ts +0 -19
  1987. package/dist/modes/interactive/components/omk-neon-hud.d.ts.map +0 -1
  1988. package/dist/modes/interactive/components/omk-neon-hud.js +0 -75
  1989. package/dist/modes/interactive/components/omk-neon-hud.js.map +0 -1
  1990. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts +0 -30
  1991. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts.map +0 -1
  1992. package/dist/modes/interactive/components/omk-tabbed-panel.js +0 -99
  1993. package/dist/modes/interactive/components/omk-tabbed-panel.js.map +0 -1
  1994. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  1995. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  1996. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  1997. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  1998. package/dist/modes/interactive/components/scrollable-transcript.d.ts +0 -20
  1999. package/dist/modes/interactive/components/scrollable-transcript.d.ts.map +0 -1
  2000. package/dist/modes/interactive/components/scrollable-transcript.js +0 -25
  2001. package/dist/modes/interactive/components/scrollable-transcript.js.map +0 -1
  2002. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  2003. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  2004. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  2005. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  2006. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  2007. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  2008. package/dist/modes/interactive/components/session-selector.js +0 -861
  2009. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  2010. package/dist/modes/interactive/components/settings-selector.d.ts +0 -69
  2011. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  2012. package/dist/modes/interactive/components/settings-selector.js +0 -391
  2013. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  2014. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  2015. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  2016. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  2017. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  2018. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  2019. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  2020. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  2021. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  2022. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  2023. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  2024. package/dist/modes/interactive/components/theme-selector.js +0 -50
  2025. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  2026. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  2027. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  2028. package/dist/modes/interactive/components/thinking-selector.js +0 -52
  2029. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  2030. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  2031. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  2032. package/dist/modes/interactive/components/tool-execution.js +0 -317
  2033. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  2034. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  2035. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  2036. package/dist/modes/interactive/components/tree-selector.js +0 -1093
  2037. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  2038. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  2039. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  2040. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  2041. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  2042. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  2043. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  2044. package/dist/modes/interactive/components/user-message.js +0 -29
  2045. package/dist/modes/interactive/components/user-message.js.map +0 -1
  2046. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  2047. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  2048. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  2049. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  2050. package/dist/modes/interactive/interactive-mode.d.ts +0 -422
  2051. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  2052. package/dist/modes/interactive/interactive-mode.js +0 -5388
  2053. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  2054. package/dist/modes/interactive/theme/dark.json +0 -87
  2055. package/dist/modes/interactive/theme/light.json +0 -86
  2056. package/dist/modes/interactive/theme/omk-control.json +0 -92
  2057. package/dist/modes/interactive/theme/omk-rust.json +0 -94
  2058. package/dist/modes/interactive/theme/theme-schema.json +0 -340
  2059. package/dist/modes/interactive/theme/theme.d.ts +0 -102
  2060. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  2061. package/dist/modes/interactive/theme/theme.js +0 -1093
  2062. package/dist/modes/interactive/theme/theme.js.map +0 -1
  2063. package/dist/modes/print-mode.d.ts +0 -28
  2064. package/dist/modes/print-mode.d.ts.map +0 -1
  2065. package/dist/modes/print-mode.js +0 -132
  2066. package/dist/modes/print-mode.js.map +0 -1
  2067. package/dist/modes/rpc/jsonl.d.ts +0 -17
  2068. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  2069. package/dist/modes/rpc/jsonl.js +0 -49
  2070. package/dist/modes/rpc/jsonl.js.map +0 -1
  2071. package/dist/modes/rpc/rpc-client.d.ts +0 -227
  2072. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  2073. package/dist/modes/rpc/rpc-client.js +0 -467
  2074. package/dist/modes/rpc/rpc-client.js.map +0 -1
  2075. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  2076. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  2077. package/dist/modes/rpc/rpc-mode.js +0 -616
  2078. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  2079. package/dist/modes/rpc/rpc-types.d.ts +0 -420
  2080. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  2081. package/dist/modes/rpc/rpc-types.js +0 -8
  2082. package/dist/modes/rpc/rpc-types.js.map +0 -1
  2083. package/dist/omk-env.d.ts +0 -2
  2084. package/dist/omk-env.d.ts.map +0 -1
  2085. package/dist/omk-env.js +0 -3
  2086. package/dist/omk-env.js.map +0 -1
  2087. package/dist/omk.d.ts +0 -4
  2088. package/dist/omk.d.ts.map +0 -1
  2089. package/dist/omk.js +0 -4
  2090. package/dist/omk.js.map +0 -1
  2091. package/dist/package-manager-cli.d.ts +0 -4
  2092. package/dist/package-manager-cli.d.ts.map +0 -1
  2093. package/dist/package-manager-cli.js +0 -528
  2094. package/dist/package-manager-cli.js.map +0 -1
  2095. package/dist/package.json +0 -97
  2096. package/dist/utils/ansi.d.ts +0 -2
  2097. package/dist/utils/ansi.d.ts.map +0 -1
  2098. package/dist/utils/ansi.js +0 -52
  2099. package/dist/utils/ansi.js.map +0 -1
  2100. package/dist/utils/changelog.d.ts +0 -21
  2101. package/dist/utils/changelog.d.ts.map +0 -1
  2102. package/dist/utils/changelog.js +0 -87
  2103. package/dist/utils/changelog.js.map +0 -1
  2104. package/dist/utils/child-process.d.ts +0 -15
  2105. package/dist/utils/child-process.d.ts.map +0 -1
  2106. package/dist/utils/child-process.js +0 -88
  2107. package/dist/utils/child-process.js.map +0 -1
  2108. package/dist/utils/clipboard-image.d.ts +0 -11
  2109. package/dist/utils/clipboard-image.d.ts.map +0 -1
  2110. package/dist/utils/clipboard-image.js +0 -249
  2111. package/dist/utils/clipboard-image.js.map +0 -1
  2112. package/dist/utils/clipboard-native.d.ts +0 -10
  2113. package/dist/utils/clipboard-native.d.ts.map +0 -1
  2114. package/dist/utils/clipboard-native.js +0 -20
  2115. package/dist/utils/clipboard-native.js.map +0 -1
  2116. package/dist/utils/clipboard.d.ts +0 -2
  2117. package/dist/utils/clipboard.d.ts.map +0 -1
  2118. package/dist/utils/clipboard.js +0 -117
  2119. package/dist/utils/clipboard.js.map +0 -1
  2120. package/dist/utils/deprecation.d.ts +0 -4
  2121. package/dist/utils/deprecation.d.ts.map +0 -1
  2122. package/dist/utils/deprecation.js +0 -13
  2123. package/dist/utils/deprecation.js.map +0 -1
  2124. package/dist/utils/exif-orientation.d.ts +0 -5
  2125. package/dist/utils/exif-orientation.d.ts.map +0 -1
  2126. package/dist/utils/exif-orientation.js +0 -158
  2127. package/dist/utils/exif-orientation.js.map +0 -1
  2128. package/dist/utils/frontmatter.d.ts +0 -8
  2129. package/dist/utils/frontmatter.d.ts.map +0 -1
  2130. package/dist/utils/frontmatter.js +0 -26
  2131. package/dist/utils/frontmatter.js.map +0 -1
  2132. package/dist/utils/fs-watch.d.ts +0 -5
  2133. package/dist/utils/fs-watch.d.ts.map +0 -1
  2134. package/dist/utils/fs-watch.js +0 -25
  2135. package/dist/utils/fs-watch.js.map +0 -1
  2136. package/dist/utils/git.d.ts +0 -26
  2137. package/dist/utils/git.d.ts.map +0 -1
  2138. package/dist/utils/git.js +0 -195
  2139. package/dist/utils/git.js.map +0 -1
  2140. package/dist/utils/html.d.ts +0 -7
  2141. package/dist/utils/html.d.ts.map +0 -1
  2142. package/dist/utils/html.js +0 -40
  2143. package/dist/utils/html.js.map +0 -1
  2144. package/dist/utils/image-convert.d.ts +0 -9
  2145. package/dist/utils/image-convert.d.ts.map +0 -1
  2146. package/dist/utils/image-convert.js +0 -39
  2147. package/dist/utils/image-convert.js.map +0 -1
  2148. package/dist/utils/image-resize-core.d.ts +0 -30
  2149. package/dist/utils/image-resize-core.d.ts.map +0 -1
  2150. package/dist/utils/image-resize-core.js +0 -124
  2151. package/dist/utils/image-resize-core.js.map +0 -1
  2152. package/dist/utils/image-resize-worker.d.ts +0 -2
  2153. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  2154. package/dist/utils/image-resize-worker.js +0 -31
  2155. package/dist/utils/image-resize-worker.js.map +0 -1
  2156. package/dist/utils/image-resize.d.ts +0 -16
  2157. package/dist/utils/image-resize.d.ts.map +0 -1
  2158. package/dist/utils/image-resize.js +0 -97
  2159. package/dist/utils/image-resize.js.map +0 -1
  2160. package/dist/utils/json.d.ts +0 -3
  2161. package/dist/utils/json.d.ts.map +0 -1
  2162. package/dist/utils/json.js +0 -7
  2163. package/dist/utils/json.js.map +0 -1
  2164. package/dist/utils/mime.d.ts +0 -3
  2165. package/dist/utils/mime.d.ts.map +0 -1
  2166. package/dist/utils/mime.js +0 -69
  2167. package/dist/utils/mime.js.map +0 -1
  2168. package/dist/utils/open-browser.d.ts +0 -9
  2169. package/dist/utils/open-browser.d.ts.map +0 -1
  2170. package/dist/utils/open-browser.js +0 -22
  2171. package/dist/utils/open-browser.js.map +0 -1
  2172. package/dist/utils/paths.d.ts +0 -31
  2173. package/dist/utils/paths.d.ts.map +0 -1
  2174. package/dist/utils/paths.js +0 -92
  2175. package/dist/utils/paths.js.map +0 -1
  2176. package/dist/utils/photon.d.ts +0 -21
  2177. package/dist/utils/photon.d.ts.map +0 -1
  2178. package/dist/utils/photon.js +0 -121
  2179. package/dist/utils/photon.js.map +0 -1
  2180. package/dist/utils/pi-user-agent.d.ts +0 -2
  2181. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  2182. package/dist/utils/pi-user-agent.js +0 -6
  2183. package/dist/utils/pi-user-agent.js.map +0 -1
  2184. package/dist/utils/shell.d.ts +0 -30
  2185. package/dist/utils/shell.d.ts.map +0 -1
  2186. package/dist/utils/shell.js +0 -195
  2187. package/dist/utils/shell.js.map +0 -1
  2188. package/dist/utils/sleep.d.ts +0 -5
  2189. package/dist/utils/sleep.d.ts.map +0 -1
  2190. package/dist/utils/sleep.js +0 -17
  2191. package/dist/utils/sleep.js.map +0 -1
  2192. package/dist/utils/syntax-highlight.d.ts +0 -12
  2193. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  2194. package/dist/utils/syntax-highlight.js +0 -118
  2195. package/dist/utils/syntax-highlight.js.map +0 -1
  2196. package/dist/utils/tools-manager.d.ts +0 -3
  2197. package/dist/utils/tools-manager.d.ts.map +0 -1
  2198. package/dist/utils/tools-manager.js +0 -325
  2199. package/dist/utils/tools-manager.js.map +0 -1
  2200. package/dist/utils/version-check.d.ts +0 -15
  2201. package/dist/utils/version-check.d.ts.map +0 -1
  2202. package/dist/utils/version-check.js +0 -85
  2203. package/dist/utils/version-check.js.map +0 -1
  2204. package/dist/utils/windows-self-update.d.ts +0 -3
  2205. package/dist/utils/windows-self-update.d.ts.map +0 -1
  2206. package/dist/utils/windows-self-update.js +0 -77
  2207. package/dist/utils/windows-self-update.js.map +0 -1
  2208. package/docs/compaction.md +0 -394
  2209. package/docs/containerization.md +0 -111
  2210. package/docs/custom-provider.md +0 -736
  2211. package/docs/development.md +0 -71
  2212. package/docs/docs.json +0 -152
  2213. package/docs/extensions.md +0 -2627
  2214. package/docs/images/doom-extension.png +0 -0
  2215. package/docs/images/exy.png +0 -0
  2216. package/docs/images/interactive-mode.png +0 -0
  2217. package/docs/images/tree-view.png +0 -0
  2218. package/docs/index.md +0 -81
  2219. package/docs/json.md +0 -82
  2220. package/docs/keybindings.md +0 -197
  2221. package/docs/models.md +0 -493
  2222. package/docs/packages.md +0 -226
  2223. package/docs/prompt-templates.md +0 -88
  2224. package/docs/providers.md +0 -256
  2225. package/docs/quickstart.md +0 -165
  2226. package/docs/rpc.md +0 -1408
  2227. package/docs/sdk.md +0 -1137
  2228. package/docs/session-format.md +0 -412
  2229. package/docs/sessions.md +0 -145
  2230. package/docs/settings.md +0 -281
  2231. package/docs/shell-aliases.md +0 -13
  2232. package/docs/skills.md +0 -231
  2233. package/docs/terminal-setup.md +0 -114
  2234. package/docs/termux.md +0 -127
  2235. package/docs/themes.md +0 -297
  2236. package/docs/tmux.md +0 -61
  2237. package/docs/tui.md +0 -927
  2238. package/docs/usage.md +0 -288
  2239. package/docs/windows.md +0 -17
  2240. package/examples/README.md +0 -25
  2241. package/examples/extensions/README.md +0 -210
  2242. package/examples/extensions/auto-commit-on-exit.ts +0 -49
  2243. package/examples/extensions/bash-spawn-hook.ts +0 -30
  2244. package/examples/extensions/bookmark.ts +0 -50
  2245. package/examples/extensions/border-status-editor.ts +0 -150
  2246. package/examples/extensions/built-in-tool-renderer.ts +0 -249
  2247. package/examples/extensions/claude-rules.ts +0 -86
  2248. package/examples/extensions/commands.ts +0 -72
  2249. package/examples/extensions/confirm-destructive.ts +0 -59
  2250. package/examples/extensions/custom-compaction.ts +0 -127
  2251. package/examples/extensions/custom-footer.ts +0 -64
  2252. package/examples/extensions/custom-header.ts +0 -73
  2253. package/examples/extensions/custom-provider-anthropic/index.ts +0 -604
  2254. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -24
  2255. package/examples/extensions/custom-provider-anthropic/package.json +0 -19
  2256. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -400
  2257. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -16
  2258. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -82
  2259. package/examples/extensions/dirty-repo-guard.ts +0 -56
  2260. package/examples/extensions/doom-overlay/README.md +0 -46
  2261. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -21
  2262. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  2263. package/examples/extensions/doom-overlay/doom/build.sh +0 -152
  2264. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  2265. package/examples/extensions/doom-overlay/doom-component.ts +0 -132
  2266. package/examples/extensions/doom-overlay/doom-engine.ts +0 -173
  2267. package/examples/extensions/doom-overlay/doom-keys.ts +0 -104
  2268. package/examples/extensions/doom-overlay/index.ts +0 -74
  2269. package/examples/extensions/doom-overlay/wad-finder.ts +0 -51
  2270. package/examples/extensions/dynamic-resources/SKILL.md +0 -8
  2271. package/examples/extensions/dynamic-resources/dynamic.json +0 -79
  2272. package/examples/extensions/dynamic-resources/dynamic.md +0 -5
  2273. package/examples/extensions/dynamic-resources/index.ts +0 -15
  2274. package/examples/extensions/dynamic-tools.ts +0 -74
  2275. package/examples/extensions/event-bus.ts +0 -43
  2276. package/examples/extensions/file-trigger.ts +0 -41
  2277. package/examples/extensions/git-checkpoint.ts +0 -53
  2278. package/examples/extensions/git-merge-and-resolve.ts +0 -115
  2279. package/examples/extensions/github-issue-autocomplete.ts +0 -185
  2280. package/examples/extensions/gondolin/index.ts +0 -531
  2281. package/examples/extensions/gondolin/package-lock.json +0 -185
  2282. package/examples/extensions/gondolin/package.json +0 -19
  2283. package/examples/extensions/handoff.ts +0 -191
  2284. package/examples/extensions/hello.ts +0 -26
  2285. package/examples/extensions/hidden-thinking-label.ts +0 -53
  2286. package/examples/extensions/inline-bash.ts +0 -94
  2287. package/examples/extensions/input-transform-streaming.ts +0 -39
  2288. package/examples/extensions/input-transform.ts +0 -43
  2289. package/examples/extensions/interactive-shell.ts +0 -196
  2290. package/examples/extensions/mac-system-theme.ts +0 -47
  2291. package/examples/extensions/message-renderer.ts +0 -59
  2292. package/examples/extensions/minimal-mode.ts +0 -426
  2293. package/examples/extensions/modal-editor.ts +0 -85
  2294. package/examples/extensions/model-status.ts +0 -31
  2295. package/examples/extensions/notify.ts +0 -55
  2296. package/examples/extensions/overlay-qa-tests.ts +0 -1450
  2297. package/examples/extensions/overlay-test.ts +0 -153
  2298. package/examples/extensions/permission-gate.ts +0 -34
  2299. package/examples/extensions/pirate.ts +0 -47
  2300. package/examples/extensions/plan-mode/README.md +0 -65
  2301. package/examples/extensions/plan-mode/index.ts +0 -340
  2302. package/examples/extensions/plan-mode/utils.ts +0 -168
  2303. package/examples/extensions/preset.ts +0 -430
  2304. package/examples/extensions/prompt-customizer.ts +0 -97
  2305. package/examples/extensions/protected-paths.ts +0 -30
  2306. package/examples/extensions/provider-payload.ts +0 -18
  2307. package/examples/extensions/qna.ts +0 -122
  2308. package/examples/extensions/question.ts +0 -264
  2309. package/examples/extensions/questionnaire.ts +0 -427
  2310. package/examples/extensions/rainbow-editor.ts +0 -88
  2311. package/examples/extensions/reload-runtime.ts +0 -37
  2312. package/examples/extensions/rpc-demo.ts +0 -118
  2313. package/examples/extensions/sandbox/index.ts +0 -321
  2314. package/examples/extensions/sandbox/package-lock.json +0 -92
  2315. package/examples/extensions/sandbox/package.json +0 -19
  2316. package/examples/extensions/send-user-message.ts +0 -97
  2317. package/examples/extensions/session-name.ts +0 -27
  2318. package/examples/extensions/shutdown-command.ts +0 -63
  2319. package/examples/extensions/snake.ts +0 -343
  2320. package/examples/extensions/space-invaders.ts +0 -560
  2321. package/examples/extensions/ssh.ts +0 -220
  2322. package/examples/extensions/status-line.ts +0 -32
  2323. package/examples/extensions/structured-output.ts +0 -65
  2324. package/examples/extensions/subagent/README.md +0 -175
  2325. package/examples/extensions/subagent/agents/planner.md +0 -37
  2326. package/examples/extensions/subagent/agents/reviewer.md +0 -35
  2327. package/examples/extensions/subagent/agents/scout.md +0 -50
  2328. package/examples/extensions/subagent/agents/worker.md +0 -24
  2329. package/examples/extensions/subagent/agents.ts +0 -126
  2330. package/examples/extensions/subagent/index.ts +0 -1009
  2331. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
  2332. package/examples/extensions/subagent/prompts/implement.md +0 -10
  2333. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
  2334. package/examples/extensions/summarize.ts +0 -206
  2335. package/examples/extensions/system-prompt-header.ts +0 -17
  2336. package/examples/extensions/tic-tac-toe.ts +0 -1008
  2337. package/examples/extensions/timed-confirm.ts +0 -70
  2338. package/examples/extensions/titlebar-spinner.ts +0 -58
  2339. package/examples/extensions/todo.ts +0 -297
  2340. package/examples/extensions/tool-override.ts +0 -144
  2341. package/examples/extensions/tools.ts +0 -146
  2342. package/examples/extensions/trigger-compact.ts +0 -50
  2343. package/examples/extensions/truncated-tool.ts +0 -195
  2344. package/examples/extensions/widget-placement.ts +0 -9
  2345. package/examples/extensions/with-deps/index.ts +0 -32
  2346. package/examples/extensions/with-deps/package-lock.json +0 -31
  2347. package/examples/extensions/with-deps/package.json +0 -22
  2348. package/examples/extensions/working-indicator.ts +0 -123
  2349. package/examples/extensions/working-message-test.ts +0 -25
  2350. package/examples/rpc-extension-ui.ts +0 -632
  2351. package/examples/sdk/01-minimal.ts +0 -26
  2352. package/examples/sdk/02-custom-model.ts +0 -53
  2353. package/examples/sdk/03-custom-prompt.ts +0 -75
  2354. package/examples/sdk/04-skills.ts +0 -55
  2355. package/examples/sdk/05-tools.ts +0 -48
  2356. package/examples/sdk/06-extensions.ts +0 -99
  2357. package/examples/sdk/07-context-files.ts +0 -47
  2358. package/examples/sdk/08-prompt-templates.ts +0 -51
  2359. package/examples/sdk/09-api-keys-and-oauth.ts +0 -52
  2360. package/examples/sdk/10-settings.ts +0 -53
  2361. package/examples/sdk/11-sessions.ts +0 -52
  2362. package/examples/sdk/12-full-control.ts +0 -77
  2363. package/examples/sdk/13-session-runtime.ts +0 -67
  2364. package/examples/sdk/README.md +0 -144
  2365. package/npm-shrinkwrap.json +0 -512
  2366. /package/{dist/modes/interactive/assets → readmeasset}/omk-control.webp +0 -0
@@ -1,1864 +0,0 @@
1
- (function() {
2
- 'use strict';
3
-
4
- // ============================================================
5
- // DATA LOADING
6
- // ============================================================
7
-
8
- const base64 = document.getElementById('session-data').textContent;
9
- const binary = atob(base64);
10
- const bytes = new Uint8Array(binary.length);
11
- for (let i = 0; i < binary.length; i++) {
12
- bytes[i] = binary.charCodeAt(i);
13
- }
14
- const data = JSON.parse(new TextDecoder('utf-8').decode(bytes));
15
- const { header, entries, leafId: defaultLeafId, systemPrompt, tools, renderedTools } = data;
16
-
17
- // ============================================================
18
- // URL PARAMETER HANDLING
19
- // ============================================================
20
-
21
- // Parse URL parameters for deep linking: leafId and targetId
22
- // Check for injected params (when loaded in iframe via srcdoc) or use window.location
23
- const injectedParams = document.querySelector('meta[name="pi-url-params"]');
24
- const searchString = injectedParams ? injectedParams.content : window.location.search.substring(1);
25
- const urlParams = new URLSearchParams(searchString);
26
- const urlLeafId = urlParams.get('leafId');
27
- const urlTargetId = urlParams.get('targetId');
28
- // Use URL leafId if provided, otherwise fall back to session default
29
- const leafId = urlLeafId || defaultLeafId;
30
-
31
- // ============================================================
32
- // DATA STRUCTURES
33
- // ============================================================
34
-
35
- // Entry lookup by ID
36
- const byId = new Map();
37
- for (const entry of entries) {
38
- byId.set(entry.id, entry);
39
- }
40
-
41
- // Tool call lookup (toolCallId -> {name, arguments})
42
- const toolCallMap = new Map();
43
- for (const entry of entries) {
44
- if (entry.type === 'message' && entry.message.role === 'assistant') {
45
- const content = entry.message.content;
46
- if (Array.isArray(content)) {
47
- for (const block of content) {
48
- if (block.type === 'toolCall') {
49
- toolCallMap.set(block.id, { name: block.name, arguments: block.arguments });
50
- }
51
- }
52
- }
53
- }
54
- }
55
-
56
- // Label lookup (entryId -> label string)
57
- // Labels are stored in 'label' entries that reference their target via targetId
58
- const labelMap = new Map();
59
- for (const entry of entries) {
60
- if (entry.type === 'label' && entry.targetId && entry.label) {
61
- labelMap.set(entry.targetId, entry.label);
62
- }
63
- }
64
-
65
- // ============================================================
66
- // TREE DATA PREPARATION (no DOM, pure data)
67
- // ============================================================
68
-
69
- /**
70
- * Build tree structure from flat entries.
71
- * Returns array of root nodes, each with { entry, children, label }.
72
- */
73
- function buildTree() {
74
- const nodeMap = new Map();
75
- const roots = [];
76
-
77
- // Create nodes
78
- for (const entry of entries) {
79
- nodeMap.set(entry.id, {
80
- entry,
81
- children: [],
82
- label: labelMap.get(entry.id)
83
- });
84
- }
85
-
86
- // Build parent-child relationships
87
- for (const entry of entries) {
88
- const node = nodeMap.get(entry.id);
89
- if (entry.parentId === null || entry.parentId === undefined || entry.parentId === entry.id) {
90
- roots.push(node);
91
- } else {
92
- const parent = nodeMap.get(entry.parentId);
93
- if (parent) {
94
- parent.children.push(node);
95
- } else {
96
- roots.push(node);
97
- }
98
- }
99
- }
100
-
101
- // Sort children by timestamp
102
- function sortChildren(node) {
103
- node.children.sort((a, b) =>
104
- new Date(a.entry.timestamp).getTime() - new Date(b.entry.timestamp).getTime()
105
- );
106
- node.children.forEach(sortChildren);
107
- }
108
- roots.forEach(sortChildren);
109
-
110
- return roots;
111
- }
112
-
113
- /**
114
- * Build set of entry IDs on path from root to target.
115
- */
116
- function buildActivePathIds(targetId) {
117
- const ids = new Set();
118
- let current = byId.get(targetId);
119
- while (current) {
120
- ids.add(current.id);
121
- // Stop if no parent or self-referencing (root)
122
- if (!current.parentId || current.parentId === current.id) {
123
- break;
124
- }
125
- current = byId.get(current.parentId);
126
- }
127
- return ids;
128
- }
129
-
130
- /**
131
- * Get array of entries from root to target (the conversation path).
132
- */
133
- function getPath(targetId) {
134
- const path = [];
135
- let current = byId.get(targetId);
136
- while (current) {
137
- path.unshift(current);
138
- // Stop if no parent or self-referencing (root)
139
- if (!current.parentId || current.parentId === current.id) {
140
- break;
141
- }
142
- current = byId.get(current.parentId);
143
- }
144
- return path;
145
- }
146
-
147
- // Tree node lookup for finding leaves
148
- let treeNodeMap = null;
149
-
150
- /**
151
- * Find the newest leaf node reachable from a given node.
152
- * This allows clicking any node in a branch to show the full branch.
153
- * Children are sorted by timestamp, so the newest is always last.
154
- */
155
- function findNewestLeaf(nodeId) {
156
- // Build tree node map lazily
157
- if (!treeNodeMap) {
158
- treeNodeMap = new Map();
159
- const tree = buildTree();
160
- function mapNodes(node) {
161
- treeNodeMap.set(node.entry.id, node);
162
- node.children.forEach(mapNodes);
163
- }
164
- tree.forEach(mapNodes);
165
- }
166
-
167
- const node = treeNodeMap.get(nodeId);
168
- if (!node) return nodeId;
169
-
170
- // Follow the newest (last) child at each level
171
- let current = node;
172
- while (current.children.length > 0) {
173
- current = current.children[current.children.length - 1];
174
- }
175
- return current.entry.id;
176
- }
177
-
178
- /**
179
- * Flatten tree into list with indentation and connector info.
180
- * Returns array of { node, indent, showConnector, isLast, gutters, isVirtualRootChild, multipleRoots }.
181
- * Matches tree-selector.ts logic exactly.
182
- */
183
- function flattenTree(roots, activePathIds) {
184
- const result = [];
185
- const multipleRoots = roots.length > 1;
186
-
187
- // Mark which subtrees contain the active leaf
188
- const containsActive = new Map();
189
- function markActive(node) {
190
- let has = activePathIds.has(node.entry.id);
191
- for (const child of node.children) {
192
- if (markActive(child)) has = true;
193
- }
194
- containsActive.set(node, has);
195
- return has;
196
- }
197
- roots.forEach(markActive);
198
-
199
- // Stack: [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild]
200
- const stack = [];
201
-
202
- // Add roots (prioritize branch containing active leaf)
203
- const orderedRoots = [...roots].sort((a, b) =>
204
- Number(containsActive.get(b)) - Number(containsActive.get(a))
205
- );
206
- for (let i = orderedRoots.length - 1; i >= 0; i--) {
207
- const isLast = i === orderedRoots.length - 1;
208
- stack.push([orderedRoots[i], multipleRoots ? 1 : 0, multipleRoots, multipleRoots, isLast, [], multipleRoots]);
209
- }
210
-
211
- while (stack.length > 0) {
212
- const [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop();
213
-
214
- result.push({ node, indent, showConnector, isLast, gutters, isVirtualRootChild, multipleRoots });
215
-
216
- const children = node.children;
217
- const multipleChildren = children.length > 1;
218
-
219
- // Order children (active branch first)
220
- const orderedChildren = [...children].sort((a, b) =>
221
- Number(containsActive.get(b)) - Number(containsActive.get(a))
222
- );
223
-
224
- // Calculate child indent (matches tree-selector.ts)
225
- let childIndent;
226
- if (multipleChildren) {
227
- // Parent branches: children get +1
228
- childIndent = indent + 1;
229
- } else if (justBranched && indent > 0) {
230
- // First generation after a branch: +1 for visual grouping
231
- childIndent = indent + 1;
232
- } else {
233
- // Single-child chain: stay flat
234
- childIndent = indent;
235
- }
236
-
237
- // Build gutters for children
238
- const connectorDisplayed = showConnector && !isVirtualRootChild;
239
- const currentDisplayIndent = multipleRoots ? Math.max(0, indent - 1) : indent;
240
- const connectorPosition = Math.max(0, currentDisplayIndent - 1);
241
- const childGutters = connectorDisplayed
242
- ? [...gutters, { position: connectorPosition, show: !isLast }]
243
- : gutters;
244
-
245
- // Add children in reverse order for stack
246
- for (let i = orderedChildren.length - 1; i >= 0; i--) {
247
- const childIsLast = i === orderedChildren.length - 1;
248
- stack.push([orderedChildren[i], childIndent, multipleChildren, multipleChildren, childIsLast, childGutters, false]);
249
- }
250
- }
251
-
252
- return result;
253
- }
254
-
255
- /**
256
- * Build ASCII prefix string for tree node.
257
- */
258
- function buildTreePrefix(flatNode) {
259
- const { indent, showConnector, isLast, gutters, isVirtualRootChild, multipleRoots } = flatNode;
260
- const displayIndent = multipleRoots ? Math.max(0, indent - 1) : indent;
261
- const connector = showConnector && !isVirtualRootChild ? (isLast ? '└─ ' : '├─ ') : '';
262
- const connectorPosition = connector ? displayIndent - 1 : -1;
263
-
264
- const totalChars = displayIndent * 3;
265
- const prefixChars = [];
266
- for (let i = 0; i < totalChars; i++) {
267
- const level = Math.floor(i / 3);
268
- const posInLevel = i % 3;
269
-
270
- const gutter = gutters.find(g => g.position === level);
271
- if (gutter) {
272
- prefixChars.push(posInLevel === 0 ? (gutter.show ? '│' : ' ') : ' ');
273
- } else if (connector && level === connectorPosition) {
274
- if (posInLevel === 0) {
275
- prefixChars.push(isLast ? '└' : '├');
276
- } else if (posInLevel === 1) {
277
- prefixChars.push('─');
278
- } else {
279
- prefixChars.push(' ');
280
- }
281
- } else {
282
- prefixChars.push(' ');
283
- }
284
- }
285
- return prefixChars.join('');
286
- }
287
-
288
- // ============================================================
289
- // FILTERING (pure data)
290
- // ============================================================
291
-
292
- let filterMode = 'default';
293
- let searchQuery = '';
294
-
295
- function hasTextContent(content) {
296
- if (typeof content === 'string') return content.trim().length > 0;
297
- if (Array.isArray(content)) {
298
- for (const c of content) {
299
- if (c.type === 'text' && c.text && c.text.trim().length > 0) return true;
300
- }
301
- }
302
- return false;
303
- }
304
-
305
- function extractContent(content) {
306
- if (typeof content === 'string') return content;
307
- if (Array.isArray(content)) {
308
- return content
309
- .filter(c => c.type === 'text' && c.text)
310
- .map(c => c.text)
311
- .join('');
312
- }
313
- return '';
314
- }
315
-
316
- /**
317
- * Parse a skill block from message text.
318
- * Returns null if the text doesn't contain a skill block.
319
- * Matches the format: <skill name="..." location="...">\n...\n</skill>\n\nuser message
320
- */
321
- function parseSkillBlock(text) {
322
- const match = text.match(/^<skill name="([^"]+)" location="([^"]+)">\n([\s\S]*?)\n<\/skill>(?:\n\n([\s\S]+))?$/);
323
- if (!match) return null;
324
- return {
325
- name: match[1],
326
- location: match[2],
327
- content: match[3],
328
- userMessage: match[4]?.trim() || undefined,
329
- };
330
- }
331
-
332
- function getSearchableText(entry, label) {
333
- const parts = [];
334
- if (label) parts.push(label);
335
-
336
- switch (entry.type) {
337
- case 'message': {
338
- const msg = entry.message;
339
- parts.push(msg.role);
340
- if (msg.content) parts.push(extractContent(msg.content));
341
- if (msg.role === 'bashExecution' && msg.command) parts.push(msg.command);
342
- break;
343
- }
344
- case 'custom_message':
345
- parts.push(entry.customType);
346
- parts.push(typeof entry.content === 'string' ? entry.content : extractContent(entry.content));
347
- break;
348
- case 'compaction':
349
- parts.push('compaction');
350
- break;
351
- case 'branch_summary':
352
- parts.push('branch summary', entry.summary);
353
- break;
354
- case 'model_change':
355
- parts.push('model', entry.modelId);
356
- break;
357
- case 'thinking_level_change':
358
- parts.push('thinking', entry.thinkingLevel);
359
- break;
360
- }
361
-
362
- return parts.join(' ').toLowerCase();
363
- }
364
-
365
- /**
366
- * Filter flat nodes based on current filterMode and searchQuery.
367
- */
368
- function filterNodes(flatNodes, currentLeafId) {
369
- const searchTokens = searchQuery.toLowerCase().split(/\s+/).filter(Boolean);
370
-
371
- const filtered = flatNodes.filter(flatNode => {
372
- const entry = flatNode.node.entry;
373
- const label = flatNode.node.label;
374
- const isCurrentLeaf = entry.id === currentLeafId;
375
-
376
- // Always show current leaf
377
- if (isCurrentLeaf) return true;
378
-
379
- // Hide assistant messages with only tool calls (no text) unless error/aborted
380
- if (entry.type === 'message' && entry.message.role === 'assistant') {
381
- const msg = entry.message;
382
- const hasText = hasTextContent(msg.content);
383
- const isErrorOrAborted = msg.stopReason && msg.stopReason !== 'stop' && msg.stopReason !== 'toolUse';
384
- if (!hasText && !isErrorOrAborted) return false;
385
- }
386
-
387
- // Apply filter mode
388
- const isSettingsEntry = ['label', 'custom', 'model_change', 'thinking_level_change'].includes(entry.type);
389
- let passesFilter = true;
390
-
391
- switch (filterMode) {
392
- case 'user-only':
393
- passesFilter = entry.type === 'message' && entry.message.role === 'user';
394
- break;
395
- case 'no-tools':
396
- passesFilter = !isSettingsEntry && !(entry.type === 'message' && entry.message.role === 'toolResult');
397
- break;
398
- case 'labeled-only':
399
- passesFilter = label !== undefined;
400
- break;
401
- case 'all':
402
- passesFilter = true;
403
- break;
404
- default: // 'default'
405
- passesFilter = !isSettingsEntry;
406
- break;
407
- }
408
-
409
- if (!passesFilter) return false;
410
-
411
- // Apply search filter
412
- if (searchTokens.length > 0) {
413
- const nodeText = getSearchableText(entry, label);
414
- if (!searchTokens.every(t => nodeText.includes(t))) return false;
415
- }
416
-
417
- return true;
418
- });
419
-
420
- // Recalculate visual structure based on visible tree
421
- recalculateVisualStructure(filtered, flatNodes);
422
-
423
- return filtered;
424
- }
425
-
426
- /**
427
- * Recompute indentation/connectors for the filtered view
428
- *
429
- * Filtering can hide intermediate entries; descendants attach to the nearest visible ancestor.
430
- * Keep indentation semantics aligned with flattenTree() so single-child chains don't drift right.
431
- */
432
- function recalculateVisualStructure(filteredNodes, allFlatNodes) {
433
- if (filteredNodes.length === 0) return;
434
-
435
- const visibleIds = new Set(filteredNodes.map(n => n.node.entry.id));
436
-
437
- // Build entry map for parent lookup (using full tree)
438
- const entryMap = new Map();
439
- for (const flatNode of allFlatNodes) {
440
- entryMap.set(flatNode.node.entry.id, flatNode);
441
- }
442
-
443
- // Find nearest visible ancestor for a node
444
- function findVisibleAncestor(nodeId) {
445
- let currentId = entryMap.get(nodeId)?.node.entry.parentId;
446
- while (currentId != null) {
447
- if (visibleIds.has(currentId)) {
448
- return currentId;
449
- }
450
- currentId = entryMap.get(currentId)?.node.entry.parentId;
451
- }
452
- return null;
453
- }
454
-
455
- // Build visible tree structure
456
- const visibleParent = new Map();
457
- const visibleChildren = new Map();
458
- visibleChildren.set(null, []); // root-level nodes
459
-
460
- for (const flatNode of filteredNodes) {
461
- const nodeId = flatNode.node.entry.id;
462
- const ancestorId = findVisibleAncestor(nodeId);
463
- visibleParent.set(nodeId, ancestorId);
464
-
465
- if (!visibleChildren.has(ancestorId)) {
466
- visibleChildren.set(ancestorId, []);
467
- }
468
- visibleChildren.get(ancestorId).push(nodeId);
469
- }
470
-
471
- // Update multipleRoots based on visible roots
472
- const visibleRootIds = visibleChildren.get(null);
473
- const multipleRoots = visibleRootIds.length > 1;
474
-
475
- // Build a map for quick lookup: nodeId → FlatNode
476
- const filteredNodeMap = new Map();
477
- for (const flatNode of filteredNodes) {
478
- filteredNodeMap.set(flatNode.node.entry.id, flatNode);
479
- }
480
-
481
- // DFS traversal of visible tree, applying same indentation rules as flattenTree()
482
- // Stack items: [nodeId, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild]
483
- const stack = [];
484
-
485
- // Add visible roots in reverse order (to process in forward order via stack)
486
- for (let i = visibleRootIds.length - 1; i >= 0; i--) {
487
- const isLast = i === visibleRootIds.length - 1;
488
- stack.push([
489
- visibleRootIds[i],
490
- multipleRoots ? 1 : 0,
491
- multipleRoots,
492
- multipleRoots,
493
- isLast,
494
- [],
495
- multipleRoots
496
- ]);
497
- }
498
-
499
- while (stack.length > 0) {
500
- const [nodeId, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop();
501
-
502
- const flatNode = filteredNodeMap.get(nodeId);
503
- if (!flatNode) continue;
504
-
505
- // Update this node's visual properties
506
- flatNode.indent = indent;
507
- flatNode.showConnector = showConnector;
508
- flatNode.isLast = isLast;
509
- flatNode.gutters = gutters;
510
- flatNode.isVirtualRootChild = isVirtualRootChild;
511
- flatNode.multipleRoots = multipleRoots;
512
-
513
- // Get visible children of this node
514
- const children = visibleChildren.get(nodeId) || [];
515
- const multipleChildren = children.length > 1;
516
-
517
- // Calculate child indent using same rules as flattenTree():
518
- // - Parent branches (multiple children): children get +1
519
- // - Just branched and indent > 0: children get +1 for visual grouping
520
- // - Single-child chain: stay flat
521
- let childIndent;
522
- if (multipleChildren) {
523
- childIndent = indent + 1;
524
- } else if (justBranched && indent > 0) {
525
- childIndent = indent + 1;
526
- } else {
527
- childIndent = indent;
528
- }
529
-
530
- // Build gutters for children (same logic as flattenTree)
531
- const connectorDisplayed = showConnector && !isVirtualRootChild;
532
- const currentDisplayIndent = multipleRoots ? Math.max(0, indent - 1) : indent;
533
- const connectorPosition = Math.max(0, currentDisplayIndent - 1);
534
- const childGutters = connectorDisplayed
535
- ? [...gutters, { position: connectorPosition, show: !isLast }]
536
- : gutters;
537
-
538
- // Add children in reverse order (to process in forward order via stack)
539
- for (let i = children.length - 1; i >= 0; i--) {
540
- const childIsLast = i === children.length - 1;
541
- stack.push([
542
- children[i],
543
- childIndent,
544
- multipleChildren,
545
- multipleChildren,
546
- childIsLast,
547
- childGutters,
548
- false
549
- ]);
550
- }
551
- }
552
- }
553
-
554
- // ============================================================
555
- // TREE DISPLAY TEXT (pure data -> string)
556
- // ============================================================
557
-
558
- function shortenPath(p) {
559
- if (typeof p !== 'string') return '';
560
- if (p.startsWith('/Users/')) {
561
- const parts = p.split('/');
562
- if (parts.length > 2) return '~' + p.slice(('/Users/' + parts[2]).length);
563
- }
564
- if (p.startsWith('/home/')) {
565
- const parts = p.split('/');
566
- if (parts.length > 2) return '~' + p.slice(('/home/' + parts[2]).length);
567
- }
568
- return p;
569
- }
570
-
571
- function formatToolCall(name, args) {
572
- switch (name) {
573
- case 'read': {
574
- const path = shortenPath(String(args.path || args.file_path || ''));
575
- const offset = args.offset;
576
- const limit = args.limit;
577
- let display = path;
578
- if (offset !== undefined || limit !== undefined) {
579
- const start = offset ?? 1;
580
- const end = limit !== undefined ? start + limit - 1 : '';
581
- display += `:${start}${end ? `-${end}` : ''}`;
582
- }
583
- return `[read: ${display}]`;
584
- }
585
- case 'write':
586
- return `[write: ${shortenPath(String(args.path || args.file_path || ''))}]`;
587
- case 'edit':
588
- return `[edit: ${shortenPath(String(args.path || args.file_path || ''))}]`;
589
- case 'bash': {
590
- const rawCmd = String(args.command || '');
591
- const cmd = rawCmd.replace(/[\n\t]/g, ' ').trim().slice(0, 50);
592
- return `[bash: ${cmd}${rawCmd.length > 50 ? '...' : ''}]`;
593
- }
594
- case 'grep':
595
- return `[grep: /${args.pattern || ''}/ in ${shortenPath(String(args.path || '.'))}]`;
596
- case 'find':
597
- return `[find: ${args.pattern || ''} in ${shortenPath(String(args.path || '.'))}]`;
598
- case 'ls':
599
- return `[ls: ${shortenPath(String(args.path || '.'))}]`;
600
- default: {
601
- const argsStr = JSON.stringify(args).slice(0, 40);
602
- return `[${name}: ${argsStr}${JSON.stringify(args).length > 40 ? '...' : ''}]`;
603
- }
604
- }
605
- }
606
-
607
- function escapeHtml(text) {
608
- return String(text)
609
- .replace(/&/g, '&amp;')
610
- .replace(/</g, '&lt;')
611
- .replace(/>/g, '&gt;')
612
- .replace(/"/g, '&quot;')
613
- .replace(/'/g, '&#39;');
614
- }
615
-
616
- function sanitizeMarkdownUrl(value) {
617
- const href = String(value || '').trim().replace(/[\x00-\x1f\x7f]/g, '');
618
- if (!href) return href;
619
-
620
- const scheme = href.match(/^([A-Za-z][A-Za-z0-9+.-]*):/);
621
- if (scheme && !/^(https?|mailto|tel|ftp)$/i.test(scheme[1])) {
622
- return null;
623
- }
624
-
625
- return href;
626
- }
627
-
628
- /**
629
- * Truncate string to maxLen chars, append "..." if truncated.
630
- */
631
- function truncate(s, maxLen = 100) {
632
- if (s.length <= maxLen) return s;
633
- return s.slice(0, maxLen) + '...';
634
- }
635
-
636
- /**
637
- * Get display text for tree node (returns HTML string).
638
- */
639
- function getTreeNodeDisplayHtml(entry, label) {
640
- const normalize = s => s.replace(/[\n\t]/g, ' ').trim();
641
- const labelHtml = label ? `<span class="tree-label">[${escapeHtml(label)}]</span> ` : '';
642
-
643
- switch (entry.type) {
644
- case 'message': {
645
- const msg = entry.message;
646
- if (msg.role === 'user') {
647
- const rawContent = extractContent(msg.content);
648
- const skillBlock = parseSkillBlock(rawContent);
649
- if (skillBlock) {
650
- let treeHtml = labelHtml + `<span class="tree-role-skill">skill:</span> ${escapeHtml(skillBlock.name)}`;
651
- if (skillBlock.userMessage) {
652
- treeHtml += ` · <span class="tree-role-user">user:</span> ${escapeHtml(truncate(normalize(skillBlock.userMessage)))}`;
653
- }
654
- return treeHtml;
655
- }
656
- const content = truncate(normalize(rawContent));
657
- return labelHtml + `<span class="tree-role-user">user:</span> ${escapeHtml(content)}`;
658
- }
659
- if (msg.role === 'assistant') {
660
- const textContent = truncate(normalize(extractContent(msg.content)));
661
- if (textContent) {
662
- return labelHtml + `<span class="tree-role-assistant">assistant:</span> ${escapeHtml(textContent)}`;
663
- }
664
- if (msg.stopReason === 'aborted') {
665
- return labelHtml + `<span class="tree-role-assistant">assistant:</span> <span class="tree-muted">(aborted)</span>`;
666
- }
667
- if (msg.errorMessage) {
668
- return labelHtml + `<span class="tree-role-assistant">assistant:</span> <span class="tree-error">${escapeHtml(truncate(msg.errorMessage))}</span>`;
669
- }
670
- return labelHtml + `<span class="tree-role-assistant">assistant:</span> <span class="tree-muted">(no text)</span>`;
671
- }
672
- if (msg.role === 'toolResult') {
673
- const toolCall = msg.toolCallId ? toolCallMap.get(msg.toolCallId) : null;
674
- if (toolCall) {
675
- return labelHtml + `<span class="tree-role-tool">${escapeHtml(formatToolCall(toolCall.name, toolCall.arguments))}</span>`;
676
- }
677
- return labelHtml + `<span class="tree-role-tool">[${escapeHtml(msg.toolName || 'tool')}]</span>`;
678
- }
679
- if (msg.role === 'bashExecution') {
680
- const cmd = truncate(normalize(msg.command || ''));
681
- return labelHtml + `<span class="tree-role-tool">[bash]:</span> ${escapeHtml(cmd)}`;
682
- }
683
- return labelHtml + `<span class="tree-muted">[${escapeHtml(msg.role)}]</span>`;
684
- }
685
- case 'compaction':
686
- return labelHtml + `<span class="tree-compaction">[compaction: ${Math.round(entry.tokensBefore/1000)}k tokens]</span>`;
687
- case 'branch_summary': {
688
- const summary = truncate(normalize(entry.summary || ''));
689
- return labelHtml + `<span class="tree-branch-summary">[branch summary]:</span> ${escapeHtml(summary)}`;
690
- }
691
- case 'custom_message': {
692
- const content = typeof entry.content === 'string' ? entry.content : extractContent(entry.content);
693
- return labelHtml + `<span class="tree-custom">[${escapeHtml(entry.customType)}]:</span> ${escapeHtml(truncate(normalize(content)))}`;
694
- }
695
- case 'model_change':
696
- return labelHtml + `<span class="tree-muted">[model: ${escapeHtml(entry.modelId)}]</span>`;
697
- case 'thinking_level_change':
698
- return labelHtml + `<span class="tree-muted">[thinking: ${escapeHtml(entry.thinkingLevel)}]</span>`;
699
- default:
700
- return labelHtml + `<span class="tree-muted">[${escapeHtml(entry.type)}]</span>`;
701
- }
702
- }
703
-
704
- // ============================================================
705
- // TREE RENDERING (DOM manipulation)
706
- // ============================================================
707
-
708
- let currentLeafId = leafId;
709
- let currentTargetId = urlTargetId || leafId;
710
- let treeRendered = false;
711
-
712
- function renderTree() {
713
- const tree = buildTree();
714
- const activePathIds = buildActivePathIds(currentLeafId);
715
- const flatNodes = flattenTree(tree, activePathIds);
716
- const filtered = filterNodes(flatNodes, currentLeafId);
717
- const container = document.getElementById('tree-container');
718
-
719
- // Full render only on first call or when filter/search changes
720
- if (!treeRendered) {
721
- container.innerHTML = '';
722
-
723
- for (const flatNode of filtered) {
724
- const entry = flatNode.node.entry;
725
- const isOnPath = activePathIds.has(entry.id);
726
- const isTarget = entry.id === currentTargetId;
727
-
728
- const div = document.createElement('div');
729
- div.className = 'tree-node';
730
- if (isOnPath) div.classList.add('in-path');
731
- if (isTarget) div.classList.add('active');
732
- div.dataset.id = entry.id;
733
-
734
- const prefix = buildTreePrefix(flatNode);
735
- const prefixSpan = document.createElement('span');
736
- prefixSpan.className = 'tree-prefix';
737
- prefixSpan.textContent = prefix;
738
-
739
- const marker = document.createElement('span');
740
- marker.className = 'tree-marker';
741
- marker.textContent = isOnPath ? '•' : ' ';
742
-
743
- const content = document.createElement('span');
744
- content.className = 'tree-content';
745
- content.innerHTML = getTreeNodeDisplayHtml(entry, flatNode.node.label);
746
-
747
- div.appendChild(prefixSpan);
748
- div.appendChild(marker);
749
- div.appendChild(content);
750
- // Navigate to the newest leaf through this node, but scroll to the clicked node
751
- div.addEventListener('click', () => {
752
- if (window.getSelection().toString()) return;
753
- const leafId = findNewestLeaf(entry.id);
754
- navigateTo(leafId, 'target', entry.id);
755
- });
756
-
757
- container.appendChild(div);
758
- }
759
-
760
- treeRendered = true;
761
- } else {
762
- // Just update markers and classes
763
- const nodes = container.querySelectorAll('.tree-node');
764
- for (const node of nodes) {
765
- const id = node.dataset.id;
766
- const isOnPath = activePathIds.has(id);
767
- const isTarget = id === currentTargetId;
768
-
769
- node.classList.toggle('in-path', isOnPath);
770
- node.classList.toggle('active', isTarget);
771
-
772
- const marker = node.querySelector('.tree-marker');
773
- if (marker) {
774
- marker.textContent = isOnPath ? '•' : ' ';
775
- }
776
- }
777
- }
778
-
779
- document.getElementById('tree-status').textContent = `${filtered.length} / ${flatNodes.length} entries`;
780
-
781
- // Scroll active node into view after layout
782
- setTimeout(() => {
783
- const activeNode = container.querySelector('.tree-node.active');
784
- if (activeNode) {
785
- activeNode.scrollIntoView({ block: 'nearest' });
786
- }
787
- }, 0);
788
- }
789
-
790
- function forceTreeRerender() {
791
- treeRendered = false;
792
- renderTree();
793
- }
794
-
795
- // ============================================================
796
- // MESSAGE RENDERING
797
- // ============================================================
798
-
799
- function formatTokens(count) {
800
- if (count < 1000) return count.toString();
801
- if (count < 10000) return (count / 1000).toFixed(1) + 'k';
802
- if (count < 1000000) return Math.round(count / 1000) + 'k';
803
- return (count / 1000000).toFixed(1) + 'M';
804
- }
805
-
806
- function formatTimestamp(ts) {
807
- if (!ts) return '';
808
- const date = new Date(ts);
809
- return date.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit', second: '2-digit' });
810
- }
811
-
812
- function replaceTabs(text) {
813
- return text.replace(/\t/g, ' ');
814
- }
815
-
816
- /** Safely coerce value to string for display. Returns null if invalid type. */
817
- function str(value) {
818
- if (typeof value === 'string') return value;
819
- if (value == null) return '';
820
- return null;
821
- }
822
-
823
- function getLanguageFromPath(filePath) {
824
- const ext = filePath.split('.').pop()?.toLowerCase();
825
- const extToLang = {
826
- ts: 'typescript', tsx: 'typescript', js: 'javascript', jsx: 'javascript',
827
- py: 'python', rb: 'ruby', rs: 'rust', go: 'go', java: 'java',
828
- c: 'c', cpp: 'cpp', h: 'c', hpp: 'cpp', cs: 'csharp',
829
- php: 'php', sh: 'bash', bash: 'bash', zsh: 'bash',
830
- sql: 'sql', html: 'html', css: 'css', scss: 'scss',
831
- json: 'json', yaml: 'yaml', yml: 'yaml', xml: 'xml',
832
- md: 'markdown', dockerfile: 'dockerfile'
833
- };
834
- return extToLang[ext];
835
- }
836
-
837
- function findToolResult(toolCallId) {
838
- for (const entry of entries) {
839
- if (entry.type === 'message' && entry.message.role === 'toolResult') {
840
- if (entry.message.toolCallId === toolCallId) {
841
- return entry.message;
842
- }
843
- }
844
- }
845
- return null;
846
- }
847
-
848
- function formatExpandableOutput(text, maxLines, lang) {
849
- text = replaceTabs(text);
850
- const lines = text.split('\n');
851
- const displayLines = lines.slice(0, maxLines);
852
- const remaining = lines.length - maxLines;
853
-
854
- if (lang) {
855
- let highlighted;
856
- try {
857
- highlighted = hljs.highlight(text, { language: lang }).value;
858
- } catch {
859
- highlighted = escapeHtml(text);
860
- }
861
-
862
- if (remaining > 0) {
863
- const previewCode = displayLines.join('\n');
864
- let previewHighlighted;
865
- try {
866
- previewHighlighted = hljs.highlight(previewCode, { language: lang }).value;
867
- } catch {
868
- previewHighlighted = escapeHtml(previewCode);
869
- }
870
-
871
- return `<div class="tool-output expandable" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
872
- <div class="output-preview"><pre><code class="hljs">${previewHighlighted}</code></pre>
873
- <div class="expand-hint">... (${remaining} more lines)</div></div>
874
- <div class="output-full"><pre><code class="hljs">${highlighted}</code></pre></div></div>`;
875
- }
876
-
877
- return `<div class="tool-output"><pre><code class="hljs">${highlighted}</code></pre></div>`;
878
- }
879
-
880
- // Plain text output
881
- if (remaining > 0) {
882
- let out = '<div class="tool-output expandable" onclick="if(window.getSelection().toString())return;this.classList.toggle(\'expanded\')">';
883
- out += '<div class="output-preview">';
884
- for (const line of displayLines) {
885
- out += `<div>${escapeHtml(replaceTabs(line))}</div>`;
886
- }
887
- out += `<div class="expand-hint">... (${remaining} more lines)</div></div>`;
888
- out += '<div class="output-full">';
889
- for (const line of lines) {
890
- out += `<div>${escapeHtml(replaceTabs(line))}</div>`;
891
- }
892
- out += '</div></div>';
893
- return out;
894
- }
895
-
896
- let out = '<div class="tool-output">';
897
- for (const line of displayLines) {
898
- out += `<div>${escapeHtml(replaceTabs(line))}</div>`;
899
- }
900
- out += '</div>';
901
- return out;
902
- }
903
-
904
- function renderToolCall(call) {
905
- const result = findToolResult(call.id);
906
- const isError = result?.isError || false;
907
- const statusClass = result ? (isError ? 'error' : 'success') : 'pending';
908
-
909
- const getResultText = () => {
910
- if (!result) return '';
911
- const textBlocks = result.content.filter(c => c.type === 'text');
912
- return textBlocks.map(c => c.text).join('\n');
913
- };
914
-
915
- const getResultImages = () => {
916
- if (!result) return [];
917
- return result.content.filter(c => c.type === 'image');
918
- };
919
-
920
- const renderResultImages = () => {
921
- const images = getResultImages();
922
- if (images.length === 0) return '';
923
- return '<div class="tool-images">' +
924
- images.map(img => `<img src="data:${escapeHtml(img.mimeType || 'image/png')};base64,${escapeHtml(img.data || '')}" class="tool-image" />`).join('') +
925
- '</div>';
926
- };
927
-
928
- const toolDomId = `tool-call-${escapeHtml(call.id)}`;
929
- let html = `<div class="tool-execution ${statusClass}" id="${toolDomId}">`;
930
- const args = call.arguments || {};
931
- const name = call.name;
932
-
933
- const invalidArg = '<span class="tool-error">[invalid arg]</span>';
934
-
935
- switch (name) {
936
- case 'bash': {
937
- const command = str(args.command);
938
- const cmdDisplay = command === null ? invalidArg : escapeHtml(command || '...');
939
- html += `<div class="tool-command">$ ${cmdDisplay}</div>`;
940
- if (result) {
941
- const output = getResultText().trim();
942
- if (output) html += formatExpandableOutput(output, 5);
943
- }
944
- break;
945
- }
946
- case 'read': {
947
- const filePath = str(args.file_path ?? args.path);
948
- const offset = args.offset;
949
- const limit = args.limit;
950
-
951
- let pathHtml = filePath === null ? invalidArg : escapeHtml(shortenPath(filePath || ''));
952
- if (filePath !== null && (offset !== undefined || limit !== undefined)) {
953
- const startLine = offset ?? 1;
954
- const endLine = limit !== undefined ? startLine + limit - 1 : '';
955
- pathHtml += `<span class="line-numbers">:${startLine}${endLine ? '-' + endLine : ''}</span>`;
956
- }
957
-
958
- html += `<div class="tool-header"><span class="tool-name">read</span> <span class="tool-path">${pathHtml}</span></div>`;
959
- if (result) {
960
- html += renderResultImages();
961
- const output = getResultText();
962
- const lang = filePath ? getLanguageFromPath(filePath) : null;
963
- if (output) html += formatExpandableOutput(output, 10, lang);
964
- }
965
- break;
966
- }
967
- case 'write': {
968
- const filePath = str(args.file_path ?? args.path);
969
- const content = str(args.content);
970
-
971
- html += `<div class="tool-header"><span class="tool-name">write</span> <span class="tool-path">${filePath === null ? invalidArg : escapeHtml(shortenPath(filePath || ''))}</span>`;
972
- if (content !== null && content) {
973
- const lines = content.split('\n');
974
- if (lines.length > 10) html += ` <span class="line-count">(${lines.length} lines)</span>`;
975
- }
976
- html += '</div>';
977
-
978
- if (content === null) {
979
- html += `<div class="tool-error">[invalid content arg - expected string]</div>`;
980
- } else if (content) {
981
- const lang = filePath ? getLanguageFromPath(filePath) : null;
982
- html += formatExpandableOutput(content, 10, lang);
983
- }
984
- if (result) {
985
- const output = getResultText().trim();
986
- if (output) html += `<div class="tool-output"><div>${escapeHtml(output)}</div></div>`;
987
- }
988
- break;
989
- }
990
- case 'edit': {
991
- const filePath = str(args.file_path ?? args.path);
992
- html += `<div class="tool-header"><span class="tool-name">edit</span> <span class="tool-path">${filePath === null ? invalidArg : escapeHtml(shortenPath(filePath || ''))}</span></div>`;
993
-
994
- if (result?.details?.diff) {
995
- const diffLines = result.details.diff.split('\n');
996
- html += '<div class="tool-diff">';
997
- for (const line of diffLines) {
998
- const cls = line.match(/^\+/) ? 'diff-added' : line.match(/^-/) ? 'diff-removed' : 'diff-context';
999
- html += `<div class="${cls}">${escapeHtml(replaceTabs(line))}</div>`;
1000
- }
1001
- html += '</div>';
1002
- } else if (result) {
1003
- const output = getResultText().trim();
1004
- if (output) html += `<div class="tool-output"><pre>${escapeHtml(output)}</pre></div>`;
1005
- }
1006
- break;
1007
- }
1008
- case 'ls': {
1009
- const dirPath = str(args.path);
1010
- const limit = args.limit;
1011
-
1012
- let pathHtml = dirPath === null ? invalidArg : escapeHtml(shortenPath(dirPath || '.'));
1013
- if (limit !== undefined) {
1014
- pathHtml += ` <span class="line-count">(limit ${escapeHtml(String(limit))})</span>`;
1015
- }
1016
-
1017
- html += `<div class="tool-header"><span class="tool-name">ls</span> <span class="tool-path">${pathHtml}</span></div>`;
1018
- if (result) {
1019
- const output = getResultText().trim();
1020
- if (output) html += formatExpandableOutput(output, 20);
1021
- }
1022
- break;
1023
- }
1024
- default: {
1025
- // Check for pre-rendered custom tool HTML
1026
- const rendered = renderedTools?.[call.id];
1027
- if (rendered?.callHtml || rendered?.resultHtmlCollapsed || rendered?.resultHtmlExpanded) {
1028
- // Custom tool with pre-rendered HTML from TUI renderer
1029
- if (rendered.callHtml) {
1030
- html += `<div class="tool-header ansi-rendered">${rendered.callHtml}</div>`;
1031
- } else {
1032
- html += `<div class="tool-header"><span class="tool-name">${escapeHtml(name)}</span></div>`;
1033
- }
1034
-
1035
- if (rendered.resultHtmlCollapsed && rendered.resultHtmlExpanded && rendered.resultHtmlCollapsed !== rendered.resultHtmlExpanded) {
1036
- // Both collapsed and expanded differ - render expandable section
1037
- html += `<div class="tool-output expandable ansi-rendered" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
1038
- <div class="output-preview">${rendered.resultHtmlCollapsed}</div>
1039
- <div class="output-full">${rendered.resultHtmlExpanded}</div>
1040
- </div>`;
1041
- } else if (rendered.resultHtmlExpanded) {
1042
- // Only expanded exists (or collapsed is identical) - show directly
1043
- html += `<div class="tool-output ansi-rendered">${rendered.resultHtmlExpanded}</div>`;
1044
- } else if (result) {
1045
- // No pre-rendered result HTML - fallback to JSON
1046
- const output = getResultText();
1047
- if (output) html += formatExpandableOutput(output, 10);
1048
- }
1049
- } else {
1050
- // Fallback to JSON display (existing behavior)
1051
- html += `<div class="tool-header"><span class="tool-name">${escapeHtml(name)}</span></div>`;
1052
- html += `<div class="tool-output"><pre>${escapeHtml(JSON.stringify(args, null, 2))}</pre></div>`;
1053
- if (result) {
1054
- const output = getResultText();
1055
- if (output) html += formatExpandableOutput(output, 10);
1056
- }
1057
- }
1058
- }
1059
- }
1060
-
1061
- html += '</div>';
1062
- return html;
1063
- }
1064
-
1065
- /**
1066
- * Download the session data as a JSONL file.
1067
- * Reconstructs the original format: header line + entry lines.
1068
- */
1069
- window.downloadSessionJson = function() {
1070
- // Build JSONL content: header first, then all entries
1071
- const lines = [];
1072
- if (header) {
1073
- lines.push(JSON.stringify({ type: 'header', ...header }));
1074
- }
1075
- for (const entry of entries) {
1076
- lines.push(JSON.stringify(entry));
1077
- }
1078
- const jsonlContent = lines.join('\n');
1079
-
1080
- // Create download
1081
- const blob = new Blob([jsonlContent], { type: 'application/x-ndjson' });
1082
- const url = URL.createObjectURL(blob);
1083
- const a = document.createElement('a');
1084
- a.href = url;
1085
- a.download = `${header?.id || 'session'}.jsonl`;
1086
- document.body.appendChild(a);
1087
- a.click();
1088
- document.body.removeChild(a);
1089
- URL.revokeObjectURL(url);
1090
- }
1091
-
1092
- /**
1093
- * Build a shareable URL for a specific message.
1094
- * URL format: base?gistId&leafId=<leafId>&targetId=<entryId>
1095
- */
1096
- function buildShareUrl(entryId) {
1097
- // Check for injected base URL (used when loaded in iframe via srcdoc)
1098
- const baseUrlMeta = document.querySelector('meta[name="pi-share-base-url"]');
1099
- const baseUrl = baseUrlMeta ? baseUrlMeta.content : window.location.href.split('?')[0];
1100
-
1101
- const url = new URL(window.location.href);
1102
- // Find the gist ID (first query param without value, e.g., ?abc123)
1103
- const gistId = Array.from(url.searchParams.keys()).find(k => !url.searchParams.get(k));
1104
-
1105
- // Build the share URL
1106
- const params = new URLSearchParams();
1107
- params.set('leafId', currentLeafId);
1108
- params.set('targetId', entryId);
1109
-
1110
- // If we have an injected base URL (iframe context), use it directly
1111
- if (baseUrlMeta) {
1112
- return `${baseUrl}&${params.toString()}`;
1113
- }
1114
-
1115
- // Otherwise build from current location (direct file access)
1116
- url.search = gistId ? `?${gistId}&${params.toString()}` : `?${params.toString()}`;
1117
- return url.toString();
1118
- }
1119
-
1120
- /**
1121
- * Copy text to clipboard with visual feedback.
1122
- * Uses navigator.clipboard with fallback to execCommand for HTTP contexts.
1123
- */
1124
- async function copyToClipboard(text, button) {
1125
- let success = false;
1126
- try {
1127
- if (navigator.clipboard && navigator.clipboard.writeText) {
1128
- await navigator.clipboard.writeText(text);
1129
- success = true;
1130
- }
1131
- } catch (err) {
1132
- // Clipboard API failed, try fallback
1133
- }
1134
-
1135
- // Fallback for HTTP or when Clipboard API is unavailable
1136
- if (!success) {
1137
- try {
1138
- const textarea = document.createElement('textarea');
1139
- textarea.value = text;
1140
- textarea.style.position = 'fixed';
1141
- textarea.style.opacity = '0';
1142
- document.body.appendChild(textarea);
1143
- textarea.select();
1144
- success = document.execCommand('copy');
1145
- document.body.removeChild(textarea);
1146
- } catch (err) {
1147
- console.error('Failed to copy:', err);
1148
- }
1149
- }
1150
-
1151
- if (success && button) {
1152
- const originalHtml = button.innerHTML;
1153
- button.innerHTML = '✓';
1154
- button.classList.add('copied');
1155
- setTimeout(() => {
1156
- button.innerHTML = originalHtml;
1157
- button.classList.remove('copied');
1158
- }, 1500);
1159
- }
1160
- }
1161
-
1162
- /**
1163
- * Render the copy-link button HTML for a message.
1164
- */
1165
- function renderCopyLinkButton(entryId) {
1166
- return `<button class="copy-link-btn" data-entry-id="${escapeHtml(entryId)}" title="Copy link to this message">
1167
- <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1168
- <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/>
1169
- <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
1170
- </svg>
1171
- </button>`;
1172
- }
1173
-
1174
- function renderEntry(entry) {
1175
- const ts = formatTimestamp(entry.timestamp);
1176
- const tsHtml = ts ? `<div class="message-timestamp">${ts}</div>` : '';
1177
- const entryDomId = `entry-${escapeHtml(entry.id)}`;
1178
- const copyBtnHtml = renderCopyLinkButton(entry.id);
1179
-
1180
- if (entry.type === 'message') {
1181
- const msg = entry.message;
1182
-
1183
- if (msg.role === 'user') {
1184
- const content = msg.content;
1185
- const text = typeof content === 'string' ? content :
1186
- content.filter(c => c.type === 'text').map(c => c.text).join('\n');
1187
- const skillBlock = parseSkillBlock(text);
1188
-
1189
- if (skillBlock) {
1190
- // Collect images from content array
1191
- const images = Array.isArray(content) ? content.filter(c => c.type === 'image') : [];
1192
- const hasUserContent = skillBlock.userMessage || images.length > 0;
1193
- let html = `<div class="skill-user-entry" id="${entryDomId}">${copyBtnHtml}${tsHtml}`;
1194
-
1195
- // Skill invocation (collapsed by default, click to expand)
1196
- html += `<div class="skill-invocation" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
1197
- <div class="skill-invocation-label">[skill] ${escapeHtml(skillBlock.name)}</div>
1198
- <div class="skill-invocation-collapsed">${escapeHtml(skillBlock.name)} (click to expand)</div>
1199
- <div class="skill-invocation-content markdown-content">${safeMarkedParse(skillBlock.content)}</div>
1200
- </div>`;
1201
-
1202
- // User message (separate block if present)
1203
- if (hasUserContent) {
1204
- html += '<div class="user-message">';
1205
- if (images.length > 0) {
1206
- html += '<div class="message-images">';
1207
- for (const img of images) {
1208
- html += `<img src="data:${escapeHtml(img.mimeType || 'image/png')};base64,${escapeHtml(img.data || '')}" class="message-image" />`;
1209
- }
1210
- html += '</div>';
1211
- }
1212
- if (skillBlock.userMessage) {
1213
- html += `<div class="markdown-content">${safeMarkedParse(skillBlock.userMessage)}</div>`;
1214
- }
1215
- html += '</div>';
1216
- }
1217
-
1218
- html += '</div>';
1219
- return html;
1220
- }
1221
-
1222
- // No skill block - normal user message
1223
- let html = `<div class="user-message" id="${entryDomId}">${copyBtnHtml}${tsHtml}`;
1224
-
1225
- if (Array.isArray(content)) {
1226
- const images = content.filter(c => c.type === 'image');
1227
- if (images.length > 0) {
1228
- html += '<div class="message-images">';
1229
- for (const img of images) {
1230
- html += `<img src="data:${escapeHtml(img.mimeType || 'image/png')};base64,${escapeHtml(img.data || '')}" class="message-image" />`;
1231
- }
1232
- html += '</div>';
1233
- }
1234
- }
1235
-
1236
- if (text.trim()) {
1237
- html += `<div class="markdown-content">${safeMarkedParse(text)}</div>`;
1238
- }
1239
- html += '</div>';
1240
- return html;
1241
- }
1242
-
1243
- if (msg.role === 'assistant') {
1244
- let html = `<div class="assistant-message" id="${entryDomId}">${copyBtnHtml}${tsHtml}`;
1245
-
1246
- for (const block of msg.content) {
1247
- if (block.type === 'text' && block.text.trim()) {
1248
- html += `<div class="assistant-text markdown-content">${safeMarkedParse(block.text)}</div>`;
1249
- } else if (block.type === 'thinking' && block.thinking.trim()) {
1250
- html += `<div class="thinking-block">
1251
- <div class="thinking-text">${escapeHtml(block.thinking)}</div>
1252
- <div class="thinking-collapsed">Thinking ...</div>
1253
- </div>`;
1254
- }
1255
- }
1256
-
1257
- for (const block of msg.content) {
1258
- if (block.type === 'toolCall') {
1259
- html += renderToolCall(block);
1260
- }
1261
- }
1262
-
1263
- if (msg.stopReason === 'aborted') {
1264
- html += '<div class="error-text">Aborted</div>';
1265
- } else if (msg.stopReason === 'error') {
1266
- html += `<div class="error-text">Error: ${escapeHtml(msg.errorMessage || 'Unknown error')}</div>`;
1267
- }
1268
-
1269
- html += '</div>';
1270
- return html;
1271
- }
1272
-
1273
- if (msg.role === 'bashExecution') {
1274
- const isError = msg.cancelled || (msg.exitCode !== 0 && msg.exitCode !== null);
1275
- let html = `<div class="tool-execution ${isError ? 'error' : 'success'}" id="${entryDomId}">${tsHtml}`;
1276
- html += `<div class="tool-command">$ ${escapeHtml(msg.command)}</div>`;
1277
- if (msg.output) html += formatExpandableOutput(msg.output, 10);
1278
- if (msg.cancelled) {
1279
- html += '<div style="color: var(--warning)">(cancelled)</div>';
1280
- } else if (msg.exitCode !== 0 && msg.exitCode !== null) {
1281
- html += `<div style="color: var(--error)">(exit ${msg.exitCode})</div>`;
1282
- }
1283
- html += '</div>';
1284
- return html;
1285
- }
1286
-
1287
- if (msg.role === 'toolResult') return '';
1288
- }
1289
-
1290
- if (entry.type === 'model_change') {
1291
- return `<div class="model-change" id="${entryDomId}">${tsHtml}Switched to model: <span class="model-name">${escapeHtml(entry.provider)}/${escapeHtml(entry.modelId)}</span></div>`;
1292
- }
1293
-
1294
- if (entry.type === 'compaction') {
1295
- return `<div class="compaction" id="${entryDomId}" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
1296
- <div class="compaction-label">[compaction]</div>
1297
- <div class="compaction-collapsed">Compacted from ${entry.tokensBefore.toLocaleString()} tokens</div>
1298
- <div class="compaction-content"><strong>Compacted from ${entry.tokensBefore.toLocaleString()} tokens</strong>\n\n${escapeHtml(entry.summary)}</div>
1299
- </div>`;
1300
- }
1301
-
1302
- if (entry.type === 'branch_summary') {
1303
- return `<div class="branch-summary" id="${entryDomId}">${tsHtml}
1304
- <div class="branch-summary-header">Branch Summary</div>
1305
- <div class="markdown-content">${safeMarkedParse(entry.summary)}</div>
1306
- </div>`;
1307
- }
1308
-
1309
- if (entry.type === 'custom_message' && entry.display) {
1310
- return `<div class="hook-message" id="${entryDomId}">${tsHtml}
1311
- <div class="hook-type">[${escapeHtml(entry.customType)}]</div>
1312
- <div class="markdown-content">${safeMarkedParse(typeof entry.content === 'string' ? entry.content : JSON.stringify(entry.content))}</div>
1313
- </div>`;
1314
- }
1315
-
1316
- return '';
1317
- }
1318
-
1319
- // ============================================================
1320
- // HEADER / STATS
1321
- // ============================================================
1322
-
1323
- function computeStats(entryList) {
1324
- let userMessages = 0, assistantMessages = 0, toolResults = 0;
1325
- let customMessages = 0, compactions = 0, branchSummaries = 0, toolCalls = 0;
1326
- const tokens = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
1327
- const cost = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
1328
- const models = new Set();
1329
-
1330
- for (const entry of entryList) {
1331
- if (entry.type === 'message') {
1332
- const msg = entry.message;
1333
- if (msg.role === 'user') userMessages++;
1334
- if (msg.role === 'assistant') {
1335
- assistantMessages++;
1336
- if (msg.model) models.add(msg.provider ? `${msg.provider}/${msg.model}` : msg.model);
1337
- if (msg.usage) {
1338
- tokens.input += msg.usage.input || 0;
1339
- tokens.output += msg.usage.output || 0;
1340
- tokens.cacheRead += msg.usage.cacheRead || 0;
1341
- tokens.cacheWrite += msg.usage.cacheWrite || 0;
1342
- if (msg.usage.cost) {
1343
- cost.input += msg.usage.cost.input || 0;
1344
- cost.output += msg.usage.cost.output || 0;
1345
- cost.cacheRead += msg.usage.cost.cacheRead || 0;
1346
- cost.cacheWrite += msg.usage.cost.cacheWrite || 0;
1347
- }
1348
- }
1349
- toolCalls += msg.content.filter(c => c.type === 'toolCall').length;
1350
- }
1351
- if (msg.role === 'toolResult') toolResults++;
1352
- } else if (entry.type === 'compaction') {
1353
- compactions++;
1354
- } else if (entry.type === 'branch_summary') {
1355
- branchSummaries++;
1356
- } else if (entry.type === 'custom_message') {
1357
- customMessages++;
1358
- }
1359
- }
1360
-
1361
- return { userMessages, assistantMessages, toolResults, customMessages, compactions, branchSummaries, toolCalls, tokens, cost, models: Array.from(models) };
1362
- }
1363
-
1364
- const globalStats = computeStats(entries);
1365
-
1366
- function renderHeader() {
1367
- const totalCost = globalStats.cost.input + globalStats.cost.output + globalStats.cost.cacheRead + globalStats.cost.cacheWrite;
1368
-
1369
- const tokenParts = [];
1370
- if (globalStats.tokens.input) tokenParts.push(`↑${formatTokens(globalStats.tokens.input)}`);
1371
- if (globalStats.tokens.output) tokenParts.push(`↓${formatTokens(globalStats.tokens.output)}`);
1372
- if (globalStats.tokens.cacheRead) tokenParts.push(`R${formatTokens(globalStats.tokens.cacheRead)}`);
1373
- if (globalStats.tokens.cacheWrite) tokenParts.push(`W${formatTokens(globalStats.tokens.cacheWrite)}`);
1374
-
1375
- const msgParts = [];
1376
- if (globalStats.userMessages) msgParts.push(`${globalStats.userMessages} user`);
1377
- if (globalStats.assistantMessages) msgParts.push(`${globalStats.assistantMessages} assistant`);
1378
- if (globalStats.toolResults) msgParts.push(`${globalStats.toolResults} tool results`);
1379
- if (globalStats.customMessages) msgParts.push(`${globalStats.customMessages} custom`);
1380
- if (globalStats.compactions) msgParts.push(`${globalStats.compactions} compactions`);
1381
- if (globalStats.branchSummaries) msgParts.push(`${globalStats.branchSummaries} branch summaries`);
1382
-
1383
- let html = `
1384
- <div class="header">
1385
- <h1>Session: ${escapeHtml(header?.id || 'unknown')}</h1>
1386
- <div class="help-bar">
1387
- <span class="help-hint">T toggle thinking · O toggle tools</span>
1388
- <div class="help-actions">
1389
- <button type="button" class="header-toggle-btn" data-action="toggle-thinking" title="Toggle thinking (T)">Toggle thinking</button>
1390
- <button type="button" class="header-toggle-btn" data-action="toggle-tools" title="Toggle tools (O)">Toggle tools</button>
1391
- <button type="button" class="download-json-btn" onclick="downloadSessionJson()" title="Download session as JSONL">↓ JSONL</button>
1392
- </div>
1393
- </div>
1394
- <div class="header-info">
1395
- <div class="info-item"><span class="info-label">Date:</span><span class="info-value">${header?.timestamp ? new Date(header.timestamp).toLocaleString() : 'unknown'}</span></div>
1396
- <div class="info-item"><span class="info-label">Models:</span><span class="info-value">${escapeHtml(globalStats.models.join(', ') || 'unknown')}</span></div>
1397
- <div class="info-item"><span class="info-label">Messages:</span><span class="info-value">${msgParts.join(', ') || '0'}</span></div>
1398
- <div class="info-item"><span class="info-label">Tool Calls:</span><span class="info-value">${globalStats.toolCalls}</span></div>
1399
- <div class="info-item"><span class="info-label">Tokens:</span><span class="info-value">${tokenParts.join(' ') || '0'}</span></div>
1400
- <div class="info-item"><span class="info-label">Cost:</span><span class="info-value">$${totalCost.toFixed(3)}</span></div>
1401
- </div>
1402
- </div>`;
1403
-
1404
- // Render system prompt (user's base prompt, applies to all providers)
1405
- if (systemPrompt) {
1406
- const lines = systemPrompt.split('\n');
1407
- const previewLines = 10;
1408
- if (lines.length > previewLines) {
1409
- const preview = lines.slice(0, previewLines).join('\n');
1410
- const remaining = lines.length - previewLines;
1411
- html += `<div class="system-prompt expandable" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
1412
- <div class="system-prompt-header">System Prompt</div>
1413
- <div class="system-prompt-preview">${escapeHtml(preview)}</div>
1414
- <div class="system-prompt-expand-hint">... (${remaining} more lines, click to expand)</div>
1415
- <div class="system-prompt-full">${escapeHtml(systemPrompt)}</div>
1416
- </div>`;
1417
- } else {
1418
- html += `<div class="system-prompt">
1419
- <div class="system-prompt-header">System Prompt</div>
1420
- <div class="system-prompt-full" style="display: block">${escapeHtml(systemPrompt)}</div>
1421
- </div>`;
1422
- }
1423
- }
1424
-
1425
- if (tools && tools.length > 0) {
1426
- html += `<div class="tools-list">
1427
- <div class="tools-header">Available Tools</div>
1428
- <div class="tools-content">
1429
- ${tools.map(t => {
1430
- const hasParams = t.parameters && typeof t.parameters === 'object' && t.parameters.properties && Object.keys(t.parameters.properties).length > 0;
1431
- if (!hasParams) {
1432
- return `<div class="tool-item"><span class="tool-item-name">${escapeHtml(t.name)}</span> - <span class="tool-item-desc">${escapeHtml(t.description)}</span></div>`;
1433
- }
1434
- const params = t.parameters;
1435
- const properties = params.properties;
1436
- const required = params.required || [];
1437
- let paramsHtml = '';
1438
- for (const [name, prop] of Object.entries(properties)) {
1439
- const isRequired = required.includes(name);
1440
- const typeStr = prop.type || 'any';
1441
- const reqLabel = isRequired ? '<span class="tool-param-required">required</span>' : '<span class="tool-param-optional">optional</span>';
1442
- paramsHtml += `<div class="tool-param"><span class="tool-param-name">${escapeHtml(name)}</span> <span class="tool-param-type">${escapeHtml(typeStr)}</span> ${reqLabel}`;
1443
- if (prop.description) {
1444
- paramsHtml += `<div class="tool-param-desc">${escapeHtml(prop.description)}</div>`;
1445
- }
1446
- paramsHtml += `</div>`;
1447
- }
1448
- return `<div class="tool-item" onclick="if(window.getSelection().toString())return;this.classList.toggle('params-expanded')"><span class="tool-item-name">${escapeHtml(t.name)}</span> - <span class="tool-item-desc">${escapeHtml(t.description)}</span> <span class="tool-params-hint"></span><div class="tool-params-content">${paramsHtml}</div></div>`;
1449
- }).join('')}
1450
- </div>
1451
- </div>`;
1452
- }
1453
-
1454
- return html;
1455
- }
1456
-
1457
- // ============================================================
1458
- // NAVIGATION
1459
- // ============================================================
1460
-
1461
- // Cache for rendered entry DOM nodes
1462
- const entryCache = new Map();
1463
-
1464
- function getScrollTargetElementId(entryId) {
1465
- const entry = byId.get(entryId);
1466
- if (entry?.type === 'message' && entry.message.role === 'toolResult' && entry.message.toolCallId) {
1467
- // getElementById() matches the parsed DOM id attribute, whose HTML entities
1468
- // were already resolved from the escaped id rendered by renderToolCall().
1469
- return `tool-call-${entry.message.toolCallId}`;
1470
- }
1471
- return `entry-${entryId}`;
1472
- }
1473
-
1474
- function renderEntryToNode(entry) {
1475
- // Check cache first
1476
- if (entryCache.has(entry.id)) {
1477
- return entryCache.get(entry.id).cloneNode(true);
1478
- }
1479
-
1480
- // Render to HTML string, then parse to node
1481
- const html = renderEntry(entry);
1482
- if (!html) return null;
1483
-
1484
- const template = document.createElement('template');
1485
- template.innerHTML = html;
1486
- const node = template.content.firstElementChild;
1487
-
1488
- // Cache the node
1489
- if (node) {
1490
- entryCache.set(entry.id, node.cloneNode(true));
1491
- }
1492
- return node;
1493
- }
1494
-
1495
- function navigateTo(targetId, scrollMode = 'target', scrollToEntryId = null) {
1496
- currentLeafId = targetId;
1497
- currentTargetId = scrollToEntryId || targetId;
1498
- const path = getPath(targetId);
1499
-
1500
- renderTree();
1501
-
1502
- document.getElementById('header-container').innerHTML = renderHeader();
1503
- attachHeaderHandlers();
1504
-
1505
- // Build messages using cached DOM nodes
1506
- const messagesEl = document.getElementById('messages');
1507
- const fragment = document.createDocumentFragment();
1508
-
1509
- for (const entry of path) {
1510
- const node = renderEntryToNode(entry);
1511
- if (node) {
1512
- fragment.appendChild(node);
1513
- }
1514
- }
1515
-
1516
- messagesEl.innerHTML = '';
1517
- messagesEl.appendChild(fragment);
1518
-
1519
- // Attach click handlers for copy-link buttons
1520
- messagesEl.querySelectorAll('.copy-link-btn').forEach(btn => {
1521
- btn.addEventListener('click', (e) => {
1522
- e.stopPropagation();
1523
- const entryId = btn.dataset.entryId;
1524
- const shareUrl = buildShareUrl(entryId);
1525
- copyToClipboard(shareUrl, btn);
1526
- });
1527
- });
1528
-
1529
- // Use setTimeout(0) to ensure DOM is fully laid out before scrolling
1530
- setTimeout(() => {
1531
- const content = document.getElementById('content');
1532
- if (scrollMode === 'bottom') {
1533
- content.scrollTop = content.scrollHeight;
1534
- } else if (scrollMode === 'target') {
1535
- // If scrollToEntryId is provided, scroll to that specific entry.
1536
- // Tool result entries are rendered inside their assistant tool-call block,
1537
- // so route them to the visible tool-call element instead.
1538
- const scrollTargetId = scrollToEntryId || targetId;
1539
- const targetEl = document.getElementById(getScrollTargetElementId(scrollTargetId)) ||
1540
- document.getElementById(`entry-${scrollTargetId}`);
1541
- if (targetEl) {
1542
- targetEl.scrollIntoView({ block: 'center' });
1543
- // Briefly highlight the target message
1544
- if (scrollToEntryId) {
1545
- targetEl.classList.add('highlight');
1546
- setTimeout(() => targetEl.classList.remove('highlight'), 2000);
1547
- }
1548
- }
1549
- }
1550
- }, 0);
1551
- }
1552
-
1553
- // ============================================================
1554
- // INITIALIZATION
1555
- // ============================================================
1556
-
1557
- // Configure marked with syntax highlighting and TUI-compatible HTML handling
1558
- const strictStrikethroughRegex = /^(~~)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/;
1559
-
1560
- marked.use({
1561
- breaks: true,
1562
- gfm: true,
1563
- tokenizer: {
1564
- // Treat HTML-like input as plain text so tags are shown verbatim,
1565
- // matching the TUI markdown renderer.
1566
- html() {
1567
- return undefined;
1568
- },
1569
- tag() {
1570
- return undefined;
1571
- },
1572
- del(src) {
1573
- const match = strictStrikethroughRegex.exec(src);
1574
- if (!match) return undefined;
1575
- return {
1576
- type: 'del',
1577
- raw: match[0],
1578
- text: match[2],
1579
- tokens: this.lexer.inlineTokens(match[2])
1580
- };
1581
- }
1582
- },
1583
- renderer: {
1584
- // Sanitize link URLs with a scheme allow-list. Browsers strip C0
1585
- // controls from schemes, so strip them before checking and emitting.
1586
- link(token) {
1587
- const href = sanitizeMarkdownUrl(token.href);
1588
- if (href === null) {
1589
- return this.parser.parseInline(token.tokens);
1590
- }
1591
- let out = '<a href="' + escapeHtml(href) + '"';
1592
- if (token.title) {
1593
- out += ' title="' + escapeHtml(token.title) + '"';
1594
- }
1595
- out += '>' + this.parser.parseInline(token.tokens) + '</a>';
1596
- return out;
1597
- },
1598
- // Sanitize image src URLs with the same scheme allow-list.
1599
- image(token) {
1600
- const href = sanitizeMarkdownUrl(token.href);
1601
- if (href === null) {
1602
- return escapeHtml(token.text || '');
1603
- }
1604
- let out = '<img src="' + escapeHtml(href) + '" alt="' + escapeHtml(token.text || '') + '"';
1605
- if (token.title) {
1606
- out += ' title="' + escapeHtml(token.title) + '"';
1607
- }
1608
- out += '>';
1609
- return out;
1610
- },
1611
- // Code blocks: syntax highlight, no HTML escaping
1612
- code(token) {
1613
- const code = token.text;
1614
- const lang = token.lang;
1615
- let highlighted;
1616
- if (lang && hljs.getLanguage(lang)) {
1617
- try {
1618
- highlighted = hljs.highlight(code, { language: lang }).value;
1619
- } catch {
1620
- highlighted = escapeHtml(code);
1621
- }
1622
- } else {
1623
- // Auto-detect language if not specified
1624
- try {
1625
- highlighted = hljs.highlightAuto(code).value;
1626
- } catch {
1627
- highlighted = escapeHtml(code);
1628
- }
1629
- }
1630
- return `<pre><code class="hljs">${highlighted}</code></pre>`;
1631
- },
1632
- // Inline code: escape HTML
1633
- codespan(token) {
1634
- return `<code>${escapeHtml(token.text)}</code>`;
1635
- }
1636
- }
1637
- });
1638
-
1639
- // Simple marked parse (escaping handled in renderers)
1640
- function safeMarkedParse(text) {
1641
- return marked.parse(text);
1642
- }
1643
-
1644
- // Search input
1645
- const searchInput = document.getElementById('tree-search');
1646
- searchInput.addEventListener('input', (e) => {
1647
- searchQuery = e.target.value;
1648
- forceTreeRerender();
1649
- });
1650
-
1651
- // Filter buttons
1652
- document.querySelectorAll('.filter-btn').forEach(btn => {
1653
- btn.addEventListener('click', () => {
1654
- document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));
1655
- btn.classList.add('active');
1656
- filterMode = btn.dataset.filter;
1657
- forceTreeRerender();
1658
- });
1659
- });
1660
-
1661
- // Sidebar toggle
1662
- const sidebar = document.getElementById('sidebar');
1663
- const overlay = document.getElementById('sidebar-overlay');
1664
- const hamburger = document.getElementById('hamburger');
1665
- const sidebarResizer = document.getElementById('sidebar-resizer');
1666
- const SIDEBAR_WIDTH_STORAGE_KEY = 'pi-share:v1:sidebar-width';
1667
- const MIN_CONTENT_WIDTH = 320;
1668
-
1669
- function isMobileLayout() {
1670
- return window.matchMedia('(max-width: 900px)').matches;
1671
- }
1672
-
1673
- function getSidebarBounds() {
1674
- const rootStyles = getComputedStyle(document.documentElement);
1675
- const minWidth = parseFloat(rootStyles.getPropertyValue('--sidebar-min-width')) || 240;
1676
- const maxWidth = parseFloat(rootStyles.getPropertyValue('--sidebar-max-width')) || 720;
1677
- const viewportMaxWidth = window.innerWidth - MIN_CONTENT_WIDTH;
1678
- return {
1679
- minWidth,
1680
- maxWidth: Math.max(minWidth, Math.min(maxWidth, viewportMaxWidth))
1681
- };
1682
- }
1683
-
1684
- function clampSidebarWidth(width) {
1685
- const { minWidth, maxWidth } = getSidebarBounds();
1686
- return Math.max(minWidth, Math.min(maxWidth, width));
1687
- }
1688
-
1689
- function applySidebarWidth(width) {
1690
- document.documentElement.style.setProperty('--sidebar-width', `${Math.round(clampSidebarWidth(width))}px`);
1691
- }
1692
-
1693
- function loadSidebarWidth() {
1694
- try {
1695
- const raw = localStorage.getItem(SIDEBAR_WIDTH_STORAGE_KEY);
1696
- if (raw === null) return null;
1697
- const width = Number(raw);
1698
- return Number.isFinite(width) ? width : null;
1699
- } catch {
1700
- return null;
1701
- }
1702
- }
1703
-
1704
- function saveSidebarWidth(width) {
1705
- try {
1706
- localStorage.setItem(SIDEBAR_WIDTH_STORAGE_KEY, String(Math.round(clampSidebarWidth(width))));
1707
- } catch {
1708
- // Ignore storage failures (e.g. private browsing restrictions)
1709
- }
1710
- }
1711
-
1712
- function setupSidebarResize() {
1713
- const savedWidth = loadSidebarWidth();
1714
- if (savedWidth !== null) {
1715
- applySidebarWidth(savedWidth);
1716
- }
1717
-
1718
- if (!sidebarResizer) return;
1719
-
1720
- let cleanupDrag = null;
1721
-
1722
- const stopDrag = (pointerId) => {
1723
- if (cleanupDrag) {
1724
- cleanupDrag(pointerId);
1725
- cleanupDrag = null;
1726
- }
1727
- };
1728
-
1729
- sidebarResizer.addEventListener('pointerdown', (e) => {
1730
- if (isMobileLayout()) return;
1731
-
1732
- e.preventDefault();
1733
- const startX = e.clientX;
1734
- const startWidth = sidebar.getBoundingClientRect().width;
1735
- document.body.classList.add('sidebar-resizing');
1736
- sidebarResizer.setPointerCapture?.(e.pointerId);
1737
-
1738
- const onPointerMove = (event) => {
1739
- applySidebarWidth(startWidth + (event.clientX - startX));
1740
- };
1741
-
1742
- cleanupDrag = (pointerIdToRelease) => {
1743
- document.body.classList.remove('sidebar-resizing');
1744
- sidebarResizer.releasePointerCapture?.(pointerIdToRelease);
1745
- window.removeEventListener('pointermove', onPointerMove);
1746
- window.removeEventListener('pointerup', onPointerUp);
1747
- window.removeEventListener('pointercancel', onPointerCancel);
1748
- saveSidebarWidth(sidebar.getBoundingClientRect().width);
1749
- };
1750
-
1751
- const onPointerUp = (event) => stopDrag(event.pointerId);
1752
- const onPointerCancel = (event) => stopDrag(event.pointerId);
1753
-
1754
- window.addEventListener('pointermove', onPointerMove);
1755
- window.addEventListener('pointerup', onPointerUp);
1756
- window.addEventListener('pointercancel', onPointerCancel);
1757
- });
1758
-
1759
- sidebarResizer.addEventListener('dblclick', () => {
1760
- if (isMobileLayout()) return;
1761
- applySidebarWidth(400);
1762
- saveSidebarWidth(400);
1763
- });
1764
-
1765
- window.addEventListener('resize', () => {
1766
- if (isMobileLayout()) return;
1767
- applySidebarWidth(sidebar.getBoundingClientRect().width);
1768
- });
1769
- }
1770
-
1771
- setupSidebarResize();
1772
-
1773
- hamburger.addEventListener('click', () => {
1774
- sidebar.classList.add('open');
1775
- overlay.classList.add('open');
1776
- hamburger.style.display = 'none';
1777
- });
1778
-
1779
- const closeSidebar = () => {
1780
- sidebar.classList.remove('open');
1781
- overlay.classList.remove('open');
1782
- hamburger.style.display = '';
1783
- };
1784
-
1785
- overlay.addEventListener('click', closeSidebar);
1786
- document.getElementById('sidebar-close').addEventListener('click', closeSidebar);
1787
-
1788
- // Toggle states
1789
- let thinkingExpanded = true;
1790
- let toolOutputsExpanded = false;
1791
-
1792
- const toggleThinking = () => {
1793
- thinkingExpanded = !thinkingExpanded;
1794
- document.querySelectorAll('.thinking-text').forEach(el => {
1795
- el.style.display = thinkingExpanded ? '' : 'none';
1796
- });
1797
- document.querySelectorAll('.thinking-collapsed').forEach(el => {
1798
- el.style.display = thinkingExpanded ? 'none' : 'block';
1799
- });
1800
- };
1801
-
1802
- const toggleToolOutputs = () => {
1803
- toolOutputsExpanded = !toolOutputsExpanded;
1804
- document.querySelectorAll('.tool-output.expandable').forEach(el => {
1805
- el.classList.toggle('expanded', toolOutputsExpanded);
1806
- });
1807
- document.querySelectorAll('.compaction').forEach(el => {
1808
- el.classList.toggle('expanded', toolOutputsExpanded);
1809
- });
1810
- document.querySelectorAll('.skill-invocation').forEach(el => {
1811
- el.classList.toggle('expanded', toolOutputsExpanded);
1812
- });
1813
- };
1814
-
1815
- const attachHeaderHandlers = () => {
1816
- document.querySelector('[data-action="toggle-thinking"]')?.addEventListener('click', toggleThinking);
1817
- document.querySelector('[data-action="toggle-tools"]')?.addEventListener('click', toggleToolOutputs);
1818
- };
1819
-
1820
- const isEditableTarget = (element) => {
1821
- if (!element) return false;
1822
- const tagName = element.tagName;
1823
- if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT' || tagName === 'BUTTON') {
1824
- return true;
1825
- }
1826
- return element.isContentEditable || Boolean(element.closest?.('[contenteditable="true"]'));
1827
- };
1828
-
1829
- // Keyboard shortcuts
1830
- document.addEventListener('keydown', (e) => {
1831
- if (e.key === 'Escape') {
1832
- searchInput.value = '';
1833
- searchQuery = '';
1834
- navigateTo(leafId, 'bottom');
1835
- }
1836
-
1837
- if (isEditableTarget(document.activeElement)) {
1838
- return;
1839
- }
1840
-
1841
- const key = e.key.toLowerCase();
1842
- if (key === 't') {
1843
- e.preventDefault();
1844
- toggleThinking();
1845
- } else if (key === 'o') {
1846
- e.preventDefault();
1847
- toggleToolOutputs();
1848
- }
1849
- });
1850
-
1851
- // Initial render
1852
- // If URL has targetId, scroll to that specific message; otherwise stay at top
1853
- if (leafId) {
1854
- if (urlTargetId && byId.has(urlTargetId)) {
1855
- // Deep link: navigate to leaf and scroll to target message
1856
- navigateTo(leafId, 'target', urlTargetId);
1857
- } else {
1858
- navigateTo(leafId, 'none');
1859
- }
1860
- } else if (entries.length > 0) {
1861
- // Fallback: use last entry if no leafId
1862
- navigateTo(entries[entries.length - 1].id, 'none');
1863
- }
1864
- })();