@zerwiz/ymir 0.1.3 → 0.1.5

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 (850) hide show
  1. package/.agents/README.md +291 -0
  2. package/.agents/agents/bragi-marketer.md +111 -0
  3. package/.agents/agents/brokk.md +352 -0
  4. package/.agents/agents/forseti-reviewer.md +93 -0
  5. package/.agents/agents/frigg-consent.md +77 -0
  6. package/.agents/agents/groa-update.md +77 -0
  7. package/.agents/agents/hnoss-designer.md +69 -0
  8. package/.agents/agents/huginn-researcher.md +99 -0
  9. package/.agents/agents/jord-projects.md +78 -0
  10. package/.agents/agents/kvasir-scout.md +91 -0
  11. package/.agents/agents/mimir-planner.md +92 -0
  12. package/.agents/agents/muninn-stow.md +77 -0
  13. package/.agents/agents/saga-bearings.md +78 -0
  14. package/.agents/agents/sindri-developer.md +114 -0
  15. package/.agents/agents/snotra-documenter.md +105 -0
  16. package/.agents/agents/syn-recovery.md +78 -0
  17. package/.agents/agents/tyr-check.md +78 -0
  18. package/.agents/agents/urdh-hold.md +77 -0
  19. package/.agents/agents/volundr-smith.md +80 -0
  20. package/.agents/agents/vor-diagnostics.md +77 -0
  21. package/.agents/assets/agents/naming.md +50 -0
  22. package/.agents/assets/agents/registry.md +93 -0
  23. package/.agents/assets/agents/runtime.md +36 -0
  24. package/.agents/assets/agents/toon-tasks-cli.md +42 -0
  25. package/.agents/assets/templates/company_entity.template.md +37 -0
  26. package/.agents/backend/backends/cmux.sh +649 -0
  27. package/.agents/backend/backends/herdr-eventwait.py +157 -0
  28. package/.agents/backend/backends/herdr-workspace-move.py +114 -0
  29. package/.agents/backend/backends/herdr.sh +3386 -0
  30. package/.agents/backend/backends/orca.sh +290 -0
  31. package/.agents/backend/backends/tmux.sh +357 -0
  32. package/.agents/backend/backends/zellij.sh +700 -0
  33. package/.agents/backend/fm-afk-launch.sh +654 -0
  34. package/.agents/backend/fm-afk-return.sh +241 -0
  35. package/.agents/backend/fm-afk-start.sh +172 -0
  36. package/.agents/backend/fm-arm-command-policy.mjs +960 -0
  37. package/.agents/backend/fm-arm-pretool-check.sh +200 -0
  38. package/.agents/backend/fm-backend-hometag-lib.sh +52 -0
  39. package/.agents/backend/fm-backend.sh +981 -0
  40. package/.agents/backend/fm-backlog-handoff.sh +909 -0
  41. package/.agents/backend/fm-backlog-receive.sh +187 -0
  42. package/.agents/backend/fm-backlog-transition-lib.sh +779 -0
  43. package/.agents/backend/fm-bearings-board.sh +204 -0
  44. package/.agents/backend/fm-bearings-snapshot.sh +546 -0
  45. package/.agents/backend/fm-bootstrap.sh +1568 -0
  46. package/.agents/backend/fm-branch-outcome.sh +203 -0
  47. package/.agents/backend/fm-branch-prompt.sh +101 -0
  48. package/.agents/backend/fm-brief.sh +452 -0
  49. package/.agents/backend/fm-busy-event.sh +234 -0
  50. package/.agents/backend/fm-busy-lib.sh +986 -0
  51. package/.agents/backend/fm-captain-hold.sh +1001 -0
  52. package/.agents/backend/fm-cd-command-policy.mjs +153 -0
  53. package/.agents/backend/fm-cd-pretool-check.sh +190 -0
  54. package/.agents/backend/fm-check-lib.sh +74 -0
  55. package/.agents/backend/fm-check-register.sh +42 -0
  56. package/.agents/backend/fm-check-unregister.sh +52 -0
  57. package/.agents/backend/fm-classify-lib.sh +1770 -0
  58. package/.agents/backend/fm-claude-stop-autoarm.sh +334 -0
  59. package/.agents/backend/fm-composer-lib.sh +1416 -0
  60. package/.agents/backend/fm-config-inherit-lib.sh +1202 -0
  61. package/.agents/backend/fm-config-push.sh +254 -0
  62. package/.agents/backend/fm-control-lib.sh +251 -0
  63. package/.agents/backend/fm-control.sh +878 -0
  64. package/.agents/backend/fm-crew-state.sh +625 -0
  65. package/.agents/backend/fm-cursor-lib.sh +243 -0
  66. package/.agents/backend/fm-decision-hold.sh +232 -0
  67. package/.agents/backend/fm-doc-audience-check.sh +269 -0
  68. package/.agents/backend/fm-dod-lib.sh +67 -0
  69. package/.agents/backend/fm-ensure-agents-md.sh +253 -0
  70. package/.agents/backend/fm-extension-launch-barrier.mjs +129 -0
  71. package/.agents/backend/fm-extension.mjs +2577 -0
  72. package/.agents/backend/fm-extension.sh +16 -0
  73. package/.agents/backend/fm-ff-lib.sh +420 -0
  74. package/.agents/backend/fm-fleet-snapshot.sh +1463 -0
  75. package/.agents/backend/fm-fleet-sync.sh +458 -0
  76. package/.agents/backend/fm-fleet-view.sh +96 -0
  77. package/.agents/backend/fm-gate-refuse-lib.sh +102 -0
  78. package/.agents/backend/fm-guard.sh +242 -0
  79. package/.agents/backend/fm-harness.sh +195 -0
  80. package/.agents/backend/fm-herdr-ci-cleanup.sh +115 -0
  81. package/.agents/backend/fm-herdr-lab.sh +346 -0
  82. package/.agents/backend/fm-herdr-session-cleanup.sh +337 -0
  83. package/.agents/backend/fm-home-seed.sh +984 -0
  84. package/.agents/backend/fm-home-summary-refresh.sh +255 -0
  85. package/.agents/backend/fm-hook-host-lib.sh +36 -0
  86. package/.agents/backend/fm-inactive-reconcile.sh +531 -0
  87. package/.agents/backend/fm-inbox.sh +399 -0
  88. package/.agents/backend/fm-install-actionlint.sh +84 -0
  89. package/.agents/backend/fm-install-herdr.sh +96 -0
  90. package/.agents/backend/fm-install-shellcheck.sh +84 -0
  91. package/.agents/backend/fm-install-treehouse.sh +95 -0
  92. package/.agents/backend/fm-kimi-turnend-hook.sh +276 -0
  93. package/.agents/backend/fm-lease-lib.sh +218 -0
  94. package/.agents/backend/fm-lease.sh +189 -0
  95. package/.agents/backend/fm-line-cap-lib.sh +51 -0
  96. package/.agents/backend/fm-lint-workflows.sh +137 -0
  97. package/.agents/backend/fm-lint.sh +591 -0
  98. package/.agents/backend/fm-lock-lib.sh +104 -0
  99. package/.agents/backend/fm-lock.sh +107 -0
  100. package/.agents/backend/fm-marker-lib.sh +12 -0
  101. package/.agents/backend/fm-merge-local.sh +74 -0
  102. package/.agents/backend/fm-merge-outcome-lib.sh +138 -0
  103. package/.agents/backend/fm-nm-run-lib.sh +124 -0
  104. package/.agents/backend/fm-on.sh +125 -0
  105. package/.agents/backend/fm-operational-input.sh +253 -0
  106. package/.agents/backend/fm-peek.sh +46 -0
  107. package/.agents/backend/fm-pending-reply-lib.sh +1409 -0
  108. package/.agents/backend/fm-pr-check.sh +135 -0
  109. package/.agents/backend/fm-pr-lib.sh +1016 -0
  110. package/.agents/backend/fm-pr-merge.sh +707 -0
  111. package/.agents/backend/fm-pr-poll.sh +110 -0
  112. package/.agents/backend/fm-primary-scope-lib.sh +33 -0
  113. package/.agents/backend/fm-procevent-extension-capture.pl +259 -0
  114. package/.agents/backend/fm-procevent-lavish.sh +628 -0
  115. package/.agents/backend/fm-procevent-lib.sh +892 -0
  116. package/.agents/backend/fm-procevent-quota.sh +290 -0
  117. package/.agents/backend/fm-procevent-remote-reply.sh +577 -0
  118. package/.agents/backend/fm-procevent-when.sh +504 -0
  119. package/.agents/backend/fm-procevent.sh +1466 -0
  120. package/.agents/backend/fm-project-mode.sh +92 -0
  121. package/.agents/backend/fm-project-origin-lib.sh +180 -0
  122. package/.agents/backend/fm-promote.sh +282 -0
  123. package/.agents/backend/fm-public-followup-emit.sh +260 -0
  124. package/.agents/backend/fm-public-followup-lib.sh +398 -0
  125. package/.agents/backend/fm-public-followup.sh +1330 -0
  126. package/.agents/backend/fm-push-transition-lib.sh +168 -0
  127. package/.agents/backend/fm-quota-axi-lib.sh +93 -0
  128. package/.agents/backend/fm-quota-choose.sh +384 -0
  129. package/.agents/backend/fm-remote-delta-read.sh +189 -0
  130. package/.agents/backend/fm-remote-doctor.sh +800 -0
  131. package/.agents/backend/fm-remote-entrypoint.sh +193 -0
  132. package/.agents/backend/fm-remote-file.sh +234 -0
  133. package/.agents/backend/fm-remote-home-provision.sh +259 -0
  134. package/.agents/backend/fm-remote-home-seed.sh +259 -0
  135. package/.agents/backend/fm-remote-inherit-push.sh +90 -0
  136. package/.agents/backend/fm-remote-inherit.sh +179 -0
  137. package/.agents/backend/fm-remote-job-lib.sh +1241 -0
  138. package/.agents/backend/fm-remote-job-reap-orphans.sh +137 -0
  139. package/.agents/backend/fm-remote-job-worker.sh +1124 -0
  140. package/.agents/backend/fm-remote-readiness-lib.sh +44 -0
  141. package/.agents/backend/fm-remote-secondmate-control.sh +340 -0
  142. package/.agents/backend/fm-review-diff.sh +158 -0
  143. package/.agents/backend/fm-secondmate-charter-lib.sh +44 -0
  144. package/.agents/backend/fm-secondmate-nudge-lib.sh +68 -0
  145. package/.agents/backend/fm-secondmate-parent-lib.sh +70 -0
  146. package/.agents/backend/fm-secondmate-reconcile.sh +371 -0
  147. package/.agents/backend/fm-secondmate-registry-lib.sh +311 -0
  148. package/.agents/backend/fm-secondmate-report.sh +88 -0
  149. package/.agents/backend/fm-send.sh +1059 -0
  150. package/.agents/backend/fm-session-lock-lib.sh +176 -0
  151. package/.agents/backend/fm-session-start.sh +970 -0
  152. package/.agents/backend/fm-sessionstart-cursor.sh +40 -0
  153. package/.agents/backend/fm-sessionstart-nudge.sh +45 -0
  154. package/.agents/backend/fm-sessionstart-run.sh +145 -0
  155. package/.agents/backend/fm-spawn.sh +3153 -0
  156. package/.agents/backend/fm-startup-memory-budget-lib.sh +224 -0
  157. package/.agents/backend/fm-startup-memory-budget.sh +94 -0
  158. package/.agents/backend/fm-startup-network.sh +642 -0
  159. package/.agents/backend/fm-stow-cascade.sh +251 -0
  160. package/.agents/backend/fm-subagent-pretool-check.sh +207 -0
  161. package/.agents/backend/fm-supervise-daemon.sh +1732 -0
  162. package/.agents/backend/fm-supervision-instructions.sh +215 -0
  163. package/.agents/backend/fm-supervision-lib.sh +90 -0
  164. package/.agents/backend/fm-supervisor-target-lib.sh +78 -0
  165. package/.agents/backend/fm-tangle-lib.sh +53 -0
  166. package/.agents/backend/fm-task-inbox-lib.sh +402 -0
  167. package/.agents/backend/fm-tasks-axi-lib.sh +123 -0
  168. package/.agents/backend/fm-teardown.sh +2922 -0
  169. package/.agents/backend/fm-test-isolation-proof.sh +588 -0
  170. package/.agents/backend/fm-test-run.sh +2191 -0
  171. package/.agents/backend/fm-timeout-lib.sh +141 -0
  172. package/.agents/backend/fm-timing-lib.sh +179 -0
  173. package/.agents/backend/fm-tmux-lib.sh +291 -0
  174. package/.agents/backend/fm-tool-update-check.sh +898 -0
  175. package/.agents/backend/fm-trace-context-lib.sh +227 -0
  176. package/.agents/backend/fm-transition-lib.sh +103 -0
  177. package/.agents/backend/fm-turnend-guard-cursor.sh +391 -0
  178. package/.agents/backend/fm-turnend-guard-grok.sh +90 -0
  179. package/.agents/backend/fm-turnend-guard.sh +432 -0
  180. package/.agents/backend/fm-update.sh +110 -0
  181. package/.agents/backend/fm-vendor-auth-probe.sh +190 -0
  182. package/.agents/backend/fm-voice-client.py +1373 -0
  183. package/.agents/backend/fm-voice-relay.py +1256 -0
  184. package/.agents/backend/fm-wake-drain.sh +592 -0
  185. package/.agents/backend/fm-wake-grant.sh +127 -0
  186. package/.agents/backend/fm-wake-lib.sh +1849 -0
  187. package/.agents/backend/fm-watch-arm.sh +602 -0
  188. package/.agents/backend/fm-watch-checkpoint.sh +109 -0
  189. package/.agents/backend/fm-watch.sh +1962 -0
  190. package/.agents/backend/fm-x-dismiss.sh +116 -0
  191. package/.agents/backend/fm-x-followup.sh +286 -0
  192. package/.agents/backend/fm-x-lib.sh +1000 -0
  193. package/.agents/backend/fm-x-link.sh +234 -0
  194. package/.agents/backend/fm-x-poll.sh +185 -0
  195. package/.agents/backend/fm-x-reply.sh +385 -0
  196. package/.agents/backend/fm_voice_frame.py +166 -0
  197. package/.agents/backend/fm_voice_records.py +574 -0
  198. package/.agents/backend/model-bridge.py +290 -0
  199. package/.agents/backend/opencode-go-bridge.py +30 -0
  200. package/.agents/bus/README.md +12 -0
  201. package/.agents/bus/messages.json +1 -0
  202. package/.agents/config/agents.machine.example.yaml +16 -0
  203. package/.agents/config/agents.yaml +50 -0
  204. package/.agents/config/agents.yaml.example +72 -0
  205. package/.agents/config/crew-dispatch.json +22 -0
  206. package/.agents/config/cron.yaml +9 -0
  207. package/.agents/config/eindri-dispatch.json +67 -0
  208. package/.agents/config/eindri-harness +1 -0
  209. package/.agents/config/startup-memory-budget +1 -0
  210. package/.agents/config/tailscale-sync.yaml +27 -0
  211. package/.agents/filebrowser/.filebrowser.json +6 -0
  212. package/.agents/filebrowser/README.md +11 -0
  213. package/.agents/gateway/README.md +12 -0
  214. package/.agents/github/README.md +15 -0
  215. package/.agents/github/webhooks/.gitkeep +0 -0
  216. package/.agents/github/workflows/.gitkeep +0 -0
  217. package/.agents/harness/opencode/plugins/lib/rodd-operational-input.js +37 -0
  218. package/.agents/harness/opencode/plugins/package.json +4 -0
  219. package/.agents/harness/opencode/plugins/saga-sessionstart.js +77 -0
  220. package/.agents/harness/opencode/plugins/syn-cd-check.js +61 -0
  221. package/.agents/harness/opencode/plugins/syn-pretool-check.js +68 -0
  222. package/.agents/harness/opencode/plugins/syn-turnend-guard.js +105 -0
  223. package/.agents/harness/opencode/plugins/syn-watch-arm.js +521 -0
  224. package/.agents/memory/README.md +46 -0
  225. package/.agents/memory/kaia.engram +0 -0
  226. package/.agents/memory/kaia.engram-shm +0 -0
  227. package/.agents/memory/kaia.engram-wal +0 -0
  228. package/.agents/memory/runes_audit.md +5 -0
  229. package/.agents/memory/well/episodes.jsonl +367 -0
  230. package/.agents/memory/well/workspace.jsonl +27 -0
  231. package/.agents/migrations/0001-hodd-layout.sh +38 -0
  232. package/.agents/migrations/0002-a2a-mcp.sh +27 -0
  233. package/.agents/migrations/0003-private-data-separation.sh +111 -0
  234. package/.agents/migrations/0004-hoard-and-realms.sh +104 -0
  235. package/.agents/sandbox/Dockerfile.utgard +19 -0
  236. package/.agents/sandbox/README.md +14 -0
  237. package/.agents/sandbox/utgard.config.json +14 -0
  238. package/.agents/skills/README.md +59 -0
  239. package/.agents/skills/bragi-marketing/README.md +3 -0
  240. package/.agents/skills/bragi-marketing/SKILL.md +82 -0
  241. package/.agents/skills/eindri-homes/README.md +3 -0
  242. package/.agents/skills/eindri-homes/SKILL.md +291 -0
  243. package/.agents/skills/eindri-homes/assets/control-plane.md +122 -0
  244. package/.agents/skills/eindri-homes/assets/dispatch.md +80 -0
  245. package/.agents/skills/frigg-consent/README.md +3 -0
  246. package/.agents/skills/frigg-consent/SKILL.md +56 -0
  247. package/.agents/skills/galdr-ymirsystem/README.md +3 -0
  248. package/.agents/skills/galdr-ymirsystem/SKILL.md +158 -0
  249. package/.agents/skills/galdr-ymirsystem/assets/README.md +74 -0
  250. package/.agents/skills/galdr-ymirsystem/assets/brokk-distro-runtime.md +390 -0
  251. package/.agents/skills/galdr-ymirsystem/assets/build-method.md +113 -0
  252. package/.agents/skills/galdr-ymirsystem/assets/build-tool-categories.md +178 -0
  253. package/.agents/skills/galdr-ymirsystem/assets/eindri-orchestration.md +518 -0
  254. package/.agents/skills/galdr-ymirsystem/assets/eindri-profiles.md +136 -0
  255. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/README.md +673 -0
  256. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/claude-code.md +197 -0
  257. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/codex.md +191 -0
  258. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/cursor.md +193 -0
  259. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/opencode.md +262 -0
  260. package/.agents/skills/galdr-ymirsystem/assets/harness-integration/pi.md +295 -0
  261. package/.agents/skills/galdr-ymirsystem/assets/hlidskjalf-ui.md +496 -0
  262. package/.agents/skills/galdr-ymirsystem/assets/installation.md +571 -0
  263. package/.agents/skills/galdr-ymirsystem/assets/local-models/HOST-DATA.example.md +72 -0
  264. package/.agents/skills/galdr-ymirsystem/assets/local-models.md +274 -0
  265. package/.agents/skills/galdr-ymirsystem/assets/memory-well.md +161 -0
  266. package/.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md +377 -0
  267. package/.agents/skills/galdr-ymirsystem/assets/norse-naming.md +325 -0
  268. package/.agents/skills/galdr-ymirsystem/assets/odrerir-hall.md +129 -0
  269. package/.agents/skills/galdr-ymirsystem/assets/pi-boot/einherjar-spawn.schema.json +81 -0
  270. package/.agents/skills/galdr-ymirsystem/assets/pi-boot/herdr-profile.toml +75 -0
  271. package/.agents/skills/galdr-ymirsystem/assets/pi-boot/pi-profile.yml +96 -0
  272. package/.agents/skills/galdr-ymirsystem/assets/pi-boot/supervision-tree.yml +163 -0
  273. package/.agents/skills/galdr-ymirsystem/assets/pi-boot-guide.md +58 -0
  274. package/.agents/skills/galdr-ymirsystem/assets/porting-upstream-to-norse.md +301 -0
  275. package/.agents/skills/galdr-ymirsystem/assets/principles.md +385 -0
  276. package/.agents/skills/galdr-ymirsystem/assets/reference-adoption.md +99 -0
  277. package/.agents/skills/galdr-ymirsystem/assets/registry.md +379 -0
  278. package/.agents/skills/galdr-ymirsystem/assets/runtime-compliance.md +463 -0
  279. package/.agents/skills/galdr-ymirsystem/assets/runtime-components.md +553 -0
  280. package/.agents/skills/galdr-ymirsystem/assets/smidja.md +175 -0
  281. package/.agents/skills/galdr-ymirsystem/schemas/toon-schemas.md +190 -0
  282. package/.agents/skills/galdr-ymirsystem/scripts/README.md +45 -0
  283. package/.agents/skills/galdr-ymirsystem/scripts/bench-one.sh +248 -0
  284. package/.agents/skills/galdr-ymirsystem/scripts/compliance-check.sh +360 -0
  285. package/.agents/skills/galdr-ymirsystem/scripts/gpu-sample.sh +43 -0
  286. package/.agents/skills/galdr-ymirsystem/scripts/stop-all.sh +34 -0
  287. package/.agents/skills/galdr-ymirsystem/scripts/toon-check.py +188 -0
  288. package/.agents/skills/gjallarhorn-relay/README.md +3 -0
  289. package/.agents/skills/gjallarhorn-relay/SKILL.md +283 -0
  290. package/.agents/skills/groa-update/SKILL.md +70 -0
  291. package/.agents/skills/hamr-adapters/README.md +3 -0
  292. package/.agents/skills/hamr-adapters/SKILL.md +123 -0
  293. package/.agents/skills/hamr-adapters/references/common/control-and-recovery.md +37 -0
  294. package/.agents/skills/hamr-adapters/references/common/dispatch.md +32 -0
  295. package/.agents/skills/hamr-adapters/references/common/model-and-effort.md +42 -0
  296. package/.agents/skills/hamr-adapters/references/common/primary-hooks.md +40 -0
  297. package/.agents/skills/hamr-adapters/references/harness/claude.md +55 -0
  298. package/.agents/skills/hamr-adapters/references/harness/codex.md +43 -0
  299. package/.agents/skills/hamr-adapters/references/harness/cursor.md +75 -0
  300. package/.agents/skills/hamr-adapters/references/harness/grok.md +69 -0
  301. package/.agents/skills/hamr-adapters/references/harness/kimi.md +51 -0
  302. package/.agents/skills/hamr-adapters/references/harness/muse.md +70 -0
  303. package/.agents/skills/hamr-adapters/references/harness/opencode.md +42 -0
  304. package/.agents/skills/hamr-adapters/references/harness/pi.md +56 -0
  305. package/.agents/skills/herdr-panes/README.md +3 -0
  306. package/.agents/skills/herdr-panes/SKILL.md +92 -0
  307. package/.agents/skills/herdr-panes/assets/herdr-backend.md +346 -0
  308. package/.agents/skills/herdr-panes/assets/tmux-backend.md +115 -0
  309. package/.agents/skills/hnoss-design/DESIGN.md +19 -0
  310. package/.agents/skills/hnoss-design/README.md +3 -0
  311. package/.agents/skills/hnoss-design/SKILL.md +83 -0
  312. package/.agents/skills/hvild-afk/README.md +3 -0
  313. package/.agents/skills/hvild-afk/SKILL.md +241 -0
  314. package/.agents/skills/jord-projects/README.md +3 -0
  315. package/.agents/skills/jord-projects/SKILL.md +92 -0
  316. package/.agents/skills/lifecycle/SKILL.md +56 -0
  317. package/.agents/skills/lifecycle/smoke_test.sh +52 -0
  318. package/.agents/skills/lifecycle/start.sh +21 -0
  319. package/.agents/skills/lifecycle/status.sh +35 -0
  320. package/.agents/skills/lifecycle/stop.sh +16 -0
  321. package/.agents/skills/muninn-stow/README.md +3 -0
  322. package/.agents/skills/muninn-stow/SKILL.md +309 -0
  323. package/.agents/skills/no-mistakes/SKILL.md +379 -0
  324. package/.agents/skills/nornir-schedule/README.md +3 -0
  325. package/.agents/skills/nornir-schedule/SKILL.md +25 -0
  326. package/.agents/skills/nornir-schedule/assets/events.md +137 -0
  327. package/.agents/skills/nornir-schedule/assets/quota.md +131 -0
  328. package/.agents/skills/nsr-compliance/README.md +3 -0
  329. package/.agents/skills/nsr-compliance/SKILL.md +29 -0
  330. package/.agents/skills/nsr-compliance/assets/nsr/README.md +40 -0
  331. package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/README.md +15 -0
  332. package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/git-workflow.md +18 -0
  333. package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/security.md +22 -0
  334. package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/tech-stack.md +8 -0
  335. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/SKILL.md +71 -0
  336. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/config/core_four.yaml +16 -0
  337. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_danger.sh +102 -0
  338. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_wiring.sh +69 -0
  339. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/validate_code.sh +29 -0
  340. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/verify_docs.py +66 -0
  341. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/generate.sh +109 -0
  342. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/result_envelope.json +14 -0
  343. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/task_envelope.json +20 -0
  344. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/runner.py +303 -0
  345. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/telemetry/logger.py +112 -0
  346. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/README.md +18 -0
  347. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/config/README.md +10 -0
  348. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/README.md +12 -0
  349. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_env.sh +23 -0
  350. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_paths.sh +20 -0
  351. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_platform.sh +23 -0
  352. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/README.md +11 -0
  353. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/envelopes/README.md +10 -0
  354. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/README.md +10 -0
  355. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/install.sh +125 -0
  356. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/telemetry/README.md +11 -0
  357. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/README.md +20 -0
  358. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/README.md +36 -0
  359. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/SKILL-template.md +14 -0
  360. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/README.md +25 -0
  361. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/SKILL.md +13 -0
  362. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/create_branch.sh +6 -0
  363. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/safe_commit.sh +9 -0
  364. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/sync_upstream.sh +6 -0
  365. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/README.md +27 -0
  366. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/SKILL.md +15 -0
  367. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/smoke_test.sh +12 -0
  368. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/start.sh +19 -0
  369. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/status.sh +12 -0
  370. package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/stop.sh +15 -0
  371. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/README.md +18 -0
  372. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/README.md +10 -0
  373. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/core_four.yaml +13 -0
  374. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/README.md +12 -0
  375. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_danger.sh +102 -0
  376. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_env.sh +23 -0
  377. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_paths.sh +20 -0
  378. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_platform.sh +23 -0
  379. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_wiring.sh +69 -0
  380. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/README.md +11 -0
  381. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/README.md +10 -0
  382. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/result_envelope.json +14 -0
  383. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/task_envelope.json +20 -0
  384. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/runner.py +303 -0
  385. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/README.md +10 -0
  386. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/install.sh +125 -0
  387. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/README.md +11 -0
  388. package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/logger.py +112 -0
  389. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/README.md +14 -0
  390. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/api.md +17 -0
  391. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/compliance-wiring.md +155 -0
  392. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/frontend.md +15 -0
  393. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/README.md +11 -0
  394. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/README.md +23 -0
  395. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/README.md +16 -0
  396. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/template-README.md +11 -0
  397. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/deploy.sh +49 -0
  398. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/README.md +12 -0
  399. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/development.env.example +17 -0
  400. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/production.env.example +17 -0
  401. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/staging.env.example +17 -0
  402. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/README.md +11 -0
  403. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/template.env.example +8 -0
  404. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/README.md +26 -0
  405. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/agent.md +7 -0
  406. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/developers/dev-1.md +20 -0
  407. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/linux.md +9 -0
  408. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/macos.md +10 -0
  409. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/shared.md +19 -0
  410. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/windows.md +14 -0
  411. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/README.md +25 -0
  412. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/_template.md +41 -0
  413. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/hosting-1.md +41 -0
  414. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/README.md +21 -0
  415. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/README.md +15 -0
  416. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/deployment.md +19 -0
  417. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/disaster-recovery.md +15 -0
  418. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/ops-tasks.md +14 -0
  419. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/features/README.md +16 -0
  420. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/project-skills.md +146 -0
  421. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/README.md +11 -0
  422. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/software-compliance-research.md +269 -0
  423. package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/working-with-agents.md +260 -0
  424. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/AGENTS.md +38 -0
  425. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/ARCHITECTURE.md +36 -0
  426. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/BEST_PRACTICES.md +27 -0
  427. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/CI_CD.md +23 -0
  428. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/FEATURES.md +15 -0
  429. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/README.md +22 -0
  430. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/RULES.md +37 -0
  431. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/STRUCTURE.md +45 -0
  432. package/.agents/skills/nsr-compliance/assets/nsr/assets/root/TECH_STACK.md +28 -0
  433. package/.agents/skills/nsr-compliance/assets/nsr/scaffold-spec.md +63 -0
  434. package/.agents/skills/nsr-compliance/assets/nsr/scripts/scaffold.sh +103 -0
  435. package/.agents/skills/nsr-compliance/assets/nsr/scripts/validate.sh +52 -0
  436. package/.agents/skills/nsr-compliance/assets/nsrcompliance/SKILL.md +71 -0
  437. package/.agents/skills/nsr-compliance/assets/nsrcompliance/config/core_four.yaml +16 -0
  438. package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_danger.sh +102 -0
  439. package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_wiring.sh +69 -0
  440. package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/validate_code.sh +29 -0
  441. package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/verify_docs.py +66 -0
  442. package/.agents/skills/nsr-compliance/assets/nsrcompliance/generate.sh +109 -0
  443. package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/result_envelope.json +14 -0
  444. package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/task_envelope.json +20 -0
  445. package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/runner.py +303 -0
  446. package/.agents/skills/nsr-compliance/assets/nsrcompliance/telemetry/logger.py +112 -0
  447. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/README.md +18 -0
  448. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/config/README.md +10 -0
  449. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/README.md +12 -0
  450. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_env.sh +23 -0
  451. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_paths.sh +20 -0
  452. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_platform.sh +23 -0
  453. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/README.md +11 -0
  454. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/envelopes/README.md +10 -0
  455. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/README.md +10 -0
  456. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/install.sh +125 -0
  457. package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/telemetry/README.md +11 -0
  458. package/.agents/skills/pr-ops/README.md +3 -0
  459. package/.agents/skills/pr-ops/SKILL.md +109 -0
  460. package/.agents/skills/ratatoskr-a2a/README.md +3 -0
  461. package/.agents/skills/ratatoskr-a2a/SKILL.md +148 -0
  462. package/.agents/skills/rules-check-drift/SKILL.md +81 -0
  463. package/.agents/skills/saga-bearings/README.md +3 -0
  464. package/.agents/skills/saga-bearings/SKILL.md +26 -0
  465. package/.agents/skills/saga-bearings/assets/bearings.md +161 -0
  466. package/.agents/skills/saga-bearings/assets/board-template.html +731 -0
  467. package/.agents/skills/saga-bearings/assets/recap.md +56 -0
  468. package/.agents/skills/syn-recovery/README.md +3 -0
  469. package/.agents/skills/syn-recovery/SKILL.md +54 -0
  470. package/.agents/skills/tyr-check/README.md +3 -0
  471. package/.agents/skills/tyr-check/SKILL.md +218 -0
  472. package/.agents/skills/urdh-hold/README.md +3 -0
  473. package/.agents/skills/urdh-hold/SKILL.md +25 -0
  474. package/.agents/skills/urdh-hold/assets/decisions.md +15 -0
  475. package/.agents/skills/urdh-hold/assets/hold.md +54 -0
  476. package/.agents/skills/vor-diagnostics/README.md +3 -0
  477. package/.agents/skills/vor-diagnostics/SKILL.md +68 -0
  478. package/.agents/skills/ymir-host/README.md +3 -0
  479. package/.agents/skills/ymir-host/SKILL.md +34 -0
  480. package/.agents/skills/ymir-host/assets/desktop.md +36 -0
  481. package/.agents/skills/ymir-host/assets/omarchy.md +297 -0
  482. package/.agents/skills/ymir-host/assets/runbooks.md +15 -0
  483. package/.agents/skills/ymir-host/assets/thjazi.md +220 -0
  484. package/.agents/skills/ymir-host/assets/update.md +64 -0
  485. package/.agents/tests/assets/board-render-harness.mjs +117 -0
  486. package/.agents/tests/cmux-test-safety.sh +51 -0
  487. package/.agents/tests/fixtures.sh +291 -0
  488. package/.agents/tests/fm-afk-inject-e2e.test.sh +428 -0
  489. package/.agents/tests/fm-afk-inject-herdr-e2e.test.sh +536 -0
  490. package/.agents/tests/fm-afk-launch.test.sh +961 -0
  491. package/.agents/tests/fm-afk-pi-herdr-return-e2e.test.sh +297 -0
  492. package/.agents/tests/fm-afk-return.test.sh +283 -0
  493. package/.agents/tests/fm-arm-pretool-check.test.sh +482 -0
  494. package/.agents/tests/fm-ask-user-authority.test.sh +42 -0
  495. package/.agents/tests/fm-backend-autodetect-smoke.test.sh +176 -0
  496. package/.agents/tests/fm-backend-cmux-smoke.test.sh +188 -0
  497. package/.agents/tests/fm-backend-cmux.test.sh +1166 -0
  498. package/.agents/tests/fm-backend-herdr-eventwait-smoke.test.sh +136 -0
  499. package/.agents/tests/fm-backend-herdr-eventwait.test.py +106 -0
  500. package/.agents/tests/fm-backend-herdr-focus-flash-e2e.test.sh +409 -0
  501. package/.agents/tests/fm-backend-herdr-launcher-workspace-e2e.test.sh +437 -0
  502. package/.agents/tests/fm-backend-herdr-presentation-e2e.test.sh +1424 -0
  503. package/.agents/tests/fm-backend-herdr-prune-safety-e2e.test.sh +180 -0
  504. package/.agents/tests/fm-backend-herdr-respawn-idem-e2e.test.sh +182 -0
  505. package/.agents/tests/fm-backend-herdr-smoke.test.sh +355 -0
  506. package/.agents/tests/fm-backend-herdr-workspace-per-home-e2e.test.sh +251 -0
  507. package/.agents/tests/fm-backend-herdr.test.sh +4606 -0
  508. package/.agents/tests/fm-backend-orca.test.sh +1357 -0
  509. package/.agents/tests/fm-backend-tmux-smoke.test.sh +173 -0
  510. package/.agents/tests/fm-backend-zellij-smoke.test.sh +205 -0
  511. package/.agents/tests/fm-backend-zellij.test.sh +1360 -0
  512. package/.agents/tests/fm-backend.test.sh +1142 -0
  513. package/.agents/tests/fm-backlog-atomicity.test.sh +2302 -0
  514. package/.agents/tests/fm-backlog-handoff.test.sh +1360 -0
  515. package/.agents/tests/fm-bearings-board-render.test.sh +135 -0
  516. package/.agents/tests/fm-bearings-board.test.sh +414 -0
  517. package/.agents/tests/fm-bearings-snapshot.test.sh +1990 -0
  518. package/.agents/tests/fm-bootstrap-network-parallel.test.sh +316 -0
  519. package/.agents/tests/fm-bootstrap.test.sh +1178 -0
  520. package/.agents/tests/fm-branch-supervision.test.sh +552 -0
  521. package/.agents/tests/fm-brief.test.sh +785 -0
  522. package/.agents/tests/fm-busy-adapter-wiring.test.sh +324 -0
  523. package/.agents/tests/fm-busy-state.test.sh +465 -0
  524. package/.agents/tests/fm-calm-pi-extension.test.sh +3979 -0
  525. package/.agents/tests/fm-captain-hold-lifecycle.test.sh +1187 -0
  526. package/.agents/tests/fm-cd-pretool-check.test.sh +400 -0
  527. package/.agents/tests/fm-check-unregister.test.sh +198 -0
  528. package/.agents/tests/fm-classify-corr-token.test.sh +543 -0
  529. package/.agents/tests/fm-classify-decision-key.test.sh +340 -0
  530. package/.agents/tests/fm-claude-stop-autoarm-live-e2e.test.sh +164 -0
  531. package/.agents/tests/fm-claude-stop-autoarm.test.sh +1190 -0
  532. package/.agents/tests/fm-cmux-claude-composer-live-e2e.test.sh +110 -0
  533. package/.agents/tests/fm-codex-continuity-live-e2e.test.sh +55 -0
  534. package/.agents/tests/fm-composer-ghost.test.sh +716 -0
  535. package/.agents/tests/fm-composer-lib.test.sh +666 -0
  536. package/.agents/tests/fm-composer-matrix-live-e2e.test.sh +220 -0
  537. package/.agents/tests/fm-control-herdr-smoke.test.sh +149 -0
  538. package/.agents/tests/fm-control-relaunch.test.sh +1530 -0
  539. package/.agents/tests/fm-control.test.sh +910 -0
  540. package/.agents/tests/fm-crew-state.test.sh +1610 -0
  541. package/.agents/tests/fm-cursor-harness.test.sh +404 -0
  542. package/.agents/tests/fm-cursor-primary-live-e2e.test.sh +217 -0
  543. package/.agents/tests/fm-cursor-primary.test.sh +708 -0
  544. package/.agents/tests/fm-daemon.test.sh +2740 -0
  545. package/.agents/tests/fm-documentation-audiences.test.sh +141 -0
  546. package/.agents/tests/fm-ensure-agents-md.test.sh +371 -0
  547. package/.agents/tests/fm-extension-binding.test.sh +2187 -0
  548. package/.agents/tests/fm-fleet-snapshot-view.test.sh +816 -0
  549. package/.agents/tests/fm-fleet-sync.test.sh +721 -0
  550. package/.agents/tests/fm-gate-refuse.test.sh +356 -0
  551. package/.agents/tests/fm-gitignore-config.test.sh +89 -0
  552. package/.agents/tests/fm-gotmp.test.sh +230 -0
  553. package/.agents/tests/fm-grok-continuity-live-e2e.test.sh +112 -0
  554. package/.agents/tests/fm-grok-harness.test.sh +117 -0
  555. package/.agents/tests/fm-grok-stop-live-e2e.test.sh +219 -0
  556. package/.agents/tests/fm-guard-stale-banner.test.sh +709 -0
  557. package/.agents/tests/fm-harness-adapter-instructions-live-e2e.test.sh +134 -0
  558. package/.agents/tests/fm-harness-adapter-references.test.sh +30 -0
  559. package/.agents/tests/fm-harness-liveness-drift-live-e2e.test.sh +151 -0
  560. package/.agents/tests/fm-herdr-lab.test.sh +243 -0
  561. package/.agents/tests/fm-herdr-session-cleanup-e2e.test.sh +146 -0
  562. package/.agents/tests/fm-herdr-session-cleanup.test.sh +329 -0
  563. package/.agents/tests/fm-herdr-submit-confirm-live-e2e.test.sh +125 -0
  564. package/.agents/tests/fm-herdr-version-floor-live-e2e.test.sh +144 -0
  565. package/.agents/tests/fm-home-summary-refresh.test.sh +971 -0
  566. package/.agents/tests/fm-inactive-reconcile.test.sh +485 -0
  567. package/.agents/tests/fm-kimi-harness.test.sh +687 -0
  568. package/.agents/tests/fm-lint-workflows.test.sh +532 -0
  569. package/.agents/tests/fm-lint.test.sh +1023 -0
  570. package/.agents/tests/fm-muse-harness.test.sh +932 -0
  571. package/.agents/tests/fm-muse-signals-live-e2e.test.sh +205 -0
  572. package/.agents/tests/fm-no-mistakes-required.test.sh +72 -0
  573. package/.agents/tests/fm-on.test.sh +507 -0
  574. package/.agents/tests/fm-opencode-primary-live-e2e.test.sh +357 -0
  575. package/.agents/tests/fm-operational-input.test.sh +160 -0
  576. package/.agents/tests/fm-peek-remote.test.sh +110 -0
  577. package/.agents/tests/fm-pending-reply.test.sh +1288 -0
  578. package/.agents/tests/fm-pi-branch-extension.test.sh +3182 -0
  579. package/.agents/tests/fm-pi-branch-live-e2e.test.sh +527 -0
  580. package/.agents/tests/fm-pi-primary-live-e2e.test.sh +345 -0
  581. package/.agents/tests/fm-pi-primary-types.test.sh +68 -0
  582. package/.agents/tests/fm-pi-watch-extension.test.sh +2843 -0
  583. package/.agents/tests/fm-pr-check-security.test.sh +2140 -0
  584. package/.agents/tests/fm-pr-merge.test.sh +2135 -0
  585. package/.agents/tests/fm-procevent-quota.test.sh +225 -0
  586. package/.agents/tests/fm-procevent-when.test.sh +406 -0
  587. package/.agents/tests/fm-procevent.test.sh +1745 -0
  588. package/.agents/tests/fm-project-origin.test.sh +110 -0
  589. package/.agents/tests/fm-public-followup.test.sh +2272 -0
  590. package/.agents/tests/fm-quota-array-dispatch-live-e2e.test.sh +526 -0
  591. package/.agents/tests/fm-quota-choose.test.sh +626 -0
  592. package/.agents/tests/fm-remote-backlog-handoff.test.sh +453 -0
  593. package/.agents/tests/fm-remote-doctor.test.sh +625 -0
  594. package/.agents/tests/fm-remote-entrypoint.test.sh +59 -0
  595. package/.agents/tests/fm-remote-job-orphan-reap.test.sh +205 -0
  596. package/.agents/tests/fm-remote-job.test.sh +768 -0
  597. package/.agents/tests/fm-remote-reply.test.sh +520 -0
  598. package/.agents/tests/fm-remote-secondmate-lifecycle-e2e.test.sh +1256 -0
  599. package/.agents/tests/fm-remote-secondmate-parent-binding.test.sh +326 -0
  600. package/.agents/tests/fm-remote-secondmate-trace-context.test.sh +310 -0
  601. package/.agents/tests/fm-remote-transport-lanes.test.sh +431 -0
  602. package/.agents/tests/fm-review-diff.test.sh +176 -0
  603. package/.agents/tests/fm-secondmate-harness.test.sh +2600 -0
  604. package/.agents/tests/fm-secondmate-lifecycle-e2e.test.sh +259 -0
  605. package/.agents/tests/fm-secondmate-liveness.test.sh +559 -0
  606. package/.agents/tests/fm-secondmate-reconcile.test.sh +732 -0
  607. package/.agents/tests/fm-secondmate-safety.test.sh +2972 -0
  608. package/.agents/tests/fm-secondmate-sync.test.sh +913 -0
  609. package/.agents/tests/fm-send-inbox-doorbell-live-e2e.test.sh +206 -0
  610. package/.agents/tests/fm-send-inbox.test.sh +352 -0
  611. package/.agents/tests/fm-send-popup-settle.test.sh +167 -0
  612. package/.agents/tests/fm-send-remote-delivery.test.sh +796 -0
  613. package/.agents/tests/fm-send-resolve-key.test.sh +551 -0
  614. package/.agents/tests/fm-send-secondmate-marker-herdr-e2e.test.sh +187 -0
  615. package/.agents/tests/fm-send-secondmate-marker.test.sh +278 -0
  616. package/.agents/tests/fm-send-settle.test.sh +147 -0
  617. package/.agents/tests/fm-send-strict.test.sh +241 -0
  618. package/.agents/tests/fm-session-lock-ancestry.test.sh +365 -0
  619. package/.agents/tests/fm-session-start.test.sh +2515 -0
  620. package/.agents/tests/fm-sessionstart-hook-live-e2e.test.sh +631 -0
  621. package/.agents/tests/fm-sessionstart-instruction-refresh-live-e2e.test.sh +230 -0
  622. package/.agents/tests/fm-sessionstart-nudge.test.sh +1039 -0
  623. package/.agents/tests/fm-shared-captain-inheritance.test.sh +404 -0
  624. package/.agents/tests/fm-spawn-batch.test.sh +148 -0
  625. package/.agents/tests/fm-spawn-dispatch-profile.test.sh +827 -0
  626. package/.agents/tests/fm-spawn-pool-base-freshen.test.sh +440 -0
  627. package/.agents/tests/fm-spawn-worktree-settle.test.sh +147 -0
  628. package/.agents/tests/fm-startup-memory-budget.test.sh +333 -0
  629. package/.agents/tests/fm-startup-network.test.sh +712 -0
  630. package/.agents/tests/fm-stow-cascade.test.sh +370 -0
  631. package/.agents/tests/fm-subagent-pretool-check.test.sh +291 -0
  632. package/.agents/tests/fm-supervision-events.test.sh +156 -0
  633. package/.agents/tests/fm-supervision-instructions.test.sh +189 -0
  634. package/.agents/tests/fm-tangle-guard.test.sh +277 -0
  635. package/.agents/tests/fm-task-delivery.test.sh +420 -0
  636. package/.agents/tests/fm-task-inbox.test.sh +513 -0
  637. package/.agents/tests/fm-teardown-endpoint-safety.test.sh +374 -0
  638. package/.agents/tests/fm-teardown.test.sh +2665 -0
  639. package/.agents/tests/fm-test-fixture-cleanup.test.sh +172 -0
  640. package/.agents/tests/fm-test-fixtures.test.sh +132 -0
  641. package/.agents/tests/fm-test-isolation-proof.test.sh +278 -0
  642. package/.agents/tests/fm-test-run.test.sh +1196 -0
  643. package/.agents/tests/fm-tmux-agent-liveness.test.sh +354 -0
  644. package/.agents/tests/fm-tmux-submit-busy.test.sh +340 -0
  645. package/.agents/tests/fm-tool-update-check.test.sh +1044 -0
  646. package/.agents/tests/fm-trace-context-lib.test.sh +253 -0
  647. package/.agents/tests/fm-trace-context-spawn.test.sh +581 -0
  648. package/.agents/tests/fm-transition-lib.test.sh +54 -0
  649. package/.agents/tests/fm-turnend-guard.test.sh +1822 -0
  650. package/.agents/tests/fm-update.test.sh +304 -0
  651. package/.agents/tests/fm-vendor-auth-probe.test.sh +395 -0
  652. package/.agents/tests/fm-voice-relay.test.sh +4741 -0
  653. package/.agents/tests/fm-wake-daemon-lifecycle-e2e.test.sh +171 -0
  654. package/.agents/tests/fm-wake-drain-open-decisions-cursor.test.sh +356 -0
  655. package/.agents/tests/fm-wake-drain-open-decisions.test.sh +226 -0
  656. package/.agents/tests/fm-wake-drain-unread-status.test.sh +379 -0
  657. package/.agents/tests/fm-wake-queue.test.sh +1224 -0
  658. package/.agents/tests/fm-watch-arm.test.sh +821 -0
  659. package/.agents/tests/fm-watch-checkpoint.test.sh +87 -0
  660. package/.agents/tests/fm-watch-recovery-loop.test.sh +223 -0
  661. package/.agents/tests/fm-watch-triage.test.sh +3889 -0
  662. package/.agents/tests/fm-watcher-lock.test.sh +1133 -0
  663. package/.agents/tests/fm-x-mode.test.sh +3042 -0
  664. package/.agents/tests/gleipnir-guard-pretool-check.test.sh +51 -0
  665. package/.agents/tests/gleipnir-machine-lock.test.sh +130 -0
  666. package/.agents/tests/herdr-test-safety.sh +42 -0
  667. package/.agents/tests/lib.sh +315 -0
  668. package/.agents/tests/remote-herdr-fixture.sh +125 -0
  669. package/.agents/tests/secondmate-helpers.sh +193 -0
  670. package/.agents/tests/smoke.test.sh +93 -0
  671. package/.agents/tests/wake-helpers.sh +338 -0
  672. package/.agents/tests/zellij-test-safety.sh +60 -0
  673. package/.agents/tools/README.md +10 -0
  674. package/.agents/tools/bin/tasks-cli +267 -0
  675. package/.agents/tools/tasks-cli.ts +216 -0
  676. package/AGENTS.md +454 -0
  677. package/CHANGELOG.md +881 -0
  678. package/LICENSE +1 -1
  679. package/NOTICE +63 -0
  680. package/README.md +113 -39
  681. package/RULES/01-domains.md +51 -0
  682. package/RULES/02-agents.md +78 -0
  683. package/RULES/03-houses.md +61 -0
  684. package/RULES/04-hoard.md +65 -0
  685. package/RULES/05-platforms.md +67 -0
  686. package/RULES/06-append-only.md +58 -0
  687. package/RULES/07-config.md +45 -0
  688. package/RULES/08-delivery-gate.md +75 -0
  689. package/RULES/README.md +20 -0
  690. package/bin/README.md +107 -0
  691. package/bin/a2a-mcp.sh +98 -0
  692. package/bin/a2a-serve.py +103 -0
  693. package/bin/a2a-serve.sh +8 -0
  694. package/bin/a2a-talk.sh +50 -0
  695. package/bin/a2abridge-ensure.sh +108 -0
  696. package/bin/agent-run.sh +43 -0
  697. package/bin/agents-config.sh +233 -0
  698. package/bin/apodex-smoke-test.sh +92 -0
  699. package/bin/bifrost-bridge.sh +112 -0
  700. package/bin/bifrost-ingress.sh +77 -0
  701. package/bin/bootstrap-macos.sh +107 -0
  702. package/bin/bootstrap-windows.ps1 +112 -0
  703. package/bin/branch-guard.sh +64 -0
  704. package/bin/brokk +73 -0
  705. package/bin/brokk-classify-lib.sh +1770 -0
  706. package/bin/brokk-lease-lib.sh +222 -0
  707. package/bin/brokk-lease.sh +193 -0
  708. package/bin/brokk-lint.sh +65 -0
  709. package/bin/brokk-send.sh +38 -0
  710. package/bin/brokk-update.sh +9 -0
  711. package/bin/brokk-wake-grant.sh +127 -0
  712. package/bin/brokk-wake-lib.sh +1849 -0
  713. package/bin/changelog-guard.sh +165 -0
  714. package/bin/crash-sense.sh +160 -0
  715. package/bin/desktop-place.sh +224 -0
  716. package/bin/docs-guard.sh +39 -0
  717. package/bin/editor-place.sh +207 -0
  718. package/bin/eindri-acclaim.sh +34 -0
  719. package/bin/eindri-control.sh +28 -0
  720. package/bin/eindri-role.sh +83 -0
  721. package/bin/eindri-seen.sh +41 -0
  722. package/bin/eindri-send.sh +15 -0
  723. package/bin/eindri-start.sh +85 -0
  724. package/bin/eindri-watch.sh +57 -0
  725. package/bin/einherjar-spawn.sh +576 -0
  726. package/bin/eir-doctor.sh +112 -0
  727. package/bin/erindi-brief.sh +271 -0
  728. package/bin/fleet-apply.sh +68 -0
  729. package/bin/github-deploy.sh +81 -0
  730. package/bin/gjallarhorn-expose.sh +102 -0
  731. package/bin/gjallarhorn-notify.sh +58 -0
  732. package/bin/gjallarhorn-purge.sh +54 -0
  733. package/bin/gjallarhorn-tunnel.sh +72 -0
  734. package/bin/gleipnir-lock-lib.sh +284 -0
  735. package/bin/groa-update.sh +122 -0
  736. package/bin/hall-snapshot.sh +92 -0
  737. package/bin/hamr-harness.sh +246 -0
  738. package/bin/heimdall-ssh-keys.sh +374 -0
  739. package/bin/herdr-agents.py +44 -0
  740. package/bin/herdr-ensure.sh +104 -0
  741. package/bin/herdr-run.sh +431 -0
  742. package/bin/hermes-ensure.sh +88 -0
  743. package/bin/hoard-lib.sh +25 -0
  744. package/bin/hodd.sh +78 -0
  745. package/bin/host-sense.sh +199 -0
  746. package/bin/huginn-research-worker.sh +108 -0
  747. package/bin/local-model-lock.sh +51 -0
  748. package/bin/mimir-bridge.py +226 -0
  749. package/bin/mimir-bridge.sh +87 -0
  750. package/bin/mimir-ingest.sh +131 -0
  751. package/bin/mimir.sh +113 -0
  752. package/bin/mjollnir-webhook.sh +59 -0
  753. package/bin/mjollnir.sh +85 -0
  754. package/bin/model-hardware.sh +82 -0
  755. package/bin/model-resolve.sh +147 -0
  756. package/bin/models-detect.sh +178 -0
  757. package/bin/nornir-cron-start.sh +162 -0
  758. package/bin/nornir-job-daily-briefing.sh +191 -0
  759. package/bin/nornir-job-git-sync.sh +152 -0
  760. package/bin/nornir-job-memory-housekeeping.sh +114 -0
  761. package/bin/nornir-job-observer.sh +166 -0
  762. package/bin/nornir-job-skillopt-sleep.sh +76 -0
  763. package/bin/omarchy-hook-install.sh +60 -0
  764. package/bin/omarchy-install.sh +148 -0
  765. package/bin/omarchy-plugins.sh +174 -0
  766. package/bin/omarchy-sense.sh +149 -0
  767. package/bin/perm-guard.sh +30 -0
  768. package/bin/pi-agent.sh +68 -0
  769. package/bin/pi-ensure.sh +77 -0
  770. package/bin/pi-local.sh +37 -0
  771. package/bin/pi-seat.sh +63 -0
  772. package/bin/prereq-ensure.sh +166 -0
  773. package/bin/private-guard.sh +38 -0
  774. package/bin/project-git.sh +55 -0
  775. package/bin/public-guard.sh +70 -0
  776. package/bin/ratatoskr.sh +49 -0
  777. package/bin/realm-lib.sh +32 -0
  778. package/bin/repo-scrub.sh +62 -0
  779. package/bin/rodd-operational-input.sh +250 -0
  780. package/bin/runes-append.sh +198 -0
  781. package/bin/saga-session-start.sh +172 -0
  782. package/bin/saga-sessionstart-run.sh +79 -0
  783. package/bin/saga-wake-drain.sh +41 -0
  784. package/bin/secret-guard.sh +63 -0
  785. package/bin/sessrumnir-ensure.sh +100 -0
  786. package/bin/sessrumnir-sync.sh +237 -0
  787. package/bin/sessrumnir.sh +91 -0
  788. package/bin/skillopt-setup.sh +76 -0
  789. package/bin/skuld-branch-outcome.sh +203 -0
  790. package/bin/skuld-branch-prompt.sh +101 -0
  791. package/bin/smidja-bootstrap.sh +90 -0
  792. package/bin/smidja-observe.sh +86 -0
  793. package/bin/syn-arm-pretool-check.sh +57 -0
  794. package/bin/syn-asset-pretool-check.sh +76 -0
  795. package/bin/syn-cd-pretool-check.sh +28 -0
  796. package/bin/syn-guard-pretool-check.sh +83 -0
  797. package/bin/syn-turnend-guard.sh +36 -0
  798. package/bin/syn-watch-arm.sh +99 -0
  799. package/bin/tailscale-sync.sh +190 -0
  800. package/bin/telegram-bot.sh +69 -0
  801. package/bin/toolchain.sh +74 -0
  802. package/bin/utgard.sh +111 -0
  803. package/bin/valhalla.sh +115 -0
  804. package/bin/valknut-load.sh +260 -0
  805. package/bin/vor-crew-state.sh +124 -0
  806. package/bin/wedge-notify.sh +47 -0
  807. package/bin/workspace-provision.sh +80 -0
  808. package/bin/workspace-rag.sh +150 -0
  809. package/bin/wyrd-db.sh +47 -0
  810. package/bin/yggdrasil.sh +152 -0
  811. package/bin/ymir-edit.sh +145 -0
  812. package/bin/ymir-install.sh +641 -0
  813. package/bin/ymir-invite.sh +93 -0
  814. package/bin/ymir-isolation.sh +88 -0
  815. package/bin/ymir-migrate.sh +61 -0
  816. package/bin/ymir-platform.sh +348 -0
  817. package/bin/ymir-say.sh +97 -0
  818. package/bin/ymir-setup-auth.sh +108 -0
  819. package/bin/ymir-validate.sh +173 -0
  820. package/bin/ymir.js +74 -16
  821. package/docs/Architecture.md +339 -0
  822. package/docs/design.md +351 -0
  823. package/docs/installations/README.md +63 -0
  824. package/docs/installations/ymir-home.md +93 -0
  825. package/docs/integration.md +105 -0
  826. package/docs/lore.md +1056 -0
  827. package/docs/research/agent-harnesses.md +290 -0
  828. package/docs/runbooks/README.md +19 -0
  829. package/docs/runbooks/a2a.md +91 -0
  830. package/docs/runbooks/agent-permissions.md +99 -0
  831. package/docs/runbooks/agents.md +57 -0
  832. package/docs/runbooks/models.md +69 -0
  833. package/docs/runbooks/realm-onboarding.md +60 -0
  834. package/docs/runbooks/secrets-and-hoard.md +60 -0
  835. package/docs/runbooks/updates-and-migrations.md +110 -0
  836. package/docs/runbooks/worktrees-isolation.md +72 -0
  837. package/docs/session-start.md +105 -0
  838. package/docs/skillopt-integration.md +321 -0
  839. package/docs/sync-system.md +66 -0
  840. package/docs/workspaces.md +104 -0
  841. package/docs/ymir-rut.md +260 -0
  842. package/package.json +44 -14
  843. package/packaging/build.sh +74 -0
  844. package/packaging/macos/Ymir Installer.command +43 -0
  845. package/packaging/windows/ymir-setup.nsi +74 -0
  846. package/scripts/README.md +22 -0
  847. package/scripts/electron.sh +210 -0
  848. package/scripts/start.sh +167 -0
  849. package/scripts/stop.sh +113 -0
  850. package/install.sh +0 -35
