@openrig/cli 0.4.7 → 0.5.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 (463) hide show
  1. package/daemon/assets/claude-statusline-context.cjs +40 -8
  2. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +0 -0
  3. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +120 -0
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  6. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
  7. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -0
  8. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +50 -57
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +84 -19
  10. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +2 -0
  11. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +2 -1
  12. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +1 -0
  13. package/daemon/dist/adapters/claude-code-adapter.d.ts +36 -9
  14. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  15. package/daemon/dist/adapters/claude-code-adapter.js +216 -49
  16. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  17. package/daemon/dist/adapters/claude-resume.d.ts +1 -1
  18. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  19. package/daemon/dist/adapters/claude-resume.js +8 -2
  20. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  21. package/daemon/dist/adapters/codex-resume.d.ts +1 -1
  22. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  23. package/daemon/dist/adapters/codex-resume.js +4 -2
  24. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  25. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +12 -0
  26. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  27. package/daemon/dist/adapters/codex-runtime-adapter.js +34 -7
  28. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  29. package/daemon/dist/adapters/pi-resume.d.ts +1 -1
  30. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  31. package/daemon/dist/adapters/pi-resume.js +7 -2
  32. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  33. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  34. package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
  35. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  36. package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
  37. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
  38. package/daemon/dist/adapters/yolo-mode.js +49 -0
  39. package/daemon/dist/adapters/yolo-mode.js.map +1 -0
  40. package/daemon/dist/build-info.js +3 -3
  41. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
  42. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
  43. package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
  44. package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
  45. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
  46. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
  47. package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
  48. package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
  49. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
  50. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
  51. package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
  52. package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
  53. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
  54. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
  55. package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
  56. package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
  57. package/daemon/dist/domain/agent-activity-store.d.ts +1 -0
  58. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  59. package/daemon/dist/domain/agent-activity-store.js +2 -2
  60. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  61. package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
  62. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
  63. package/daemon/dist/domain/builtin-policy-reference.js +58 -0
  64. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
  65. package/daemon/dist/domain/claude-activity-hooks.d.ts +33 -0
  66. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -0
  67. package/daemon/dist/domain/claude-activity-hooks.js +60 -0
  68. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -0
  69. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +30 -0
  70. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -1
  71. package/daemon/dist/domain/context-packs/bundle-assembler.js +31 -1
  72. package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -1
  73. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +69 -14
  74. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  75. package/daemon/dist/domain/context-packs/context-pack-library-service.js +263 -48
  76. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  77. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +2 -2
  78. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  79. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  80. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  81. package/daemon/dist/domain/context-packs/manifest-parser.js +11 -0
  82. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  83. package/daemon/dist/domain/context-packs/ref-safety.d.ts +11 -0
  84. package/daemon/dist/domain/context-packs/ref-safety.d.ts.map +1 -0
  85. package/daemon/dist/domain/context-packs/ref-safety.js +46 -0
  86. package/daemon/dist/domain/context-packs/ref-safety.js.map +1 -0
  87. package/daemon/dist/domain/context-packs/token-estimate.d.ts +3 -0
  88. package/daemon/dist/domain/context-packs/token-estimate.d.ts.map +1 -0
  89. package/daemon/dist/domain/context-packs/token-estimate.js +5 -0
  90. package/daemon/dist/domain/context-packs/token-estimate.js.map +1 -0
  91. package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
  92. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  93. package/daemon/dist/domain/native-resume-probe.js +11 -4
  94. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  95. package/daemon/dist/domain/node-inventory.js +2 -2
  96. package/daemon/dist/domain/node-inventory.js.map +1 -1
  97. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
  98. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
  99. package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
  100. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
  101. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
  102. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
  103. package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
  104. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
  105. package/daemon/dist/domain/plugin-vendor-service.d.ts +14 -0
  106. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  107. package/daemon/dist/domain/plugin-vendor-service.js +26 -2
  108. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  109. package/daemon/dist/domain/provider/claude-usage-reader.d.ts +44 -0
  110. package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -0
  111. package/daemon/dist/domain/provider/claude-usage-reader.js +112 -0
  112. package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -0
  113. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +18 -0
  114. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -0
  115. package/daemon/dist/domain/provider/codex-auth-reader.js +64 -0
  116. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -0
  117. package/daemon/dist/domain/provider/host-usage-rollup.d.ts +51 -0
  118. package/daemon/dist/domain/provider/host-usage-rollup.d.ts.map +1 -0
  119. package/daemon/dist/domain/provider/host-usage-rollup.js +162 -0
  120. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -0
  121. package/daemon/dist/domain/provider/provider-collect.d.ts +22 -0
  122. package/daemon/dist/domain/provider/provider-collect.d.ts.map +1 -0
  123. package/daemon/dist/domain/provider/provider-collect.js +74 -0
  124. package/daemon/dist/domain/provider/provider-collect.js.map +1 -0
  125. package/daemon/dist/domain/provider/provider-policy.d.ts +38 -0
  126. package/daemon/dist/domain/provider/provider-policy.d.ts.map +1 -0
  127. package/daemon/dist/domain/provider/provider-policy.js +76 -0
  128. package/daemon/dist/domain/provider/provider-policy.js.map +1 -0
  129. package/daemon/dist/domain/provider/provider-read-model.d.ts +28 -0
  130. package/daemon/dist/domain/provider/provider-read-model.d.ts.map +1 -0
  131. package/daemon/dist/domain/provider/provider-read-model.js +68 -0
  132. package/daemon/dist/domain/provider/provider-read-model.js.map +1 -0
  133. package/daemon/dist/domain/provider/provider-service-impl.d.ts +26 -0
  134. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -0
  135. package/daemon/dist/domain/provider/provider-service-impl.js +83 -0
  136. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -0
  137. package/daemon/dist/domain/provider/provider-service.d.ts +33 -0
  138. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -0
  139. package/daemon/dist/domain/provider/provider-service.js +6 -0
  140. package/daemon/dist/domain/provider/provider-service.js.map +1 -0
  141. package/daemon/dist/domain/provider/provider-signals.d.ts +76 -0
  142. package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -0
  143. package/daemon/dist/domain/provider/provider-signals.js +144 -0
  144. package/daemon/dist/domain/provider/provider-signals.js.map +1 -0
  145. package/daemon/dist/domain/provider/provider-types.d.ts +101 -0
  146. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -0
  147. package/daemon/dist/domain/provider/provider-types.js +7 -0
  148. package/daemon/dist/domain/provider/provider-types.js.map +1 -0
  149. package/daemon/dist/domain/provider/reactive-tap.d.ts +29 -0
  150. package/daemon/dist/domain/provider/reactive-tap.d.ts.map +1 -0
  151. package/daemon/dist/domain/provider/reactive-tap.js +80 -0
  152. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -0
  153. package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
  154. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  155. package/daemon/dist/domain/restore-orchestrator.js +90 -6
  156. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  157. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  158. package/daemon/dist/domain/rig-expansion-service.js +10 -1
  159. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  160. package/daemon/dist/domain/rig-repository.d.ts +45 -0
  161. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  162. package/daemon/dist/domain/rig-repository.js +75 -1
  163. package/daemon/dist/domain/rig-repository.js.map +1 -1
  164. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  165. package/daemon/dist/domain/rigspec-codec.js +6 -0
  166. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  167. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  168. package/daemon/dist/domain/rigspec-exporter.js +8 -0
  169. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  170. package/daemon/dist/domain/rigspec-instantiator.d.ts +25 -24
  171. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  172. package/daemon/dist/domain/rigspec-instantiator.js +190 -69
  173. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  174. package/daemon/dist/domain/rigspec-preflight.d.ts +22 -0
  175. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  176. package/daemon/dist/domain/rigspec-preflight.js +76 -0
  177. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  178. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  179. package/daemon/dist/domain/rigspec-schema.js +25 -0
  180. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  181. package/daemon/dist/domain/runtime-adapter.d.ts +7 -11
  182. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  183. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  184. package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts +14 -0
  185. package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts.map +1 -0
  186. package/daemon/dist/domain/scope/attestation-lineage.generated.js +26 -0
  187. package/daemon/dist/domain/scope/attestation-lineage.generated.js.map +1 -0
  188. package/daemon/dist/domain/scope/scope-approve.d.ts +13 -0
  189. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  190. package/daemon/dist/domain/scope/scope-approve.js +50 -10
  191. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  192. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  193. package/daemon/dist/domain/seat-handover-service.js +7 -1
  194. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  195. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  196. package/daemon/dist/domain/startup-validation.js +18 -54
  197. package/daemon/dist/domain/startup-validation.js.map +1 -1
  198. package/daemon/dist/domain/stream-store.d.ts +4 -0
  199. package/daemon/dist/domain/stream-store.d.ts.map +1 -1
  200. package/daemon/dist/domain/stream-store.js +15 -2
  201. package/daemon/dist/domain/stream-store.js.map +1 -1
  202. package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
  203. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  204. package/daemon/dist/domain/successor-session-launcher.js +2 -0
  205. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  206. package/daemon/dist/domain/types.d.ts +19 -9
  207. package/daemon/dist/domain/types.d.ts.map +1 -1
  208. package/daemon/dist/domain/types.js.map +1 -1
  209. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +1 -1
  210. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  211. package/daemon/dist/routes/agent-images.js +2 -0
  212. package/daemon/dist/routes/agent-images.js.map +1 -1
  213. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  214. package/daemon/dist/routes/context-packs.js +157 -75
  215. package/daemon/dist/routes/context-packs.js.map +1 -1
  216. package/daemon/dist/routes/provider.d.ts +3 -0
  217. package/daemon/dist/routes/provider.d.ts.map +1 -0
  218. package/daemon/dist/routes/provider.js +124 -0
  219. package/daemon/dist/routes/provider.js.map +1 -0
  220. package/daemon/dist/routes/rigs.js +8 -0
  221. package/daemon/dist/routes/rigs.js.map +1 -1
  222. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  223. package/daemon/dist/routes/scope-approve.js +6 -3
  224. package/daemon/dist/routes/scope-approve.js.map +1 -1
  225. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  226. package/daemon/dist/routes/scope-audit.js +4 -1
  227. package/daemon/dist/routes/scope-audit.js.map +1 -1
  228. package/daemon/dist/routes/stream.d.ts.map +1 -1
  229. package/daemon/dist/routes/stream.js +71 -1
  230. package/daemon/dist/routes/stream.js.map +1 -1
  231. package/daemon/dist/server.d.ts +3 -0
  232. package/daemon/dist/server.d.ts.map +1 -1
  233. package/daemon/dist/server.js +5 -0
  234. package/daemon/dist/server.js.map +1 -1
  235. package/daemon/dist/startup.d.ts.map +1 -1
  236. package/daemon/dist/startup.js +38 -12
  237. package/daemon/dist/startup.js.map +1 -1
  238. package/daemon/docs/reference/developing.md +39 -0
  239. package/daemon/docs/reference/rig-spec.md +19 -0
  240. package/daemon/policies/builtin/locked.policy.md +24 -0
  241. package/daemon/policies/builtin/open.policy.md +24 -0
  242. package/daemon/policies/builtin/standard.policy.md +25 -0
  243. package/daemon/policies/builtin/yolo.policy.md +20 -0
  244. package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
  245. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
  246. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
  247. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
  248. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
  249. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
  250. package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
  251. package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
  252. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  253. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
  254. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
  255. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
  256. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
  257. package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
  258. package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
  259. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
  260. package/daemon/specs/agents/shared/agent.yaml +6 -0
  261. package/daemon/specs/agents/shared/runtime/claude-activity-hooks.json +4 -0
  262. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -20
  263. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +0 -2
  264. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +1 -0
  265. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  266. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +1 -0
  267. package/dist/bin-wrapper.d.ts.map +1 -1
  268. package/dist/bin-wrapper.js +7 -0
  269. package/dist/bin-wrapper.js.map +1 -1
  270. package/dist/build-info.js +3 -3
  271. package/dist/commands/agent-image.d.ts.map +1 -1
  272. package/dist/commands/agent-image.js +2 -1
  273. package/dist/commands/agent-image.js.map +1 -1
  274. package/dist/commands/broadcast.d.ts.map +1 -1
  275. package/dist/commands/broadcast.js +37 -2
  276. package/dist/commands/broadcast.js.map +1 -1
  277. package/dist/commands/context.d.ts +2 -7
  278. package/dist/commands/context.d.ts.map +1 -1
  279. package/dist/commands/context.js +391 -213
  280. package/dist/commands/context.js.map +1 -1
  281. package/dist/commands/provider.d.ts +4 -0
  282. package/dist/commands/provider.d.ts.map +1 -0
  283. package/dist/commands/provider.js +218 -0
  284. package/dist/commands/provider.js.map +1 -0
  285. package/dist/commands/ps.d.ts +7 -0
  286. package/dist/commands/ps.d.ts.map +1 -1
  287. package/dist/commands/ps.js +34 -4
  288. package/dist/commands/ps.js.map +1 -1
  289. package/dist/commands/queue.d.ts.map +1 -1
  290. package/dist/commands/queue.js +38 -8
  291. package/dist/commands/queue.js.map +1 -1
  292. package/dist/commands/scope.d.ts.map +1 -1
  293. package/dist/commands/scope.js +48 -4
  294. package/dist/commands/scope.js.map +1 -1
  295. package/dist/commands/send.d.ts.map +1 -1
  296. package/dist/commands/send.js +70 -11
  297. package/dist/commands/send.js.map +1 -1
  298. package/dist/commands/setup.d.ts +14 -0
  299. package/dist/commands/setup.d.ts.map +1 -1
  300. package/dist/commands/setup.js +131 -8
  301. package/dist/commands/setup.js.map +1 -1
  302. package/dist/commands/stream.d.ts +1 -0
  303. package/dist/commands/stream.d.ts.map +1 -1
  304. package/dist/commands/stream.js +93 -0
  305. package/dist/commands/stream.js.map +1 -1
  306. package/dist/commands/tui.d.ts +4 -0
  307. package/dist/commands/tui.d.ts.map +1 -0
  308. package/dist/commands/tui.js +29 -0
  309. package/dist/commands/tui.js.map +1 -0
  310. package/dist/commands/walk.d.ts +19 -0
  311. package/dist/commands/walk.d.ts.map +1 -0
  312. package/dist/commands/walk.js +139 -0
  313. package/dist/commands/walk.js.map +1 -0
  314. package/dist/context-resolve.d.ts +14 -0
  315. package/dist/context-resolve.d.ts.map +1 -0
  316. package/dist/context-resolve.js +40 -0
  317. package/dist/context-resolve.js.map +1 -0
  318. package/dist/front-door.d.ts +31 -0
  319. package/dist/front-door.d.ts.map +1 -0
  320. package/dist/front-door.js +114 -0
  321. package/dist/front-door.js.map +1 -0
  322. package/dist/index.d.ts +3 -1
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +19 -6
  325. package/dist/index.js.map +1 -1
  326. package/dist/lib/scope/attestation-lineage.d.ts +14 -0
  327. package/dist/lib/scope/attestation-lineage.d.ts.map +1 -0
  328. package/dist/lib/scope/attestation-lineage.js +34 -0
  329. package/dist/lib/scope/attestation-lineage.js.map +1 -0
  330. package/package.json +4 -2
  331. package/tui/dist/daemon-client.d.ts +56 -0
  332. package/tui/dist/daemon-client.d.ts.map +1 -0
  333. package/tui/dist/daemon-client.js +99 -0
  334. package/tui/dist/daemon-client.js.map +1 -0
  335. package/tui/dist/demo-data.d.ts +3 -0
  336. package/tui/dist/demo-data.d.ts.map +1 -0
  337. package/tui/dist/demo-data.js +52 -0
  338. package/tui/dist/demo-data.js.map +1 -0
  339. package/tui/dist/detail.d.ts +34 -0
  340. package/tui/dist/detail.d.ts.map +1 -0
  341. package/tui/dist/detail.js +47 -0
  342. package/tui/dist/detail.js.map +1 -0
  343. package/tui/dist/grammar.d.ts +3 -0
  344. package/tui/dist/grammar.d.ts.map +1 -0
  345. package/tui/dist/grammar.js +66 -0
  346. package/tui/dist/grammar.js.map +1 -0
  347. package/tui/dist/hydrate.d.ts +78 -0
  348. package/tui/dist/hydrate.d.ts.map +1 -0
  349. package/tui/dist/hydrate.js +294 -0
  350. package/tui/dist/hydrate.js.map +1 -0
  351. package/tui/dist/index.d.ts +12 -0
  352. package/tui/dist/index.d.ts.map +1 -0
  353. package/tui/dist/index.js +12 -0
  354. package/tui/dist/index.js.map +1 -0
  355. package/tui/dist/input.d.ts +21 -0
  356. package/tui/dist/input.d.ts.map +1 -0
  357. package/tui/dist/input.js +128 -0
  358. package/tui/dist/input.js.map +1 -0
  359. package/tui/dist/live.d.ts +20 -0
  360. package/tui/dist/live.d.ts.map +1 -0
  361. package/tui/dist/live.js +67 -0
  362. package/tui/dist/live.js.map +1 -0
  363. package/tui/dist/main.d.ts +3 -0
  364. package/tui/dist/main.d.ts.map +1 -0
  365. package/tui/dist/main.js +184 -0
  366. package/tui/dist/main.js.map +1 -0
  367. package/tui/dist/motion.d.ts +13 -0
  368. package/tui/dist/motion.d.ts.map +1 -0
  369. package/tui/dist/motion.js +31 -0
  370. package/tui/dist/motion.js.map +1 -0
  371. package/tui/dist/navigator.d.ts +21 -0
  372. package/tui/dist/navigator.d.ts.map +1 -0
  373. package/tui/dist/navigator.js +168 -0
  374. package/tui/dist/navigator.js.map +1 -0
  375. package/tui/dist/refresh.d.ts +3 -0
  376. package/tui/dist/refresh.d.ts.map +1 -0
  377. package/tui/dist/refresh.js +9 -0
  378. package/tui/dist/refresh.js.map +1 -0
  379. package/tui/dist/render.d.ts +21 -0
  380. package/tui/dist/render.d.ts.map +1 -0
  381. package/tui/dist/render.js +807 -0
  382. package/tui/dist/render.js.map +1 -0
  383. package/tui/dist/sections.d.ts +4 -0
  384. package/tui/dist/sections.d.ts.map +1 -0
  385. package/tui/dist/sections.js +19 -0
  386. package/tui/dist/sections.js.map +1 -0
  387. package/tui/dist/socket-server.d.ts +24 -0
  388. package/tui/dist/socket-server.d.ts.map +1 -0
  389. package/tui/dist/socket-server.js +85 -0
  390. package/tui/dist/socket-server.js.map +1 -0
  391. package/tui/dist/state.d.ts +51 -0
  392. package/tui/dist/state.d.ts.map +1 -0
  393. package/tui/dist/state.js +480 -0
  394. package/tui/dist/state.js.map +1 -0
  395. package/tui/dist/stylize.d.ts +4 -0
  396. package/tui/dist/stylize.d.ts.map +1 -0
  397. package/tui/dist/stylize.js +248 -0
  398. package/tui/dist/stylize.js.map +1 -0
  399. package/tui/dist/theme.d.ts +19 -0
  400. package/tui/dist/theme.d.ts.map +1 -0
  401. package/tui/dist/theme.js +86 -0
  402. package/tui/dist/theme.js.map +1 -0
  403. package/tui/dist/topology/canvas.d.ts +43 -0
  404. package/tui/dist/topology/canvas.d.ts.map +1 -0
  405. package/tui/dist/topology/canvas.js +131 -0
  406. package/tui/dist/topology/canvas.js.map +1 -0
  407. package/tui/dist/topology/fixture.d.ts +4 -0
  408. package/tui/dist/topology/fixture.d.ts.map +1 -0
  409. package/tui/dist/topology/fixture.js +71 -0
  410. package/tui/dist/topology/fixture.js.map +1 -0
  411. package/tui/dist/topology/glyphs.d.ts +21 -0
  412. package/tui/dist/topology/glyphs.d.ts.map +1 -0
  413. package/tui/dist/topology/glyphs.js +49 -0
  414. package/tui/dist/topology/glyphs.js.map +1 -0
  415. package/tui/dist/topology/graph-types.d.ts +39 -0
  416. package/tui/dist/topology/graph-types.d.ts.map +1 -0
  417. package/tui/dist/topology/graph-types.js +2 -0
  418. package/tui/dist/topology/graph-types.js.map +1 -0
  419. package/tui/dist/topology/layout.d.ts +52 -0
  420. package/tui/dist/topology/layout.d.ts.map +1 -0
  421. package/tui/dist/topology/layout.js +118 -0
  422. package/tui/dist/topology/layout.js.map +1 -0
  423. package/tui/dist/topology/render-graph.d.ts +8 -0
  424. package/tui/dist/topology/render-graph.d.ts.map +1 -0
  425. package/tui/dist/topology/render-graph.js +20 -0
  426. package/tui/dist/topology/render-graph.js.map +1 -0
  427. package/tui/dist/topology/runtime-marks.d.ts +53 -0
  428. package/tui/dist/topology/runtime-marks.d.ts.map +1 -0
  429. package/tui/dist/topology/runtime-marks.js +185 -0
  430. package/tui/dist/topology/runtime-marks.js.map +1 -0
  431. package/tui/dist/topology/styles/braille.d.ts +5 -0
  432. package/tui/dist/topology/styles/braille.d.ts.map +1 -0
  433. package/tui/dist/topology/styles/braille.js +84 -0
  434. package/tui/dist/topology/styles/braille.js.map +1 -0
  435. package/tui/dist/topology/styles/hatchet.d.ts +41 -0
  436. package/tui/dist/topology/styles/hatchet.d.ts.map +1 -0
  437. package/tui/dist/topology/styles/hatchet.js +146 -0
  438. package/tui/dist/topology/styles/hatchet.js.map +1 -0
  439. package/tui/dist/types.d.ts +362 -0
  440. package/tui/dist/types.d.ts.map +1 -0
  441. package/tui/dist/types.js +6 -0
  442. package/tui/dist/types.js.map +1 -0
  443. package/ui/dist/assets/{index-DkNi0RT8.js → index-Dv5VaLCN.js} +135 -135
  444. package/ui/dist/index.html +1 -1
  445. package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
  446. package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
  447. package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
  448. package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
  449. package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
  450. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
  451. package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
  452. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
  453. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
  454. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -213
  455. package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
  456. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
  457. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
  458. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
  459. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
  460. package/dist/commands/context-pack.d.ts +0 -4
  461. package/dist/commands/context-pack.d.ts.map +0 -1
  462. package/dist/commands/context-pack.js +0 -357
  463. package/dist/commands/context-pack.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ /** the RuntimeMark.tsx rect list, transcribed (x, y, w, h) */
