omegon-pi 0.12.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 (2866) hide show
  1. package/.gitattributes +3 -0
  2. package/.omegon/profile.json +7 -0
  3. package/AGENTS.md +16 -0
  4. package/ARCHIVE_NOTE.md +28 -0
  5. package/LICENSE +15 -0
  6. package/README.md +296 -0
  7. package/bin/omegon-pi.mjs +244 -0
  8. package/bin/pi.mjs +9 -0
  9. package/extensions/00-secrets/index.ts +1239 -0
  10. package/extensions/00-splash/index.ts +604 -0
  11. package/extensions/00-splash/logo.ts +246 -0
  12. package/extensions/01-auth/auth.ts +476 -0
  13. package/extensions/01-auth/index.ts +289 -0
  14. package/extensions/auto-compact.ts +42 -0
  15. package/extensions/bootstrap/deps.ts +451 -0
  16. package/extensions/bootstrap/index.ts +1123 -0
  17. package/extensions/chronos/chronos.ts +324 -0
  18. package/extensions/chronos/index.ts +127 -0
  19. package/extensions/cleave/assessment.ts +768 -0
  20. package/extensions/cleave/bridge.ts +31 -0
  21. package/extensions/cleave/conflicts.ts +250 -0
  22. package/extensions/cleave/dispatcher.ts +1367 -0
  23. package/extensions/cleave/guardrails.ts +426 -0
  24. package/extensions/cleave/index.ts +3114 -0
  25. package/extensions/cleave/lifecycle-emitter.ts +20 -0
  26. package/extensions/cleave/native-dispatch.ts +218 -0
  27. package/extensions/cleave/openspec.ts +811 -0
  28. package/extensions/cleave/planner.ts +260 -0
  29. package/extensions/cleave/review.ts +580 -0
  30. package/extensions/cleave/rpc-child.ts +269 -0
  31. package/extensions/cleave/skills.ts +355 -0
  32. package/extensions/cleave/subprocess-tracker.ts +205 -0
  33. package/extensions/cleave/types.ts +315 -0
  34. package/extensions/cleave/workspace.ts +865 -0
  35. package/extensions/cleave/worktree.ts +243 -0
  36. package/extensions/core-renderers.ts +193 -0
  37. package/extensions/dashboard/context-gauge.ts +58 -0
  38. package/extensions/dashboard/file-watch.ts +14 -0
  39. package/extensions/dashboard/footer.ts +1375 -0
  40. package/extensions/dashboard/git.ts +193 -0
  41. package/extensions/dashboard/index.ts +481 -0
  42. package/extensions/dashboard/memory-audit.ts +34 -0
  43. package/extensions/dashboard/overlay-data.ts +705 -0
  44. package/extensions/dashboard/overlay.ts +365 -0
  45. package/extensions/dashboard/render-utils.ts +54 -0
  46. package/extensions/dashboard/types.ts +206 -0
  47. package/extensions/dashboard/uri-helper.ts +45 -0
  48. package/extensions/defaults.ts +274 -0
  49. package/extensions/design-tree/dashboard-state.ts +161 -0
  50. package/extensions/design-tree/design-card.ts +362 -0
  51. package/extensions/design-tree/index.ts +2181 -0
  52. package/extensions/design-tree/lifecycle-emitter.ts +41 -0
  53. package/extensions/design-tree/tree.ts +1720 -0
  54. package/extensions/design-tree/types.ts +165 -0
  55. package/extensions/effort/index.ts +532 -0
  56. package/extensions/effort/tiers.ts +146 -0
  57. package/extensions/effort/types.ts +105 -0
  58. package/extensions/igor/client.ts +167 -0
  59. package/extensions/igor/context.ts +61 -0
  60. package/extensions/igor/index.ts +259 -0
  61. package/extensions/igor/intents.ts +78 -0
  62. package/extensions/lib/debug.ts +69 -0
  63. package/extensions/lib/git-state.ts +227 -0
  64. package/extensions/lib/local-models.ts +157 -0
  65. package/extensions/lib/model-preferences.ts +51 -0
  66. package/extensions/lib/model-routing.ts +992 -0
  67. package/extensions/lib/omegon-subprocess.ts +152 -0
  68. package/extensions/lib/operator-fallback.ts +205 -0
  69. package/extensions/lib/operator-profile.ts +360 -0
  70. package/extensions/lib/provider-env.ts +163 -0
  71. package/extensions/lib/sci-ui.ts +421 -0
  72. package/extensions/lib/shared-state.ts +174 -0
  73. package/extensions/lib/slash-command-bridge.ts +262 -0
  74. package/extensions/lib/splash-state.ts +25 -0
  75. package/extensions/lib/typebox-helpers.ts +16 -0
  76. package/extensions/lib/types.d.ts +9 -0
  77. package/extensions/local-inference/index.ts +727 -0
  78. package/extensions/mcp-bridge/README.md +220 -0
  79. package/extensions/mcp-bridge/index.ts +956 -0
  80. package/extensions/mcp-bridge/lib.ts +365 -0
  81. package/extensions/mcp-bridge/mcp.json +3 -0
  82. package/extensions/mcp-bridge/package.json +11 -0
  83. package/extensions/model-budget.ts +752 -0
  84. package/extensions/offline-driver.ts +410 -0
  85. package/extensions/openspec/archive-gate.ts +164 -0
  86. package/extensions/openspec/branch-cleanup.ts +64 -0
  87. package/extensions/openspec/dashboard-state.ts +50 -0
  88. package/extensions/openspec/index.ts +1942 -0
  89. package/extensions/openspec/lifecycle-emitter.ts +65 -0
  90. package/extensions/openspec/lifecycle-files.ts +120 -0
  91. package/extensions/openspec/lifecycle.ts +50 -0
  92. package/extensions/openspec/reconcile.ts +187 -0
  93. package/extensions/openspec/spec.ts +1392 -0
  94. package/extensions/openspec/types.ts +98 -0
  95. package/extensions/project-memory/DESIGN-global-mind.md +198 -0
  96. package/extensions/project-memory/README.md +204 -0
  97. package/extensions/project-memory/api-types.ts +382 -0
  98. package/extensions/project-memory/compaction-policy.ts +29 -0
  99. package/extensions/project-memory/core.ts +164 -0
  100. package/extensions/project-memory/embeddings.ts +230 -0
  101. package/extensions/project-memory/extraction-v2.ts +636 -0
  102. package/extensions/project-memory/factstore.ts +2317 -0
  103. package/extensions/project-memory/index.ts +3517 -0
  104. package/extensions/project-memory/injection-metrics.ts +123 -0
  105. package/extensions/project-memory/jsonl-io.ts +36 -0
  106. package/extensions/project-memory/lifecycle.ts +340 -0
  107. package/extensions/project-memory/llm-direct.ts +260 -0
  108. package/extensions/project-memory/migration.ts +293 -0
  109. package/extensions/project-memory/package.json +9 -0
  110. package/extensions/project-memory/sci-renderers.ts +7 -0
  111. package/extensions/project-memory/template.ts +103 -0
  112. package/extensions/project-memory/triggers.ts +52 -0
  113. package/extensions/project-memory/types.ts +102 -0
  114. package/extensions/render/composition/fonts/Inter-Bold.ttf +0 -0
  115. package/extensions/render/composition/fonts/Inter-Regular.ttf +0 -0
  116. package/extensions/render/composition/fonts/Tomorrow-Bold.ttf +0 -0
  117. package/extensions/render/composition/fonts/Tomorrow-Regular.ttf +0 -0
  118. package/extensions/render/composition/package.json +22 -0
  119. package/extensions/render/composition/render.mjs +246 -0
  120. package/extensions/render/composition/test-comp.tsx +87 -0
  121. package/extensions/render/composition/types.ts +24 -0
  122. package/extensions/render/excalidraw/UPSTREAM.md +81 -0
  123. package/extensions/render/excalidraw/elements.ts +764 -0
  124. package/extensions/render/excalidraw/index.ts +66 -0
  125. package/extensions/render/excalidraw/types.ts +223 -0
  126. package/extensions/render/excalidraw-renderer/pyproject.toml +8 -0
  127. package/extensions/render/excalidraw-renderer/render_excalidraw.py +182 -0
  128. package/extensions/render/excalidraw-renderer/render_template.html +59 -0
  129. package/extensions/render/index.ts +830 -0
  130. package/extensions/render/native-diagrams/index.ts +57 -0
  131. package/extensions/render/native-diagrams/motifs.ts +542 -0
  132. package/extensions/render/native-diagrams/raster.ts +8 -0
  133. package/extensions/render/native-diagrams/scene.ts +75 -0
  134. package/extensions/render/native-diagrams/spec.ts +204 -0
  135. package/extensions/render/native-diagrams/svg.ts +116 -0
  136. package/extensions/sermon-widget.ts +144 -0
  137. package/extensions/sermon.ts +154 -0
  138. package/extensions/session-log.ts +174 -0
  139. package/extensions/spinner-verbs.ts +312 -0
  140. package/extensions/style.ts +281 -0
  141. package/extensions/terminal-title.ts +191 -0
  142. package/extensions/tool-profile/index.ts +296 -0
  143. package/extensions/tool-profile/profiles.ts +290 -0
  144. package/extensions/vault/index.ts +185 -0
  145. package/extensions/version-check.ts +94 -0
  146. package/extensions/view/index.ts +859 -0
  147. package/extensions/view/uri-resolver.ts +148 -0
  148. package/extensions/web-search/index.ts +185 -0
  149. package/extensions/web-search/providers.ts +121 -0
  150. package/extensions/web-ui/index.ts +110 -0
  151. package/extensions/web-ui/server.ts +265 -0
  152. package/extensions/web-ui/state.ts +462 -0
  153. package/extensions/web-ui/static/index.html +145 -0
  154. package/extensions/web-ui/types.ts +284 -0
  155. package/graphics/g140.png +0 -0
  156. package/graphics/icon.jpg +0 -0
  157. package/graphics/icon.svg +562 -0
  158. package/graphics/path1-4.jpg +0 -0
  159. package/node_modules/@mariozechner/clipboard/.yarnrc.yml +1 -0
  160. package/node_modules/@mariozechner/clipboard/Cargo.toml +26 -0
  161. package/node_modules/@mariozechner/clipboard/README.md +58 -0
  162. package/node_modules/@mariozechner/clipboard/build.rs +5 -0
  163. package/node_modules/@mariozechner/clipboard/exp.ts +12 -0
  164. package/node_modules/@mariozechner/clipboard/index.d.ts +23 -0
  165. package/node_modules/@mariozechner/clipboard/index.js +317 -0
  166. package/node_modules/@mariozechner/clipboard/package.json +56 -0
  167. package/node_modules/@mariozechner/clipboard/src/lib.rs +191 -0
  168. package/node_modules/@mariozechner/clipboard-darwin-arm64/README.md +3 -0
  169. package/node_modules/@mariozechner/clipboard-darwin-arm64/clipboard.darwin-arm64.node +0 -0
  170. package/node_modules/@mariozechner/clipboard-darwin-arm64/package.json +22 -0
  171. package/node_modules/@mariozechner/clipboard-darwin-universal/README.md +3 -0
  172. package/node_modules/@mariozechner/clipboard-darwin-universal/clipboard.darwin-universal.node +0 -0
  173. package/node_modules/@mariozechner/clipboard-darwin-universal/package.json +19 -0
  174. package/node_modules/@sinclair/typebox/build/cjs/compiler/compiler.d.ts +55 -0
  175. package/node_modules/@sinclair/typebox/build/cjs/compiler/compiler.js +670 -0
  176. package/node_modules/@sinclair/typebox/build/cjs/compiler/index.d.ts +2 -0
  177. package/node_modules/@sinclair/typebox/build/cjs/compiler/index.js +22 -0
  178. package/node_modules/@sinclair/typebox/build/cjs/errors/errors.d.ts +91 -0
  179. package/node_modules/@sinclair/typebox/build/cjs/errors/errors.js +599 -0
  180. package/node_modules/@sinclair/typebox/build/cjs/errors/function.d.ts +21 -0
  181. package/node_modules/@sinclair/typebox/build/cjs/errors/function.js +153 -0
  182. package/node_modules/@sinclair/typebox/build/cjs/errors/index.d.ts +2 -0
  183. package/node_modules/@sinclair/typebox/build/cjs/errors/index.js +19 -0
  184. package/node_modules/@sinclair/typebox/build/cjs/index.d.ts +71 -0
  185. package/node_modules/@sinclair/typebox/build/cjs/index.js +97 -0
  186. package/node_modules/@sinclair/typebox/build/cjs/parser/index.d.ts +2 -0
  187. package/node_modules/@sinclair/typebox/build/cjs/parser/index.js +39 -0
  188. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/guard.d.ts +23 -0
  189. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/guard.js +86 -0
  190. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/index.d.ts +5 -0
  191. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/index.js +45 -0
  192. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/module.d.ts +9 -0
  193. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/module.js +22 -0
  194. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/parse.d.ts +9 -0
  195. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/parse.js +160 -0
  196. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/token.d.ts +8 -0
  197. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/token.js +230 -0
  198. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/types.d.ts +98 -0
  199. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/types.js +71 -0
  200. package/node_modules/@sinclair/typebox/build/cjs/parser/static/index.d.ts +3 -0
  201. package/node_modules/@sinclair/typebox/build/cjs/parser/static/index.js +43 -0
  202. package/node_modules/@sinclair/typebox/build/cjs/parser/static/parse.d.ts +20 -0
  203. package/node_modules/@sinclair/typebox/build/cjs/parser/static/parse.js +3 -0
  204. package/node_modules/@sinclair/typebox/build/cjs/parser/static/token.d.ts +108 -0
  205. package/node_modules/@sinclair/typebox/build/cjs/parser/static/token.js +3 -0
  206. package/node_modules/@sinclair/typebox/build/cjs/parser/static/types.d.ts +69 -0
  207. package/node_modules/@sinclair/typebox/build/cjs/parser/static/types.js +3 -0
  208. package/node_modules/@sinclair/typebox/build/cjs/syntax/index.d.ts +1 -0
  209. package/node_modules/@sinclair/typebox/build/cjs/syntax/index.js +18 -0
  210. package/node_modules/@sinclair/typebox/build/cjs/syntax/mapping.d.ts +167 -0
  211. package/node_modules/@sinclair/typebox/build/cjs/syntax/mapping.js +491 -0
  212. package/node_modules/@sinclair/typebox/build/cjs/syntax/parser.d.ts +162 -0
  213. package/node_modules/@sinclair/typebox/build/cjs/syntax/parser.js +191 -0
  214. package/node_modules/@sinclair/typebox/build/cjs/syntax/syntax.d.ts +12 -0
  215. package/node_modules/@sinclair/typebox/build/cjs/syntax/syntax.js +54 -0
  216. package/node_modules/@sinclair/typebox/build/cjs/system/index.d.ts +2 -0
  217. package/node_modules/@sinclair/typebox/build/cjs/system/index.js +19 -0
  218. package/node_modules/@sinclair/typebox/build/cjs/system/policy.d.ts +29 -0
  219. package/node_modules/@sinclair/typebox/build/cjs/system/policy.js +58 -0
  220. package/node_modules/@sinclair/typebox/build/cjs/system/system.d.ts +16 -0
  221. package/node_modules/@sinclair/typebox/build/cjs/system/system.js +43 -0
  222. package/node_modules/@sinclair/typebox/build/cjs/type/any/any.d.ts +8 -0
  223. package/node_modules/@sinclair/typebox/build/cjs/type/any/any.js +10 -0
  224. package/node_modules/@sinclair/typebox/build/cjs/type/any/index.d.ts +1 -0
  225. package/node_modules/@sinclair/typebox/build/cjs/type/any/index.js +18 -0
  226. package/node_modules/@sinclair/typebox/build/cjs/type/argument/argument.d.ts +9 -0
  227. package/node_modules/@sinclair/typebox/build/cjs/type/argument/argument.js +10 -0
  228. package/node_modules/@sinclair/typebox/build/cjs/type/argument/index.d.ts +1 -0
  229. package/node_modules/@sinclair/typebox/build/cjs/type/argument/index.js +18 -0
  230. package/node_modules/@sinclair/typebox/build/cjs/type/array/array.d.ts +28 -0
  231. package/node_modules/@sinclair/typebox/build/cjs/type/array/array.js +10 -0
  232. package/node_modules/@sinclair/typebox/build/cjs/type/array/index.d.ts +1 -0
  233. package/node_modules/@sinclair/typebox/build/cjs/type/array/index.js +18 -0
  234. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.d.ts +11 -0
  235. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.js +10 -0
  236. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.d.ts +1 -0
  237. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.js +18 -0
  238. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.d.ts +14 -0
  239. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.js +41 -0
  240. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/index.d.ts +1 -0
  241. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/index.js +18 -0
  242. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.d.ts +16 -0
  243. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.js +10 -0
  244. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/index.d.ts +1 -0
  245. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/index.js +18 -0
  246. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.d.ts +9 -0
  247. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.js +10 -0
  248. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/index.d.ts +1 -0
  249. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/index.js +18 -0
  250. package/node_modules/@sinclair/typebox/build/cjs/type/clone/index.d.ts +2 -0
  251. package/node_modules/@sinclair/typebox/build/cjs/type/clone/index.js +19 -0
  252. package/node_modules/@sinclair/typebox/build/cjs/type/clone/type.d.ts +5 -0
  253. package/node_modules/@sinclair/typebox/build/cjs/type/clone/type.js +14 -0
  254. package/node_modules/@sinclair/typebox/build/cjs/type/clone/value.d.ts +2 -0
  255. package/node_modules/@sinclair/typebox/build/cjs/type/clone/value.js +73 -0
  256. package/node_modules/@sinclair/typebox/build/cjs/type/composite/composite.d.ts +18 -0
  257. package/node_modules/@sinclair/typebox/build/cjs/type/composite/composite.js +46 -0
  258. package/node_modules/@sinclair/typebox/build/cjs/type/composite/index.d.ts +1 -0
  259. package/node_modules/@sinclair/typebox/build/cjs/type/composite/index.js +18 -0
  260. package/node_modules/@sinclair/typebox/build/cjs/type/computed/computed.d.ts +9 -0
  261. package/node_modules/@sinclair/typebox/build/cjs/type/computed/computed.js +10 -0
  262. package/node_modules/@sinclair/typebox/build/cjs/type/computed/index.d.ts +1 -0
  263. package/node_modules/@sinclair/typebox/build/cjs/type/computed/index.js +18 -0
  264. package/node_modules/@sinclair/typebox/build/cjs/type/const/const.d.ts +27 -0
  265. package/node_modules/@sinclair/typebox/build/cjs/type/const/const.js +58 -0
  266. package/node_modules/@sinclair/typebox/build/cjs/type/const/index.d.ts +1 -0
  267. package/node_modules/@sinclair/typebox/build/cjs/type/const/index.js +18 -0
  268. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.d.ts +23 -0
  269. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.js +10 -0
  270. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/index.d.ts +1 -0
  271. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/index.js +18 -0
  272. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.d.ts +7 -0
  273. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.js +44 -0
  274. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.d.ts +1 -0
  275. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.js +18 -0
  276. package/node_modules/@sinclair/typebox/build/cjs/type/create/immutable.d.ts +2 -0
  277. package/node_modules/@sinclair/typebox/build/cjs/type/create/immutable.js +70 -0
  278. package/node_modules/@sinclair/typebox/build/cjs/type/create/index.d.ts +1 -0
  279. package/node_modules/@sinclair/typebox/build/cjs/type/create/index.js +18 -0
  280. package/node_modules/@sinclair/typebox/build/cjs/type/create/type.d.ts +3 -0
  281. package/node_modules/@sinclair/typebox/build/cjs/type/create/type.js +19 -0
  282. package/node_modules/@sinclair/typebox/build/cjs/type/date/date.d.ts +21 -0
  283. package/node_modules/@sinclair/typebox/build/cjs/type/date/date.js +10 -0
  284. package/node_modules/@sinclair/typebox/build/cjs/type/date/index.d.ts +1 -0
  285. package/node_modules/@sinclair/typebox/build/cjs/type/date/index.js +18 -0
  286. package/node_modules/@sinclair/typebox/build/cjs/type/discard/discard.d.ts +2 -0
  287. package/node_modules/@sinclair/typebox/build/cjs/type/discard/discard.js +12 -0
  288. package/node_modules/@sinclair/typebox/build/cjs/type/discard/index.d.ts +1 -0
  289. package/node_modules/@sinclair/typebox/build/cjs/type/discard/index.js +18 -0
  290. package/node_modules/@sinclair/typebox/build/cjs/type/enum/enum.d.ts +14 -0
  291. package/node_modules/@sinclair/typebox/build/cjs/type/enum/enum.js +22 -0
  292. package/node_modules/@sinclair/typebox/build/cjs/type/enum/index.d.ts +1 -0
  293. package/node_modules/@sinclair/typebox/build/cjs/type/enum/index.js +18 -0
  294. package/node_modules/@sinclair/typebox/build/cjs/type/error/error.d.ts +4 -0
  295. package/node_modules/@sinclair/typebox/build/cjs/type/error/error.js +11 -0
  296. package/node_modules/@sinclair/typebox/build/cjs/type/error/index.d.ts +1 -0
  297. package/node_modules/@sinclair/typebox/build/cjs/type/error/index.js +18 -0
  298. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.d.ts +11 -0
  299. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.js +22 -0
  300. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.d.ts +5 -0
  301. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.js +9 -0
  302. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.d.ts +21 -0
  303. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.js +29 -0
  304. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/index.d.ts +3 -0
  305. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/index.js +20 -0
  306. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.d.ts +10 -0
  307. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.js +641 -0
  308. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.d.ts +14 -0
  309. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.js +29 -0
  310. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.d.ts +11 -0
  311. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.js +23 -0
  312. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.d.ts +3 -0
  313. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.js +24 -0
  314. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends.d.ts +16 -0
  315. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends.js +27 -0
  316. package/node_modules/@sinclair/typebox/build/cjs/type/extends/index.d.ts +5 -0
  317. package/node_modules/@sinclair/typebox/build/cjs/type/extends/index.js +22 -0
  318. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.d.ts +11 -0
  319. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.js +22 -0
  320. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.d.ts +5 -0
  321. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.js +9 -0
  322. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract.d.ts +21 -0
  323. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract.js +29 -0
  324. package/node_modules/@sinclair/typebox/build/cjs/type/extract/index.d.ts +3 -0
  325. package/node_modules/@sinclair/typebox/build/cjs/type/extract/index.js +20 -0
  326. package/node_modules/@sinclair/typebox/build/cjs/type/function/function.d.ts +23 -0
  327. package/node_modules/@sinclair/typebox/build/cjs/type/function/function.js +10 -0
  328. package/node_modules/@sinclair/typebox/build/cjs/type/function/index.d.ts +1 -0
  329. package/node_modules/@sinclair/typebox/build/cjs/type/function/index.js +18 -0
  330. package/node_modules/@sinclair/typebox/build/cjs/type/guard/index.d.ts +3 -0
  331. package/node_modules/@sinclair/typebox/build/cjs/type/guard/index.js +40 -0
  332. package/node_modules/@sinclair/typebox/build/cjs/type/guard/kind.d.ts +147 -0
  333. package/node_modules/@sinclair/typebox/build/cjs/type/guard/kind.js +320 -0
  334. package/node_modules/@sinclair/typebox/build/cjs/type/guard/type.d.ts +152 -0
  335. package/node_modules/@sinclair/typebox/build/cjs/type/guard/type.js +597 -0
  336. package/node_modules/@sinclair/typebox/build/cjs/type/guard/value.d.ts +34 -0
  337. package/node_modules/@sinclair/typebox/build/cjs/type/guard/value.js +89 -0
  338. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.d.ts +42 -0
  339. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.js +8 -0
  340. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/index.d.ts +1 -0
  341. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/index.js +18 -0
  342. package/node_modules/@sinclair/typebox/build/cjs/type/index.d.ts +71 -0
  343. package/node_modules/@sinclair/typebox/build/cjs/type/index.js +88 -0
  344. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/index.d.ts +4 -0
  345. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/index.js +21 -0
  346. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.d.ts +13 -0
  347. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.js +26 -0
  348. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.d.ts +12 -0
  349. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.js +24 -0
  350. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.d.ts +14 -0
  351. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.js +36 -0
  352. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.d.ts +52 -0
  353. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.js +98 -0
  354. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.d.ts +1 -0
  355. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.js +18 -0
  356. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.d.ts +6 -0
  357. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.js +44 -0
  358. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.d.ts +1 -0
  359. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.js +18 -0
  360. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.d.ts +50 -0
  361. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.js +153 -0
  362. package/node_modules/@sinclair/typebox/build/cjs/type/integer/index.d.ts +1 -0
  363. package/node_modules/@sinclair/typebox/build/cjs/type/integer/index.js +18 -0
  364. package/node_modules/@sinclair/typebox/build/cjs/type/integer/integer.d.ts +16 -0
  365. package/node_modules/@sinclair/typebox/build/cjs/type/integer/integer.js +10 -0
  366. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/index.d.ts +3 -0
  367. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/index.js +20 -0
  368. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-create.d.ts +3 -0
  369. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-create.js +23 -0
  370. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.d.ts +13 -0
  371. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.js +42 -0
  372. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.d.ts +15 -0
  373. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.js +4 -0
  374. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.d.ts +6 -0
  375. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.js +21 -0
  376. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.d.ts +5 -0
  377. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.js +9 -0
  378. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.d.ts +6 -0
  379. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.js +23 -0
  380. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.d.ts +14 -0
  381. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.js +30 -0
  382. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.d.ts +16 -0
  383. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.js +68 -0
  384. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.d.ts +5 -0
  385. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.js +9 -0
  386. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.d.ts +5 -0
  387. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.js +9 -0
  388. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.d.ts +5 -0
  389. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.js +9 -0
  390. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/index.d.ts +1 -0
  391. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/index.js +18 -0
  392. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.d.ts +11 -0
  393. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.js +10 -0
  394. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/index.d.ts +4 -0
  395. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/index.js +21 -0
  396. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.d.ts +12 -0
  397. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.js +23 -0
  398. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.d.ts +7 -0
  399. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.js +16 -0
  400. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.d.ts +24 -0
  401. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.js +78 -0
  402. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.d.ts +21 -0
  403. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.js +40 -0
  404. package/node_modules/@sinclair/typebox/build/cjs/type/literal/index.d.ts +1 -0
  405. package/node_modules/@sinclair/typebox/build/cjs/type/literal/index.js +18 -0
  406. package/node_modules/@sinclair/typebox/build/cjs/type/literal/literal.d.ts +10 -0
  407. package/node_modules/@sinclair/typebox/build/cjs/type/literal/literal.js +14 -0
  408. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/index.d.ts +3 -0
  409. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/index.js +20 -0
  410. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.d.ts +8 -0
  411. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.js +13 -0
  412. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.d.ts +9 -0
  413. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.js +13 -0
  414. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.d.ts +47 -0
  415. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.js +107 -0
  416. package/node_modules/@sinclair/typebox/build/cjs/type/module/compute.d.ts +59 -0
  417. package/node_modules/@sinclair/typebox/build/cjs/type/module/compute.js +205 -0
  418. package/node_modules/@sinclair/typebox/build/cjs/type/module/index.d.ts +1 -0
  419. package/node_modules/@sinclair/typebox/build/cjs/type/module/index.js +18 -0
  420. package/node_modules/@sinclair/typebox/build/cjs/type/module/infer.d.ts +49 -0
  421. package/node_modules/@sinclair/typebox/build/cjs/type/module/infer.js +3 -0
  422. package/node_modules/@sinclair/typebox/build/cjs/type/module/module.d.ts +27 -0
  423. package/node_modules/@sinclair/typebox/build/cjs/type/module/module.js +38 -0
  424. package/node_modules/@sinclair/typebox/build/cjs/type/never/index.d.ts +1 -0
  425. package/node_modules/@sinclair/typebox/build/cjs/type/never/index.js +18 -0
  426. package/node_modules/@sinclair/typebox/build/cjs/type/never/never.d.ts +9 -0
  427. package/node_modules/@sinclair/typebox/build/cjs/type/never/never.js +10 -0
  428. package/node_modules/@sinclair/typebox/build/cjs/type/not/index.d.ts +1 -0
  429. package/node_modules/@sinclair/typebox/build/cjs/type/not/index.js +18 -0
  430. package/node_modules/@sinclair/typebox/build/cjs/type/not/not.d.ts +10 -0
  431. package/node_modules/@sinclair/typebox/build/cjs/type/not/not.js +10 -0
  432. package/node_modules/@sinclair/typebox/build/cjs/type/null/index.d.ts +1 -0
  433. package/node_modules/@sinclair/typebox/build/cjs/type/null/index.js +18 -0
  434. package/node_modules/@sinclair/typebox/build/cjs/type/null/null.d.ts +9 -0
  435. package/node_modules/@sinclair/typebox/build/cjs/type/null/null.js +10 -0
  436. package/node_modules/@sinclair/typebox/build/cjs/type/number/index.d.ts +1 -0
  437. package/node_modules/@sinclair/typebox/build/cjs/type/number/index.js +18 -0
  438. package/node_modules/@sinclair/typebox/build/cjs/type/number/number.d.ts +16 -0
  439. package/node_modules/@sinclair/typebox/build/cjs/type/number/number.js +10 -0
  440. package/node_modules/@sinclair/typebox/build/cjs/type/object/index.d.ts +1 -0
  441. package/node_modules/@sinclair/typebox/build/cjs/type/object/index.js +18 -0
  442. package/node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts +51 -0
  443. package/node_modules/@sinclair/typebox/build/cjs/type/object/object.js +22 -0
  444. package/node_modules/@sinclair/typebox/build/cjs/type/omit/index.d.ts +3 -0
  445. package/node_modules/@sinclair/typebox/build/cjs/type/omit/index.js +20 -0
  446. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.d.ts +12 -0
  447. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.js +26 -0
  448. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.d.ts +12 -0
  449. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.js +23 -0
  450. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit.d.ts +36 -0
  451. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit.js +75 -0
  452. package/node_modules/@sinclair/typebox/build/cjs/type/optional/index.d.ts +2 -0
  453. package/node_modules/@sinclair/typebox/build/cjs/type/optional/index.js +19 -0
  454. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.d.ts +10 -0
  455. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.js +22 -0
  456. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional.d.ts +20 -0
  457. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional.js +26 -0
  458. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/index.d.ts +1 -0
  459. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/index.js +18 -0
  460. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.d.ts +7 -0
  461. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.js +44 -0
  462. package/node_modules/@sinclair/typebox/build/cjs/type/partial/index.d.ts +2 -0
  463. package/node_modules/@sinclair/typebox/build/cjs/type/partial/index.js +19 -0
  464. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.d.ts +12 -0
  465. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.js +23 -0
  466. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial.d.ts +35 -0
  467. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial.js +111 -0
  468. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/index.d.ts +1 -0
  469. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/index.js +18 -0
  470. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.d.ts +8 -0
  471. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.js +12 -0
  472. package/node_modules/@sinclair/typebox/build/cjs/type/pick/index.d.ts +3 -0
  473. package/node_modules/@sinclair/typebox/build/cjs/type/pick/index.js +20 -0
  474. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.d.ts +12 -0
  475. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.js +28 -0
  476. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.d.ts +12 -0
  477. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.js +23 -0
  478. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick.d.ts +36 -0
  479. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick.js +70 -0
  480. package/node_modules/@sinclair/typebox/build/cjs/type/promise/index.d.ts +1 -0
  481. package/node_modules/@sinclair/typebox/build/cjs/type/promise/index.js +18 -0
  482. package/node_modules/@sinclair/typebox/build/cjs/type/promise/promise.d.ts +11 -0
  483. package/node_modules/@sinclair/typebox/build/cjs/type/promise/promise.js +10 -0
  484. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/index.d.ts +2 -0
  485. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/index.js +19 -0
  486. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.d.ts +10 -0
  487. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.js +22 -0
  488. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.d.ts +20 -0
  489. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.js +26 -0
  490. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.d.ts +1 -0
  491. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.js +18 -0
  492. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.d.ts +6 -0
  493. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.js +10 -0
  494. package/node_modules/@sinclair/typebox/build/cjs/type/record/index.d.ts +1 -0
  495. package/node_modules/@sinclair/typebox/build/cjs/type/record/index.js +18 -0
  496. package/node_modules/@sinclair/typebox/build/cjs/type/record/record.d.ts +71 -0
  497. package/node_modules/@sinclair/typebox/build/cjs/type/record/record.js +123 -0
  498. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/index.d.ts +1 -0
  499. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/index.js +18 -0
  500. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.d.ts +16 -0
  501. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.js +19 -0
  502. package/node_modules/@sinclair/typebox/build/cjs/type/ref/index.d.ts +1 -0
  503. package/node_modules/@sinclair/typebox/build/cjs/type/ref/index.js +18 -0
  504. package/node_modules/@sinclair/typebox/build/cjs/type/ref/ref.d.ts +41 -0
  505. package/node_modules/@sinclair/typebox/build/cjs/type/ref/ref.js +14 -0
  506. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/index.d.ts +1 -0
  507. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/index.js +18 -0
  508. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.d.ts +20 -0
  509. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.js +12 -0
  510. package/node_modules/@sinclair/typebox/build/cjs/type/registry/format.d.ts +13 -0
  511. package/node_modules/@sinclair/typebox/build/cjs/type/registry/format.js +35 -0
  512. package/node_modules/@sinclair/typebox/build/cjs/type/registry/index.d.ts +2 -0
  513. package/node_modules/@sinclair/typebox/build/cjs/type/registry/index.js +39 -0
  514. package/node_modules/@sinclair/typebox/build/cjs/type/registry/type.d.ts +13 -0
  515. package/node_modules/@sinclair/typebox/build/cjs/type/registry/type.js +35 -0
  516. package/node_modules/@sinclair/typebox/build/cjs/type/required/index.d.ts +2 -0
  517. package/node_modules/@sinclair/typebox/build/cjs/type/required/index.js +19 -0
  518. package/node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.d.ts +12 -0
  519. package/node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.js +22 -0
  520. package/node_modules/@sinclair/typebox/build/cjs/type/required/required.d.ts +35 -0
  521. package/node_modules/@sinclair/typebox/build/cjs/type/required/required.js +110 -0
  522. package/node_modules/@sinclair/typebox/build/cjs/type/rest/index.d.ts +1 -0
  523. package/node_modules/@sinclair/typebox/build/cjs/type/rest/index.js +18 -0
  524. package/node_modules/@sinclair/typebox/build/cjs/type/rest/rest.d.ts +10 -0
  525. package/node_modules/@sinclair/typebox/build/cjs/type/rest/rest.js +19 -0
  526. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/index.d.ts +1 -0
  527. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/index.js +18 -0
  528. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.d.ts +6 -0
  529. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.js +44 -0
  530. package/node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.d.ts +33 -0
  531. package/node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.js +3 -0
  532. package/node_modules/@sinclair/typebox/build/cjs/type/schema/index.d.ts +2 -0
  533. package/node_modules/@sinclair/typebox/build/cjs/type/schema/index.js +19 -0
  534. package/node_modules/@sinclair/typebox/build/cjs/type/schema/schema.d.ts +29 -0
  535. package/node_modules/@sinclair/typebox/build/cjs/type/schema/schema.js +4 -0
  536. package/node_modules/@sinclair/typebox/build/cjs/type/sets/index.d.ts +1 -0
  537. package/node_modules/@sinclair/typebox/build/cjs/type/sets/index.js +18 -0
  538. package/node_modules/@sinclair/typebox/build/cjs/type/sets/set.d.ts +28 -0
  539. package/node_modules/@sinclair/typebox/build/cjs/type/sets/set.js +59 -0
  540. package/node_modules/@sinclair/typebox/build/cjs/type/static/index.d.ts +1 -0
  541. package/node_modules/@sinclair/typebox/build/cjs/type/static/index.js +18 -0
  542. package/node_modules/@sinclair/typebox/build/cjs/type/static/static.d.ts +39 -0
  543. package/node_modules/@sinclair/typebox/build/cjs/type/static/static.js +3 -0
  544. package/node_modules/@sinclair/typebox/build/cjs/type/string/index.d.ts +1 -0
  545. package/node_modules/@sinclair/typebox/build/cjs/type/string/index.js +18 -0
  546. package/node_modules/@sinclair/typebox/build/cjs/type/string/string.d.ts +25 -0
  547. package/node_modules/@sinclair/typebox/build/cjs/type/string/string.js +10 -0
  548. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/index.d.ts +1 -0
  549. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/index.js +18 -0
  550. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.d.ts +10 -0
  551. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.js +10 -0
  552. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/index.d.ts +1 -0
  553. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/index.js +18 -0
  554. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.d.ts +10 -0
  555. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.js +14 -0
  556. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.d.ts +19 -0
  557. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.js +56 -0
  558. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.d.ts +21 -0
  559. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.js +60 -0
  560. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.d.ts +7 -0
  561. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.js +24 -0
  562. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.d.ts +20 -0
  563. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.js +174 -0
  564. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.d.ts +5 -0
  565. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.js +39 -0
  566. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.d.ts +20 -0
  567. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.js +59 -0
  568. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.d.ts +30 -0
  569. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.js +17 -0
  570. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.d.ts +9 -0
  571. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.js +13 -0
  572. package/node_modules/@sinclair/typebox/build/cjs/type/transform/index.d.ts +1 -0
  573. package/node_modules/@sinclair/typebox/build/cjs/type/transform/index.js +18 -0
  574. package/node_modules/@sinclair/typebox/build/cjs/type/transform/transform.d.ts +30 -0
  575. package/node_modules/@sinclair/typebox/build/cjs/type/transform/transform.js +47 -0
  576. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/index.d.ts +1 -0
  577. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/index.js +18 -0
  578. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.d.ts +16 -0
  579. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.js +13 -0
  580. package/node_modules/@sinclair/typebox/build/cjs/type/type/index.d.ts +6 -0
  581. package/node_modules/@sinclair/typebox/build/cjs/type/type/index.js +51 -0
  582. package/node_modules/@sinclair/typebox/build/cjs/type/type/javascript.d.ts +64 -0
  583. package/node_modules/@sinclair/typebox/build/cjs/type/type/javascript.js +104 -0
  584. package/node_modules/@sinclair/typebox/build/cjs/type/type/json.d.ts +208 -0
  585. package/node_modules/@sinclair/typebox/build/cjs/type/type/json.js +226 -0
  586. package/node_modules/@sinclair/typebox/build/cjs/type/type/type.d.ts +59 -0
  587. package/node_modules/@sinclair/typebox/build/cjs/type/type/type.js +129 -0
  588. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.d.ts +1 -0
  589. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.js +18 -0
  590. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.d.ts +13 -0
  591. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.js +10 -0
  592. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/index.d.ts +1 -0
  593. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/index.js +18 -0
  594. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.d.ts +9 -0
  595. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.js +10 -0
  596. package/node_modules/@sinclair/typebox/build/cjs/type/union/index.d.ts +3 -0
  597. package/node_modules/@sinclair/typebox/build/cjs/type/union/index.js +20 -0
  598. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-create.d.ts +3 -0
  599. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-create.js +9 -0
  600. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.d.ts +13 -0
  601. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.js +40 -0
  602. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-type.d.ts +12 -0
  603. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-type.js +4 -0
  604. package/node_modules/@sinclair/typebox/build/cjs/type/union/union.d.ts +6 -0
  605. package/node_modules/@sinclair/typebox/build/cjs/type/union/union.js +14 -0
  606. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/index.d.ts +1 -0
  607. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/index.js +18 -0
  608. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.d.ts +8 -0
  609. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.js +10 -0
  610. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.d.ts +1 -0
  611. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.js +18 -0
  612. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.d.ts +11 -0
  613. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.js +10 -0
  614. package/node_modules/@sinclair/typebox/build/cjs/type/void/index.d.ts +1 -0
  615. package/node_modules/@sinclair/typebox/build/cjs/type/void/index.js +18 -0
  616. package/node_modules/@sinclair/typebox/build/cjs/type/void/void.d.ts +9 -0
  617. package/node_modules/@sinclair/typebox/build/cjs/type/void/void.js +10 -0
  618. package/node_modules/@sinclair/typebox/build/cjs/value/assert/assert.d.ts +15 -0
  619. package/node_modules/@sinclair/typebox/build/cjs/value/assert/assert.js +55 -0
  620. package/node_modules/@sinclair/typebox/build/cjs/value/assert/index.d.ts +1 -0
  621. package/node_modules/@sinclair/typebox/build/cjs/value/assert/index.js +18 -0
  622. package/node_modules/@sinclair/typebox/build/cjs/value/cast/cast.d.ts +11 -0
  623. package/node_modules/@sinclair/typebox/build/cjs/value/cast/cast.js +241 -0
  624. package/node_modules/@sinclair/typebox/build/cjs/value/cast/index.d.ts +1 -0
  625. package/node_modules/@sinclair/typebox/build/cjs/value/cast/index.js +18 -0
  626. package/node_modules/@sinclair/typebox/build/cjs/value/check/check.d.ts +11 -0
  627. package/node_modules/@sinclair/typebox/build/cjs/value/check/check.js +476 -0
  628. package/node_modules/@sinclair/typebox/build/cjs/value/check/index.d.ts +1 -0
  629. package/node_modules/@sinclair/typebox/build/cjs/value/check/index.js +18 -0
  630. package/node_modules/@sinclair/typebox/build/cjs/value/clean/clean.d.ts +5 -0
  631. package/node_modules/@sinclair/typebox/build/cjs/value/clean/clean.js +149 -0
  632. package/node_modules/@sinclair/typebox/build/cjs/value/clean/index.d.ts +1 -0
  633. package/node_modules/@sinclair/typebox/build/cjs/value/clean/index.js +18 -0
  634. package/node_modules/@sinclair/typebox/build/cjs/value/clone/clone.d.ts +2 -0
  635. package/node_modules/@sinclair/typebox/build/cjs/value/clone/clone.js +60 -0
  636. package/node_modules/@sinclair/typebox/build/cjs/value/clone/index.d.ts +1 -0
  637. package/node_modules/@sinclair/typebox/build/cjs/value/clone/index.js +18 -0
  638. package/node_modules/@sinclair/typebox/build/cjs/value/convert/convert.d.ts +5 -0
  639. package/node_modules/@sinclair/typebox/build/cjs/value/convert/convert.js +264 -0
  640. package/node_modules/@sinclair/typebox/build/cjs/value/convert/index.d.ts +1 -0
  641. package/node_modules/@sinclair/typebox/build/cjs/value/convert/index.js +18 -0
  642. package/node_modules/@sinclair/typebox/build/cjs/value/create/create.d.ts +11 -0
  643. package/node_modules/@sinclair/typebox/build/cjs/value/create/create.js +474 -0
  644. package/node_modules/@sinclair/typebox/build/cjs/value/create/index.d.ts +1 -0
  645. package/node_modules/@sinclair/typebox/build/cjs/value/create/index.js +18 -0
  646. package/node_modules/@sinclair/typebox/build/cjs/value/decode/decode.d.ts +6 -0
  647. package/node_modules/@sinclair/typebox/build/cjs/value/decode/decode.js +14 -0
  648. package/node_modules/@sinclair/typebox/build/cjs/value/decode/index.d.ts +1 -0
  649. package/node_modules/@sinclair/typebox/build/cjs/value/decode/index.js +18 -0
  650. package/node_modules/@sinclair/typebox/build/cjs/value/default/default.d.ts +5 -0
  651. package/node_modules/@sinclair/typebox/build/cjs/value/default/default.js +176 -0
  652. package/node_modules/@sinclair/typebox/build/cjs/value/default/index.d.ts +1 -0
  653. package/node_modules/@sinclair/typebox/build/cjs/value/default/index.js +18 -0
  654. package/node_modules/@sinclair/typebox/build/cjs/value/delta/delta.d.ts +32 -0
  655. package/node_modules/@sinclair/typebox/build/cjs/value/delta/delta.js +178 -0
  656. package/node_modules/@sinclair/typebox/build/cjs/value/delta/index.d.ts +1 -0
  657. package/node_modules/@sinclair/typebox/build/cjs/value/delta/index.js +18 -0
  658. package/node_modules/@sinclair/typebox/build/cjs/value/deref/deref.d.ts +12 -0
  659. package/node_modules/@sinclair/typebox/build/cjs/value/deref/deref.js +36 -0
  660. package/node_modules/@sinclair/typebox/build/cjs/value/deref/index.d.ts +1 -0
  661. package/node_modules/@sinclair/typebox/build/cjs/value/deref/index.js +18 -0
  662. package/node_modules/@sinclair/typebox/build/cjs/value/encode/encode.d.ts +6 -0
  663. package/node_modules/@sinclair/typebox/build/cjs/value/encode/encode.js +15 -0
  664. package/node_modules/@sinclair/typebox/build/cjs/value/encode/index.d.ts +1 -0
  665. package/node_modules/@sinclair/typebox/build/cjs/value/encode/index.js +18 -0
  666. package/node_modules/@sinclair/typebox/build/cjs/value/equal/equal.d.ts +2 -0
  667. package/node_modules/@sinclair/typebox/build/cjs/value/equal/equal.js +50 -0
  668. package/node_modules/@sinclair/typebox/build/cjs/value/equal/index.d.ts +1 -0
  669. package/node_modules/@sinclair/typebox/build/cjs/value/equal/index.js +18 -0
  670. package/node_modules/@sinclair/typebox/build/cjs/value/guard/guard.d.ts +74 -0
  671. package/node_modules/@sinclair/typebox/build/cjs/value/guard/guard.js +195 -0
  672. package/node_modules/@sinclair/typebox/build/cjs/value/guard/index.d.ts +1 -0
  673. package/node_modules/@sinclair/typebox/build/cjs/value/guard/index.js +18 -0
  674. package/node_modules/@sinclair/typebox/build/cjs/value/hash/hash.d.ts +7 -0
  675. package/node_modules/@sinclair/typebox/build/cjs/value/hash/hash.js +152 -0
  676. package/node_modules/@sinclair/typebox/build/cjs/value/hash/index.d.ts +1 -0
  677. package/node_modules/@sinclair/typebox/build/cjs/value/hash/index.js +18 -0
  678. package/node_modules/@sinclair/typebox/build/cjs/value/index.d.ts +20 -0
  679. package/node_modules/@sinclair/typebox/build/cjs/value/index.js +53 -0
  680. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/index.d.ts +1 -0
  681. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/index.js +18 -0
  682. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/mutate.d.ts +9 -0
  683. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/mutate.js +104 -0
  684. package/node_modules/@sinclair/typebox/build/cjs/value/parse/index.d.ts +1 -0
  685. package/node_modules/@sinclair/typebox/build/cjs/value/parse/index.js +18 -0
  686. package/node_modules/@sinclair/typebox/build/cjs/value/parse/parse.d.ts +22 -0
  687. package/node_modules/@sinclair/typebox/build/cjs/value/parse/parse.js +87 -0
  688. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/index.d.ts +1 -0
  689. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/index.js +38 -0
  690. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/pointer.d.ts +22 -0
  691. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/pointer.js +126 -0
  692. package/node_modules/@sinclair/typebox/build/cjs/value/transform/decode.d.ts +22 -0
  693. package/node_modules/@sinclair/typebox/build/cjs/value/transform/decode.js +214 -0
  694. package/node_modules/@sinclair/typebox/build/cjs/value/transform/encode.d.ts +23 -0
  695. package/node_modules/@sinclair/typebox/build/cjs/value/transform/encode.js +225 -0
  696. package/node_modules/@sinclair/typebox/build/cjs/value/transform/has.d.ts +3 -0
  697. package/node_modules/@sinclair/typebox/build/cjs/value/transform/has.js +133 -0
  698. package/node_modules/@sinclair/typebox/build/cjs/value/transform/index.d.ts +3 -0
  699. package/node_modules/@sinclair/typebox/build/cjs/value/transform/index.js +20 -0
  700. package/node_modules/@sinclair/typebox/build/cjs/value/value/index.d.ts +1 -0
  701. package/node_modules/@sinclair/typebox/build/cjs/value/value/index.js +38 -0
  702. package/node_modules/@sinclair/typebox/build/cjs/value/value/value.d.ts +16 -0
  703. package/node_modules/@sinclair/typebox/build/cjs/value/value/value.js +39 -0
  704. package/node_modules/@sinclair/typebox/build/esm/compiler/compiler.d.mts +55 -0
  705. package/node_modules/@sinclair/typebox/build/esm/compiler/compiler.mjs +663 -0
  706. package/node_modules/@sinclair/typebox/build/esm/compiler/index.d.mts +2 -0
  707. package/node_modules/@sinclair/typebox/build/esm/compiler/index.mjs +2 -0
  708. package/node_modules/@sinclair/typebox/build/esm/errors/errors.d.mts +91 -0
  709. package/node_modules/@sinclair/typebox/build/esm/errors/errors.mjs +592 -0
  710. package/node_modules/@sinclair/typebox/build/esm/errors/function.d.mts +21 -0
  711. package/node_modules/@sinclair/typebox/build/esm/errors/function.mjs +147 -0
  712. package/node_modules/@sinclair/typebox/build/esm/errors/index.d.mts +2 -0
  713. package/node_modules/@sinclair/typebox/build/esm/errors/index.mjs +2 -0
  714. package/node_modules/@sinclair/typebox/build/esm/index.d.mts +71 -0
  715. package/node_modules/@sinclair/typebox/build/esm/index.mjs +80 -0
  716. package/node_modules/@sinclair/typebox/build/esm/parser/index.d.mts +2 -0
  717. package/node_modules/@sinclair/typebox/build/esm/parser/index.mjs +2 -0
  718. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/guard.d.mts +23 -0
  719. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/guard.mjs +72 -0
  720. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/index.d.mts +5 -0
  721. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/index.mjs +5 -0
  722. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/module.d.mts +9 -0
  723. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/module.mjs +17 -0
  724. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/parse.d.mts +9 -0
  725. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/parse.mjs +123 -0
  726. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/token.d.mts +8 -0
  727. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/token.mjs +223 -0
  728. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/types.d.mts +98 -0
  729. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/types.mjs +55 -0
  730. package/node_modules/@sinclair/typebox/build/esm/parser/static/index.d.mts +3 -0
  731. package/node_modules/@sinclair/typebox/build/esm/parser/static/index.mjs +3 -0
  732. package/node_modules/@sinclair/typebox/build/esm/parser/static/parse.d.mts +20 -0
  733. package/node_modules/@sinclair/typebox/build/esm/parser/static/parse.mjs +1 -0
  734. package/node_modules/@sinclair/typebox/build/esm/parser/static/token.d.mts +108 -0
  735. package/node_modules/@sinclair/typebox/build/esm/parser/static/token.mjs +1 -0
  736. package/node_modules/@sinclair/typebox/build/esm/parser/static/types.d.mts +69 -0
  737. package/node_modules/@sinclair/typebox/build/esm/parser/static/types.mjs +1 -0
  738. package/node_modules/@sinclair/typebox/build/esm/syntax/index.d.mts +1 -0
  739. package/node_modules/@sinclair/typebox/build/esm/syntax/index.mjs +1 -0
  740. package/node_modules/@sinclair/typebox/build/esm/syntax/mapping.d.mts +167 -0
  741. package/node_modules/@sinclair/typebox/build/esm/syntax/mapping.mjs +386 -0
  742. package/node_modules/@sinclair/typebox/build/esm/syntax/parser.d.mts +162 -0
  743. package/node_modules/@sinclair/typebox/build/esm/syntax/parser.mjs +78 -0
  744. package/node_modules/@sinclair/typebox/build/esm/syntax/syntax.d.mts +12 -0
  745. package/node_modules/@sinclair/typebox/build/esm/syntax/syntax.mjs +16 -0
  746. package/node_modules/@sinclair/typebox/build/esm/system/index.d.mts +2 -0
  747. package/node_modules/@sinclair/typebox/build/esm/system/index.mjs +2 -0
  748. package/node_modules/@sinclair/typebox/build/esm/system/policy.d.mts +29 -0
  749. package/node_modules/@sinclair/typebox/build/esm/system/policy.mjs +54 -0
  750. package/node_modules/@sinclair/typebox/build/esm/system/system.d.mts +16 -0
  751. package/node_modules/@sinclair/typebox/build/esm/system/system.mjs +37 -0
  752. package/node_modules/@sinclair/typebox/build/esm/type/any/any.d.mts +8 -0
  753. package/node_modules/@sinclair/typebox/build/esm/type/any/any.mjs +6 -0
  754. package/node_modules/@sinclair/typebox/build/esm/type/any/index.d.mts +1 -0
  755. package/node_modules/@sinclair/typebox/build/esm/type/any/index.mjs +1 -0
  756. package/node_modules/@sinclair/typebox/build/esm/type/argument/argument.d.mts +9 -0
  757. package/node_modules/@sinclair/typebox/build/esm/type/argument/argument.mjs +6 -0
  758. package/node_modules/@sinclair/typebox/build/esm/type/argument/index.d.mts +1 -0
  759. package/node_modules/@sinclair/typebox/build/esm/type/argument/index.mjs +1 -0
  760. package/node_modules/@sinclair/typebox/build/esm/type/array/array.d.mts +28 -0
  761. package/node_modules/@sinclair/typebox/build/esm/type/array/array.mjs +6 -0
  762. package/node_modules/@sinclair/typebox/build/esm/type/array/index.d.mts +1 -0
  763. package/node_modules/@sinclair/typebox/build/esm/type/array/index.mjs +1 -0
  764. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.d.mts +11 -0
  765. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs +6 -0
  766. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.d.mts +1 -0
  767. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.mjs +1 -0
  768. package/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.d.mts +14 -0
  769. package/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs +37 -0
  770. package/node_modules/@sinclair/typebox/build/esm/type/awaited/index.d.mts +1 -0
  771. package/node_modules/@sinclair/typebox/build/esm/type/awaited/index.mjs +1 -0
  772. package/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.d.mts +16 -0
  773. package/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs +6 -0
  774. package/node_modules/@sinclair/typebox/build/esm/type/bigint/index.d.mts +1 -0
  775. package/node_modules/@sinclair/typebox/build/esm/type/bigint/index.mjs +1 -0
  776. package/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.d.mts +9 -0
  777. package/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs +6 -0
  778. package/node_modules/@sinclair/typebox/build/esm/type/boolean/index.d.mts +1 -0
  779. package/node_modules/@sinclair/typebox/build/esm/type/boolean/index.mjs +1 -0
  780. package/node_modules/@sinclair/typebox/build/esm/type/clone/index.d.mts +2 -0
  781. package/node_modules/@sinclair/typebox/build/esm/type/clone/index.mjs +2 -0
  782. package/node_modules/@sinclair/typebox/build/esm/type/clone/type.d.mts +5 -0
  783. package/node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs +9 -0
  784. package/node_modules/@sinclair/typebox/build/esm/type/clone/value.d.mts +2 -0
  785. package/node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs +36 -0
  786. package/node_modules/@sinclair/typebox/build/esm/type/composite/composite.d.mts +18 -0
  787. package/node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs +42 -0
  788. package/node_modules/@sinclair/typebox/build/esm/type/composite/index.d.mts +1 -0
  789. package/node_modules/@sinclair/typebox/build/esm/type/composite/index.mjs +1 -0
  790. package/node_modules/@sinclair/typebox/build/esm/type/computed/computed.d.mts +9 -0
  791. package/node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs +6 -0
  792. package/node_modules/@sinclair/typebox/build/esm/type/computed/index.d.mts +1 -0
  793. package/node_modules/@sinclair/typebox/build/esm/type/computed/index.mjs +1 -0
  794. package/node_modules/@sinclair/typebox/build/esm/type/const/const.d.mts +27 -0
  795. package/node_modules/@sinclair/typebox/build/esm/type/const/const.mjs +54 -0
  796. package/node_modules/@sinclair/typebox/build/esm/type/const/index.d.mts +1 -0
  797. package/node_modules/@sinclair/typebox/build/esm/type/const/index.mjs +1 -0
  798. package/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.d.mts +23 -0
  799. package/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs +6 -0
  800. package/node_modules/@sinclair/typebox/build/esm/type/constructor/index.d.mts +1 -0
  801. package/node_modules/@sinclair/typebox/build/esm/type/constructor/index.mjs +1 -0
  802. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.d.mts +7 -0
  803. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs +7 -0
  804. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.d.mts +1 -0
  805. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.mjs +1 -0
  806. package/node_modules/@sinclair/typebox/build/esm/type/create/immutable.d.mts +2 -0
  807. package/node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs +33 -0
  808. package/node_modules/@sinclair/typebox/build/esm/type/create/index.d.mts +1 -0
  809. package/node_modules/@sinclair/typebox/build/esm/type/create/index.mjs +1 -0
  810. package/node_modules/@sinclair/typebox/build/esm/type/create/type.d.mts +3 -0
  811. package/node_modules/@sinclair/typebox/build/esm/type/create/type.mjs +15 -0
  812. package/node_modules/@sinclair/typebox/build/esm/type/date/date.d.mts +21 -0
  813. package/node_modules/@sinclair/typebox/build/esm/type/date/date.mjs +6 -0
  814. package/node_modules/@sinclair/typebox/build/esm/type/date/index.d.mts +1 -0
  815. package/node_modules/@sinclair/typebox/build/esm/type/date/index.mjs +1 -0
  816. package/node_modules/@sinclair/typebox/build/esm/type/discard/discard.d.mts +2 -0
  817. package/node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs +8 -0
  818. package/node_modules/@sinclair/typebox/build/esm/type/discard/index.d.mts +1 -0
  819. package/node_modules/@sinclair/typebox/build/esm/type/discard/index.mjs +1 -0
  820. package/node_modules/@sinclair/typebox/build/esm/type/enum/enum.d.mts +14 -0
  821. package/node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs +18 -0
  822. package/node_modules/@sinclair/typebox/build/esm/type/enum/index.d.mts +1 -0
  823. package/node_modules/@sinclair/typebox/build/esm/type/enum/index.mjs +1 -0
  824. package/node_modules/@sinclair/typebox/build/esm/type/error/error.d.mts +4 -0
  825. package/node_modules/@sinclair/typebox/build/esm/type/error/error.mjs +6 -0
  826. package/node_modules/@sinclair/typebox/build/esm/type/error/index.d.mts +1 -0
  827. package/node_modules/@sinclair/typebox/build/esm/type/error/index.mjs +1 -0
  828. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.d.mts +11 -0
  829. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs +18 -0
  830. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.d.mts +5 -0
  831. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs +5 -0
  832. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.d.mts +21 -0
  833. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs +25 -0
  834. package/node_modules/@sinclair/typebox/build/esm/type/exclude/index.d.mts +3 -0
  835. package/node_modules/@sinclair/typebox/build/esm/type/exclude/index.mjs +3 -0
  836. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.d.mts +10 -0
  837. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs +635 -0
  838. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.d.mts +14 -0
  839. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs +25 -0
  840. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.d.mts +11 -0
  841. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs +19 -0
  842. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.d.mts +3 -0
  843. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs +20 -0
  844. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends.d.mts +16 -0
  845. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs +23 -0
  846. package/node_modules/@sinclair/typebox/build/esm/type/extends/index.d.mts +5 -0
  847. package/node_modules/@sinclair/typebox/build/esm/type/extends/index.mjs +5 -0
  848. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.d.mts +11 -0
  849. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs +18 -0
  850. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.d.mts +5 -0
  851. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs +5 -0
  852. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract.d.mts +21 -0
  853. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs +25 -0
  854. package/node_modules/@sinclair/typebox/build/esm/type/extract/index.d.mts +3 -0
  855. package/node_modules/@sinclair/typebox/build/esm/type/extract/index.mjs +3 -0
  856. package/node_modules/@sinclair/typebox/build/esm/type/function/function.d.mts +23 -0
  857. package/node_modules/@sinclair/typebox/build/esm/type/function/function.mjs +6 -0
  858. package/node_modules/@sinclair/typebox/build/esm/type/function/index.d.mts +1 -0
  859. package/node_modules/@sinclair/typebox/build/esm/type/function/index.mjs +1 -0
  860. package/node_modules/@sinclair/typebox/build/esm/type/guard/index.d.mts +3 -0
  861. package/node_modules/@sinclair/typebox/build/esm/type/guard/index.mjs +3 -0
  862. package/node_modules/@sinclair/typebox/build/esm/type/guard/kind.d.mts +147 -0
  863. package/node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs +235 -0
  864. package/node_modules/@sinclair/typebox/build/esm/type/guard/type.d.mts +152 -0
  865. package/node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs +509 -0
  866. package/node_modules/@sinclair/typebox/build/esm/type/guard/value.d.mts +34 -0
  867. package/node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs +70 -0
  868. package/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.d.mts +42 -0
  869. package/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.mjs +4 -0
  870. package/node_modules/@sinclair/typebox/build/esm/type/helpers/index.d.mts +1 -0
  871. package/node_modules/@sinclair/typebox/build/esm/type/helpers/index.mjs +1 -0
  872. package/node_modules/@sinclair/typebox/build/esm/type/index.d.mts +71 -0
  873. package/node_modules/@sinclair/typebox/build/esm/type/index.mjs +71 -0
  874. package/node_modules/@sinclair/typebox/build/esm/type/indexed/index.d.mts +4 -0
  875. package/node_modules/@sinclair/typebox/build/esm/type/indexed/index.mjs +4 -0
  876. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.d.mts +13 -0
  877. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs +22 -0
  878. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.d.mts +12 -0
  879. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs +20 -0
  880. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.d.mts +14 -0
  881. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs +32 -0
  882. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.d.mts +52 -0
  883. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs +91 -0
  884. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.d.mts +1 -0
  885. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.mjs +1 -0
  886. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.d.mts +6 -0
  887. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs +7 -0
  888. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.d.mts +1 -0
  889. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.mjs +1 -0
  890. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.d.mts +50 -0
  891. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs +115 -0
  892. package/node_modules/@sinclair/typebox/build/esm/type/integer/index.d.mts +1 -0
  893. package/node_modules/@sinclair/typebox/build/esm/type/integer/index.mjs +1 -0
  894. package/node_modules/@sinclair/typebox/build/esm/type/integer/integer.d.mts +16 -0
  895. package/node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs +6 -0
  896. package/node_modules/@sinclair/typebox/build/esm/type/intersect/index.d.mts +3 -0
  897. package/node_modules/@sinclair/typebox/build/esm/type/intersect/index.mjs +3 -0
  898. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.d.mts +3 -0
  899. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs +19 -0
  900. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.d.mts +13 -0
  901. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs +38 -0
  902. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.d.mts +15 -0
  903. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.mjs +1 -0
  904. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.d.mts +6 -0
  905. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs +17 -0
  906. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.d.mts +5 -0
  907. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs +5 -0
  908. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.d.mts +6 -0
  909. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.mjs +6 -0
  910. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.d.mts +14 -0
  911. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs +26 -0
  912. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.d.mts +16 -0
  913. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs +64 -0
  914. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.d.mts +5 -0
  915. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs +5 -0
  916. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.d.mts +5 -0
  917. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs +5 -0
  918. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.d.mts +5 -0
  919. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs +5 -0
  920. package/node_modules/@sinclair/typebox/build/esm/type/iterator/index.d.mts +1 -0
  921. package/node_modules/@sinclair/typebox/build/esm/type/iterator/index.mjs +1 -0
  922. package/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.d.mts +11 -0
  923. package/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs +6 -0
  924. package/node_modules/@sinclair/typebox/build/esm/type/keyof/index.d.mts +4 -0
  925. package/node_modules/@sinclair/typebox/build/esm/type/keyof/index.mjs +4 -0
  926. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.d.mts +12 -0
  927. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs +19 -0
  928. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.d.mts +7 -0
  929. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs +12 -0
  930. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.d.mts +24 -0
  931. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs +73 -0
  932. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.d.mts +21 -0
  933. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs +35 -0
  934. package/node_modules/@sinclair/typebox/build/esm/type/literal/index.d.mts +1 -0
  935. package/node_modules/@sinclair/typebox/build/esm/type/literal/index.mjs +1 -0
  936. package/node_modules/@sinclair/typebox/build/esm/type/literal/literal.d.mts +10 -0
  937. package/node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs +10 -0
  938. package/node_modules/@sinclair/typebox/build/esm/type/mapped/index.d.mts +3 -0
  939. package/node_modules/@sinclair/typebox/build/esm/type/mapped/index.mjs +3 -0
  940. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.d.mts +8 -0
  941. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.mjs +9 -0
  942. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.d.mts +9 -0
  943. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs +9 -0
  944. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.d.mts +47 -0
  945. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs +102 -0
  946. package/node_modules/@sinclair/typebox/build/esm/type/module/compute.d.mts +59 -0
  947. package/node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs +166 -0
  948. package/node_modules/@sinclair/typebox/build/esm/type/module/index.d.mts +1 -0
  949. package/node_modules/@sinclair/typebox/build/esm/type/module/index.mjs +1 -0
  950. package/node_modules/@sinclair/typebox/build/esm/type/module/infer.d.mts +49 -0
  951. package/node_modules/@sinclair/typebox/build/esm/type/module/infer.mjs +1 -0
  952. package/node_modules/@sinclair/typebox/build/esm/type/module/module.d.mts +27 -0
  953. package/node_modules/@sinclair/typebox/build/esm/type/module/module.mjs +32 -0
  954. package/node_modules/@sinclair/typebox/build/esm/type/never/index.d.mts +1 -0
  955. package/node_modules/@sinclair/typebox/build/esm/type/never/index.mjs +1 -0
  956. package/node_modules/@sinclair/typebox/build/esm/type/never/never.d.mts +9 -0
  957. package/node_modules/@sinclair/typebox/build/esm/type/never/never.mjs +6 -0
  958. package/node_modules/@sinclair/typebox/build/esm/type/not/index.d.mts +1 -0
  959. package/node_modules/@sinclair/typebox/build/esm/type/not/index.mjs +1 -0
  960. package/node_modules/@sinclair/typebox/build/esm/type/not/not.d.mts +10 -0
  961. package/node_modules/@sinclair/typebox/build/esm/type/not/not.mjs +6 -0
  962. package/node_modules/@sinclair/typebox/build/esm/type/null/index.d.mts +1 -0
  963. package/node_modules/@sinclair/typebox/build/esm/type/null/index.mjs +1 -0
  964. package/node_modules/@sinclair/typebox/build/esm/type/null/null.d.mts +9 -0
  965. package/node_modules/@sinclair/typebox/build/esm/type/null/null.mjs +6 -0
  966. package/node_modules/@sinclair/typebox/build/esm/type/number/index.d.mts +1 -0
  967. package/node_modules/@sinclair/typebox/build/esm/type/number/index.mjs +1 -0
  968. package/node_modules/@sinclair/typebox/build/esm/type/number/number.d.mts +16 -0
  969. package/node_modules/@sinclair/typebox/build/esm/type/number/number.mjs +6 -0
  970. package/node_modules/@sinclair/typebox/build/esm/type/object/index.d.mts +1 -0
  971. package/node_modules/@sinclair/typebox/build/esm/type/object/index.mjs +1 -0
  972. package/node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts +51 -0
  973. package/node_modules/@sinclair/typebox/build/esm/type/object/object.mjs +18 -0
  974. package/node_modules/@sinclair/typebox/build/esm/type/omit/index.d.mts +3 -0
  975. package/node_modules/@sinclair/typebox/build/esm/type/omit/index.mjs +3 -0
  976. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.d.mts +12 -0
  977. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs +22 -0
  978. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.d.mts +12 -0
  979. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs +19 -0
  980. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit.d.mts +36 -0
  981. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs +71 -0
  982. package/node_modules/@sinclair/typebox/build/esm/type/optional/index.d.mts +2 -0
  983. package/node_modules/@sinclair/typebox/build/esm/type/optional/index.mjs +2 -0
  984. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.d.mts +10 -0
  985. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs +18 -0
  986. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional.d.mts +20 -0
  987. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs +22 -0
  988. package/node_modules/@sinclair/typebox/build/esm/type/parameters/index.d.mts +1 -0
  989. package/node_modules/@sinclair/typebox/build/esm/type/parameters/index.mjs +1 -0
  990. package/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.d.mts +7 -0
  991. package/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs +7 -0
  992. package/node_modules/@sinclair/typebox/build/esm/type/partial/index.d.mts +2 -0
  993. package/node_modules/@sinclair/typebox/build/esm/type/partial/index.mjs +2 -0
  994. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.d.mts +12 -0
  995. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs +19 -0
  996. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial.d.mts +35 -0
  997. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs +74 -0
  998. package/node_modules/@sinclair/typebox/build/esm/type/patterns/index.d.mts +1 -0
  999. package/node_modules/@sinclair/typebox/build/esm/type/patterns/index.mjs +1 -0
  1000. package/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.d.mts +8 -0
  1001. package/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs +8 -0
  1002. package/node_modules/@sinclair/typebox/build/esm/type/pick/index.d.mts +3 -0
  1003. package/node_modules/@sinclair/typebox/build/esm/type/pick/index.mjs +3 -0
  1004. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.d.mts +12 -0
  1005. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs +24 -0
  1006. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.d.mts +12 -0
  1007. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs +19 -0
  1008. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick.d.mts +36 -0
  1009. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs +66 -0
  1010. package/node_modules/@sinclair/typebox/build/esm/type/promise/index.d.mts +1 -0
  1011. package/node_modules/@sinclair/typebox/build/esm/type/promise/index.mjs +1 -0
  1012. package/node_modules/@sinclair/typebox/build/esm/type/promise/promise.d.mts +11 -0
  1013. package/node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs +6 -0
  1014. package/node_modules/@sinclair/typebox/build/esm/type/readonly/index.d.mts +2 -0
  1015. package/node_modules/@sinclair/typebox/build/esm/type/readonly/index.mjs +2 -0
  1016. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.d.mts +10 -0
  1017. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs +18 -0
  1018. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.d.mts +20 -0
  1019. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs +22 -0
  1020. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.d.mts +1 -0
  1021. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.mjs +1 -0
  1022. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.d.mts +6 -0
  1023. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs +6 -0
  1024. package/node_modules/@sinclair/typebox/build/esm/type/record/index.d.mts +1 -0
  1025. package/node_modules/@sinclair/typebox/build/esm/type/record/index.mjs +1 -0
  1026. package/node_modules/@sinclair/typebox/build/esm/type/record/record.d.mts +71 -0
  1027. package/node_modules/@sinclair/typebox/build/esm/type/record/record.mjs +116 -0
  1028. package/node_modules/@sinclair/typebox/build/esm/type/recursive/index.d.mts +1 -0
  1029. package/node_modules/@sinclair/typebox/build/esm/type/recursive/index.mjs +1 -0
  1030. package/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.d.mts +16 -0
  1031. package/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs +15 -0
  1032. package/node_modules/@sinclair/typebox/build/esm/type/ref/index.d.mts +1 -0
  1033. package/node_modules/@sinclair/typebox/build/esm/type/ref/index.mjs +1 -0
  1034. package/node_modules/@sinclair/typebox/build/esm/type/ref/ref.d.mts +41 -0
  1035. package/node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs +10 -0
  1036. package/node_modules/@sinclair/typebox/build/esm/type/regexp/index.d.mts +1 -0
  1037. package/node_modules/@sinclair/typebox/build/esm/type/regexp/index.mjs +1 -0
  1038. package/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.d.mts +20 -0
  1039. package/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs +8 -0
  1040. package/node_modules/@sinclair/typebox/build/esm/type/registry/format.d.mts +13 -0
  1041. package/node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs +26 -0
  1042. package/node_modules/@sinclair/typebox/build/esm/type/registry/index.d.mts +2 -0
  1043. package/node_modules/@sinclair/typebox/build/esm/type/registry/index.mjs +2 -0
  1044. package/node_modules/@sinclair/typebox/build/esm/type/registry/type.d.mts +13 -0
  1045. package/node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs +26 -0
  1046. package/node_modules/@sinclair/typebox/build/esm/type/required/index.d.mts +2 -0
  1047. package/node_modules/@sinclair/typebox/build/esm/type/required/index.mjs +2 -0
  1048. package/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.d.mts +12 -0
  1049. package/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs +18 -0
  1050. package/node_modules/@sinclair/typebox/build/esm/type/required/required.d.mts +35 -0
  1051. package/node_modules/@sinclair/typebox/build/esm/type/required/required.mjs +73 -0
  1052. package/node_modules/@sinclair/typebox/build/esm/type/rest/index.d.mts +1 -0
  1053. package/node_modules/@sinclair/typebox/build/esm/type/rest/index.mjs +1 -0
  1054. package/node_modules/@sinclair/typebox/build/esm/type/rest/rest.d.mts +10 -0
  1055. package/node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs +15 -0
  1056. package/node_modules/@sinclair/typebox/build/esm/type/return-type/index.d.mts +1 -0
  1057. package/node_modules/@sinclair/typebox/build/esm/type/return-type/index.mjs +1 -0
  1058. package/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.d.mts +6 -0
  1059. package/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs +7 -0
  1060. package/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.d.mts +33 -0
  1061. package/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.mjs +1 -0
  1062. package/node_modules/@sinclair/typebox/build/esm/type/schema/index.d.mts +2 -0
  1063. package/node_modules/@sinclair/typebox/build/esm/type/schema/index.mjs +2 -0
  1064. package/node_modules/@sinclair/typebox/build/esm/type/schema/schema.d.mts +29 -0
  1065. package/node_modules/@sinclair/typebox/build/esm/type/schema/schema.mjs +1 -0
  1066. package/node_modules/@sinclair/typebox/build/esm/type/sets/index.d.mts +1 -0
  1067. package/node_modules/@sinclair/typebox/build/esm/type/sets/index.mjs +1 -0
  1068. package/node_modules/@sinclair/typebox/build/esm/type/sets/set.d.mts +28 -0
  1069. package/node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs +48 -0
  1070. package/node_modules/@sinclair/typebox/build/esm/type/static/index.d.mts +1 -0
  1071. package/node_modules/@sinclair/typebox/build/esm/type/static/index.mjs +1 -0
  1072. package/node_modules/@sinclair/typebox/build/esm/type/static/static.d.mts +39 -0
  1073. package/node_modules/@sinclair/typebox/build/esm/type/static/static.mjs +1 -0
  1074. package/node_modules/@sinclair/typebox/build/esm/type/string/index.d.mts +1 -0
  1075. package/node_modules/@sinclair/typebox/build/esm/type/string/index.mjs +1 -0
  1076. package/node_modules/@sinclair/typebox/build/esm/type/string/string.d.mts +25 -0
  1077. package/node_modules/@sinclair/typebox/build/esm/type/string/string.mjs +6 -0
  1078. package/node_modules/@sinclair/typebox/build/esm/type/symbol/index.d.mts +1 -0
  1079. package/node_modules/@sinclair/typebox/build/esm/type/symbol/index.mjs +1 -0
  1080. package/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.d.mts +10 -0
  1081. package/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs +6 -0
  1082. package/node_modules/@sinclair/typebox/build/esm/type/symbols/index.d.mts +1 -0
  1083. package/node_modules/@sinclair/typebox/build/esm/type/symbols/index.mjs +1 -0
  1084. package/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.d.mts +10 -0
  1085. package/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs +10 -0
  1086. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.d.mts +19 -0
  1087. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs +49 -0
  1088. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.d.mts +21 -0
  1089. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs +53 -0
  1090. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.d.mts +7 -0
  1091. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.mjs +7 -0
  1092. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.d.mts +20 -0
  1093. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs +167 -0
  1094. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.d.mts +5 -0
  1095. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs +33 -0
  1096. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.d.mts +20 -0
  1097. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs +55 -0
  1098. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.d.mts +30 -0
  1099. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs +13 -0
  1100. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.d.mts +9 -0
  1101. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs +9 -0
  1102. package/node_modules/@sinclair/typebox/build/esm/type/transform/index.d.mts +1 -0
  1103. package/node_modules/@sinclair/typebox/build/esm/type/transform/index.mjs +1 -0
  1104. package/node_modules/@sinclair/typebox/build/esm/type/transform/transform.d.mts +30 -0
  1105. package/node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs +40 -0
  1106. package/node_modules/@sinclair/typebox/build/esm/type/tuple/index.d.mts +1 -0
  1107. package/node_modules/@sinclair/typebox/build/esm/type/tuple/index.mjs +1 -0
  1108. package/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.d.mts +16 -0
  1109. package/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs +9 -0
  1110. package/node_modules/@sinclair/typebox/build/esm/type/type/index.d.mts +6 -0
  1111. package/node_modules/@sinclair/typebox/build/esm/type/type/index.mjs +13 -0
  1112. package/node_modules/@sinclair/typebox/build/esm/type/type/javascript.d.mts +64 -0
  1113. package/node_modules/@sinclair/typebox/build/esm/type/type/javascript.mjs +99 -0
  1114. package/node_modules/@sinclair/typebox/build/esm/type/type/json.d.mts +208 -0
  1115. package/node_modules/@sinclair/typebox/build/esm/type/type/json.mjs +221 -0
  1116. package/node_modules/@sinclair/typebox/build/esm/type/type/type.d.mts +59 -0
  1117. package/node_modules/@sinclair/typebox/build/esm/type/type/type.mjs +62 -0
  1118. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.d.mts +1 -0
  1119. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.mjs +1 -0
  1120. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.d.mts +13 -0
  1121. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs +6 -0
  1122. package/node_modules/@sinclair/typebox/build/esm/type/undefined/index.d.mts +1 -0
  1123. package/node_modules/@sinclair/typebox/build/esm/type/undefined/index.mjs +1 -0
  1124. package/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.d.mts +9 -0
  1125. package/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs +6 -0
  1126. package/node_modules/@sinclair/typebox/build/esm/type/union/index.d.mts +3 -0
  1127. package/node_modules/@sinclair/typebox/build/esm/type/union/index.mjs +3 -0
  1128. package/node_modules/@sinclair/typebox/build/esm/type/union/union-create.d.mts +3 -0
  1129. package/node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs +5 -0
  1130. package/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.d.mts +13 -0
  1131. package/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs +36 -0
  1132. package/node_modules/@sinclair/typebox/build/esm/type/union/union-type.d.mts +12 -0
  1133. package/node_modules/@sinclair/typebox/build/esm/type/union/union-type.mjs +1 -0
  1134. package/node_modules/@sinclair/typebox/build/esm/type/union/union.d.mts +6 -0
  1135. package/node_modules/@sinclair/typebox/build/esm/type/union/union.mjs +10 -0
  1136. package/node_modules/@sinclair/typebox/build/esm/type/unknown/index.d.mts +1 -0
  1137. package/node_modules/@sinclair/typebox/build/esm/type/unknown/index.mjs +1 -0
  1138. package/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.d.mts +8 -0
  1139. package/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs +6 -0
  1140. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.d.mts +1 -0
  1141. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.mjs +1 -0
  1142. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.d.mts +11 -0
  1143. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs +6 -0
  1144. package/node_modules/@sinclair/typebox/build/esm/type/void/index.d.mts +1 -0
  1145. package/node_modules/@sinclair/typebox/build/esm/type/void/index.mjs +1 -0
  1146. package/node_modules/@sinclair/typebox/build/esm/type/void/void.d.mts +9 -0
  1147. package/node_modules/@sinclair/typebox/build/esm/type/void/void.mjs +6 -0
  1148. package/node_modules/@sinclair/typebox/build/esm/value/assert/assert.d.mts +15 -0
  1149. package/node_modules/@sinclair/typebox/build/esm/value/assert/assert.mjs +49 -0
  1150. package/node_modules/@sinclair/typebox/build/esm/value/assert/index.d.mts +1 -0
  1151. package/node_modules/@sinclair/typebox/build/esm/value/assert/index.mjs +1 -0
  1152. package/node_modules/@sinclair/typebox/build/esm/value/cast/cast.d.mts +11 -0
  1153. package/node_modules/@sinclair/typebox/build/esm/value/cast/cast.mjs +235 -0
  1154. package/node_modules/@sinclair/typebox/build/esm/value/cast/index.d.mts +1 -0
  1155. package/node_modules/@sinclair/typebox/build/esm/value/cast/index.mjs +1 -0
  1156. package/node_modules/@sinclair/typebox/build/esm/value/check/check.d.mts +11 -0
  1157. package/node_modules/@sinclair/typebox/build/esm/value/check/check.mjs +470 -0
  1158. package/node_modules/@sinclair/typebox/build/esm/value/check/index.d.mts +1 -0
  1159. package/node_modules/@sinclair/typebox/build/esm/value/check/index.mjs +1 -0
  1160. package/node_modules/@sinclair/typebox/build/esm/value/clean/clean.d.mts +5 -0
  1161. package/node_modules/@sinclair/typebox/build/esm/value/clean/clean.mjs +145 -0
  1162. package/node_modules/@sinclair/typebox/build/esm/value/clean/index.d.mts +1 -0
  1163. package/node_modules/@sinclair/typebox/build/esm/value/clean/index.mjs +1 -0
  1164. package/node_modules/@sinclair/typebox/build/esm/value/clone/clone.d.mts +2 -0
  1165. package/node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs +56 -0
  1166. package/node_modules/@sinclair/typebox/build/esm/value/clone/index.d.mts +1 -0
  1167. package/node_modules/@sinclair/typebox/build/esm/value/clone/index.mjs +1 -0
  1168. package/node_modules/@sinclair/typebox/build/esm/value/convert/convert.d.mts +5 -0
  1169. package/node_modules/@sinclair/typebox/build/esm/value/convert/convert.mjs +260 -0
  1170. package/node_modules/@sinclair/typebox/build/esm/value/convert/index.d.mts +1 -0
  1171. package/node_modules/@sinclair/typebox/build/esm/value/convert/index.mjs +1 -0
  1172. package/node_modules/@sinclair/typebox/build/esm/value/create/create.d.mts +11 -0
  1173. package/node_modules/@sinclair/typebox/build/esm/value/create/create.mjs +468 -0
  1174. package/node_modules/@sinclair/typebox/build/esm/value/create/index.d.mts +1 -0
  1175. package/node_modules/@sinclair/typebox/build/esm/value/create/index.mjs +1 -0
  1176. package/node_modules/@sinclair/typebox/build/esm/value/decode/decode.d.mts +6 -0
  1177. package/node_modules/@sinclair/typebox/build/esm/value/decode/decode.mjs +10 -0
  1178. package/node_modules/@sinclair/typebox/build/esm/value/decode/index.d.mts +1 -0
  1179. package/node_modules/@sinclair/typebox/build/esm/value/decode/index.mjs +1 -0
  1180. package/node_modules/@sinclair/typebox/build/esm/value/default/default.d.mts +5 -0
  1181. package/node_modules/@sinclair/typebox/build/esm/value/default/default.mjs +172 -0
  1182. package/node_modules/@sinclair/typebox/build/esm/value/default/index.d.mts +1 -0
  1183. package/node_modules/@sinclair/typebox/build/esm/value/default/index.mjs +1 -0
  1184. package/node_modules/@sinclair/typebox/build/esm/value/delta/delta.d.mts +32 -0
  1185. package/node_modules/@sinclair/typebox/build/esm/value/delta/delta.mjs +171 -0
  1186. package/node_modules/@sinclair/typebox/build/esm/value/delta/index.d.mts +1 -0
  1187. package/node_modules/@sinclair/typebox/build/esm/value/delta/index.mjs +1 -0
  1188. package/node_modules/@sinclair/typebox/build/esm/value/deref/deref.d.mts +12 -0
  1189. package/node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs +29 -0
  1190. package/node_modules/@sinclair/typebox/build/esm/value/deref/index.d.mts +1 -0
  1191. package/node_modules/@sinclair/typebox/build/esm/value/deref/index.mjs +1 -0
  1192. package/node_modules/@sinclair/typebox/build/esm/value/encode/encode.d.mts +6 -0
  1193. package/node_modules/@sinclair/typebox/build/esm/value/encode/encode.mjs +11 -0
  1194. package/node_modules/@sinclair/typebox/build/esm/value/encode/index.d.mts +1 -0
  1195. package/node_modules/@sinclair/typebox/build/esm/value/encode/index.mjs +1 -0
  1196. package/node_modules/@sinclair/typebox/build/esm/value/equal/equal.d.mts +2 -0
  1197. package/node_modules/@sinclair/typebox/build/esm/value/equal/equal.mjs +46 -0
  1198. package/node_modules/@sinclair/typebox/build/esm/value/equal/index.d.mts +1 -0
  1199. package/node_modules/@sinclair/typebox/build/esm/value/equal/index.mjs +1 -0
  1200. package/node_modules/@sinclair/typebox/build/esm/value/guard/guard.d.mts +74 -0
  1201. package/node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs +158 -0
  1202. package/node_modules/@sinclair/typebox/build/esm/value/guard/index.d.mts +1 -0
  1203. package/node_modules/@sinclair/typebox/build/esm/value/guard/index.mjs +1 -0
  1204. package/node_modules/@sinclair/typebox/build/esm/value/hash/hash.d.mts +7 -0
  1205. package/node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs +146 -0
  1206. package/node_modules/@sinclair/typebox/build/esm/value/hash/index.d.mts +1 -0
  1207. package/node_modules/@sinclair/typebox/build/esm/value/hash/index.mjs +1 -0
  1208. package/node_modules/@sinclair/typebox/build/esm/value/index.d.mts +20 -0
  1209. package/node_modules/@sinclair/typebox/build/esm/value/index.mjs +32 -0
  1210. package/node_modules/@sinclair/typebox/build/esm/value/mutate/index.d.mts +1 -0
  1211. package/node_modules/@sinclair/typebox/build/esm/value/mutate/index.mjs +1 -0
  1212. package/node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.d.mts +9 -0
  1213. package/node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.mjs +98 -0
  1214. package/node_modules/@sinclair/typebox/build/esm/value/parse/index.d.mts +1 -0
  1215. package/node_modules/@sinclair/typebox/build/esm/value/parse/index.mjs +1 -0
  1216. package/node_modules/@sinclair/typebox/build/esm/value/parse/parse.d.mts +22 -0
  1217. package/node_modules/@sinclair/typebox/build/esm/value/parse/parse.mjs +81 -0
  1218. package/node_modules/@sinclair/typebox/build/esm/value/pointer/index.d.mts +1 -0
  1219. package/node_modules/@sinclair/typebox/build/esm/value/pointer/index.mjs +1 -0
  1220. package/node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.d.mts +22 -0
  1221. package/node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.mjs +115 -0
  1222. package/node_modules/@sinclair/typebox/build/esm/value/transform/decode.d.mts +22 -0
  1223. package/node_modules/@sinclair/typebox/build/esm/value/transform/decode.mjs +207 -0
  1224. package/node_modules/@sinclair/typebox/build/esm/value/transform/encode.d.mts +23 -0
  1225. package/node_modules/@sinclair/typebox/build/esm/value/transform/encode.mjs +218 -0
  1226. package/node_modules/@sinclair/typebox/build/esm/value/transform/has.d.mts +3 -0
  1227. package/node_modules/@sinclair/typebox/build/esm/value/transform/has.mjs +129 -0
  1228. package/node_modules/@sinclair/typebox/build/esm/value/transform/index.d.mts +3 -0
  1229. package/node_modules/@sinclair/typebox/build/esm/value/transform/index.mjs +3 -0
  1230. package/node_modules/@sinclair/typebox/build/esm/value/value/index.d.mts +1 -0
  1231. package/node_modules/@sinclair/typebox/build/esm/value/value/index.mjs +1 -0
  1232. package/node_modules/@sinclair/typebox/build/esm/value/value/value.d.mts +16 -0
  1233. package/node_modules/@sinclair/typebox/build/esm/value/value/value.mjs +16 -0
  1234. package/node_modules/@sinclair/typebox/compiler/package.json +4 -0
  1235. package/node_modules/@sinclair/typebox/errors/package.json +4 -0
  1236. package/node_modules/@sinclair/typebox/license +25 -0
  1237. package/node_modules/@sinclair/typebox/package.json +116 -0
  1238. package/node_modules/@sinclair/typebox/parser/package.json +4 -0
  1239. package/node_modules/@sinclair/typebox/readme.md +1865 -0
  1240. package/node_modules/@sinclair/typebox/syntax/package.json +4 -0
  1241. package/node_modules/@sinclair/typebox/system/package.json +4 -0
  1242. package/node_modules/@sinclair/typebox/type/package.json +4 -0
  1243. package/node_modules/@sinclair/typebox/value/package.json +4 -0
  1244. package/node_modules/@styrene-lab/pi-agent-core/README.md +446 -0
  1245. package/node_modules/@styrene-lab/pi-agent-core/dist/agent-loop.d.ts +24 -0
  1246. package/node_modules/@styrene-lab/pi-agent-core/dist/agent-loop.d.ts.map +1 -0
  1247. package/node_modules/@styrene-lab/pi-agent-core/dist/agent-loop.js +447 -0
  1248. package/node_modules/@styrene-lab/pi-agent-core/dist/agent-loop.js.map +1 -0
  1249. package/node_modules/@styrene-lab/pi-agent-core/dist/agent.d.ts +171 -0
  1250. package/node_modules/@styrene-lab/pi-agent-core/dist/agent.d.ts.map +1 -0
  1251. package/node_modules/@styrene-lab/pi-agent-core/dist/agent.js +417 -0
  1252. package/node_modules/@styrene-lab/pi-agent-core/dist/agent.js.map +1 -0
  1253. package/node_modules/@styrene-lab/pi-agent-core/dist/index.d.ts +5 -0
  1254. package/node_modules/@styrene-lab/pi-agent-core/dist/index.d.ts.map +1 -0
  1255. package/node_modules/@styrene-lab/pi-agent-core/dist/index.js +9 -0
  1256. package/node_modules/@styrene-lab/pi-agent-core/dist/index.js.map +1 -0
  1257. package/node_modules/@styrene-lab/pi-agent-core/dist/proxy.d.ts +85 -0
  1258. package/node_modules/@styrene-lab/pi-agent-core/dist/proxy.d.ts.map +1 -0
  1259. package/node_modules/@styrene-lab/pi-agent-core/dist/proxy.js +268 -0
  1260. package/node_modules/@styrene-lab/pi-agent-core/dist/proxy.js.map +1 -0
  1261. package/node_modules/@styrene-lab/pi-agent-core/dist/types.d.ts +286 -0
  1262. package/node_modules/@styrene-lab/pi-agent-core/dist/types.d.ts.map +1 -0
  1263. package/node_modules/@styrene-lab/pi-agent-core/dist/types.js +2 -0
  1264. package/node_modules/@styrene-lab/pi-agent-core/dist/types.js.map +1 -0
  1265. package/node_modules/@styrene-lab/pi-agent-core/package.json +44 -0
  1266. package/node_modules/@styrene-lab/pi-ai/README.md +1201 -0
  1267. package/node_modules/@styrene-lab/pi-ai/bedrock-provider.d.ts +1 -0
  1268. package/node_modules/@styrene-lab/pi-ai/bedrock-provider.js +1 -0
  1269. package/node_modules/@styrene-lab/pi-ai/dist/api-registry.d.ts +20 -0
  1270. package/node_modules/@styrene-lab/pi-ai/dist/api-registry.d.ts.map +1 -0
  1271. package/node_modules/@styrene-lab/pi-ai/dist/api-registry.js +44 -0
  1272. package/node_modules/@styrene-lab/pi-ai/dist/api-registry.js.map +1 -0
  1273. package/node_modules/@styrene-lab/pi-ai/dist/bedrock-provider.d.ts +5 -0
  1274. package/node_modules/@styrene-lab/pi-ai/dist/bedrock-provider.d.ts.map +1 -0
  1275. package/node_modules/@styrene-lab/pi-ai/dist/bedrock-provider.js +6 -0
  1276. package/node_modules/@styrene-lab/pi-ai/dist/bedrock-provider.js.map +1 -0
  1277. package/node_modules/@styrene-lab/pi-ai/dist/cli.d.ts +3 -0
  1278. package/node_modules/@styrene-lab/pi-ai/dist/cli.d.ts.map +1 -0
  1279. package/node_modules/@styrene-lab/pi-ai/dist/cli.js +116 -0
  1280. package/node_modules/@styrene-lab/pi-ai/dist/cli.js.map +1 -0
  1281. package/node_modules/@styrene-lab/pi-ai/dist/env-api-keys.d.ts +9 -0
  1282. package/node_modules/@styrene-lab/pi-ai/dist/env-api-keys.d.ts.map +1 -0
  1283. package/node_modules/@styrene-lab/pi-ai/dist/env-api-keys.js +110 -0
  1284. package/node_modules/@styrene-lab/pi-ai/dist/env-api-keys.js.map +1 -0
  1285. package/node_modules/@styrene-lab/pi-ai/dist/index.d.ts +23 -0
  1286. package/node_modules/@styrene-lab/pi-ai/dist/index.d.ts.map +1 -0
  1287. package/node_modules/@styrene-lab/pi-ai/dist/index.js +21 -0
  1288. package/node_modules/@styrene-lab/pi-ai/dist/index.js.map +1 -0
  1289. package/node_modules/@styrene-lab/pi-ai/dist/models.d.ts +24 -0
  1290. package/node_modules/@styrene-lab/pi-ai/dist/models.d.ts.map +1 -0
  1291. package/node_modules/@styrene-lab/pi-ai/dist/models.generated.d.ts +14058 -0
  1292. package/node_modules/@styrene-lab/pi-ai/dist/models.generated.d.ts.map +1 -0
  1293. package/node_modules/@styrene-lab/pi-ai/dist/models.generated.js +13846 -0
  1294. package/node_modules/@styrene-lab/pi-ai/dist/models.generated.js.map +1 -0
  1295. package/node_modules/@styrene-lab/pi-ai/dist/models.js +55 -0
  1296. package/node_modules/@styrene-lab/pi-ai/dist/models.js.map +1 -0
  1297. package/node_modules/@styrene-lab/pi-ai/dist/oauth.d.ts +2 -0
  1298. package/node_modules/@styrene-lab/pi-ai/dist/oauth.d.ts.map +1 -0
  1299. package/node_modules/@styrene-lab/pi-ai/dist/oauth.js +2 -0
  1300. package/node_modules/@styrene-lab/pi-ai/dist/oauth.js.map +1 -0
  1301. package/node_modules/@styrene-lab/pi-ai/dist/providers/amazon-bedrock.d.ts +15 -0
  1302. package/node_modules/@styrene-lab/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -0
  1303. package/node_modules/@styrene-lab/pi-ai/dist/providers/amazon-bedrock.js +610 -0
  1304. package/node_modules/@styrene-lab/pi-ai/dist/providers/amazon-bedrock.js.map +1 -0
  1305. package/node_modules/@styrene-lab/pi-ai/dist/providers/anthropic.d.ts +33 -0
  1306. package/node_modules/@styrene-lab/pi-ai/dist/providers/anthropic.d.ts.map +1 -0
  1307. package/node_modules/@styrene-lab/pi-ai/dist/providers/anthropic.js +753 -0
  1308. package/node_modules/@styrene-lab/pi-ai/dist/providers/anthropic.js.map +1 -0
  1309. package/node_modules/@styrene-lab/pi-ai/dist/providers/azure-openai-responses.d.ts +15 -0
  1310. package/node_modules/@styrene-lab/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -0
  1311. package/node_modules/@styrene-lab/pi-ai/dist/providers/azure-openai-responses.js +187 -0
  1312. package/node_modules/@styrene-lab/pi-ai/dist/providers/azure-openai-responses.js.map +1 -0
  1313. package/node_modules/@styrene-lab/pi-ai/dist/providers/github-copilot-headers.d.ts +8 -0
  1314. package/node_modules/@styrene-lab/pi-ai/dist/providers/github-copilot-headers.d.ts.map +1 -0
  1315. package/node_modules/@styrene-lab/pi-ai/dist/providers/github-copilot-headers.js +29 -0
  1316. package/node_modules/@styrene-lab/pi-ai/dist/providers/github-copilot-headers.js.map +1 -0
  1317. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-gemini-cli.d.ts +74 -0
  1318. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-gemini-cli.d.ts.map +1 -0
  1319. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-gemini-cli.js +757 -0
  1320. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-gemini-cli.js.map +1 -0
  1321. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-shared.d.ts +65 -0
  1322. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-shared.d.ts.map +1 -0
  1323. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-shared.js +300 -0
  1324. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-shared.js.map +1 -0
  1325. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-vertex.d.ts +15 -0
  1326. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-vertex.d.ts.map +1 -0
  1327. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-vertex.js +392 -0
  1328. package/node_modules/@styrene-lab/pi-ai/dist/providers/google-vertex.js.map +1 -0
  1329. package/node_modules/@styrene-lab/pi-ai/dist/providers/google.d.ts +13 -0
  1330. package/node_modules/@styrene-lab/pi-ai/dist/providers/google.d.ts.map +1 -0
  1331. package/node_modules/@styrene-lab/pi-ai/dist/providers/google.js +355 -0
  1332. package/node_modules/@styrene-lab/pi-ai/dist/providers/google.js.map +1 -0
  1333. package/node_modules/@styrene-lab/pi-ai/dist/providers/mistral.d.ts +22 -0
  1334. package/node_modules/@styrene-lab/pi-ai/dist/providers/mistral.d.ts.map +1 -0
  1335. package/node_modules/@styrene-lab/pi-ai/dist/providers/mistral.js +498 -0
  1336. package/node_modules/@styrene-lab/pi-ai/dist/providers/mistral.js.map +1 -0
  1337. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-codex-responses.d.ts +9 -0
  1338. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -0
  1339. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-codex-responses.js +741 -0
  1340. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-codex-responses.js.map +1 -0
  1341. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-completions.d.ts +15 -0
  1342. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-completions.d.ts.map +1 -0
  1343. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-completions.js +710 -0
  1344. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-completions.js.map +1 -0
  1345. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses-shared.d.ts +17 -0
  1346. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -0
  1347. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses-shared.js +447 -0
  1348. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses-shared.js.map +1 -0
  1349. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses.d.ts +13 -0
  1350. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses.d.ts.map +1 -0
  1351. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses.js +201 -0
  1352. package/node_modules/@styrene-lab/pi-ai/dist/providers/openai-responses.js.map +1 -0
  1353. package/node_modules/@styrene-lab/pi-ai/dist/providers/register-builtins.d.ts +11 -0
  1354. package/node_modules/@styrene-lab/pi-ai/dist/providers/register-builtins.d.ts.map +1 -0
  1355. package/node_modules/@styrene-lab/pi-ai/dist/providers/register-builtins.js +138 -0
  1356. package/node_modules/@styrene-lab/pi-ai/dist/providers/register-builtins.js.map +1 -0
  1357. package/node_modules/@styrene-lab/pi-ai/dist/providers/simple-options.d.ts +8 -0
  1358. package/node_modules/@styrene-lab/pi-ai/dist/providers/simple-options.d.ts.map +1 -0
  1359. package/node_modules/@styrene-lab/pi-ai/dist/providers/simple-options.js +35 -0
  1360. package/node_modules/@styrene-lab/pi-ai/dist/providers/simple-options.js.map +1 -0
  1361. package/node_modules/@styrene-lab/pi-ai/dist/providers/transform-messages.d.ts +8 -0
  1362. package/node_modules/@styrene-lab/pi-ai/dist/providers/transform-messages.d.ts.map +1 -0
  1363. package/node_modules/@styrene-lab/pi-ai/dist/providers/transform-messages.js +155 -0
  1364. package/node_modules/@styrene-lab/pi-ai/dist/providers/transform-messages.js.map +1 -0
  1365. package/node_modules/@styrene-lab/pi-ai/dist/stream.d.ts +8 -0
  1366. package/node_modules/@styrene-lab/pi-ai/dist/stream.d.ts.map +1 -0
  1367. package/node_modules/@styrene-lab/pi-ai/dist/stream.js +27 -0
  1368. package/node_modules/@styrene-lab/pi-ai/dist/stream.js.map +1 -0
  1369. package/node_modules/@styrene-lab/pi-ai/dist/types.d.ts +293 -0
  1370. package/node_modules/@styrene-lab/pi-ai/dist/types.d.ts.map +1 -0
  1371. package/node_modules/@styrene-lab/pi-ai/dist/types.js +2 -0
  1372. package/node_modules/@styrene-lab/pi-ai/dist/types.js.map +1 -0
  1373. package/node_modules/@styrene-lab/pi-ai/dist/utils/event-stream.d.ts +21 -0
  1374. package/node_modules/@styrene-lab/pi-ai/dist/utils/event-stream.d.ts.map +1 -0
  1375. package/node_modules/@styrene-lab/pi-ai/dist/utils/event-stream.js +81 -0
  1376. package/node_modules/@styrene-lab/pi-ai/dist/utils/event-stream.js.map +1 -0
  1377. package/node_modules/@styrene-lab/pi-ai/dist/utils/hash.d.ts +3 -0
  1378. package/node_modules/@styrene-lab/pi-ai/dist/utils/hash.d.ts.map +1 -0
  1379. package/node_modules/@styrene-lab/pi-ai/dist/utils/hash.js +14 -0
  1380. package/node_modules/@styrene-lab/pi-ai/dist/utils/hash.js.map +1 -0
  1381. package/node_modules/@styrene-lab/pi-ai/dist/utils/json-parse.d.ts +9 -0
  1382. package/node_modules/@styrene-lab/pi-ai/dist/utils/json-parse.d.ts.map +1 -0
  1383. package/node_modules/@styrene-lab/pi-ai/dist/utils/json-parse.js +29 -0
  1384. package/node_modules/@styrene-lab/pi-ai/dist/utils/json-parse.js.map +1 -0
  1385. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/anthropic.d.ts +25 -0
  1386. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -0
  1387. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/anthropic.js +343 -0
  1388. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/anthropic.js.map +1 -0
  1389. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/fetch-utils.d.ts +22 -0
  1390. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/fetch-utils.d.ts.map +1 -0
  1391. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/fetch-utils.js +42 -0
  1392. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/fetch-utils.js.map +1 -0
  1393. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/github-copilot.d.ts +30 -0
  1394. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -0
  1395. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/github-copilot.js +292 -0
  1396. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -0
  1397. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-antigravity.d.ts +26 -0
  1398. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -0
  1399. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-antigravity.js +374 -0
  1400. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -0
  1401. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts +26 -0
  1402. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -0
  1403. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-gemini-cli.js +479 -0
  1404. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -0
  1405. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/index.d.ts +61 -0
  1406. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/index.d.ts.map +1 -0
  1407. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/index.js +131 -0
  1408. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/index.js.map +1 -0
  1409. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/openai-codex.d.ts +35 -0
  1410. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -0
  1411. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/openai-codex.js +382 -0
  1412. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -0
  1413. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/pkce.d.ts +13 -0
  1414. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/pkce.d.ts.map +1 -0
  1415. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/pkce.js +31 -0
  1416. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/pkce.js.map +1 -0
  1417. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/types.d.ts +47 -0
  1418. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/types.d.ts.map +1 -0
  1419. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/types.js +2 -0
  1420. package/node_modules/@styrene-lab/pi-ai/dist/utils/oauth/types.js.map +1 -0
  1421. package/node_modules/@styrene-lab/pi-ai/dist/utils/overflow.d.ts +52 -0
  1422. package/node_modules/@styrene-lab/pi-ai/dist/utils/overflow.d.ts.map +1 -0
  1423. package/node_modules/@styrene-lab/pi-ai/dist/utils/overflow.js +117 -0
  1424. package/node_modules/@styrene-lab/pi-ai/dist/utils/overflow.js.map +1 -0
  1425. package/node_modules/@styrene-lab/pi-ai/dist/utils/sanitize-unicode.d.ts +22 -0
  1426. package/node_modules/@styrene-lab/pi-ai/dist/utils/sanitize-unicode.d.ts.map +1 -0
  1427. package/node_modules/@styrene-lab/pi-ai/dist/utils/sanitize-unicode.js +26 -0
  1428. package/node_modules/@styrene-lab/pi-ai/dist/utils/sanitize-unicode.js.map +1 -0
  1429. package/node_modules/@styrene-lab/pi-ai/dist/utils/typebox-helpers.d.ts +17 -0
  1430. package/node_modules/@styrene-lab/pi-ai/dist/utils/typebox-helpers.d.ts.map +1 -0
  1431. package/node_modules/@styrene-lab/pi-ai/dist/utils/typebox-helpers.js +21 -0
  1432. package/node_modules/@styrene-lab/pi-ai/dist/utils/typebox-helpers.js.map +1 -0
  1433. package/node_modules/@styrene-lab/pi-ai/dist/utils/validation.d.ts +18 -0
  1434. package/node_modules/@styrene-lab/pi-ai/dist/utils/validation.d.ts.map +1 -0
  1435. package/node_modules/@styrene-lab/pi-ai/dist/utils/validation.js +72 -0
  1436. package/node_modules/@styrene-lab/pi-ai/dist/utils/validation.js.map +1 -0
  1437. package/node_modules/@styrene-lab/pi-ai/package.json +80 -0
  1438. package/node_modules/@styrene-lab/pi-coding-agent/CHANGELOG.md +3105 -0
  1439. package/node_modules/@styrene-lab/pi-coding-agent/README.md +583 -0
  1440. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/args.d.ts +48 -0
  1441. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/args.d.ts.map +1 -0
  1442. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/args.js +300 -0
  1443. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/args.js.map +1 -0
  1444. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/config-selector.d.ts +14 -0
  1445. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/config-selector.d.ts.map +1 -0
  1446. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/config-selector.js +31 -0
  1447. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/config-selector.js.map +1 -0
  1448. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/file-processor.d.ts +15 -0
  1449. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -0
  1450. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/file-processor.js +79 -0
  1451. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/file-processor.js.map +1 -0
  1452. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/list-models.d.ts +9 -0
  1453. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/list-models.d.ts.map +1 -0
  1454. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/list-models.js +92 -0
  1455. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/list-models.js.map +1 -0
  1456. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/session-picker.d.ts +9 -0
  1457. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/session-picker.d.ts.map +1 -0
  1458. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/session-picker.js +34 -0
  1459. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli/session-picker.js.map +1 -0
  1460. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli.d.ts +3 -0
  1461. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli.d.ts.map +1 -0
  1462. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli.js +16 -0
  1463. package/node_modules/@styrene-lab/pi-coding-agent/dist/cli.js.map +1 -0
  1464. package/node_modules/@styrene-lab/pi-coding-agent/dist/config.d.ts +68 -0
  1465. package/node_modules/@styrene-lab/pi-coding-agent/dist/config.d.ts.map +1 -0
  1466. package/node_modules/@styrene-lab/pi-coding-agent/dist/config.js +203 -0
  1467. package/node_modules/@styrene-lab/pi-coding-agent/dist/config.js.map +1 -0
  1468. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/agent-session.d.ts +591 -0
  1469. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -0
  1470. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/agent-session.js +2542 -0
  1471. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/agent-session.js.map +1 -0
  1472. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/auth-storage.d.ts +130 -0
  1473. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -0
  1474. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/auth-storage.js +419 -0
  1475. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/auth-storage.js.map +1 -0
  1476. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/bash-executor.d.ts +47 -0
  1477. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/bash-executor.d.ts.map +1 -0
  1478. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/bash-executor.js +212 -0
  1479. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/bash-executor.js.map +1 -0
  1480. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts +86 -0
  1481. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  1482. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/branch-summarization.js +242 -0
  1483. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -0
  1484. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/compaction.d.ts +121 -0
  1485. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -0
  1486. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/compaction.js +610 -0
  1487. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -0
  1488. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/index.d.ts +7 -0
  1489. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/index.d.ts.map +1 -0
  1490. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/index.js +7 -0
  1491. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/index.js.map +1 -0
  1492. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/utils.d.ts +38 -0
  1493. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -0
  1494. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/utils.js +153 -0
  1495. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/compaction/utils.js.map +1 -0
  1496. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/defaults.d.ts +3 -0
  1497. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/defaults.d.ts.map +1 -0
  1498. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/defaults.js +2 -0
  1499. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/defaults.js.map +1 -0
  1500. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/diagnostics.d.ts +15 -0
  1501. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/diagnostics.d.ts.map +1 -0
  1502. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/diagnostics.js +2 -0
  1503. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/diagnostics.js.map +1 -0
  1504. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/event-bus.d.ts +9 -0
  1505. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/event-bus.d.ts.map +1 -0
  1506. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/event-bus.js +25 -0
  1507. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/event-bus.js.map +1 -0
  1508. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/exec.d.ts +29 -0
  1509. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/exec.d.ts.map +1 -0
  1510. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/exec.js +71 -0
  1511. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/exec.js.map +1 -0
  1512. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts +22 -0
  1513. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  1514. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/ansi-to-html.js +249 -0
  1515. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/ansi-to-html.js.map +1 -0
  1516. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/index.d.ts +37 -0
  1517. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/index.d.ts.map +1 -0
  1518. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/index.js +223 -0
  1519. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/index.js.map +1 -0
  1520. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/template.css +971 -0
  1521. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/template.html +54 -0
  1522. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/template.js +1583 -0
  1523. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts +38 -0
  1524. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  1525. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/tool-renderer.js +70 -0
  1526. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/tool-renderer.js.map +1 -0
  1527. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/vendor/highlight.min.js +1213 -0
  1528. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/export-html/vendor/marked.min.js +6 -0
  1529. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/index.d.ts +11 -0
  1530. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -0
  1531. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/index.js +9 -0
  1532. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/index.js.map +1 -0
  1533. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/loader.d.ts +25 -0
  1534. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -0
  1535. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/loader.js +430 -0
  1536. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/loader.js.map +1 -0
  1537. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/runner.d.ts +152 -0
  1538. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -0
  1539. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/runner.js +688 -0
  1540. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/runner.js.map +1 -0
  1541. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/types.d.ts +1048 -0
  1542. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -0
  1543. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/types.js +35 -0
  1544. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/types.js.map +1 -0
  1545. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/wrapper.d.ts +20 -0
  1546. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/wrapper.d.ts.map +1 -0
  1547. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/wrapper.js +28 -0
  1548. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/extensions/wrapper.js.map +1 -0
  1549. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/footer-data-provider.d.ts +32 -0
  1550. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -0
  1551. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/footer-data-provider.js +134 -0
  1552. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -0
  1553. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/index.d.ts +9 -0
  1554. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/index.d.ts.map +1 -0
  1555. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/index.js +9 -0
  1556. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/index.js.map +1 -0
  1557. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/keybindings.d.ts +55 -0
  1558. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -0
  1559. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/keybindings.js +153 -0
  1560. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/keybindings.js.map +1 -0
  1561. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/messages.d.ts +77 -0
  1562. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/messages.d.ts.map +1 -0
  1563. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/messages.js +123 -0
  1564. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/messages.js.map +1 -0
  1565. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-registry.d.ts +113 -0
  1566. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -0
  1567. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-registry.js +554 -0
  1568. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-registry.js.map +1 -0
  1569. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-resolver.d.ts +104 -0
  1570. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -0
  1571. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-resolver.js +462 -0
  1572. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/model-resolver.js.map +1 -0
  1573. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/package-manager.d.ts +155 -0
  1574. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -0
  1575. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/package-manager.js +1480 -0
  1576. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/package-manager.js.map +1 -0
  1577. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/prompt-templates.d.ts +50 -0
  1578. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -0
  1579. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/prompt-templates.js +251 -0
  1580. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/prompt-templates.js.map +1 -0
  1581. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resolve-config-value.d.ts +17 -0
  1582. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resolve-config-value.d.ts.map +1 -0
  1583. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resolve-config-value.js +94 -0
  1584. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resolve-config-value.js.map +1 -0
  1585. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resource-loader.d.ts +184 -0
  1586. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -0
  1587. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resource-loader.js +670 -0
  1588. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/resource-loader.js.map +1 -0
  1589. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/sdk.d.ts +90 -0
  1590. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/sdk.d.ts.map +1 -0
  1591. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/sdk.js +242 -0
  1592. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/sdk.js.map +1 -0
  1593. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/session-manager.d.ts +324 -0
  1594. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -0
  1595. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/session-manager.js +1098 -0
  1596. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/session-manager.js.map +1 -0
  1597. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/settings-manager.d.ts +235 -0
  1598. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -0
  1599. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/settings-manager.js +699 -0
  1600. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/settings-manager.js.map +1 -0
  1601. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/skills.d.ts +59 -0
  1602. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/skills.d.ts.map +1 -0
  1603. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/skills.js +385 -0
  1604. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/skills.js.map +1 -0
  1605. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/slash-commands.d.ts +15 -0
  1606. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -0
  1607. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/slash-commands.js +22 -0
  1608. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/slash-commands.js.map +1 -0
  1609. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/system-prompt.d.ts +28 -0
  1610. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -0
  1611. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/system-prompt.js +150 -0
  1612. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/system-prompt.js.map +1 -0
  1613. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/timings.d.ts +7 -0
  1614. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/timings.d.ts.map +1 -0
  1615. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/timings.js +25 -0
  1616. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/timings.js.map +1 -0
  1617. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/bash.d.ts +59 -0
  1618. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -0
  1619. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/bash.js +249 -0
  1620. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/bash.js.map +1 -0
  1621. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit-diff.d.ts +63 -0
  1622. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit-diff.d.ts.map +1 -0
  1623. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit-diff.js +243 -0
  1624. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -0
  1625. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit.d.ts +39 -0
  1626. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -0
  1627. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit.js +146 -0
  1628. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/edit.js.map +1 -0
  1629. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/find.d.ts +39 -0
  1630. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -0
  1631. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/find.js +209 -0
  1632. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/find.js.map +1 -0
  1633. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/grep.d.ts +45 -0
  1634. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -0
  1635. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/grep.js +239 -0
  1636. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/grep.js.map +1 -0
  1637. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/index.d.ts +73 -0
  1638. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -0
  1639. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/index.js +61 -0
  1640. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/index.js.map +1 -0
  1641. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/ls.d.ts +40 -0
  1642. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -0
  1643. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/ls.js +118 -0
  1644. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/ls.js.map +1 -0
  1645. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/path-utils.d.ts +8 -0
  1646. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -0
  1647. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/path-utils.js +81 -0
  1648. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -0
  1649. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/read.d.ts +39 -0
  1650. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -0
  1651. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/read.js +166 -0
  1652. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/read.js.map +1 -0
  1653. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/truncate.d.ts +70 -0
  1654. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/truncate.d.ts.map +1 -0
  1655. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/truncate.js +205 -0
  1656. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/truncate.js.map +1 -0
  1657. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/write.d.ts +29 -0
  1658. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -0
  1659. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/write.js +78 -0
  1660. package/node_modules/@styrene-lab/pi-coding-agent/dist/core/tools/write.js.map +1 -0
  1661. package/node_modules/@styrene-lab/pi-coding-agent/dist/index.d.ts +27 -0
  1662. package/node_modules/@styrene-lab/pi-coding-agent/dist/index.d.ts.map +1 -0
  1663. package/node_modules/@styrene-lab/pi-coding-agent/dist/index.js +42 -0
  1664. package/node_modules/@styrene-lab/pi-coding-agent/dist/index.js.map +1 -0
  1665. package/node_modules/@styrene-lab/pi-coding-agent/dist/main.d.ts +8 -0
  1666. package/node_modules/@styrene-lab/pi-coding-agent/dist/main.d.ts.map +1 -0
  1667. package/node_modules/@styrene-lab/pi-coding-agent/dist/main.js +700 -0
  1668. package/node_modules/@styrene-lab/pi-coding-agent/dist/main.js.map +1 -0
  1669. package/node_modules/@styrene-lab/pi-coding-agent/dist/migrations.d.ts +33 -0
  1670. package/node_modules/@styrene-lab/pi-coding-agent/dist/migrations.d.ts.map +1 -0
  1671. package/node_modules/@styrene-lab/pi-coding-agent/dist/migrations.js +261 -0
  1672. package/node_modules/@styrene-lab/pi-coding-agent/dist/migrations.js.map +1 -0
  1673. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/index.d.ts +9 -0
  1674. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/index.d.ts.map +1 -0
  1675. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/index.js +8 -0
  1676. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/index.js.map +1 -0
  1677. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/armin.d.ts +34 -0
  1678. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/armin.d.ts.map +1 -0
  1679. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/armin.js +333 -0
  1680. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/armin.js.map +1 -0
  1681. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +16 -0
  1682. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  1683. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +96 -0
  1684. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -0
  1685. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts +35 -0
  1686. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  1687. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +162 -0
  1688. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -0
  1689. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  1690. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  1691. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bordered-loader.js +51 -0
  1692. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  1693. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  1694. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  1695. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.js +44 -0
  1696. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  1697. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  1698. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  1699. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  1700. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  1701. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts +71 -0
  1702. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  1703. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/config-selector.js +479 -0
  1704. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/config-selector.js.map +1 -0
  1705. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  1706. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  1707. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js +33 -0
  1708. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  1709. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  1710. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  1711. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-editor.js +70 -0
  1712. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-editor.js.map +1 -0
  1713. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts +20 -0
  1714. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  1715. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-message.js +79 -0
  1716. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/custom-message.js.map +1 -0
  1717. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  1718. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  1719. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/daxnuts.js +140 -0
  1720. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/daxnuts.js.map +1 -0
  1721. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/diff.d.ts +12 -0
  1722. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/diff.d.ts.map +1 -0
  1723. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/diff.js +133 -0
  1724. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/diff.js.map +1 -0
  1725. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  1726. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  1727. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js +21 -0
  1728. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  1729. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  1730. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  1731. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +111 -0
  1732. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-editor.js.map +1 -0
  1733. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts +23 -0
  1734. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  1735. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-input.js +61 -0
  1736. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-input.js.map +1 -0
  1737. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts +24 -0
  1738. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  1739. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-selector.js +78 -0
  1740. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/extension-selector.js.map +1 -0
  1741. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/footer.d.ts +26 -0
  1742. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -0
  1743. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/footer.js +198 -0
  1744. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -0
  1745. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/index.d.ts +32 -0
  1746. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -0
  1747. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/index.js +33 -0
  1748. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -0
  1749. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.d.ts +41 -0
  1750. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  1751. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.js +61 -0
  1752. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  1753. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +42 -0
  1754. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  1755. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +145 -0
  1756. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -0
  1757. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +47 -0
  1758. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  1759. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/model-selector.js +271 -0
  1760. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -0
  1761. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
  1762. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  1763. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/oauth-selector.js +97 -0
  1764. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  1765. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
  1766. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  1767. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js +275 -0
  1768. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  1769. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  1770. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  1771. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js +155 -0
  1772. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  1773. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts +95 -0
  1774. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  1775. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector.js +851 -0
  1776. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/session-selector.js.map +1 -0
  1777. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +58 -0
  1778. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  1779. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +301 -0
  1780. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -0
  1781. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  1782. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  1783. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js +39 -0
  1784. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  1785. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  1786. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  1787. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  1788. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  1789. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  1790. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  1791. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/theme-selector.js +50 -0
  1792. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/theme-selector.js.map +1 -0
  1793. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  1794. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  1795. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js +51 -0
  1796. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  1797. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +89 -0
  1798. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  1799. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +976 -0
  1800. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -0
  1801. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts +87 -0
  1802. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  1803. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tree-selector.js +1040 -0
  1804. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/tree-selector.js.map +1 -0
  1805. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  1806. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  1807. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message-selector.js +113 -0
  1808. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  1809. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts +9 -0
  1810. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  1811. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message.js +27 -0
  1812. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -0
  1813. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  1814. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  1815. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js +33 -0
  1816. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  1817. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +317 -0
  1818. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  1819. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/interactive-mode.js +3832 -0
  1820. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -0
  1821. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/dark.json +85 -0
  1822. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/light.json +84 -0
  1823. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/theme-schema.json +335 -0
  1824. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +78 -0
  1825. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  1826. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/theme.js +957 -0
  1827. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -0
  1828. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/print-mode.d.ts +28 -0
  1829. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -0
  1830. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/print-mode.js +101 -0
  1831. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/print-mode.js.map +1 -0
  1832. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/jsonl.d.ts +17 -0
  1833. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/jsonl.d.ts.map +1 -0
  1834. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/jsonl.js +49 -0
  1835. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/jsonl.js.map +1 -0
  1836. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +217 -0
  1837. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  1838. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-client.js +401 -0
  1839. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -0
  1840. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts +20 -0
  1841. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  1842. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-mode.js +509 -0
  1843. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -0
  1844. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +409 -0
  1845. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1846. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-types.js +8 -0
  1847. package/node_modules/@styrene-lab/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -0
  1848. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/changelog.d.ts +21 -0
  1849. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -0
  1850. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/changelog.js +87 -0
  1851. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/changelog.js.map +1 -0
  1852. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-image.d.ts +11 -0
  1853. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -0
  1854. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-image.js +286 -0
  1855. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -0
  1856. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-native.d.ts +8 -0
  1857. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -0
  1858. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-native.js +20 -0
  1859. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -0
  1860. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard.d.ts +2 -0
  1861. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -0
  1862. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard.js +68 -0
  1863. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/clipboard.js.map +1 -0
  1864. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/exif-orientation.d.ts +5 -0
  1865. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/exif-orientation.d.ts.map +1 -0
  1866. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/exif-orientation.js +158 -0
  1867. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/exif-orientation.js.map +1 -0
  1868. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/frontmatter.d.ts +8 -0
  1869. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/frontmatter.d.ts.map +1 -0
  1870. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/frontmatter.js +26 -0
  1871. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/frontmatter.js.map +1 -0
  1872. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/git.d.ts +26 -0
  1873. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/git.d.ts.map +1 -0
  1874. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/git.js +163 -0
  1875. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/git.js.map +1 -0
  1876. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-convert.d.ts +9 -0
  1877. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-convert.d.ts.map +1 -0
  1878. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-convert.js +39 -0
  1879. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-convert.js.map +1 -0
  1880. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-resize.d.ts +36 -0
  1881. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -0
  1882. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-resize.js +186 -0
  1883. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/image-resize.js.map +1 -0
  1884. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/mime.d.ts +2 -0
  1885. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/mime.d.ts.map +1 -0
  1886. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/mime.js +26 -0
  1887. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/mime.js.map +1 -0
  1888. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/photon.d.ts +21 -0
  1889. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/photon.d.ts.map +1 -0
  1890. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/photon.js +121 -0
  1891. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/photon.js.map +1 -0
  1892. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/shell.d.ts +26 -0
  1893. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/shell.d.ts.map +1 -0
  1894. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/shell.js +186 -0
  1895. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/shell.js.map +1 -0
  1896. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/sleep.d.ts +5 -0
  1897. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/sleep.d.ts.map +1 -0
  1898. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/sleep.js +17 -0
  1899. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/sleep.js.map +1 -0
  1900. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/tools-manager.d.ts +3 -0
  1901. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -0
  1902. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/tools-manager.js +252 -0
  1903. package/node_modules/@styrene-lab/pi-coding-agent/dist/utils/tools-manager.js.map +1 -0
  1904. package/node_modules/@styrene-lab/pi-coding-agent/docs/compaction.md +392 -0
  1905. package/node_modules/@styrene-lab/pi-coding-agent/docs/custom-provider.md +596 -0
  1906. package/node_modules/@styrene-lab/pi-coding-agent/docs/development.md +69 -0
  1907. package/node_modules/@styrene-lab/pi-coding-agent/docs/extensions.md +2034 -0
  1908. package/node_modules/@styrene-lab/pi-coding-agent/docs/images/doom-extension.png +0 -0
  1909. package/node_modules/@styrene-lab/pi-coding-agent/docs/images/exy.png +0 -0
  1910. package/node_modules/@styrene-lab/pi-coding-agent/docs/images/interactive-mode.png +0 -0
  1911. package/node_modules/@styrene-lab/pi-coding-agent/docs/images/tree-view.png +0 -0
  1912. package/node_modules/@styrene-lab/pi-coding-agent/docs/json.md +79 -0
  1913. package/node_modules/@styrene-lab/pi-coding-agent/docs/keybindings.md +182 -0
  1914. package/node_modules/@styrene-lab/pi-coding-agent/docs/models.md +309 -0
  1915. package/node_modules/@styrene-lab/pi-coding-agent/docs/packages.md +218 -0
  1916. package/node_modules/@styrene-lab/pi-coding-agent/docs/prompt-templates.md +67 -0
  1917. package/node_modules/@styrene-lab/pi-coding-agent/docs/providers.md +188 -0
  1918. package/node_modules/@styrene-lab/pi-coding-agent/docs/rpc.md +1354 -0
  1919. package/node_modules/@styrene-lab/pi-coding-agent/docs/sdk.md +968 -0
  1920. package/node_modules/@styrene-lab/pi-coding-agent/docs/session.md +412 -0
  1921. package/node_modules/@styrene-lab/pi-coding-agent/docs/settings.md +234 -0
  1922. package/node_modules/@styrene-lab/pi-coding-agent/docs/shell-aliases.md +13 -0
  1923. package/node_modules/@styrene-lab/pi-coding-agent/docs/skills.md +231 -0
  1924. package/node_modules/@styrene-lab/pi-coding-agent/docs/terminal-setup.md +95 -0
  1925. package/node_modules/@styrene-lab/pi-coding-agent/docs/termux.md +127 -0
  1926. package/node_modules/@styrene-lab/pi-coding-agent/docs/themes.md +295 -0
  1927. package/node_modules/@styrene-lab/pi-coding-agent/docs/tmux.md +61 -0
  1928. package/node_modules/@styrene-lab/pi-coding-agent/docs/tree.md +228 -0
  1929. package/node_modules/@styrene-lab/pi-coding-agent/docs/tui.md +887 -0
  1930. package/node_modules/@styrene-lab/pi-coding-agent/docs/windows.md +17 -0
  1931. package/node_modules/@styrene-lab/pi-coding-agent/examples/README.md +25 -0
  1932. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/README.md +205 -0
  1933. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/antigravity-image-gen.ts +416 -0
  1934. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/auto-commit-on-exit.ts +49 -0
  1935. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/bash-spawn-hook.ts +30 -0
  1936. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/bookmark.ts +50 -0
  1937. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/built-in-tool-renderer.ts +246 -0
  1938. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/claude-rules.ts +86 -0
  1939. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/commands.ts +72 -0
  1940. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/confirm-destructive.ts +59 -0
  1941. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-compaction.ts +114 -0
  1942. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-footer.ts +64 -0
  1943. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-header.ts +73 -0
  1944. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  1945. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  1946. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +19 -0
  1947. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
  1948. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  1949. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  1950. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
  1951. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
  1952. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dirty-repo-guard.ts +56 -0
  1953. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/README.md +46 -0
  1954. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  1955. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  1956. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom/build.sh +152 -0
  1957. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  1958. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom-component.ts +132 -0
  1959. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  1960. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  1961. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/index.ts +74 -0
  1962. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  1963. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dynamic-resources/SKILL.md +8 -0
  1964. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dynamic-resources/dynamic.json +79 -0
  1965. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dynamic-resources/dynamic.md +5 -0
  1966. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dynamic-resources/index.ts +15 -0
  1967. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/dynamic-tools.ts +74 -0
  1968. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/event-bus.ts +43 -0
  1969. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/file-trigger.ts +41 -0
  1970. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/git-checkpoint.ts +53 -0
  1971. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/handoff.ts +150 -0
  1972. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/hello.ts +25 -0
  1973. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/inline-bash.ts +94 -0
  1974. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/input-transform.ts +43 -0
  1975. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/interactive-shell.ts +196 -0
  1976. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/mac-system-theme.ts +47 -0
  1977. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/message-renderer.ts +59 -0
  1978. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/minimal-mode.ts +426 -0
  1979. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/modal-editor.ts +85 -0
  1980. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/model-status.ts +31 -0
  1981. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/notify.ts +55 -0
  1982. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +1348 -0
  1983. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/overlay-test.ts +150 -0
  1984. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/permission-gate.ts +34 -0
  1985. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/pirate.ts +47 -0
  1986. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/plan-mode/README.md +65 -0
  1987. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/plan-mode/index.ts +340 -0
  1988. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/plan-mode/utils.ts +168 -0
  1989. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/preset.ts +397 -0
  1990. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/protected-paths.ts +30 -0
  1991. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/provider-payload.ts +14 -0
  1992. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/qna.ts +119 -0
  1993. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/question.ts +264 -0
  1994. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/questionnaire.ts +427 -0
  1995. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/rainbow-editor.ts +88 -0
  1996. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/reload-runtime.ts +37 -0
  1997. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/rpc-demo.ts +124 -0
  1998. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/sandbox/index.ts +317 -0
  1999. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/sandbox/package-lock.json +92 -0
  2000. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/sandbox/package.json +19 -0
  2001. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/send-user-message.ts +97 -0
  2002. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/session-name.ts +27 -0
  2003. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/shutdown-command.ts +63 -0
  2004. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/snake.ts +343 -0
  2005. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/space-invaders.ts +560 -0
  2006. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/ssh.ts +220 -0
  2007. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/status-line.ts +40 -0
  2008. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/README.md +172 -0
  2009. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/agents/planner.md +37 -0
  2010. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/agents/reviewer.md +35 -0
  2011. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/agents/scout.md +50 -0
  2012. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/agents/worker.md +24 -0
  2013. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/agents.ts +126 -0
  2014. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/index.ts +964 -0
  2015. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  2016. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/prompts/implement.md +10 -0
  2017. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  2018. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/summarize.ts +195 -0
  2019. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/system-prompt-header.ts +17 -0
  2020. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/timed-confirm.ts +70 -0
  2021. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/titlebar-spinner.ts +58 -0
  2022. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/todo.ts +299 -0
  2023. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/tool-override.ts +142 -0
  2024. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/tools.ts +146 -0
  2025. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/trigger-compact.ts +40 -0
  2026. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/truncated-tool.ts +192 -0
  2027. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/widget-placement.ts +17 -0
  2028. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/with-deps/index.ts +32 -0
  2029. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/with-deps/package-lock.json +31 -0
  2030. package/node_modules/@styrene-lab/pi-coding-agent/examples/extensions/with-deps/package.json +22 -0
  2031. package/node_modules/@styrene-lab/pi-coding-agent/examples/rpc-extension-ui.ts +632 -0
  2032. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/01-minimal.ts +22 -0
  2033. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/02-custom-model.ts +49 -0
  2034. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/03-custom-prompt.ts +55 -0
  2035. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/04-skills.ts +46 -0
  2036. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/05-tools.ts +56 -0
  2037. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/06-extensions.ts +88 -0
  2038. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/07-context-files.ts +40 -0
  2039. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/08-prompt-templates.ts +47 -0
  2040. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  2041. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/10-settings.ts +51 -0
  2042. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/11-sessions.ts +48 -0
  2043. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/12-full-control.ts +82 -0
  2044. package/node_modules/@styrene-lab/pi-coding-agent/examples/sdk/README.md +144 -0
  2045. package/node_modules/@styrene-lab/pi-coding-agent/package.json +99 -0
  2046. package/node_modules/@styrene-lab/pi-tui/README.md +767 -0
  2047. package/node_modules/@styrene-lab/pi-tui/dist/autocomplete.d.ts +50 -0
  2048. package/node_modules/@styrene-lab/pi-tui/dist/autocomplete.d.ts.map +1 -0
  2049. package/node_modules/@styrene-lab/pi-tui/dist/autocomplete.js +635 -0
  2050. package/node_modules/@styrene-lab/pi-tui/dist/autocomplete.js.map +1 -0
  2051. package/node_modules/@styrene-lab/pi-tui/dist/components/box.d.ts +30 -0
  2052. package/node_modules/@styrene-lab/pi-tui/dist/components/box.d.ts.map +1 -0
  2053. package/node_modules/@styrene-lab/pi-tui/dist/components/box.js +122 -0
  2054. package/node_modules/@styrene-lab/pi-tui/dist/components/box.js.map +1 -0
  2055. package/node_modules/@styrene-lab/pi-tui/dist/components/cancellable-loader.d.ts +22 -0
  2056. package/node_modules/@styrene-lab/pi-tui/dist/components/cancellable-loader.d.ts.map +1 -0
  2057. package/node_modules/@styrene-lab/pi-tui/dist/components/cancellable-loader.js +35 -0
  2058. package/node_modules/@styrene-lab/pi-tui/dist/components/cancellable-loader.js.map +1 -0
  2059. package/node_modules/@styrene-lab/pi-tui/dist/components/editor.d.ts +233 -0
  2060. package/node_modules/@styrene-lab/pi-tui/dist/components/editor.d.ts.map +1 -0
  2061. package/node_modules/@styrene-lab/pi-tui/dist/components/editor.js +1844 -0
  2062. package/node_modules/@styrene-lab/pi-tui/dist/components/editor.js.map +1 -0
  2063. package/node_modules/@styrene-lab/pi-tui/dist/components/image.d.ts +28 -0
  2064. package/node_modules/@styrene-lab/pi-tui/dist/components/image.d.ts.map +1 -0
  2065. package/node_modules/@styrene-lab/pi-tui/dist/components/image.js +69 -0
  2066. package/node_modules/@styrene-lab/pi-tui/dist/components/image.js.map +1 -0
  2067. package/node_modules/@styrene-lab/pi-tui/dist/components/input.d.ts +39 -0
  2068. package/node_modules/@styrene-lab/pi-tui/dist/components/input.d.ts.map +1 -0
  2069. package/node_modules/@styrene-lab/pi-tui/dist/components/input.js +464 -0
  2070. package/node_modules/@styrene-lab/pi-tui/dist/components/input.js.map +1 -0
  2071. package/node_modules/@styrene-lab/pi-tui/dist/components/loader.d.ts +21 -0
  2072. package/node_modules/@styrene-lab/pi-tui/dist/components/loader.d.ts.map +1 -0
  2073. package/node_modules/@styrene-lab/pi-tui/dist/components/loader.js +49 -0
  2074. package/node_modules/@styrene-lab/pi-tui/dist/components/loader.js.map +1 -0
  2075. package/node_modules/@styrene-lab/pi-tui/dist/components/markdown.d.ts +95 -0
  2076. package/node_modules/@styrene-lab/pi-tui/dist/components/markdown.d.ts.map +1 -0
  2077. package/node_modules/@styrene-lab/pi-tui/dist/components/markdown.js +655 -0
  2078. package/node_modules/@styrene-lab/pi-tui/dist/components/markdown.js.map +1 -0
  2079. package/node_modules/@styrene-lab/pi-tui/dist/components/select-list.d.ts +50 -0
  2080. package/node_modules/@styrene-lab/pi-tui/dist/components/select-list.d.ts.map +1 -0
  2081. package/node_modules/@styrene-lab/pi-tui/dist/components/select-list.js +159 -0
  2082. package/node_modules/@styrene-lab/pi-tui/dist/components/select-list.js.map +1 -0
  2083. package/node_modules/@styrene-lab/pi-tui/dist/components/settings-list.d.ts +50 -0
  2084. package/node_modules/@styrene-lab/pi-tui/dist/components/settings-list.d.ts.map +1 -0
  2085. package/node_modules/@styrene-lab/pi-tui/dist/components/settings-list.js +185 -0
  2086. package/node_modules/@styrene-lab/pi-tui/dist/components/settings-list.js.map +1 -0
  2087. package/node_modules/@styrene-lab/pi-tui/dist/components/spacer.d.ts +12 -0
  2088. package/node_modules/@styrene-lab/pi-tui/dist/components/spacer.d.ts.map +1 -0
  2089. package/node_modules/@styrene-lab/pi-tui/dist/components/spacer.js +23 -0
  2090. package/node_modules/@styrene-lab/pi-tui/dist/components/spacer.js.map +1 -0
  2091. package/node_modules/@styrene-lab/pi-tui/dist/components/text.d.ts +26 -0
  2092. package/node_modules/@styrene-lab/pi-tui/dist/components/text.d.ts.map +1 -0
  2093. package/node_modules/@styrene-lab/pi-tui/dist/components/text.js +107 -0
  2094. package/node_modules/@styrene-lab/pi-tui/dist/components/text.js.map +1 -0
  2095. package/node_modules/@styrene-lab/pi-tui/dist/components/truncated-text.d.ts +13 -0
  2096. package/node_modules/@styrene-lab/pi-tui/dist/components/truncated-text.d.ts.map +1 -0
  2097. package/node_modules/@styrene-lab/pi-tui/dist/components/truncated-text.js +51 -0
  2098. package/node_modules/@styrene-lab/pi-tui/dist/components/truncated-text.js.map +1 -0
  2099. package/node_modules/@styrene-lab/pi-tui/dist/editor-component.d.ts +39 -0
  2100. package/node_modules/@styrene-lab/pi-tui/dist/editor-component.d.ts.map +1 -0
  2101. package/node_modules/@styrene-lab/pi-tui/dist/editor-component.js +2 -0
  2102. package/node_modules/@styrene-lab/pi-tui/dist/editor-component.js.map +1 -0
  2103. package/node_modules/@styrene-lab/pi-tui/dist/fuzzy.d.ts +16 -0
  2104. package/node_modules/@styrene-lab/pi-tui/dist/fuzzy.d.ts.map +1 -0
  2105. package/node_modules/@styrene-lab/pi-tui/dist/fuzzy.js +107 -0
  2106. package/node_modules/@styrene-lab/pi-tui/dist/fuzzy.js.map +1 -0
  2107. package/node_modules/@styrene-lab/pi-tui/dist/index.d.ts +23 -0
  2108. package/node_modules/@styrene-lab/pi-tui/dist/index.d.ts.map +1 -0
  2109. package/node_modules/@styrene-lab/pi-tui/dist/index.js +32 -0
  2110. package/node_modules/@styrene-lab/pi-tui/dist/index.js.map +1 -0
  2111. package/node_modules/@styrene-lab/pi-tui/dist/keybindings.d.ts +39 -0
  2112. package/node_modules/@styrene-lab/pi-tui/dist/keybindings.d.ts.map +1 -0
  2113. package/node_modules/@styrene-lab/pi-tui/dist/keybindings.js +117 -0
  2114. package/node_modules/@styrene-lab/pi-tui/dist/keybindings.js.map +1 -0
  2115. package/node_modules/@styrene-lab/pi-tui/dist/keys.d.ts +172 -0
  2116. package/node_modules/@styrene-lab/pi-tui/dist/keys.d.ts.map +1 -0
  2117. package/node_modules/@styrene-lab/pi-tui/dist/keys.js +1097 -0
  2118. package/node_modules/@styrene-lab/pi-tui/dist/keys.js.map +1 -0
  2119. package/node_modules/@styrene-lab/pi-tui/dist/kill-ring.d.ts +28 -0
  2120. package/node_modules/@styrene-lab/pi-tui/dist/kill-ring.d.ts.map +1 -0
  2121. package/node_modules/@styrene-lab/pi-tui/dist/kill-ring.js +44 -0
  2122. package/node_modules/@styrene-lab/pi-tui/dist/kill-ring.js.map +1 -0
  2123. package/node_modules/@styrene-lab/pi-tui/dist/stdin-buffer.d.ts +62 -0
  2124. package/node_modules/@styrene-lab/pi-tui/dist/stdin-buffer.d.ts.map +1 -0
  2125. package/node_modules/@styrene-lab/pi-tui/dist/stdin-buffer.js +337 -0
  2126. package/node_modules/@styrene-lab/pi-tui/dist/stdin-buffer.js.map +1 -0
  2127. package/node_modules/@styrene-lab/pi-tui/dist/terminal-image.d.ts +68 -0
  2128. package/node_modules/@styrene-lab/pi-tui/dist/terminal-image.d.ts.map +1 -0
  2129. package/node_modules/@styrene-lab/pi-tui/dist/terminal-image.js +288 -0
  2130. package/node_modules/@styrene-lab/pi-tui/dist/terminal-image.js.map +1 -0
  2131. package/node_modules/@styrene-lab/pi-tui/dist/terminal.d.ts +85 -0
  2132. package/node_modules/@styrene-lab/pi-tui/dist/terminal.d.ts.map +1 -0
  2133. package/node_modules/@styrene-lab/pi-tui/dist/terminal.js +309 -0
  2134. package/node_modules/@styrene-lab/pi-tui/dist/terminal.js.map +1 -0
  2135. package/node_modules/@styrene-lab/pi-tui/dist/tui.d.ts +220 -0
  2136. package/node_modules/@styrene-lab/pi-tui/dist/tui.d.ts.map +1 -0
  2137. package/node_modules/@styrene-lab/pi-tui/dist/tui.js +977 -0
  2138. package/node_modules/@styrene-lab/pi-tui/dist/tui.js.map +1 -0
  2139. package/node_modules/@styrene-lab/pi-tui/dist/undo-stack.d.ts +17 -0
  2140. package/node_modules/@styrene-lab/pi-tui/dist/undo-stack.d.ts.map +1 -0
  2141. package/node_modules/@styrene-lab/pi-tui/dist/undo-stack.js +25 -0
  2142. package/node_modules/@styrene-lab/pi-tui/dist/undo-stack.js.map +1 -0
  2143. package/node_modules/@styrene-lab/pi-tui/dist/utils.d.ts +78 -0
  2144. package/node_modules/@styrene-lab/pi-tui/dist/utils.d.ts.map +1 -0
  2145. package/node_modules/@styrene-lab/pi-tui/dist/utils.js +815 -0
  2146. package/node_modules/@styrene-lab/pi-tui/dist/utils.js.map +1 -0
  2147. package/node_modules/@styrene-lab/pi-tui/package.json +52 -0
  2148. package/node_modules/ajv/.runkit_example.js +23 -0
  2149. package/node_modules/ajv/LICENSE +22 -0
  2150. package/node_modules/ajv/README.md +207 -0
  2151. package/node_modules/ajv/dist/2019.d.ts +19 -0
  2152. package/node_modules/ajv/dist/2019.js +61 -0
  2153. package/node_modules/ajv/dist/2019.js.map +1 -0
  2154. package/node_modules/ajv/dist/2020.d.ts +19 -0
  2155. package/node_modules/ajv/dist/2020.js +55 -0
  2156. package/node_modules/ajv/dist/2020.js.map +1 -0
  2157. package/node_modules/ajv/dist/ajv.d.ts +18 -0
  2158. package/node_modules/ajv/dist/ajv.js +50 -0
  2159. package/node_modules/ajv/dist/ajv.js.map +1 -0
  2160. package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
  2161. package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  2162. package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  2163. package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  2164. package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  2165. package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  2166. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  2167. package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  2168. package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  2169. package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  2170. package/node_modules/ajv/dist/compile/errors.js +123 -0
  2171. package/node_modules/ajv/dist/compile/errors.js.map +1 -0
  2172. package/node_modules/ajv/dist/compile/index.d.ts +80 -0
  2173. package/node_modules/ajv/dist/compile/index.js +242 -0
  2174. package/node_modules/ajv/dist/compile/index.js.map +1 -0
  2175. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  2176. package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  2177. package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
  2178. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  2179. package/node_modules/ajv/dist/compile/jtd/serialize.js +236 -0
  2180. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
  2181. package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  2182. package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  2183. package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
  2184. package/node_modules/ajv/dist/compile/names.d.ts +20 -0
  2185. package/node_modules/ajv/dist/compile/names.js +28 -0
  2186. package/node_modules/ajv/dist/compile/names.js.map +1 -0
  2187. package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
  2188. package/node_modules/ajv/dist/compile/ref_error.js +12 -0
  2189. package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  2190. package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  2191. package/node_modules/ajv/dist/compile/resolve.js +155 -0
  2192. package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  2193. package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  2194. package/node_modules/ajv/dist/compile/rules.js +26 -0
  2195. package/node_modules/ajv/dist/compile/rules.js.map +1 -0
  2196. package/node_modules/ajv/dist/compile/util.d.ts +40 -0
  2197. package/node_modules/ajv/dist/compile/util.js +178 -0
  2198. package/node_modules/ajv/dist/compile/util.js.map +1 -0
  2199. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  2200. package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  2201. package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  2202. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  2203. package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  2204. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  2205. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  2206. package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  2207. package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  2208. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  2209. package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  2210. package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  2211. package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  2212. package/node_modules/ajv/dist/compile/validate/index.js +520 -0
  2213. package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  2214. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  2215. package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  2216. package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  2217. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  2218. package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  2219. package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  2220. package/node_modules/ajv/dist/core.d.ts +174 -0
  2221. package/node_modules/ajv/dist/core.js +618 -0
  2222. package/node_modules/ajv/dist/core.js.map +1 -0
  2223. package/node_modules/ajv/dist/jtd.d.ts +47 -0
  2224. package/node_modules/ajv/dist/jtd.js +72 -0
  2225. package/node_modules/ajv/dist/jtd.js.map +1 -0
  2226. package/node_modules/ajv/dist/refs/data.json +13 -0
  2227. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  2228. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  2229. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
  2230. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  2231. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  2232. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  2233. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  2234. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  2235. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  2236. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  2237. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  2238. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  2239. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
  2240. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  2241. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  2242. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  2243. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  2244. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  2245. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  2246. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  2247. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  2248. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  2249. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  2250. package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  2251. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  2252. package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  2253. package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
  2254. package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  2255. package/node_modules/ajv/dist/runtime/equal.js +7 -0
  2256. package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  2257. package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  2258. package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
  2259. package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
  2260. package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  2261. package/node_modules/ajv/dist/runtime/quote.js +30 -0
  2262. package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
  2263. package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  2264. package/node_modules/ajv/dist/runtime/re2.js +6 -0
  2265. package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
  2266. package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  2267. package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  2268. package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
  2269. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  2270. package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  2271. package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  2272. package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
  2273. package/node_modules/ajv/dist/runtime/uri.js +6 -0
  2274. package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  2275. package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  2276. package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  2277. package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  2278. package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  2279. package/node_modules/ajv/dist/standalone/index.js +90 -0
  2280. package/node_modules/ajv/dist/standalone/index.js.map +1 -0
  2281. package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  2282. package/node_modules/ajv/dist/standalone/instance.js +35 -0
  2283. package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
  2284. package/node_modules/ajv/dist/types/index.d.ts +183 -0
  2285. package/node_modules/ajv/dist/types/index.js +3 -0
  2286. package/node_modules/ajv/dist/types/index.js.map +1 -0
  2287. package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
  2288. package/node_modules/ajv/dist/types/json-schema.js +3 -0
  2289. package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
  2290. package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
  2291. package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  2292. package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
  2293. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  2294. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  2295. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  2296. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  2297. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  2298. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  2299. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  2300. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  2301. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  2302. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  2303. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  2304. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  2305. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  2306. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  2307. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  2308. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  2309. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  2310. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  2311. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  2312. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  2313. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
  2314. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  2315. package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  2316. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  2317. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  2318. package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  2319. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  2320. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  2321. package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  2322. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  2323. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  2324. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  2325. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  2326. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  2327. package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  2328. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  2329. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  2330. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  2331. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  2332. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  2333. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  2334. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  2335. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  2336. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  2337. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  2338. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  2339. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  2340. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  2341. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  2342. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  2343. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  2344. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  2345. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  2346. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  2347. package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  2348. package/node_modules/ajv/dist/vocabularies/code.js +131 -0
  2349. package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  2350. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  2351. package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  2352. package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  2353. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  2354. package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  2355. package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  2356. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  2357. package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  2358. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  2359. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  2360. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  2361. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  2362. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  2363. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  2364. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  2365. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  2366. package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  2367. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
  2368. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  2369. package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  2370. package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  2371. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  2372. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  2373. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
  2374. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  2375. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  2376. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
  2377. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  2378. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  2379. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
  2380. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  2381. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  2382. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
  2383. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  2384. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  2385. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
  2386. package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  2387. package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  2388. package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
  2389. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  2390. package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  2391. package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  2392. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  2393. package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  2394. package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  2395. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  2396. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  2397. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
  2398. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  2399. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  2400. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
  2401. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  2402. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  2403. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
  2404. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  2405. package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  2406. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
  2407. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  2408. package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  2409. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
  2410. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  2411. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  2412. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
  2413. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  2414. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  2415. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
  2416. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  2417. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  2418. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
  2419. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  2420. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
  2421. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
  2422. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  2423. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
  2424. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
  2425. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  2426. package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  2427. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
  2428. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  2429. package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  2430. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
  2431. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  2432. package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
  2433. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
  2434. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  2435. package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  2436. package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  2437. package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  2438. package/node_modules/ajv/dist/vocabularies/next.js +8 -0
  2439. package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
  2440. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  2441. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  2442. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
  2443. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  2444. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  2445. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
  2446. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  2447. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  2448. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
  2449. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  2450. package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  2451. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  2452. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  2453. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  2454. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
  2455. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  2456. package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  2457. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  2458. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  2459. package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  2460. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  2461. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  2462. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  2463. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
  2464. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  2465. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  2466. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  2467. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  2468. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  2469. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  2470. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  2471. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  2472. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  2473. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  2474. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  2475. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  2476. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  2477. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  2478. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  2479. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  2480. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
  2481. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  2482. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  2483. package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  2484. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  2485. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  2486. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  2487. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  2488. package/node_modules/ajv/lib/2019.ts +81 -0
  2489. package/node_modules/ajv/lib/2020.ts +75 -0
  2490. package/node_modules/ajv/lib/ajv.ts +70 -0
  2491. package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
  2492. package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
  2493. package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  2494. package/node_modules/ajv/lib/compile/errors.ts +184 -0
  2495. package/node_modules/ajv/lib/compile/index.ts +324 -0
  2496. package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  2497. package/node_modules/ajv/lib/compile/jtd/serialize.ts +277 -0
  2498. package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  2499. package/node_modules/ajv/lib/compile/names.ts +27 -0
  2500. package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
  2501. package/node_modules/ajv/lib/compile/resolve.ts +149 -0
  2502. package/node_modules/ajv/lib/compile/rules.ts +50 -0
  2503. package/node_modules/ajv/lib/compile/util.ts +213 -0
  2504. package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  2505. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  2506. package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
  2507. package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  2508. package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
  2509. package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  2510. package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  2511. package/node_modules/ajv/lib/core.ts +892 -0
  2512. package/node_modules/ajv/lib/jtd.ts +132 -0
  2513. package/node_modules/ajv/lib/refs/data.json +13 -0
  2514. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  2515. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  2516. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  2517. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  2518. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  2519. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  2520. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  2521. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  2522. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  2523. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  2524. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  2525. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  2526. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  2527. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  2528. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  2529. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  2530. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  2531. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  2532. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  2533. package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  2534. package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  2535. package/node_modules/ajv/lib/runtime/equal.ts +7 -0
  2536. package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
  2537. package/node_modules/ajv/lib/runtime/quote.ts +31 -0
  2538. package/node_modules/ajv/lib/runtime/re2.ts +6 -0
  2539. package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  2540. package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  2541. package/node_modules/ajv/lib/runtime/uri.ts +6 -0
  2542. package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  2543. package/node_modules/ajv/lib/standalone/index.ts +100 -0
  2544. package/node_modules/ajv/lib/standalone/instance.ts +36 -0
  2545. package/node_modules/ajv/lib/types/index.ts +244 -0
  2546. package/node_modules/ajv/lib/types/json-schema.ts +187 -0
  2547. package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
  2548. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  2549. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  2550. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  2551. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  2552. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  2553. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  2554. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  2555. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  2556. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  2557. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  2558. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  2559. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  2560. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  2561. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  2562. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  2563. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  2564. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  2565. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  2566. package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  2567. package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  2568. package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  2569. package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  2570. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
  2571. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  2572. package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  2573. package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  2574. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  2575. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  2576. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  2577. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  2578. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  2579. package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  2580. package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  2581. package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  2582. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  2583. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  2584. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  2585. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  2586. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  2587. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  2588. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  2589. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  2590. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
  2591. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
  2592. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  2593. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  2594. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
  2595. package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  2596. package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  2597. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  2598. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  2599. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  2600. package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  2601. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  2602. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
  2603. package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  2604. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  2605. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  2606. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  2607. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  2608. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  2609. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  2610. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +39 -0
  2611. package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  2612. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  2613. package/node_modules/ajv/package.json +127 -0
  2614. package/node_modules/ajv-formats/LICENSE +21 -0
  2615. package/node_modules/ajv-formats/README.md +125 -0
  2616. package/node_modules/ajv-formats/dist/formats.d.ts +9 -0
  2617. package/node_modules/ajv-formats/dist/formats.js +208 -0
  2618. package/node_modules/ajv-formats/dist/formats.js.map +1 -0
  2619. package/node_modules/ajv-formats/dist/index.d.ts +15 -0
  2620. package/node_modules/ajv-formats/dist/index.js +37 -0
  2621. package/node_modules/ajv-formats/dist/index.js.map +1 -0
  2622. package/node_modules/ajv-formats/dist/limit.d.ts +10 -0
  2623. package/node_modules/ajv-formats/dist/limit.js +69 -0
  2624. package/node_modules/ajv-formats/dist/limit.js.map +1 -0
  2625. package/node_modules/ajv-formats/package.json +74 -0
  2626. package/node_modules/ajv-formats/src/formats.ts +269 -0
  2627. package/node_modules/ajv-formats/src/index.ts +62 -0
  2628. package/node_modules/ajv-formats/src/limit.ts +99 -0
  2629. package/node_modules/fast-deep-equal/LICENSE +21 -0
  2630. package/node_modules/fast-deep-equal/README.md +96 -0
  2631. package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
  2632. package/node_modules/fast-deep-equal/es6/index.js +72 -0
  2633. package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
  2634. package/node_modules/fast-deep-equal/es6/react.js +79 -0
  2635. package/node_modules/fast-deep-equal/index.d.ts +4 -0
  2636. package/node_modules/fast-deep-equal/index.js +46 -0
  2637. package/node_modules/fast-deep-equal/package.json +61 -0
  2638. package/node_modules/fast-deep-equal/react.d.ts +2 -0
  2639. package/node_modules/fast-deep-equal/react.js +53 -0
  2640. package/node_modules/fast-uri/.gitattributes +2 -0
  2641. package/node_modules/fast-uri/.github/.stale.yml +21 -0
  2642. package/node_modules/fast-uri/.github/dependabot.yml +13 -0
  2643. package/node_modules/fast-uri/.github/tests_checker.yml +8 -0
  2644. package/node_modules/fast-uri/.github/workflows/ci.yml +101 -0
  2645. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
  2646. package/node_modules/fast-uri/LICENSE +32 -0
  2647. package/node_modules/fast-uri/README.md +143 -0
  2648. package/node_modules/fast-uri/benchmark/benchmark.mjs +159 -0
  2649. package/node_modules/fast-uri/benchmark/equal.mjs +51 -0
  2650. package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +22 -0
  2651. package/node_modules/fast-uri/benchmark/package.json +17 -0
  2652. package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +24 -0
  2653. package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +65 -0
  2654. package/node_modules/fast-uri/eslint.config.js +6 -0
  2655. package/node_modules/fast-uri/index.js +340 -0
  2656. package/node_modules/fast-uri/lib/schemes.js +267 -0
  2657. package/node_modules/fast-uri/lib/utils.js +336 -0
  2658. package/node_modules/fast-uri/package.json +69 -0
  2659. package/node_modules/fast-uri/test/ajv.test.js +43 -0
  2660. package/node_modules/fast-uri/test/equal.test.js +108 -0
  2661. package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +501 -0
  2662. package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +120 -0
  2663. package/node_modules/fast-uri/test/parse.test.js +318 -0
  2664. package/node_modules/fast-uri/test/resolve.test.js +78 -0
  2665. package/node_modules/fast-uri/test/rfc-3986.test.js +90 -0
  2666. package/node_modules/fast-uri/test/serialize.test.js +151 -0
  2667. package/node_modules/fast-uri/test/uri-js-compatibility.test.js +33 -0
  2668. package/node_modules/fast-uri/test/uri-js.test.js +912 -0
  2669. package/node_modules/fast-uri/test/util.test.js +38 -0
  2670. package/node_modules/fast-uri/tsconfig.json +9 -0
  2671. package/node_modules/fast-uri/types/index.d.ts +60 -0
  2672. package/node_modules/fast-uri/types/index.test-d.ts +17 -0
  2673. package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  2674. package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
  2675. package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
  2676. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
  2677. package/node_modules/json-schema-traverse/LICENSE +21 -0
  2678. package/node_modules/json-schema-traverse/README.md +95 -0
  2679. package/node_modules/json-schema-traverse/index.d.ts +40 -0
  2680. package/node_modules/json-schema-traverse/index.js +93 -0
  2681. package/node_modules/json-schema-traverse/package.json +43 -0
  2682. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  2683. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  2684. package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  2685. package/node_modules/mime-db/HISTORY.md +541 -0
  2686. package/node_modules/mime-db/LICENSE +23 -0
  2687. package/node_modules/mime-db/README.md +109 -0
  2688. package/node_modules/mime-db/db.json +9342 -0
  2689. package/node_modules/mime-db/index.js +12 -0
  2690. package/node_modules/mime-db/package.json +56 -0
  2691. package/node_modules/mime-types/HISTORY.md +428 -0
  2692. package/node_modules/mime-types/LICENSE +23 -0
  2693. package/node_modules/mime-types/README.md +126 -0
  2694. package/node_modules/mime-types/index.js +211 -0
  2695. package/node_modules/mime-types/mimeScore.js +57 -0
  2696. package/node_modules/mime-types/package.json +49 -0
  2697. package/node_modules/require-from-string/index.js +34 -0
  2698. package/node_modules/require-from-string/license +21 -0
  2699. package/node_modules/require-from-string/package.json +28 -0
  2700. package/node_modules/require-from-string/readme.md +56 -0
  2701. package/node_modules/zod-to-json-schema/.github/CR_logotype-full-color.png +0 -0
  2702. package/node_modules/zod-to-json-schema/.github/FUNDING.yml +1 -0
  2703. package/node_modules/zod-to-json-schema/.prettierrc.json +1 -0
  2704. package/node_modules/zod-to-json-schema/LICENSE +15 -0
  2705. package/node_modules/zod-to-json-schema/README.md +390 -0
  2706. package/node_modules/zod-to-json-schema/changelog.md +82 -0
  2707. package/node_modules/zod-to-json-schema/contributing.md +9 -0
  2708. package/node_modules/zod-to-json-schema/createIndex.ts +32 -0
  2709. package/node_modules/zod-to-json-schema/dist/cjs/Options.js +51 -0
  2710. package/node_modules/zod-to-json-schema/dist/cjs/Refs.js +26 -0
  2711. package/node_modules/zod-to-json-schema/dist/cjs/errorMessages.js +19 -0
  2712. package/node_modules/zod-to-json-schema/dist/cjs/getRelativePath.js +12 -0
  2713. package/node_modules/zod-to-json-schema/dist/cjs/index.js +56 -0
  2714. package/node_modules/zod-to-json-schema/dist/cjs/package.json +1 -0
  2715. package/node_modules/zod-to-json-schema/dist/cjs/parseDef.js +66 -0
  2716. package/node_modules/zod-to-json-schema/dist/cjs/parseTypes.js +2 -0
  2717. package/node_modules/zod-to-json-schema/dist/cjs/parsers/any.js +21 -0
  2718. package/node_modules/zod-to-json-schema/dist/cjs/parsers/array.js +30 -0
  2719. package/node_modules/zod-to-json-schema/dist/cjs/parsers/bigint.js +53 -0
  2720. package/node_modules/zod-to-json-schema/dist/cjs/parsers/boolean.js +9 -0
  2721. package/node_modules/zod-to-json-schema/dist/cjs/parsers/branded.js +8 -0
  2722. package/node_modules/zod-to-json-schema/dist/cjs/parsers/catch.js +8 -0
  2723. package/node_modules/zod-to-json-schema/dist/cjs/parsers/date.js +50 -0
  2724. package/node_modules/zod-to-json-schema/dist/cjs/parsers/default.js +11 -0
  2725. package/node_modules/zod-to-json-schema/dist/cjs/parsers/effects.js +11 -0
  2726. package/node_modules/zod-to-json-schema/dist/cjs/parsers/enum.js +10 -0
  2727. package/node_modules/zod-to-json-schema/dist/cjs/parsers/intersection.js +56 -0
  2728. package/node_modules/zod-to-json-schema/dist/cjs/parsers/literal.js +25 -0
  2729. package/node_modules/zod-to-json-schema/dist/cjs/parsers/map.js +30 -0
  2730. package/node_modules/zod-to-json-schema/dist/cjs/parsers/nativeEnum.js +20 -0
  2731. package/node_modules/zod-to-json-schema/dist/cjs/parsers/never.js +15 -0
  2732. package/node_modules/zod-to-json-schema/dist/cjs/parsers/null.js +14 -0
  2733. package/node_modules/zod-to-json-schema/dist/cjs/parsers/nullable.js +37 -0
  2734. package/node_modules/zod-to-json-schema/dist/cjs/parsers/number.js +56 -0
  2735. package/node_modules/zod-to-json-schema/dist/cjs/parsers/object.js +76 -0
  2736. package/node_modules/zod-to-json-schema/dist/cjs/parsers/optional.js +25 -0
  2737. package/node_modules/zod-to-json-schema/dist/cjs/parsers/pipeline.js +24 -0
  2738. package/node_modules/zod-to-json-schema/dist/cjs/parsers/promise.js +8 -0
  2739. package/node_modules/zod-to-json-schema/dist/cjs/parsers/readonly.js +8 -0
  2740. package/node_modules/zod-to-json-schema/dist/cjs/parsers/record.js +65 -0
  2741. package/node_modules/zod-to-json-schema/dist/cjs/parsers/set.js +24 -0
  2742. package/node_modules/zod-to-json-schema/dist/cjs/parsers/string.js +356 -0
  2743. package/node_modules/zod-to-json-schema/dist/cjs/parsers/tuple.js +36 -0
  2744. package/node_modules/zod-to-json-schema/dist/cjs/parsers/undefined.js +10 -0
  2745. package/node_modules/zod-to-json-schema/dist/cjs/parsers/union.js +84 -0
  2746. package/node_modules/zod-to-json-schema/dist/cjs/parsers/unknown.js +8 -0
  2747. package/node_modules/zod-to-json-schema/dist/cjs/selectParser.js +109 -0
  2748. package/node_modules/zod-to-json-schema/dist/cjs/zodToJsonSchema.js +90 -0
  2749. package/node_modules/zod-to-json-schema/dist/esm/Options.js +46 -0
  2750. package/node_modules/zod-to-json-schema/dist/esm/Refs.js +22 -0
  2751. package/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +14 -0
  2752. package/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +8 -0
  2753. package/node_modules/zod-to-json-schema/dist/esm/index.js +40 -0
  2754. package/node_modules/zod-to-json-schema/dist/esm/package.json +1 -0
  2755. package/node_modules/zod-to-json-schema/dist/esm/parseDef.js +62 -0
  2756. package/node_modules/zod-to-json-schema/dist/esm/parseTypes.js +1 -0
  2757. package/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +17 -0
  2758. package/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +26 -0
  2759. package/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +49 -0
  2760. package/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +5 -0
  2761. package/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +4 -0
  2762. package/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +4 -0
  2763. package/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +46 -0
  2764. package/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +7 -0
  2765. package/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +7 -0
  2766. package/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +6 -0
  2767. package/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +52 -0
  2768. package/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +21 -0
  2769. package/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +26 -0
  2770. package/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +16 -0
  2771. package/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +11 -0
  2772. package/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +10 -0
  2773. package/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +33 -0
  2774. package/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +52 -0
  2775. package/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +72 -0
  2776. package/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +21 -0
  2777. package/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +20 -0
  2778. package/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +4 -0
  2779. package/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +4 -0
  2780. package/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +61 -0
  2781. package/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +20 -0
  2782. package/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +352 -0
  2783. package/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +32 -0
  2784. package/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +6 -0
  2785. package/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +80 -0
  2786. package/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +4 -0
  2787. package/node_modules/zod-to-json-schema/dist/esm/selectParser.js +105 -0
  2788. package/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +87 -0
  2789. package/node_modules/zod-to-json-schema/dist/types/Options.d.ts +37 -0
  2790. package/node_modules/zod-to-json-schema/dist/types/Refs.d.ts +17 -0
  2791. package/node_modules/zod-to-json-schema/dist/types/errorMessages.d.ts +15 -0
  2792. package/node_modules/zod-to-json-schema/dist/types/getRelativePath.d.ts +1 -0
  2793. package/node_modules/zod-to-json-schema/dist/types/index.d.ts +40 -0
  2794. package/node_modules/zod-to-json-schema/dist/types/parseDef.d.ts +4 -0
  2795. package/node_modules/zod-to-json-schema/dist/types/parseTypes.d.ts +34 -0
  2796. package/node_modules/zod-to-json-schema/dist/types/parsers/any.d.ts +5 -0
  2797. package/node_modules/zod-to-json-schema/dist/types/parsers/array.d.ts +12 -0
  2798. package/node_modules/zod-to-json-schema/dist/types/parsers/bigint.d.ts +14 -0
  2799. package/node_modules/zod-to-json-schema/dist/types/parsers/boolean.d.ts +4 -0
  2800. package/node_modules/zod-to-json-schema/dist/types/parsers/branded.d.ts +3 -0
  2801. package/node_modules/zod-to-json-schema/dist/types/parsers/catch.d.ts +3 -0
  2802. package/node_modules/zod-to-json-schema/dist/types/parsers/date.d.ts +15 -0
  2803. package/node_modules/zod-to-json-schema/dist/types/parsers/default.d.ts +6 -0
  2804. package/node_modules/zod-to-json-schema/dist/types/parsers/effects.d.ts +4 -0
  2805. package/node_modules/zod-to-json-schema/dist/types/parsers/enum.d.ts +6 -0
  2806. package/node_modules/zod-to-json-schema/dist/types/parsers/intersection.d.ts +8 -0
  2807. package/node_modules/zod-to-json-schema/dist/types/parsers/literal.d.ts +9 -0
  2808. package/node_modules/zod-to-json-schema/dist/types/parsers/map.d.ts +15 -0
  2809. package/node_modules/zod-to-json-schema/dist/types/parsers/nativeEnum.d.ts +6 -0
  2810. package/node_modules/zod-to-json-schema/dist/types/parsers/never.d.ts +6 -0
  2811. package/node_modules/zod-to-json-schema/dist/types/parsers/null.d.ts +5 -0
  2812. package/node_modules/zod-to-json-schema/dist/types/parsers/nullable.d.ts +10 -0
  2813. package/node_modules/zod-to-json-schema/dist/types/parsers/number.d.ts +13 -0
  2814. package/node_modules/zod-to-json-schema/dist/types/parsers/object.d.ts +10 -0
  2815. package/node_modules/zod-to-json-schema/dist/types/parsers/optional.d.ts +4 -0
  2816. package/node_modules/zod-to-json-schema/dist/types/parsers/pipeline.d.ts +5 -0
  2817. package/node_modules/zod-to-json-schema/dist/types/parsers/promise.d.ts +4 -0
  2818. package/node_modules/zod-to-json-schema/dist/types/parsers/readonly.d.ts +3 -0
  2819. package/node_modules/zod-to-json-schema/dist/types/parsers/record.d.ts +13 -0
  2820. package/node_modules/zod-to-json-schema/dist/types/parsers/set.d.ts +13 -0
  2821. package/node_modules/zod-to-json-schema/dist/types/parsers/string.d.ts +73 -0
  2822. package/node_modules/zod-to-json-schema/dist/types/parsers/tuple.d.ts +13 -0
  2823. package/node_modules/zod-to-json-schema/dist/types/parsers/undefined.d.ts +6 -0
  2824. package/node_modules/zod-to-json-schema/dist/types/parsers/union.d.ts +23 -0
  2825. package/node_modules/zod-to-json-schema/dist/types/parsers/unknown.d.ts +4 -0
  2826. package/node_modules/zod-to-json-schema/dist/types/selectParser.d.ts +5 -0
  2827. package/node_modules/zod-to-json-schema/dist/types/zodToJsonSchema.d.ts +10 -0
  2828. package/node_modules/zod-to-json-schema/package.json +78 -0
  2829. package/node_modules/zod-to-json-schema/postcjs.ts +3 -0
  2830. package/node_modules/zod-to-json-schema/postesm.ts +3 -0
  2831. package/npm/platform-packages/darwin-arm64/README.md +8 -0
  2832. package/npm/platform-packages/darwin-arm64/package.json +26 -0
  2833. package/npm/platform-packages/darwin-x64/README.md +8 -0
  2834. package/npm/platform-packages/darwin-x64/package.json +20 -0
  2835. package/npm/platform-packages/linux-arm64/README.md +8 -0
  2836. package/npm/platform-packages/linux-arm64/package.json +20 -0
  2837. package/npm/platform-packages/linux-x64/README.md +8 -0
  2838. package/npm/platform-packages/linux-x64/package.json +20 -0
  2839. package/package.json +105 -0
  2840. package/prompts/init.md +75 -0
  2841. package/prompts/new-repo.md +54 -0
  2842. package/prompts/oci-login.md +56 -0
  2843. package/prompts/status.md +50 -0
  2844. package/scripts/build-platform-packages.sh +80 -0
  2845. package/scripts/check-provider-drift.sh +82 -0
  2846. package/scripts/check-vendor-dist.mjs +54 -0
  2847. package/scripts/check-vendor-dist.test.mjs +129 -0
  2848. package/scripts/extract-provider-contracts.sh +133 -0
  2849. package/scripts/preinstall.sh +60 -0
  2850. package/scripts/publish-pi-mono.sh +76 -0
  2851. package/skills/cleave/SKILL.md +284 -0
  2852. package/skills/git/SKILL.md +217 -0
  2853. package/skills/git/_reference/ci-validation.md +204 -0
  2854. package/skills/oci/SKILL.md +338 -0
  2855. package/skills/openspec/SKILL.md +346 -0
  2856. package/skills/pi-extensions/SKILL.md +191 -0
  2857. package/skills/pi-tui/SKILL.md +517 -0
  2858. package/skills/python/SKILL.md +189 -0
  2859. package/skills/rust/SKILL.md +268 -0
  2860. package/skills/security/SKILL.md +206 -0
  2861. package/skills/style/SKILL.md +264 -0
  2862. package/skills/typescript/SKILL.md +225 -0
  2863. package/skills/vault/SKILL.md +102 -0
  2864. package/themes/alpharius-legacy.json +85 -0
  2865. package/themes/alpharius.conf +59 -0
  2866. package/themes/alpharius.json +89 -0