@@ -0,0 +1,290 @@
1
+ # AI Agent Harnesses — Comparison Report
2
+
3
+ **Date:** 2026-09-12
4
+ **Author:** Brokk
5
+ **Status:** researched, written
6
+
7
+ ---
8
+
9
+ ## 1. Scope
10
+
11
+ This report surveys the major open-source and vendor AI agent harnesses as of September 2026. It covers frameworks that provide **agent orchestration**, **multi-agent collaboration**, **tool use**, **memory/state management**, and **workflow control** — the core primitives that define a harness.
12
+
13
+ The report is organized by **archetype** rather than vendor, because the field has converged around a few distinct patterns.
14
+
15
+ ---
16
+
17
+ ## 2. Archetype Map
18
+
19
+ | # | Archetype | What it does |
20
+ |---|-----------|-------------|
21
+ | A | **Graph orchestrators** | Low-level state machines / directed graphs for agent loops |
22
+ | B | **Opinionated harnesses** | Batteries-included agents that work out of the box |
23
+ | C | **Role-based crews** | Predefined agent roles with collaborative pipelines |
24
+ | D | **Programming frameworks** | Declarative pipelines where code replaces prompts |
25
+ | E | **Vendor SDKs** | Model-provider toolkits with agent primitives |
26
+ | F | **Terminal agents** | IDE/terminal-bound coding agents |
27
+
28
+ ---
29
+
30
+ ## 3. Detailed Comparison
31
+
32
+ ### A. Graph Orchestrators
33
+
34
+ #### LangGraph (LangChain)
35
+
36
+ - **Repo:** `langchain-ai/langgraph` (Python + JS)
37
+ - **License:** MIT
38
+ - **Stars:** ~20k+
39
+ - **Core idea:** Build agents as stateful directed graphs (nodes = steps, edges = transitions). Inspired by Pregel and Apache Beam.
40
+ - **Key features:**
41
+ - Durable execution — agents persist through failures, resume from checkpoints
42
+ - Human-in-the-loop — interrupt and modify state at any point
43
+ - Comprehensive memory — short-term working memory + long-term persistence
44
+ - LangSmith integration — tracing, evaluation, deployment
45
+ - Subgraphs — compose complex graphs from smaller ones
46
+ - **Strengths:** Deepest production story; best debugging/observability via LangSmith; most flexible for custom workflows
47
+ - **Weaknesses:** Steep learning curve; requires understanding graph semantics; opinionated toward LangChain ecosystem
48
+ - **Best for:** Teams building production-grade, long-running, stateful agent systems with complex control flows
49
+
50
+ #### Microsoft Agent Framework (MAF)
51
+
52
+ - **Repo:** `microsoft/agent-framework` (Python + .NET + Go)
53
+ - **License:** MIT
54
+ - **Stars:** ~5k+
55
+ - **Core idea:** Enterprise-ready multi-agent orchestration with graph-based workflows (sequential, concurrent, handoff, group collaboration)
56
+ - **Key features:**
57
+ - Multi-language: Python, C#/.NET, Go
58
+ - Middleware system for request/response processing
59
+ - Declarative agents (YAML definitions)
60
+ - Agent Skills — domain-specific knowledge bases
61
+ - Foundry-hosted agents — deploy to Microsoft Foundry
62
+ - OpenTelemetry observability
63
+ - Checkpointing, streaming, human-in-the-loop, time-travel
64
+ - A2A and MCP interoperability
65
+ - **Strengths:** Enterprise-grade; multi-language; strong Microsoft ecosystem integration; successor to both AutoGen and Semantic Kernel
66
+ - **Weaknesses:** Newer than LangGraph; smaller community; tied to Microsoft ecosystem for full value
67
+ - **Best for:** Enterprise teams already in the Microsoft stack; teams needing multi-language support
68
+
69
+ ### B. Opinionated Harnesses
70
+
71
+ #### Deep Agents (LangChain)
72
+
73
+ - **Repo:** `langchain-ai/deepagents` (Python + JS)
74
+ - **License:** MIT
75
+ - **Stars:** ~1k+
76
+ - **Core idea:** Opinionated, batteries-included agent harness inspired by Claude Code. Works out of the box for long-horizon, multi-step work.
77
+ - **Key features:**
78
+ - Sub-agents with isolated context windows
79
+ - Filesystem abstraction (local, sandboxed, remote)
80
+ - Context management (summarize long threads, offload to disk)
81
+ - Shell access (run commands in sandbox)
82
+ - Persistent memory (pluggable backends)
83
+ - Human-in-the-loop (approve/edit/reject tool calls)
84
+ - Skills (reusable behaviors loaded on demand)
85
+ - Tools (BYO functions or any MCP server)
86
+ - **Strengths:** Most "just works" experience; inspired by Claude Code's design; extensible without forking; model-agnostic
87
+ - **Weaknesses:** Newer; smaller ecosystem than LangGraph; "trust the LLM" security model
88
+ - **Best for:** Developers who want a coding agent experience without building from scratch; teams wanting to customize a solid default
89
+
90
+ #### Ymir / Brokk (this project)
91
+
92
+ - **Repo:** `Way-Of/ymir` (shell scripts + Python + JS)
93
+ - **License:** MIT
94
+ - **Core idea:** Single-operator executive partner harness with Norse-named subsystems. Covers development, marketing, business strategy, and life execution.
95
+ - **Key features:**
96
+ - Yggdrasil worktree isolation (parallel branches, zero collision)
97
+ - Utgard sandboxes (CPU/RAM/timeout caps, no host root, no network)
98
+ - A2A 1.0 collaboration backbone (Ratatoskr)
99
+ - Session lock bound to live harness process
100
+ - Nornir cron (stateless spawn → inject → execute → write → exit)
101
+ - Mimirsbrunn memory engine (engram store + MCP)
102
+ - Hlidskjalf control plane (Electron desktop + Cloudflare tunnel)
103
+ - Galdr CLI ergonomics (agent-facing CLI across harnesses)
104
+ - Smiðja agent factory (Völundr orchestrator)
105
+ - **Strengths:** Holistic — covers the full operator lifecycle; strong isolation; Norse naming aids mental model; open-source-first
106
+ - **Weaknesses:** Custom stack (not a general-purpose library); steep onboarding; domain-specific (single-tenant)
107
+ - **Best for:** Single-operator executive environments where isolation, audit, and full lifecycle coverage matter
108
+
109
+ ### C. Role-Based Crews
110
+
111
+ #### CrewAI
112
+
113
+ - **Repo:** `crewAIInc/crewAI` (Python)
114
+ - **License:** MIT
115
+ - **Stars:** ~15k+
116
+ - **Core idea:** Role-based AI agents that collaborate through "Crews" with precise event-driven control via "Flows"
117
+ - **Key features:**
118
+ - Crews — autonomous agents with specialized roles, goals, backstories
119
+ - Flows — event-driven workflows combining precise control + LLM calls + Crews
120
+ - JSON-first project scaffolding (`crewai create crew`)
121
+ - Knowledge files + skills + custom tools
122
+ - Sequential and hierarchical processes
123
+ - CrewAI AMP Suite (commercial control plane with observability, governance, security)
124
+ - Official skills for Claude Code, Cursor, Codex, Windsurf
125
+ - **Strengths:** Easiest onboarding for multi-agent; strong community (100k+ certified); JSON-first config is developer-friendly; commercial option available
126
+ - **Weaknesses:** Python-only; less flexible for complex state management; commercial features behind paywall
127
+ - **Best for:** Teams building multi-agent automation pipelines; marketing/operations workflows; rapid prototyping
128
+
129
+ ### D. Programming Frameworks
130
+
131
+ #### DSPy
132
+
133
+ - **Repo:** `stanfordnlp/dspy` (Python)
134
+ - **License:** MIT
135
+ - **Stars:** ~15k+
136
+ - **Core idea:** Programming — not prompting — language models. Declarative, self-improving Python pipelines.
137
+ - **Key features:**
138
+ - Declarative pipelines (compositional Python code)
139
+ - Self-improving via teleprompters (optimize prompts automatically)
140
+ - Works for classifiers, RAG pipelines, and agent loops
141
+ - Compiled LM calls into self-improving pipelines
142
+ - Assertions as computational constraints
143
+ - **Strengths:** Best for prompt optimization; research-backed; works with any LM; declarative approach reduces brittle prompting
144
+ - **Weaknesses:** Not a full agent harness; focused on pipeline optimization rather than orchestration; steeper learning curve for the paradigm
145
+ - **Best for:** Teams optimizing prompt quality; RAG pipelines; research teams; anyone tired of brittle prompt engineering
146
+
147
+ ### E. Vendor SDKs
148
+
149
+ #### OpenAI Python SDK
150
+
151
+ - **Repo:** `openai/openai-python` (Python)
152
+ - **License:** MIT
153
+ - **Core idea:** Official Python client for OpenAI REST API (Chat Completions + Responses API)
154
+ - **Key features:**
155
+ - Responses API (new standard) + Chat Completions API (legacy)
156
+ - Async/sync clients
157
+ - Streaming responses (SSE)
158
+ - Realtime API (text/audio via WebSocket)
159
+ - Workload identity authentication (Kubernetes, Azure, GCP, X.509 mTLS)
160
+ - Vision support (image URLs + base64)
161
+ - **Strengths:** Direct access to OpenAI models; best-in-class model quality; comprehensive auth options
162
+ - **Weaknesses:** No agent orchestration; no multi-agent support; vendor lock-in
163
+ - **Best for:** Teams building on OpenAI models; low-level API access; realtime applications
164
+
165
+ #### Anthropic SDK (Python)
166
+
167
+ - **Repo:** `anthropics/anthropic-sdk-python` (Python)
168
+ - **License:** MIT
169
+ - **Core idea:** Official Python client for Claude API
170
+ - **Key features:**
171
+ - Messages API
172
+ - Tool use / function calling
173
+ - Streaming
174
+ - Vision support
175
+ - **Strengths:** Direct access to Claude models; strong tool-use support; clean API
176
+ - **Weaknesses:** No agent orchestration; no multi-agent support; vendor lock-in
177
+ - **Best for:** Teams building on Claude models; tool-use applications
178
+
179
+ ### F. Terminal Agents
180
+
181
+ #### Claude Code (Anthropic)
182
+
183
+ - **Repo:** `anthropics/claude-code` (Node.js)
184
+ - **License:** Proprietary (source-available)
185
+ - **Core idea:** Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster
186
+ - **Key features:**
187
+ - Terminal-bound coding agent
188
+ - Codebase understanding
189
+ - Natural language commands
190
+ - Git workflow handling
191
+ - Plugin system
192
+ - IDE integration
193
+ - @claude tagging on GitHub
194
+ - **Strengths:** Best-in-class coding experience; deep codebase understanding; strong Anthropic model integration
195
+ - **Weaknesses:** Proprietary; Claude-only; no multi-agent orchestration; no self-hosting
196
+ - **Best for:** Developers who want a coding agent in their terminal; teams already using Claude
197
+
198
+ #### Cursor / Codex / Windsurf
199
+
200
+ - These are IDE-bound coding agents that use various model providers
201
+ - Not open-source frameworks; proprietary products
202
+ - Focus on single-agent coding assistance
203
+ - Plugin ecosystems for extension
204
+
205
+ ---
206
+
207
+ ## 4. Feature Matrix
208
+
209
+ | Feature | LangGraph | MAF | CrewAI | Deep Agents | DSPy | OpenAI SDK | Anthropic SDK | Claude Code | Ymir/Brokk |
210
+ |---------|-----------|-----|--------|-------------|------|------------|---------------|-------------|------------|
211
+ | **Multi-agent** | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
212
+ | **Graph orchestration** | ✅ | ✅ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
213
+ | **Human-in-the-loop** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ⚠️ | ✅ |
214
+ | **Memory/state** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
215
+ | **Tool use** | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠️ | ✅ | ✅ | ✅ |
216
+ | **MCP support** | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
217
+ | **A2A protocol** | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
218
+ | **Sandboxing** | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ✅ |
219
+ | **Multi-language** | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
220
+ | **Observability** | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
221
+ | **Self-hosting** | ✅ | ✅ | ⚠️ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
222
+ | **Model-agnostic** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
223
+ | **Terminal agent** | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ✅ |
224
+ | **Cron/scheduling** | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
225
+ | **Audit trail** | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
226
+
227
+ **Legend:** ✅ = full support, ⚠️ = partial/limited, ❌ = not available
228
+
229
+ ---
230
+
231
+ ## 5. Convergence Patterns
232
+
233
+ The field has converged around these patterns:
234
+
235
+ 1. **Graph-based orchestration** is the dominant paradigm for complex workflows (LangGraph, MAF)
236
+ 2. **Human-in-the-loop** is becoming table stakes (all major harnesses now support it)
237
+ 3. **MCP (Model Context Protocol)** is emerging as the standard tool interface (MAF, Deep Agents, Ymir)
238
+ 4. **A2A (Agent-to-Agent) 1.0** is becoming the standard for cross-agent communication (MAF, Ymir)
239
+ 5. **Model-agnostic design** is expected — harnesses should work with any LLM provider
240
+ 6. **Observability** (tracing, evaluation, debugging) is critical for production
241
+ 7. **Sandboxing** is essential for untrusted code execution
242
+
243
+ ---
244
+
245
+ ## 6. Recommendations for Ymir
246
+
247
+ Ymir's current architecture already aligns well with the convergence patterns:
248
+
249
+ - **A2A 1.0** (Ratatoskr) — Ymir is ahead of the curve here
250
+ - **MCP support** — Ymir's engram store provides unscoped MCP for all harnesses
251
+ - **Sandboxing** (Utgard) — Ymir's Utgard is more robust than most competitors
252
+ - **Audit trail** (Runes) — unique to Ymir; no competitor provides chained audit
253
+ - **Cron/scheduling** (Nornir) — Ymir's stateless cron is more reliable than most
254
+
255
+ **Gaps to consider:**
256
+
257
+ 1. **LangGraph-style durable execution** — Ymir's Nornir jobs are stateless; consider adding checkpointing for long-running tasks
258
+ 2. **Human-in-the-loop** — Ymir has human-in-the-loop for code merges; consider extending to agent task approval
259
+ 3. **Observability** — Ymir's Runes provide audit; consider adding distributed tracing (OpenTelemetry) for agent execution
260
+ 4. **Multi-language** — Ymir is shell/Python/JS; consider Go support for performance-critical components
261
+
262
+ ---
263
+
264
+ ## 7. Notable Mentions
265
+
266
+ - **Google Agent SDK** — Google's open-source agent framework (not found in public repos as of 2026-09)
267
+ - **LlamaIndex** — RAG-focused framework with agent primitives
268
+ - **AutoGen Studio** — No-code GUI for AutoGen (now in maintenance mode)
269
+ - **OpenDevin** — Open-source coding agent (competes with Claude Code)
270
+ - **Smithy/Smidja** — Ymir's own agent factory (Völundr orchestrator)
271
+
272
+ ---
273
+
274
+ ## 8. Sources
275
+
276
+ - `github.com/microsoft/autogen` — AutoGen (maintenance mode)
277
+ - `github.com/microsoft/agent-framework` — Microsoft Agent Framework 1.0
278
+ - `github.com/microsoft/semantic-kernel` — Semantic Kernel (being replaced by MAF)
279
+ - `github.com/crewAIInc/crewAI` — CrewAI
280
+ - `github.com/langchain-ai/langgraph` — LangGraph
281
+ - `github.com/langchain-ai/langchain` — LangChain
282
+ - `github.com/langchain-ai/deepagents` — Deep Agents
283
+ - `github.com/stanfordnlp/dspy` — DSPy
284
+ - `github.com/openai/openai-python` — OpenAI Python SDK
285
+ - `github.com/anthropics/anthropic-sdk-python` — Anthropic SDK
286
+ - `github.com/anthropics/claude-code` — Claude Code
287
+
288
+ ---
289
+
290
+ *Report written by Brokk. All facts verified against live repository data.*
@@ -0,0 +1,19 @@
1
+ # Runbooks
2
+
3
+ Task-oriented guides for operating a Ymir home. Each is written for the
4
+ operator, not just the maintainer.
5
+
6
+ ```
7
+ runbooks[8]{file,subject}:
8
+ "models.md","choose models per agent; local (llama.cpp) vs hosted; per-machine overlays"
9
+ "agents.md","Eindri profiles: where they live, how to add/run/dispatch one"
10
+ "agent-permissions.md","set what each agent may do — the bash gap and recommended postures"
11
+ "updates-and-migrations.md","update the runtime; heal old homes (bin/ymir-migrate.sh)"
12
+ "secrets-and-hoard.md","Hodd: secrets by path, secret-guard, rotation + history scrub"
13
+ "worktrees-isolation.md","Yggdrasil worktrees: isolated by default, --main opt-out, see them in Hlidskjalf, merge"
14
+ "a2a.md","Ratatoskr — talk between agents over A2A: engine, MCPs, addressing, injection, registration"
15
+ "realm-onboarding.md","onboarding a realm/tenant"
16
+ ```
17
+
18
+ Related: `.agents/skills/galdr-ymirsystem/assets/installation.md` (first setup),
19
+ `.agents/skills/galdr-ymirsystem/assets/registry.md` (inventory).
@@ -0,0 +1,91 @@
1
+ # Runbook — A2A (Ratatoskr), talking between agents
2
+
3
+ Ratatoskr is Ymir's A2A/MCP mesh: agents discover each other and exchange tasks
4
+ over the open **A2A 1.0** protocol (JSON-RPC + SSE, Agent Cards), locally and
5
+ across machines over Tailscale. **Way of Teams** rides the same mesh as the
6
+ control plane.
7
+
8
+ ## The pieces
9
+
10
+ ```
11
+ a2a[4]{piece,what,path}:
12
+ "engine","a2abridge — directory (discovery) · bridge (announce) · service · cert · doctor","~/.a2abridge/bin/a2abridge"
13
+ "MCP (mesh)","a2abridge — a2a_* tools for the agents","~/.pi/agent/mcp.json, opencode.json"
14
+ "MCP (control plane)","wayofteams-* — tickets, plans, memory, knowledge (NEEDS AUTH)","WOTEAMS_URL / WOTEAMS_TOKEN"
15
+ "Ymir front door","bin/ratatoskr.sh, bin/a2a-mcp.sh","bin/"
16
+ ```
17
+
18
+ ## Setup
19
+
20
+ ```bash
21
+ bin/a2a-mcp.sh install # wires the MCP servers into pi + opencode
22
+ bin/ratatoskr.sh status # engine + directory + served agents
23
+ bin/ratatoskr.sh doctor # health-check
24
+ ```
25
+ `bin/ymir-install.sh` and `bin/brokk-update.sh` run the migration that does this.
26
+
27
+ **The control plane needs auth.** In an MCP host you may see:
28
+ ```
29
+ wayofteams-agents Needs auth
30
+ wayofteams-core Needs auth
31
+ ```
32
+ Set `WOTEAMS_URL` and `WOTEAMS_TOKEN` (from `.env.local` / your Hoard) to
33
+ connect them. `a2abridge` should read **Connected**.
34
+
35
+ ## Talking
36
+
37
+ **From an agent** (pi — tools come from the `a2abridge` MCP + `Way-Of/pi-a2a-adaptor`;
38
+ the `ratatoskr-a2a` skill teaches their use):
39
+
40
+ ```bash
41
+ a2a-agents # list peers {name,url,skills}
42
+ a2a_call agent_url="http://host:7777/" text="…" # task a peer; reply returns
43
+ a2a_inbox # your incoming queue
44
+ a2a_complete_task task_id="…" text="…" # answer a task
45
+ ```
46
+
47
+ **From Brokk / scripts:** `bin/a2a-talk.sh agents` and
48
+ `bin/a2a-talk.sh send <peer> "<text>"`.
49
+
50
+ ## Rules that bite
51
+
52
+ - **Names are NOT URLs.** `a2a_call` wants a **URL**; a peer name fails
53
+ `Invalid URL`. Resolve first with `a2a-agents`, then use its `url`.
54
+ - **Delivery = injection.** An A2A task that only reaches the bridge is never
55
+ read; the inbound text must be **injected into the agent's chat**
56
+ (`herdr agent prompt <agent> "<text>"`), and the reply read back
57
+ (`herdr agent read`). Without injection an Eindri will not read the a2a.
58
+ - **All four, or it fails:** transport + a live peer + delivery (injection) +
59
+ return. Missing any one shows as a timeout.
60
+
61
+ ## Reachability (registering an Eindri)
62
+
63
+ An agent must **announce to the directory** to appear in `a2a-agents`:
64
+
65
+ ```bash
66
+ a2abridge bridge -name <agent> -model <model> -skills <s1,s2> \
67
+ -directory http://127.0.0.1:7777 -advertise-host <tailnet-ip> -id <stable>
68
+ ```
69
+ `-advertise-host` must be the machine's **Tailscale IP** (never 127.0.0.1) for
70
+ cross-machine reach. If a peer is missing from `a2a-agents`, the bridge announced
71
+ to the wrong directory — fix the **config/skill**, not new code.
72
+
73
+ ## Troubleshooting
74
+
75
+ - **`Invalid URL`** — you passed a name; resolve with `a2a-agents`, then `a2a_call`.
76
+ - **`Task … exceeded max attempts (N)`** — addressed right, never completed: no
77
+ live receiving agent / injection / return. Check the peer is in `a2a-agents`
78
+ and a receiving agent is running its bridge.
79
+ - **No reply at all** — transport carried it; the **return path** is missing.
80
+ - **`wayofteams-* Needs auth`** — set `WOTEAMS_TOKEN`; the mesh still works
81
+ standalone without it.
82
+
83
+ ## Status
84
+
85
+ ```
86
+ a2a-today[3]{piece,state}:
87
+ "transport","works (messaged hermes -> reply)"
88
+ "delivery (injection)","works (an agent reads an injected task and answers)"
89
+ "directory registration + return","OPEN — a served Eindri is not yet listed in the directory"
90
+ ```
91
+ See the private plan `$YMIR_HOME/docs/ratatoskr.md` for the registration spec.
@@ -0,0 +1,99 @@
1
+ # Runbook — setting an agent's permissions
2
+
3
+ Every agent profile declares what it may do. Permissions are **law for that
4
+ agent** — set them deliberately. The default that ships is a starting point, not
5
+ a recommendation.
6
+
7
+ ## Where permissions live
8
+
9
+ In the profile's frontmatter: `.agents/agents/<name>-<craft>.md`.
10
+
11
+ ```yaml
12
+ ---
13
+ name: kvasir
14
+ mode: subagent
15
+ permission:
16
+ read: allow
17
+ glob: allow
18
+ grep: allow
19
+ edit: deny
20
+ write: deny
21
+ bash:
22
+ "*": ask # everything else asks first
23
+ "ls *": allow
24
+ "rg *": allow
25
+ "cat *": allow
26
+ "git status*": allow
27
+ "git diff*": allow
28
+ skill: allow
29
+ webfetch: deny
30
+ ---
31
+ ```
32
+
33
+ After editing, rebind:
34
+
35
+ ```bash
36
+ bin/valknut-load.sh --all
37
+ ```
38
+
39
+ ## The one rule that matters most
40
+
41
+ **A flat `bash: allow` overrides every other restriction.** An agent with
42
+ `edit: deny` but `bash: allow` can still write files (`sed -i`, `cat > f`),
43
+ delete them, or reach the network (`curl`, `ssh`). `edit`/`write: deny` only
44
+ stops the *edit tool*, not the shell.
45
+
46
+ So: **never give a read-only agent a flat `bash: allow`.** Give it a **pattern
47
+ map** — only the read commands it needs are `allow`, everything else is `ask` or
48
+ `deny`.
49
+
50
+ ## What each key does
51
+
52
+ | Key | Controls |
53
+ |-----|----------|
54
+ | `read` | reading files |
55
+ | `glob` / `grep` | finding files / searching content |
56
+ | `edit` | the edit tool (in-place changes) |
57
+ | `write` | creating/overwriting files |
58
+ | `bash` | the shell — `allow` is total; prefer a pattern map |
59
+ | `skill` | loading skills |
60
+ | `webfetch` / `websearch` | outbound network from tools |
61
+ | `task` | dispatching subagents |
62
+
63
+ Values: `allow`, `ask`, `deny`. `bash` may also be a map of command patterns.
64
+
65
+ ## Recommended postures
66
+
67
+ ```
68
+ postures[4]{role,read,edit/write,bash,notes}:
69
+ "read-only (scout, researcher, reviewer)","allow","deny","pattern map: ls/rg/cat/git-status allow, \"*\": ask","never flat allow; no curl/wget/ssh"
70
+ "builder (developer)","allow","allow","pattern map: package manager + build + git allow, \"*\": ask","the widest real need; still ask on unknown"
71
+ "content (marketer)","allow","allow","* ask; allow the editor/crawl commands only","network only where the task truly needs it"
72
+ "designer","allow","allow","* ask; allow the design CLI only","keep the shell narrow even when runnable"
73
+ ```
74
+
75
+ ## Modes
76
+
77
+ `mode:` decides how an agent can be reached:
78
+
79
+ - `primary` — run directly as a top-level agent.
80
+ - `subagent` — dispatched by another agent (Task tool).
81
+ - `all` — both. Widest; pair it with a narrow `bash`.
82
+
83
+ A runnable (`all`) agent with a full shell is the biggest door — usually not
84
+ what you want.
85
+
86
+ ## Network and untrusted work
87
+
88
+ - Treat `curl`, `wget`, `ssh`, and arbitrary binaries as `ask` at least.
89
+ - Code you do not fully trust belongs in **Utgard** (no host root, no network),
90
+ not on the host with a permissive shell.
91
+
92
+ ## Check your posture
93
+
94
+ ```bash
95
+ bin/perm-guard.sh # flags a flat bash:allow, especially with edit/write denied
96
+ bin/valknut-load.sh --all # rebind after edits
97
+ ```
98
+
99
+ The rule of thumb: **grant the narrowest shell that does the job.**
@@ -0,0 +1,57 @@
1
+ # Runbook — setting up agents
2
+
3
+ An **Eindri** is a worker profile. Profiles live in one canonical place and are
4
+ symlinked into each harness.
5
+
6
+ ## Where agents live
7
+
8
+ - **Canonical:** `.agents/agents/<name>-<craft>.md` (edit these only).
9
+ - **Bindings:** `.opencode/agent/*.md` and `.pi/agents/*.md` are symlinks.
10
+
11
+ Rebind after any change:
12
+
13
+ ```bash
14
+ bin/valknut-load.sh --all
15
+ ```
16
+
17
+ ## A profile's frontmatter
18
+
19
+ ```yaml
20
+ ---
21
+ mode: all # primary | subagent | all (all = runnable AND dispatchable)
22
+ model: llama.cpp/frontend-design-expert-8b
23
+ domain: utgard # one of the eight Greinar (see RULES/01-domains.md)
24
+ name: hnoss
25
+ description: "..."
26
+ permission: # read/write/edit/glob/grep/bash/skill: allow|deny
27
+ read: allow
28
+ edit: allow
29
+ ymir_tools: # Ymir capabilities (NOT opencode built-ins; never `tools:`)
30
+ - opendesign
31
+ ---
32
+ ```
33
+
34
+ OpenCode rejects `tools:` as a list — Ymir capabilities go under **`ymir_tools:`**.
35
+
36
+ ## Add an agent
37
+
38
+ 1. Write `.agents/agents/<name>-<craft>.md` (copy a neighbour).
39
+ 2. Give it a `model` (or leave it to inherit `default_model`) and a `domain`.
40
+ 3. `bin/valknut-load.sh --all` to bind it into OpenCode + Pi.
41
+ 4. Register it in `.agents/skills/galdr-ymirsystem/assets/registry.md` if it is durable.
42
+
43
+ ## Run an agent
44
+
45
+ ```bash
46
+ bin/agent-run.sh hnoss "design a compact hero" # harness+model from agents.yaml
47
+ ```
48
+
49
+ Local models run through `pi`, hosted through `opencode` (see the **models**
50
+ runbook). `mode: all` lets an agent be dispatched *and* driven directly.
51
+
52
+ ## Dispatch to a live pane (herdr)
53
+
54
+ ```bash
55
+ bin/eindri-start.sh "design a landing page" # one command: role -> seat -> run
56
+ bin/eindri-start.sh "…" --pane | --tab | --space # seat a pane / tab / workspace
57
+ ```
@@ -0,0 +1,69 @@
1
+ # Runbook — setting up models
2
+
3
+ Ymir runs each agent on a model you choose. **Local models run through `pi`,
4
+ hosted models through `opencode`** — the syncer derives this, you just pick the
5
+ model.
6
+
7
+ ## The one place you choose
8
+
9
+ `config/agents.yaml` (private; from `config/agents.yaml.example`):
10
+
11
+ ```yaml
12
+ harness:
13
+ local: pi
14
+ online: opencode
15
+ local_providers: [llama.cpp, llama-cpp, lmstudio]
16
+ providers:
17
+ llama.cpp: { pi: llama-cpp } # same server, renamed per harness
18
+
19
+ default_model: opencode-go/deepseek-v4.1-flash
20
+
21
+ providers:
22
+ llama.cpp:
23
+ npm: "@ai-sdk/openai-compatible"
24
+ name: "llama-server (local)"
25
+ base_url: "http://127.0.0.1:8080/v1"
26
+ models:
27
+ - frontend-design-expert-8b # bare alias; apply resolves the exact id
28
+
29
+ agents:
30
+ hnoss: { model: "llama.cpp/frontend-design-expert-8b", primary: true }
31
+ brokk: { model: opencode-go/deepseek-v4.1-flash }
32
+ ```
33
+
34
+ ## Local models (llama.cpp)
35
+
36
+ 1. Start a server (llama.cpp `llama-server`) — e.g. `:8080`. Check it:
37
+ ```bash
38
+ curl -s http://127.0.0.1:8080/v1/models | head
39
+ ```
40
+ 2. A llama.cpp **router needs the exact served id**, e.g.
41
+ `frontend-design-expert-8b@q4_k_m`. Put the bare alias in the YAML; `apply`
42
+ asks the server and fills in the exact id.
43
+ 3. `pi` must know the provider. Verify: `pi --list-models | grep llama`.
44
+
45
+ ## Apply and use
46
+
47
+ ```bash
48
+ bin/agents-config.sh init # seed from template (once)
49
+ bin/agents-config.sh resolve # show bare alias -> exact id
50
+ bin/agents-config.sh show # the live combination (agent, harness, model)
51
+ bin/agents-config.sh apply # write into profiles + opencode.json
52
+ bin/agent-run.sh hnoss "design a hero section"
53
+ ```
54
+
55
+ ## Different models on different machines
56
+
57
+ Keep a per-machine overlay `config/agents.<hostname>.yaml`; it deep-merges over
58
+ the base. Example: `config/agents.machine.example.yaml`. Override the host with
59
+ `YMIR_AGENTS_MACHINE=omarchy-1`.
60
+
61
+ ## Hosted models
62
+
63
+ Add the provider key to `.env.local` (e.g. `OPENCODE_GO_API_KEY`) — never inline
64
+ a key. Models named `opencode-go/...` run through `opencode`.
65
+
66
+ ## Adding a model
67
+
68
+ Add it under `providers.<name>.models` (or a new `providers` entry). If it's a
69
+ new server, add the id to `.agents/skills/galdr-ymirsystem/assets/registry.md`.