2
+ const CLAWD_BODY_RECTS = [
3
+ [3, 2, 10, 8], // body
4
+ [1, 5, 2, 3], // left arm
5
+ [13, 5, 2, 3], // right arm
6
+ [4, 10, 2, 3], // legs
7
+ [7, 10, 2, 3],
8
+ [10, 10, 2, 3],
9
+ ];
10
+ const CLAWD_EYE_RECTS = [
11
+ [5, 4, 1, 2],
12
+ [10, 4, 1, 2],
13
+ ];
14
+ /** the 16x16 pixel matrix, derived from the rect list (row-major) */
15
+ export function clawdGrid() {
16
+ const g = Array.from({ length: 16 }, () => Array.from({ length: 16 }, () => 0));
17
+ for (const [x, y, w, h] of CLAWD_BODY_RECTS)
18
+ for (let r = y; r < y + h; r++)
19
+ for (let c = x; c < x + w; c++)
20
+ g[r][c] = 1;
21
+ for (const [x, y, w, h] of CLAWD_EYE_RECTS)
22
+ for (let r = y; r < y + h; r++)
23
+ for (let c = x; c < x + w; c++)
24
+ g[r][c] = 2;
25
+ return g;
26
+ }
27
+ /** FAITHFUL form — 16 cells x 8 rows of half-blocks (▀ paints the top pixel
28
+ * with fg and the bottom with bg): the detail-pane / prototype scale. */
29
+ export function clawdFaithfulRows() {
30
+ const g = clawdGrid();
31
+ const rows = [];
32
+ for (let r = 0; r < 16; r += 2) {
33
+ const segs = [];
34
+ for (let c = 0; c < 16; c++) {
35
+ const top = g[r][c];
36
+ const bot = g[r + 1][c];
37
+ const tok = (p) => (p === 1 ? "clawd" : p === 2 ? "clawdEye" : undefined);
38
+ if (top === 0 && bot === 0)
39
+ segs.push({ text: " " });
40
+ else if (top === bot)
41
+ segs.push({ text: "█", token: tok(top) });
42
+ else if (top === 0)
43
+ segs.push({ text: "▄", token: tok(bot) });
44
+ else if (bot === 0)
45
+ segs.push({ text: "▀", token: tok(top) });
46
+ else
47
+ segs.push({ text: "▀", token: tok(top), bg: tok(bot) });
48
+ }
49
+ rows.push(segs);
50
+ }
51
+ return rows;
52
+ }
53
+ /** quadrant-block downsample: the 16x16 grid → cols x rows cells, each cell
54
+ * a 2x2 quadrant whose quadrants are majority-vote body coverage of their
55
+ * source region. PROVABLY grid-derived (guard finding 4) — the mini forms
56
+ * are OUTPUTS of this function, never hand-picked glyphs. Honest limit: the
57
+ * 1px eyes are below majority threshold at these scales and vanish — that
58
+ * fidelity fact is part of the mr7 packet, not hidden. */
59
+ const QUADRANT_CHARS = {
60
+ 0b0000: " ", 0b0001: "▗", 0b0010: "▖", 0b0011: "▄", 0b0100: "▝", 0b0101: "▐",
61
+ 0b0110: "▞", 0b0111: "▟", 0b1000: "▘", 0b1001: "▚", 0b1010: "▌", 0b1011: "▙",
62
+ 0b1100: "▀", 0b1101: "▜", 0b1110: "▛", 0b1111: "█",
63
+ };
64
+ export function clawdDownsample(cols, rows) {
65
+ const g = clawdGrid();
66
+ const cellW = 16 / cols;
67
+ const cellH = 16 / rows;
68
+ const covered = (x0, y0, x1, y1) => {
69
+ let body = 0;
70
+ let total = 0;
71
+ for (let y = Math.floor(y0); y < Math.ceil(y1); y++)
72
+ for (let x = Math.floor(x0); x < Math.ceil(x1); x++) {
73
+ total++;
74
+ if (g[y][x] !== 0)
75
+ body++;
76
+ }
77
+ return total > 0 && body * 2 >= total; // majority vote
78
+ };
79
+ const out = [];
80
+ for (let r = 0; r < rows; r++) {
81
+ const segs = [];
82
+ for (let c = 0; c < cols; c++) {
83
+ const x0 = c * cellW;
84
+ const y0 = r * cellH;
85
+ const bits = (covered(x0, y0, x0 + cellW / 2, y0 + cellH / 2) ? 0b1000 : 0) |
86
+ (covered(x0 + cellW / 2, y0, x0 + cellW, y0 + cellH / 2) ? 0b0100 : 0) |
87
+ (covered(x0, y0 + cellH / 2, x0 + cellW / 2, y0 + cellH) ? 0b0010 : 0) |
88
+ (covered(x0 + cellW / 2, y0 + cellH / 2, x0 + cellW, y0 + cellH) ? 0b0001 : 0);
89
+ const ch = QUADRANT_CHARS[bits];
90
+ segs.push(ch === " " ? { text: " " } : { text: ch, token: "clawd" });
91
+ }
92
+ out.push(segs);
93
+ }
94
+ return out;
95
+ }
96
+ /** FOUNDER ROUND-2 DESIGN (2026-08-04 via pm-lead): the row mark is a flat
97
+ * claude-terracotta BLOCK with two short dark vertical eye bars centered —
98
+ * no limbs/legs; color + face ARE the mark at 2-cell size. Exact source
99
+ * values: body #ad6755, eyes #181818 (RuntimeMark.tsx). */
100
+ export function clawdFounderMark() {
101
+ // superseded by clawdSquareMark (round-3: wide-rect center-bunch REJECTED);
102
+ // kept for the decision-record lineage only
103
+ return [
104
+ { text: "╹", token: "clawdEye", bg: "clawd" },
105
+ { text: "╹", token: "clawdEye", bg: "clawd" },
106
+ ];
107
+ }
108
+ /** PICKS-V4 clawd row mark (founder amendment, PICKS-OF-RECORD sha256-16
109
+ * 14afeb74, 2026-08-04 — a bounded refinement INSIDE the locked square-with-
110
+ * eyes direction): the eyes are literally the characters `><` — left eye `>`,
111
+ * right eye `<`, pointing INWARD, squinty (reference image-cache 102).
112
+ * Founder rationale verbatim: eyes at the far edges do not read as eyes;
113
+ * inward angle brackets make it read as a FACE. Dark #181818 eyes ON the
114
+ * #ad6755 terracotta field, unchanged. (Lineage: round-4 shipped the ▘▝
115
+ * outer-quadrant pair; superseded by this amendment.) */
116
+ export function clawdSquareMark() {
117
+ return [
118
+ { text: ">", token: "clawdEye", bg: "clawd" },
119
+ { text: "<", token: "clawdEye", bg: "clawd" },
120
+ ];
121
+ }
122
+ /** ROUND-3 codex blue-hint CANDIDATES — PICKED at picks v4 (14afeb74):
123
+ * CHEVRON-ONLY, on detail/topology surfaces only (founder delegated; pm-lead
124
+ * ruled the most restrained option). codexMark() below now ships the chevron
125
+ * form; this record keeps the presented variants for decision lineage. Each
126
+ * variant uses the OFFICIAL sampled #6867aa (token codexBlue), never a
127
+ * remembered value. */
128
+ export function codexHintVariants() {
129
+ return {
130
+ none: codexMark(),
131
+ chevron: [
132
+ { text: ">", token: "codexBlue", bold: true },
133
+ { text: "_", token: "markInk", bold: true },
134
+ ],
135
+ outline: [
136
+ { text: "▕", token: "codexBlue" },
137
+ { text: ">", token: "markInk", bold: true },
138
+ { text: "_", token: "markInk", bold: true },
139
+ { text: "▏", token: "codexBlue" },
140
+ ],
141
+ };
142
+ }
143
+ /** row-mark CANDIDATES for the mr7 pick — both are downsample outputs */
144
+ export function clawdMiniA() {
145
+ return clawdDownsample(2, 1)[0];
146
+ }
147
+ export function clawdMiniB() {
148
+ return clawdDownsample(3, 1)[0];
149
+ }
150
+ /** Codex: the `>_` prompt mark with the PICKS-V4 CHEVRON-ONLY blue hint
151
+ * (item a, 14afeb74): the `>` carries the OFFICIAL sampled #6867aa; the `_`
152
+ * stays light ink. Text stays exactly ASCII `>_` (web-identity: the SAME
153
+ * mark, not a cousin; ❯ remains vetoed). This mark renders on detail +
154
+ * topology surfaces only — the explorer carries no marks (locked). */
155
+ export function codexMark() {
156
+ return [
157
+ { text: ">", token: "codexBlue", bold: true },
158
+ { text: "_", token: "markInk", bold: true },
159
+ ];
160
+ }
161
+ /** terminal/tty runtime: dark cell + white `>_` — same family, inverted. */
162
+ export function terminalMark() {
163
+ return [
164
+ { text: ">", token: "bright", bg: "markBg", bold: true },
165
+ { text: "_", token: "bright", bg: "markBg", bold: true },
166
+ ];
167
+ }
168
+ /** the row-scale mark for a served runtime string (placeholder-safe default:
169
+ * miniA for claude until the founder pick lands — swap point, one site) */
170
+ export function runtimeMarkSegs(runtime) {
171
+ const r = (runtime ?? "").toLowerCase();
172
+ if (r.startsWith("claude"))
173
+ return clawdSquareMark(); // round-3 locked square
174
+ if (r.startsWith("codex"))
175
+ return codexMark();
176
+ if (r === "terminal" || r === "tty" || r.startsWith("external"))
177
+ return terminalMark();
178
+ // unknown runtime: honest text token, dimmed — never a fabricated mark
179
+ return [{ text: "?", token: "dim" }];
180
+ }
181
+ /** plain-text width of a mark (all marks are single-cell glyphs) */
182
+ export function markText(segs) {
183
+ return segs.map((s) => s.text).join("");
184
+ }
185
+ //# sourceMappingURL=runtime-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-marks.js","sourceRoot":"","sources":["../../src/topology/runtime-marks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { GraphCanvas } from "../canvas.js";
2
+ import type { GraphLayout } from "../layout.js";
3
+ import type { StyleContext } from "./hatchet.js";
4
+ export declare function renderBraille(layout: GraphLayout, ctx: StyleContext, width: number, tier1Fallback: boolean): GraphCanvas;
5
+ //# sourceMappingURL=braille.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"braille.d.ts","sourceRoot":"","sources":["../../../src/topology/styles/braille.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsCjD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,CAsCxH"}
@@ -0,0 +1,84 @@
1
+ // SPIKE — `--style braille`: the optional smooth end (TIER-2, modern
2
+ // terminals). Same boxed nodes as the Hatchet mainline; edges drawn at 2×4
3
+ // sub-cell resolution as braille dot runs. DEMOTED by the founder refinement
4
+ // to an optional style — the proven TIER-1 fallback IS renderHatchet (same
5
+ // layout, box-drawing edges), so degrading loses smoothness, never meaning.
6
+ import { GraphCanvas } from "../canvas.js";
7
+ import { edgeToken } from "../glyphs.js";
8
+ import { drawClipIndicator, drawContainers, drawNodeBox, renderHatchet } from "./hatchet.js";
9
+ // braille dot bits by (subCol 0-1, subRow 0-3)
10
+ const DOT_BITS = [
11
+ [0x01, 0x02, 0x04, 0x40],
12
+ [0x08, 0x10, 0x20, 0x80],
13
+ ];
14
+ class BrailleField {
15
+ cells = new Map();
16
+ setDot(px, py, token) {
17
+ const cellX = Math.floor(px / 2);
18
+ const cellY = Math.floor(py / 4);
19
+ const key = `${cellX},${cellY}`;
20
+ const bits = DOT_BITS[px % 2][py % 4];
21
+ const existing = this.cells.get(key);
22
+ this.cells.set(key, { bits: (existing?.bits ?? 0) | bits, token: existing?.token ?? token });
23
+ }
24
+ line(x1, y1, x2, y2, token) {
25
+ const steps = Math.max(Math.abs(x2 - x1), Math.abs(y2 - y1), 1);
26
+ for (let i = 0; i <= steps; i++) {
27
+ this.setDot(Math.round(x1 + ((x2 - x1) * i) / steps), Math.round(y1 + ((y2 - y1) * i) / steps), token);
28
+ }
29
+ }
30
+ blit(canvas) {
31
+ for (const [key, cell] of this.cells) {
32
+ const [x, y] = key.split(",").map(Number);
33
+ if (canvas.charAt(x, y) !== " " || canvas.isProtected(x, y))
34
+ continue; // never dot boxes/text
35
+ canvas.set(x, y, String.fromCharCode(0x2800 + cell.bits), cell.token);
36
+ }
37
+ }
38
+ }
39
+ export function renderBraille(layout, ctx, width, tier1Fallback) {
40
+ if (tier1Fallback)
41
+ return renderHatchet(layout, ctx, width); // the PROVEN fallback path
42
+ // DRAW ORDER = the hatchet semantics (pm kickback: opacity must be a CLASS
43
+ // invariant, never a draw-order artifact): (1) box-drawing edge runs first,
44
+ // (2) OPAQUE boxes clear any pass-through segment, (3) the braille field
45
+ // blits last but is protected-cell-aware, (4) arrowheads last of all.
46
+ const canvas = new GraphCanvas(width);
47
+ drawContainers(canvas, layout, ctx);
48
+ const field = new BrailleField();
49
+ const arrows = [];
50
+ for (const edge of layout.edges) {
51
+ const from = layout.byId.get(edge.source);
52
+ const to = layout.byId.get(edge.target);
53
+ if (!from || !to)
54
+ continue;
55
+ const token = edgeToken(edge.label);
56
+ const rightward = to.x > from.x;
57
+ const txCell = rightward ? to.x - 1 : to.x + to.w;
58
+ if (from.y === to.y) {
59
+ // CLEAN-BOX refinement: a straight horizontal is already straight —
60
+ // box-drawing ─ aligns mid-cell with the arrowhead (braille ⠤ sits low
61
+ // and kinks the junction); braille earns its keep on DIAGONALS only.
62
+ const [x1, x2] = rightward ? [from.x + from.w, txCell - 1] : [txCell + 1, from.x - 1];
63
+ canvas.hline(x1, x2, from.y + 1, "─", token);
64
+ }
65
+ else {
66
+ const sx = (rightward ? from.x + from.w : from.x - 1) * 2;
67
+ const sy = (from.y + 1) * 4 + 2;
68
+ const tx = txCell * 2 + (rightward ? 0 : 1);
69
+ const ty = (to.y + 1) * 4 + 2;
70
+ field.line(sx, sy, tx, ty, token);
71
+ }
72
+ arrows.push({ x: txCell, y: to.y + 1, ch: rightward ? "▸" : "◂", token });
73
+ }
74
+ for (const p of layout.placed)
75
+ drawNodeBox(canvas, p, ctx);
76
+ field.blit(canvas); // protected-aware: never dots a box cell
77
+ for (const a of arrows)
78
+ if (!canvas.isProtected(a.x, a.y))
79
+ canvas.set(a.x, a.y, a.ch, a.token, true);
80
+ drawClipIndicator(canvas, layout, width);
81
+ canvas.text(2, canvas.height + 1, "braille sub-cell edges · TIER-2 (modern terminals) · fallback = hatchet box-drawing", "dim");
82
+ return canvas;
83
+ }
84
+ //# sourceMappingURL=braille.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"braille.js","sourceRoot":"","sources":["../../../src/topology/styles/braille.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { GraphCanvas } from "../canvas.js";
2
+ import { edgeToken } from "../glyphs.js";
3
+ import type { GraphLayout, PlacedNode } from "../layout.js";
4
+ import type { Action } from "../../types.js";
5
+ export interface StyleContext {
6
+ /** host/rig names for drill actions (the SAME Action vocabulary every
7
+ * adapter dispatches — PIN-1) */
8
+ host: string;
9
+ rig: string;
10
+ /** logicalId of the selected node (accent border, like Hatchet) */
11
+ selected?: string | null;
12
+ }
13
+ export declare function drillAction(node: PlacedNode, ctx: StyleContext): Action;
14
+ export declare function drawNodeBox(canvas: GraphCanvas, p: PlacedNode, ctx: StyleContext): void;
15
+ interface Arrow {
16
+ x: number;
17
+ y: number;
18
+ ch: string;
19
+ token: ReturnType<typeof edgeToken>;
20
+ }
21
+ /** straight orthogonal connector; the arrowhead is returned so the caller can
22
+ * draw it LAST (it must survive the node boxes painting over line ends) */
23
+ type Rect = {
24
+ x: number;
25
+ y: number;
26
+ w: number;
27
+ h: number;
28
+ };
29
+ export declare function drawEdge(canvas: GraphCanvas, from: PlacedNode, to: PlacedNode, kind: string, lane?: number, obstacles?: Rect[]): Arrow;
30
+ /** R2 HIGH-1: the LOCKED containment hierarchy drawn as real container boxes
31
+ * — the rig (double border, name tab) wraps pod containers (light border,
32
+ * ▾-name tab, header hit zone → drill pod) which wrap their agent boxes.
33
+ * Containers are BACKGROUNDS (unprotected fills): edges may route across
34
+ * their interiors; agent boxes stay opaque+protected on top. */
35
+ export declare function drawContainers(canvas: GraphCanvas, layout: GraphLayout, ctx: StyleContext): void;
36
+ export declare function renderHatchet(layout: GraphLayout, ctx: StyleContext, width: number): GraphCanvas;
37
+ /** MR8 width-clip honesty: the view never quietly loses right-side nodes —
38
+ * an INDICATOR only (founder-scoped: no scroll, no rework, no cap) */
39
+ export declare function drawClipIndicator(canvas: GraphCanvas, layout: GraphLayout, width: number): void;
40
+ export {};
41
+ //# sourceMappingURL=hatchet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hatchet.d.ts","sourceRoot":"","sources":["../../../src/topology/styles/hatchet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAkB,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B;qCACiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAOvE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAmBvF;AAED,UAAU,KAAK;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CACrC;AAED;2EAC2E;AAC3E,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,SAAS,GAAE,IAAI,EAAO,GAAG,KAAK,CAmDrI;AAED;;;;gEAIgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAchG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAmBhG;AAED;sEACsE;AACtE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/F"}
@@ -0,0 +1,146 @@
1
+ // SPIKE — the MAINLINE style (founder-preferred, Hatchet reference):
2
+ // boxed nodes + straight box-drawing connector lines + arrowheads.
3
+ // Info lives INSIDE the node (name line + runtime · ctx% · pod meta line),
4
+ // status lives ON the node (border color + glyph), edge KIND is line COLOR
5
+ // (delegates=teal accent · collaborates=green ok · escalates=amber warn) —
6
+ // NO text labels on the graph (founder refinement). TIER-1 glyphs only.
7
+ import { GraphCanvas } from "../canvas.js";
8
+ import { edgeToken } from "../glyphs.js";
9
+ import { runtimeMarkSegs } from "../runtime-marks.js";
10
+ export function drillAction(node, ctx) {
11
+ const target = {
12
+ host: ctx.host,
13
+ rig: ctx.rig,
14
+ ...(node.node.data.podNamespace ? { pod: node.node.data.podNamespace } : {}),
15
+ };
16
+ return { type: "drill", resource: "agent", name: node.node.data.logicalId, target };
17
+ }
18
+ export function drawNodeBox(canvas, p, ctx) {
19
+ const selected = ctx.selected === p.node.data.logicalId;
20
+ const borderToken = selected ? "accent" : p.glyph.token;
21
+ canvas.box(p.x, p.y, p.w, p.h, borderToken);
22
+ canvas.text(p.x + 2, p.y + 1, p.glyph.glyph, p.glyph.token, true);
23
+ canvas.text(p.x + 4, p.y + 1, p.title, "bright", selected);
24
+ if (p.glyph.overlay)
25
+ canvas.text(p.x + 4 + p.title.length + 2, p.y + 1, p.glyph.overlay, "warn", true);
26
+ // S19 MR2: runtime renders as the web-family MARK + adjacent ctx%
27
+ let mx = p.x + 2;
28
+ for (const seg of runtimeMarkSegs(p.node.data.runtime)) {
29
+ canvas.text(mx, p.y + 2, seg.text, seg.token, seg.bold);
30
+ if (seg.bg)
31
+ for (let i = 0; i < seg.text.length; i++)
32
+ canvas.set(mx + i, p.y + 2, seg.text[i], seg.token, seg.bold, seg.bg);
33
+ mx += seg.text.length;
34
+ }
35
+ const ctxText = ` ${p.node.data.contextUsedPercentage == null ? "—" : `${Math.round(p.node.data.contextUsedPercentage)}%`}`;
36
+ canvas.text(mx, p.y + 2, ctxText, "dim");
37
+ // the WHOLE box is the hit surface — every row emits the same drill action
38
+ const action = drillAction(p, ctx);
39
+ for (let row = 0; row < p.h; row++)
40
+ canvas.zone(p.y + row, p.x, p.x + p.w, action);
41
+ }
42
+ export function drawEdge(canvas, from, to, kind, lane = 0, obstacles = []) {
43
+ const token = edgeToken(kind);
44
+ const sy = from.y + 1;
45
+ const ty = to.y + 1;
46
+ if (to.x > from.x + from.w) {
47
+ // rightward: out of source right edge, one corridor turn, into target left edge
48
+ const sx = from.x + from.w;
49
+ const corridor = to.x - 3 - lane * 2;
50
+ canvas.hline(sx, corridor, sy, "─", token);
51
+ if (sy !== ty) {
52
+ canvas.vline(corridor, Math.min(sy, ty), Math.max(sy, ty), "│", token);
53
+ canvas.set(corridor, sy, sy < ty ? "┐" : "┘", token);
54
+ canvas.set(corridor, ty, sy < ty ? "└" : "┌", token);
55
+ }
56
+ canvas.hline(corridor + 1, to.x - 2, ty, "─", token);
57
+ return { x: to.x - 1, y: ty, ch: "▸", token };
58
+ }
59
+ if (to.x + to.w < from.x) {
60
+ // leftward back-edge (escalation): route UNDER the boxes so it never
61
+ // crowds the delegation row — down, left along a low corridor, up into
62
+ // the target's bottom edge (the mockup's curve, box-drawn). The vertical
63
+ // legs pick columns that no OTHER box occupies (obstacle-aware).
64
+ const belowY = Math.max(...[from, to, ...obstacles].map((p) => p.y + p.h)) + 1 + lane;
65
+ const freeColumn = (box, fromRight) => {
66
+ const candidates = [];
67
+ for (let i = 2; i < box.w - 1; i++)
68
+ candidates.push(fromRight ? box.x + box.w - 1 - i : box.x + i);
69
+ for (const x of candidates) {
70
+ const blocked = obstacles.some((p) => p !== box && x >= p.x && x <= p.x + p.w - 1 && p.y + p.h > box.y + box.h && p.y <= belowY);
71
+ if (!blocked)
72
+ return x;
73
+ }
74
+ return box.x + 2;
75
+ };
76
+ const exitX = freeColumn(from, false);
77
+ const enterX = freeColumn(to, true);
78
+ canvas.vline(exitX, from.y + from.h, belowY - 1, "│", token);
79
+ canvas.set(exitX, belowY, "┘", token);
80
+ canvas.hline(enterX + 1, exitX - 1, belowY, "─", token);
81
+ canvas.set(enterX, belowY, "└", token);
82
+ canvas.vline(enterX, to.y + to.h + 1, belowY - 1, "│", token);
83
+ return { x: enterX, y: to.y + to.h, ch: "▴", token };
84
+ }
85
+ // same column: vertical connector
86
+ const x = from.x + Math.min(4, from.w - 2);
87
+ if (to.y > from.y) {
88
+ canvas.vline(x, from.y + from.h, to.y - 2, "│", token);
89
+ return { x, y: to.y - 1, ch: "▾", token };
90
+ }
91
+ canvas.vline(x, to.y + to.h + 1, from.y - 1, "│", token);
92
+ return { x, y: to.y + to.h, ch: "▴", token };
93
+ }
94
+ /** R2 HIGH-1: the LOCKED containment hierarchy drawn as real container boxes
95
+ * — the rig (double border, name tab) wraps pod containers (light border,
96
+ * ▾-name tab, header hit zone → drill pod) which wrap their agent boxes.
97
+ * Containers are BACKGROUNDS (unprotected fills): edges may route across
98
+ * their interiors; agent boxes stay opaque+protected on top. */
99
+ export function drawContainers(canvas, layout, ctx) {
100
+ for (const c of layout.containers) {
101
+ if (c.kind === "rig") {
102
+ canvas.box(c.x, c.y, c.w, c.h, "accent", true, false);
103
+ const tab = ` ▦ RIG ${c.name || ctx.rig} `; // round-3 rig glyph
104
+ canvas.text(c.x + 2, c.y, tab, "accent", true);
105
+ canvas.zone(c.y, c.x + 2, c.x + 2 + tab.length, { type: "drill", resource: "rig", name: c.name || ctx.rig, target: { host: ctx.host } });
106
+ }
107
+ else {
108
+ canvas.box(c.x, c.y, c.w, c.h, "chrome", false, false);
109
+ const tab = ` ≡ ${c.name} `; // round-3 pod glyph
110
+ canvas.text(c.x + 1, c.y, tab, "accent", true);
111
+ canvas.zone(c.y, c.x + 1, c.x + 1 + tab.length, { type: "drill", resource: "pod", name: c.name, target: { host: ctx.host, rig: ctx.rig } });
112
+ }
113
+ }
114
+ }
115
+ export function renderHatchet(layout, ctx, width) {
116
+ const canvas = new GraphCanvas(width);
117
+ drawContainers(canvas, layout, ctx);
118
+ // then edges, agent boxes (borders clean up line ends), arrowheads LAST
119
+ const lanes = new Map();
120
+ const arrows = [];
121
+ for (const edge of layout.edges) {
122
+ const from = layout.byId.get(edge.source);
123
+ const to = layout.byId.get(edge.target);
124
+ if (!from || !to)
125
+ continue; // honest: an edge to an unknown node is not drawn as guesswork
126
+ const laneKey = `${to.x}:${to.x + to.w < from.x ? "back" : "fwd"}`;
127
+ const lane = lanes.get(laneKey) ?? 0;
128
+ lanes.set(laneKey, lane + 1);
129
+ arrows.push(drawEdge(canvas, from, to, edge.label, lane, [...layout.placed, ...layout.containers.filter((c) => c.kind === "pod")]));
130
+ }
131
+ for (const p of layout.placed)
132
+ drawNodeBox(canvas, p, ctx);
133
+ for (const a of arrows)
134
+ canvas.set(a.x, a.y, a.ch, a.token, true);
135
+ drawClipIndicator(canvas, layout, width);
136
+ return canvas;
137
+ }
138
+ /** MR8 width-clip honesty: the view never quietly loses right-side nodes —
139
+ * an INDICATOR only (founder-scoped: no scroll, no rework, no cap) */
140
+ export function drawClipIndicator(canvas, layout, width) {
141
+ if (!layout.clipped)
142
+ return;
143
+ const label = " content clipped ▸ ";
144
+ canvas.text(Math.max(width - label.length, 0), 0, label, "warn", true);
145
+ }
146
+ //# sourceMappingURL=hatchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hatchet.js","sourceRoot":"","sources":["../../../src/topology/styles/hatchet.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,mEAAmE;AACnE,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,wEAAwE;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAY,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAahE,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,GAAiB;IAC7D,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,CAAa,EAAE,GAAiB;IAC/E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvG,kEAAkE;IAClE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAG,CAAC;QAC1D,IAAI,GAAG,CAAC,EAAE;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7H,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;IAC5H,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,2EAA2E;IAC3E,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC;AAaD,MAAM,UAAU,QAAQ,CAAC,MAAmB,EAAE,IAAgB,EAAE,EAAc,EAAE,IAAY,EAAE,IAAI,GAAG,CAAC,EAAE,YAAoB,EAAE;IAC5H,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3B,gFAAgF;QAChF,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QACzB,qEAAqE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACtF,MAAM,UAAU,GAAG,CAAC,GAAS,EAAE,SAAkB,EAAU,EAAE;YAC3D,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CACjG,CAAC;gBACF,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IACD,kCAAkC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED;;;;gEAIgE;AAChE,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,MAAmB,EAAE,GAAiB;IACxF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,oBAAoB;YAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3I,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,oBAAoB;YACjD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9I,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,GAAiB,EAAE,KAAa;IACjF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,wEAAwE;IACxE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAAE,SAAS,CAAC,+DAA+D;QAC3F,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtI,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;QAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,MAAmB,EAAE,KAAa;IACvF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO;IAC5B,MAAM,KAAK,GAAG,qBAAqB,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC"}