@@ -0,0 +1,3114 @@
1
+ /**
2
+ * cleave — Recursive task decomposition extension for pi.
3
+ *
4
+ * Provides:
5
+ * - `cleave_assess` tool: Assess directive complexity (LLM-callable)
6
+ * - `/assess` command: Code assessment toolkit (cleave, diff, spec, complexity)
7
+ * - `/cleave` command: Full decomposition workflow
8
+ * - Session-start handler: Surfaces active OpenSpec changes with task progress
9
+ *
10
+ * State machine: ASSESS → PLAN → CONFIRM → DISPATCH → HARVEST → REPORT
11
+ *
12
+ * Ported from styrene-lab/cleave (Python) — the pattern library, complexity
13
+ * formula, conflict detection, and worktree management are preserved.
14
+ * The Claude Code SDK calls are replaced with pi's extension API.
15
+ */
16
+
17
+ import type { ExtensionAPI, ExtensionCommandContext, AgentToolUpdateCallback } from "@styrene-lab/pi-coding-agent";
18
+ import { truncateTail, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize } from "@styrene-lab/pi-coding-agent";
19
+
20
+ import { Text } from "@styrene-lab/pi-tui";
21
+ import { Type } from "@sinclair/typebox";
22
+ import { execFile } from "node:child_process";
23
+ import { killAllCleaveSubprocesses, cleanupOrphanedProcesses } from "./subprocess-tracker.ts";
24
+ import * as fs from "node:fs";
25
+ import * as path from "node:path";
26
+ import { promisify } from "node:util";
27
+ import { createHash } from "node:crypto";
28
+
29
+ import { sharedState, DASHBOARD_UPDATE_EVENT } from "../lib/shared-state.ts";
30
+ import { sciCall, sciOk, sciErr, sciExpanded } from "../lib/sci-ui.ts";
31
+ import { debug } from "../lib/debug.ts";
32
+ import { emitOpenSpecState } from "../openspec/dashboard-state.ts";
33
+ import { getSharedBridge, buildSlashCommandResult, parseBridgedArgs } from "../lib/slash-command-bridge.ts";
34
+ import { buildAssessBridgeResult } from "./bridge.ts";
35
+
36
+ import { scanDesignDocs, getNodeSections } from "../design-tree/tree.ts";
37
+ import {
38
+ assessDirective,
39
+ PATTERNS,
40
+ runDesignStructuralCheck,
41
+ type AssessCompletion,
42
+ type AssessEffect,
43
+ type AssessLifecycleHint,
44
+ type AssessLifecycleOutcome,
45
+ type AssessLifecycleRecord,
46
+ type AssessSpecScenarioResult,
47
+ type AssessSpecSummary,
48
+ type AssessStructuredResult,
49
+ type DesignAssessmentResult,
50
+ type DesignAssessmentFinding,
51
+ } from "./assessment.ts";
52
+ import { detectConflicts, parseTaskResult } from "./conflicts.ts";
53
+ import { emitResolvedBugCandidate } from "./lifecycle-emitter.ts";
54
+ import { DEFAULT_CHILD_TIMEOUT_MS, dispatchChildren, resolveExecuteModel, emitCleaveChildProgress } from "./dispatcher.ts";
55
+ import type { RustChildState, NativeProgressEvent } from "./native-dispatch.ts";
56
+ import { DEFAULT_REVIEW_CONFIG, type ReviewConfig } from "./review.ts";
57
+ import {
58
+ detectOpenSpec,
59
+ findExecutableChanges,
60
+ openspecChangeToSplitPlanWithContext,
61
+ buildOpenSpecContext,
62
+ writeBackTaskCompletion,
63
+ getActiveChangesStatus,
64
+ type OpenSpecContext,
65
+ } from "./openspec.ts";
66
+ import { buildPlannerPrompt, getRepoTree, parsePlanResponse } from "./planner.ts";
67
+ import {
68
+ matchSkillsToAllChildren,
69
+ resolveSkillPaths,
70
+ getPreferredTier,
71
+ } from "./skills.ts";
72
+ import { discoverGuardrails, runGuardrails, formatGuardrailResults } from "./guardrails.ts";
73
+ import type { CleaveState, ChildState, SplitPlan } from "./types.ts";
74
+ import { DEFAULT_CONFIG } from "./types.ts";
75
+ import {
76
+ buildCheckpointPlan,
77
+ classifyDirtyPaths as classifyPreflightDirtyPaths,
78
+ findIncompleteRuns,
79
+ initWorkspace,
80
+ loadState,
81
+ readTaskFiles,
82
+ saveState,
83
+ type ClassifiedDirtyPath,
84
+ type DirtyTreeClassification as WorkspaceDirtyTreeClassification,
85
+ } from "./workspace.ts";
86
+ import type { SkillDirective } from "./workspace.ts";
87
+ import {
88
+ cleanupWorktrees,
89
+ createWorktree,
90
+ ensureCleanWorktree,
91
+ getCurrentBranch,
92
+ mergeBranch,
93
+ pruneWorktreeDirs,
94
+ } from "./worktree.ts";
95
+ import { inspectGitState } from "../lib/git-state.ts";
96
+
97
+ // ─── Dashboard state emitter ────────────────────────────────────────────────
98
+
99
+ /** Map internal ChildStatus to the dashboard's simplified status. */
100
+ function mapChildStatus(status: string): "pending" | "running" | "done" | "failed" {
101
+ if (status === "completed") return "done";
102
+ if (status === "running" || status === "failed") return status;
103
+ return "pending"; // pending, needs_decomposition → pending
104
+ }
105
+
106
+ /**
107
+ * Emit cleave dashboard state to sharedState.cleave and fire the
108
+ * dashboard update event so the footer re-renders immediately.
109
+ *
110
+ * Called at lifecycle transitions so the unified dashboard can
111
+ * render live progress without polling.
112
+ */
113
+ function emitCleaveState(
114
+ pi: ExtensionAPI,
115
+ status: string,
116
+ runId?: string,
117
+ children?: Array<{ label: string; status: string; durationSec?: number }>,
118
+ ): void {
119
+ (sharedState as any).cleave = {
120
+ status,
121
+ runId,
122
+ updatedAt: Date.now(),
123
+ children: children?.map((c) => ({
124
+ label: c.label,
125
+ status: mapChildStatus(c.status),
126
+ elapsed: c.durationSec,
127
+ })),
128
+ };
129
+ debug("cleave", "emitState", { status, runId, childCount: children?.length });
130
+ pi.events.emit(DASHBOARD_UPDATE_EVENT, { source: "cleave" });
131
+ }
132
+
133
+ // ─── Helpers ────────────────────────────────────────────────────────────────
134
+
135
+ function generateRunId(): string {
136
+ return `clv-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
137
+ }
138
+
139
+ function formatAssessment(a: ReturnType<typeof assessDirective>): string {
140
+ const lines = [
141
+ "**Assessment**",
142
+ "",
143
+ ` Decision: **${a.decision}**`,
144
+ ` Complexity: ${a.complexity}`,
145
+ ` Systems: ${a.systems}`,
146
+ ` Modifiers: ${a.modifiers.length > 0 ? a.modifiers.join(", ") : "none"}`,
147
+ ` Method: ${a.method}`,
148
+ ];
149
+ if (a.pattern) {
150
+ lines.push(` Pattern: ${a.pattern} (${(a.confidence * 100).toFixed(0)}%)`);
151
+ }
152
+ lines.push("", ` ${a.reasoning}`);
153
+ return lines.join("\n");
154
+ }
155
+
156
+ function formatConflicts(conflicts: ReturnType<typeof detectConflicts>): string {
157
+ if (conflicts.length === 0) return "No conflicts detected. ✓";
158
+ return conflicts
159
+ .map(
160
+ (c, i) =>
161
+ `**Conflict ${i + 1}:** ${c.type}\n` +
162
+ ` ${c.description}\n` +
163
+ ` Involved: tasks ${c.involved.join(", ")}\n` +
164
+ ` Resolution: ${c.resolution}`,
165
+ )
166
+ .join("\n\n");
167
+ }
168
+
169
+ function formatSpecVerification(ctx: OpenSpecContext): string {
170
+ const lines = [
171
+ "### Spec Verification",
172
+ "",
173
+ "The following spec scenarios should now be satisfied. **Verify each one:**",
174
+ "",
175
+ ];
176
+
177
+ for (const ss of ctx.specScenarios) {
178
+ lines.push(`**${ss.domain} → ${ss.requirement}**`);
179
+ for (const scenario of ss.scenarios) {
180
+ // Extract just the scenario name (first line) and the Given/When/Then
181
+ const scenarioLines = scenario.split("\n");
182
+ const name = scenarioLines[0];
183
+ lines.push(`- [ ] ${name}`);
184
+ // Include Given/When/Then as indented detail
185
+ const gwt = scenarioLines.slice(1).filter((l) => l.trim());
186
+ if (gwt.length > 0) {
187
+ for (const l of gwt) {
188
+ lines.push(` ${l.trim()}`);
189
+ }
190
+ }
191
+ }
192
+ lines.push("");
193
+ }
194
+
195
+ if (ctx.apiContract) {
196
+ lines.push(
197
+ "**API Contract Conformance (`api.yaml`)**",
198
+ "- [ ] All contract paths/methods are implemented",
199
+ "- [ ] Request/response schemas match the contract",
200
+ "- [ ] Status codes and error responses match the contract",
201
+ "- [ ] No undocumented endpoints exist outside the contract",
202
+ "",
203
+ );
204
+ }
205
+
206
+ lines.push(
207
+ "---",
208
+ "Run tests, inspect the code, or manually verify each scenario above.",
209
+ "If all pass, the change is ready for `/opsx:archive`.",
210
+ );
211
+
212
+ return lines.join("\n");
213
+ }
214
+
215
+ interface DirtyTreePreflightOptions {
216
+ repoPath: string;
217
+ openspecChangePath?: string;
218
+ onUpdate?: AgentToolUpdateCallback<Record<string, unknown>>;
219
+ ui?: {
220
+ /** Text input — used for commit-message approval in the checkpoint flow. */
221
+ input?: (prompt: string, initial?: string) => Promise<string | undefined>;
222
+ /** Modal select — used to choose the preflight action. Falls back to input when absent. */
223
+ select?: (title: string, options: string[]) => Promise<string | undefined>;
224
+ };
225
+ }
226
+
227
+ /** Labelled preflight actions shown in the modal select UI. */
228
+ const PREFLIGHT_ACTION_OPTIONS = [
229
+ "checkpoint — commit related changes and continue [use when work is ready to save before cleaving]",
230
+ "stash-unrelated — stash unrelated/unknown files and continue [use when dirty files are not part of this change]",
231
+ "stash-volatile — stash volatile artifacts only [use when only build/cache artifacts are dirty]",
232
+ "proceed-without-cleave — skip cleave and continue working [use when you want to defer parallel dispatch]",
233
+ "cancel — abort cleave [use when you want to exit without making any changes]",
234
+ ] as const;
235
+
236
+ /** Extract the action keyword from a labelled option string (text before first whitespace run ending in ' — '). */
237
+ function parsePreflightAction(selected: string | undefined): string | undefined {
238
+ if (!selected) return undefined;
239
+ const normalized = normalizePreflightInput(selected);
240
+ if (!normalized) return undefined;
241
+ // Trim leading spaces then grab the first non-space token.
242
+ return normalized.trim().split(/\s+/)[0]?.toLowerCase();
243
+ }
244
+
245
+ const TRANSIENT_CLIPBOARD_ATTACHMENT_PATH =
246
+ /^\/var\/folders\/[A-Za-z0-9_-]+\/[A-Za-z0-9_-]+\/T\/pi-clipboard-[A-Fa-f0-9-]+\.(?:png|jpe?g|gif|webp)$/;
247
+
248
+ function normalizePreflightInput(response: string | undefined): string | undefined {
249
+ const trimmed = response?.trim();
250
+ if (!trimmed) return undefined;
251
+ if (TRANSIENT_CLIPBOARD_ATTACHMENT_PATH.test(trimmed)) return undefined;
252
+ return trimmed;
253
+ }
254
+
255
+ function formatDirtyTreeSummary(classification: WorkspaceDirtyTreeClassification, suggestedMessage: string | null): string {
256
+ const renderGroup = (title: string, entries: ClassifiedDirtyPath[], empty: string): string[] => [
257
+ title,
258
+ ...(entries.length > 0
259
+ ? entries.map((entry) => `- [${entry.confidence}] \`${entry.path}\` — ${entry.reason}`)
260
+ : [`- ${empty}`]),
261
+ "",
262
+ ];
263
+ const unrelatedOrUnknown = [...classification.unrelated, ...classification.unknown];
264
+ const lines = [
265
+ "### Dirty Tree Preflight",
266
+ "",
267
+ "Cleave requires an explicit preflight decision before worktree creation.",
268
+ "",
269
+ ...renderGroup("**Related changes**", classification.related, "none detected"),
270
+ ...renderGroup("**Unrelated / unknown changes**", unrelatedOrUnknown, "none detected"),
271
+ ...renderGroup("**Volatile artifacts**", classification.volatile, "none detected"),
272
+ "**Actions:** `checkpoint`, `stash-unrelated`, `stash-volatile`, `proceed-without-cleave`, `cancel`",
273
+ ...(suggestedMessage ? ["", `Suggested checkpoint commit: \`${suggestedMessage}\``] : []),
274
+ ];
275
+ return lines.join("\n");
276
+ }
277
+
278
+ async function stashPaths(pi: ExtensionAPI, repoPath: string, label: string, entries: ClassifiedDirtyPath[]): Promise<void> {
279
+ if (entries.length === 0) return;
280
+ const args = ["stash", "push", "-u", "-m", label, "--", ...entries.map((entry) => entry.path)];
281
+ const result = await pi.exec("git", args, { cwd: repoPath, timeout: 15_000 });
282
+ if (result.code !== 0) throw new Error(result.stderr.trim() || `Failed to stash ${label}`);
283
+ }
284
+
285
+ async function checkpointRelatedChanges(
286
+ pi: ExtensionAPI,
287
+ repoPath: string,
288
+ classification: WorkspaceDirtyTreeClassification,
289
+ checkpointMessage: string | null,
290
+ ui?: { input?: (prompt: string, initial?: string) => Promise<string | undefined> },
291
+ ): Promise<void> {
292
+ // When the user explicitly chooses "checkpoint", commit all non-volatile dirty
293
+ // files — not just those confidently classified as related. The conservative
294
+ // classification is for automatic decisions; an explicit user choice overrides it.
295
+ const allNonVolatile = [
296
+ ...classification.related,
297
+ ...classification.unrelated,
298
+ ...classification.unknown,
299
+ ].map((f) => f.path);
300
+
301
+ const filesToCommit = classification.checkpointFiles.length > 0
302
+ ? classification.checkpointFiles
303
+ : allNonVolatile;
304
+
305
+ if (filesToCommit.length === 0) {
306
+ throw new Error(
307
+ "Checkpoint scope is empty — no dirty files found to commit (only volatile artifacts are dirty). " +
308
+ "Choose a different preflight action.",
309
+ );
310
+ }
311
+
312
+ // Patch classification so the rest of the function uses the resolved file list.
313
+ classification = { ...classification, checkpointFiles: filesToCommit };
314
+ if (typeof ui?.input !== "function") {
315
+ throw new Error("Checkpoint requires interactive approval, but input is unavailable.");
316
+ }
317
+ const suggested = checkpointMessage ?? "chore(cleave): checkpoint before cleave";
318
+ const response = normalizePreflightInput(await ui.input(
319
+ [
320
+ `Checkpoint ${classification.checkpointFiles.length} related file(s).`,
321
+ `Press Enter to approve the suggested message, type a custom commit message to approve with edits, or type 'cancel' to decline.`,
322
+ `Suggested message: ${suggested}`,
323
+ ].join("\n"),
324
+ suggested,
325
+ ));
326
+ if (!response) {
327
+ // Accept the suggested message when the operator confirms with Enter.
328
+ } else if (response.toLowerCase() === "cancel") {
329
+ throw new Error("Checkpoint cancelled before commit approval.");
330
+ }
331
+ const commitMessage = response && response.length > 0 ? response : suggested;
332
+ const addResult = await pi.exec("git", ["add", "--", ...classification.checkpointFiles], { cwd: repoPath, timeout: 15_000 });
333
+ if (addResult.code !== 0) {
334
+ throw new Error(
335
+ `git add failed during checkpoint — ${addResult.stderr.trim() || "unknown error staging checkpoint files"}. ` +
336
+ "The checkpoint was not created. Choose a different preflight action or resolve the staging error first.",
337
+ );
338
+ }
339
+ const commitResult = await pi.exec("git", ["commit", "-m", commitMessage, "--", ...classification.checkpointFiles], {
340
+ cwd: repoPath,
341
+ timeout: 20_000,
342
+ });
343
+ if (commitResult.code !== 0) {
344
+ throw new Error(
345
+ `git commit failed during checkpoint — ${commitResult.stderr.trim() || "unknown error creating checkpoint commit"}. ` +
346
+ "The checkpoint was not created. Resolve the git error and try again.",
347
+ );
348
+ }
349
+ }
350
+
351
+ /**
352
+ * Maximum number of interactive preflight attempts before bailing.
353
+ * Prevents infinite loops when the agent repeatedly picks actions
354
+ * that don't resolve the dirty tree.
355
+ */
356
+ export const MAX_PREFLIGHT_ATTEMPTS = 3;
357
+
358
+ /**
359
+ * Verify the tree is clean after an action. If only volatile files remain,
360
+ * auto-stash them. Returns true if the tree is resolved, false if dirty
361
+ * files remain.
362
+ */
363
+ async function verifyCleanAfterAction(
364
+ pi: ExtensionAPI,
365
+ repoPath: string,
366
+ changeName: string | null,
367
+ openspecContext: OpenSpecContext | null,
368
+ onUpdate?: AgentToolUpdateCallback<Record<string, unknown>>,
369
+ ): Promise<{ clean: boolean; classification: WorkspaceDirtyTreeClassification | null }> {
370
+ const postStatus = await pi.exec("git", ["status", "--porcelain"], {
371
+ cwd: repoPath,
372
+ timeout: 5_000,
373
+ });
374
+ const postState = inspectGitState(postStatus.stdout);
375
+ if (postState.entries.length === 0) return { clean: true, classification: null };
376
+
377
+ const postClassification = classifyPreflightDirtyPaths(
378
+ postState.entries.map((e) => e.path),
379
+ { changeName, openspecContext },
380
+ );
381
+
382
+ // If only volatile files remain, auto-stash and treat as clean.
383
+ if (postState.nonVolatile.length === 0 && postClassification.volatile.length > 0) {
384
+ await stashPaths(pi, repoPath, "cleave-preflight-volatile", postClassification.volatile);
385
+ onUpdate?.({
386
+ content: [{ type: "text", text: "Remaining volatile artifacts stashed automatically — tree is clean." }],
387
+ details: { phase: "preflight", autoResolved: "volatile_only_stash" },
388
+ });
389
+ return { clean: true, classification: null };
390
+ }
391
+
392
+ return { clean: false, classification: postClassification };
393
+ }
394
+
395
+ export async function runDirtyTreePreflight(pi: ExtensionAPI, options: DirtyTreePreflightOptions): Promise<"continue" | "skip_cleave" | "cancelled"> {
396
+ const status = await pi.exec("git", ["status", "--porcelain"], {
397
+ cwd: options.repoPath,
398
+ timeout: 5_000,
399
+ });
400
+ const gitState = inspectGitState(status.stdout);
401
+ if (gitState.entries.length === 0) return "continue";
402
+
403
+ const openspecContext = options.openspecChangePath
404
+ ? (() => {
405
+ try {
406
+ return buildOpenSpecContext(options.openspecChangePath!);
407
+ } catch {
408
+ return null;
409
+ }
410
+ })()
411
+ : null;
412
+ const changeName = options.openspecChangePath?.replace(/\\/g, "/").split("/").pop() ?? null;
413
+ const classification = classifyPreflightDirtyPaths(gitState.entries.map((entry) => entry.path), {
414
+ changeName,
415
+ openspecContext,
416
+ });
417
+ const initialCheckpointPlan = buildCheckpointPlan(classification, { changeName, openspecContext });
418
+ const summary = formatDirtyTreeSummary(classification, initialCheckpointPlan.message);
419
+ options.onUpdate?.({ content: [{ type: "text", text: summary }], details: { phase: "preflight" } });
420
+
421
+ // Auto-resolve: volatile-only dirty tree — stash and continue without prompting.
422
+ if (gitState.nonVolatile.length === 0) {
423
+ if (classification.volatile.length > 0) {
424
+ await stashPaths(pi, options.repoPath, "cleave-preflight-volatile", classification.volatile);
425
+ options.onUpdate?.({
426
+ content: [{ type: "text", text: "Volatile-only dirty tree detected — stashed volatile artifacts automatically before cleave." }],
427
+ details: { phase: "preflight", autoResolved: "volatile_only_stash" },
428
+ });
429
+ }
430
+ return "continue";
431
+ }
432
+
433
+ const hasSelect = typeof options.ui?.select === "function";
434
+ const hasInput = typeof options.ui?.input === "function";
435
+ if (!hasSelect && !hasInput) {
436
+ throw new Error(summary + "\n\nInteractive input is unavailable, so cleave cannot resolve the dirty tree automatically.");
437
+ }
438
+
439
+ // Mutable classification — refreshed after each resolution action.
440
+ let currentClassification = classification;
441
+ // Only resolution actions (checkpoint, stash) increment this counter.
442
+ // Invalid input, empty guards, cancel, and proceed-without-cleave do NOT
443
+ // consume attempts — they are navigational, not resolution attempts.
444
+ let resolutionAttempts = 0;
445
+
446
+ // Outer safety cap: total loop iterations including non-resolution turns.
447
+ // Prevents truly pathological loops (e.g. select always returning garbage).
448
+ const MAX_TOTAL_ITERATIONS = MAX_PREFLIGHT_ATTEMPTS * 3;
449
+ let totalIterations = 0;
450
+
451
+ while (resolutionAttempts < MAX_PREFLIGHT_ATTEMPTS) {
452
+ totalIterations++;
453
+ if (totalIterations > MAX_TOTAL_ITERATIONS) {
454
+ break; // Fall through to the exhaustion error below
455
+ }
456
+
457
+ let answer: string | undefined;
458
+ if (hasSelect) {
459
+ const selected = await options.ui!.select!(
460
+ "Dirty tree detected — choose a preflight action to proceed:",
461
+ [...PREFLIGHT_ACTION_OPTIONS],
462
+ );
463
+ answer = parsePreflightAction(selected);
464
+ } else {
465
+ answer = normalizePreflightInput(
466
+ await options.ui!.input!("Dirty tree action [checkpoint|stash-unrelated|stash-volatile|proceed-without-cleave|cancel]:"),
467
+ )?.toLowerCase();
468
+ }
469
+
470
+ try {
471
+ switch (answer) {
472
+ case "checkpoint": {
473
+ resolutionAttempts++;
474
+ const currentCheckpointPlan = buildCheckpointPlan(currentClassification, { changeName, openspecContext });
475
+ await checkpointRelatedChanges(pi, options.repoPath, currentClassification, currentCheckpointPlan.message, options.ui);
476
+
477
+ const { clean, classification: postClassification } = await verifyCleanAfterAction(
478
+ pi, options.repoPath, changeName, openspecContext, options.onUpdate,
479
+ );
480
+ if (clean) return "continue";
481
+
482
+ // Dirty files remain after checkpoint — update classification and show diagnosis.
483
+ currentClassification = postClassification!;
484
+ const remainingPaths = [
485
+ ...currentClassification.related,
486
+ ...currentClassification.unrelated,
487
+ ...currentClassification.unknown,
488
+ ...currentClassification.volatile,
489
+ ];
490
+ options.onUpdate?.({
491
+ content: [{ type: "text", text:
492
+ "Checkpoint committed, but dirty files remain:\n" +
493
+ remainingPaths.map((f) => ` • ${f.path} [${f.reason}]`).join("\n") +
494
+ "\n\nChoose another action to resolve.",
495
+ }],
496
+ details: { phase: "preflight", postCheckpointDirty: remainingPaths.map((f) => f.path) },
497
+ });
498
+ break;
499
+ }
500
+ case "stash-unrelated": {
501
+ const toStash = [...currentClassification.unrelated, ...currentClassification.unknown];
502
+ if (toStash.length === 0) {
503
+ options.onUpdate?.({
504
+ content: [{ type: "text", text: "No unrelated or unknown files to stash. Choose a different action." }],
505
+ details: { phase: "preflight" },
506
+ });
507
+ break;
508
+ }
509
+ resolutionAttempts++;
510
+ await stashPaths(pi, options.repoPath, "cleave-preflight-unrelated", toStash);
511
+ const { clean, classification: postClassification } = await verifyCleanAfterAction(
512
+ pi, options.repoPath, changeName, openspecContext, options.onUpdate,
513
+ );
514
+ if (clean) return "continue";
515
+ currentClassification = postClassification!;
516
+ break;
517
+ }
518
+ case "stash-volatile": {
519
+ if (currentClassification.volatile.length === 0) {
520
+ options.onUpdate?.({
521
+ content: [{ type: "text", text: "No volatile files to stash. Choose a different action." }],
522
+ details: { phase: "preflight" },
523
+ });
524
+ break;
525
+ }
526
+ resolutionAttempts++;
527
+ await stashPaths(pi, options.repoPath, "cleave-preflight-volatile", currentClassification.volatile);
528
+ const { clean, classification: postClassification } = await verifyCleanAfterAction(
529
+ pi, options.repoPath, changeName, openspecContext, options.onUpdate,
530
+ );
531
+ if (clean) return "continue";
532
+ currentClassification = postClassification!;
533
+ break;
534
+ }
535
+ case "proceed-without-cleave":
536
+ return "skip_cleave";
537
+ case "cancel":
538
+ case "":
539
+ return "cancelled";
540
+ default:
541
+ options.onUpdate?.({
542
+ content: [{ type: "text", text: "Invalid action. Choose checkpoint, stash-unrelated, stash-volatile, proceed-without-cleave, or cancel." }],
543
+ details: { phase: "preflight" },
544
+ });
545
+ }
546
+ } catch (error) {
547
+ // Resolution action threw (e.g. git commit failed) — still counts
548
+ // as a resolution attempt since work was attempted.
549
+ const message = error instanceof Error ? error.message : String(error);
550
+ options.onUpdate?.({
551
+ content: [{ type: "text", text: `Preflight action failed: ${message}` }],
552
+ details: { phase: "preflight" },
553
+ });
554
+ }
555
+ }
556
+
557
+ // Exhausted resolution attempts — report remaining dirty files and bail.
558
+ const remaining = [
559
+ ...currentClassification.related,
560
+ ...currentClassification.unrelated,
561
+ ...currentClassification.unknown,
562
+ ...currentClassification.volatile,
563
+ ];
564
+ throw new Error(
565
+ `Dirty tree not resolved after ${resolutionAttempts} resolution attempt(s). Remaining files:\n` +
566
+ remaining.map((f) => ` • ${f.path}`).join("\n") +
567
+ "\n\nResolve manually (git commit/stash/checkout) and retry /cleave.",
568
+ );
569
+ }
570
+
571
+ interface AssessExecutionContext {
572
+ cwd: string;
573
+ bridgeInvocation?: boolean;
574
+ hasUI?: boolean;
575
+ model?: { id?: string };
576
+ waitForIdle?: (() => Promise<void>) | undefined;
577
+ }
578
+
579
+ interface AssessDiffContext {
580
+ ref: string;
581
+ diffStat: string;
582
+ diffContent: string;
583
+ recentLog: string;
584
+ }
585
+
586
+ function makeAssessResult<TData>(input: {
587
+ subcommand: AssessStructuredResult<TData>["subcommand"];
588
+ args: string;
589
+ ok: boolean;
590
+ summary: string;
591
+ humanText: string;
592
+ data: TData;
593
+ effects?: AssessEffect[];
594
+ nextSteps?: string[];
595
+ completion?: AssessCompletion;
596
+ lifecycle?: AssessLifecycleHint;
597
+ lifecycleRecord?: AssessLifecycleRecord;
598
+ }): AssessStructuredResult<TData> {
599
+ return {
600
+ command: "assess",
601
+ subcommand: input.subcommand,
602
+ args: input.args,
603
+ ok: input.ok,
604
+ summary: input.summary,
605
+ humanText: input.humanText,
606
+ data: input.data,
607
+ effects: input.effects ?? [],
608
+ nextSteps: input.nextSteps ?? [],
609
+ completion: input.completion,
610
+ lifecycle: input.lifecycle,
611
+ lifecycleRecord: input.lifecycleRecord,
612
+ };
613
+ }
614
+
615
+ async function collectAssessmentSnapshot(pi: ExtensionAPI, cwd: string): Promise<{ gitHead: string | null; fingerprint: string }> {
616
+ let gitHead: string | null = null;
617
+ let status = "";
618
+
619
+ try {
620
+ const head = await pi.exec("git", ["rev-parse", "--short", "HEAD"], { cwd, timeout: 5_000 });
621
+ if (head.code === 0) gitHead = head.stdout.trim() || null;
622
+ } catch {
623
+ /* proceed with null gitHead */
624
+ }
625
+
626
+ try {
627
+ const diff = await pi.exec("git", ["status", "--short", "--untracked-files=all"], { cwd, timeout: 5_000 });
628
+ if (diff.code === 0) status = diff.stdout.trim();
629
+ } catch {
630
+ /* proceed with empty status */
631
+ }
632
+
633
+ const fingerprint = createHash("sha256")
634
+ .update(gitHead ?? "nogit")
635
+ .update("\n")
636
+ .update(status)
637
+ .digest("hex");
638
+
639
+ return { gitHead, fingerprint };
640
+ }
641
+
642
+ async function buildLifecycleRecord(
643
+ pi: ExtensionAPI,
644
+ cwd: string,
645
+ options: {
646
+ changeName: string;
647
+ assessmentKind: "spec" | "cleave";
648
+ outcome: AssessLifecycleOutcome;
649
+ recommendedAction: string | null;
650
+ changedFiles?: string[];
651
+ constraints?: string[];
652
+ snapshot?: { gitHead: string | null; fingerprint: string };
653
+ },
654
+ ): Promise<AssessLifecycleRecord> {
655
+ const snapshot = options.snapshot ?? await collectAssessmentSnapshot(pi, cwd);
656
+ return {
657
+ changeName: options.changeName,
658
+ assessmentKind: options.assessmentKind,
659
+ outcome: options.outcome,
660
+ timestamp: new Date().toISOString(),
661
+ snapshot,
662
+ reconciliation: {
663
+ reopen: options.outcome === "reopen",
664
+ changedFiles: [...new Set((options.changedFiles ?? []).map((file) => file.trim()).filter(Boolean))],
665
+ constraints: [...new Set((options.constraints ?? []).map((constraint) => constraint.trim()).filter(Boolean))],
666
+ recommendedAction: options.recommendedAction,
667
+ },
668
+ };
669
+ }
670
+
671
+ interface AssessSpecAgentResult {
672
+ summary: AssessSpecSummary;
673
+ scenarios: AssessSpecScenarioResult[];
674
+ changedFiles?: string[];
675
+ constraints?: string[];
676
+ overallNotes?: string;
677
+ }
678
+
679
+ interface SpecAssessmentRunnerInput {
680
+ repoPath: string;
681
+ changeName: string;
682
+ scenarioText: string;
683
+ designContext: string[];
684
+ apiContractContext: string[];
685
+ diffContent: string;
686
+ expectedScenarioCount: number;
687
+ modelId?: string;
688
+ }
689
+
690
+ interface SpecAssessmentRunnerOutput {
691
+ assessed: AssessSpecAgentResult;
692
+ snapshot?: { gitHead: string | null; fingerprint: string };
693
+ }
694
+
695
+ interface AssessExecutorOverrides {
696
+ runSpecAssessment?: (input: SpecAssessmentRunnerInput) => Promise<SpecAssessmentRunnerOutput>;
697
+ }
698
+
699
+ function isInteractiveAssessContext(ctx: AssessExecutionContext): ctx is AssessExecutionContext & ExtensionCommandContext {
700
+ return ctx.bridgeInvocation !== true && ctx.hasUI === true && typeof ctx.waitForIdle === "function";
701
+ }
702
+
703
+ function countSpecScenarios(specCtx: OpenSpecContext): number {
704
+ return specCtx.specScenarios.reduce((total, scenarioSet) => total + scenarioSet.scenarios.length, 0);
705
+ }
706
+
707
+ function determineSpecOutcome(summary: AssessSpecSummary): AssessLifecycleOutcome {
708
+ if (summary.fail > 0) return "reopen";
709
+ if (summary.unclear > 0) return "ambiguous";
710
+ return "pass";
711
+ }
712
+
713
+ function normalizeSpecAssessment(payload: AssessSpecAgentResult, expectedTotal: number): AssessSpecAgentResult {
714
+ const scenarios = payload.scenarios.map((scenario) => ({
715
+ ...scenario,
716
+ evidence: [...new Set((scenario.evidence ?? []).map((entry) => entry.trim()).filter(Boolean))],
717
+ notes: scenario.notes?.trim() || undefined,
718
+ }));
719
+ const summary: AssessSpecSummary = {
720
+ total: payload.summary.total,
721
+ pass: payload.summary.pass,
722
+ fail: payload.summary.fail,
723
+ unclear: payload.summary.unclear,
724
+ };
725
+ if (summary.total !== expectedTotal || scenarios.length !== expectedTotal) {
726
+ throw new Error(`Assessment returned ${scenarios.length}/${expectedTotal} scenarios.`);
727
+ }
728
+ return {
729
+ summary,
730
+ scenarios,
731
+ changedFiles: [...new Set((payload.changedFiles ?? []).map((entry) => entry.trim()).filter(Boolean))],
732
+ constraints: [...new Set((payload.constraints ?? []).map((entry) => entry.trim()).filter(Boolean))],
733
+ overallNotes: payload.overallNotes?.trim() || undefined,
734
+ };
735
+ }
736
+
737
+
738
+ function formatSpecOutcomeLabel(outcome: AssessLifecycleOutcome): string {
739
+ switch (outcome) {
740
+ case "pass":
741
+ return "PASS";
742
+ case "reopen":
743
+ return "REOPEN";
744
+ case "ambiguous":
745
+ return "AMBIGUOUS";
746
+ }
747
+ }
748
+
749
+ function buildSpecAssessmentHumanText(changeName: string, assessed: AssessSpecAgentResult, outcome: AssessLifecycleOutcome): string {
750
+ const lines = [
751
+ `**Spec Assessment Complete: \`${changeName}\`**`,
752
+ "",
753
+ `Outcome: **${formatSpecOutcomeLabel(outcome)}**`,
754
+ `Scenarios: ${assessed.summary.pass}/${assessed.summary.total} pass` +
755
+ (assessed.summary.fail > 0 ? `, ${assessed.summary.fail} fail` : "") +
756
+ (assessed.summary.unclear > 0 ? `, ${assessed.summary.unclear} unclear` : ""),
757
+ ];
758
+
759
+ for (const scenario of assessed.scenarios) {
760
+ lines.push(
761
+ "",
762
+ `- [${scenario.status}] ${scenario.domain} → ${scenario.requirement}`,
763
+ ` ${scenario.scenario.replace(/\n/g, " ")}`,
764
+ ...scenario.evidence.map((entry) => ` Evidence: ${entry}`),
765
+ ...(scenario.notes ? [` Notes: ${scenario.notes}`] : []),
766
+ );
767
+ }
768
+
769
+ if (assessed.overallNotes) {
770
+ lines.push("", `Overall notes: ${assessed.overallNotes}`);
771
+ }
772
+
773
+ return lines.join("\n");
774
+ }
775
+
776
+
777
+ function applyAssessEffects(pi: ExtensionAPI, result: AssessStructuredResult): void {
778
+ for (const effect of result.effects) {
779
+ if (effect.type === "view") {
780
+ pi.sendMessage({
781
+ customType: "view",
782
+ content: effect.content,
783
+ display: effect.display ?? true,
784
+ });
785
+ continue;
786
+ }
787
+ if (effect.type === "follow_up") {
788
+ pi.sendUserMessage(effect.content, { deliverAs: "followUp" });
789
+ }
790
+ }
791
+ }
792
+
793
+ async function collectAssessDiffContext(
794
+ pi: ExtensionAPI,
795
+ cwd: string,
796
+ ref: string,
797
+ fallbackToUnstaged: boolean,
798
+ ): Promise<AssessDiffContext | null> {
799
+ let effectiveRef = ref;
800
+ let diffStat = "";
801
+ let diffContent = "";
802
+ let recentLog = "";
803
+
804
+ if (!effectiveRef && fallbackToUnstaged) {
805
+ for (const candidate of ["HEAD~3", "HEAD~2", "HEAD~1"]) {
806
+ try {
807
+ const test = await pi.exec("git", ["rev-parse", "--verify", candidate], { cwd, timeout: 3_000 });
808
+ if (test.code === 0) {
809
+ effectiveRef = candidate;
810
+ break;
811
+ }
812
+ } catch {
813
+ /* try next */
814
+ }
815
+ }
816
+ }
817
+
818
+ if (effectiveRef) {
819
+ try {
820
+ const stat = await pi.exec("git", ["diff", "--stat", effectiveRef], { cwd, timeout: 5_000 });
821
+ diffStat = stat.stdout.trim();
822
+ const diff = await pi.exec("git", ["diff", effectiveRef], { cwd, timeout: 10_000 });
823
+ diffContent = diff.stdout.slice(0, 40_000);
824
+ const log = await pi.exec("git", ["log", "--oneline", "-10"], { cwd, timeout: 5_000 });
825
+ recentLog = log.stdout.trim();
826
+ } catch {
827
+ /* fall through */
828
+ }
829
+ }
830
+
831
+ if (!diffStat && !diffContent && fallbackToUnstaged) {
832
+ try {
833
+ const stat = await pi.exec("git", ["diff", "--stat"], { cwd, timeout: 5_000 });
834
+ diffStat = stat.stdout.trim();
835
+ const diff = await pi.exec("git", ["diff"], { cwd, timeout: 10_000 });
836
+ diffContent = diff.stdout.slice(0, 40_000);
837
+ effectiveRef = "unstaged";
838
+ } catch {
839
+ /* proceed without git diff */
840
+ }
841
+ }
842
+
843
+ if (!diffStat && !diffContent) return null;
844
+ return { ref: effectiveRef, diffStat, diffContent, recentLog };
845
+ }
846
+
847
+ function buildGuardrailPreamble(cwd: string): string {
848
+ try {
849
+ const checks = discoverGuardrails(cwd);
850
+ if (checks.length === 0) return "";
851
+ const suite = runGuardrails(cwd, checks);
852
+ return formatGuardrailResults(suite);
853
+ } catch {
854
+ return "";
855
+ }
856
+ }
857
+
858
+ async function executeAssessCleave(
859
+ pi: ExtensionAPI,
860
+ ctx: AssessExecutionContext,
861
+ args: string,
862
+ ): Promise<AssessStructuredResult> {
863
+ const diffContext = await collectAssessDiffContext(pi, ctx.cwd, args.trim(), true);
864
+ if (!diffContext) {
865
+ return makeAssessResult({
866
+ subcommand: "cleave",
867
+ args,
868
+ ok: false,
869
+ summary: "No recent changes found",
870
+ humanText: "No recent changes found. Nothing to assess.",
871
+ data: { reason: "no_changes" },
872
+ effects: [{ type: "view", content: "No recent changes found. Nothing to assess." }],
873
+ });
874
+ }
875
+
876
+ const activeOpenSpec = getActiveChangesStatus(ctx.cwd)
877
+ .filter((status) => status.totalTasks > 0)
878
+ .sort((a, b) => b.lastModifiedMs - a.lastModifiedMs);
879
+ const targetChange = activeOpenSpec[0]?.name;
880
+ const lifecycle = targetChange
881
+ ? { changeName: targetChange, assessmentKind: "cleave" as const, outcomes: ["pass", "reopen", "ambiguous"] as const }
882
+ : undefined;
883
+ const postAssessInstruction = targetChange
884
+ ? [
885
+ "",
886
+ `After review/fixes/tests, call \`openspec_manage\` with action \`reconcile_after_assess\`, change_name \`${targetChange}\`, assessment_kind \`cleave\`, and outcome:`,
887
+ "- `pass` if all Critical/Warning work is resolved cleanly",
888
+ "- `reopen` if remaining work or follow-up fixes reopen implementation",
889
+ "- `ambiguous` if you cannot safely map reviewer findings back to task state",
890
+ "Include `changed_files` for any follow-up fix files and `constraints` for new implementation constraints discovered during review.",
891
+ ]
892
+ : [];
893
+ const guardrailPreamble = buildGuardrailPreamble(ctx.cwd);
894
+ const prompt = [
895
+ "## Adversarial Review → Auto-Fix Pipeline",
896
+ "",
897
+ "You are doing an adversarial code review of recent changes.",
898
+ "Your job is to find real issues, then fix them automatically.",
899
+ "",
900
+ ...(guardrailPreamble ? [
901
+ "### Deterministic Analysis",
902
+ "",
903
+ guardrailPreamble,
904
+ "",
905
+ "The above are compiler/linter findings — treat failures as Critical issues.",
906
+ "",
907
+ ] : []),
908
+ "### Step 1: Review",
909
+ "",
910
+ "Analyze these recent changes for:",
911
+ "- **Critical bugs**: logic errors, race conditions, missing error handling",
912
+ "- **Warnings**: misleading names, missing edge cases, fragile patterns",
913
+ "- **Nits**: dead code, style inconsistencies (low priority)",
914
+ "",
915
+ "Recent commits:",
916
+ "```",
917
+ diffContext.recentLog,
918
+ "```",
919
+ "",
920
+ "Diff stat:",
921
+ "```",
922
+ diffContext.diffStat,
923
+ "```",
924
+ "",
925
+ "Full diff (truncated to 40KB):",
926
+ "```diff",
927
+ diffContext.diffContent,
928
+ "```",
929
+ "",
930
+ "### Step 2: Categorize",
931
+ "",
932
+ "Present findings as a numbered list grouped by severity:",
933
+ "- **C1, C2...** for critical issues",
934
+ "- **W1, W2...** for warnings",
935
+ "- **N1, N2...** for nits",
936
+ "",
937
+ "### Step 3: Fix",
938
+ "",
939
+ "After presenting the list, **immediately fix all Critical and Warning issues**.",
940
+ "Do NOT wait for confirmation — the user invoked `/assess cleave` which means",
941
+ '"assess and fix in one shot". Work through C and W items systematically.',
942
+ "Nits are optional — fix them if trivial, skip if not.",
943
+ "",
944
+ "After all fixes, run the test suite to verify nothing broke.",
945
+ "Then commit with a conventional commit message summarizing all fixes.",
946
+ ...postAssessInstruction,
947
+ ].join("\n");
948
+ const lifecycleRecord = targetChange
949
+ ? await buildLifecycleRecord(pi, ctx.cwd, {
950
+ changeName: targetChange,
951
+ assessmentKind: "cleave",
952
+ outcome: "ambiguous",
953
+ recommendedAction: `Run openspec_manage reconcile_after_assess ${targetChange} with outcome pass, reopen, or ambiguous after review completes.`,
954
+ })
955
+ : undefined;
956
+ const humanText = [
957
+ "**Assess → Cleave pipeline starting...**",
958
+ "",
959
+ `Reviewing changes since \`${diffContext.ref}\`:`,
960
+ "```",
961
+ diffContext.diffStat,
962
+ "```",
963
+ ].join("\n");
964
+ const nextSteps = ["Review findings", "Apply all Critical and Warning fixes", "Run verification and reconcile lifecycle state if needed"];
965
+ return makeAssessResult({
966
+ subcommand: "cleave",
967
+ args,
968
+ ok: true,
969
+ summary: `Prepared adversarial review for ${diffContext.ref}`,
970
+ humanText,
971
+ data: {
972
+ ref: diffContext.ref,
973
+ diffStat: diffContext.diffStat,
974
+ recentLog: diffContext.recentLog,
975
+ hasGuardrails: Boolean(guardrailPreamble),
976
+ reconcileChange: targetChange ?? null,
977
+ snapshot: lifecycleRecord?.snapshot ?? null,
978
+ },
979
+ effects: [
980
+ { type: "view", content: humanText },
981
+ { type: "follow_up", content: prompt },
982
+ ...(lifecycle ? [{ type: "reconcile_hint" as const, ...lifecycle }] : []),
983
+ ],
984
+ nextSteps,
985
+ lifecycle,
986
+ lifecycleRecord,
987
+ });
988
+ }
989
+
990
+ async function executeAssessDiff(
991
+ pi: ExtensionAPI,
992
+ ctx: AssessExecutionContext,
993
+ args: string,
994
+ ): Promise<AssessStructuredResult> {
995
+ const requestedRef = args.trim() || "HEAD~1";
996
+ const diffContext = await collectAssessDiffContext(pi, ctx.cwd, requestedRef, false);
997
+ if (!diffContext) {
998
+ const humanText = `No changes found relative to \`${requestedRef}\`.`;
999
+ return makeAssessResult({
1000
+ subcommand: "diff",
1001
+ args,
1002
+ ok: false,
1003
+ summary: `No diff found for ${requestedRef}`,
1004
+ humanText,
1005
+ data: { ref: requestedRef, reason: "no_changes" },
1006
+ effects: [{ type: "view", content: humanText }],
1007
+ });
1008
+ }
1009
+
1010
+ const guardrailPreamble = buildGuardrailPreamble(ctx.cwd);
1011
+ const humanText = [
1012
+ `**Assessing diff since \`${diffContext.ref}\`...**`,
1013
+ "```",
1014
+ diffContext.diffStat,
1015
+ "```",
1016
+ ].join("\n");
1017
+ const prompt = [
1018
+ `## Code Review: diff since \`${diffContext.ref}\``,
1019
+ "",
1020
+ "Do an adversarial code review of these changes.",
1021
+ "Find bugs, fragile patterns, missing edge cases, and style issues.",
1022
+ "",
1023
+ ...(guardrailPreamble ? [
1024
+ "### Deterministic Analysis",
1025
+ "",
1026
+ guardrailPreamble,
1027
+ "",
1028
+ "The above are compiler/linter findings — treat failures as Critical issues.",
1029
+ "",
1030
+ ] : []),
1031
+ "Categorize findings as:",
1032
+ "- **C1, C2...** Critical (logic errors, security, data loss)",
1033
+ "- **W1, W2...** Warning (fragile, misleading, missing cases)",
1034
+ "- **N1, N2...** Nit (style, dead code, minor)",
1035
+ "",
1036
+ "Diff stat:",
1037
+ "```",
1038
+ diffContext.diffStat,
1039
+ "```",
1040
+ "",
1041
+ "```diff",
1042
+ diffContext.diffContent,
1043
+ "```",
1044
+ "",
1045
+ "Present findings only — do NOT fix anything unless I ask.",
1046
+ ].join("\n");
1047
+ return makeAssessResult({
1048
+ subcommand: "diff",
1049
+ args,
1050
+ ok: true,
1051
+ summary: `Prepared review for ${diffContext.ref}`,
1052
+ humanText,
1053
+ data: {
1054
+ ref: diffContext.ref,
1055
+ diffStat: diffContext.diffStat,
1056
+ hasGuardrails: Boolean(guardrailPreamble),
1057
+ },
1058
+ effects: [
1059
+ { type: "view", content: humanText },
1060
+ { type: "follow_up", content: prompt },
1061
+ ],
1062
+ nextSteps: ["Read the review findings", "Decide whether to fix issues or continue implementation"],
1063
+ });
1064
+ }
1065
+
1066
+ async function executeAssessSpec(
1067
+ pi: ExtensionAPI,
1068
+ ctx: AssessExecutionContext,
1069
+ args: string,
1070
+ overrides?: AssessExecutorOverrides,
1071
+ ): Promise<AssessStructuredResult> {
1072
+ const repoPath = ctx.cwd;
1073
+ const openspecDir = detectOpenSpec(repoPath);
1074
+ if (!openspecDir) {
1075
+ const humanText = "No `openspec/` directory found. Nothing to assess against.";
1076
+ return makeAssessResult({
1077
+ subcommand: "spec",
1078
+ args,
1079
+ ok: false,
1080
+ summary: "OpenSpec directory not found",
1081
+ humanText,
1082
+ data: { reason: "openspec_missing" },
1083
+ effects: [{ type: "view", content: humanText }],
1084
+ });
1085
+ }
1086
+
1087
+ const changes = findExecutableChanges(openspecDir);
1088
+ if (changes.length === 0) {
1089
+ const humanText = "No OpenSpec changes with tasks.md found.";
1090
+ return makeAssessResult({
1091
+ subcommand: "spec",
1092
+ args,
1093
+ ok: false,
1094
+ summary: "No executable OpenSpec changes found",
1095
+ humanText,
1096
+ data: { reason: "no_executable_changes" },
1097
+ effects: [{ type: "view", content: humanText }],
1098
+ });
1099
+ }
1100
+
1101
+ const requestedChange = args.trim();
1102
+ let target = requestedChange
1103
+ ? changes.find((change) => change.name === requestedChange || change.name.includes(requestedChange))
1104
+ : null;
1105
+ if (!target) {
1106
+ const status = getActiveChangesStatus(repoPath);
1107
+ const withTasks = status.filter((entry) => entry.totalTasks > 0);
1108
+ if (withTasks.length > 0) {
1109
+ const byRecency = [...withTasks].sort((a, b) => b.lastModifiedMs - a.lastModifiedMs);
1110
+ target = changes.find((change) => change.name === byRecency[0].name) ?? changes[0];
1111
+ } else {
1112
+ target = changes[0];
1113
+ }
1114
+ }
1115
+
1116
+ const specCtx = buildOpenSpecContext(target.path);
1117
+ if (specCtx.specScenarios.length === 0) {
1118
+ const humanText = `Change \`${target.name}\` has no delta spec scenarios to assess against.\n\nUse \`/assess diff\` for general code review instead.`;
1119
+ return makeAssessResult({
1120
+ subcommand: "spec",
1121
+ args,
1122
+ ok: false,
1123
+ summary: `No delta scenarios found for ${target.name}`,
1124
+ humanText,
1125
+ data: { changeName: target.name, reason: "no_scenarios" },
1126
+ effects: [{ type: "view", content: humanText }],
1127
+ });
1128
+ }
1129
+
1130
+ const scenarioText = specCtx.specScenarios.map((scenarioSet) => {
1131
+ const renderedScenarios = scenarioSet.scenarios.map((scenario) => {
1132
+ const lines = scenario.split("\n").map((line) => ` ${line}`).join("\n");
1133
+ return lines;
1134
+ }).join("\n");
1135
+ return `**${scenarioSet.domain} → ${scenarioSet.requirement}**\n${renderedScenarios}`;
1136
+ }).join("\n\n");
1137
+
1138
+ let diffContent = "";
1139
+ try {
1140
+ const diff = await pi.exec("git", ["diff", "HEAD~5", "--", "."], { cwd: repoPath, timeout: 10_000 });
1141
+ diffContent = diff.stdout.slice(0, 30_000);
1142
+ } catch {
1143
+ try {
1144
+ const diff = await pi.exec("git", ["diff", "--", "."], { cwd: repoPath, timeout: 10_000 });
1145
+ diffContent = diff.stdout.slice(0, 30_000);
1146
+ } catch {
1147
+ /* proceed without diff */
1148
+ }
1149
+ }
1150
+
1151
+ const designContext = specCtx.decisions.length > 0
1152
+ ? [
1153
+ "### Design Decisions",
1154
+ "",
1155
+ "The implementation should also reflect these decisions from design.md:",
1156
+ "",
1157
+ ...specCtx.decisions.map((decision) => `- ${decision}`),
1158
+ "",
1159
+ ]
1160
+ : [];
1161
+ const apiContractContext = specCtx.apiContract
1162
+ ? [
1163
+ "### API Contract",
1164
+ "",
1165
+ "The implementation must conform to this OpenAPI/AsyncAPI contract (`api.yaml`).",
1166
+ "Verify that:",
1167
+ "- All paths/methods defined in the contract are implemented",
1168
+ "- Request/response schemas match the contract exactly",
1169
+ "- Status codes and error responses match the contract",
1170
+ "- Security schemes are applied as specified",
1171
+ "- Any endpoint in the code but NOT in the contract is flagged as undocumented",
1172
+ "",
1173
+ "```yaml",
1174
+ specCtx.apiContract.length > 15_000
1175
+ ? specCtx.apiContract.slice(0, 15_000) + "\n# ... (truncated)"
1176
+ : specCtx.apiContract,
1177
+ "```",
1178
+ "",
1179
+ ]
1180
+ : [];
1181
+ const lifecycle: AssessLifecycleHint = {
1182
+ changeName: target.name,
1183
+ assessmentKind: "spec",
1184
+ outcomes: ["pass", "reopen", "ambiguous"],
1185
+ };
1186
+ const totalScenarioCount = countSpecScenarios(specCtx);
1187
+ const introText = [
1188
+ `**Spec Assessment: \`${target.name}\`**`,
1189
+ "",
1190
+ `Evaluating implementation against ${totalScenarioCount} spec scenarios`
1191
+ + (specCtx.decisions.length > 0 ? ` and ${specCtx.decisions.length} design decisions` : "")
1192
+ + (specCtx.apiContract ? " and API contract (`api.yaml`)" : "")
1193
+ + "...",
1194
+ ].join("\n");
1195
+ const prompt = [
1196
+ `## Spec-Driven Assessment: \`${target.name}\``,
1197
+ "",
1198
+ "Assess whether the current implementation satisfies these OpenSpec scenarios.",
1199
+ "For each scenario, determine: **PASS**, **FAIL**, or **UNCLEAR**.",
1200
+ ...(specCtx.apiContract ? ["", "Also verify implementation conformance to the API contract."] : []),
1201
+ "",
1202
+ "### Acceptance Criteria",
1203
+ "",
1204
+ scenarioText,
1205
+ "",
1206
+ ...designContext,
1207
+ ...apiContractContext,
1208
+ "### Instructions",
1209
+ "",
1210
+ "1. Read the relevant source files to check each scenario",
1211
+ ...(specCtx.apiContract ? [" - Also check route definitions, schemas, and status codes against the API contract"] : []),
1212
+ "2. For each scenario, report:",
1213
+ " - **PASS** — implementation clearly satisfies the Given/When/Then",
1214
+ " - **FAIL** — implementation contradicts or is missing",
1215
+ " - **UNCLEAR** — can't determine without running tests",
1216
+ "3. Summarize with a count: N/M scenarios passing",
1217
+ "4. For any FAIL items, explain what's wrong and suggest fixes",
1218
+ "5. Do NOT auto-fix — this is assessment only",
1219
+ `6. After the assessment, if the result reopens work or reveals new constraints/file-scope drift, call \`openspec_manage\` with action \`reconcile_after_assess\`, change_name \`${target.name}\`, assessment_kind \`spec\`, and outcome \`reopen\` or \`ambiguous\` as appropriate. If all scenarios pass cleanly, call it with outcome \`pass\` to refresh lifecycle state.`,
1220
+ ...(diffContent ? ["", "### Recent Changes (for context)", "", "```diff", diffContent, "```"] : []),
1221
+ ].join("\n");
1222
+
1223
+ // Use the follow-up pattern for any in-session context: return the prepared
1224
+ // assessment prompt and let the current LLM session evaluate scenarios.
1225
+ // The subprocess path below is retained only for programmatic callers that
1226
+ // inject overrides.runSpecAssessment (e.g. tests).
1227
+ if (isInteractiveAssessContext(ctx) || ctx.bridgeInvocation) {
1228
+ const lifecycleRecord = await buildLifecycleRecord(pi, ctx.cwd, {
1229
+ changeName: target.name,
1230
+ assessmentKind: "spec",
1231
+ outcome: "ambiguous",
1232
+ recommendedAction: `Run openspec_manage reconcile_after_assess ${target.name} with outcome pass, reopen, or ambiguous after scenario evaluation completes.`,
1233
+ });
1234
+ const result = makeAssessResult({
1235
+ subcommand: "spec",
1236
+ args,
1237
+ ok: true,
1238
+ summary: `Prepared spec assessment for ${target.name}`,
1239
+ humanText: introText,
1240
+ data: {
1241
+ changeName: target.name,
1242
+ scenarioCount: totalScenarioCount,
1243
+ decisionCount: specCtx.decisions.length,
1244
+ hasApiContract: Boolean(specCtx.apiContract),
1245
+ snapshot: lifecycleRecord.snapshot,
1246
+ },
1247
+ effects: [
1248
+ { type: "view", content: introText },
1249
+ { type: "follow_up", content: prompt },
1250
+ { type: "reconcile_hint" as const, ...lifecycle },
1251
+ ],
1252
+ nextSteps: ["Assess each scenario", "Reconcile lifecycle state based on the assessment outcome"],
1253
+ completion: { completed: false, completedInBand: false, requiresFollowUp: true },
1254
+ lifecycle,
1255
+ lifecycleRecord,
1256
+ });
1257
+ // For bridge invocations, eagerly deliver effects so the follow-up prompt
1258
+ // reaches the LLM even if the caller pipeline doesn't include a handler
1259
+ // that calls applyAssessEffects. Clear effects after to prevent double-
1260
+ // delivery (the agentHandler also calls applyAssessEffects).
1261
+ // Interactive callers leave effects intact for interactiveHandler to apply.
1262
+ if (ctx.bridgeInvocation) {
1263
+ applyAssessEffects(pi, result);
1264
+ result.effects = [];
1265
+ }
1266
+ return result;
1267
+ }
1268
+
1269
+ if (!overrides?.runSpecAssessment) {
1270
+ throw new Error("[assess spec] Unexpected code path: neither interactive nor bridge context, and no runSpecAssessment override provided.");
1271
+ }
1272
+ const runSpecAssessment = overrides.runSpecAssessment;
1273
+ const completed = await runSpecAssessment({
1274
+ repoPath,
1275
+ changeName: target.name,
1276
+ scenarioText,
1277
+ designContext,
1278
+ apiContractContext,
1279
+ diffContent,
1280
+ expectedScenarioCount: totalScenarioCount,
1281
+ modelId: ctx.model?.id,
1282
+ });
1283
+ const assessed = normalizeSpecAssessment(completed.assessed, totalScenarioCount);
1284
+ const outcome = determineSpecOutcome(assessed.summary);
1285
+ const snapshot = completed.snapshot ?? await collectAssessmentSnapshot(pi, ctx.cwd);
1286
+ const recommendedAction = `Call openspec_manage reconcile_after_assess for ${target.name} with assessment_kind spec and outcome ${outcome}.`;
1287
+ const lifecycleRecord = await buildLifecycleRecord(pi, ctx.cwd, {
1288
+ changeName: target.name,
1289
+ assessmentKind: "spec",
1290
+ outcome,
1291
+ recommendedAction,
1292
+ changedFiles: assessed.changedFiles,
1293
+ constraints: assessed.constraints,
1294
+ snapshot,
1295
+ });
1296
+ const humanText = buildSpecAssessmentHumanText(target.name, assessed, outcome);
1297
+ const summary = `Completed spec assessment for ${target.name}: ${assessed.summary.pass}/${assessed.summary.total} pass, ${assessed.summary.fail} fail, ${assessed.summary.unclear} unclear`;
1298
+ const nextSteps = [
1299
+ `Call openspec_manage reconcile_after_assess for ${target.name} with outcome ${outcome}`,
1300
+ ...(outcome === "pass" ? [`If archive gates clear, run /opsx:archive ${target.name}`] : ["Address findings before archive"]),
1301
+ ];
1302
+ return makeAssessResult({
1303
+ subcommand: "spec",
1304
+ args,
1305
+ ok: true,
1306
+ summary,
1307
+ humanText,
1308
+ data: {
1309
+ changeName: target.name,
1310
+ outcome,
1311
+ scenarioSummary: assessed.summary,
1312
+ scenarios: assessed.scenarios,
1313
+ changedFiles: assessed.changedFiles ?? [],
1314
+ constraints: assessed.constraints ?? [],
1315
+ overallNotes: assessed.overallNotes ?? null,
1316
+ snapshot,
1317
+ recommendedReconcileOutcome: outcome,
1318
+ },
1319
+ effects: [{ type: "reconcile_hint" as const, ...lifecycle }],
1320
+ nextSteps,
1321
+ completion: { completed: true, completedInBand: true, requiresFollowUp: false, outcome },
1322
+ lifecycle,
1323
+ lifecycleRecord,
1324
+ });
1325
+ }
1326
+
1327
+ async function executeAssessComplexity(args: string): Promise<AssessStructuredResult> {
1328
+ const directive = args.trim();
1329
+ if (!directive) {
1330
+ const humanText = "Usage: `/assess complexity <directive>`\n\nAssess whether a task should be decomposed or executed directly.";
1331
+ return makeAssessResult({
1332
+ subcommand: "complexity",
1333
+ args,
1334
+ ok: false,
1335
+ summary: "Missing directive for complexity assessment",
1336
+ humanText,
1337
+ data: { reason: "missing_directive" },
1338
+ effects: [{ type: "view", content: humanText }],
1339
+ });
1340
+ }
1341
+
1342
+ const assessment = assessDirective(directive);
1343
+ const humanText = [
1344
+ formatAssessment(assessment),
1345
+ "",
1346
+ assessment.decision === "cleave"
1347
+ ? `**→ Decomposition recommended.** Use \`/cleave ${directive}\` to proceed.`
1348
+ : assessment.decision === "execute"
1349
+ ? "**→ Execute directly.** Task is below complexity threshold."
1350
+ : "**→ Manual assessment needed.** No pattern matched.",
1351
+ ].join("\n");
1352
+ return makeAssessResult({
1353
+ subcommand: "complexity",
1354
+ args,
1355
+ ok: true,
1356
+ summary: `Complexity decision: ${assessment.decision}`,
1357
+ humanText,
1358
+ data: assessment,
1359
+ effects: [{ type: "view", content: humanText }],
1360
+ nextSteps: assessment.decision === "cleave" ? [`Run /cleave ${directive}`] : ["Execute directly"],
1361
+ });
1362
+ }
1363
+
1364
+ async function executeAssessDesign(
1365
+ pi: ExtensionAPI,
1366
+ ctx: AssessExecutionContext,
1367
+ args: string,
1368
+ ): Promise<AssessStructuredResult> {
1369
+ const cwd = ctx.cwd;
1370
+ // Resolve: explicit arg → focused node → error
1371
+ const nodeId = args.trim() || sharedState.designTree?.focusedNode?.id || null;
1372
+
1373
+ if (!nodeId) {
1374
+ const humanText = "Usage: `/assess design <node-id>`\n\nProvide a design-tree node ID, or set a focused node via `design_tree_update` with action 'focus' and run `/assess design` without arguments.";
1375
+ return makeAssessResult({
1376
+ subcommand: "design",
1377
+ args,
1378
+ ok: false,
1379
+ summary: "Missing node-id for design assessment",
1380
+ humanText,
1381
+ data: { reason: "missing_node_id" },
1382
+ effects: [{ type: "view", content: humanText }],
1383
+ });
1384
+ }
1385
+
1386
+ // Build the interactive follow-up prompt
1387
+ const interactivePrompt = [
1388
+ `## Design Assessment: \`${nodeId}\``,
1389
+ "",
1390
+ "Assess this design-tree node for readiness to be marked as 'decided'.",
1391
+ "",
1392
+ "### Steps",
1393
+ "",
1394
+ `1. Call \`design_tree\` with \`action='node'\`, \`node_id='${nodeId}'\` to load the node and its document body.`,
1395
+ "2. **Structural pre-check** (fail fast with specific finding per gap):",
1396
+ " - If `open_questions.length > 0`: FAIL — list each unresolved question",
1397
+ " - If `decisions.length === 0`: FAIL — no decisions recorded",
1398
+ " - If `acceptanceCriteria` has no scenarios, falsifiability, or constraints: FAIL — empty acceptance criteria",
1399
+ " - If any structural check fails, stop here and report findings.",
1400
+ "3. **Acceptance criteria evaluation** (against the document body):",
1401
+ " - For each **Scenario** (Given/When/Then): does the document body address the Then clause?",
1402
+ " - For each **Falsifiability** condition: is it addressed, ruled out, or noted as a known risk?",
1403
+ " - For each **Constraint**: is it satisfied by the document content?",
1404
+ "4. **Write `assessment.json`** to `openspec/design/${nodeId}/assessment.json` with structure:",
1405
+ " ```json",
1406
+ ` {"nodeId":"${nodeId}","pass":true|false,"structuralPass":true|false,"findings":[...]}`,
1407
+ " ```",
1408
+ " Each finding: `{\"type\":\"scenario\"|\"falsifiability\"|\"constraint\"|\"structural\",\"index\":N,\"pass\":true|false,\"finding\":\"<reason>\"}`",
1409
+ "5. **Report** overall PASS/FAIL with per-finding details.",
1410
+ " - If PASS: suggest `design_tree_update` with `set_status(decided)` for this node.",
1411
+ " - If FAIL: list each failing finding with an actionable fix.",
1412
+ ].join("\n");
1413
+
1414
+ if (isInteractiveAssessContext(ctx)) {
1415
+ const introText = `Running design assessment for node \`${nodeId}\`…`;
1416
+ return makeAssessResult({
1417
+ subcommand: "design",
1418
+ args,
1419
+ ok: true,
1420
+ summary: `Prepared design assessment for ${nodeId}`,
1421
+ humanText: introText,
1422
+ data: { nodeId },
1423
+ effects: [
1424
+ { type: "view", content: introText },
1425
+ { type: "follow_up", content: interactivePrompt },
1426
+ ],
1427
+ nextSteps: ["Evaluate acceptance criteria", "Write assessment.json", "Set status to decided if pass"],
1428
+ completion: { completed: false, completedInBand: false, requiresFollowUp: true },
1429
+ });
1430
+ }
1431
+
1432
+ // Bridged / subprocess mode
1433
+ // Prefer an in-process deterministic fallback so design assessment does not depend
1434
+ // on a nested Omegon subprocess successfully loading a second extension graph.
1435
+ const tree = scanDesignDocs(path.join(cwd, "docs"));
1436
+ const node = tree.nodes.get(nodeId);
1437
+ if (!node) {
1438
+ const msg = `Design node '${nodeId}' not found under docs/.`;
1439
+ return makeAssessResult({
1440
+ subcommand: "design",
1441
+ args,
1442
+ ok: false,
1443
+ summary: msg,
1444
+ humanText: msg,
1445
+ data: { reason: "node_not_found", nodeId },
1446
+ effects: [{ type: "view", content: msg }],
1447
+ });
1448
+ }
1449
+ const sections = getNodeSections(node);
1450
+ const structuralFindings = runDesignStructuralCheck(nodeId, sections);
1451
+ const structuralPass = structuralFindings.length === 0;
1452
+ const documentBody = fs.readFileSync(node.filePath, "utf-8").toLowerCase();
1453
+ const normalizeCriterion = (value: string) => value.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
1454
+ const includesCriterion = (value: string) => {
1455
+ const normalized = normalizeCriterion(value);
1456
+ if (!normalized) return true;
1457
+ return documentBody.includes(normalized) || normalized.split(/\s+/).filter(Boolean).every((part) => part.length < 4 || documentBody.includes(part));
1458
+ };
1459
+ const findings: DesignAssessmentFinding[] = [...structuralFindings];
1460
+ if (structuralPass) {
1461
+ sections.acceptanceCriteria.scenarios.forEach((scenario, index) => {
1462
+ const pass = includesCriterion(scenario.then);
1463
+ findings.push({
1464
+ type: "scenario",
1465
+ index,
1466
+ pass,
1467
+ finding: pass
1468
+ ? `Document addresses the scenario outcome: ${scenario.then}`
1469
+ : `Document does not clearly address the scenario outcome: ${scenario.then}`,
1470
+ });
1471
+ });
1472
+ sections.acceptanceCriteria.falsifiability.forEach((item, index) => {
1473
+ const pass = includesCriterion(item.condition);
1474
+ findings.push({
1475
+ type: "falsifiability",
1476
+ index,
1477
+ pass,
1478
+ finding: pass
1479
+ ? `Document addresses the falsifiability condition: ${item.condition}`
1480
+ : `Document does not clearly address the falsifiability condition: ${item.condition}`,
1481
+ });
1482
+ });
1483
+ sections.acceptanceCriteria.constraints.forEach((item, index) => {
1484
+ const pass = includesCriterion(item.text);
1485
+ findings.push({
1486
+ type: "constraint",
1487
+ index,
1488
+ pass,
1489
+ finding: pass
1490
+ ? `Document addresses the constraint: ${item.text}`
1491
+ : `Document does not clearly address the constraint: ${item.text}`,
1492
+ });
1493
+ });
1494
+ }
1495
+ const nodeTitle = node.title;
1496
+ const overallPass = structuralPass && findings.length > 0 && findings.every((f) => f.pass);
1497
+
1498
+ const result: DesignAssessmentResult = { nodeId, pass: overallPass, structuralPass, findings };
1499
+
1500
+ // Write assessment.json
1501
+ await writeDesignAssessment(cwd, nodeId, result);
1502
+
1503
+ // Build human text
1504
+ const failFindings = findings.filter((f) => !f.pass);
1505
+ const passFindings = findings.filter((f) => f.pass);
1506
+ const humanLines: string[] = [
1507
+ `## Design Assessment: ${nodeTitle} (${nodeId})`,
1508
+ "",
1509
+ overallPass
1510
+ ? `**✅ PASS** — ${passFindings.length}/${findings.length} criteria satisfied. Ready to set status → decided.`
1511
+ : structuralPass
1512
+ ? `**❌ FAIL** — ${failFindings.length}/${findings.length} criteria not satisfied.`
1513
+ : "**❌ Structural pre-check failed** — resolve these issues before assessing.",
1514
+ "",
1515
+ ];
1516
+ if (failFindings.length > 0) {
1517
+ humanLines.push("### Issues to Resolve");
1518
+ for (const f of failFindings) humanLines.push(`- [${f.type}#${f.index}] ${f.finding}`);
1519
+ humanLines.push("");
1520
+ }
1521
+ if (passFindings.length > 0) {
1522
+ humanLines.push("### Satisfied");
1523
+ for (const f of passFindings) humanLines.push(`- ✓ [${f.type}#${f.index}] ${f.finding}`);
1524
+ }
1525
+
1526
+ const humanText = humanLines.join("\n");
1527
+ const nextSteps = overallPass
1528
+ ? [`Run design_tree_update with action 'set_status', node_id '${nodeId}', status 'decided'`]
1529
+ : failFindings.map((f) => f.finding.split(".")[0] ?? f.finding);
1530
+
1531
+ return makeAssessResult({
1532
+ subcommand: "design",
1533
+ args,
1534
+ ok: overallPass,
1535
+ summary: overallPass
1536
+ ? `Design node '${nodeId}' passed — ready to decide`
1537
+ : `Design node '${nodeId}' failed — ${failFindings.length} issue(s) to resolve`,
1538
+ humanText,
1539
+ data: result,
1540
+ effects: [{ type: "view", content: humanText }],
1541
+ nextSteps,
1542
+ });
1543
+ }
1544
+
1545
+ async function writeDesignAssessment(cwd: string, nodeId: string, result: DesignAssessmentResult): Promise<void> {
1546
+ try {
1547
+ const { writeFile } = await import("node:fs/promises");
1548
+ const { join } = await import("node:path");
1549
+ const { existsSync } = await import("node:fs");
1550
+ const dir = join(cwd, "openspec", "design", nodeId);
1551
+ // Do NOT create the directory — if it doesn't exist the node has no design change
1552
+ // scaffolded yet, and creating assessment.json here would trigger the "active not
1553
+ // archived" gate on set_status(decided) and implement. Write only if already scaffolded.
1554
+ if (!existsSync(dir)) return;
1555
+ await writeFile(join(dir, "assessment.json"), JSON.stringify(result, null, 2), "utf8");
1556
+ } catch {
1557
+ // non-fatal — assessment result still returned to caller
1558
+ }
1559
+ }
1560
+
1561
+ export function createAssessStructuredExecutors(pi: ExtensionAPI, overrides?: AssessExecutorOverrides) {
1562
+ return {
1563
+ cleave: (args: string, ctx: AssessExecutionContext) => executeAssessCleave(pi, ctx, args),
1564
+ diff: (args: string, ctx: AssessExecutionContext) => executeAssessDiff(pi, ctx, args),
1565
+ spec: (args: string, ctx: AssessExecutionContext) => executeAssessSpec(pi, ctx, args, overrides),
1566
+ complexity: (args: string) => executeAssessComplexity(args),
1567
+ design: (args: string, ctx: AssessExecutionContext) => executeAssessDesign(pi, ctx, args),
1568
+ } as const;
1569
+ }
1570
+
1571
+ // ─── Extension ──────────────────────────────────────────────────────────────
1572
+
1573
+ export default function cleaveExtension(pi: ExtensionAPI) {
1574
+ // ── Guard: skip cleave in child processes ───────────────────────
1575
+ // Cleave children are spawned with PI_CHILD=1. If we load cleave
1576
+ // in children, they can spawn NESTED children — exponential process
1577
+ // growth. Children should never invoke cleave tools.
1578
+ if (process.env.PI_CHILD) return;
1579
+
1580
+ // ── Kill orphaned children from previous sessions ───────────────
1581
+ // If a previous omegon session was killed (SIGKILL, crash, machine
1582
+ // reboot), its detached children may still be alive. Clean them up
1583
+ // before doing anything else.
1584
+ const orphansKilled = cleanupOrphanedProcesses();
1585
+ if (orphansKilled > 0) {
1586
+ console.warn(`[cleave] killed ${orphansKilled} orphaned subprocess(es) from a previous session`);
1587
+ }
1588
+
1589
+ // ── Initialize dashboard state ──────────────────────────────────
1590
+ emitCleaveState(pi, "idle");
1591
+
1592
+ // ── Agent start: inject OpenSpec status into context ─────────────
1593
+ // Uses before_agent_start (not session_start) so the status message
1594
+ // enters the agent's conversation context, not just the TUI display.
1595
+ let openspecFirstTurn = true;
1596
+
1597
+ pi.on("before_agent_start", (_event, ctx) => {
1598
+ if (!openspecFirstTurn) return;
1599
+ openspecFirstTurn = false;
1600
+
1601
+ try {
1602
+ const status = getActiveChangesStatus(ctx.cwd);
1603
+ if (status.length === 0) return;
1604
+
1605
+ const lines = ["**OpenSpec Changes**", ""];
1606
+ for (const s of status) {
1607
+ const progress = s.totalTasks > 0
1608
+ ? `${s.doneTasks}/${s.totalTasks} tasks`
1609
+ : "no tasks";
1610
+ const artifacts: string[] = [];
1611
+ if (s.hasProposal) artifacts.push("proposal");
1612
+ if (s.hasDesign) artifacts.push("design");
1613
+ if (s.hasSpecs) artifacts.push("specs");
1614
+ const artStr = artifacts.length > 0 ? ` [${artifacts.join(", ")}]` : "";
1615
+
1616
+ const icon = s.totalTasks > 0 && s.doneTasks >= s.totalTasks ? "✓" : "◦";
1617
+ lines.push(` ${icon} **${s.name}** — ${progress}${artStr}`);
1618
+ }
1619
+
1620
+ const incomplete = status.filter((s) => s.totalTasks > 0 && s.doneTasks < s.totalTasks);
1621
+ if (incomplete.length > 0) {
1622
+ lines.push("", `Use \`/opsx:apply\` to continue or \`/cleave\` to parallelize.`);
1623
+ }
1624
+
1625
+ const withTasks = status.filter((s) => s.totalTasks > 0);
1626
+ const allDone = withTasks.length > 0 && withTasks.every((s) => s.doneTasks >= s.totalTasks);
1627
+ if (allDone) {
1628
+ lines.push("", `All tasks complete. Run \`/opsx:verify\` → \`/opsx:archive\` to finalize.`);
1629
+ }
1630
+
1631
+ const content = lines.join("\n");
1632
+ return {
1633
+ message: {
1634
+ customType: "openspec-status",
1635
+ content,
1636
+ display: true,
1637
+ },
1638
+ };
1639
+ } catch {
1640
+ // Non-fatal — don't block agent start
1641
+ }
1642
+ });
1643
+
1644
+ // ── Subprocess cleanup on session exit ───────────────────────────────
1645
+ pi.on("session_shutdown", () => {
1646
+ killAllCleaveSubprocesses();
1647
+ });
1648
+
1649
+ // ── cleave_assess tool ───────────────────────────────────────────────
1650
+ pi.registerTool({
1651
+ name: "cleave_assess",
1652
+ label: "Cleave Assess",
1653
+ description:
1654
+ "Assess the complexity of a task directive to determine if it should be " +
1655
+ "decomposed (cleaved) into subtasks or executed directly. Returns complexity " +
1656
+ "score, matched pattern, confidence, and decision (execute/cleave).\n\n" +
1657
+ "Use before attempting complex multi-system tasks to decide whether decomposition is warranted.",
1658
+ promptSnippet:
1659
+ "Assess task complexity for decomposition — returns pattern match, complexity score, and execute/cleave decision",
1660
+ promptGuidelines: [
1661
+ "Every non-trivial code change must include tests in co-located *.test.ts files. Untested code is incomplete — do not commit without tests for new functions and changed behavior.",
1662
+ "Call cleave_assess before starting any multi-system or cross-cutting task to determine if decomposition is needed",
1663
+ "If decision is 'execute', proceed directly. If 'cleave', use /cleave to decompose. If 'needs_assessment', proceed directly — it means no pattern matched but the task is likely simple enough for in-session execution.",
1664
+ "Complexity formula: systems × (1 + 0.5 × modifiers). Threshold default: 2.0.",
1665
+ "The /assess command provides code assessment: `/assess cleave` (adversarial review + auto-fix), `/assess diff [ref]` (review only), `/assess spec [change]` (validate against OpenSpec scenarios), `/assess design [node-id]` (evaluate design-tree node readiness before set_status(decided)).",
1666
+ "When the repo has openspec/ with active changes, suggest `/assess spec` after implementation and before `/opsx:archive`.",
1667
+ "Run `/assess design <node-id>` before calling design_tree_update with set_status(decided) to verify acceptance criteria are satisfied.",
1668
+ ],
1669
+
1670
+ parameters: Type.Object({
1671
+ directive: Type.String({ description: "The task directive to assess" }),
1672
+ threshold: Type.Optional(Type.Number({ description: "Complexity threshold (default: 2.0)" })),
1673
+ }),
1674
+
1675
+ renderCall(args, theme) {
1676
+ const dir = args.directive.length > 55
1677
+ ? args.directive.slice(0, 52) + "…"
1678
+ : args.directive;
1679
+ return sciCall("cleave_assess", dir, theme);
1680
+ },
1681
+
1682
+ renderResult(result, { expanded }, theme) {
1683
+ const d = result.details as {
1684
+ score?: number; complexity?: number; decision?: string;
1685
+ systems?: number; modifiers?: string[]; pattern?: string; method?: string;
1686
+ } | undefined;
1687
+ const score = d?.score ?? d?.complexity;
1688
+ const decision = d?.decision;
1689
+ const scoreStr = score != null ? `complexity ${score.toFixed(1)}` : "";
1690
+ const decisionStr = decision ? `→ ${decision}` : "";
1691
+ const summary = [scoreStr, decisionStr].filter(Boolean).join(" ");
1692
+
1693
+ if (expanded) {
1694
+ const lines: string[] = [];
1695
+ // Structured breakdown
1696
+ if (d?.pattern) lines.push(`${theme.fg("accent", "Pattern")} ${theme.fg("muted", d.pattern)}`);
1697
+ if (d?.method) lines.push(`${theme.fg("accent", "Method")} ${theme.fg("muted", d.method)}`);
1698
+ if (d?.systems != null) lines.push(`${theme.fg("accent", "Systems")} ${theme.fg("muted", String(d.systems))}`);
1699
+ if (d?.modifiers?.length) lines.push(`${theme.fg("accent", "Modifiers")} ${theme.fg("muted", d.modifiers.join(", "))}`);
1700
+ if (score != null) {
1701
+ const color = score >= 2.0 ? "warning" : "success";
1702
+ lines.push(`${theme.fg("accent", "Score")} ${theme.fg(color as any, score.toFixed(1))}`);
1703
+ }
1704
+ if (decision) {
1705
+ const color = decision === "cleave" ? "warning" : "success";
1706
+ lines.push(`${theme.fg("accent", "Decision")} ${theme.fg(color as any, decision)}`);
1707
+ }
1708
+ if (lines.length === 0) {
1709
+ // Fallback to raw text
1710
+ const text = (result.content?.[0] && "text" in result.content[0] ? result.content[0].text : "") ?? "";
1711
+ lines.push(...text.split("\n"));
1712
+ }
1713
+ return sciExpanded(lines, summary, theme);
1714
+ }
1715
+
1716
+ if (!summary) {
1717
+ const first = result.content?.[0];
1718
+ return sciOk(((first && "text" in first ? first.text : null) ?? "").split("\n")[0].slice(0, 80), theme);
1719
+ }
1720
+
1721
+ return sciOk(summary, theme);
1722
+ },
1723
+
1724
+ async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
1725
+ const assessment = assessDirective(params.directive, params.threshold ?? DEFAULT_CONFIG.threshold);
1726
+ const text = formatAssessment(assessment);
1727
+
1728
+ return {
1729
+ content: [{ type: "text", text }],
1730
+ details: {
1731
+ ...assessment,
1732
+ availablePatterns: Object.values(PATTERNS).map((p) => p.name),
1733
+ },
1734
+ };
1735
+ },
1736
+ });
1737
+
1738
+ // ── /assess command ──────────────────────────────────────────────────
1739
+ const ASSESS_SUBS = [
1740
+ { value: "cleave", label: "cleave", description: "Adversarial review → auto-fix (optional: ref)" },
1741
+ { value: "diff", label: "diff", description: "Assess uncommitted or recent changes for issues" },
1742
+ { value: "spec", label: "spec", description: "Assess implementation against OpenSpec scenarios" },
1743
+ { value: "complexity", label: "complexity", description: "Assess directive complexity (cleave_assess)" },
1744
+ { value: "design", label: "design", description: "Assess design-tree node readiness before set_status(decided)" },
1745
+ ];
1746
+ const assessExecutors = createAssessStructuredExecutors(pi);
1747
+ const slashCommandBridge = getSharedBridge();
1748
+ const toBridgeAssessResult = (
1749
+ bridgedArgs: string[],
1750
+ result: AssessStructuredResult,
1751
+ ): ReturnType<typeof buildSlashCommandResult> => buildAssessBridgeResult(bridgedArgs, result);
1752
+
1753
+ slashCommandBridge.register(pi, {
1754
+ name: "assess",
1755
+ description: "Adversarial review + auto-fix (default), or: /assess <diff|spec|complexity> [args]",
1756
+ bridge: {
1757
+ agentCallable: true,
1758
+ sideEffectClass: "workspace-write",
1759
+ resultContract: "cleave.assess.v1",
1760
+ summary: "Lifecycle-safe assessment commands for spec, diff, cleave, and complexity",
1761
+ },
1762
+ getArgumentCompletions: (prefix: string) => {
1763
+ const parts = prefix.split(" ");
1764
+ if (parts.length <= 1) {
1765
+ const partial = parts[0] || "";
1766
+ const filtered = ASSESS_SUBS.filter((s) => s.value.startsWith(partial));
1767
+ return filtered.length > 0 ? filtered : null;
1768
+ }
1769
+ return null;
1770
+ },
1771
+ structuredExecutor: async (args, ctx) => {
1772
+ const parts = parseBridgedArgs(args, ctx);
1773
+ if (parts.length === 0) {
1774
+ return buildSlashCommandResult("assess", [], {
1775
+ ok: false,
1776
+ summary: "/assess requires an explicit bridged subcommand",
1777
+ humanText: "Bare /assess remains interactive-only in v1. Use one of: /assess spec, /assess diff, /assess cleave, or /assess complexity.",
1778
+ data: { supportedSubcommands: ASSESS_SUBS.map((sub) => sub.value) },
1779
+ effects: { sideEffectClass: "workspace-write" },
1780
+ nextSteps: ASSESS_SUBS.map((sub) => ({ label: `Run /assess ${sub.value}` })),
1781
+ });
1782
+ }
1783
+
1784
+ const sub = parts[0] || "";
1785
+ const rest = parts.slice(1).join(" ");
1786
+ const assessCtx: AssessExecutionContext = {
1787
+ cwd: ctx.cwd,
1788
+ bridgeInvocation: (ctx as { bridgeInvocation?: boolean }).bridgeInvocation,
1789
+ hasUI: ctx.hasUI,
1790
+ model: ctx.model ? { id: ctx.model.id } : undefined,
1791
+ waitForIdle: "waitForIdle" in ctx && typeof ctx.waitForIdle === "function"
1792
+ ? ctx.waitForIdle.bind(ctx)
1793
+ : undefined,
1794
+ };
1795
+ switch (sub) {
1796
+ case "cleave":
1797
+ return toBridgeAssessResult(parts, await assessExecutors.cleave(rest, assessCtx));
1798
+ case "diff":
1799
+ return toBridgeAssessResult(parts, await assessExecutors.diff(rest, assessCtx));
1800
+ case "spec":
1801
+ return toBridgeAssessResult(parts, await assessExecutors.spec(rest, assessCtx));
1802
+ case "complexity":
1803
+ return toBridgeAssessResult(parts, await assessExecutors.complexity(rest));
1804
+ case "design":
1805
+ return toBridgeAssessResult(parts, await assessExecutors.design(rest, assessCtx));
1806
+ default:
1807
+ return buildSlashCommandResult("assess", parts, {
1808
+ ok: false,
1809
+ summary: `Unsupported bridged /assess target: ${sub}`,
1810
+ humanText: `Bridged /assess currently supports only: ${ASSESS_SUBS.map((item) => item.value).join(", ")}. Freeform adversarial review remains interactive-only in v1.`,
1811
+ data: { supportedSubcommands: ASSESS_SUBS.map((item) => item.value) },
1812
+ effects: { sideEffectClass: "workspace-write" },
1813
+ nextSteps: ASSESS_SUBS.map((item) => ({ label: `Run /assess ${item.value}` })),
1814
+ });
1815
+ }
1816
+ },
1817
+ interactiveHandler: async (result, args) => {
1818
+ const trimmed = (args || "").trim();
1819
+ const sub = trimmed.split(/\s+/)[0] || "";
1820
+ if (!trimmed || !ASSESS_SUBS.some((item) => item.value === sub)) {
1821
+ pi.sendUserMessage([
1822
+ "# Adversarial Assessment",
1823
+ "",
1824
+ trimmed
1825
+ ? "You are now operating as a hostile reviewer. Your job is to find everything wrong with the work completed in this session."
1826
+ : "You are now operating as a hostile reviewer. Your job is to find everything wrong with the work completed in this session. Do not be polite. Do not hedge. If something is broken, say it's broken.",
1827
+ ...(trimmed ? ["", "**User instructions:** " + trimmed] : []),
1828
+ "",
1829
+ "Follow the user's instructions above for tone and scope, but still perform a thorough review.",
1830
+ "Read every file that was changed. Be specific. Cite line numbers.",
1831
+ "",
1832
+ "## Output Format",
1833
+ "",
1834
+ "### Verdict",
1835
+ "One of: `PASS` | `PASS WITH CONCERNS` | `NEEDS REWORK` | `REJECT`",
1836
+ "",
1837
+ "### Critical Issues",
1838
+ "### Warnings",
1839
+ "### Nitpicks",
1840
+ "### Omissions",
1841
+ "### What Actually Worked",
1842
+ ].join("\n"));
1843
+ return;
1844
+ }
1845
+ const assessResult: AssessStructuredResult = {
1846
+ command: "assess",
1847
+ subcommand: (result.data as any)?.subcommand ?? "diff",
1848
+ args: trimmed,
1849
+ ok: result.ok,
1850
+ summary: result.summary,
1851
+ humanText: result.humanText,
1852
+ data: (result.data as any)?.data,
1853
+ effects: (result.data as any)?.assessEffects ?? [],
1854
+ nextSteps: (result.nextSteps ?? []).map((step) => step.label),
1855
+ completion: (result.data as any)?.completion,
1856
+ lifecycle: (result.data as any)?.lifecycleHint,
1857
+ lifecycleRecord: result.lifecycle as AssessLifecycleRecord | undefined,
1858
+ };
1859
+ applyAssessEffects(pi, assessResult);
1860
+ },
1861
+ agentHandler: async (result, args) => {
1862
+ const trimmed = (args || "").trim();
1863
+ const assessResult: AssessStructuredResult = {
1864
+ command: "assess",
1865
+ subcommand: (result.data as any)?.subcommand ?? "diff",
1866
+ args: trimmed,
1867
+ ok: result.ok,
1868
+ summary: result.summary,
1869
+ humanText: result.humanText,
1870
+ data: (result.data as any)?.data,
1871
+ effects: (result.data as any)?.assessEffects ?? [],
1872
+ nextSteps: (result.nextSteps ?? []).map((step) => step.label),
1873
+ completion: (result.data as any)?.completion,
1874
+ lifecycle: (result.data as any)?.lifecycleHint,
1875
+ lifecycleRecord: result.lifecycle as AssessLifecycleRecord | undefined,
1876
+ };
1877
+ applyAssessEffects(pi, assessResult);
1878
+ },
1879
+ });
1880
+ pi.registerTool(slashCommandBridge.createToolDefinition());
1881
+
1882
+ // ── /cleave command ──────────────────────────────────────────────────
1883
+ pi.registerCommand("cleave", {
1884
+ description: "Recursive task decomposition (usage: /cleave <directive>)",
1885
+ handler: async (args, ctx) => {
1886
+ const directive = (args || "").trim();
1887
+
1888
+ if (!directive) {
1889
+ pi.sendMessage({
1890
+ customType: "view",
1891
+ content: [
1892
+ "**Cleave — Recursive Task Decomposition**",
1893
+ "",
1894
+ "Usage: `/cleave <directive>`",
1895
+ "",
1896
+ "Example: `/cleave Implement JWT authentication with refresh tokens`",
1897
+ "",
1898
+ "The directive will be assessed for complexity. If it exceeds the",
1899
+ "threshold, it will be decomposed into 2-4 child tasks executed",
1900
+ "in parallel via git worktrees.",
1901
+ "",
1902
+ "Available patterns: " + Object.values(PATTERNS).map((p) => p.name).join(", "),
1903
+ ].join("\n"),
1904
+ display: true,
1905
+ });
1906
+ return;
1907
+ }
1908
+
1909
+ // Delegate the full workflow to the LLM via a structured prompt.
1910
+ // This allows the LLM to handle the interactive confirm gates
1911
+ // and adapt to user feedback, while we provide all the mechanical
1912
+ // infrastructure via tools.
1913
+
1914
+ const assessment = assessDirective(directive);
1915
+ const assessmentText = formatAssessment(assessment);
1916
+
1917
+ if (assessment.decision === "execute" || assessment.decision === "needs_assessment") {
1918
+ pi.sendMessage({
1919
+ customType: "view",
1920
+ content: [
1921
+ assessmentText,
1922
+ "",
1923
+ assessment.decision === "needs_assessment"
1924
+ ? "**→ Execute directly** — no pattern matched; heuristic suggests in-session execution."
1925
+ : "**→ Execute directly** — complexity is below threshold.",
1926
+ "Proceeding with the task in-session.",
1927
+ ].join("\n"),
1928
+ display: true,
1929
+ });
1930
+
1931
+ // Hand off to the LLM to execute directly
1932
+ pi.sendUserMessage(
1933
+ `Execute this task directly (cleave assessment says it's simple enough):\n\n${directive}`,
1934
+ { deliverAs: "followUp" },
1935
+ );
1936
+ return;
1937
+ }
1938
+
1939
+ // Task needs cleaving — check for OpenSpec first, then fall back to LLM
1940
+ const repoPath = ctx.cwd;
1941
+
1942
+ // ── OpenSpec fast path ─────────────────────────────────────
1943
+ const openspecDir = detectOpenSpec(repoPath);
1944
+ if (openspecDir) {
1945
+ const executableChanges = findExecutableChanges(openspecDir);
1946
+ if (executableChanges.length > 0) {
1947
+ // Try to find a change whose name matches the directive.
1948
+ // Three strategies: exact slug containment, word overlap, partial prefix.
1949
+ const directiveSlug = directive.toLowerCase().replace(/[^\w]+/g, "-");
1950
+ const directiveWords = new Set(
1951
+ directive.toLowerCase().replace(/[^\w\s]/g, "").split(/\s+/).filter((w) => w.length > 2),
1952
+ );
1953
+
1954
+ const matched = executableChanges.find((c) => {
1955
+ // Strategy 1: slug containment (either direction)
1956
+ if (directiveSlug.includes(c.name) || c.name.includes(directiveSlug.slice(0, 20))) return true;
1957
+ // Strategy 2: word overlap — change name words appear in directive
1958
+ const changeWords = c.name.split("-").filter((w) => w.length > 2);
1959
+ const overlap = changeWords.filter((w) => directiveWords.has(w)).length;
1960
+ if (changeWords.length > 0 && overlap >= Math.ceil(changeWords.length * 0.5)) return true;
1961
+ return false;
1962
+ });
1963
+
1964
+ // Only use OpenSpec if we found a matching change — never silently
1965
+ // pick an unrelated change
1966
+ if (!matched) {
1967
+ // No match — mention available changes but fall through to LLM planner
1968
+ pi.sendMessage({
1969
+ customType: "view",
1970
+ content: [
1971
+ `OpenSpec changes found but none matched the directive.`,
1972
+ `Available: ${executableChanges.map((c) => c.name).join(", ")}`,
1973
+ `Falling back to LLM planner.`,
1974
+ ].join("\n"),
1975
+ display: true,
1976
+ });
1977
+ }
1978
+ const change = matched!;
1979
+ const result = change ? openspecChangeToSplitPlanWithContext(change.path) : null;
1980
+
1981
+ if (result) {
1982
+ const { plan, context } = result;
1983
+ const planJson = JSON.stringify(plan, null, 2);
1984
+
1985
+ // Report what OpenSpec artifacts we found
1986
+ const artifactNotes: string[] = [];
1987
+ if (context.designContent) artifactNotes.push(`design.md (${context.decisions.length} decisions, ${context.fileChanges.length} file changes)`);
1988
+ if (context.specScenarios.length > 0) artifactNotes.push(`specs (${context.specScenarios.length} scenarios for post-merge verification)`);
1989
+
1990
+ pi.sendMessage({
1991
+ customType: "view",
1992
+ content: [
1993
+ assessmentText,
1994
+ "",
1995
+ `**→ OpenSpec plan detected** from \`${change.name}/tasks.md\``,
1996
+ ...(artifactNotes.length > 0 ? [`**Artifacts:** ${artifactNotes.join("; ")}`] : []),
1997
+ "",
1998
+ `**Rationale:** ${plan.rationale}`,
1999
+ `**Children:** ${plan.children.map((c) => c.label).join(", ")}`,
2000
+ "",
2001
+ "Review the plan and confirm to execute via `cleave_run`.",
2002
+ ].join("\n"),
2003
+ display: true,
2004
+ });
2005
+
2006
+ pi.sendUserMessage(
2007
+ [
2008
+ "## Cleave Decomposition (OpenSpec)",
2009
+ "",
2010
+ `OpenSpec change \`${change.name}\` provides a pre-built split plan.`,
2011
+ "",
2012
+ "### Split Plan",
2013
+ "",
2014
+ "```json",
2015
+ planJson,
2016
+ "```",
2017
+ "",
2018
+ "Present this plan to the user for review. After confirmation,",
2019
+ `use the \`cleave_run\` tool with this plan_json, the original directive,`,
2020
+ `and \`openspec_change_path\` set to \`${change.path}\`.`,
2021
+ "",
2022
+ "### Original Directive",
2023
+ "",
2024
+ directive,
2025
+ ].join("\n"),
2026
+ { deliverAs: "followUp" },
2027
+ );
2028
+ return;
2029
+ }
2030
+ }
2031
+ }
2032
+
2033
+ // ── LLM planning fallback ──────────────────────────────────
2034
+ let repoTree: string;
2035
+ try {
2036
+ repoTree = await getRepoTree(pi, repoPath);
2037
+ } catch {
2038
+ repoTree = "(unable to read repo structure)";
2039
+ }
2040
+
2041
+ const plannerPrompt = buildPlannerPrompt(directive, repoTree, []);
2042
+
2043
+ pi.sendMessage({
2044
+ customType: "view",
2045
+ content: [
2046
+ assessmentText,
2047
+ "",
2048
+ "**→ Decomposition needed.** Generating split plan...",
2049
+ ].join("\n"),
2050
+ display: true,
2051
+ });
2052
+
2053
+ // Delegate to the LLM to:
2054
+ // 1. Generate a split plan (can use ask_local_model or think about it)
2055
+ // 2. Present the plan for confirmation
2056
+ // 3. Execute via cleave_run tool
2057
+ pi.sendUserMessage(
2058
+ [
2059
+ `## Cleave Decomposition`,
2060
+ "",
2061
+ `The directive needs decomposition (complexity ${assessment.complexity}, pattern: ${assessment.pattern || "none"}).`,
2062
+ "",
2063
+ "### Step 1: Generate a split plan",
2064
+ "",
2065
+ "Use `ask_local_model` with this planning prompt to generate a JSON split plan:",
2066
+ "",
2067
+ "```",
2068
+ plannerPrompt,
2069
+ "```",
2070
+ "",
2071
+ "Parse the JSON response and present the plan to me for review.",
2072
+ "",
2073
+ "### Step 2: After I confirm",
2074
+ "",
2075
+ "Use the `cleave_run` tool with the plan to execute the decomposition.",
2076
+ "",
2077
+ "### Original Directive",
2078
+ "",
2079
+ directive,
2080
+ ].join("\n"),
2081
+ { deliverAs: "followUp" },
2082
+ );
2083
+ },
2084
+ });
2085
+
2086
+ // ── /cleave resume command ────────────────────────────────────────
2087
+ /**
2088
+ * Resume an interrupted cleave run.
2089
+ *
2090
+ * When a cleave session is killed before the harvest/merge phase the
2091
+ * workspace state file is left with `phase: "dispatch"` and some children
2092
+ * still `pending`. This command:
2093
+ *
2094
+ * 1. Finds the most recent interrupted run for the current repo.
2095
+ * 2. Re-dispatches pending children (dispatchChildren skips completed ones).
2096
+ * 3. Runs the harvest/merge phase and cleans up worktrees.
2097
+ *
2098
+ * The full harvest is intentionally the same code path as cleave_run
2099
+ * (minus OpenSpec write-back which requires the original change path).
2100
+ */
2101
+ pi.registerCommand("cleave resume", {
2102
+ description: "Resume an interrupted cleave run — re-dispatch pending children and complete the harvest/merge phase",
2103
+ handler: async (_args, ctx) => {
2104
+ const repoPath = ctx.cwd;
2105
+ const signal: AbortSignal | undefined = (ctx as any).signal;
2106
+
2107
+ const incomplete = findIncompleteRuns(repoPath);
2108
+ if (incomplete.length === 0) {
2109
+ pi.sendMessage({
2110
+ customType: "view",
2111
+ content: "**Cleave Resume** — no interrupted runs found for this repository.",
2112
+ display: true,
2113
+ });
2114
+ return;
2115
+ }
2116
+
2117
+ const state = incomplete[0]!;
2118
+
2119
+ const emit = (text: string) => pi.sendMessage({ customType: "view", content: text, display: true });
2120
+
2121
+ const completedBefore = state.children.filter((c) => c.status === "completed").length;
2122
+ const pendingChildren = state.children.filter(
2123
+ (c) => c.status !== "completed" && c.status !== "failed",
2124
+ );
2125
+
2126
+ const header = [
2127
+ `**Cleave Resume** — \`${state.runId}\``,
2128
+ `Directive: ${state.directive}`,
2129
+ `Base branch: \`${state.baseBranch}\``,
2130
+ "",
2131
+ ...state.children.map((c) => {
2132
+ const icon = c.status === "completed" ? "✅" : c.status === "failed" ? "❌" : "⏳";
2133
+ return ` ${icon} [${c.childId}] \`${c.label}\` — ${c.status}`;
2134
+ }),
2135
+ "",
2136
+ `${completedBefore} already completed, ${pendingChildren.length} to dispatch`,
2137
+ ].join("\n");
2138
+ emit(header);
2139
+
2140
+ // ── Re-dispatch any pending children ──────────────────────
2141
+ if (pendingChildren.length > 0) {
2142
+ emit(`Resuming dispatch for ${pendingChildren.length} pending child(ren)…`);
2143
+ emitCleaveState(pi, "dispatching", state.runId, state.children);
2144
+ await dispatchChildren(
2145
+ pi,
2146
+ state,
2147
+ 4, // maxParallel
2148
+ DEFAULT_CHILD_TIMEOUT_MS,
2149
+ undefined,
2150
+ signal,
2151
+ (msg) => emit(msg),
2152
+ DEFAULT_REVIEW_CONFIG,
2153
+ );
2154
+ saveState(state);
2155
+ }
2156
+
2157
+ // ── Harvest + merge ────────────────────────────────────────
2158
+ emitCleaveState(pi, "merging", state.runId, state.children);
2159
+ state.phase = "harvest";
2160
+ saveState(state);
2161
+
2162
+ const taskContents = readTaskFiles(state.workspacePath);
2163
+ const taskResults = [...taskContents.entries()].map(([id, content]) =>
2164
+ parseTaskResult(content, `${id}-task.md`),
2165
+ );
2166
+ const conflicts = detectConflicts(taskResults);
2167
+
2168
+ state.phase = "reunify";
2169
+ saveState(state);
2170
+
2171
+ const completedChildren2 = state.children.filter((c) => c.status === "completed");
2172
+ const mergeResults: Array<{ label: string; branch: string; success: boolean; conflicts: string[] }> = [];
2173
+
2174
+ for (const child of completedChildren2) {
2175
+ const result = await mergeBranch(pi, repoPath, child.branch, state.baseBranch);
2176
+ mergeResults.push({ label: child.label, branch: child.branch, success: result.success, conflicts: result.conflictFiles });
2177
+ if (!result.success) break;
2178
+ }
2179
+
2180
+ const mergeFailures = mergeResults.filter((m) => !m.success);
2181
+
2182
+ if (mergeResults.length > 0 && mergeFailures.length === 0) {
2183
+ await cleanupWorktrees(pi, repoPath);
2184
+ } else {
2185
+ await pruneWorktreeDirs(pi, repoPath);
2186
+ }
2187
+
2188
+ // ── Finalise state ─────────────────────────────────────────
2189
+ const allOk =
2190
+ state.children.every((c) => c.status === "completed") &&
2191
+ mergeResults.every((m) => m.success) &&
2192
+ conflicts.length === 0;
2193
+
2194
+ state.phase = allOk ? "complete" : "failed";
2195
+ state.completedAt = new Date().toISOString();
2196
+ state.totalDurationSec = Math.round(
2197
+ (new Date(state.completedAt).getTime() - new Date(state.createdAt).getTime()) / 1000,
2198
+ );
2199
+ emitCleaveState(pi, allOk ? "done" : "failed", state.runId, state.children);
2200
+ saveState(state);
2201
+
2202
+ const completedCount = state.children.filter((c) => c.status === "completed").length;
2203
+ const failedCount = state.children.filter((c) => c.status === "failed").length;
2204
+
2205
+ const report = [
2206
+ `## Cleave Resume Report: ${state.runId}`,
2207
+ "",
2208
+ `**Status:** ${allOk ? "✓ COMPLETE" : "✗ ISSUES"}`,
2209
+ `**Children:** ${completedCount} completed, ${failedCount} failed of ${state.children.length}`,
2210
+ `**Merges:** ${mergeResults.filter((m) => m.success).length} succeeded, ${mergeFailures.length} failed`,
2211
+ conflicts.length > 0 ? `\n${formatConflicts(conflicts)}` : "",
2212
+ mergeFailures.length > 0
2213
+ ? `\n**Merge failures:**\n${mergeFailures.map((m) => ` • \`${m.branch}\`: ${m.conflicts.join(", ") || "unknown error"}`).join("\n")}`
2214
+ : "",
2215
+ ].filter(Boolean).join("\n");
2216
+ emit(report);
2217
+ },
2218
+ });
2219
+
2220
+ // ── cleave_run tool ──────────────────────────────────────────────────
2221
+ pi.registerTool({
2222
+ name: "cleave_run",
2223
+ label: "Cleave Run",
2224
+ description:
2225
+ "Execute a cleave decomposition plan. Creates git worktrees for each child, " +
2226
+ "dispatches child pi processes, harvests results, detects conflicts, and " +
2227
+ "merges branches back. Requires a split plan (from cleave_assess + planning).\n\n" +
2228
+ "Each child runs in an isolated git worktree on its own branch.",
2229
+ promptSnippet:
2230
+ "Execute a cleave decomposition plan — parallel child dispatch in git worktrees, conflict detection, merge, and report",
2231
+ promptGuidelines: [
2232
+ "When an OpenSpec change was used to generate the plan, ALWAYS pass `openspec_change_path` so child tasks get design context and tasks.md is reconciled on completion.",
2233
+ "Treat lifecycle reconciliation as required: after cleave_run, ensure tasks.md, design-tree status, and dashboard-facing progress reflect the merged reality before archive.",
2234
+ "After cleave_run completes with OpenSpec, follow the Next Steps in the report (typically `/assess spec` → `/opsx:verify` → `/opsx:archive`).",
2235
+ ],
2236
+ parameters: Type.Object({
2237
+ directive: Type.String({ description: "The original task directive" }),
2238
+ plan_json: Type.String({
2239
+ description:
2240
+ 'JSON string of the split plan: {"children": [{"label": "...", "description": "...", "scope": [...], "depends_on": [...]}], "rationale": "..."}',
2241
+ }),
2242
+ prefer_local: Type.Optional(
2243
+ Type.Boolean({ description: "Use local model for leaf tasks when possible (default: true)" }),
2244
+ ),
2245
+ max_parallel: Type.Optional(
2246
+ Type.Number({ description: "Maximum parallel children (default: 4)" }),
2247
+ ),
2248
+ openspec_change_path: Type.Optional(
2249
+ Type.String({
2250
+ description:
2251
+ "Path to an OpenSpec change directory. When provided, child task files are " +
2252
+ "enriched with design.md context (architecture decisions, file scope) and " +
2253
+ "post-merge verification checks specs against implementation.",
2254
+ }),
2255
+ ),
2256
+ review: Type.Optional(
2257
+ Type.Boolean({
2258
+ description:
2259
+ "Enable adversarial review loop after each child completes. " +
2260
+ "Runs an gloriana-tier reviewer that checks for bugs, security issues, " +
2261
+ "and spec compliance. Severity-gated fix iterations with churn detection. " +
2262
+ "Default: false.",
2263
+ }),
2264
+ ),
2265
+ review_max_warning_fixes: Type.Optional(
2266
+ Type.Number({
2267
+ description: "Maximum fix iterations for warning-level issues (default: 1)",
2268
+ }),
2269
+ ),
2270
+ review_max_critical_fixes: Type.Optional(
2271
+ Type.Number({
2272
+ description: "Maximum fix iterations for critical issues before escalation (default: 2)",
2273
+ }),
2274
+ ),
2275
+ review_churn_threshold: Type.Optional(
2276
+ Type.Number({
2277
+ description: "Fraction of reappearing issues that triggers churn bail (default: 0.5)",
2278
+ }),
2279
+ ),
2280
+ idle_timeout_ms: Type.Optional(
2281
+ Type.Number({
2282
+ description: "RPC idle timeout in ms — kill child if no event arrives within this window (default: 180000 = 3 minutes)",
2283
+ }),
2284
+ ),
2285
+ }),
2286
+
2287
+ renderCall(args, theme) {
2288
+ const plan = (() => {
2289
+ try { return JSON.parse(args.plan_json); } catch { return null; }
2290
+ })();
2291
+ const n = Array.isArray(plan?.children) ? plan.children.length : "?";
2292
+ const dir = args.directive.length > 50
2293
+ ? args.directive.slice(0, 47) + "…"
2294
+ : args.directive;
2295
+ return sciCall("cleave_run", `${n} children · ${dir}`, theme);
2296
+ },
2297
+
2298
+ renderResult(result, { expanded, isPartial }, theme) {
2299
+ if (isPartial) {
2300
+ // Phase-aware child table from details
2301
+ const d = result?.details as {
2302
+ children?: Array<{ label: string; status: string; branch?: string }>;
2303
+ phase?: string;
2304
+ } | undefined;
2305
+ const children = d?.children ?? [];
2306
+ if (children.length === 0) {
2307
+ const msg = result.content?.[0];
2308
+ const txt = (msg && "text" in msg ? msg.text : null) ?? "running…";
2309
+ const phase = d?.phase ? theme.fg("dim", ` [${d.phase}]`) : "";
2310
+ return sciOk(txt.split("\n")[0].slice(0, 60) + phase, theme);
2311
+ }
2312
+ const done = children.filter((c) => c.status === "completed").length;
2313
+ const failed = children.filter((c) => c.status === "failed").length;
2314
+ const running = children.filter((c) => c.status === "running").length;
2315
+ const total = children.length;
2316
+ const phase = d?.phase ?? "running";
2317
+
2318
+ const parts = [`${done}/${total} done`];
2319
+ if (running > 0) parts.push(`${running} running`);
2320
+ if (failed > 0) parts.push(theme.fg("error", `${failed} failed`));
2321
+ const footer = parts.join(" ") + theme.fg("dim", ` · ${phase}`);
2322
+
2323
+ const rows = children.slice(0, 10).map((c) => {
2324
+ const icon =
2325
+ c.status === "completed" ? theme.fg("success", "✓")
2326
+ : c.status === "running" ? theme.fg("warning", "⟳")
2327
+ : c.status === "failed" ? theme.fg("error", "✕")
2328
+ : theme.fg("muted", "○");
2329
+ const label = c.status === "running"
2330
+ ? theme.fg("accent", c.label)
2331
+ : c.status === "failed"
2332
+ ? theme.fg("error", c.label)
2333
+ : theme.fg("dim", c.label);
2334
+ return `${icon} ${label}`;
2335
+ });
2336
+ if (children.length > 10) {
2337
+ rows.push(theme.fg("muted", `… ${children.length - 10} more`));
2338
+ }
2339
+ return sciExpanded(rows, footer, theme);
2340
+ }
2341
+
2342
+ // Final result
2343
+ const first = result.content?.[0];
2344
+ const text = (first && "text" in first ? first.text : null) ?? "";
2345
+ const isError = (result as any).isError;
2346
+ const hasConflicts = text.toLowerCase().includes("conflict");
2347
+
2348
+ // Extract structured info from details for expanded view
2349
+ const d = result?.details as {
2350
+ children?: Array<{ label: string; status: string }>;
2351
+ merged?: number; failed?: number; conflicts?: number;
2352
+ duration?: number; filesChanged?: number;
2353
+ } | undefined;
2354
+
2355
+ if (expanded) {
2356
+ const lines: string[] = [];
2357
+ const children = d?.children ?? [];
2358
+ if (children.length > 0) {
2359
+ for (const c of children.slice(0, 12)) {
2360
+ const icon =
2361
+ c.status === "completed" ? theme.fg("success", "✓")
2362
+ : c.status === "failed" ? theme.fg("error", "✕")
2363
+ : theme.fg("muted", "○");
2364
+ const label = c.status === "failed"
2365
+ ? theme.fg("error", c.label)
2366
+ : theme.fg("muted", c.label);
2367
+ lines.push(`${icon} ${label}`);
2368
+ }
2369
+ if (children.length > 12) {
2370
+ lines.push(theme.fg("muted", `… ${children.length - 12} more`));
2371
+ }
2372
+ } else {
2373
+ // Fall back to raw text
2374
+ lines.push(...text.split("\n").slice(0, 15));
2375
+ }
2376
+
2377
+ const merged = d?.merged ?? children.filter(c => c.status === "completed").length;
2378
+ const failed = d?.failed ?? children.filter(c => c.status === "failed").length;
2379
+ const total = children.length || "?";
2380
+ const dur = d?.duration != null ? ` · ${(d.duration / 1000).toFixed(0)}s` : "";
2381
+ const footer = failed > 0
2382
+ ? `${merged}/${total} merged ${theme.fg("error", `${failed} failed`)}${dur}`
2383
+ : `${merged}/${total} merged${dur}`;
2384
+
2385
+ return sciExpanded(lines, footer, theme);
2386
+ }
2387
+
2388
+ // Collapsed
2389
+ const firstLine = text.split("\n")[0];
2390
+ if (isError) {
2391
+ return sciErr("✕ " + firstLine.slice(0, 70), theme);
2392
+ } else if (hasConflicts) {
2393
+ return sciOk("⚠ " + firstLine.slice(0, 70), theme);
2394
+ } else {
2395
+ return sciOk("✓ " + firstLine.slice(0, 70), theme);
2396
+ }
2397
+ },
2398
+
2399
+ async execute(_toolCallId, params, signal, onUpdate, ctx) {
2400
+ // Parse the plan
2401
+ emitCleaveState(pi, "assessing");
2402
+
2403
+ let plan: SplitPlan;
2404
+ try {
2405
+ plan = parsePlanResponse(params.plan_json);
2406
+ } catch (e: any) {
2407
+ emitCleaveState(pi, "failed");
2408
+ throw new Error(`Invalid split plan: ${e.message}`);
2409
+ }
2410
+
2411
+ const repoPath = ctx.cwd;
2412
+ const maxParallel = params.max_parallel ?? DEFAULT_CONFIG.maxParallel;
2413
+ const preferLocal = params.prefer_local ?? DEFAULT_CONFIG.preferLocal;
2414
+
2415
+ emitCleaveState(pi, "planning");
2416
+
2417
+ // ── OPENSPEC CONTEXT ───────────────────────────────────────
2418
+ let openspecCtx: OpenSpecContext | null = null;
2419
+ if (params.openspec_change_path) {
2420
+ try {
2421
+ openspecCtx = buildOpenSpecContext(params.openspec_change_path);
2422
+ } catch {
2423
+ // Non-fatal — proceed without enrichment
2424
+ }
2425
+ }
2426
+
2427
+ // ── SKILL MATCHING ─────────────────────────────────────────
2428
+ // Initialize skills on children (parsePlanResponse may not set them)
2429
+ for (const child of plan.children) {
2430
+ child.skills = child.skills ?? [];
2431
+ }
2432
+
2433
+ // Auto-match skills from scope patterns for children without annotations
2434
+ matchSkillsToAllChildren(plan.children);
2435
+
2436
+ // Resolve skill names to absolute SKILL.md paths
2437
+ const allSkillNames = new Set(plan.children.flatMap((c) => c.skills));
2438
+ const { resolved: resolvedPaths } = resolveSkillPaths([...allSkillNames]);
2439
+
2440
+ // Build per-child skill directive map
2441
+ const resolvedSkillMap = new Map<number, SkillDirective[]>();
2442
+ for (let i = 0; i < plan.children.length; i++) {
2443
+ const child = plan.children[i];
2444
+ const directives: SkillDirective[] = [];
2445
+ for (const skillName of child.skills) {
2446
+ const found = resolvedPaths.find((r) => r.skill === skillName);
2447
+ if (found) {
2448
+ directives.push({ skill: found.skill, path: found.path });
2449
+ }
2450
+ }
2451
+ resolvedSkillMap.set(i, directives);
2452
+ }
2453
+
2454
+ // ── PREFLIGHT ──────────────────────────────────────────────
2455
+ const toolUi = (ctx as {
2456
+ ui?: {
2457
+ input?: (prompt: string, initial?: string) => Promise<string | undefined>;
2458
+ select?: (title: string, options: string[]) => Promise<string | undefined>;
2459
+ };
2460
+ }).ui;
2461
+ const preflightOutcome = await runDirtyTreePreflight(pi, {
2462
+ repoPath,
2463
+ openspecChangePath: params.openspec_change_path,
2464
+ onUpdate,
2465
+ ui: (toolUi?.input || toolUi?.select) ? {
2466
+ ...(typeof toolUi.input === "function" ? { input: toolUi.input.bind(toolUi) } : {}),
2467
+ ...(typeof toolUi.select === "function" ? { select: toolUi.select.bind(toolUi) } : {}),
2468
+ } : undefined,
2469
+ });
2470
+ if (preflightOutcome === "skip_cleave") {
2471
+ const message = "Dirty-tree preflight resolved to proceed without cleave. Worktree creation and dispatch were skipped.";
2472
+ emitCleaveState(pi, "idle");
2473
+ return {
2474
+ content: [{ type: "text", text: message }],
2475
+ details: { phase: "preflight", skipped: true, reason: "proceed_without_cleave" },
2476
+ };
2477
+ }
2478
+ if (preflightOutcome === "cancelled") {
2479
+ emitCleaveState(pi, "idle");
2480
+ return {
2481
+ content: [{ type: "text", text: "Cleave cancelled during dirty-tree preflight." }],
2482
+ details: { phase: "preflight", cancelled: true },
2483
+ };
2484
+ }
2485
+ await ensureCleanWorktree(pi, repoPath);
2486
+ const baseBranch = await getCurrentBranch(pi, repoPath);
2487
+
2488
+ // ── MODEL RESOLUTION ───────────────────────────────────────
2489
+ // Determine local model availability (needed for model resolution)
2490
+ let localModelAvailable = false;
2491
+ let localModel: string | undefined;
2492
+ if (preferLocal) {
2493
+ try {
2494
+ const ollamaResult = await pi.exec("ollama", ["list", "--json"], { timeout: 5_000 });
2495
+ if (ollamaResult.code === 0) {
2496
+ const models = JSON.parse(ollamaResult.stdout);
2497
+ if (Array.isArray(models?.models) && models.models.length > 0) {
2498
+ // Prefer code-optimised models for leaf tasks; fall back in order
2499
+ const available = models.models.map((m: { name: string }) => m.name);
2500
+ // Code-biased preference from shared registry (extensions/lib/local-models.ts)
2501
+ const { PREFERRED_ORDER_CODE: preferredCodeModels } = await import("../lib/local-models.ts");
2502
+ localModel =
2503
+ preferredCodeModels.find((id) => available.includes(id)) ?? available[0];
2504
+ localModelAvailable = true;
2505
+ }
2506
+ }
2507
+ } catch {
2508
+ // No local model available
2509
+ }
2510
+ }
2511
+
2512
+ // Resolve execute model for each child
2513
+ for (const child of plan.children) {
2514
+ child.executeModel = resolveExecuteModel(
2515
+ child,
2516
+ preferLocal,
2517
+ localModelAvailable,
2518
+ getPreferredTier,
2519
+ );
2520
+ }
2521
+
2522
+ // ── INITIALIZE STATE ───────────────────────────────────────
2523
+ const state: CleaveState = {
2524
+ runId: generateRunId(),
2525
+ phase: "dispatch",
2526
+ directive: params.directive,
2527
+ repoPath,
2528
+ baseBranch,
2529
+ assessment: assessDirective(params.directive),
2530
+ plan,
2531
+ children: plan.children.map((c, i) => ({
2532
+ childId: i,
2533
+ label: c.label,
2534
+ description: c.description,
2535
+ scope: c.scope ?? [],
2536
+ dependsOn: c.dependsOn,
2537
+ status: "pending" as const,
2538
+ branch: `cleave/${i}-${c.label}`,
2539
+ backend: c.executeModel === "local" ? "local" as const : "cloud" as const,
2540
+ executeModel: c.executeModel,
2541
+ })),
2542
+ workspacePath: "",
2543
+ totalDurationSec: 0,
2544
+ createdAt: new Date().toISOString(),
2545
+ };
2546
+
2547
+ // Create workspace — pass OpenSpec context and resolved skills to enrich child task files
2548
+ const wsPath = initWorkspace(state, plan, repoPath, openspecCtx, resolvedSkillMap);
2549
+ state.workspacePath = wsPath;
2550
+
2551
+ // ── NATIVE DISPATCH (Rust orchestrator) ─────────────────
2552
+ // The Rust binary handles: worktree creation, child spawning,
2553
+ // idle/wall-clock timeouts, state persistence, and merge.
2554
+ // Task files were already written by initWorkspace with OpenSpec enrichment.
2555
+
2556
+ // Review mode is not yet supported in native dispatch — warn if requested
2557
+ if (params.review) {
2558
+ onUpdate?.({
2559
+ content: [{ type: "text", text: "⚠️ review mode is not supported with native dispatch — review params will be ignored" }],
2560
+ details: { phase: "dispatch", children: state.children },
2561
+ });
2562
+ }
2563
+
2564
+ emitCleaveState(pi, "dispatching", state.runId, state.children);
2565
+
2566
+ onUpdate?.({
2567
+ content: [{ type: "text", text: `Dispatching ${state.children.length} children via native orchestrator...` }],
2568
+ details: { phase: "dispatch", children: state.children },
2569
+ });
2570
+
2571
+ // Write plan JSON for the Rust binary
2572
+ const planPath = path.join(wsPath, "plan.json");
2573
+ fs.writeFileSync(planPath, params.plan_json, "utf-8");
2574
+
2575
+ // Resolve model for native dispatch
2576
+ const { resolveNativeAgent } = await import("../lib/omegon-subprocess.ts");
2577
+ const nativeAgent = resolveNativeAgent();
2578
+ if (!nativeAgent) {
2579
+ throw new Error(
2580
+ "Native agent binary not found. Run `cargo build --release` in core/. " +
2581
+ "TypeScript child dispatch has been removed.",
2582
+ );
2583
+ }
2584
+
2585
+ // Determine model string for native children
2586
+ const { resolveTier, getViableModels, getDefaultPolicy: getDefPol } = await import("../lib/model-routing.ts");
2587
+ let nativeModel = "anthropic:claude-sonnet-4-20250514";
2588
+ try {
2589
+ const registry = (pi as any).modelRegistry;
2590
+ if (registry) {
2591
+ const models = getViableModels(registry);
2592
+ const policy = (sharedState as any).routingPolicy ?? getDefPol();
2593
+ const resolved = resolveTier("victory", models, policy);
2594
+ if (resolved) nativeModel = `${resolved.provider}:${resolved.modelId}`;
2595
+ }
2596
+ } catch { /* use default */ }
2597
+
2598
+ const { dispatchViaNative } = await import("./native-dispatch.ts");
2599
+
2600
+ // Create label-to-childId lookup for event mapping
2601
+ const labelToChildId = new Map<string, number>();
2602
+ for (const child of state.children) {
2603
+ labelToChildId.set(child.label, child.childId);
2604
+ }
2605
+
2606
+ const handleProgressEvent = (event: NativeProgressEvent) => {
2607
+ switch (event.event) {
2608
+ case "child_spawned": {
2609
+ const childId = labelToChildId.get(event.child);
2610
+ if (childId !== undefined) {
2611
+ emitCleaveChildProgress(pi, childId, {
2612
+ status: "running",
2613
+ startedAt: Date.now(),
2614
+ });
2615
+ }
2616
+ break;
2617
+ }
2618
+ case "child_activity": {
2619
+ const childId = labelToChildId.get(event.child);
2620
+ if (childId !== undefined) {
2621
+ const summary = event.tool
2622
+ ? `→ ${event.tool}${event.target ? ` ${event.target}` : ""}`
2623
+ : event.turn != null
2624
+ ? `Turn ${event.turn}`
2625
+ : "";
2626
+ if (summary) {
2627
+ emitCleaveChildProgress(pi, childId, { lastLine: summary });
2628
+ }
2629
+ }
2630
+ break;
2631
+ }
2632
+ case "child_status": {
2633
+ const childId = labelToChildId.get(event.child);
2634
+ if (childId !== undefined) {
2635
+ const dashStatus = event.status === "completed" ? "done" as const
2636
+ : "failed" as const;
2637
+ emitCleaveChildProgress(pi, childId, {
2638
+ status: dashStatus,
2639
+ ...(event.duration_secs != null && { elapsed: event.duration_secs * 1000 }),
2640
+ });
2641
+ }
2642
+ break;
2643
+ }
2644
+ case "wave_start":
2645
+ case "merge_start":
2646
+ case "merge_result":
2647
+ case "auto_commit":
2648
+ case "done":
2649
+ // These are informational — already surfaced via onProgress stderr lines
2650
+ break;
2651
+ }
2652
+ };
2653
+
2654
+ const nativeResult = await dispatchViaNative({
2655
+ planPath,
2656
+ directive: params.directive,
2657
+ workspacePath: wsPath,
2658
+ repoPath,
2659
+ model: nativeModel,
2660
+ maxParallel,
2661
+ timeoutSecs: Math.round(DEFAULT_CHILD_TIMEOUT_MS / 1000),
2662
+ idleTimeoutSecs: Math.round((params.idle_timeout_ms ?? 180_000) / 1000),
2663
+ maxTurns: 50,
2664
+ }, signal ?? undefined, (line) => {
2665
+ onUpdate?.({
2666
+ content: [{ type: "text", text: line }],
2667
+ details: { phase: "dispatch", children: state.children },
2668
+ });
2669
+ }, handleProgressEvent);
2670
+
2671
+ // ── MAP RUST STATE → TS STATE ─────────────────────────────
2672
+ if (nativeResult.state) {
2673
+ for (const rustChild of nativeResult.state.children) {
2674
+ const tsChild = state.children.find(
2675
+ (c: ChildState) => c.childId === rustChild.childId || c.label === rustChild.label,
2676
+ );
2677
+ if (!tsChild) continue;
2678
+ tsChild.status = rustChild.status === "completed" ? "completed"
2679
+ : rustChild.status === "failed" ? "failed"
2680
+ : tsChild.status;
2681
+ tsChild.error = rustChild.error ?? tsChild.error;
2682
+ tsChild.branch = rustChild.branch ?? tsChild.branch;
2683
+ tsChild.worktreePath = rustChild.worktreePath ?? tsChild.worktreePath;
2684
+ tsChild.backend = "native";
2685
+ if (rustChild.durationSecs != null) {
2686
+ (tsChild as any).durationSecs = rustChild.durationSecs;
2687
+ }
2688
+ }
2689
+ } else if (nativeResult.exitCode !== 0) {
2690
+ // Rust binary failed without producing state — mark all pending children as failed
2691
+ for (const child of state.children) {
2692
+ if (child.status === "pending" || child.status === "running") {
2693
+ child.status = "failed";
2694
+ child.error = `Native dispatch exited ${nativeResult.exitCode} without state`;
2695
+ }
2696
+ }
2697
+ }
2698
+
2699
+ // ── HARVEST + CONFLICTS ────────────────────────────────────
2700
+ emitCleaveState(pi, "merging", state.runId, state.children);
2701
+
2702
+ state.phase = "harvest";
2703
+ saveState(state);
2704
+
2705
+ const taskContents = readTaskFiles(wsPath);
2706
+ const taskResults = [...taskContents.entries()].map(([id, content]) =>
2707
+ parseTaskResult(content, `${id}-task.md`),
2708
+ );
2709
+ const conflicts = detectConflicts(taskResults);
2710
+ const cleaveCandidates = taskResults.flatMap((result) =>
2711
+ result.summary
2712
+ ? emitResolvedBugCandidate(result.summary, result.path)
2713
+ : [],
2714
+ );
2715
+
2716
+ // Merge was already done by the Rust binary — build mergeResults from state
2717
+ const mergeResults: Array<{ label: string; branch: string; success: boolean; conflicts: string[] }> = [];
2718
+ for (const child of state.children) {
2719
+ if (child.status === "completed") {
2720
+ mergeResults.push({
2721
+ label: child.label,
2722
+ branch: child.branch,
2723
+ success: true,
2724
+ conflicts: [],
2725
+ });
2726
+ } else if (child.status === "failed") {
2727
+ mergeResults.push({
2728
+ label: child.label,
2729
+ branch: child.branch,
2730
+ success: false,
2731
+ conflicts: [],
2732
+ });
2733
+ }
2734
+ }
2735
+
2736
+ const mergeFailures = mergeResults.filter((m) => !m.success);
2737
+
2738
+ // ── TASK WRITE-BACK ────────────────────────────────────────
2739
+ // Mark completed child tasks as [x] done in OpenSpec tasks.md
2740
+ let writeBackResult: { updated: number; totalTasks: number; allDone: boolean; unmatchedLabels: string[] } | null = null;
2741
+ if (params.openspec_change_path && mergeFailures.length === 0) {
2742
+ const completedLabels = state.children
2743
+ .filter((c) => c.status === "completed")
2744
+ .map((c) => c.label);
2745
+ try {
2746
+ writeBackResult = writeBackTaskCompletion(params.openspec_change_path, completedLabels);
2747
+ emitOpenSpecState(repoPath, pi);
2748
+ } catch {
2749
+ // Non-fatal — report will note write-back wasn't possible
2750
+ }
2751
+ }
2752
+
2753
+ // ── SPEC VERIFICATION ──────────────────────────────────────
2754
+ // If OpenSpec specs exist, check implementation against scenarios
2755
+ let specVerification: string | null = null;
2756
+ if (openspecCtx && openspecCtx.specScenarios.length > 0 && mergeFailures.length === 0) {
2757
+ specVerification = formatSpecVerification(openspecCtx);
2758
+ }
2759
+ // ── POST-MERGE GUARDRAILS ──────────────────────────────────
2760
+ let guardrailReport: string | null = null;
2761
+ if (mergeFailures.length === 0) {
2762
+ try {
2763
+ const checks = discoverGuardrails(repoPath);
2764
+ if (checks.length > 0) {
2765
+ const suite = runGuardrails(repoPath, checks);
2766
+ if (suite.allPassed) {
2767
+ guardrailReport = "### Static Analysis\n\n✅ All deterministic checks passed after merge";
2768
+ } else {
2769
+ const failures = suite.results.filter((r) => !r.passed);
2770
+ const lines = ["### Static Analysis", "", "⚠ **Post-merge regressions detected**", ""];
2771
+ for (const f of failures) {
2772
+ const capped = f.output.split("\n").slice(0, 20).join("\n");
2773
+ lines.push(`**${f.check.name}** (exit ${f.exitCode}, ${f.durationMs}ms):`);
2774
+ lines.push("```", capped, "```", "");
2775
+ }
2776
+ guardrailReport = lines.join("\n");
2777
+ }
2778
+ }
2779
+ } catch { /* non-fatal */ }
2780
+ }
2781
+
2782
+ if (cleaveCandidates.length > 0) {
2783
+ (sharedState.lifecycleCandidateQueue ??= []).push({
2784
+ source: "cleave",
2785
+ context: `cleave run ${state.runId} final outcomes`,
2786
+ candidates: cleaveCandidates,
2787
+ });
2788
+ }
2789
+
2790
+ if (mergeResults.length > 0 && mergeFailures.length === 0) {
2791
+ // All merges succeeded — safe to clean up worktrees and branches
2792
+ await cleanupWorktrees(pi, repoPath);
2793
+ } else if (mergeResults.length === 0) {
2794
+ // No merges attempted (e.g., all children misclassified or failed).
2795
+ // Preserve branches — they may contain committed work.
2796
+ // Only prune worktree directories to reclaim disk space.
2797
+ await pruneWorktreeDirs(pi, repoPath);
2798
+ } else {
2799
+ // Partial merge failure — preserve branches for manual resolution
2800
+ await pruneWorktreeDirs(pi, repoPath);
2801
+ }
2802
+
2803
+ // ── REPORT ─────────────────────────────────────────────────
2804
+ state.phase = "complete";
2805
+ state.completedAt = new Date().toISOString();
2806
+ state.totalDurationSec = Math.round(
2807
+ (new Date(state.completedAt).getTime() - new Date(state.createdAt).getTime()) / 1000,
2808
+ );
2809
+
2810
+ const allOk =
2811
+ state.children.every((c) => c.status === "completed") &&
2812
+ mergeResults.every((m) => m.success) &&
2813
+ conflicts.length === 0;
2814
+
2815
+ if (!allOk) state.phase = "failed";
2816
+ emitCleaveState(pi, allOk ? "done" : "failed", state.runId, state.children);
2817
+ saveState(state);
2818
+
2819
+ // Build report
2820
+ const completedCount = state.children.filter((c) => c.status === "completed").length;
2821
+ const failedCount = state.children.filter((c) => c.status === "failed").length;
2822
+
2823
+ const reportLines = [
2824
+ `## Cleave Report: ${state.runId}`,
2825
+ "",
2826
+ `**Directive:** ${params.directive}`,
2827
+ `**Status:** ${allOk ? "✓ SUCCESS" : "✗ ISSUES DETECTED"}`,
2828
+ `**Children:** ${completedCount} completed, ${failedCount} failed of ${state.children.length}`,
2829
+ `**Duration:** ${state.totalDurationSec}s`,
2830
+ `**Workspace:** \`${wsPath}\``,
2831
+ "",
2832
+ ];
2833
+
2834
+ // Child details
2835
+ for (const child of state.children) {
2836
+ const icon = child.status === "completed" ? "✓" : child.status === "failed" ? "✗" : "⏳";
2837
+ const dur = child.durationSec ? ` (${child.durationSec}s)` : "";
2838
+ const reviewNote = child.reviewIterations && child.reviewIterations > 0
2839
+ ? ` [${child.reviewIterations} review${child.reviewIterations > 1 ? "s" : ""}: ${child.reviewDecision}]`
2840
+ : "";
2841
+ reportLines.push(` ${icon} **${child.label}** [${child.backend ?? "cloud"}]${dur}: ${child.status}${reviewNote}`);
2842
+ if (child.error) reportLines.push(` Error: ${child.error}`);
2843
+ if (child.reviewEscalationReason) reportLines.push(` Review: ${child.reviewEscalationReason}`);
2844
+ }
2845
+
2846
+ // Conflicts
2847
+ if (conflicts.length > 0) {
2848
+ reportLines.push("", "### Conflicts", "", formatConflicts(conflicts));
2849
+ }
2850
+
2851
+ // Merge results (always show — makes partial merge state explicit)
2852
+ if (mergeResults.length > 0) {
2853
+ reportLines.push("", "### Merge Results");
2854
+ const mergeSuccesses = mergeResults.filter((m) => m.success);
2855
+ const notAttempted = state.children
2856
+ .filter((c: ChildState) => c.status === "completed" && !mergeResults.some((m) => m.label === c.label))
2857
+ .map((c: ChildState) => c.label);
2858
+ for (const m of mergeSuccesses) {
2859
+ reportLines.push(` ✓ ${m.label} merged`);
2860
+ }
2861
+ for (const m of mergeFailures) {
2862
+ reportLines.push(` ✗ ${m.label}: conflicts in ${m.conflicts.join(", ")}`);
2863
+ }
2864
+ for (const label of notAttempted) {
2865
+ reportLines.push(` ⏭ ${label}: skipped (earlier merge failed)`);
2866
+ }
2867
+ }
2868
+
2869
+ // Spec verification (post-merge)
2870
+ if (specVerification) {
2871
+ reportLines.push("", specVerification);
2872
+ }
2873
+
2874
+ // Post-merge guardrail results
2875
+ if (guardrailReport) {
2876
+ reportLines.push("", guardrailReport);
2877
+ }
2878
+
2879
+ // Task write-back status
2880
+ if (writeBackResult && writeBackResult.updated > 0) {
2881
+ reportLines.push(
2882
+ "",
2883
+ "### Task Write-Back",
2884
+ ` ✓ Marked ${writeBackResult.updated} tasks as done in \`tasks.md\``,
2885
+ );
2886
+ }
2887
+ if (writeBackResult && writeBackResult.unmatchedLabels.length > 0) {
2888
+ reportLines.push(
2889
+ "",
2890
+ "### Lifecycle Reconciliation Warning",
2891
+ " ⚠ Completed cleave work could not be mapped back into `tasks.md` for:",
2892
+ ...writeBackResult.unmatchedLabels.map((label) => ` - ${label}`),
2893
+ "",
2894
+ " tasks.md no longer matches the implementation plan. Reconcile the OpenSpec task groups before archive.",
2895
+ );
2896
+ }
2897
+
2898
+ // Next steps guidance
2899
+ if (allOk && params.openspec_change_path) {
2900
+ reportLines.push("", "### Next Steps");
2901
+ if (writeBackResult?.allDone) {
2902
+ reportLines.push(
2903
+ " All tasks complete. Ready to finalize:",
2904
+ " 1. Run `/assess spec` to validate implementation against spec scenarios",
2905
+ " 2. Run `/opsx:verify` for full verification",
2906
+ " 3. Run `/opsx:archive` to merge delta specs and close the change",
2907
+ );
2908
+ } else {
2909
+ reportLines.push(
2910
+ " Some tasks remain. Continue with:",
2911
+ " 1. Run `/opsx:apply` to work on remaining tasks",
2912
+ " 2. Or run `/cleave` again targeting the unfinished groups",
2913
+ );
2914
+ }
2915
+ } else if (allOk && !params.openspec_change_path) {
2916
+ reportLines.push(
2917
+ "",
2918
+ "### Next Steps",
2919
+ " Run tests and review the merged changes.",
2920
+ );
2921
+ }
2922
+
2923
+ const rawReport = reportLines.join("\n");
2924
+ const truncation = truncateTail(rawReport, {
2925
+ maxLines: DEFAULT_MAX_LINES,
2926
+ maxBytes: DEFAULT_MAX_BYTES,
2927
+ });
2928
+ let report = truncation.content;
2929
+ if (truncation.truncated) {
2930
+ report += `\n\n[Report truncated: ${truncation.outputLines} of ${truncation.totalLines} lines` +
2931
+ ` (${formatSize(truncation.outputBytes)} of ${formatSize(truncation.totalBytes)})]`;
2932
+ }
2933
+
2934
+ return {
2935
+ content: [{ type: "text", text: report }],
2936
+ details: {
2937
+ runId: state.runId,
2938
+ success: allOk,
2939
+ childrenCompleted: completedCount,
2940
+ childrenFailed: failedCount,
2941
+ conflictsFound: conflicts.length,
2942
+ mergeFailures: mergeFailures.length,
2943
+ workspacePath: wsPath,
2944
+ },
2945
+ };
2946
+ },
2947
+ });
2948
+
2949
+ // ─── /cleave inspect ──────────────────────────────────────────────────────
2950
+
2951
+ /**
2952
+ * Run `git diff --stat` + `git status --short` in a worktree.
2953
+ * Returns a formatted string or an empty string if no changes / no worktree.
2954
+ * Result is cached for 2s to avoid subprocess spam on repeated renders.
2955
+ */
2956
+ const execFileAsync = promisify(execFile);
2957
+ const diffCache = new Map<string, { ts: number; result: string }>();
2958
+
2959
+ async function runGitDiff(worktreePath: string): Promise<string> {
2960
+ const cached = diffCache.get(worktreePath);
2961
+ if (cached && Date.now() - cached.ts < 2000) return cached.result;
2962
+ try {
2963
+ const [stat, status] = await Promise.all([
2964
+ execFileAsync("git", ["diff", "--stat", "HEAD"], { cwd: worktreePath }).then(r => r.stdout.trim()).catch(() => ""),
2965
+ execFileAsync("git", ["status", "--short"], { cwd: worktreePath }).then(r => r.stdout.trim()).catch(() => ""),
2966
+ ]);
2967
+ const result = [stat, status].filter(Boolean).join("\n") || "(no changes yet)";
2968
+ diffCache.set(worktreePath, { ts: Date.now(), result });
2969
+ return result;
2970
+ } catch {
2971
+ return "(git unavailable)";
2972
+ }
2973
+ }
2974
+
2975
+ /** Open the inspect overlay for a specific child index. */
2976
+ async function openInspectOverlay(childIdx: number, ctx: ExtensionCommandContext): Promise<void> {
2977
+ const cl = (sharedState as any).cleave;
2978
+ const children: any[] = cl?.children ?? [];
2979
+
2980
+ let selected = Math.max(0, Math.min(childIdx, children.length - 1));
2981
+ let diffText = children.length === 0 ? "" : "(loading…)";
2982
+ let diffLoaded = false;
2983
+
2984
+ const loadDiff = async () => {
2985
+ const child = children[selected];
2986
+ if (!child?.worktreePath) { diffText = "(no worktree assigned)"; diffLoaded = true; return; }
2987
+ diffText = await runGitDiff(child.worktreePath);
2988
+ diffLoaded = true;
2989
+ };
2990
+ // Load diff async — don't block overlay open
2991
+ loadDiff();
2992
+
2993
+ await ctx.ui.custom((tui, theme, _kb, done) => {
2994
+ const component = {
2995
+ render(width: number): string[] {
2996
+ const lines: string[] = [];
2997
+ const child = children[selected];
2998
+ const divFill = (label: string) => {
2999
+ const prefix = ` ── ${label} `;
3000
+ return theme.fg("dim", prefix + "─".repeat(Math.max(0, width - prefix.length)));
3001
+ };
3002
+
3003
+ // ── Header ──────────────────────────────────────────────
3004
+ const headerLabel = ` ⚡ cleave inspect `;
3005
+ const headerFill = Math.max(0, width - headerLabel.length - 2);
3006
+ lines.push(
3007
+ theme.fg("dim", "──") +
3008
+ theme.fg("accent", headerLabel) +
3009
+ theme.fg("dim", "─".repeat(headerFill)),
3010
+ );
3011
+
3012
+ if (children.length === 0) {
3013
+ lines.push("");
3014
+ lines.push(theme.fg("muted", " No active cleave children."));
3015
+ lines.push("");
3016
+ lines.push(theme.fg("dim", " q close"));
3017
+ return lines;
3018
+ }
3019
+
3020
+ // ── Child selector ───────────────────────────────────────
3021
+ lines.push("");
3022
+ for (let i = 0; i < children.length; i++) {
3023
+ const c = children[i];
3024
+ const icon =
3025
+ c.status === "done" ? theme.fg("success", "✓") :
3026
+ c.status === "failed" ? theme.fg("error", "✕") :
3027
+ c.status === "running" ? theme.fg("warning", "⟳") :
3028
+ theme.fg("dim", "○");
3029
+ const elapsedSec = c.startedAt ? Math.floor((Date.now() - c.startedAt) / 1000) : null;
3030
+ const elapsed = elapsedSec != null ? theme.fg("dim", ` ${elapsedSec}s`) : "";
3031
+ const label = i === selected
3032
+ ? theme.bold(theme.fg("accent", `▶ ${c.label}`))
3033
+ : theme.fg("muted", ` ${c.label}`);
3034
+ lines.push(` ${icon} ${label}${elapsed}`);
3035
+ }
3036
+
3037
+ // ── Recent stdout ────────────────────────────────────────
3038
+ lines.push("");
3039
+ lines.push(divFill("activity"));
3040
+ const recent: string[] = child?.recentLines ?? [];
3041
+ if (recent.length === 0) {
3042
+ lines.push(theme.fg("dim", " (no output yet)"));
3043
+ } else {
3044
+ for (const l of recent.slice(-10)) {
3045
+ lines.push(theme.fg("muted", ` ${l.slice(0, width - 4)}`));
3046
+ }
3047
+ }
3048
+
3049
+ // ── Git diff ─────────────────────────────────────────────
3050
+ lines.push("");
3051
+ lines.push(divFill("worktree diff"));
3052
+ for (const l of diffText.split("\n").slice(0, 15)) {
3053
+ lines.push(theme.fg("muted", ` ${l.slice(0, width - 4)}`));
3054
+ }
3055
+
3056
+ // ── Footer ───────────────────────────────────────────────
3057
+ lines.push("");
3058
+ lines.push(theme.fg("dim", " ↑↓ select child · r refresh · q close"));
3059
+ return lines;
3060
+ },
3061
+ invalidate() {},
3062
+ onKey(key: string) {
3063
+ if (key === "escape" || key === "q") { done(undefined); return; }
3064
+ if (key === "up" || key === "k") {
3065
+ selected = Math.max(0, selected - 1);
3066
+ diffLoaded = false; diffText = "(loading…)";
3067
+ loadDiff().then(() => tui.requestRender());
3068
+ }
3069
+ if (key === "down" || key === "j") {
3070
+ selected = Math.min(children.length - 1, selected + 1);
3071
+ diffLoaded = false; diffText = "(loading…)";
3072
+ loadDiff().then(() => tui.requestRender());
3073
+ }
3074
+ if (key === "r") {
3075
+ const child = children[selected];
3076
+ if (child?.worktreePath) diffCache.delete(child.worktreePath);
3077
+ diffText = "(loading…)";
3078
+ loadDiff().then(() => tui.requestRender());
3079
+ }
3080
+ tui.requestRender();
3081
+ },
3082
+ };
3083
+ // Re-render when diff loads
3084
+ const diffPoll = setInterval(() => {
3085
+ if (diffLoaded) { clearInterval(diffPoll); tui.requestRender(); }
3086
+ }, 100);
3087
+ (component as any).dispose = () => clearInterval(diffPoll);
3088
+ return component;
3089
+ });
3090
+ }
3091
+
3092
+ pi.registerCommand("cleave inspect", {
3093
+ description: "Inspect a running cleave child — stdout ring buffer + live git diff",
3094
+ handler: async (_args, ctx) => {
3095
+ await openInspectOverlay(0, ctx);
3096
+ },
3097
+ });
3098
+
3099
+ // Register ctrl+i shortcut while any cleave run is active
3100
+ let inspectShortcutActive = false;
3101
+ pi.events.on(DASHBOARD_UPDATE_EVENT, (data: any) => {
3102
+ const cl = (sharedState as any).cleave;
3103
+ const isRunning = cl?.status === "running" || cl?.status === "dispatching";
3104
+ if (isRunning && !inspectShortcutActive) {
3105
+ inspectShortcutActive = true;
3106
+ pi.registerShortcut("ctrl+i", {
3107
+ description: "Inspect running cleave children",
3108
+ handler: async (ctx) => {
3109
+ await openInspectOverlay(0, ctx as any);
3110
+ },
3111
+ });
3112
+ }
3113
+ });
3114
+ }