openlanes 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. checksums.yaml +7 -0
  2. data/agents/hansolo-reviewer.md +59 -0
  3. data/agents/lando-broker.md +70 -0
  4. data/agents/leah-researcher.md +60 -0
  5. data/agents/luke-backend.md +73 -0
  6. data/agents/palpatine-planner.md +61 -0
  7. data/agents/r2d2-mechanic.md +57 -0
  8. data/agents/rey-frontend.md +68 -0
  9. data/agents/yoda-writer.md +67 -0
  10. data/bin/factory-e2e +157 -0
  11. data/bin/plan-number +164 -0
  12. data/bin/setup +26 -0
  13. data/evals/cases/hansolo-reviewer/review-medium/fail/plan/plan.md +3 -0
  14. data/evals/cases/hansolo-reviewer/review-medium/fail/plan/pull-requests.md +12 -0
  15. data/evals/cases/hansolo-reviewer/review-medium/fail/plan/spec.md +5 -0
  16. data/evals/cases/hansolo-reviewer/review-medium/fail/repo/lib/cart.rb +9 -0
  17. data/evals/cases/hansolo-reviewer/review-medium/fail/repo/spec/cart_spec.rb +7 -0
  18. data/evals/cases/hansolo-reviewer/review-medium/fail/run.json +1 -0
  19. data/evals/cases/hansolo-reviewer/review-medium/pass/plan/plan.md +3 -0
  20. data/evals/cases/hansolo-reviewer/review-medium/pass/plan/pull-requests.md +15 -0
  21. data/evals/cases/hansolo-reviewer/review-medium/pass/plan/spec.md +5 -0
  22. data/evals/cases/hansolo-reviewer/review-medium/pass/repo/lib/cart.rb +9 -0
  23. data/evals/cases/hansolo-reviewer/review-medium/pass/repo/spec/cart_spec.rb +7 -0
  24. data/evals/cases/hansolo-reviewer/review-medium/pass/run.json +1 -0
  25. data/evals/cases/hansolo-reviewer/review-medium.yml +60 -0
  26. data/evals/cases/lando-broker/unblock-fast/fail/plan/blocked.md +9 -0
  27. data/evals/cases/lando-broker/unblock-fast/fail/plan/spec.md +16 -0
  28. data/evals/cases/lando-broker/unblock-fast/fail/run.json +1 -0
  29. data/evals/cases/lando-broker/unblock-fast/pass/plan/spec.md +18 -0
  30. data/evals/cases/lando-broker/unblock-fast/pass/run.json +1 -0
  31. data/evals/cases/lando-broker/unblock-fast.yml +44 -0
  32. data/evals/cases/leah-researcher/research-deep/fail/plan/spec.md +26 -0
  33. data/evals/cases/leah-researcher/research-deep/fail/run.json +1 -0
  34. data/evals/cases/leah-researcher/research-deep/pass/plan/spec.md +39 -0
  35. data/evals/cases/leah-researcher/research-deep/pass/run.json +1 -0
  36. data/evals/cases/leah-researcher/research-deep.yml +51 -0
  37. data/evals/cases/leah-researcher/research-fast/fail/plan/spec.md +27 -0
  38. data/evals/cases/leah-researcher/research-fast/fail/run.json +1 -0
  39. data/evals/cases/leah-researcher/research-fast/pass/plan/spec.md +23 -0
  40. data/evals/cases/leah-researcher/research-fast/pass/run.json +1 -0
  41. data/evals/cases/leah-researcher/research-fast.yml +55 -0
  42. data/evals/cases/luke-backend/build-medium/fail/plan/plan-backend.md +7 -0
  43. data/evals/cases/luke-backend/build-medium/fail/plan/plan-frontend.md +1 -0
  44. data/evals/cases/luke-backend/build-medium/fail/plan/plan.md +3 -0
  45. data/evals/cases/luke-backend/build-medium/fail/plan/pull-requests.md +8 -0
  46. data/evals/cases/luke-backend/build-medium/fail/plan/spec.md +8 -0
  47. data/evals/cases/luke-backend/build-medium/fail/repo/Gemfile +2 -0
  48. data/evals/cases/luke-backend/build-medium/fail/repo/lib/cart.rb +11 -0
  49. data/evals/cases/luke-backend/build-medium/fail/repo/spec/cart_spec.rb +7 -0
  50. data/evals/cases/luke-backend/build-medium/fail/run.json +1 -0
  51. data/evals/cases/luke-backend/build-medium/pass/plan/plan-backend.md +7 -0
  52. data/evals/cases/luke-backend/build-medium/pass/plan/plan-frontend.md +1 -0
  53. data/evals/cases/luke-backend/build-medium/pass/plan/plan.md +3 -0
  54. data/evals/cases/luke-backend/build-medium/pass/plan/pull-requests.md +8 -0
  55. data/evals/cases/luke-backend/build-medium/pass/plan/spec.md +8 -0
  56. data/evals/cases/luke-backend/build-medium/pass/repo/Gemfile +2 -0
  57. data/evals/cases/luke-backend/build-medium/pass/repo/lib/cart.rb +11 -0
  58. data/evals/cases/luke-backend/build-medium/pass/repo/spec/cart_spec.rb +11 -0
  59. data/evals/cases/luke-backend/build-medium/pass/run.json +1 -0
  60. data/evals/cases/luke-backend/build-medium.yml +68 -0
  61. data/evals/cases/palpatine-planner/plan-deep/fail/plan/plan-backend.md +6 -0
  62. data/evals/cases/palpatine-planner/plan-deep/fail/plan/plan.md +8 -0
  63. data/evals/cases/palpatine-planner/plan-deep/fail/plan/spec.md +14 -0
  64. data/evals/cases/palpatine-planner/plan-deep/fail/run.json +1 -0
  65. data/evals/cases/palpatine-planner/plan-deep/pass/plan/plan-backend.md +32 -0
  66. data/evals/cases/palpatine-planner/plan-deep/pass/plan/plan-frontend.md +1 -0
  67. data/evals/cases/palpatine-planner/plan-deep/pass/plan/plan.md +28 -0
  68. data/evals/cases/palpatine-planner/plan-deep/pass/plan/spec.md +14 -0
  69. data/evals/cases/palpatine-planner/plan-deep/pass/run.json +1 -0
  70. data/evals/cases/palpatine-planner/plan-deep.yml +50 -0
  71. data/evals/cases/palpatine-planner/plan-fast/fail/plan/plan-backend.md +48 -0
  72. data/evals/cases/palpatine-planner/plan-fast/fail/plan/plan-frontend.md +1 -0
  73. data/evals/cases/palpatine-planner/plan-fast/fail/plan/plan.md +12 -0
  74. data/evals/cases/palpatine-planner/plan-fast/fail/plan/spec.md +12 -0
  75. data/evals/cases/palpatine-planner/plan-fast/fail/run.json +1 -0
  76. data/evals/cases/palpatine-planner/plan-fast/pass/plan/plan-backend.md +8 -0
  77. data/evals/cases/palpatine-planner/plan-fast/pass/plan/plan-frontend.md +1 -0
  78. data/evals/cases/palpatine-planner/plan-fast/pass/plan/plan.md +12 -0
  79. data/evals/cases/palpatine-planner/plan-fast/pass/plan/spec.md +12 -0
  80. data/evals/cases/palpatine-planner/plan-fast/pass/run.json +1 -0
  81. data/evals/cases/palpatine-planner/plan-fast.yml +47 -0
  82. data/evals/cases/r2d2-mechanic/task-fast/fail/plan/plan.md +7 -0
  83. data/evals/cases/r2d2-mechanic/task-fast/fail/plan/pull-requests.md +6 -0
  84. data/evals/cases/r2d2-mechanic/task-fast/fail/plan/spec.md +6 -0
  85. data/evals/cases/r2d2-mechanic/task-fast/fail/repo/README.md +3 -0
  86. data/evals/cases/r2d2-mechanic/task-fast/fail/repo/lib/greeter/formatter.rb +12 -0
  87. data/evals/cases/r2d2-mechanic/task-fast/fail/repo/lib/greeter.rb +15 -0
  88. data/evals/cases/r2d2-mechanic/task-fast/fail/repo/spec/greeter_spec.rb +7 -0
  89. data/evals/cases/r2d2-mechanic/task-fast/fail/run.json +1 -0
  90. data/evals/cases/r2d2-mechanic/task-fast/pass/plan/plan.md +7 -0
  91. data/evals/cases/r2d2-mechanic/task-fast/pass/plan/pull-requests.md +6 -0
  92. data/evals/cases/r2d2-mechanic/task-fast/pass/plan/spec.md +6 -0
  93. data/evals/cases/r2d2-mechanic/task-fast/pass/repo/README.md +3 -0
  94. data/evals/cases/r2d2-mechanic/task-fast/pass/repo/lib/greeter.rb +3 -0
  95. data/evals/cases/r2d2-mechanic/task-fast/pass/repo/spec/greeter_spec.rb +7 -0
  96. data/evals/cases/r2d2-mechanic/task-fast/pass/run.json +1 -0
  97. data/evals/cases/r2d2-mechanic/task-fast.yml +59 -0
  98. data/evals/cases/r2d2-mechanic/task-medium/fail/plan/plan.md +7 -0
  99. data/evals/cases/r2d2-mechanic/task-medium/fail/plan/pull-requests.md +6 -0
  100. data/evals/cases/r2d2-mechanic/task-medium/fail/plan/spec.md +6 -0
  101. data/evals/cases/r2d2-mechanic/task-medium/fail/repo/Gemfile +2 -0
  102. data/evals/cases/r2d2-mechanic/task-medium/fail/repo/lib/greeter.rb +6 -0
  103. data/evals/cases/r2d2-mechanic/task-medium/fail/repo/spec/greeter_spec.rb +11 -0
  104. data/evals/cases/r2d2-mechanic/task-medium/fail/run.json +1 -0
  105. data/evals/cases/r2d2-mechanic/task-medium/pass/plan/plan.md +7 -0
  106. data/evals/cases/r2d2-mechanic/task-medium/pass/plan/pull-requests.md +6 -0
  107. data/evals/cases/r2d2-mechanic/task-medium/pass/plan/spec.md +6 -0
  108. data/evals/cases/r2d2-mechanic/task-medium/pass/repo/Gemfile +2 -0
  109. data/evals/cases/r2d2-mechanic/task-medium/pass/repo/lib/greeter.rb +6 -0
  110. data/evals/cases/r2d2-mechanic/task-medium/pass/repo/spec/greeter_spec.rb +11 -0
  111. data/evals/cases/r2d2-mechanic/task-medium/pass/run.json +1 -0
  112. data/evals/cases/r2d2-mechanic/task-medium.yml +58 -0
  113. data/evals/cases/rey-frontend/ui-medium/fail/plan/plan-frontend.md +7 -0
  114. data/evals/cases/rey-frontend/ui-medium/fail/plan/plan.md +4 -0
  115. data/evals/cases/rey-frontend/ui-medium/fail/plan/pull-requests.md +8 -0
  116. data/evals/cases/rey-frontend/ui-medium/fail/plan/spec.md +5 -0
  117. data/evals/cases/rey-frontend/ui-medium/fail/repo/lib/cart.rb +5 -0
  118. data/evals/cases/rey-frontend/ui-medium/fail/repo/web/cart_badge.js +4 -0
  119. data/evals/cases/rey-frontend/ui-medium/fail/repo/web/cart_badge.test.js +3 -0
  120. data/evals/cases/rey-frontend/ui-medium/fail/run.json +1 -0
  121. data/evals/cases/rey-frontend/ui-medium/pass/plan/plan-frontend.md +7 -0
  122. data/evals/cases/rey-frontend/ui-medium/pass/plan/plan.md +4 -0
  123. data/evals/cases/rey-frontend/ui-medium/pass/plan/pull-requests.md +8 -0
  124. data/evals/cases/rey-frontend/ui-medium/pass/plan/spec.md +5 -0
  125. data/evals/cases/rey-frontend/ui-medium/pass/repo/lib/cart.rb +3 -0
  126. data/evals/cases/rey-frontend/ui-medium/pass/repo/web/cart_badge.js +4 -0
  127. data/evals/cases/rey-frontend/ui-medium/pass/repo/web/cart_badge.test.js +3 -0
  128. data/evals/cases/rey-frontend/ui-medium/pass/run.json +1 -0
  129. data/evals/cases/rey-frontend/ui-medium.yml +55 -0
  130. data/evals/cases/yoda-writer/spec-medium/fail/plan/plan.md +5 -0
  131. data/evals/cases/yoda-writer/spec-medium/fail/plan/spec.md +45 -0
  132. data/evals/cases/yoda-writer/spec-medium/fail/run.json +1 -0
  133. data/evals/cases/yoda-writer/spec-medium/pass/plan/plan.md +0 -0
  134. data/evals/cases/yoda-writer/spec-medium/pass/plan/spec.md +63 -0
  135. data/evals/cases/yoda-writer/spec-medium/pass/run.json +1 -0
  136. data/evals/cases/yoda-writer/spec-medium.yml +40 -0
  137. data/exe/depot +1 -0
  138. data/exe/lanes +1 -0
  139. data/exe/openlanes +32 -0
  140. data/lib/openlanes/adapters/base.rb +69 -0
  141. data/lib/openlanes/adapters/claude.rb +124 -0
  142. data/lib/openlanes/adapters/codex.rb +33 -0
  143. data/lib/openlanes/adapters/model.rb +37 -0
  144. data/lib/openlanes/adapters/pi.rb +22 -0
  145. data/lib/openlanes/adapters/stream.rb +196 -0
  146. data/lib/openlanes/adapters.rb +92 -0
  147. data/lib/openlanes/agents/agent.rb +103 -0
  148. data/lib/openlanes/agents/profile.rb +57 -0
  149. data/lib/openlanes/agents/registry.rb +151 -0
  150. data/lib/openlanes/agents/roster.rb +103 -0
  151. data/lib/openlanes/agents/routing.rb +88 -0
  152. data/lib/openlanes/agents.rb +20 -0
  153. data/lib/openlanes/cli/agents/subcommands/describe.rb +66 -0
  154. data/lib/openlanes/cli/agents/subcommands/list.rb +20 -0
  155. data/lib/openlanes/cli/base.rb +263 -0
  156. data/lib/openlanes/cli/create/create.rb +354 -0
  157. data/lib/openlanes/cli/docs/docs.rb +40 -0
  158. data/lib/openlanes/cli/eval/eval.rb +110 -0
  159. data/lib/openlanes/cli/index/index.rb +40 -0
  160. data/lib/openlanes/cli/init/init.rb +145 -0
  161. data/lib/openlanes/cli/linear/linear.rb +36 -0
  162. data/lib/openlanes/cli/linear/subcommands/import.rb +174 -0
  163. data/lib/openlanes/cli/linear/subcommands/projects.rb +55 -0
  164. data/lib/openlanes/cli/list_plans/list_plans.rb +21 -0
  165. data/lib/openlanes/cli/mail/mail.rb +31 -0
  166. data/lib/openlanes/cli/mail/subcommands/read.rb +43 -0
  167. data/lib/openlanes/cli/mail/subcommands/send.rb +43 -0
  168. data/lib/openlanes/cli/resync/subcommands/dirs.rb +48 -0
  169. data/lib/openlanes/cli/resync/subcommands/prs.rb +111 -0
  170. data/lib/openlanes/cli/run/run.rb +544 -0
  171. data/lib/openlanes/cli/skills/subcommands/install.rb +92 -0
  172. data/lib/openlanes/cli/start/start.rb +110 -0
  173. data/lib/openlanes/cli/state/state.rb +26 -0
  174. data/lib/openlanes/cli/state/subcommands/show.rb +30 -0
  175. data/lib/openlanes/cli/state/subcommands/sign.rb +48 -0
  176. data/lib/openlanes/cli/states/states.rb +15 -0
  177. data/lib/openlanes/cli/unblock/unblock.rb +235 -0
  178. data/lib/openlanes/cli/version/version.rb +13 -0
  179. data/lib/openlanes/cli/web/web.rb +100 -0
  180. data/lib/openlanes/cli/worktree/worktree.rb +85 -0
  181. data/lib/openlanes/cli.rb +162 -0
  182. data/lib/openlanes/engine/board.rb +104 -0
  183. data/lib/openlanes/engine/dispatcher.rb +1297 -0
  184. data/lib/openlanes/engine/progress_log.rb +125 -0
  185. data/lib/openlanes/engine/runner.rb +224 -0
  186. data/lib/openlanes/engine/state_file.rb +190 -0
  187. data/lib/openlanes/engine/tally.rb +177 -0
  188. data/lib/openlanes/engine.rb +19 -0
  189. data/lib/openlanes/evals/case.rb +191 -0
  190. data/lib/openlanes/evals/changes.rb +67 -0
  191. data/lib/openlanes/evals/check.rb +224 -0
  192. data/lib/openlanes/evals/evidence.rb +71 -0
  193. data/lib/openlanes/evals/live.rb +140 -0
  194. data/lib/openlanes/evals/recording.rb +38 -0
  195. data/lib/openlanes/evals/run.rb +34 -0
  196. data/lib/openlanes/evals/score.rb +24 -0
  197. data/lib/openlanes/evals/scorer.rb +42 -0
  198. data/lib/openlanes/evals/verdict.rb +18 -0
  199. data/lib/openlanes/evals.rb +56 -0
  200. data/lib/openlanes/execution/checks.rb +73 -0
  201. data/lib/openlanes/execution/child.rb +228 -0
  202. data/lib/openlanes/execution/clock.rb +121 -0
  203. data/lib/openlanes/execution/control.rb +194 -0
  204. data/lib/openlanes/execution/executor.rb +849 -0
  205. data/lib/openlanes/execution/prompt.rb +455 -0
  206. data/lib/openlanes/execution/transcript.rb +531 -0
  207. data/lib/openlanes/execution.rb +19 -0
  208. data/lib/openlanes/launcher.rb +69 -0
  209. data/lib/openlanes/lifecycle/adoption.rb +197 -0
  210. data/lib/openlanes/lifecycle/brief.rb +288 -0
  211. data/lib/openlanes/lifecycle/completion.rb +58 -0
  212. data/lib/openlanes/lifecycle/creator.rb +126 -0
  213. data/lib/openlanes/lifecycle/lanes.rb +74 -0
  214. data/lib/openlanes/lifecycle/resync.rb +428 -0
  215. data/lib/openlanes/lifecycle/unblocker.rb +236 -0
  216. data/lib/openlanes/lifecycle.rb +28 -0
  217. data/lib/openlanes/linear/api.rb +224 -0
  218. data/lib/openlanes/linear/attribution.rb +185 -0
  219. data/lib/openlanes/linear/fuzzy.rb +68 -0
  220. data/lib/openlanes/linear/import.rb +314 -0
  221. data/lib/openlanes/linear/issue.rb +187 -0
  222. data/lib/openlanes/linear/mapping.rb +116 -0
  223. data/lib/openlanes/linear/push.rb +197 -0
  224. data/lib/openlanes/linear/survey.rb +174 -0
  225. data/lib/openlanes/linear/unit.rb +274 -0
  226. data/lib/openlanes/linear.rb +41 -0
  227. data/lib/openlanes/live/claims.rb +71 -0
  228. data/lib/openlanes/live/command.rb +122 -0
  229. data/lib/openlanes/live/commands.rb +505 -0
  230. data/lib/openlanes/live/keys.rb +93 -0
  231. data/lib/openlanes/live/memory_store.rb +265 -0
  232. data/lib/openlanes/live/meter.rb +51 -0
  233. data/lib/openlanes/live/node.rb +88 -0
  234. data/lib/openlanes/live/publisher.rb +179 -0
  235. data/lib/openlanes/live/repo.rb +60 -0
  236. data/lib/openlanes/live/run_record.rb +133 -0
  237. data/lib/openlanes/live/run_state.rb +101 -0
  238. data/lib/openlanes/live/session.rb +107 -0
  239. data/lib/openlanes/live/snapshot.rb +322 -0
  240. data/lib/openlanes/live/stations.rb +67 -0
  241. data/lib/openlanes/live/store.rb +277 -0
  242. data/lib/openlanes/live.rb +109 -0
  243. data/lib/openlanes/plans/dev_work.rb +56 -0
  244. data/lib/openlanes/plans/feature.rb +131 -0
  245. data/lib/openlanes/plans/index.rb +208 -0
  246. data/lib/openlanes/plans/ledger.rb +255 -0
  247. data/lib/openlanes/plans/mailbox.rb +164 -0
  248. data/lib/openlanes/plans/ordinal.rb +92 -0
  249. data/lib/openlanes/plans/plan_state.rb +291 -0
  250. data/lib/openlanes/plans/pull_request.rb +29 -0
  251. data/lib/openlanes/plans/pull_requests.rb +229 -0
  252. data/lib/openlanes/plans/spec.rb +213 -0
  253. data/lib/openlanes/plans/state_machine.rb +433 -0
  254. data/lib/openlanes/plans/status.rb +365 -0
  255. data/lib/openlanes/plans/subject.rb +133 -0
  256. data/lib/openlanes/plans/tree.rb +79 -0
  257. data/lib/openlanes/plans.rb +39 -0
  258. data/lib/openlanes/presentation/diagram.rb +149 -0
  259. data/lib/openlanes/presentation/documentation.rb +438 -0
  260. data/lib/openlanes/presentation/reporter.rb +181 -0
  261. data/lib/openlanes/presentation/viewer.rb +62 -0
  262. data/lib/openlanes/presentation.rb +23 -0
  263. data/lib/openlanes/skills/installer.rb +68 -0
  264. data/lib/openlanes/skills/skill.rb +60 -0
  265. data/lib/openlanes/skills.rb +25 -0
  266. data/lib/openlanes/support/config.rb +217 -0
  267. data/lib/openlanes/support/frontmatter.rb +38 -0
  268. data/lib/openlanes/support/markdown.rb +56 -0
  269. data/lib/openlanes/support/project.rb +79 -0
  270. data/lib/openlanes/support/ui.rb +671 -0
  271. data/lib/openlanes/vcs/github.rb +171 -0
  272. data/lib/openlanes/vcs/publisher.rb +221 -0
  273. data/lib/openlanes/vcs/worktree.rb +248 -0
  274. data/lib/openlanes/vcs.rb +19 -0
  275. data/lib/openlanes/version.rb +10 -0
  276. data/lib/openlanes/web/app.rb +176 -0
  277. data/lib/openlanes/web/context.rb +66 -0
  278. data/lib/openlanes/web/demo.rb +169 -0
  279. data/lib/openlanes/web/demo_board.rb +286 -0
  280. data/lib/openlanes/web/events.rb +104 -0
  281. data/lib/openlanes/web/launcher.rb +143 -0
  282. data/lib/openlanes/web/server.rb +77 -0
  283. data/lib/openlanes/web/stores.rb +36 -0
  284. data/lib/openlanes/web.rb +92 -0
  285. data/lib/openlanes.rb +151 -0
  286. data/openlanes.gemspec +87 -0
  287. data/schemas/plan-state.schema.json +101 -0
  288. data/skills/openlanes/SKILL.md +48 -0
  289. data/skills/openlanes-documents/SKILL.md +61 -0
  290. data/skills/openlanes-documents/references/blocked-template.md +49 -0
  291. data/skills/openlanes-documents/references/closing-templates.md +59 -0
  292. data/skills/openlanes-documents/references/plan-template.md +61 -0
  293. data/skills/openlanes-documents/references/retroactive-spec.md +43 -0
  294. data/skills/openlanes-documents/references/spec-template.md +45 -0
  295. data/skills/openlanes-run/SKILL.md +90 -0
  296. data/skills/openlanes-setup/SKILL.md +64 -0
  297. data/skills/openlanes-spec/SKILL.md +90 -0
  298. data/skills/openlanes-status/SKILL.md +32 -0
  299. data/skills/openlanes-sync/SKILL.md +22 -0
  300. data/web/dist/assets/apl-B4CMkyY2.js +2 -0
  301. data/web/dist/assets/asciiarmor-Df11BRmG.js +2 -0
  302. data/web/dist/assets/asn1-EdZsLKOL.js +2 -0
  303. data/web/dist/assets/asterisk-B-8jnY81.js +2 -0
  304. data/web/dist/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff +0 -0
  305. data/web/dist/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2 +0 -0
  306. data/web/dist/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2 +0 -0
  307. data/web/dist/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff +0 -0
  308. data/web/dist/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2 +0 -0
  309. data/web/dist/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff +0 -0
  310. data/web/dist/assets/brainfuck-C4LP7Hcl.js +2 -0
  311. data/web/dist/assets/clike-B9uivgTg.js +2 -0
  312. data/web/dist/assets/clojure-BMjYHr_A.js +2 -0
  313. data/web/dist/assets/cmake-BQqOBYOt.js +2 -0
  314. data/web/dist/assets/cobol-CWcv1MsR.js +2 -0
  315. data/web/dist/assets/coffeescript-S37ZYGWr.js +2 -0
  316. data/web/dist/assets/commonlisp-DBKNyK5s.js +2 -0
  317. data/web/dist/assets/crystal-SjHAIU92.js +2 -0
  318. data/web/dist/assets/css-BnMrqG3P.js +2 -0
  319. data/web/dist/assets/cypher-C_CwsFkJ.js +2 -0
  320. data/web/dist/assets/d-pRatUO7H.js +2 -0
  321. data/web/dist/assets/diff-DbItnlRl.js +2 -0
  322. data/web/dist/assets/dockerfile-BKs6k2Af.js +2 -0
  323. data/web/dist/assets/dtd-DF_7sFjM.js +2 -0
  324. data/web/dist/assets/dylan-DwRh75JA.js +2 -0
  325. data/web/dist/assets/ebnf-CDyGwa7X.js +2 -0
  326. data/web/dist/assets/ecl-Cabwm37j.js +2 -0
  327. data/web/dist/assets/eiffel-CnydiIhH.js +2 -0
  328. data/web/dist/assets/elm-vLlmbW-K.js +2 -0
  329. data/web/dist/assets/erlang-BNw1qcRV.js +2 -0
  330. data/web/dist/assets/factor-kuTfRLto.js +2 -0
  331. data/web/dist/assets/favicon-C8pAuqqr.png +0 -0
  332. data/web/dist/assets/fcl-Kvtd6kyn.js +2 -0
  333. data/web/dist/assets/forth-Ffai-XNe.js +2 -0
  334. data/web/dist/assets/fortran-DYz_wnZ1.js +2 -0
  335. data/web/dist/assets/gas-Bneqetm1.js +2 -0
  336. data/web/dist/assets/gherkin-heZmZLOM.js +2 -0
  337. data/web/dist/assets/groovy-D9Dt4D0W.js +2 -0
  338. data/web/dist/assets/haskell-Cw1EW3IL.js +2 -0
  339. data/web/dist/assets/haxe-H-WmDvRZ.js +2 -0
  340. data/web/dist/assets/http-DBlCnlav.js +2 -0
  341. data/web/dist/assets/idl-BEugSyMb.js +2 -0
  342. data/web/dist/assets/index-2xPC-eHt.js +2 -0
  343. data/web/dist/assets/index-8dNhRmiO.js +8 -0
  344. data/web/dist/assets/index-B7-O9ujQ.js +2 -0
  345. data/web/dist/assets/index-BdR34cXC.js +2 -0
  346. data/web/dist/assets/index-Bp7W-ZTq.js +2 -0
  347. data/web/dist/assets/index-Byyxbh_z.js +4 -0
  348. data/web/dist/assets/index-C0VmkrO-.js +2 -0
  349. data/web/dist/assets/index-CI74IkWP.js +198 -0
  350. data/web/dist/assets/index-CYxcbpRM.js +3 -0
  351. data/web/dist/assets/index-D0rmJN3h.js +2 -0
  352. data/web/dist/assets/index-DB4QwuYn.js +2 -0
  353. data/web/dist/assets/index-DDI7zoAS.js +2 -0
  354. data/web/dist/assets/index-DGLUuEXi.js +2 -0
  355. data/web/dist/assets/index-OR-odsl9.js +2 -0
  356. data/web/dist/assets/index-P3vSkiU-.js +2 -0
  357. data/web/dist/assets/index-a4EHR-u4.css +1 -0
  358. data/web/dist/assets/index-mRV4XhJZ.js +2 -0
  359. data/web/dist/assets/index-popk9wbW.js +2 -0
  360. data/web/dist/assets/index-uM88Njdj.js +2 -0
  361. data/web/dist/assets/javascript-iXu5QeM3.js +2 -0
  362. data/web/dist/assets/julia-DuME0IfC.js +2 -0
  363. data/web/dist/assets/livescript-BwQOo05w.js +2 -0
  364. data/web/dist/assets/logo-on-dark-DI9gCdN4.png +0 -0
  365. data/web/dist/assets/logo-on-light-BciwqxcJ.png +0 -0
  366. data/web/dist/assets/lua-VAEuO923.js +2 -0
  367. data/web/dist/assets/mathematica-DTrFuWx2.js +2 -0
  368. data/web/dist/assets/mbox-CNhZ1qSd.js +2 -0
  369. data/web/dist/assets/mirc-CjQqDB4T.js +2 -0
  370. data/web/dist/assets/mllike-CXdrOF99.js +2 -0
  371. data/web/dist/assets/modelica-Dc1JOy9r.js +2 -0
  372. data/web/dist/assets/mscgen-BA5vi2Kp.js +2 -0
  373. data/web/dist/assets/mumps-BT43cFF4.js +2 -0
  374. data/web/dist/assets/nginx-DdIZxoE0.js +2 -0
  375. data/web/dist/assets/nsis-LY0VT_u5.js +2 -0
  376. data/web/dist/assets/ntriples-BfvgReVJ.js +2 -0
  377. data/web/dist/assets/octave-Ck1zUtKM.js +2 -0
  378. data/web/dist/assets/overpass-cyrillic-400-normal-CZsFKZCk.woff +0 -0
  379. data/web/dist/assets/overpass-cyrillic-400-normal-tXDxWGRy.woff2 +0 -0
  380. data/web/dist/assets/overpass-cyrillic-600-normal-B-hc8bdn.woff2 +0 -0
  381. data/web/dist/assets/overpass-cyrillic-600-normal-CXB2Mrig.woff +0 -0
  382. data/web/dist/assets/overpass-cyrillic-800-normal-CP6RWG8X.woff2 +0 -0
  383. data/web/dist/assets/overpass-cyrillic-800-normal-PJW4A9xW.woff +0 -0
  384. data/web/dist/assets/overpass-cyrillic-ext-400-normal-AKUz2ZI5.woff2 +0 -0
  385. data/web/dist/assets/overpass-cyrillic-ext-400-normal-C2ZjKngx.woff +0 -0
  386. data/web/dist/assets/overpass-cyrillic-ext-600-normal-CW4Fknsm.woff2 +0 -0
  387. data/web/dist/assets/overpass-cyrillic-ext-600-normal-Zx-mtRSD.woff +0 -0
  388. data/web/dist/assets/overpass-cyrillic-ext-800-normal-CIth-cA7.woff2 +0 -0
  389. data/web/dist/assets/overpass-cyrillic-ext-800-normal-hx3cL3ZN.woff +0 -0
  390. data/web/dist/assets/overpass-latin-400-normal-BpeLJ0bs.woff2 +0 -0
  391. data/web/dist/assets/overpass-latin-400-normal-c_C8zulu.woff +0 -0
  392. data/web/dist/assets/overpass-latin-600-normal-25RhTNCi.woff2 +0 -0
  393. data/web/dist/assets/overpass-latin-600-normal-DhYQrzaY.woff +0 -0
  394. data/web/dist/assets/overpass-latin-800-normal-Bzx_XP5l.woff2 +0 -0
  395. data/web/dist/assets/overpass-latin-800-normal-D6-q4f0l.woff +0 -0
  396. data/web/dist/assets/overpass-latin-ext-400-normal-BIkXRwl6.woff2 +0 -0
  397. data/web/dist/assets/overpass-latin-ext-400-normal-DUq_h-_z.woff +0 -0
  398. data/web/dist/assets/overpass-latin-ext-600-normal-Cyj4Nio0.woff2 +0 -0
  399. data/web/dist/assets/overpass-latin-ext-600-normal-DQKKMGzp.woff +0 -0
  400. data/web/dist/assets/overpass-latin-ext-800-normal-D6WKWGNs.woff +0 -0
  401. data/web/dist/assets/overpass-latin-ext-800-normal-DZ60AB77.woff2 +0 -0
  402. data/web/dist/assets/overpass-mono-cyrillic-400-normal-B144qALP.woff2 +0 -0
  403. data/web/dist/assets/overpass-mono-cyrillic-400-normal-XK9_jwT8.woff +0 -0
  404. data/web/dist/assets/overpass-mono-cyrillic-ext-400-normal-Dgejvo4A.woff2 +0 -0
  405. data/web/dist/assets/overpass-mono-cyrillic-ext-400-normal-DgxwtUZy.woff +0 -0
  406. data/web/dist/assets/overpass-mono-latin-400-normal-DqAOLzCO.woff +0 -0
  407. data/web/dist/assets/overpass-mono-latin-400-normal-VINZG6Js.woff2 +0 -0
  408. data/web/dist/assets/overpass-mono-latin-ext-400-normal-5YIw-E8g.woff +0 -0
  409. data/web/dist/assets/overpass-mono-latin-ext-400-normal-DBdJzBs_.woff2 +0 -0
  410. data/web/dist/assets/overpass-mono-vietnamese-400-normal-DrLp_cHj.woff +0 -0
  411. data/web/dist/assets/overpass-mono-vietnamese-400-normal-jmOeL0rj.woff2 +0 -0
  412. data/web/dist/assets/overpass-vietnamese-400-normal-BKRCEiXy.woff2 +0 -0
  413. data/web/dist/assets/overpass-vietnamese-400-normal-CCWAWVG7.woff +0 -0
  414. data/web/dist/assets/overpass-vietnamese-600-normal-CjS-4vQf.woff2 +0 -0
  415. data/web/dist/assets/overpass-vietnamese-600-normal-DlMMlPfM.woff +0 -0
  416. data/web/dist/assets/overpass-vietnamese-800-normal-BB8K9-Vo.woff2 +0 -0
  417. data/web/dist/assets/overpass-vietnamese-800-normal-DZUygvj_.woff +0 -0
  418. data/web/dist/assets/oz-BzwKVEFT.js +2 -0
  419. data/web/dist/assets/pascal--L3eBynH.js +2 -0
  420. data/web/dist/assets/perl-CdXCOZ3F.js +2 -0
  421. data/web/dist/assets/pig-CevX1Tat.js +2 -0
  422. data/web/dist/assets/powershell-CFHJl5sT.js +2 -0
  423. data/web/dist/assets/properties-C78fOPTZ.js +2 -0
  424. data/web/dist/assets/protobuf-ChK-085T.js +2 -0
  425. data/web/dist/assets/pug-DeIclll2.js +2 -0
  426. data/web/dist/assets/puppet-DMA9R1ak.js +2 -0
  427. data/web/dist/assets/python-BuPzkPfP.js +2 -0
  428. data/web/dist/assets/q-pXgVlZs6.js +2 -0
  429. data/web/dist/assets/r-B6wPVr8A.js +2 -0
  430. data/web/dist/assets/rpm-CTu-6PCP.js +2 -0
  431. data/web/dist/assets/ruby-BK5aLJev.js +2 -0
  432. data/web/dist/assets/sas-B4kiWyti.js +2 -0
  433. data/web/dist/assets/scheme-C41bIUwD.js +2 -0
  434. data/web/dist/assets/shell-CjFT_Tl9.js +2 -0
  435. data/web/dist/assets/sieve-C3Gn_uJK.js +2 -0
  436. data/web/dist/assets/simple-mode-GW_nhZxv.js +2 -0
  437. data/web/dist/assets/smalltalk-CnHTOXQT.js +2 -0
  438. data/web/dist/assets/solr-DehyRSwq.js +2 -0
  439. data/web/dist/assets/sparql-DkYu6x3z.js +2 -0
  440. data/web/dist/assets/spreadsheet-BCZA_wO0.js +2 -0
  441. data/web/dist/assets/sql-D0XecflT.js +2 -0
  442. data/web/dist/assets/stex-C3f8Ysf7.js +2 -0
  443. data/web/dist/assets/stylus-B533Al4x.js +2 -0
  444. data/web/dist/assets/swift-BzpIVaGY.js +2 -0
  445. data/web/dist/assets/tcl-DVfN8rqt.js +2 -0
  446. data/web/dist/assets/textile-CnDTJFAw.js +2 -0
  447. data/web/dist/assets/tiddlywiki-DO-Gjzrf.js +2 -0
  448. data/web/dist/assets/tiki-DGYXhP31.js +2 -0
  449. data/web/dist/assets/toml-Bm5Em-hy.js +2 -0
  450. data/web/dist/assets/troff-wAsdV37c.js +2 -0
  451. data/web/dist/assets/ttcn-CfJYG6tj.js +2 -0
  452. data/web/dist/assets/ttcn-cfg-B9xdYoR4.js +2 -0
  453. data/web/dist/assets/turtle-B1tBg_DP.js +2 -0
  454. data/web/dist/assets/vb-CmGdzxic.js +2 -0
  455. data/web/dist/assets/vbscript-BuJXcnF6.js +2 -0
  456. data/web/dist/assets/velocity-D8B20fx6.js +2 -0
  457. data/web/dist/assets/verilog-C6RDOZhf.js +2 -0
  458. data/web/dist/assets/vhdl-lSbBsy5d.js +2 -0
  459. data/web/dist/assets/webidl-ZXfAyPTL.js +2 -0
  460. data/web/dist/assets/xquery-DzFWVndE.js +2 -0
  461. data/web/dist/assets/yacas-BJ4BC0dw.js +2 -0
  462. data/web/dist/assets/z80-Hz9HOZM7.js +2 -0
  463. data/web/dist/index.html +14 -0
  464. data/web/dist/vite.svg +1 -0
  465. data/web/src/api/fixtures/board.json +512 -0
  466. metadata +907 -0
