@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,13 +1,12 @@
1
1
  import { type OmbSessionActivity } from "./session-activity.js";
2
2
  export declare const BIZAR_SESSION_PREFIX = "bizar-";
3
3
  /**
4
- * Connection and activity state of one Bizar-owned session.
4
+ * Headline state of one Bizar-owned session, retained for display and sorting.
5
5
  *
6
- * `working` and `waiting` describe what the agent is doing, `connected` and
7
- * `disconnected` describe whether an interactive client is attached to an idle
8
- * session, and `stopped` means no host is observed and the journal is silent.
6
+ * Host, attachment, activity and native outcome are also recorded separately
7
+ * so consumers that need the exact facts do not infer them from this summary.
9
8
  */
10
- export type OmbSessionState = "working" | "waiting" | "connected" | "disconnected" | "stopped";
9
+ export type OmbSessionState = "working" | "waiting" | "connected" | "disconnected" | "stopped" | "unknown";
11
10
  export interface OmbSessionInfo {
12
11
  name: string;
13
12
  cwd: string;
@@ -21,6 +20,16 @@ export interface OmbSessionInfo {
21
20
  */
22
21
  displayName?: string;
23
22
  state: OmbSessionState;
23
+ /** Stable identity for this observed tmux/native session generation. */
24
+ generation: string;
25
+ /** True when the listing and pane inspection provide a complete host record. */
26
+ authorityKnown: boolean;
27
+ /** Most recent OMP journal outcome, independent from host and activity state. */
28
+ nativeOutcome: OmbSessionActivity["nativeOutcome"];
29
+ /** The directory is visible for history, but no live host/process was observed. */
30
+ uncertainLiveness: boolean;
31
+ /** True only when the native session PID was independently confirmed alive. */
32
+ processObserved: boolean;
24
33
  /** Privacy-safe live activity, when the session journal exposes it. */
25
34
  activity?: OmbSessionActivity;
26
35
  /**
@@ -30,7 +39,7 @@ export interface OmbSessionInfo {
30
39
  * while the agent kept working, has no attachable tmux session. Absent for
31
40
  * synthetic records, which are treated as hosted.
32
41
  */
33
- hosted?: boolean;
42
+ hosted: boolean;
34
43
  command: string;
35
44
  pid: string;
36
45
  /** Native OMP session id, when its journal is available. */
@@ -48,13 +57,15 @@ export interface OmbSessionInfo {
48
57
  * `working`, so only this field answers "would stopping it disconnect
49
58
  * somebody?".
50
59
  */
51
- attached?: boolean;
60
+ attached: boolean;
52
61
  createdAt?: number;
53
62
  lastAttachedAt?: number;
54
63
  }
55
64
  export interface ListOmbSessionsOptions {
56
65
  /** Include Bizar sessions whose tmux host exited and whose journal is silent. Defaults to false. */
57
66
  includeStopped?: boolean;
67
+ /** Require an authoritative multiplexer response instead of treating errors as an empty scan. */
68
+ requireMultiplexer?: boolean;
58
69
  }
59
70
  export interface OmbChatMessage {
60
71
  id: string;
@@ -100,6 +111,8 @@ export declare function ombSessionState(input: {
100
111
  attached: boolean;
101
112
  activity?: OmbSessionActivity;
102
113
  }): OmbSessionState;
114
+ /** Probe whether a native session process still exists without signaling it. */
115
+ export declare function processAliveCheck(pid: number): boolean;
103
116
  /**
104
117
  * Session names whose journal the pane of one live tmux session writes.
105
118
  *
@@ -143,6 +156,8 @@ export type OmbHostSession = {
143
156
  export declare function currentOmbHostSession(cwd?: string, env?: NodeJS.ProcessEnv): Promise<OmbHostSession>;
144
157
  /** Discover Bizar-owned tmux sessions without touching unrelated tmux sessions. */
145
158
  export declare function listOmbSessions(cwd?: string, env?: NodeJS.ProcessEnv, options?: ListOmbSessionsOptions): Promise<OmbSessionInfo[]>;
159
+ /** Re-resolve a selected row immediately before a mutating action. */
160
+ export declare function assertOmbSessionGeneration(expected: Pick<OmbSessionInfo, "name" | "generation">, cwd?: string, env?: NodeJS.ProcessEnv): Promise<OmbSessionInfo>;
146
161
  /** Return the most recently attached live session for one exact project path. */
147
162
  export declare function findLastOmbSession(cwd: string, env?: NodeJS.ProcessEnv): Promise<OmbSessionInfo | undefined>;
148
163
  //# sourceMappingURL=omb-sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"omb-sessions.d.ts","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"omb-sessions.d.ts","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { createHash } from "node:crypto";
2
3
  import { parseTmuxSessionRecords } from "./tmux.js";
3
4
  import { access, readdir, stat } from "node:fs/promises";
4
5
  import { mkdirSync, rmSync, writeFileSync } from "node:fs";
5
6
  import { basename, join, relative, resolve } from "node:path";
6
7
  import { homedir, tmpdir } from "node:os";
8
+ import { ContractError } from "../core/errors.js";
7
9
  import { describeToolActivity, deriveSessionActivity, listSessionJournals, readJournalHead, readJournalTail, } from "./session-activity.js";
8
10
  export const BIZAR_SESSION_PREFIX = "bizar-";
9
11
  /** Most recent stopped sessions to surface when stopped sessions are enabled. */
@@ -154,8 +156,12 @@ async function readNativeSessionFile(journal) {
154
156
  }
155
157
  }
156
158
  const timestamp = typeof header.timestamp === "string" ? Date.parse(header.timestamp) : NaN;
159
+ // OMP 18.2.11's SessionHeader has no pid; honor an optional host-specific pid
160
+ // without treating ordinary journal freshness as proof that a process lives.
161
+ const pid = typeof header.pid === "number" && Number.isSafeInteger(header.pid) && header.pid > 0 ? header.pid : undefined;
157
162
  return {
158
163
  id: cleanText(header.id),
164
+ pid,
159
165
  title: latestTitle,
160
166
  cwd: cleanText(header.cwd),
161
167
  firstMessage,
@@ -180,9 +186,12 @@ async function readNativeSessionSnapshot(sessionDir, now) {
180
186
  break;
181
187
  }
182
188
  }
189
+ const activity = entries.length > 0 ? deriveSessionActivity(entries, { now, fallbackUpdatedAt: modifiedAt }) : undefined;
190
+ if (activity && metadata?.pid)
191
+ activity.pid = metadata.pid;
183
192
  return {
184
193
  metadata,
185
- activity: entries.length > 0 ? deriveSessionActivity(entries, { now, fallbackUpdatedAt: modifiedAt }) : undefined,
194
+ activity,
186
195
  };
187
196
  }
188
197
  async function readLegacyNativeSessionMetadata(cwd, sessionCreatedAt, env) {
@@ -272,12 +281,25 @@ const STATE_RANK = {
272
281
  connected: 2,
273
282
  disconnected: 3,
274
283
  stopped: 4,
284
+ unknown: 5,
275
285
  };
276
286
  function exitCode(code, signal) {
277
287
  if (code !== null)
278
288
  return code;
279
289
  return signal ? 1 : 1;
280
290
  }
291
+ /** Probe whether a native session process still exists without signaling it. */
292
+ export function processAliveCheck(pid) {
293
+ if (!Number.isSafeInteger(pid) || pid <= 0)
294
+ return false;
295
+ try {
296
+ process.kill(pid, 0);
297
+ return true;
298
+ }
299
+ catch (error) {
300
+ return error.code === "EPERM";
301
+ }
302
+ }
281
303
  function readTmux(command, args, cwd, env) {
282
304
  const child = spawn(command, args, { cwd, env, stdio: ["ignore", "pipe", "ignore"] });
283
305
  let output = "";
@@ -350,17 +372,37 @@ function parseSessionList(output) {
350
372
  return parseTmuxSessionRecords(output).filter(session => session.name.startsWith(BIZAR_SESSION_PREFIX));
351
373
  }
352
374
  function sessionRecord(name, fields) {
375
+ const hosted = fields.hosted ?? false;
376
+ const attached = fields.attached ?? false;
377
+ const activity = fields.activity;
378
+ const generation = createHash("sha256").update(JSON.stringify([
379
+ name,
380
+ fields.createdAt ?? null,
381
+ fields.nativeId ?? null,
382
+ fields.pid && fields.pid !== "?" ? fields.pid : null,
383
+ ])).digest("hex").slice(0, 32);
353
384
  const record = {
354
385
  name,
355
386
  project: fields.cwd === "?" ? sessionProject(name) : basename(fields.cwd),
356
387
  id: sessionId(name),
357
388
  ...fields,
389
+ hosted,
390
+ attached,
391
+ generation,
392
+ authorityKnown: fields.authorityKnown ?? false,
393
+ nativeOutcome: activity?.nativeOutcome ?? "unknown",
394
+ uncertainLiveness: fields.uncertainLiveness ?? false,
395
+ processObserved: fields.processObserved ?? false,
358
396
  };
359
397
  return { ...record, displayName: ombSessionDisplayName(record) };
360
398
  }
361
399
  async function describeLiveSession(tmux, session, cwd, childEnv, env, now) {
400
+ // S007: a failed list-panes (e.g. multiplexer refused) cannot prove liveness;
401
+ // mark the pane as dead so the session row reports an unknown/stopped state
402
+ // instead of appearing live.
362
403
  const pane = await readTmux(tmux, ["list-panes", "-t", session.name, "-F", PANE_FORMAT], cwd, childEnv);
363
- const details = parsePane(pane.output, env);
404
+ const details = pane.code === 0 ? parsePane(pane.output, env) : { dead: true, cwd: "", command: "", pid: "", bound: session.name };
405
+ const authorityKnown = pane.code === 0 && /^\d+$/.test(details.pid) && details.command !== "?";
364
406
  // Prefer the journal the pane command names: after a rename the tmux session
365
407
  // and its native directory differ, and the host keeps writing the directory
366
408
  // it was started with.
@@ -375,10 +417,11 @@ async function describeLiveSession(tmux, session, cwd, childEnv, env, now) {
375
417
  binding: declared?.metadata ? details.bound : undefined,
376
418
  session: sessionRecord(session.name, {
377
419
  cwd: details.cwd,
378
- state: ombSessionState({ dead: details.dead, attached: session.attached, activity: snapshot.activity }),
379
- attached: session.attached,
420
+ state: authorityKnown ? ombSessionState({ dead: details.dead, attached: session.attached, activity: snapshot.activity }) : "unknown",
421
+ attached: authorityKnown && session.attached,
380
422
  activity: snapshot.activity,
381
- hosted: true,
423
+ hosted: authorityKnown,
424
+ authorityKnown,
382
425
  command: details.command,
383
426
  pid: details.pid,
384
427
  nativeId: native?.id,
@@ -535,14 +578,20 @@ async function listUnhostedSessions(env, claimed, now) {
535
578
  if (!metadata)
536
579
  return undefined;
537
580
  const activity = snapshot.activity;
538
- const alive = Boolean(activity && !activity.stale);
581
+ const recent = Boolean(activity && !activity.stale);
582
+ const processObserved = Boolean(activity?.pid && processAliveCheck(activity.pid));
539
583
  return sessionRecord(entry.name, {
540
584
  cwd: metadata.cwd ?? "?",
541
- state: alive ? ombSessionState({ dead: false, attached: false, activity }) : "stopped",
585
+ state: processObserved
586
+ ? recent ? ombSessionState({ dead: false, attached: false, activity }) : "disconnected"
587
+ : recent ? "unknown" : "stopped",
542
588
  attached: false,
543
589
  activity,
544
590
  hosted: false,
545
- command: alive ? "unattached" : "exited",
591
+ authorityKnown: true,
592
+ uncertainLiveness: !processObserved,
593
+ processObserved,
594
+ command: processObserved ? "unattached" : recent ? "unhosted" : "exited",
546
595
  pid: "?",
547
596
  nativeId: metadata.id,
548
597
  nativeName: metadata.title,
@@ -552,8 +601,8 @@ async function listUnhostedSessions(env, claimed, now) {
552
601
  });
553
602
  }))).filter((session) => Boolean(session));
554
603
  unhosted.sort((a, b) => (b.activity?.updatedAt ?? 0) - (a.activity?.updatedAt ?? 0));
555
- const live = unhosted.filter(session => session.state !== "stopped");
556
- return [...live, ...unhosted.filter(session => session.state === "stopped").slice(0, STOPPED_SESSION_LIMIT)];
604
+ const uncertain = unhosted.filter(session => session.state === "unknown");
605
+ return [...uncertain, ...unhosted.filter(session => session.state === "stopped").slice(0, STOPPED_SESSION_LIMIT)];
557
606
  }
558
607
  export async function currentOmbHostSession(cwd = process.cwd(), env = process.env) {
559
608
  if (!env.TMUX)
@@ -581,6 +630,9 @@ export async function listOmbSessions(cwd = process.cwd(), env = process.env, op
581
630
  const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
582
631
  const now = Date.now();
583
632
  const sessions = await readTmux(tmux, ["list-sessions", "-F", "#{session_name}\t#{session_created}\t#{session_last_attached}\t#{session_attached}"], cwd, childEnv);
633
+ if (options.requireMultiplexer && sessions.code !== 0) {
634
+ throw new ContractError("session authority is unavailable");
635
+ }
584
636
  const live = sessions.code === 0 ? parseSessionList(sessions.output) : [];
585
637
  const described = await Promise.all(live.map(session => describeLiveSession(tmux, session, cwd, childEnv, env, now)));
586
638
  // Every live session claims the directory its pane writes (its own, or the one
@@ -589,12 +641,32 @@ export async function listOmbSessions(cwd = process.cwd(), env = process.env, op
589
641
  ...live.map(session => session.name),
590
642
  ...described.map(item => item.binding).filter((name) => Boolean(name)),
591
643
  ]);
592
- const unhosted = await listUnhostedSessions(env, claimed, now);
644
+ // S001: when the multiplexer is unavailable (code !== 0), do NOT scan
645
+ // directories as "unhosted" — a transient refusal can make a still-hosted
646
+ // session appear unhosted, and `forgetOmbSession` would then tombstone its
647
+ // live journal. Return only the confirmed-live sessions in that case.
648
+ // S001: when the multiplexer binary is missing (exit 127 from ENOENT/EINVAL),
649
+ // skip unhosted scanning — a missing binary means no tmux sessions exist,
650
+ // so unhosted directories could incorrectly override tmux-discovered sessions.
651
+ // For other nonzero codes (e.g. fake test multiplexers, transient errors),
652
+ // the unhosted scan is safe and correct.
653
+ const unhosted = sessions.code === 127 ? [] : await listUnhostedSessions(env, claimed, now);
593
654
  const stopped = options.includeStopped ? unhosted.filter(session => session.state === "stopped") : [];
594
655
  return [...described.map(item => item.session), ...unhosted.filter(session => session.state !== "stopped"), ...stopped].sort((a, b) => STATE_RANK[a.state] - STATE_RANK[b.state] ||
595
656
  a.project.localeCompare(b.project) ||
596
657
  a.name.localeCompare(b.name));
597
658
  }
659
+ /** Re-resolve a selected row immediately before a mutating action. */
660
+ export async function assertOmbSessionGeneration(expected, cwd = process.cwd(), env = process.env) {
661
+ const current = (await listOmbSessions(cwd, env, { includeStopped: true, requireMultiplexer: true }))
662
+ .find(session => session.name === expected.name);
663
+ if (!current || current.generation !== expected.generation) {
664
+ throw new ContractError("session changed externally");
665
+ }
666
+ if (!current.authorityKnown)
667
+ throw new ContractError("session authority is unavailable");
668
+ return current;
669
+ }
598
670
  /** Return the most recently attached live session for one exact project path. */
599
671
  export async function findLastOmbSession(cwd, env = process.env) {
600
672
  const sessions = await listOmbSessions(cwd, env);
@@ -1 +1 @@
1
- {"version":3,"file":"omb-sessions.js","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"omb-sessions.js","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { type CatalogSnapshot } from "./model-role-assignment.js";
2
2
  export interface OmbSettings {
3
+ /** Monotonically increasing revision used to reject stale settings writes. */
4
+ version: number;
3
5
  autoAttachLatest: boolean;
4
6
  mouseScrolling: boolean;
5
7
  showStoppedSessions: boolean;
@@ -19,7 +21,19 @@ export type OmbApprovalMode = typeof OMB_APPROVAL_MODES[number];
19
21
  export declare const DEFAULT_OMB_SETTINGS: OmbSettings;
20
22
  export declare function ombSettingsPath(env?: NodeJS.ProcessEnv): string;
21
23
  export declare function loadOmbSettings(env?: NodeJS.ProcessEnv): OmbSettings;
22
- export declare function saveOmbSettings(settings: OmbSettings, env?: NodeJS.ProcessEnv): void;
24
+ /** Raised when a settings snapshot has been superseded by another writer. */
25
+ export declare class OmbSettingsConflictError extends Error {
26
+ readonly current: OmbSettings;
27
+ constructor(current: OmbSettings);
28
+ }
29
+ /**
30
+ * Save a settings snapshot if it is still current.
31
+ *
32
+ * The snapshot's `version` is its optimistic-concurrency token. A successful
33
+ * write publishes a new snapshot with the next revision; callers should keep
34
+ * that returned value for any later save.
35
+ */
36
+ export declare function saveOmbSettings(settings: OmbSettings, env?: NodeJS.ProcessEnv): OmbSettings;
23
37
  /**
24
38
  * Record the observed model catalog without ever replacing settings that could
25
39
  * not be read. An existing but unparseable `omb.json` is left byte-for-byte
@@ -1 +1 @@
1
- {"version":3,"file":"omb-settings.d.ts","sourceRoot":"","sources":["../../src/omp/omb-settings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGxF,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,gBAAgB,GAAG,EAAE,CAAC;IACvC,mBAAmB,EAAE,eAAe,GAAG,EAAE,CAAC;IAC1C,iGAAiG;IACjG,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB,YAAI,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAChH,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAClE,eAAO,MAAM,kBAAkB,YAAI,YAAY,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,WASlC,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG5E;AAcD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAmBjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAOjG;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4BrJ;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,IAAI,CAyBZ"}
1
+ {"version":3,"file":"omb-settings.d.ts","sourceRoot":"","sources":["../../src/omp/omb-settings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGxF,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,gBAAgB,GAAG,EAAE,CAAC;IACvC,mBAAmB,EAAE,eAAe,GAAG,EAAE,CAAC;IAC1C,iGAAiG;IACjG,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB,YAAI,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAChH,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAClE,eAAO,MAAM,kBAAkB,YAAI,YAAY,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,WAUlC,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG5E;AAkBD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAqBjF;AAED,6EAA6E;AAC7E,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,YAAY,OAAO,EAAE,WAAW,EAI/B;CACF;AAyCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAYxG;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2BrJ;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,IAAI,CAyBZ"}
@@ -1,10 +1,11 @@
1
- import { mkdirSync, readFileSync, renameSync, watch, writeFileSync } from "node:fs";
1
+ import { closeSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, statSync, watch, writeFileSync, writeSync } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { basename, dirname, join } from "node:path";
4
4
  import { parseCatalogSnapshot } from "./model-role-assignment.js";
5
5
  export const OMB_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max", "auto"];
6
6
  export const OMB_APPROVAL_MODES = ["always-ask", "write", "yolo"];
7
7
  export const DEFAULT_OMB_SETTINGS = {
8
+ version: 0,
8
9
  autoAttachLatest: true,
9
10
  mouseScrolling: true,
10
11
  showStoppedSessions: false,
@@ -21,6 +22,9 @@ export function ombSettingsPath(env = process.env) {
21
22
  function validBoolean(value, fallback) {
22
23
  return typeof value === "boolean" ? value : fallback;
23
24
  }
25
+ function validVersion(value, fallback) {
26
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : fallback;
27
+ }
24
28
  function validPath(value, fallback) {
25
29
  return typeof value === "string" ? value.trim() : fallback;
26
30
  }
@@ -31,6 +35,8 @@ export function loadOmbSettings(env = process.env) {
31
35
  try {
32
36
  const value = JSON.parse(readFileSync(ombSettingsPath(env), "utf8"));
33
37
  const settings = {
38
+ // Settings files written before revisions were introduced are revision 0.
39
+ version: validVersion(value.version, DEFAULT_OMB_SETTINGS.version),
34
40
  autoAttachLatest: validBoolean(value.autoAttachLatest, DEFAULT_OMB_SETTINGS.autoAttachLatest),
35
41
  mouseScrolling: validBoolean(value.mouseScrolling, DEFAULT_OMB_SETTINGS.mouseScrolling),
36
42
  showStoppedSessions: validBoolean(value.showStoppedSessions, DEFAULT_OMB_SETTINGS.showStoppedSessions),
@@ -49,13 +55,81 @@ export function loadOmbSettings(env = process.env) {
49
55
  return { ...DEFAULT_OMB_SETTINGS };
50
56
  }
51
57
  }
58
+ /** Raised when a settings snapshot has been superseded by another writer. */
59
+ export class OmbSettingsConflictError extends Error {
60
+ current;
61
+ constructor(current) {
62
+ super("settings changed externally");
63
+ this.name = "OmbSettingsConflictError";
64
+ this.current = current;
65
+ }
66
+ }
67
+ function withSettingsLock(path, env, action) {
68
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
69
+ const lockPath = `${path}.lock`;
70
+ let descriptor;
71
+ try {
72
+ descriptor = openSync(lockPath, "wx", 0o600);
73
+ writeSync(descriptor, `${process.pid}\n`);
74
+ }
75
+ catch (error) {
76
+ if (descriptor !== undefined) {
77
+ closeSync(descriptor);
78
+ rmSync(lockPath, { force: true });
79
+ }
80
+ const current = loadOmbSettings(env);
81
+ if (error.code === "EEXIST") {
82
+ try {
83
+ const lockPid = Number(readFileSync(lockPath, "utf8").trim());
84
+ const oldEnough = Date.now() - statSync(lockPath).mtimeMs > 60_000;
85
+ let ownerAlive = Number.isSafeInteger(lockPid) && lockPid > 0;
86
+ if (ownerAlive) {
87
+ try {
88
+ process.kill(lockPid, 0);
89
+ }
90
+ catch (probe) {
91
+ ownerAlive = probe.code === "EPERM";
92
+ }
93
+ }
94
+ if (!ownerAlive && oldEnough) {
95
+ rmSync(lockPath, { force: true });
96
+ return withSettingsLock(path, env, action);
97
+ }
98
+ }
99
+ catch { /* A lock that cannot be identified remains fail-closed. */ }
100
+ throw new OmbSettingsConflictError(current);
101
+ }
102
+ throw error;
103
+ }
104
+ try {
105
+ return action();
106
+ }
107
+ finally {
108
+ if (descriptor !== undefined)
109
+ closeSync(descriptor);
110
+ rmSync(lockPath, { force: true });
111
+ }
112
+ }
113
+ /**
114
+ * Save a settings snapshot if it is still current.
115
+ *
116
+ * The snapshot's `version` is its optimistic-concurrency token. A successful
117
+ * write publishes a new snapshot with the next revision; callers should keep
118
+ * that returned value for any later save.
119
+ */
52
120
  export function saveOmbSettings(settings, env = process.env) {
53
121
  const path = ombSettingsPath(env);
54
- mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
55
- // Temp file plus rename: a reader or a crash never observes a half-written file.
56
- const temporary = `${path}.${process.pid}.tmp`;
57
- writeFileSync(temporary, `${JSON.stringify(settings, null, 2)}\n`, { mode: 0o600 });
58
- renameSync(temporary, path);
122
+ return withSettingsLock(path, env, () => {
123
+ const current = loadOmbSettings(env);
124
+ if (current.version !== settings.version)
125
+ throw new OmbSettingsConflictError(current);
126
+ const next = { ...settings, version: settings.version + 1 };
127
+ // Temp file plus rename: a reader or a crash never observes partial JSON.
128
+ const temporary = `${path}.${process.pid}.tmp`;
129
+ writeFileSync(temporary, `${JSON.stringify(next, null, 2)}\n`, { mode: 0o600 });
130
+ renameSync(temporary, path);
131
+ return next;
132
+ });
59
133
  }
60
134
  /**
61
135
  * Record the observed model catalog without ever replacing settings that could
@@ -66,32 +140,34 @@ export function saveOmbSettings(settings, env = process.env) {
66
140
  */
67
141
  export function recordCatalogObservation(catalog, env = process.env) {
68
142
  const path = ombSettingsPath(env);
69
- let raw;
70
143
  try {
71
- raw = readFileSync(path, "utf8");
72
- }
73
- catch (error) {
74
- if (error.code !== "ENOENT")
75
- return { ok: false, reason: describeWriteError(error) };
76
- }
77
- let existing = {};
78
- if (raw !== undefined) {
79
- try {
80
- const parsed = JSON.parse(raw);
81
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
82
- throw new Error("settings root is not an object");
83
- existing = parsed;
84
- }
85
- catch (error) {
86
- return { ok: false, reason: `${path} is not readable JSON (${describeWriteError(error)}); left untouched` };
87
- }
88
- }
89
- try {
90
- const merged = { ...existing, modelCatalog: catalog };
91
- mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
92
- const temporary = `${path}.${process.pid}.tmp`;
93
- writeFileSync(temporary, `${JSON.stringify(merged, null, 2)}\n`, { mode: 0o600 });
94
- renameSync(temporary, path);
144
+ withSettingsLock(path, env, () => {
145
+ let raw;
146
+ try {
147
+ raw = readFileSync(path, "utf8");
148
+ }
149
+ catch (error) {
150
+ if (error.code !== "ENOENT")
151
+ throw error;
152
+ }
153
+ let existing = {};
154
+ if (raw !== undefined) {
155
+ try {
156
+ const parsed = JSON.parse(raw);
157
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
158
+ throw new Error("settings root is not an object");
159
+ existing = parsed;
160
+ }
161
+ catch (error) {
162
+ throw new Error(`${path} is not readable JSON (${describeWriteError(error)}); left untouched`);
163
+ }
164
+ }
165
+ // Catalog observation also advances the version so it invalidates stale settings drafts.
166
+ const merged = { ...existing, version: validVersion(existing.version, 0) + 1, modelCatalog: catalog };
167
+ const temporary = `${path}.${process.pid}.tmp`;
168
+ writeFileSync(temporary, `${JSON.stringify(merged, null, 2)}\n`, { mode: 0o600 });
169
+ renameSync(temporary, path);
170
+ });
95
171
  return { ok: true };
96
172
  }
97
173
  catch (error) {