@polderlabs/bizar-omp 0.7.0 → 0.7.1

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 (414) hide show
  1. package/README.md +6 -4
  2. package/dist/cli/agents-ink.d.ts.map +1 -1
  3. package/dist/cli/agents-ink.js +5 -3
  4. package/dist/cli/agents-ink.js.map +1 -1
  5. package/dist/cli/agents.d.ts.map +1 -1
  6. package/dist/cli/agents.js +26 -8
  7. package/dist/cli/agents.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +4 -4
  9. package/dist/cli/main.js +0 -0
  10. package/dist/cli/omb.js +0 -0
  11. package/dist/core/recovery.d.ts.map +1 -1
  12. package/dist/core/recovery.js +10 -5
  13. package/dist/core/recovery.js.map +1 -1
  14. package/dist/core/transitions.d.ts +4 -0
  15. package/dist/core/transitions.d.ts.map +1 -1
  16. package/dist/core/transitions.js +12 -2
  17. package/dist/core/transitions.js.map +1 -1
  18. package/dist/core/types.d.ts +46 -0
  19. package/dist/core/types.d.ts.map +1 -1
  20. package/dist/extension.d.ts +2 -0
  21. package/dist/extension.d.ts.map +1 -1
  22. package/dist/extension.js +174 -16
  23. package/dist/extension.js.map +1 -1
  24. package/dist/omp/compatibility.d.ts +5 -5
  25. package/dist/omp/compatibility.d.ts.map +1 -1
  26. package/dist/omp/compatibility.js +2 -2
  27. package/dist/omp/compatibility.js.map +1 -1
  28. package/dist/omp/daemon-service.d.ts.map +1 -1
  29. package/dist/omp/daemon-service.js +53 -20
  30. package/dist/omp/daemon-service.js.map +1 -1
  31. package/dist/omp/daemon.d.ts.map +1 -1
  32. package/dist/omp/daemon.js +57 -17
  33. package/dist/omp/daemon.js.map +1 -1
  34. package/dist/omp/dashboard-html.js +5 -5
  35. package/dist/omp/dispatch-admission.js +1 -1
  36. package/dist/omp/dispatch-admission.js.map +1 -1
  37. package/dist/omp/model-role-assignment.d.ts +4 -0
  38. package/dist/omp/model-role-assignment.d.ts.map +1 -1
  39. package/dist/omp/model-role-assignment.js +84 -8
  40. package/dist/omp/model-role-assignment.js.map +1 -1
  41. package/dist/omp/omb-sessions.d.ts +22 -7
  42. package/dist/omp/omb-sessions.d.ts.map +1 -1
  43. package/dist/omp/omb-sessions.js +83 -11
  44. package/dist/omp/omb-sessions.js.map +1 -1
  45. package/dist/omp/omb-settings.d.ts +15 -1
  46. package/dist/omp/omb-settings.d.ts.map +1 -1
  47. package/dist/omp/omb-settings.js +107 -31
  48. package/dist/omp/omb-settings.js.map +1 -1
  49. package/dist/omp/rpc.d.ts +8 -0
  50. package/dist/omp/rpc.d.ts.map +1 -1
  51. package/dist/omp/session-activity.d.ts +5 -0
  52. package/dist/omp/session-activity.d.ts.map +1 -1
  53. package/dist/omp/session-activity.js +17 -0
  54. package/dist/omp/session-activity.js.map +1 -1
  55. package/dist/omp/tmux.d.ts.map +1 -1
  56. package/dist/omp/tmux.js +110 -14
  57. package/dist/omp/tmux.js.map +1 -1
  58. package/dist/services/candidate-verify.d.ts.map +1 -1
  59. package/dist/services/candidate-verify.js +44 -1
  60. package/dist/services/candidate-verify.js.map +1 -1
  61. package/dist/services/inspector.d.ts +5 -1
  62. package/dist/services/inspector.d.ts.map +1 -1
  63. package/dist/services/inspector.js +11 -2
  64. package/dist/services/inspector.js.map +1 -1
  65. package/dist/services/native-review-ingest.d.ts +35 -0
  66. package/dist/services/native-review-ingest.d.ts.map +1 -0
  67. package/dist/services/native-review-ingest.js +14 -0
  68. package/dist/services/native-review-ingest.js.map +1 -0
  69. package/dist/tools/integrate.d.ts.map +1 -1
  70. package/dist/tools/integrate.js +13 -0
  71. package/dist/tools/integrate.js.map +1 -1
  72. package/dist/tools/workflow.d.ts +9 -0
  73. package/dist/tools/workflow.d.ts.map +1 -1
  74. package/dist/tools/workflow.js +25 -2
  75. package/dist/tools/workflow.js.map +1 -1
  76. package/docs/compatibility/baseline.json +8 -7
  77. package/docs/compatibility/supported-surfaces.json +2 -1
  78. package/docs/development/ci-release-implementation-guide.md +1259 -0
  79. package/docs/development/contributing-and-releasing.md +117 -0
  80. package/docs/development/omp-compatibility-update-guide.md +117 -0
  81. package/docs/releases/0.7.1.md +15 -0
  82. package/docs/releases/native-stable.md +11 -1
  83. package/docs/releases/npm-publishing.md +23 -4
  84. package/docs/releases/support-matrix.md +1 -1
  85. package/package.json +2 -1
  86. package/rules/oflow-gitlab.md +6 -0
  87. package/skills/oflow-gitlab-context/SKILL.md +49 -0
  88. package/skills/omp-native-development/SKILL.md +1 -1
  89. package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
  90. package/skills/omp-native-development/references/source-manifest.json +3 -3
  91. package/dist/src/cli/agents-ink.d.ts +0 -25
  92. package/dist/src/cli/agents-ink.js +0 -517
  93. package/dist/src/cli/agents-ink.js.map +0 -1
  94. package/dist/src/cli/agents.d.ts +0 -14
  95. package/dist/src/cli/agents.js +0 -197
  96. package/dist/src/cli/agents.js.map +0 -1
  97. package/dist/src/cli/directory-selector.d.ts +0 -60
  98. package/dist/src/cli/directory-selector.js +0 -208
  99. package/dist/src/cli/directory-selector.js.map +0 -1
  100. package/dist/src/cli/doctor.d.ts +0 -41
  101. package/dist/src/cli/doctor.js +0 -31
  102. package/dist/src/cli/doctor.js.map +0 -1
  103. package/dist/src/cli/install.d.ts +0 -129
  104. package/dist/src/cli/install.js +0 -164
  105. package/dist/src/cli/install.js.map +0 -1
  106. package/dist/src/cli/main.d.ts +0 -2
  107. package/dist/src/cli/main.js +0 -117
  108. package/dist/src/cli/main.js.map +0 -1
  109. package/dist/src/cli/migrate.d.ts +0 -18
  110. package/dist/src/cli/migrate.js +0 -14
  111. package/dist/src/cli/migrate.js.map +0 -1
  112. package/dist/src/cli/omb-commands.d.ts +0 -29
  113. package/dist/src/cli/omb-commands.js +0 -107
  114. package/dist/src/cli/omb-commands.js.map +0 -1
  115. package/dist/src/cli/omb-daemon.d.ts +0 -2
  116. package/dist/src/cli/omb-daemon.js +0 -135
  117. package/dist/src/cli/omb-daemon.js.map +0 -1
  118. package/dist/src/cli/omb-dashboard.d.ts +0 -12
  119. package/dist/src/cli/omb-dashboard.js +0 -113
  120. package/dist/src/cli/omb-dashboard.js.map +0 -1
  121. package/dist/src/cli/omb-invocation.d.ts +0 -8
  122. package/dist/src/cli/omb-invocation.js +0 -41
  123. package/dist/src/cli/omb-invocation.js.map +0 -1
  124. package/dist/src/cli/omb-runtime.d.ts +0 -41
  125. package/dist/src/cli/omb-runtime.js +0 -371
  126. package/dist/src/cli/omb-runtime.js.map +0 -1
  127. package/dist/src/cli/omb-tray.d.ts +0 -2
  128. package/dist/src/cli/omb-tray.js +0 -38
  129. package/dist/src/cli/omb-tray.js.map +0 -1
  130. package/dist/src/cli/omb.d.ts +0 -2
  131. package/dist/src/cli/omb.js +0 -31
  132. package/dist/src/cli/omb.js.map +0 -1
  133. package/dist/src/cli/omp-theme.d.ts +0 -17
  134. package/dist/src/cli/omp-theme.js +0 -22
  135. package/dist/src/cli/omp-theme.js.map +0 -1
  136. package/dist/src/cli/process.d.ts +0 -6
  137. package/dist/src/cli/process.js +0 -54
  138. package/dist/src/cli/process.js.map +0 -1
  139. package/dist/src/cli/run.d.ts +0 -2
  140. package/dist/src/cli/run.js +0 -5
  141. package/dist/src/cli/run.js.map +0 -1
  142. package/dist/src/cli/setup-ui.d.ts +0 -37
  143. package/dist/src/cli/setup-ui.js +0 -90
  144. package/dist/src/cli/setup-ui.js.map +0 -1
  145. package/dist/src/core/acceptance.d.ts +0 -32
  146. package/dist/src/core/acceptance.js +0 -87
  147. package/dist/src/core/acceptance.js.map +0 -1
  148. package/dist/src/core/errors.d.ts +0 -20
  149. package/dist/src/core/errors.js +0 -30
  150. package/dist/src/core/errors.js.map +0 -1
  151. package/dist/src/core/evidence.d.ts +0 -10
  152. package/dist/src/core/evidence.js +0 -35
  153. package/dist/src/core/evidence.js.map +0 -1
  154. package/dist/src/core/policies.d.ts +0 -10
  155. package/dist/src/core/policies.js +0 -60
  156. package/dist/src/core/policies.js.map +0 -1
  157. package/dist/src/core/recovery.d.ts +0 -6
  158. package/dist/src/core/recovery.js +0 -56
  159. package/dist/src/core/recovery.js.map +0 -1
  160. package/dist/src/core/transitions.d.ts +0 -13
  161. package/dist/src/core/transitions.js +0 -59
  162. package/dist/src/core/transitions.js.map +0 -1
  163. package/dist/src/core/types.d.ts +0 -256
  164. package/dist/src/core/types.js +0 -2
  165. package/dist/src/core/types.js.map +0 -1
  166. package/dist/src/extension.d.ts +0 -60
  167. package/dist/src/extension.js +0 -538
  168. package/dist/src/extension.js.map +0 -1
  169. package/dist/src/index.d.ts +0 -29
  170. package/dist/src/index.js +0 -30
  171. package/dist/src/index.js.map +0 -1
  172. package/dist/src/omp/autonomous-settings.d.ts +0 -14
  173. package/dist/src/omp/autonomous-settings.js +0 -65
  174. package/dist/src/omp/autonomous-settings.js.map +0 -1
  175. package/dist/src/omp/capabilities.d.ts +0 -23
  176. package/dist/src/omp/capabilities.js +0 -6
  177. package/dist/src/omp/capabilities.js.map +0 -1
  178. package/dist/src/omp/compatibility.d.ts +0 -30
  179. package/dist/src/omp/compatibility.js +0 -34
  180. package/dist/src/omp/compatibility.js.map +0 -1
  181. package/dist/src/omp/completion.d.ts +0 -7
  182. package/dist/src/omp/completion.js +0 -10
  183. package/dist/src/omp/completion.js.map +0 -1
  184. package/dist/src/omp/config.d.ts +0 -10
  185. package/dist/src/omp/config.js +0 -14
  186. package/dist/src/omp/config.js.map +0 -1
  187. package/dist/src/omp/context.d.ts +0 -15
  188. package/dist/src/omp/context.js +0 -3
  189. package/dist/src/omp/context.js.map +0 -1
  190. package/dist/src/omp/daemon-service.d.ts +0 -25
  191. package/dist/src/omp/daemon-service.js +0 -483
  192. package/dist/src/omp/daemon-service.js.map +0 -1
  193. package/dist/src/omp/daemon.d.ts +0 -48
  194. package/dist/src/omp/daemon.js +0 -194
  195. package/dist/src/omp/daemon.js.map +0 -1
  196. package/dist/src/omp/dashboard-html.d.ts +0 -3
  197. package/dist/src/omp/dashboard-html.js +0 -419
  198. package/dist/src/omp/dashboard-html.js.map +0 -1
  199. package/dist/src/omp/dispatch-admission.d.ts +0 -2
  200. package/dist/src/omp/dispatch-admission.js +0 -12
  201. package/dist/src/omp/dispatch-admission.js.map +0 -1
  202. package/dist/src/omp/integration-recovery.d.ts +0 -10
  203. package/dist/src/omp/integration-recovery.js +0 -18
  204. package/dist/src/omp/integration-recovery.js.map +0 -1
  205. package/dist/src/omp/isolation-policy.d.ts +0 -14
  206. package/dist/src/omp/isolation-policy.js +0 -9
  207. package/dist/src/omp/isolation-policy.js.map +0 -1
  208. package/dist/src/omp/lifecycle.d.ts +0 -14
  209. package/dist/src/omp/lifecycle.js +0 -14
  210. package/dist/src/omp/lifecycle.js.map +0 -1
  211. package/dist/src/omp/memory.d.ts +0 -16
  212. package/dist/src/omp/memory.js +0 -4
  213. package/dist/src/omp/memory.js.map +0 -1
  214. package/dist/src/omp/model-role-assignment.d.ts +0 -296
  215. package/dist/src/omp/model-role-assignment.js +0 -559
  216. package/dist/src/omp/model-role-assignment.js.map +0 -1
  217. package/dist/src/omp/model-roles.d.ts +0 -19
  218. package/dist/src/omp/model-roles.js +0 -6
  219. package/dist/src/omp/model-roles.js.map +0 -1
  220. package/dist/src/omp/omb-sessions.d.ts +0 -122
  221. package/dist/src/omp/omb-sessions.js +0 -512
  222. package/dist/src/omp/omb-sessions.js.map +0 -1
  223. package/dist/src/omp/omb-settings.d.ts +0 -35
  224. package/dist/src/omp/omb-settings.js +0 -104
  225. package/dist/src/omp/omb-settings.js.map +0 -1
  226. package/dist/src/omp/result-reconciliation.d.ts +0 -2
  227. package/dist/src/omp/result-reconciliation.js +0 -9
  228. package/dist/src/omp/result-reconciliation.js.map +0 -1
  229. package/dist/src/omp/rpc.d.ts +0 -67
  230. package/dist/src/omp/rpc.js +0 -4
  231. package/dist/src/omp/rpc.js.map +0 -1
  232. package/dist/src/omp/run-log.d.ts +0 -25
  233. package/dist/src/omp/run-log.js +0 -24
  234. package/dist/src/omp/run-log.js.map +0 -1
  235. package/dist/src/omp/session-activity.d.ts +0 -70
  236. package/dist/src/omp/session-activity.js +0 -361
  237. package/dist/src/omp/session-activity.js.map +0 -1
  238. package/dist/src/omp/session-controls.d.ts +0 -17
  239. package/dist/src/omp/session-controls.js +0 -14
  240. package/dist/src/omp/session-controls.js.map +0 -1
  241. package/dist/src/omp/tmux.d.ts +0 -89
  242. package/dist/src/omp/tmux.js +0 -445
  243. package/dist/src/omp/tmux.js.map +0 -1
  244. package/dist/src/omp/tray-icons.d.ts +0 -5
  245. package/dist/src/omp/tray-icons.js +0 -78
  246. package/dist/src/omp/tray-icons.js.map +0 -1
  247. package/dist/src/omp/tray.d.ts +0 -23
  248. package/dist/src/omp/tray.js +0 -167
  249. package/dist/src/omp/tray.js.map +0 -1
  250. package/dist/src/services/budget.d.ts +0 -19
  251. package/dist/src/services/budget.js +0 -10
  252. package/dist/src/services/budget.js.map +0 -1
  253. package/dist/src/services/candidate-local.d.ts +0 -13
  254. package/dist/src/services/candidate-local.js +0 -15
  255. package/dist/src/services/candidate-local.js.map +0 -1
  256. package/dist/src/services/candidates.d.ts +0 -20
  257. package/dist/src/services/candidates.js +0 -100
  258. package/dist/src/services/candidates.js.map +0 -1
  259. package/dist/src/services/evidence-bundle.d.ts +0 -17
  260. package/dist/src/services/evidence-bundle.js +0 -21
  261. package/dist/src/services/evidence-bundle.js.map +0 -1
  262. package/dist/src/services/inspector.d.ts +0 -11
  263. package/dist/src/services/inspector.js +0 -6
  264. package/dist/src/services/inspector.js.map +0 -1
  265. package/dist/src/services/lessons.d.ts +0 -13
  266. package/dist/src/services/lessons.js +0 -11
  267. package/dist/src/services/lessons.js.map +0 -1
  268. package/dist/src/services/projection.d.ts +0 -21
  269. package/dist/src/services/projection.js +0 -10
  270. package/dist/src/services/projection.js.map +0 -1
  271. package/dist/src/services/readiness.d.ts +0 -4
  272. package/dist/src/services/readiness.js +0 -35
  273. package/dist/src/services/readiness.js.map +0 -1
  274. package/dist/src/services/recipes.d.ts +0 -15
  275. package/dist/src/services/recipes.js +0 -42
  276. package/dist/src/services/recipes.js.map +0 -1
  277. package/dist/src/services/recovery.d.ts +0 -19
  278. package/dist/src/services/recovery.js +0 -9
  279. package/dist/src/services/recovery.js.map +0 -1
  280. package/dist/src/services/review.d.ts +0 -15
  281. package/dist/src/services/review.js +0 -9
  282. package/dist/src/services/review.js.map +0 -1
  283. package/dist/src/storage/journal-recovery.d.ts +0 -10
  284. package/dist/src/storage/journal-recovery.js +0 -33
  285. package/dist/src/storage/journal-recovery.js.map +0 -1
  286. package/dist/src/storage/journal.d.ts +0 -12
  287. package/dist/src/storage/journal.js +0 -82
  288. package/dist/src/storage/journal.js.map +0 -1
  289. package/dist/src/storage/migrations.d.ts +0 -22
  290. package/dist/src/storage/migrations.js +0 -107
  291. package/dist/src/storage/migrations.js.map +0 -1
  292. package/dist/src/storage/repository-identity.d.ts +0 -11
  293. package/dist/src/storage/repository-identity.js +0 -67
  294. package/dist/src/storage/repository-identity.js.map +0 -1
  295. package/dist/src/storage/resources.d.ts +0 -66
  296. package/dist/src/storage/resources.js +0 -148
  297. package/dist/src/storage/resources.js.map +0 -1
  298. package/dist/src/tools/evidence.d.ts +0 -8
  299. package/dist/src/tools/evidence.js +0 -9
  300. package/dist/src/tools/evidence.js.map +0 -1
  301. package/dist/src/tools/integrate.d.ts +0 -13
  302. package/dist/src/tools/integrate.js +0 -90
  303. package/dist/src/tools/integrate.js.map +0 -1
  304. package/dist/src/tools/result.d.ts +0 -9
  305. package/dist/src/tools/result.js +0 -2
  306. package/dist/src/tools/result.js.map +0 -1
  307. package/dist/src/tools/verify.d.ts +0 -13
  308. package/dist/src/tools/verify.js +0 -61
  309. package/dist/src/tools/verify.js.map +0 -1
  310. package/dist/src/tools/workflow.d.ts +0 -8
  311. package/dist/src/tools/workflow.js +0 -65
  312. package/dist/src/tools/workflow.js.map +0 -1
  313. package/dist/src/workflows/direct.d.ts +0 -9
  314. package/dist/src/workflows/direct.js +0 -2
  315. package/dist/src/workflows/direct.js.map +0 -1
  316. package/dist/src/workflows/implement.d.ts +0 -2
  317. package/dist/src/workflows/implement.js +0 -4
  318. package/dist/src/workflows/implement.js.map +0 -1
  319. package/dist/src/workflows/plan.d.ts +0 -17
  320. package/dist/src/workflows/plan.js +0 -6
  321. package/dist/src/workflows/plan.js.map +0 -1
  322. package/dist/src/workflows/research.d.ts +0 -15
  323. package/dist/src/workflows/research.js +0 -2
  324. package/dist/src/workflows/research.js.map +0 -1
  325. package/dist/src/workflows/review.d.ts +0 -15
  326. package/dist/src/workflows/review.js +0 -2
  327. package/dist/src/workflows/review.js.map +0 -1
  328. package/dist/src/workflows/verify.d.ts +0 -9
  329. package/dist/src/workflows/verify.js +0 -2
  330. package/dist/src/workflows/verify.js.map +0 -1
  331. package/dist/tests/acceptance.test.d.ts +0 -1
  332. package/dist/tests/acceptance.test.js +0 -27
  333. package/dist/tests/acceptance.test.js.map +0 -1
  334. package/dist/tests/agents.test.d.ts +0 -1
  335. package/dist/tests/agents.test.js +0 -369
  336. package/dist/tests/agents.test.js.map +0 -1
  337. package/dist/tests/candidates.test.d.ts +0 -1
  338. package/dist/tests/candidates.test.js +0 -60
  339. package/dist/tests/candidates.test.js.map +0 -1
  340. package/dist/tests/core.test.d.ts +0 -1
  341. package/dist/tests/core.test.js +0 -39
  342. package/dist/tests/core.test.js.map +0 -1
  343. package/dist/tests/daemon.test.d.ts +0 -1
  344. package/dist/tests/daemon.test.js +0 -157
  345. package/dist/tests/daemon.test.js.map +0 -1
  346. package/dist/tests/dashboard.test.d.ts +0 -1
  347. package/dist/tests/dashboard.test.js +0 -414
  348. package/dist/tests/dashboard.test.js.map +0 -1
  349. package/dist/tests/directory-selector.test.d.ts +0 -1
  350. package/dist/tests/directory-selector.test.js +0 -93
  351. package/dist/tests/directory-selector.test.js.map +0 -1
  352. package/dist/tests/doctor.test.d.ts +0 -1
  353. package/dist/tests/doctor.test.js +0 -32
  354. package/dist/tests/doctor.test.js.map +0 -1
  355. package/dist/tests/install.test.d.ts +0 -1
  356. package/dist/tests/install.test.js +0 -101
  357. package/dist/tests/install.test.js.map +0 -1
  358. package/dist/tests/integration.test.d.ts +0 -1
  359. package/dist/tests/integration.test.js +0 -49
  360. package/dist/tests/integration.test.js.map +0 -1
  361. package/dist/tests/journal.test.d.ts +0 -1
  362. package/dist/tests/journal.test.js +0 -50
  363. package/dist/tests/journal.test.js.map +0 -1
  364. package/dist/tests/model-role-assignment.test.d.ts +0 -1
  365. package/dist/tests/model-role-assignment.test.js +0 -294
  366. package/dist/tests/model-role-assignment.test.js.map +0 -1
  367. package/dist/tests/omb-runtime.test.d.ts +0 -1
  368. package/dist/tests/omb-runtime.test.js +0 -554
  369. package/dist/tests/omb-runtime.test.js.map +0 -1
  370. package/dist/tests/omb-session-actions.test.d.ts +0 -1
  371. package/dist/tests/omb-session-actions.test.js +0 -191
  372. package/dist/tests/omb-session-actions.test.js.map +0 -1
  373. package/dist/tests/omb-settings.test.d.ts +0 -1
  374. package/dist/tests/omb-settings.test.js +0 -82
  375. package/dist/tests/omb-settings.test.js.map +0 -1
  376. package/dist/tests/omp-contract.test.d.ts +0 -1
  377. package/dist/tests/omp-contract.test.js +0 -362
  378. package/dist/tests/omp-contract.test.js.map +0 -1
  379. package/dist/tests/process.test.d.ts +0 -1
  380. package/dist/tests/process.test.js +0 -12
  381. package/dist/tests/process.test.js.map +0 -1
  382. package/dist/tests/psmux-windows.test.d.ts +0 -1
  383. package/dist/tests/psmux-windows.test.js +0 -105
  384. package/dist/tests/psmux-windows.test.js.map +0 -1
  385. package/dist/tests/recovery.test.d.ts +0 -1
  386. package/dist/tests/recovery.test.js +0 -9
  387. package/dist/tests/recovery.test.js.map +0 -1
  388. package/dist/tests/resources.test.d.ts +0 -1
  389. package/dist/tests/resources.test.js +0 -55
  390. package/dist/tests/resources.test.js.map +0 -1
  391. package/dist/tests/session-activity.test.d.ts +0 -1
  392. package/dist/tests/session-activity.test.js +0 -159
  393. package/dist/tests/session-activity.test.js.map +0 -1
  394. package/dist/tests/setup-ui.test.d.ts +0 -1
  395. package/dist/tests/setup-ui.test.js +0 -37
  396. package/dist/tests/setup-ui.test.js.map +0 -1
  397. package/dist/tests/storage-integrity.test.d.ts +0 -1
  398. package/dist/tests/storage-integrity.test.js +0 -88
  399. package/dist/tests/storage-integrity.test.js.map +0 -1
  400. package/dist/tests/tmux.test.d.ts +0 -1
  401. package/dist/tests/tmux.test.js +0 -239
  402. package/dist/tests/tmux.test.js.map +0 -1
  403. package/dist/tests/tray.test.d.ts +0 -1
  404. package/dist/tests/tray.test.js +0 -37
  405. package/dist/tests/tray.test.js.map +0 -1
  406. package/dist/tests/verification.test.d.ts +0 -1
  407. package/dist/tests/verification.test.js +0 -61
  408. package/dist/tests/verification.test.js.map +0 -1
  409. package/dist/tests/workflow-features.test.d.ts +0 -1
  410. package/dist/tests/workflow-features.test.js +0 -82
  411. package/dist/tests/workflow-features.test.js.map +0 -1
  412. package/dist/tests/workflow-safety.test.d.ts +0 -1
  413. package/dist/tests/workflow-safety.test.js +0 -57
  414. package/dist/tests/workflow-safety.test.js.map +0 -1