metadata ADDED
@@ -0,0 +1,907 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: openlanes
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Konstantin Gredeskoul
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: aasm
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ -
17
+ - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: "0"
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ -
25
+ - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: "0"
28
+ - !ruby/object:Gem::Dependency
29
+ name: concurrent-ruby
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ -
33
+ - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ -
41
+ - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ - !ruby/object:Gem::Dependency
45
+ name: dry-cli
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ -
49
+ - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: "0"
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ -
57
+ - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ - !ruby/object:Gem::Dependency
61
+ name: dry-cli-autocomplete
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ -
65
+ - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: "0.5"
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ -
73
+ - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: "0.5"
76
+ - !ruby/object:Gem::Dependency
77
+ name: dry-cli-help
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ -
81
+ - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.5.1
84
+ -
85
+ - "<"
86
+ - !ruby/object:Gem::Version
87
+ version: "0.6"
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ -
93
+ - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.5.1
96
+ -
97
+ - "<"
98
+ - !ruby/object:Gem::Version
99
+ version: "0.6"
100
+ - !ruby/object:Gem::Dependency
101
+ name: dry-cli-ui
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ -
105
+ - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: "0.5"
108
+ type: :runtime
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ -
113
+ - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: "0.5"
116
+ - !ruby/object:Gem::Dependency
117
+ name: dry-inflector
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ -
121
+ - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ -
129
+ - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: "0"
132
+ - !ruby/object:Gem::Dependency
133
+ name: dry-monads
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ -
137
+ - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: "0"
140
+ type: :runtime
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ -
145
+ - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: "0"
148
+ - !ruby/object:Gem::Dependency
149
+ name: fuzzy-string-match
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ -
153
+ - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ type: :runtime
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ -
161
+ - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: "0"
164
+ - !ruby/object:Gem::Dependency
165
+ name: launchy
166
+ requirement: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ -
169
+ - ~>
170
+ - !ruby/object:Gem::Version
171
+ version: "3.1"
172
+ type: :runtime
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ -
177
+ - ~>
178
+ - !ruby/object:Gem::Version
179
+ version: "3.1"
180
+ - !ruby/object:Gem::Dependency
181
+ name: parallel
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ -
185
+ - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: "0"
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ -
193
+ - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: "0"
196
+ - !ruby/object:Gem::Dependency
197
+ name: pastel
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ -
201
+ - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: "0"
204
+ type: :runtime
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ -
209
+ - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: "0"
212
+ - !ruby/object:Gem::Dependency
213
+ name: puma
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ -
217
+ - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: "6.4"
220
+ type: :runtime
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ -
225
+ - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: "6.4"
228
+ - !ruby/object:Gem::Dependency
229
+ name: rack-protection
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ -
233
+ - ~>
234
+ - !ruby/object:Gem::Version
235
+ version: "4.2"
236
+ type: :runtime
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ -
241
+ - ~>
242
+ - !ruby/object:Gem::Version
243
+ version: "4.2"
244
+ - !ruby/object:Gem::Dependency
245
+ name: rackup
246
+ requirement: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ -
249
+ - ~>
250
+ - !ruby/object:Gem::Version
251
+ version: "2.1"
252
+ type: :runtime
253
+ prerelease: false
254
+ version_requirements: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ -
257
+ - ~>
258
+ - !ruby/object:Gem::Version
259
+ version: "2.1"
260
+ - !ruby/object:Gem::Dependency
261
+ name: redis-client
262
+ requirement: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ -
265
+ - ~>
266
+ - !ruby/object:Gem::Version
267
+ version: "0.31"
268
+ type: :runtime
269
+ prerelease: false
270
+ version_requirements: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ -
273
+ - ~>
274
+ - !ruby/object:Gem::Version
275
+ version: "0.31"
276
+ - !ruby/object:Gem::Dependency
277
+ name: sinatra
278
+ requirement: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ -
281
+ - ~>
282
+ - !ruby/object:Gem::Version
283
+ version: "4.2"
284
+ type: :runtime
285
+ prerelease: false
286
+ version_requirements: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ -
289
+ - ~>
290
+ - !ruby/object:Gem::Version
291
+ version: "4.2"
292
+ - !ruby/object:Gem::Dependency
293
+ name: tty-box
294
+ requirement: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ -
297
+ - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: "0"
300
+ type: :runtime
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ -
305
+ - ">="
306
+ - !ruby/object:Gem::Version
307
+ version: "0"
308
+ - !ruby/object:Gem::Dependency
309
+ name: tty-command
310
+ requirement: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ -
313
+ - ">="
314
+ - !ruby/object:Gem::Version
315
+ version: "0"
316
+ type: :runtime
317
+ prerelease: false
318
+ version_requirements: !ruby/object:Gem::Requirement
319
+ requirements:
320
+ -
321
+ - ">="
322
+ - !ruby/object:Gem::Version
323
+ version: "0"
324
+ - !ruby/object:Gem::Dependency
325
+ name: tty-cursor
326
+ requirement: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ -
329
+ - ">="
330
+ - !ruby/object:Gem::Version
331
+ version: "0"
332
+ type: :runtime
333
+ prerelease: false
334
+ version_requirements: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ -
337
+ - ">="
338
+ - !ruby/object:Gem::Version
339
+ version: "0"
340
+ - !ruby/object:Gem::Dependency
341
+ name: tty-prompt
342
+ requirement: !ruby/object:Gem::Requirement
343
+ requirements:
344
+ -
345
+ - ">="
346
+ - !ruby/object:Gem::Version
347
+ version: "0"
348
+ type: :runtime
349
+ prerelease: false
350
+ version_requirements: !ruby/object:Gem::Requirement
351
+ requirements:
352
+ -
353
+ - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: "0"
356
+ - !ruby/object:Gem::Dependency
357
+ name: tty-screen
358
+ requirement: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ -
361
+ - ">="
362
+ - !ruby/object:Gem::Version
363
+ version: "0"
364
+ type: :runtime
365
+ prerelease: false
366
+ version_requirements: !ruby/object:Gem::Requirement
367
+ requirements:
368
+ -
369
+ - ">="
370
+ - !ruby/object:Gem::Version
371
+ version: "0"
372
+ - !ruby/object:Gem::Dependency
373
+ name: unicode-display_width
374
+ requirement: !ruby/object:Gem::Requirement
375
+ requirements:
376
+ -
377
+ - ">="
378
+ - !ruby/object:Gem::Version
379
+ version: "0"
380
+ type: :runtime
381
+ prerelease: false
382
+ version_requirements: !ruby/object:Gem::Requirement
383
+ requirements:
384
+ -
385
+ - ">="
386
+ - !ruby/object:Gem::Version
387
+ version: "0"
388
+ - !ruby/object:Gem::Dependency
389
+ name: zeitwerk
390
+ requirement: !ruby/object:Gem::Requirement
391
+ requirements:
392
+ -
393
+ - ">="
394
+ - !ruby/object:Gem::Version
395
+ version: "0"
396
+ type: :runtime
397
+ prerelease: false
398
+ version_requirements: !ruby/object:Gem::Requirement
399
+ requirements:
400
+ -
401
+ - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: "0"
404
+ description: |
405
+ Keeps a project's specifications, plans and pull requests joined up, and
406
+ drives specialist agents over them in parallel. A feature's state is its
407
+ folder name under .plans, so a transition renames a directory rather than
408
+ updating a row, and nothing can claim a phase whose document is missing.
409
+ email:
410
+ - kigster@gmail.com
411
+ executables:
412
+ - depot
413
+ - lanes
414
+ - openlanes
415
+ extensions: []
416
+ extra_rdoc_files: []
417
+ files:
418
+ - agents/hansolo-reviewer.md
419
+ - agents/lando-broker.md
420
+ - agents/leah-researcher.md
421
+ - agents/luke-backend.md
422
+ - agents/palpatine-planner.md
423
+ - agents/r2d2-mechanic.md
424
+ - agents/rey-frontend.md
425
+ - agents/yoda-writer.md
426
+ - bin/factory-e2e
427
+ - bin/plan-number
428
+ - bin/setup
429
+ - evals/cases/hansolo-reviewer/review-medium.yml
430
+ - evals/cases/hansolo-reviewer/review-medium/fail/plan/plan.md
431
+ - evals/cases/hansolo-reviewer/review-medium/fail/plan/pull-requests.md
432
+ - evals/cases/hansolo-reviewer/review-medium/fail/plan/spec.md
433
+ - evals/cases/hansolo-reviewer/review-medium/fail/repo/lib/cart.rb
434
+ - evals/cases/hansolo-reviewer/review-medium/fail/repo/spec/cart_spec.rb
435
+ - evals/cases/hansolo-reviewer/review-medium/fail/run.json
436
+ - evals/cases/hansolo-reviewer/review-medium/pass/plan/plan.md
437
+ - evals/cases/hansolo-reviewer/review-medium/pass/plan/pull-requests.md
438
+ - evals/cases/hansolo-reviewer/review-medium/pass/plan/spec.md
439
+ - evals/cases/hansolo-reviewer/review-medium/pass/repo/lib/cart.rb
440
+ - evals/cases/hansolo-reviewer/review-medium/pass/repo/spec/cart_spec.rb
441
+ - evals/cases/hansolo-reviewer/review-medium/pass/run.json
442
+ - evals/cases/lando-broker/unblock-fast.yml
443
+ - evals/cases/lando-broker/unblock-fast/fail/plan/blocked.md
444
+ - evals/cases/lando-broker/unblock-fast/fail/plan/spec.md
445
+ - evals/cases/lando-broker/unblock-fast/fail/run.json
446
+ - evals/cases/lando-broker/unblock-fast/pass/plan/spec.md
447
+ - evals/cases/lando-broker/unblock-fast/pass/run.json
448
+ - evals/cases/leah-researcher/research-deep.yml
449
+ - evals/cases/leah-researcher/research-deep/fail/plan/spec.md
450
+ - evals/cases/leah-researcher/research-deep/fail/run.json
451
+ - evals/cases/leah-researcher/research-deep/pass/plan/spec.md
452
+ - evals/cases/leah-researcher/research-deep/pass/run.json
453
+ - evals/cases/leah-researcher/research-fast.yml
454
+ - evals/cases/leah-researcher/research-fast/fail/plan/spec.md
455
+ - evals/cases/leah-researcher/research-fast/fail/run.json
456
+ - evals/cases/leah-researcher/research-fast/pass/plan/spec.md
457
+ - evals/cases/leah-researcher/research-fast/pass/run.json
458
+ - evals/cases/luke-backend/build-medium.yml
459
+ - evals/cases/luke-backend/build-medium/fail/plan/plan-backend.md
460
+ - evals/cases/luke-backend/build-medium/fail/plan/plan-frontend.md
461
+ - evals/cases/luke-backend/build-medium/fail/plan/plan.md
462
+ - evals/cases/luke-backend/build-medium/fail/plan/pull-requests.md
463
+ - evals/cases/luke-backend/build-medium/fail/plan/spec.md
464
+ - evals/cases/luke-backend/build-medium/fail/repo/Gemfile
465
+ - evals/cases/luke-backend/build-medium/fail/repo/lib/cart.rb
466
+ - evals/cases/luke-backend/build-medium/fail/repo/spec/cart_spec.rb
467
+ - evals/cases/luke-backend/build-medium/fail/run.json
468
+ - evals/cases/luke-backend/build-medium/pass/plan/plan-backend.md
469
+ - evals/cases/luke-backend/build-medium/pass/plan/plan-frontend.md
470
+ - evals/cases/luke-backend/build-medium/pass/plan/plan.md
471
+ - evals/cases/luke-backend/build-medium/pass/plan/pull-requests.md
472
+ - evals/cases/luke-backend/build-medium/pass/plan/spec.md
473
+ - evals/cases/luke-backend/build-medium/pass/repo/Gemfile
474
+ - evals/cases/luke-backend/build-medium/pass/repo/lib/cart.rb
475
+ - evals/cases/luke-backend/build-medium/pass/repo/spec/cart_spec.rb
476
+ - evals/cases/luke-backend/build-medium/pass/run.json
477
+ - evals/cases/palpatine-planner/plan-deep.yml
478
+ - evals/cases/palpatine-planner/plan-deep/fail/plan/plan-backend.md
479
+ - evals/cases/palpatine-planner/plan-deep/fail/plan/plan.md
480
+ - evals/cases/palpatine-planner/plan-deep/fail/plan/spec.md
481
+ - evals/cases/palpatine-planner/plan-deep/fail/run.json
482
+ - evals/cases/palpatine-planner/plan-deep/pass/plan/plan-backend.md
483
+ - evals/cases/palpatine-planner/plan-deep/pass/plan/plan-frontend.md
484
+ - evals/cases/palpatine-planner/plan-deep/pass/plan/plan.md
485
+ - evals/cases/palpatine-planner/plan-deep/pass/plan/spec.md
486
+ - evals/cases/palpatine-planner/plan-deep/pass/run.json
487
+ - evals/cases/palpatine-planner/plan-fast.yml
488
+ - evals/cases/palpatine-planner/plan-fast/fail/plan/plan-backend.md
489
+ - evals/cases/palpatine-planner/plan-fast/fail/plan/plan-frontend.md
490
+ - evals/cases/palpatine-planner/plan-fast/fail/plan/plan.md
491
+ - evals/cases/palpatine-planner/plan-fast/fail/plan/spec.md
492
+ - evals/cases/palpatine-planner/plan-fast/fail/run.json
493
+ - evals/cases/palpatine-planner/plan-fast/pass/plan/plan-backend.md
494
+ - evals/cases/palpatine-planner/plan-fast/pass/plan/plan-frontend.md
495
+ - evals/cases/palpatine-planner/plan-fast/pass/plan/plan.md
496
+ - evals/cases/palpatine-planner/plan-fast/pass/plan/spec.md
497
+ - evals/cases/palpatine-planner/plan-fast/pass/run.json
498
+ - evals/cases/r2d2-mechanic/task-fast.yml
499
+ - evals/cases/r2d2-mechanic/task-fast/fail/plan/plan.md
500
+ - evals/cases/r2d2-mechanic/task-fast/fail/plan/pull-requests.md
501
+ - evals/cases/r2d2-mechanic/task-fast/fail/plan/spec.md
502
+ - evals/cases/r2d2-mechanic/task-fast/fail/repo/README.md
503
+ - evals/cases/r2d2-mechanic/task-fast/fail/repo/lib/greeter.rb
504
+ - evals/cases/r2d2-mechanic/task-fast/fail/repo/lib/greeter/formatter.rb
505
+ - evals/cases/r2d2-mechanic/task-fast/fail/repo/spec/greeter_spec.rb
506
+ - evals/cases/r2d2-mechanic/task-fast/fail/run.json
507
+ - evals/cases/r2d2-mechanic/task-fast/pass/plan/plan.md
508
+ - evals/cases/r2d2-mechanic/task-fast/pass/plan/pull-requests.md
509
+ - evals/cases/r2d2-mechanic/task-fast/pass/plan/spec.md
510
+ - evals/cases/r2d2-mechanic/task-fast/pass/repo/README.md
511
+ - evals/cases/r2d2-mechanic/task-fast/pass/repo/lib/greeter.rb
512
+ - evals/cases/r2d2-mechanic/task-fast/pass/repo/spec/greeter_spec.rb
513
+ - evals/cases/r2d2-mechanic/task-fast/pass/run.json
514
+ - evals/cases/r2d2-mechanic/task-medium.yml
515
+ - evals/cases/r2d2-mechanic/task-medium/fail/plan/plan.md
516
+ - evals/cases/r2d2-mechanic/task-medium/fail/plan/pull-requests.md
517
+ - evals/cases/r2d2-mechanic/task-medium/fail/plan/spec.md
518
+ - evals/cases/r2d2-mechanic/task-medium/fail/repo/Gemfile
519
+ - evals/cases/r2d2-mechanic/task-medium/fail/repo/lib/greeter.rb
520
+ - evals/cases/r2d2-mechanic/task-medium/fail/repo/spec/greeter_spec.rb
521
+ - evals/cases/r2d2-mechanic/task-medium/fail/run.json
522
+ - evals/cases/r2d2-mechanic/task-medium/pass/plan/plan.md
523
+ - evals/cases/r2d2-mechanic/task-medium/pass/plan/pull-requests.md
524
+ - evals/cases/r2d2-mechanic/task-medium/pass/plan/spec.md
525
+ - evals/cases/r2d2-mechanic/task-medium/pass/repo/Gemfile
526
+ - evals/cases/r2d2-mechanic/task-medium/pass/repo/lib/greeter.rb
527
+ - evals/cases/r2d2-mechanic/task-medium/pass/repo/spec/greeter_spec.rb
528
+ - evals/cases/r2d2-mechanic/task-medium/pass/run.json
529
+ - evals/cases/rey-frontend/ui-medium.yml
530
+ - evals/cases/rey-frontend/ui-medium/fail/plan/plan-frontend.md
531
+ - evals/cases/rey-frontend/ui-medium/fail/plan/plan.md
532
+ - evals/cases/rey-frontend/ui-medium/fail/plan/pull-requests.md
533
+ - evals/cases/rey-frontend/ui-medium/fail/plan/spec.md
534
+ - evals/cases/rey-frontend/ui-medium/fail/repo/lib/cart.rb
535
+ - evals/cases/rey-frontend/ui-medium/fail/repo/web/cart_badge.js
536
+ - evals/cases/rey-frontend/ui-medium/fail/repo/web/cart_badge.test.js
537
+ - evals/cases/rey-frontend/ui-medium/fail/run.json
538
+ - evals/cases/rey-frontend/ui-medium/pass/plan/plan-frontend.md
539
+ - evals/cases/rey-frontend/ui-medium/pass/plan/plan.md
540
+ - evals/cases/rey-frontend/ui-medium/pass/plan/pull-requests.md
541
+ - evals/cases/rey-frontend/ui-medium/pass/plan/spec.md
542
+ - evals/cases/rey-frontend/ui-medium/pass/repo/lib/cart.rb
543
+ - evals/cases/rey-frontend/ui-medium/pass/repo/web/cart_badge.js
544
+ - evals/cases/rey-frontend/ui-medium/pass/repo/web/cart_badge.test.js
545
+ - evals/cases/rey-frontend/ui-medium/pass/run.json
546
+ - evals/cases/yoda-writer/spec-medium.yml
547
+ - evals/cases/yoda-writer/spec-medium/fail/plan/plan.md
548
+ - evals/cases/yoda-writer/spec-medium/fail/plan/spec.md
549
+ - evals/cases/yoda-writer/spec-medium/fail/run.json
550
+ - evals/cases/yoda-writer/spec-medium/pass/plan/plan.md
551
+ - evals/cases/yoda-writer/spec-medium/pass/plan/spec.md
552
+ - evals/cases/yoda-writer/spec-medium/pass/run.json
553
+ - exe/depot
554
+ - exe/lanes
555
+ - exe/openlanes
556
+ - lib/openlanes.rb
557
+ - lib/openlanes/adapters.rb
558
+ - lib/openlanes/adapters/base.rb
559
+ - lib/openlanes/adapters/claude.rb
560
+ - lib/openlanes/adapters/codex.rb
561
+ - lib/openlanes/adapters/model.rb
562
+ - lib/openlanes/adapters/pi.rb
563
+ - lib/openlanes/adapters/stream.rb
564
+ - lib/openlanes/agents.rb
565
+ - lib/openlanes/agents/agent.rb
566
+ - lib/openlanes/agents/profile.rb
567
+ - lib/openlanes/agents/registry.rb
568
+ - lib/openlanes/agents/roster.rb
569
+ - lib/openlanes/agents/routing.rb
570
+ - lib/openlanes/cli.rb
571
+ - lib/openlanes/cli/agents/subcommands/describe.rb
572
+ - lib/openlanes/cli/agents/subcommands/list.rb
573
+ - lib/openlanes/cli/base.rb
574
+ - lib/openlanes/cli/create/create.rb
575
+ - lib/openlanes/cli/docs/docs.rb
576
+ - lib/openlanes/cli/eval/eval.rb
577
+ - lib/openlanes/cli/index/index.rb
578
+ - lib/openlanes/cli/init/init.rb
579
+ - lib/openlanes/cli/linear/linear.rb
580
+ - lib/openlanes/cli/linear/subcommands/import.rb
581
+ - lib/openlanes/cli/linear/subcommands/projects.rb
582
+ - lib/openlanes/cli/list_plans/list_plans.rb
583
+ - lib/openlanes/cli/mail/mail.rb
584
+ - lib/openlanes/cli/mail/subcommands/read.rb
585
+ - lib/openlanes/cli/mail/subcommands/send.rb
586
+ - lib/openlanes/cli/resync/subcommands/dirs.rb
587
+ - lib/openlanes/cli/resync/subcommands/prs.rb
588
+ - lib/openlanes/cli/run/run.rb
589
+ - lib/openlanes/cli/skills/subcommands/install.rb
590
+ - lib/openlanes/cli/start/start.rb
591
+ - lib/openlanes/cli/state/state.rb
592
+ - lib/openlanes/cli/state/subcommands/show.rb
593
+ - lib/openlanes/cli/state/subcommands/sign.rb
594
+ - lib/openlanes/cli/states/states.rb
595
+ - lib/openlanes/cli/unblock/unblock.rb
596
+ - lib/openlanes/cli/version/version.rb
597
+ - lib/openlanes/cli/web/web.rb
598
+ - lib/openlanes/cli/worktree/worktree.rb
599
+ - lib/openlanes/engine.rb
600
+ - lib/openlanes/engine/board.rb
601
+ - lib/openlanes/engine/dispatcher.rb
602
+ - lib/openlanes/engine/progress_log.rb
603
+ - lib/openlanes/engine/runner.rb
604
+ - lib/openlanes/engine/state_file.rb
605
+ - lib/openlanes/engine/tally.rb
606
+ - lib/openlanes/evals.rb
607
+ - lib/openlanes/evals/case.rb
608
+ - lib/openlanes/evals/changes.rb
609
+ - lib/openlanes/evals/check.rb
610
+ - lib/openlanes/evals/evidence.rb
611
+ - lib/openlanes/evals/live.rb
612
+ - lib/openlanes/evals/recording.rb
613
+ - lib/openlanes/evals/run.rb
614
+ - lib/openlanes/evals/score.rb
615
+ - lib/openlanes/evals/scorer.rb
616
+ - lib/openlanes/evals/verdict.rb
617
+ - lib/openlanes/execution.rb
618
+ - lib/openlanes/execution/checks.rb
619
+ - lib/openlanes/execution/child.rb
620
+ - lib/openlanes/execution/clock.rb
621
+ - lib/openlanes/execution/control.rb
622
+ - lib/openlanes/execution/executor.rb
623
+ - lib/openlanes/execution/prompt.rb
624
+ - lib/openlanes/execution/transcript.rb
625
+ - lib/openlanes/launcher.rb
626
+ - lib/openlanes/lifecycle.rb
627
+ - lib/openlanes/lifecycle/adoption.rb
628
+ - lib/openlanes/lifecycle/brief.rb
629
+ - lib/openlanes/lifecycle/completion.rb
630
+ - lib/openlanes/lifecycle/creator.rb
631
+ - lib/openlanes/lifecycle/lanes.rb
632
+ - lib/openlanes/lifecycle/resync.rb
633
+ - lib/openlanes/lifecycle/unblocker.rb
634
+ - lib/openlanes/linear.rb
635
+ - lib/openlanes/linear/api.rb
636
+ - lib/openlanes/linear/attribution.rb
637
+ - lib/openlanes/linear/fuzzy.rb
638
+ - lib/openlanes/linear/import.rb
639
+ - lib/openlanes/linear/issue.rb
640
+ - lib/openlanes/linear/mapping.rb
641
+ - lib/openlanes/linear/push.rb
642
+ - lib/openlanes/linear/survey.rb
643
+ - lib/openlanes/linear/unit.rb
644
+ - lib/openlanes/live.rb
645
+ - lib/openlanes/live/claims.rb
646
+ - lib/openlanes/live/command.rb
647
+ - lib/openlanes/live/commands.rb
648
+ - lib/openlanes/live/keys.rb
649
+ - lib/openlanes/live/memory_store.rb
650
+ - lib/openlanes/live/meter.rb
651
+ - lib/openlanes/live/node.rb
652
+ - lib/openlanes/live/publisher.rb
653
+ - lib/openlanes/live/repo.rb
654
+ - lib/openlanes/live/run_record.rb
655
+ - lib/openlanes/live/run_state.rb
656
+ - lib/openlanes/live/session.rb
657
+ - lib/openlanes/live/snapshot.rb
658
+ - lib/openlanes/live/stations.rb
659
+ - lib/openlanes/live/store.rb
660
+ - lib/openlanes/plans.rb
661
+ - lib/openlanes/plans/dev_work.rb
662
+ - lib/openlanes/plans/feature.rb
663
+ - lib/openlanes/plans/index.rb
664
+ - lib/openlanes/plans/ledger.rb
665
+ - lib/openlanes/plans/mailbox.rb
666
+ - lib/openlanes/plans/ordinal.rb
667
+ - lib/openlanes/plans/plan_state.rb
668
+ - lib/openlanes/plans/pull_request.rb
669
+ - lib/openlanes/plans/pull_requests.rb
670
+ - lib/openlanes/plans/spec.rb
671
+ - lib/openlanes/plans/state_machine.rb
672
+ - lib/openlanes/plans/status.rb
673
+ - lib/openlanes/plans/subject.rb
674
+ - lib/openlanes/plans/tree.rb
675
+ - lib/openlanes/presentation.rb
676
+ - lib/openlanes/presentation/diagram.rb
677
+ - lib/openlanes/presentation/documentation.rb
678
+ - lib/openlanes/presentation/reporter.rb
679
+ - lib/openlanes/presentation/viewer.rb
680
+ - lib/openlanes/skills.rb
681
+ - lib/openlanes/skills/installer.rb
682
+ - lib/openlanes/skills/skill.rb
683
+ - lib/openlanes/support/config.rb
684
+ - lib/openlanes/support/frontmatter.rb
685
+ - lib/openlanes/support/markdown.rb
686
+ - lib/openlanes/support/project.rb
687
+ - lib/openlanes/support/ui.rb
688
+ - lib/openlanes/vcs.rb
689
+ - lib/openlanes/vcs/github.rb
690
+ - lib/openlanes/vcs/publisher.rb
691
+ - lib/openlanes/vcs/worktree.rb
692
+ - lib/openlanes/version.rb
693
+ - lib/openlanes/web.rb
694
+ - lib/openlanes/web/app.rb
695
+ - lib/openlanes/web/context.rb
696
+ - lib/openlanes/web/demo.rb
697
+ - lib/openlanes/web/demo_board.rb
698
+ - lib/openlanes/web/events.rb
699
+ - lib/openlanes/web/launcher.rb
700
+ - lib/openlanes/web/server.rb
701
+ - lib/openlanes/web/stores.rb
702
+ - openlanes.gemspec
703
+ - schemas/plan-state.schema.json
704
+ - skills/openlanes-documents/SKILL.md
705
+ - skills/openlanes-documents/references/blocked-template.md
706
+ - skills/openlanes-documents/references/closing-templates.md
707
+ - skills/openlanes-documents/references/plan-template.md
708
+ - skills/openlanes-documents/references/retroactive-spec.md
709
+ - skills/openlanes-documents/references/spec-template.md
710
+ - skills/openlanes-run/SKILL.md
711
+ - skills/openlanes-setup/SKILL.md
712
+ - skills/openlanes-spec/SKILL.md
713
+ - skills/openlanes-status/SKILL.md
714
+ - skills/openlanes-sync/SKILL.md
715
+ - skills/openlanes/SKILL.md
716
+ - web/dist/assets/apl-B4CMkyY2.js
717
+ - web/dist/assets/asciiarmor-Df11BRmG.js
718
+ - web/dist/assets/asn1-EdZsLKOL.js
719
+ - web/dist/assets/asterisk-B-8jnY81.js
720
+ - web/dist/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff
721
+ - web/dist/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2
722
+ - web/dist/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2
723
+ - web/dist/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff
724
+ - web/dist/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2
725
+ - web/dist/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff
726
+ - web/dist/assets/brainfuck-C4LP7Hcl.js
727
+ - web/dist/assets/clike-B9uivgTg.js
728
+ - web/dist/assets/clojure-BMjYHr_A.js
729
+ - web/dist/assets/cmake-BQqOBYOt.js
730
+ - web/dist/assets/cobol-CWcv1MsR.js
731
+ - web/dist/assets/coffeescript-S37ZYGWr.js
732
+ - web/dist/assets/commonlisp-DBKNyK5s.js
733
+ - web/dist/assets/crystal-SjHAIU92.js
734
+ - web/dist/assets/css-BnMrqG3P.js
735
+ - web/dist/assets/cypher-C_CwsFkJ.js
736
+ - web/dist/assets/d-pRatUO7H.js
737
+ - web/dist/assets/diff-DbItnlRl.js
738
+ - web/dist/assets/dockerfile-BKs6k2Af.js
739
+ - web/dist/assets/dtd-DF_7sFjM.js
740
+ - web/dist/assets/dylan-DwRh75JA.js
741
+ - web/dist/assets/ebnf-CDyGwa7X.js
742
+ - web/dist/assets/ecl-Cabwm37j.js
743
+ - web/dist/assets/eiffel-CnydiIhH.js
744
+ - web/dist/assets/elm-vLlmbW-K.js
745
+ - web/dist/assets/erlang-BNw1qcRV.js
746
+ - web/dist/assets/factor-kuTfRLto.js
747
+ - web/dist/assets/favicon-C8pAuqqr.png
748
+ - web/dist/assets/fcl-Kvtd6kyn.js
749
+ - web/dist/assets/forth-Ffai-XNe.js
750
+ - web/dist/assets/fortran-DYz_wnZ1.js
751
+ - web/dist/assets/gas-Bneqetm1.js
752
+ - web/dist/assets/gherkin-heZmZLOM.js
753
+ - web/dist/assets/groovy-D9Dt4D0W.js
754
+ - web/dist/assets/haskell-Cw1EW3IL.js
755
+ - web/dist/assets/haxe-H-WmDvRZ.js
756
+ - web/dist/assets/http-DBlCnlav.js
757
+ - web/dist/assets/idl-BEugSyMb.js
758
+ - web/dist/assets/index-2xPC-eHt.js
759
+ - web/dist/assets/index-8dNhRmiO.js
760
+ - web/dist/assets/index-B7-O9ujQ.js
761
+ - web/dist/assets/index-BdR34cXC.js
762
+ - web/dist/assets/index-Bp7W-ZTq.js
763
+ - web/dist/assets/index-Byyxbh_z.js
764
+ - web/dist/assets/index-C0VmkrO-.js
765
+ - web/dist/assets/index-CI74IkWP.js
766
+ - web/dist/assets/index-CYxcbpRM.js
767
+ - web/dist/assets/index-D0rmJN3h.js
768
+ - web/dist/assets/index-DB4QwuYn.js
769
+ - web/dist/assets/index-DDI7zoAS.js
770
+ - web/dist/assets/index-DGLUuEXi.js
771
+ - web/dist/assets/index-OR-odsl9.js
772
+ - web/dist/assets/index-P3vSkiU-.js
773
+ - web/dist/assets/index-a4EHR-u4.css
774
+ - web/dist/assets/index-mRV4XhJZ.js
775
+ - web/dist/assets/index-popk9wbW.js
776
+ - web/dist/assets/index-uM88Njdj.js
777
+ - web/dist/assets/javascript-iXu5QeM3.js
778
+ - web/dist/assets/julia-DuME0IfC.js
779
+ - web/dist/assets/livescript-BwQOo05w.js
780
+ - web/dist/assets/logo-on-dark-DI9gCdN4.png
781
+ - web/dist/assets/logo-on-light-BciwqxcJ.png
782
+ - web/dist/assets/lua-VAEuO923.js
783
+ - web/dist/assets/mathematica-DTrFuWx2.js
784
+ - web/dist/assets/mbox-CNhZ1qSd.js
785
+ - web/dist/assets/mirc-CjQqDB4T.js
786
+ - web/dist/assets/mllike-CXdrOF99.js
787
+ - web/dist/assets/modelica-Dc1JOy9r.js
788
+ - web/dist/assets/mscgen-BA5vi2Kp.js
789
+ - web/dist/assets/mumps-BT43cFF4.js
790
+ - web/dist/assets/nginx-DdIZxoE0.js
791
+ - web/dist/assets/nsis-LY0VT_u5.js
792
+ - web/dist/assets/ntriples-BfvgReVJ.js
793
+ - web/dist/assets/octave-Ck1zUtKM.js
794
+ - web/dist/assets/overpass-cyrillic-400-normal-CZsFKZCk.woff
795
+ - web/dist/assets/overpass-cyrillic-400-normal-tXDxWGRy.woff2
796
+ - web/dist/assets/overpass-cyrillic-600-normal-B-hc8bdn.woff2
797
+ - web/dist/assets/overpass-cyrillic-600-normal-CXB2Mrig.woff
798
+ - web/dist/assets/overpass-cyrillic-800-normal-CP6RWG8X.woff2
799
+ - web/dist/assets/overpass-cyrillic-800-normal-PJW4A9xW.woff
800
+ - web/dist/assets/overpass-cyrillic-ext-400-normal-AKUz2ZI5.woff2
801
+ - web/dist/assets/overpass-cyrillic-ext-400-normal-C2ZjKngx.woff
802
+ - web/dist/assets/overpass-cyrillic-ext-600-normal-CW4Fknsm.woff2
803
+ - web/dist/assets/overpass-cyrillic-ext-600-normal-Zx-mtRSD.woff
804
+ - web/dist/assets/overpass-cyrillic-ext-800-normal-CIth-cA7.woff2
805
+ - web/dist/assets/overpass-cyrillic-ext-800-normal-hx3cL3ZN.woff
806
+ - web/dist/assets/overpass-latin-400-normal-BpeLJ0bs.woff2
807
+ - web/dist/assets/overpass-latin-400-normal-c_C8zulu.woff
808
+ - web/dist/assets/overpass-latin-600-normal-25RhTNCi.woff2
809
+ - web/dist/assets/overpass-latin-600-normal-DhYQrzaY.woff
810
+ - web/dist/assets/overpass-latin-800-normal-Bzx_XP5l.woff2
811
+ - web/dist/assets/overpass-latin-800-normal-D6-q4f0l.woff
812
+ - web/dist/assets/overpass-latin-ext-400-normal-BIkXRwl6.woff2
813
+ - web/dist/assets/overpass-latin-ext-400-normal-DUq_h-_z.woff
814
+ - web/dist/assets/overpass-latin-ext-600-normal-Cyj4Nio0.woff2
815
+ - web/dist/assets/overpass-latin-ext-600-normal-DQKKMGzp.woff
816
+ - web/dist/assets/overpass-latin-ext-800-normal-D6WKWGNs.woff
817
+ - web/dist/assets/overpass-latin-ext-800-normal-DZ60AB77.woff2
818
+ - web/dist/assets/overpass-mono-cyrillic-400-normal-B144qALP.woff2
819
+ - web/dist/assets/overpass-mono-cyrillic-400-normal-XK9_jwT8.woff
820
+ - web/dist/assets/overpass-mono-cyrillic-ext-400-normal-Dgejvo4A.woff2
821
+ - web/dist/assets/overpass-mono-cyrillic-ext-400-normal-DgxwtUZy.woff
822
+ - web/dist/assets/overpass-mono-latin-400-normal-DqAOLzCO.woff
823
+ - web/dist/assets/overpass-mono-latin-400-normal-VINZG6Js.woff2
824
+ - web/dist/assets/overpass-mono-latin-ext-400-normal-5YIw-E8g.woff
825
+ - web/dist/assets/overpass-mono-latin-ext-400-normal-DBdJzBs_.woff2
826
+ - web/dist/assets/overpass-mono-vietnamese-400-normal-DrLp_cHj.woff
827
+ - web/dist/assets/overpass-mono-vietnamese-400-normal-jmOeL0rj.woff2
828
+ - web/dist/assets/overpass-vietnamese-400-normal-BKRCEiXy.woff2
829
+ - web/dist/assets/overpass-vietnamese-400-normal-CCWAWVG7.woff
830
+ - web/dist/assets/overpass-vietnamese-600-normal-CjS-4vQf.woff2
831
+ - web/dist/assets/overpass-vietnamese-600-normal-DlMMlPfM.woff
832
+ - web/dist/assets/overpass-vietnamese-800-normal-BB8K9-Vo.woff2
833
+ - web/dist/assets/overpass-vietnamese-800-normal-DZUygvj_.woff
834
+ - web/dist/assets/oz-BzwKVEFT.js
835
+ - web/dist/assets/pascal--L3eBynH.js
836
+ - web/dist/assets/perl-CdXCOZ3F.js
837
+ - web/dist/assets/pig-CevX1Tat.js
838
+ - web/dist/assets/powershell-CFHJl5sT.js
839
+ - web/dist/assets/properties-C78fOPTZ.js
840
+ - web/dist/assets/protobuf-ChK-085T.js
841
+ - web/dist/assets/pug-DeIclll2.js
842
+ - web/dist/assets/puppet-DMA9R1ak.js
843
+ - web/dist/assets/python-BuPzkPfP.js
844
+ - web/dist/assets/q-pXgVlZs6.js
845
+ - web/dist/assets/r-B6wPVr8A.js
846
+ - web/dist/assets/rpm-CTu-6PCP.js
847
+ - web/dist/assets/ruby-BK5aLJev.js
848
+ - web/dist/assets/sas-B4kiWyti.js
849
+ - web/dist/assets/scheme-C41bIUwD.js
850
+ - web/dist/assets/shell-CjFT_Tl9.js
851
+ - web/dist/assets/sieve-C3Gn_uJK.js
852
+ - web/dist/assets/simple-mode-GW_nhZxv.js
853
+ - web/dist/assets/smalltalk-CnHTOXQT.js
854
+ - web/dist/assets/solr-DehyRSwq.js
855
+ - web/dist/assets/sparql-DkYu6x3z.js
856
+ - web/dist/assets/spreadsheet-BCZA_wO0.js
857
+ - web/dist/assets/sql-D0XecflT.js
858
+ - web/dist/assets/stex-C3f8Ysf7.js
859
+ - web/dist/assets/stylus-B533Al4x.js
860
+ - web/dist/assets/swift-BzpIVaGY.js
861
+ - web/dist/assets/tcl-DVfN8rqt.js
862
+ - web/dist/assets/textile-CnDTJFAw.js
863
+ - web/dist/assets/tiddlywiki-DO-Gjzrf.js
864
+ - web/dist/assets/tiki-DGYXhP31.js
865
+ - web/dist/assets/toml-Bm5Em-hy.js
866
+ - web/dist/assets/troff-wAsdV37c.js
867
+ - web/dist/assets/ttcn-CfJYG6tj.js
868
+ - web/dist/assets/ttcn-cfg-B9xdYoR4.js
869
+ - web/dist/assets/turtle-B1tBg_DP.js
870
+ - web/dist/assets/vb-CmGdzxic.js
871
+ - web/dist/assets/vbscript-BuJXcnF6.js
872
+ - web/dist/assets/velocity-D8B20fx6.js
873
+ - web/dist/assets/verilog-C6RDOZhf.js
874
+ - web/dist/assets/vhdl-lSbBsy5d.js
875
+ - web/dist/assets/webidl-ZXfAyPTL.js
876
+ - web/dist/assets/xquery-DzFWVndE.js
877
+ - web/dist/assets/yacas-BJ4BC0dw.js
878
+ - web/dist/assets/z80-Hz9HOZM7.js
879
+ - web/dist/index.html
880
+ - web/dist/vite.svg
881
+ - web/src/api/fixtures/board.json
882
+ homepage: "https://github.com/kigster/openlanes"
883
+ licenses: []
884
+ metadata:
885
+ homepage_uri: "https://github.com/kigster/openlanes"
886
+ source_code_uri: "https://github.com/kigster/openlanes"
887
+ rubygems_mfa_required: "true"
888
+ rdoc_options: []
889
+ require_paths:
890
+ - lib
891
+ required_ruby_version: !ruby/object:Gem::Requirement
892
+ requirements:
893
+ -
894
+ - ">="
895
+ - !ruby/object:Gem::Version
896
+ version: "3"
897
+ required_rubygems_version: !ruby/object:Gem::Requirement
898
+ requirements:
899
+ -
900
+ - ">="
901
+ - !ruby/object:Gem::Version
902
+ version: "0"
903
+ requirements: []
904
+ rubygems_version: 4.1.0.beta2
905
+ specification_version: 4
906
+ summary: "Agentic specification-driven development: spec, plan, build, review"
907
+ test_files: []