@@ -1,362 +0,0 @@
1
- import { afterEach, describe, expect, it, vi } from "vitest";
2
- import { mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
3
- import { execFileSync } from "node:child_process";
4
- import { tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import extension from "../src/extension.js";
7
- import { loadOmbSettings } from "../src/omp/omb-settings.js";
8
- import { result } from "../src/tools/result.js";
9
- import { admitDispatch } from "../src/omp/dispatch-admission.js";
10
- import { reconcileResult } from "../src/omp/result-reconciliation.js";
11
- import { createRun, addWorkItem } from "../src/core/transitions.js";
12
- import { classifyRoute } from "../src/core/policies.js";
13
- function gitProject() { const root = mkdtempSync(join(tmpdir(), "bizar-omp-project-")); execFileSync("git", ["init", "-q", root]); execFileSync("git", ["-C", root, "config", "user.email", "test@example.invalid"]); execFileSync("git", ["-C", root, "config", "user.name", "Bizar Test"]); execFileSync("git", ["-C", root, "commit", "--allow-empty", "-qm", "init"]); return root; }
14
- function fakeSchema(kind, value) { return { kind, value, optional: () => fakeSchema(kind, value) }; }
15
- function fakeZod() {
16
- return {
17
- string: () => fakeSchema("string"), boolean: () => fakeSchema("boolean"), array: (item) => fakeSchema("array", item), enum: (items) => fakeSchema("enum", items), union: (items) => fakeSchema("union", items), object: (shape) => fakeSchema("object", shape),
18
- };
19
- }
20
- function extensionHost(tools, handlers, commands = [], commandDefinitions = new Map(), extras = {}) {
21
- return { zod: fakeZod(), registerTool: (tool) => tools.push(tool), registerCommand: (name, definition) => { commands.push(name); commandDefinitions.set(name, definition); }, on: (name, handler) => handlers.set(name, handler), ...extras };
22
- }
23
- /** The extension reads OMP settings from process.env, so keep that I/O in a scratch config root. */
24
- function isolatedConfigHome() {
25
- const root = mkdtempSync(join(tmpdir(), "bizar-omp-config-"));
26
- vi.stubEnv("XDG_CONFIG_HOME", root);
27
- return root;
28
- }
29
- describe("OMP contracts", () => {
30
- afterEach(() => { vi.unstubAllEnvs(); });
31
- it("registers workflow and inspectable feature tools without runtime side effects", () => {
32
- const tools = [];
33
- const commands = [];
34
- const events = new Map();
35
- extension(extensionHost(tools, events, commands));
36
- expect(tools.map(tool => tool.name)).toEqual(["bizar_workflow", "bizar_verify", "bizar_evidence", "bizar_integrate", "bizar_recipe_preview", "bizar_inspect", "bizar_capabilities", "bizar_apply_model_roles"]);
37
- expect(commands).toEqual(["bizar", "bizar-dashboard", "bizar-models"]);
38
- expect(events.has("session_start")).toBe(true);
39
- expect(events.has("before_agent_start")).toBe(true);
40
- const workflow = tools.find(tool => tool.name === "bizar_workflow");
41
- expect(workflow.parameters.value.action.value).toContain("complete");
42
- expect(workflow.parameters.value.action.value).toContain("accept-work");
43
- expect(workflow.parameters.value.requiredChecks.kind).toBe("array");
44
- });
45
- it("dispatches the dashboard command through the host exec capability", async () => {
46
- const root = mkdtempSync(join(tmpdir(), "bizar-dashboard-cli-"));
47
- const bin = join(root, "omb");
48
- writeFileSync(bin, "#!/bin/sh\nexit 0\n", { mode: 0o755 });
49
- const previousPath = process.env.PATH;
50
- process.env.PATH = root;
51
- try {
52
- const tools = [];
53
- const events = new Map();
54
- const commands = [];
55
- const definitions = new Map();
56
- const calls = [];
57
- const exec = async (command, args) => {
58
- calls.push({ command, args });
59
- return args[1] === "stop"
60
- ? { code: 0, stdout: "dashboard stopped (daemon stopped)\n" }
61
- : { code: 0, stdout: JSON.stringify({ url: "http://127.0.0.1:44047/dash?oc=abc", port: 44047, pid: 42, code: "abc" }) };
62
- };
63
- extension(extensionHost(tools, events, commands, definitions, { exec }));
64
- const notices = [];
65
- const ctx = { cwd: process.cwd(), ui: { notify: (message, level) => notices.push({ message, level }) } };
66
- await definitions.get("bizar-dashboard").handler("", ctx);
67
- expect(calls.at(-1)?.args).toEqual(["dashboard", "--json"]);
68
- expect(notices.at(-1)?.message).toContain("http://127.0.0.1:44047/dash?oc=abc");
69
- await definitions.get("bizar-dashboard").handler("open", ctx);
70
- expect(calls.at(-1)?.args).toEqual(["dashboard", "--open", "--json"]);
71
- await definitions.get("bizar-dashboard").handler("stop", ctx);
72
- expect(calls.at(-1)?.args).toEqual(["dashboard", "stop"]);
73
- expect(notices.at(-1)?.message).toBe("dashboard stopped (daemon stopped)");
74
- await definitions.get("bizar-dashboard").handler("nonsense", ctx);
75
- expect(notices.at(-1)?.level).toBe("error");
76
- expect(calls.at(-1)?.args).toEqual(["dashboard", "stop"]);
77
- }
78
- finally {
79
- if (previousPath === undefined)
80
- delete process.env.PATH;
81
- else
82
- process.env.PATH = previousPath;
83
- rmSync(root, { recursive: true, force: true });
84
- }
85
- });
86
- it("admits isolated managed dispatch with apply and merge disabled", () => {
87
- let run = createRun("p", { objective: "implement", nonGoals: [], constraints: [], acceptanceCriteria: ["done"], verificationPlan: [], stopConditions: [], userRestrictions: [] });
88
- run = addWorkItem(run, { title: "write", role: "bizar-implementer", scope: ["src"], dependencies: [], acceptanceCriteria: ["done"], verificationPlan: [] });
89
- const intent = admitDispatch(run, run.workItems[0], classifyRoute({ text: "write", role: "bizar-implementer", files: ["src/a.ts"] }), "restricted-managed", "parent");
90
- expect(intent).toMatchObject({ isolation: "required", apply: false, merge: false, status: "admitted" });
91
- expect(reconcileResult(intent, { dispatchId: intent.id, sourceEvent: "ack", sequence: 1, status: "running", artifactRefs: [], observedAt: "now" }).status).toBe("acknowledged");
92
- });
93
- it("binds lifecycle handlers to a temporary Git project", async () => {
94
- const root = gitProject();
95
- try {
96
- const tools = [];
97
- const handlers = new Map();
98
- extension(extensionHost(tools, handlers));
99
- await handlers.get("session_start")({}, { cwd: root, sessionManager: { getSessionFile: () => "session-1" } });
100
- const workflow = tools.find(tool => tool.name === "bizar_workflow");
101
- const output = await workflow.execute("call-1", { action: "start", objective: "build a feature" }, new AbortController().signal, undefined, { cwd: root, sessionManager: { getSessionFile: () => "session-1" } });
102
- expect(output.details.run.phase).toBe("created");
103
- expect(output.details.run.nativeSessionId).toBe("session-1");
104
- }
105
- finally {
106
- rmSync(root, { recursive: true, force: true });
107
- }
108
- });
109
- it("uses local state when the session starts outside Git or before its first commit", async () => {
110
- const root = mkdtempSync(join(tmpdir(), "bizar-omp-no-git-"));
111
- const unbornRoot = mkdtempSync(join(tmpdir(), "bizar-omp-unborn-"));
112
- try {
113
- const tools = [];
114
- const handlers = new Map();
115
- extension(extensionHost(tools, handlers));
116
- await expect(handlers.get("session_start")({}, { cwd: root, sessionManager: { getSessionFile: () => "session-no-git" } })).resolves.toBeUndefined();
117
- const workflow = tools.find(tool => tool.name === "bizar_workflow");
118
- const output = await workflow.execute("call-1", { action: "start", objective: "work" }, undefined, undefined, { cwd: root, sessionManager: { getSessionFile: () => "session-no-git" } });
119
- expect(output.isError).toBeUndefined();
120
- expect(output.details.run.nativeSessionId).toBe("session-no-git");
121
- execFileSync("git", ["init", "-q", unbornRoot]);
122
- await expect(handlers.get("session_start")({}, { cwd: unbornRoot, sessionManager: { getSessionFile: () => "session-unborn" } })).resolves.toBeUndefined();
123
- }
124
- finally {
125
- rmSync(root, { recursive: true, force: true });
126
- rmSync(unbornRoot, { recursive: true, force: true });
127
- }
128
- });
129
- it("does not prevent OMP startup when settings mutation fails", async () => {
130
- const tools = [];
131
- const handlers = new Map();
132
- const notifications = [];
133
- const settings = { modelRoles: {}, modelTags: {}, cycleOrder: [] };
134
- extension(extensionHost(tools, handlers, [], new Map(), { pi: { settings: { get: (path) => settings[path], set: () => { throw new Error("settings are read-only"); } } } }));
135
- await expect(handlers.get("session_start")({}, { ui: { notify: (message, level) => notifications.push({ message, level }) } })).resolves.toBeUndefined();
136
- expect(notifications).toEqual([{ message: expect.stringContaining("continuing without the failed setting update"), level: "warning" }]);
137
- });
138
- it("never takes terminal ownership from a direct OMP session", async () => {
139
- const tools = [];
140
- const handlers = new Map();
141
- let shutdownCalled = false;
142
- extension(extensionHost(tools, handlers));
143
- await handlers.get("session_start")({}, { shutdown: () => { shutdownCalled = true; } });
144
- expect(shutdownCalled).toBe(false);
145
- });
146
- it("rebinds tools after a session switch instead of reusing the prior session", async () => {
147
- const firstRoot = gitProject();
148
- const secondRoot = gitProject();
149
- try {
150
- const tools = [];
151
- const handlers = new Map();
152
- extension(extensionHost(tools, handlers));
153
- await handlers.get("session_start")({}, { cwd: firstRoot, sessionManager: { getSessionFile: () => "session-a" } });
154
- const workflow = tools.find(tool => tool.name === "bizar_workflow");
155
- const first = await workflow.execute("call-a", { action: "start", objective: "first" }, undefined, undefined, { cwd: firstRoot, sessionManager: { getSessionFile: () => "session-a" } });
156
- await handlers.get("session_before_switch")({}, { cwd: firstRoot, sessionManager: { getSessionFile: () => "session-a" } });
157
- const second = await workflow.execute("call-b", { action: "start", objective: "second" }, undefined, undefined, { cwd: secondRoot, sessionManager: { getSessionFile: () => "session-b" } });
158
- expect(first.details.run.nativeSessionId).toBe("session-a");
159
- expect(second.details.run.nativeSessionId).toBe("session-b");
160
- }
161
- finally {
162
- rmSync(firstRoot, { recursive: true, force: true });
163
- rmSync(secondRoot, { recursive: true, force: true });
164
- }
165
- });
166
- it("injects autonomous guidance into the native system prompt and marks tool failures", () => {
167
- const tools = [];
168
- const handlers = new Map();
169
- extension(extensionHost(tools, handlers));
170
- const injected = handlers.get("before_agent_start")({ systemPrompt: ["base"] }, {});
171
- expect(injected.systemPrompt).toEqual(expect.arrayContaining(["base"]));
172
- expect(injected.systemPrompt.at(-1)).toContain("explicitly requests a goal");
173
- expect(result({ error: "failed" }, true).isError).toBe(true);
174
- });
175
- it("reports configured Bizar model roles healthy and ignores unrelated roles", async () => {
176
- const tools = [];
177
- const handlers = new Map();
178
- const commands = new Map();
179
- const notifications = [];
180
- const settings = { modelRoles: { bizar_review: "openai/strong", bizar_research: "anthropic/fast", operator_role: "@default" } };
181
- extension(extensionHost(tools, handlers, [], commands, { pi: { settings: { get: (path) => settings[path] } } }));
182
- await commands.get("bizar").handler("model-roles health", { models: { resolve: (selector) => selector === "openai/strong" || selector === "anthropic/fast" ? { id: selector } : undefined }, ui: { notify: (message, level) => notifications.push({ message, level }) } });
183
- expect(notifications).toEqual([{ message: "Bizar model-role health: 2 configured roles are healthy.", level: "info" }]);
184
- });
185
- it("reports each unresolved configured Bizar model role", async () => {
186
- const tools = [];
187
- const handlers = new Map();
188
- const commands = new Map();
189
- const notifications = [];
190
- const settings = { modelRoles: { bizar_review: "openai/missing", operator_role: "unrelated/missing", bizar_research: "anthropic/missing" } };
191
- extension(extensionHost(tools, handlers, [], commands, { pi: { settings: { get: (path) => settings[path] } } }));
192
- await commands.get("bizar").handler("model-roles health", { models: { resolve: () => undefined }, ui: { notify: (message, level) => notifications.push({ message, level }) } });
193
- expect(notifications).toEqual([{ message: "OMP could not resolve configured Bizar model roles: bizar_review=openai/missing, bizar_research=anthropic/missing", level: "error" }]);
194
- });
195
- it("reports malformed Bizar selectors while ignoring malformed unrelated roles", async () => {
196
- const tools = [];
197
- const handlers = new Map();
198
- const commands = new Map();
199
- const notifications = [];
200
- const settings = { modelRoles: { bizar_review: 42, operator_role: false } };
201
- extension(extensionHost(tools, handlers, [], commands, { pi: { settings: { get: (path) => settings[path] } } }));
202
- await commands.get("bizar").handler("model-roles health", { models: { resolve: () => undefined }, ui: { notify: (message, level) => notifications.push({ message, level }) } });
203
- expect(notifications).toEqual([{ message: "Configured Bizar model role has a malformed selector: bizar_review=42", level: "error" }]);
204
- });
205
- it("reports an actionable error when OMP has no model resolver", async () => {
206
- const tools = [];
207
- const handlers = new Map();
208
- const commands = new Map();
209
- const notifications = [];
210
- const settings = { modelRoles: { bizar_review: "openai/strong" } };
211
- extension(extensionHost(tools, handlers, [], commands, { pi: { settings: { get: (path) => settings[path] } } }));
212
- await commands.get("bizar").handler("model-roles health", { models: {}, ui: { notify: (message, level) => notifications.push({ message, level }) } });
213
- expect(notifications).toEqual([{ message: "OMP model resolver is unavailable; cannot verify configured Bizar model roles", level: "error" }]);
214
- });
215
- it("registers visible Bizar roles and keeps a compact compatibility fallback", async () => {
216
- const tools = [];
217
- const handlers = new Map();
218
- const commands = new Map();
219
- const notifications = [];
220
- const messages = [];
221
- const settings = { modelRoleStorage: "global", modelRoles: { operator_role: "@default" }, modelTags: {}, cycleOrder: ["smol", "default", "slow"] };
222
- extension(extensionHost(tools, handlers, [], commands, { pi: { settings: { get: (path) => settings[path], set: (path, value) => { settings[path] = value; } } }, sendUserMessage: (message) => messages.push(message) }));
223
- await handlers.get("session_start")({}, {});
224
- await commands.get("bizar").handler("model-roles", { ui: { notify: (message) => notifications.push(message) } });
225
- await commands.get("bizar-models").handler("", { ui: { notify: (message) => notifications.push(message) } });
226
- expect(settings.modelRoles.operator_role).toBe("@default");
227
- expect(settings.modelRoles.bizar_review).toBe("@slow");
228
- expect(settings.modelTags.bizar_research.name).toBe("Bizar Research");
229
- expect(settings.cycleOrder).toContain("bizar_research");
230
- expect(settings["async.enabled"]).toBe(true);
231
- expect(settings["advisor.enabled"]).toBe(true);
232
- expect(settings.hideThinkingBlock).toBe(true);
233
- expect(settings["display.hideToolActivity"]).toBe(true);
234
- expect(settings["display.pinnedAgents"]).toBe("full");
235
- expect(settings["task.batch"]).toBe(true);
236
- expect(settings["collab.autoStart"]).toBe("control");
237
- expect(settings.modelRoles.bizar_orchestrator).toBe("@default");
238
- expect(settings.modelRoles.bizar_advisor).toBe("@advisor");
239
- expect(messages[0]).toContain("current available model catalog");
240
- expect(messages[0]).not.toContain("never call .map");
241
- expect(notifications[0]).toContain("compact mapping");
242
- expect(notifications[1]).toContain("compact mapping");
243
- });
244
- it("hands the live catalog to the agent and persists only the distribution the agent approves", async () => {
245
- const configRoot = isolatedConfigHome();
246
- const tools = [];
247
- const handlers = new Map();
248
- const commands = new Map();
249
- const notifications = [];
250
- const messages = [];
251
- const settings = { modelRoles: { operator_role: "@default", bizar_orchestrator: "test/stale" } };
252
- const model = { provider: "test", id: "balanced", contextWindow: 256_000, maxTokens: 32_000, reasoning: true, thinking: ["low", "high"], input: ["text"], cost: { input: 0, output: 0 } };
253
- extension(extensionHost(tools, handlers, [], commands, {
254
- pi: { settings: { get: (path) => settings[path], set: (path, value) => { settings[path] = value; } } },
255
- sendUserMessage: (message) => messages.push(message),
256
- }));
257
- const ctx = {
258
- models: { list: () => [model], family: () => "test", resolve: (selector) => selector === "test/balanced" ? model : undefined },
259
- ui: { notify: (message) => notifications.push(message) },
260
- };
261
- await commands.get("bizar-models").handler("", ctx);
262
- // The command decides nothing by itself: it hands the live catalog to the agent.
263
- expect(settings.modelRoles).toEqual({ operator_role: "@default", bizar_orchestrator: "test/stale" });
264
- expect(messages).toHaveLength(1);
265
- expect(messages[0]).toContain("AVAILABLE MODELS (1)");
266
- expect(messages[0]).toContain("test/balanced");
267
- // Existing assignments are re-evaluated rather than trusted.
268
- expect(messages[0]).toContain("bizar_orchestrator = test/stale");
269
- expect(messages[0]).toContain("bizar_apply_model_roles");
270
- expect(notifications[0]).toContain("Re-evaluated 13 Bizar roles against 1 live models");
271
- const apply = tools.find(tool => tool.name === "bizar_apply_model_roles");
272
- const refused = await apply.execute("call-1", { assignment: [{ role: "bizar_orchestrator", selector: "test/missing" }] }, undefined, undefined, ctx);
273
- expect(refused.details).toMatchObject({ applied: false });
274
- expect(settings.modelRoles).toEqual({ operator_role: "@default", bizar_orchestrator: "test/stale" });
275
- const applied = await apply.execute("call-2", { assignment: [{ role: "bizar_orchestrator", selector: "test/balanced" }] }, undefined, undefined, ctx);
276
- expect(applied.details).toMatchObject({ applied: true });
277
- expect(settings.modelRoles).toEqual({ operator_role: "@default", bizar_orchestrator: "test/balanced" });
278
- // The catalog was recorded when it was observed, so the next run reports movement
279
- // even for runs whose distribution was never applied.
280
- expect(loadOmbSettings({ XDG_CONFIG_HOME: configRoot }).modelCatalog?.models.map(record => record.selector)).toEqual(["test/balanced"]);
281
- messages.length = 0;
282
- notifications.length = 0;
283
- await commands.get("bizar-models").handler("", ctx);
284
- expect(notifications[0]).toContain("0 added, 0 removed, 0 changed, 1 unchanged");
285
- ctx.models.list = () => [model, { ...model, id: "fresh" }];
286
- messages.length = 0;
287
- notifications.length = 0;
288
- await commands.get("bizar-models").handler("", ctx);
289
- expect(notifications[0]).toContain("1 added");
290
- expect(messages[0]).toContain("test/fresh");
291
- });
292
- it("keeps an applied distribution live when only the catalog observation cannot be recorded", async () => {
293
- const configRoot = isolatedConfigHome();
294
- // An unreadable settings file: writing bookkeeping must never clobber it, and
295
- // the role mapping the agent approved must still be reported as applied.
296
- const settingsPath = join(configRoot, "bizar-omp", "omb.json");
297
- mkdirSync(join(configRoot, "bizar-omp"), { recursive: true });
298
- writeFileSync(settingsPath, '{"mouseScrolling": fal');
299
- const tools = [];
300
- const handlers = new Map();
301
- const commands = new Map();
302
- const settings = { modelRoles: { operator_role: "@default" } };
303
- const model = { provider: "test", id: "balanced", contextWindow: 256_000, maxTokens: 32_000, reasoning: true, thinking: ["low", "high"], input: ["text"], cost: { input: 0, output: 0 } };
304
- extension(extensionHost(tools, handlers, [], commands, {
305
- pi: { settings: { get: (path) => settings[path], set: (path, value) => { settings[path] = value; } } },
306
- sendUserMessage: () => undefined,
307
- }));
308
- const ctx = { models: { list: () => [model], family: () => "test", resolve: (selector) => selector === "test/balanced" ? model : undefined }, ui: { notify: () => undefined } };
309
- const apply = tools.find(tool => tool.name === "bizar_apply_model_roles");
310
- const outcome = await apply.execute("call-1", { assignment: [{ role: "bizar_orchestrator", selector: "test/balanced" }] }, undefined, undefined, ctx);
311
- expect(outcome.isError).not.toBe(true);
312
- expect(outcome.details).toMatchObject({ applied: true, note: expect.stringContaining("not readable JSON") });
313
- expect(settings.modelRoles).toEqual({ operator_role: "@default", bizar_orchestrator: "test/balanced" });
314
- expect(readFileSync(settingsPath, "utf8")).toBe('{"mouseScrolling": fal');
315
- });
316
- it("previews the deterministic distribution without messaging an agent or writing settings", async () => {
317
- isolatedConfigHome();
318
- const tools = [];
319
- const handlers = new Map();
320
- const commands = new Map();
321
- const notifications = [];
322
- const messages = [];
323
- const settings = { modelRoles: { operator_role: "@default" } };
324
- const model = { provider: "test", id: "balanced", contextWindow: 256_000, maxTokens: 32_000, reasoning: true, thinking: ["low", "high"], input: ["text"], cost: { input: 0, output: 0 } };
325
- extension(extensionHost(tools, handlers, [], commands, {
326
- pi: { settings: { get: (path) => settings[path], set: (path, value) => { settings[path] = value; } } },
327
- sendUserMessage: (message) => messages.push(message),
328
- }));
329
- await commands.get("bizar-models").handler("preview", {
330
- models: { list: () => [model], family: () => "test", resolve: (selector) => selector === "test/balanced" ? model : undefined },
331
- ui: { notify: (message) => notifications.push(message) },
332
- });
333
- expect(notifications[0]).toContain("bizar_orchestrator -> test/balanced");
334
- expect(notifications[0]).toContain("Preview only: no agent was messaged and no settings were written.");
335
- expect(messages).toEqual([]);
336
- expect(settings.modelRoles).toEqual({ operator_role: "@default" });
337
- await commands.get("bizar-models").handler("preview", { models: { list: () => [] }, ui: { notify: (message) => notifications.push(message) } });
338
- expect(notifications.at(-1)).toContain("model catalog is unavailable or empty");
339
- });
340
- it("falls back to the local planner when the host has no agent messaging", async () => {
341
- isolatedConfigHome();
342
- const tools = [];
343
- const handlers = new Map();
344
- const commands = new Map();
345
- const notifications = [];
346
- const settings = { modelRoles: { operator_role: "@default" } };
347
- const model = { provider: "test", id: "balanced", contextWindow: 256_000, maxTokens: 32_000, reasoning: true, thinking: ["low", "high"], input: ["text"], cost: { input: 0, output: 0 } };
348
- extension(extensionHost(tools, handlers, [], commands, {
349
- pi: { settings: { get: (path) => settings[path], set: (path, value) => { settings[path] = value; } } },
350
- }));
351
- await commands.get("bizar-models").handler("", {
352
- models: { list: () => [model], family: () => "test", resolve: (selector) => selector === "test/balanced" ? model : undefined },
353
- ui: { notify: (message) => notifications.push(message) },
354
- });
355
- const roles = settings.modelRoles;
356
- expect(Object.keys(roles).filter(role => role.startsWith("bizar_"))).toHaveLength(13);
357
- expect(roles.bizar_orchestrator).toBe("test/balanced");
358
- expect(roles.bizar_security).toBe("test/balanced");
359
- expect(notifications[0]).toContain("Assigned 13/13 Bizar roles from 1 available OMP models");
360
- });
361
- });
362
- //# sourceMappingURL=omp-contract.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"omp-contract.test.js","sourceRoot":"","sources":["../../tests/omp-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,SAAS,UAAU,KAAK,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AACzX,SAAS,UAAU,CAAI,IAAY,EAAE,KAAe,IAAsH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAgB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3P,SAAS,OAAO;IACd,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAS,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAU,SAAS,CAAC,EAAE,KAAK,EAAE,CAAI,IAAa,EAAE,EAAE,CAAC,UAAU,CAAM,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAA2C,KAAQ,EAAE,EAAE,CAAC,UAAU,CAAY,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,UAAU,CAAU,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAI,KAAQ,EAAE,EAAE,CAAC,UAAU,CAAI,QAAQ,EAAE,KAAK,CAAC;KACpX,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CAAC,KAA4B,EAAE,QAA0B,EAAE,QAAQ,GAAa,EAAE,EAAE,kBAAkB,GAAG,IAAI,GAAG,EAAe,EAAE,MAAM,GAA4B,EAAE;IACzL,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,IAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC,IAAY,EAAE,UAAe,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAY,EAAE,OAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/R,CAAC;AAED,oGAAoG;AACpG,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC9D,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,KAAK,GAA8B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAAC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqD,CAAC;QACxJ,SAAS,CAAC,aAAa,CAAC,KAA8B,EAAE,MAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7X,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAQ,CAAC;QAC3E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrN,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,GAA0B,EAAE,CAAC;YAAC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;YAAC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAAC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;YAC1J,MAAM,KAAK,GAA0C,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,EAAE,OAAe,EAAE,IAAc,EAAE,EAAE;gBACrD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;oBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE;oBAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC5H,CAAC,CAAC;YACF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,OAAO,GAA0C,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAEpI,MAAM,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAEhF,MAAM,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEtE,MAAM,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAE3E,MAAM,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;gBAAM,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9F,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;QAClL,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5J,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACtK,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAA0B,EAAE,CAAC;YAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;YACjF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC9G,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAE,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjH,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAAC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC;YACH,MAAM,KAAK,GAA0B,EAAE,CAAC;YAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;YACjF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACpJ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAE,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACzL,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1G,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5J,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACrH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAA+C,EAAE,CAAC;QACvJ,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACnE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9M,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1K,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1I,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC7G,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAAC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,KAAK,GAA0B,EAAE,CAAC;YAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;YACjF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACnH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAE,CAAC;YACrE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACzL,MAAM,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3H,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC5L,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5H,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QACjF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACtJ,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAA+C,EAAE,CAAC;QAChM,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QAChI,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpS,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,0DAA0D,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAA+C,EAAE,CAAC;QAChM,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,CAAC;QAC7I,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjM,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,mHAAmH,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACpL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAA+C,EAAE,CAAC;QAChM,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5E,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjM,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,uEAAuE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACxI,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAA+C,EAAE,CAAC;QAChM,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,CAAC;QACnE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClJ,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvK,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,+EAA+E,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAChJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAAa,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC7L,MAAM,QAAQ,GAA4B,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QAC5K,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3P,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACzH,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrH,MAAM,CAAE,QAAQ,CAAC,UAAqC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,CAAE,QAAQ,CAAC,UAAqC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,MAAM,CAAE,QAAQ,CAAC,SAA8C,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5G,MAAM,CAAE,QAAQ,CAAC,UAAuB,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACtE,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAE,QAAQ,CAAC,UAAqC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5F,MAAM,CAAE,QAAQ,CAAC,UAAqC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAAa,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC7L,MAAM,QAAQ,GAA4B,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE,CAAC;QAC1H,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1L,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;YACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/H,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;SAC7D,CAAC,CAAC,CAAC;QACJ,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;YACtI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;SACjE,CAAC;QACF,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEpD,iFAAiF;QACjF,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC;QACrG,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC/C,6DAA6D;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAExF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACrJ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC;QAErG,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACtJ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC;QAExG,kFAAkF;QAClF,sDAAsD;QACtD,MAAM,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACxI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;QAEjF,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;QACxC,8EAA8E;QAC9E,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,aAAa,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;QACtD,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAC1H,MAAM,QAAQ,GAA4B,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QACxF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1L,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;YACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/H,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;SACjC,CAAC,CAAC,CAAC;QACJ,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QACxL,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACtJ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC7G,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,kBAAkB,EAAE,CAAC;QACrB,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAAa,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC7L,MAAM,QAAQ,GAA4B,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QACxF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1L,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;YACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/H,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;SAC7D,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;YACtI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;SACjE,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC1E,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mEAAmE,CAAC,CAAC;QACxG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACxJ,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,kBAAkB,EAAE,CAAC;QACrB,MAAM,KAAK,GAA0B,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAAC,MAAM,aAAa,GAAa,EAAE,CAAC;QAC9J,MAAM,QAAQ,GAA4B,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QACxF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1L,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;YACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;SAChI,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;YAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;YACtI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;SACjE,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAoC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { runNpm } from "../src/cli/process.js";
3
- describe("runNpm", () => {
4
- it("executes npm and returns its output on Windows-style shim hosts", () => {
5
- const output = runNpm(["--version"], { encoding: "utf8" });
6
- expect(output.trim()).toMatch(/^\d+\.\d+\.\d+/);
7
- });
8
- it("propagates npm failures instead of hiding them", () => {
9
- expect(() => runNpm(["not-a-real-subcommand"], { stdio: "pipe" })).toThrow();
10
- });
11
- });
12
- //# sourceMappingURL=process.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.test.js","sourceRoot":"","sources":["../../tests/process.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAW,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,105 +0,0 @@
1
- import { afterAll, describe, expect, it } from "vitest";
2
- import { spawn } from "node:child_process";
3
- import { mkdtempSync, rmSync } from "node:fs";
4
- import { tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import { listOmbSessions, resolveMultiplexerBin } from "../src/omp/omb-sessions.js";
7
- import { deleteOmbSession, ombSessionName, renameOmbSession, setOmbSessionMouse, shouldLaunchOmbInTmux, } from "../src/omp/tmux.js";
8
- /**
9
- * Exercises the real tmux-compatible multiplexer (psmux on Windows, tmux
10
- * elsewhere) end to end: create a Bizar-owned session, list it, rename it,
11
- * toggle mouse, and kill it. Skipped when no multiplexer binary is available.
12
- */
13
- const multiplexerAvailable = await new Promise(resolve => {
14
- const child = spawn(resolveMultiplexerBin(), ["-V"], { stdio: "ignore" });
15
- child.once("error", () => resolve(false));
16
- child.once("close", code => resolve(code === 0));
17
- });
18
- const liveMultiplexer = multiplexerAvailable ? describe : describe.skip;
19
- const scratch = mkdtempSync(join(tmpdir(), "bizar-psmux-live-"));
20
- const heldSessions = [];
21
- afterAll(async () => {
22
- for (const session of heldSessions)
23
- await deleteOmbSession(session, scratch);
24
- // kill-session resolves before Windows releases the pane's conhost handles,
25
- // so poll for the lock to clear instead of guessing a fixed delay; a locked
26
- // %TEMP% scratch dir is disposable and must not fail the suite.
27
- for (let attempt = 0; attempt < 10; attempt += 1) {
28
- try {
29
- rmSync(scratch, { recursive: true, force: true });
30
- return;
31
- }
32
- catch {
33
- await new Promise(resolve => setImmediate(resolve));
34
- }
35
- }
36
- });
37
- function runMultiplexer(args, env, cwd) {
38
- return new Promise(resolve => {
39
- const child = spawn(resolveMultiplexerBin(env), args, { cwd, env, stdio: "ignore" });
40
- child.once("error", () => resolve(1));
41
- child.once("close", code => resolve(code ?? 1));
42
- });
43
- }
44
- /**
45
- * The hosted pane must outlive its creator on every platform the suite runs
46
- * on: Windows parks on `cmd.exe /c pause`, POSIX has no cmd.exe and parks on a
47
- * long sleep instead.
48
- */
49
- const paneKeepAliveCommand = process.platform === "win32" ? ["cmd.exe", "/c", "pause"] : ["sleep", "600"];
50
- describe("multiplexer resolution", () => {
51
- it("prefers psmux on Windows and tmux elsewhere unless overridden", () => {
52
- expect(resolveMultiplexerBin({})).toBe(process.platform === "win32" ? "psmux" : "tmux");
53
- expect(resolveMultiplexerBin({ BIZAR_TMUX_BIN: "/custom/tmux" })).toBe("/custom/tmux");
54
- });
55
- it("keeps interactive TTY hosts eligible for the multiplexer boundary on Windows", () => {
56
- if (process.platform !== "win32")
57
- return;
58
- expect(shouldLaunchOmbInTmux({ env: {}, stdinIsTTY: true, stdoutIsTTY: true, args: [] })).toBe(true);
59
- expect(shouldLaunchOmbInTmux({ env: {}, stdinIsTTY: false, stdoutIsTTY: true, args: [] })).toBe(false);
60
- expect(shouldLaunchOmbInTmux({ env: { BIZAR_OMP_NO_TMUX: "1" }, stdinIsTTY: true, stdoutIsTTY: true, args: [] })).toBe(false);
61
- expect(shouldLaunchOmbInTmux({ env: { TMUX: "/tmp/tmux" }, stdinIsTTY: true, stdoutIsTTY: true, args: [] })).toBe(false);
62
- expect(shouldLaunchOmbInTmux({ env: {}, stdinIsTTY: true, stdoutIsTTY: true, args: ["--print"] })).toBe(false);
63
- expect(shouldLaunchOmbInTmux({ env: {}, stdinIsTTY: true, stdoutIsTTY: true, args: ["--mode", "rpc"] })).toBe(false);
64
- });
65
- });
66
- liveMultiplexer("live multiplexer session lifecycle", () => {
67
- it("creates, lists, renames, and kills a Bizar-owned session", { timeout: 30000 }, async () => {
68
- const session = ombSessionName(scratch, "psmux-live");
69
- heldSessions.push(session);
70
- const env = { ...process.env, BIZAR_OMP_NO_TMUX: "1" };
71
- // listOmbSessions must tolerate a warm server that already hosts other
72
- // Bizar sessions and one with zero sessions (psmux exits 0 with empty
73
- // output where tmux exits 1).
74
- const before = await listOmbSessions(scratch, env);
75
- expect(before.find(item => item.name === session)).toBeUndefined();
76
- // A pane that outlives its command: `pause` blocks until input, mirroring
77
- // a durable host. A command that exits immediately would tear down the
78
- // session and the whole server before the first assertion.
79
- expect(await runMultiplexer(["new-session", "-d", "-s", session, "-c", scratch, ...paneKeepAliveCommand], env, scratch)).toBe(0);
80
- const listed = await listOmbSessions(scratch, env);
81
- const mine = listed.find(item => item.name === session);
82
- expect(mine).toBeTruthy();
83
- // Hub vocabulary (issue #30): live, no attached client, nothing in flight.
84
- expect(mine?.state).toBe("disconnected");
85
- await expect(setOmbSessionMouse(session, false, scratch, env)).resolves.toBe(0);
86
- const renamed = `${session}-x`;
87
- await expect(renameOmbSession(session, renamed, scratch, env)).resolves.toBe(0);
88
- heldSessions.splice(heldSessions.indexOf(session), 1, renamed);
89
- await expect(deleteOmbSession(renamed, scratch, env)).resolves.toBe(0);
90
- heldSessions.splice(heldSessions.indexOf(renamed), 1);
91
- const remaining = await listOmbSessions(scratch, env);
92
- expect(remaining.find(item => item.name === renamed)).toBeUndefined();
93
- });
94
- it("hosts a long-lived process in a session that outlives its creator", { timeout: 30000 }, async () => {
95
- const session = ombSessionName(scratch, "psmux-persist");
96
- heldSessions.push(session);
97
- const env = { ...process.env, BIZAR_OMP_NO_TMUX: "1" };
98
- expect(await runMultiplexer(["new-session", "-d", "-s", session, "-c", scratch, ...paneKeepAliveCommand], env, scratch)).toBe(0);
99
- // The spawning test process keeps running, mirroring the launcher flow:
100
- // the session must stay visible for the agents hub while alive.
101
- const listed = await listOmbSessions(scratch, env);
102
- expect(listed.find(item => item.name === session)?.state).toBe("disconnected");
103
- });
104
- });
105
- //# sourceMappingURL=psmux-windows.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"psmux-windows.test.js","sourceRoot":"","sources":["../../tests/psmux-windows.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { classifyGitOutcome, recoveryInstruction } from "../src/omp/integration-recovery.js";
3
- import { admitIsolation } from "../src/omp/isolation-policy.js";
4
- describe("recovery and trust contracts", () => {
5
- it("recognizes a partial merge instead of treating a failed command as no-op", () => expect(classifyGitOutcome({ exitCode: 1, headChanged: true, indexChanged: true, dirty: true })).toBe("partial-merge"));
6
- it("gives actionable recovery instructions", () => expect(recoveryInstruction("conflict")).toMatch(/repair assignment/));
7
- it("requires native isolation for managed writes", () => expect(() => admitIsolation({ editing: true, preset: "restricted-managed", isolated: false, apply: false, merge: false })).toThrow(/isolation/));
8
- });
9
- //# sourceMappingURL=recovery.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recovery.test.js","sourceRoot":"","sources":["../../tests/recovery.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5M,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACzH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5M,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};