@zerwiz/ymir 0.1.4 → 0.1.7
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.
- package/.agents/README.md +291 -0
- package/.agents/agents/bragi-marketer.md +111 -0
- package/.agents/agents/brokk.md +352 -0
- package/.agents/agents/forseti-reviewer.md +93 -0
- package/.agents/agents/frigg-consent.md +77 -0
- package/.agents/agents/groa-update.md +77 -0
- package/.agents/agents/hnoss-designer.md +69 -0
- package/.agents/agents/huginn-researcher.md +99 -0
- package/.agents/agents/jord-projects.md +78 -0
- package/.agents/agents/kvasir-scout.md +91 -0
- package/.agents/agents/mimir-planner.md +92 -0
- package/.agents/agents/muninn-stow.md +77 -0
- package/.agents/agents/saga-bearings.md +78 -0
- package/.agents/agents/sindri-developer.md +114 -0
- package/.agents/agents/snotra-documenter.md +105 -0
- package/.agents/agents/syn-recovery.md +78 -0
- package/.agents/agents/tyr-check.md +78 -0
- package/.agents/agents/urdh-hold.md +77 -0
- package/.agents/agents/volundr-smith.md +80 -0
- package/.agents/agents/vor-diagnostics.md +77 -0
- package/.agents/assets/agents/naming.md +50 -0
- package/.agents/assets/agents/registry.md +93 -0
- package/.agents/assets/agents/runtime.md +36 -0
- package/.agents/assets/agents/toon-tasks-cli.md +42 -0
- package/.agents/assets/templates/company_entity.template.md +37 -0
- package/.agents/backend/README.md +74 -0
- package/.agents/backend/backends/cmux.sh +649 -0
- package/.agents/backend/backends/herdr-eventwait.py +157 -0
- package/.agents/backend/backends/herdr-workspace-move.py +114 -0
- package/.agents/backend/backends/herdr.sh +3386 -0
- package/.agents/backend/backends/orca.sh +290 -0
- package/.agents/backend/backends/tmux.sh +357 -0
- package/.agents/backend/backends/zellij.sh +700 -0
- package/.agents/backend/fm-afk-launch.sh +654 -0
- package/.agents/backend/fm-afk-return.sh +241 -0
- package/.agents/backend/fm-afk-start.sh +172 -0
- package/.agents/backend/fm-arm-command-policy.mjs +960 -0
- package/.agents/backend/fm-arm-pretool-check.sh +200 -0
- package/.agents/backend/fm-backend-hometag-lib.sh +52 -0
- package/.agents/backend/fm-backend.sh +981 -0
- package/.agents/backend/fm-backlog-handoff.sh +909 -0
- package/.agents/backend/fm-backlog-receive.sh +187 -0
- package/.agents/backend/fm-backlog-transition-lib.sh +779 -0
- package/.agents/backend/fm-bearings-board.sh +204 -0
- package/.agents/backend/fm-bearings-snapshot.sh +546 -0
- package/.agents/backend/fm-bootstrap.sh +1568 -0
- package/.agents/backend/fm-branch-outcome.sh +203 -0
- package/.agents/backend/fm-branch-prompt.sh +101 -0
- package/.agents/backend/fm-brief.sh +452 -0
- package/.agents/backend/fm-busy-event.sh +234 -0
- package/.agents/backend/fm-busy-lib.sh +986 -0
- package/.agents/backend/fm-captain-hold.sh +1001 -0
- package/.agents/backend/fm-cd-command-policy.mjs +153 -0
- package/.agents/backend/fm-cd-pretool-check.sh +190 -0
- package/.agents/backend/fm-check-lib.sh +74 -0
- package/.agents/backend/fm-check-register.sh +42 -0
- package/.agents/backend/fm-check-unregister.sh +52 -0
- package/.agents/backend/fm-classify-lib.sh +1770 -0
- package/.agents/backend/fm-claude-stop-autoarm.sh +334 -0
- package/.agents/backend/fm-composer-lib.sh +1416 -0
- package/.agents/backend/fm-config-inherit-lib.sh +1202 -0
- package/.agents/backend/fm-config-push.sh +254 -0
- package/.agents/backend/fm-control-lib.sh +251 -0
- package/.agents/backend/fm-control.sh +878 -0
- package/.agents/backend/fm-crew-state.sh +625 -0
- package/.agents/backend/fm-cursor-lib.sh +243 -0
- package/.agents/backend/fm-decision-hold.sh +232 -0
- package/.agents/backend/fm-doc-audience-check.sh +269 -0
- package/.agents/backend/fm-dod-lib.sh +67 -0
- package/.agents/backend/fm-ensure-agents-md.sh +253 -0
- package/.agents/backend/fm-extension-launch-barrier.mjs +129 -0
- package/.agents/backend/fm-extension.mjs +2577 -0
- package/.agents/backend/fm-extension.sh +16 -0
- package/.agents/backend/fm-ff-lib.sh +420 -0
- package/.agents/backend/fm-fleet-snapshot.sh +1463 -0
- package/.agents/backend/fm-fleet-sync.sh +458 -0
- package/.agents/backend/fm-fleet-view.sh +96 -0
- package/.agents/backend/fm-gate-refuse-lib.sh +102 -0
- package/.agents/backend/fm-guard.sh +242 -0
- package/.agents/backend/fm-harness.sh +195 -0
- package/.agents/backend/fm-herdr-ci-cleanup.sh +115 -0
- package/.agents/backend/fm-herdr-lab.sh +346 -0
- package/.agents/backend/fm-herdr-session-cleanup.sh +337 -0
- package/.agents/backend/fm-home-seed.sh +984 -0
- package/.agents/backend/fm-home-summary-refresh.sh +255 -0
- package/.agents/backend/fm-hook-host-lib.sh +36 -0
- package/.agents/backend/fm-inactive-reconcile.sh +531 -0
- package/.agents/backend/fm-inbox.sh +399 -0
- package/.agents/backend/fm-install-actionlint.sh +84 -0
- package/.agents/backend/fm-install-herdr.sh +96 -0
- package/.agents/backend/fm-install-shellcheck.sh +84 -0
- package/.agents/backend/fm-install-treehouse.sh +95 -0
- package/.agents/backend/fm-kimi-turnend-hook.sh +276 -0
- package/.agents/backend/fm-lease-lib.sh +218 -0
- package/.agents/backend/fm-lease.sh +189 -0
- package/.agents/backend/fm-line-cap-lib.sh +51 -0
- package/.agents/backend/fm-lint-workflows.sh +137 -0
- package/.agents/backend/fm-lint.sh +591 -0
- package/.agents/backend/fm-lock-lib.sh +104 -0
- package/.agents/backend/fm-lock.sh +107 -0
- package/.agents/backend/fm-marker-lib.sh +12 -0
- package/.agents/backend/fm-merge-local.sh +74 -0
- package/.agents/backend/fm-merge-outcome-lib.sh +138 -0
- package/.agents/backend/fm-nm-run-lib.sh +124 -0
- package/.agents/backend/fm-on.sh +125 -0
- package/.agents/backend/fm-operational-input.sh +253 -0
- package/.agents/backend/fm-peek.sh +46 -0
- package/.agents/backend/fm-pending-reply-lib.sh +1409 -0
- package/.agents/backend/fm-pr-check.sh +135 -0
- package/.agents/backend/fm-pr-lib.sh +1016 -0
- package/.agents/backend/fm-pr-merge.sh +707 -0
- package/.agents/backend/fm-pr-poll.sh +110 -0
- package/.agents/backend/fm-primary-scope-lib.sh +33 -0
- package/.agents/backend/fm-procevent-extension-capture.pl +259 -0
- package/.agents/backend/fm-procevent-lavish.sh +628 -0
- package/.agents/backend/fm-procevent-lib.sh +892 -0
- package/.agents/backend/fm-procevent-quota.sh +290 -0
- package/.agents/backend/fm-procevent-remote-reply.sh +577 -0
- package/.agents/backend/fm-procevent-when.sh +504 -0
- package/.agents/backend/fm-procevent.sh +1466 -0
- package/.agents/backend/fm-project-mode.sh +92 -0
- package/.agents/backend/fm-project-origin-lib.sh +180 -0
- package/.agents/backend/fm-promote.sh +282 -0
- package/.agents/backend/fm-public-followup-emit.sh +260 -0
- package/.agents/backend/fm-public-followup-lib.sh +398 -0
- package/.agents/backend/fm-public-followup.sh +1330 -0
- package/.agents/backend/fm-push-transition-lib.sh +168 -0
- package/.agents/backend/fm-quota-axi-lib.sh +93 -0
- package/.agents/backend/fm-quota-choose.sh +384 -0
- package/.agents/backend/fm-remote-delta-read.sh +189 -0
- package/.agents/backend/fm-remote-doctor.sh +800 -0
- package/.agents/backend/fm-remote-entrypoint.sh +193 -0
- package/.agents/backend/fm-remote-file.sh +234 -0
- package/.agents/backend/fm-remote-home-provision.sh +259 -0
- package/.agents/backend/fm-remote-home-seed.sh +259 -0
- package/.agents/backend/fm-remote-inherit-push.sh +90 -0
- package/.agents/backend/fm-remote-inherit.sh +179 -0
- package/.agents/backend/fm-remote-job-lib.sh +1241 -0
- package/.agents/backend/fm-remote-job-reap-orphans.sh +137 -0
- package/.agents/backend/fm-remote-job-worker.sh +1124 -0
- package/.agents/backend/fm-remote-readiness-lib.sh +44 -0
- package/.agents/backend/fm-remote-secondmate-control.sh +340 -0
- package/.agents/backend/fm-review-diff.sh +158 -0
- package/.agents/backend/fm-secondmate-charter-lib.sh +44 -0
- package/.agents/backend/fm-secondmate-nudge-lib.sh +68 -0
- package/.agents/backend/fm-secondmate-parent-lib.sh +70 -0
- package/.agents/backend/fm-secondmate-reconcile.sh +371 -0
- package/.agents/backend/fm-secondmate-registry-lib.sh +311 -0
- package/.agents/backend/fm-secondmate-report.sh +88 -0
- package/.agents/backend/fm-send.sh +1059 -0
- package/.agents/backend/fm-session-lock-lib.sh +176 -0
- package/.agents/backend/fm-session-start.sh +970 -0
- package/.agents/backend/fm-sessionstart-cursor.sh +40 -0
- package/.agents/backend/fm-sessionstart-nudge.sh +45 -0
- package/.agents/backend/fm-sessionstart-run.sh +145 -0
- package/.agents/backend/fm-spawn.sh +3153 -0
- package/.agents/backend/fm-startup-memory-budget-lib.sh +224 -0
- package/.agents/backend/fm-startup-memory-budget.sh +94 -0
- package/.agents/backend/fm-startup-network.sh +642 -0
- package/.agents/backend/fm-stow-cascade.sh +251 -0
- package/.agents/backend/fm-subagent-pretool-check.sh +207 -0
- package/.agents/backend/fm-supervise-daemon.sh +1732 -0
- package/.agents/backend/fm-supervision-instructions.sh +215 -0
- package/.agents/backend/fm-supervision-lib.sh +90 -0
- package/.agents/backend/fm-supervisor-target-lib.sh +78 -0
- package/.agents/backend/fm-tangle-lib.sh +53 -0
- package/.agents/backend/fm-task-inbox-lib.sh +402 -0
- package/.agents/backend/fm-tasks-axi-lib.sh +123 -0
- package/.agents/backend/fm-teardown.sh +2922 -0
- package/.agents/backend/fm-test-isolation-proof.sh +588 -0
- package/.agents/backend/fm-test-run.sh +2191 -0
- package/.agents/backend/fm-timeout-lib.sh +141 -0
- package/.agents/backend/fm-timing-lib.sh +179 -0
- package/.agents/backend/fm-tmux-lib.sh +291 -0
- package/.agents/backend/fm-tool-update-check.sh +898 -0
- package/.agents/backend/fm-trace-context-lib.sh +227 -0
- package/.agents/backend/fm-transition-lib.sh +103 -0
- package/.agents/backend/fm-turnend-guard-cursor.sh +391 -0
- package/.agents/backend/fm-turnend-guard-grok.sh +90 -0
- package/.agents/backend/fm-turnend-guard.sh +432 -0
- package/.agents/backend/fm-update.sh +110 -0
- package/.agents/backend/fm-vendor-auth-probe.sh +190 -0
- package/.agents/backend/fm-voice-client.py +1373 -0
- package/.agents/backend/fm-voice-relay.py +1256 -0
- package/.agents/backend/fm-wake-drain.sh +592 -0
- package/.agents/backend/fm-wake-grant.sh +127 -0
- package/.agents/backend/fm-wake-lib.sh +1849 -0
- package/.agents/backend/fm-watch-arm.sh +602 -0
- package/.agents/backend/fm-watch-checkpoint.sh +109 -0
- package/.agents/backend/fm-watch.sh +1962 -0
- package/.agents/backend/fm-x-dismiss.sh +116 -0
- package/.agents/backend/fm-x-followup.sh +286 -0
- package/.agents/backend/fm-x-lib.sh +1000 -0
- package/.agents/backend/fm-x-link.sh +234 -0
- package/.agents/backend/fm-x-poll.sh +185 -0
- package/.agents/backend/fm-x-reply.sh +385 -0
- package/.agents/backend/fm_voice_frame.py +166 -0
- package/.agents/backend/fm_voice_records.py +574 -0
- package/.agents/backend/model-bridge.py +360 -0
- package/.agents/backend/opencode-go-bridge.py +30 -0
- package/.agents/bus/README.md +12 -0
- package/.agents/bus/messages.json +1 -0
- package/.agents/config/agents.machine.example.yaml +16 -0
- package/.agents/config/agents.yaml.example +72 -0
- package/.agents/config/crew-dispatch.json +22 -0
- package/.agents/config/cron.yaml +11 -0
- package/.agents/config/eindri-dispatch.json +67 -0
- package/.agents/config/eindri-harness +1 -0
- package/.agents/config/startup-memory-budget +1 -0
- package/.agents/filebrowser/.filebrowser.json +6 -0
- package/.agents/filebrowser/README.md +11 -0
- package/.agents/gateway/README.md +12 -0
- package/.agents/github/README.md +15 -0
- package/.agents/github/webhooks/.gitkeep +0 -0
- package/.agents/github/workflows/.gitkeep +0 -0
- package/.agents/harness/opencode/plugins/lib/rodd-operational-input.js +37 -0
- package/.agents/harness/opencode/plugins/package.json +4 -0
- package/.agents/harness/opencode/plugins/saga-sessionstart.js +77 -0
- package/.agents/harness/opencode/plugins/syn-cd-check.js +61 -0
- package/.agents/harness/opencode/plugins/syn-pretool-check.js +68 -0
- package/.agents/harness/opencode/plugins/syn-turnend-guard.js +105 -0
- package/.agents/harness/opencode/plugins/syn-watch-arm.js +521 -0
- package/.agents/memory/README.md +46 -0
- package/.agents/memory/runes_audit.md +5 -0
- package/.agents/migrations/0001-hodd-layout.sh +38 -0
- package/.agents/migrations/0002-a2a-mcp.sh +27 -0
- package/.agents/migrations/0003-private-data-separation.sh +121 -0
- package/.agents/migrations/0004-hoard-and-realms.sh +104 -0
- package/.agents/migrations/0005-roots-out-of-tree.sh +158 -0
- package/.agents/sandbox/Dockerfile.utgard +19 -0
- package/.agents/sandbox/README.md +14 -0
- package/.agents/sandbox/utgard.config.json +14 -0
- package/.agents/skills/README.md +59 -0
- package/.agents/skills/bragi-marketing/README.md +3 -0
- package/.agents/skills/bragi-marketing/SKILL.md +82 -0
- package/.agents/skills/eindri-homes/README.md +3 -0
- package/.agents/skills/eindri-homes/SKILL.md +291 -0
- package/.agents/skills/eindri-homes/assets/control-plane.md +122 -0
- package/.agents/skills/eindri-homes/assets/dispatch.md +80 -0
- package/.agents/skills/frigg-consent/README.md +3 -0
- package/.agents/skills/frigg-consent/SKILL.md +56 -0
- package/.agents/skills/galdr-ymirsystem/README.md +3 -0
- package/.agents/skills/galdr-ymirsystem/SKILL.md +159 -0
- package/.agents/skills/galdr-ymirsystem/assets/README.md +74 -0
- package/.agents/skills/galdr-ymirsystem/assets/brokk-distro-runtime.md +390 -0
- package/.agents/skills/galdr-ymirsystem/assets/build-method.md +113 -0
- package/.agents/skills/galdr-ymirsystem/assets/build-tool-categories.md +178 -0
- package/.agents/skills/galdr-ymirsystem/assets/eindri-orchestration.md +518 -0
- package/.agents/skills/galdr-ymirsystem/assets/eindri-profiles.md +136 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/README.md +736 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/claude-code.md +197 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/codex.md +191 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/cursor.md +193 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/opencode.md +262 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/pi.md +295 -0
- package/.agents/skills/galdr-ymirsystem/assets/hlidskjalf-ui.md +539 -0
- package/.agents/skills/galdr-ymirsystem/assets/installation.md +763 -0
- package/.agents/skills/galdr-ymirsystem/assets/local-models/HOST-DATA.example.md +72 -0
- package/.agents/skills/galdr-ymirsystem/assets/local-models.md +274 -0
- package/.agents/skills/galdr-ymirsystem/assets/memory-well.md +163 -0
- package/.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md +415 -0
- package/.agents/skills/galdr-ymirsystem/assets/norse-naming.md +325 -0
- package/.agents/skills/galdr-ymirsystem/assets/odrerir-hall.md +133 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/einherjar-spawn.schema.json +81 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/herdr-profile.toml +75 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/pi-profile.yml +101 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/supervision-tree.yml +163 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot-guide.md +58 -0
- package/.agents/skills/galdr-ymirsystem/assets/porting-upstream-to-norse.md +301 -0
- package/.agents/skills/galdr-ymirsystem/assets/principles.md +385 -0
- package/.agents/skills/galdr-ymirsystem/assets/reference-adoption.md +99 -0
- package/.agents/skills/galdr-ymirsystem/assets/registry.md +379 -0
- package/.agents/skills/galdr-ymirsystem/assets/runtime-compliance.md +463 -0
- package/.agents/skills/galdr-ymirsystem/assets/runtime-components.md +553 -0
- package/.agents/skills/galdr-ymirsystem/assets/smidja.md +180 -0
- package/.agents/skills/galdr-ymirsystem/schemas/toon-schemas.md +190 -0
- package/.agents/skills/galdr-ymirsystem/scripts/README.md +45 -0
- package/.agents/skills/galdr-ymirsystem/scripts/bench-one.sh +248 -0
- package/.agents/skills/galdr-ymirsystem/scripts/compliance-check.sh +503 -0
- package/.agents/skills/galdr-ymirsystem/scripts/gpu-sample.sh +43 -0
- package/.agents/skills/galdr-ymirsystem/scripts/stop-all.sh +34 -0
- package/.agents/skills/galdr-ymirsystem/scripts/toon-check.py +188 -0
- package/.agents/skills/gjallarhorn-relay/README.md +3 -0
- package/.agents/skills/gjallarhorn-relay/SKILL.md +283 -0
- package/.agents/skills/groa-update/SKILL.md +90 -0
- package/.agents/skills/hamr-adapters/README.md +3 -0
- package/.agents/skills/hamr-adapters/SKILL.md +123 -0
- package/.agents/skills/hamr-adapters/references/common/control-and-recovery.md +37 -0
- package/.agents/skills/hamr-adapters/references/common/dispatch.md +32 -0
- package/.agents/skills/hamr-adapters/references/common/model-and-effort.md +42 -0
- package/.agents/skills/hamr-adapters/references/common/primary-hooks.md +40 -0
- package/.agents/skills/hamr-adapters/references/harness/claude.md +55 -0
- package/.agents/skills/hamr-adapters/references/harness/codex.md +43 -0
- package/.agents/skills/hamr-adapters/references/harness/cursor.md +75 -0
- package/.agents/skills/hamr-adapters/references/harness/grok.md +69 -0
- package/.agents/skills/hamr-adapters/references/harness/kimi.md +51 -0
- package/.agents/skills/hamr-adapters/references/harness/muse.md +70 -0
- package/.agents/skills/hamr-adapters/references/harness/opencode.md +42 -0
- package/.agents/skills/hamr-adapters/references/harness/pi.md +56 -0
- package/.agents/skills/herdr-panes/README.md +3 -0
- package/.agents/skills/herdr-panes/SKILL.md +92 -0
- package/.agents/skills/herdr-panes/assets/herdr-backend.md +346 -0
- package/.agents/skills/herdr-panes/assets/tmux-backend.md +115 -0
- package/.agents/skills/hnoss-design/DESIGN.md +19 -0
- package/.agents/skills/hnoss-design/README.md +3 -0
- package/.agents/skills/hnoss-design/SKILL.md +83 -0
- package/.agents/skills/hvild-afk/README.md +3 -0
- package/.agents/skills/hvild-afk/SKILL.md +241 -0
- package/.agents/skills/jord-projects/README.md +3 -0
- package/.agents/skills/jord-projects/SKILL.md +92 -0
- package/.agents/skills/lifecycle/SKILL.md +56 -0
- package/.agents/skills/lifecycle/smoke_test.sh +57 -0
- package/.agents/skills/lifecycle/start.sh +21 -0
- package/.agents/skills/lifecycle/status.sh +35 -0
- package/.agents/skills/lifecycle/stop.sh +16 -0
- package/.agents/skills/muninn-stow/README.md +3 -0
- package/.agents/skills/muninn-stow/SKILL.md +309 -0
- package/.agents/skills/no-mistakes/SKILL.md +379 -0
- package/.agents/skills/nornir-schedule/README.md +3 -0
- package/.agents/skills/nornir-schedule/SKILL.md +25 -0
- package/.agents/skills/nornir-schedule/assets/events.md +137 -0
- package/.agents/skills/nornir-schedule/assets/quota.md +131 -0
- package/.agents/skills/nsr-compliance/README.md +3 -0
- package/.agents/skills/nsr-compliance/SKILL.md +29 -0
- package/.agents/skills/nsr-compliance/assets/nsr/README.md +40 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/README.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/git-workflow.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/security.md +22 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/tech-stack.md +8 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/SKILL.md +71 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/config/core_four.yaml +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/validate_code.sh +29 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/verify_docs.py +66 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/generate.sh +109 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/telemetry/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/README.md +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/README.md +36 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/SKILL-template.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/README.md +25 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/SKILL.md +13 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/create_branch.sh +6 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/safe_commit.sh +9 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/sync_upstream.sh +6 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/README.md +27 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/SKILL.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/smoke_test.sh +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/start.sh +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/status.sh +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/stop.sh +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/core_four.yaml +13 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/README.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/api.md +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/compliance-wiring.md +155 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/frontend.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/README.md +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/README.md +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/template-README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/deploy.sh +49 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/development.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/production.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/staging.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/template.env.example +8 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/README.md +26 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/agent.md +7 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/developers/dev-1.md +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/linux.md +9 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/macos.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/shared.md +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/windows.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/README.md +25 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/_template.md +41 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/hosting-1.md +41 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/README.md +21 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/README.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/deployment.md +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/disaster-recovery.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/ops-tasks.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/features/README.md +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/project-skills.md +146 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/software-compliance-research.md +269 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/working-with-agents.md +260 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/AGENTS.md +38 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/ARCHITECTURE.md +36 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/BEST_PRACTICES.md +27 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/CI_CD.md +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/FEATURES.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/README.md +22 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/RULES.md +37 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/STRUCTURE.md +45 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/TECH_STACK.md +28 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scaffold-spec.md +63 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scripts/scaffold.sh +103 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scripts/validate.sh +52 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/SKILL.md +71 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/config/core_four.yaml +16 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/validate_code.sh +29 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/verify_docs.py +66 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/generate.sh +109 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/telemetry/README.md +11 -0
- package/.agents/skills/pr-ops/README.md +3 -0
- package/.agents/skills/pr-ops/SKILL.md +109 -0
- package/.agents/skills/ratatoskr-a2a/README.md +3 -0
- package/.agents/skills/ratatoskr-a2a/SKILL.md +148 -0
- package/.agents/skills/rules-check-drift/SKILL.md +81 -0
- package/.agents/skills/saga-bearings/README.md +3 -0
- package/.agents/skills/saga-bearings/SKILL.md +26 -0
- package/.agents/skills/saga-bearings/assets/bearings.md +161 -0
- package/.agents/skills/saga-bearings/assets/board-template.html +731 -0
- package/.agents/skills/saga-bearings/assets/recap.md +56 -0
- package/.agents/skills/syn-recovery/README.md +3 -0
- package/.agents/skills/syn-recovery/SKILL.md +54 -0
- package/.agents/skills/tyr-check/README.md +3 -0
- package/.agents/skills/tyr-check/SKILL.md +218 -0
- package/.agents/skills/urdh-hold/README.md +3 -0
- package/.agents/skills/urdh-hold/SKILL.md +25 -0
- package/.agents/skills/urdh-hold/assets/decisions.md +15 -0
- package/.agents/skills/urdh-hold/assets/hold.md +54 -0
- package/.agents/skills/vor-diagnostics/README.md +3 -0
- package/.agents/skills/vor-diagnostics/SKILL.md +68 -0
- package/.agents/skills/ymir-host/README.md +3 -0
- package/.agents/skills/ymir-host/SKILL.md +35 -0
- package/.agents/skills/ymir-host/assets/desktop.md +36 -0
- package/.agents/skills/ymir-host/assets/install.md +69 -0
- package/.agents/skills/ymir-host/assets/omarchy.md +297 -0
- package/.agents/skills/ymir-host/assets/runbooks.md +15 -0
- package/.agents/skills/ymir-host/assets/thjazi.md +220 -0
- package/.agents/skills/ymir-host/assets/update.md +64 -0
- package/.agents/tests/assets/board-render-harness.mjs +117 -0
- package/.agents/tests/cmux-test-safety.sh +51 -0
- package/.agents/tests/fixtures.sh +291 -0
- package/.agents/tests/fm-afk-inject-e2e.test.sh +428 -0
- package/.agents/tests/fm-afk-inject-herdr-e2e.test.sh +536 -0
- package/.agents/tests/fm-afk-launch.test.sh +961 -0
- package/.agents/tests/fm-afk-pi-herdr-return-e2e.test.sh +297 -0
- package/.agents/tests/fm-afk-return.test.sh +283 -0
- package/.agents/tests/fm-arm-pretool-check.test.sh +482 -0
- package/.agents/tests/fm-ask-user-authority.test.sh +42 -0
- package/.agents/tests/fm-backend-autodetect-smoke.test.sh +176 -0
- package/.agents/tests/fm-backend-cmux-smoke.test.sh +188 -0
- package/.agents/tests/fm-backend-cmux.test.sh +1166 -0
- package/.agents/tests/fm-backend-herdr-eventwait-smoke.test.sh +136 -0
- package/.agents/tests/fm-backend-herdr-eventwait.test.py +106 -0
- package/.agents/tests/fm-backend-herdr-focus-flash-e2e.test.sh +409 -0
- package/.agents/tests/fm-backend-herdr-launcher-workspace-e2e.test.sh +437 -0
- package/.agents/tests/fm-backend-herdr-presentation-e2e.test.sh +1424 -0
- package/.agents/tests/fm-backend-herdr-prune-safety-e2e.test.sh +180 -0
- package/.agents/tests/fm-backend-herdr-respawn-idem-e2e.test.sh +182 -0
- package/.agents/tests/fm-backend-herdr-smoke.test.sh +355 -0
- package/.agents/tests/fm-backend-herdr-workspace-per-home-e2e.test.sh +251 -0
- package/.agents/tests/fm-backend-herdr.test.sh +4606 -0
- package/.agents/tests/fm-backend-orca.test.sh +1357 -0
- package/.agents/tests/fm-backend-tmux-smoke.test.sh +173 -0
- package/.agents/tests/fm-backend-zellij-smoke.test.sh +205 -0
- package/.agents/tests/fm-backend-zellij.test.sh +1360 -0
- package/.agents/tests/fm-backend.test.sh +1142 -0
- package/.agents/tests/fm-backlog-atomicity.test.sh +2302 -0
- package/.agents/tests/fm-backlog-handoff.test.sh +1360 -0
- package/.agents/tests/fm-bearings-board-render.test.sh +135 -0
- package/.agents/tests/fm-bearings-board.test.sh +414 -0
- package/.agents/tests/fm-bearings-snapshot.test.sh +1990 -0
- package/.agents/tests/fm-bootstrap-network-parallel.test.sh +316 -0
- package/.agents/tests/fm-bootstrap.test.sh +1178 -0
- package/.agents/tests/fm-branch-supervision.test.sh +552 -0
- package/.agents/tests/fm-brief.test.sh +785 -0
- package/.agents/tests/fm-busy-adapter-wiring.test.sh +324 -0
- package/.agents/tests/fm-busy-state.test.sh +465 -0
- package/.agents/tests/fm-calm-pi-extension.test.sh +3979 -0
- package/.agents/tests/fm-captain-hold-lifecycle.test.sh +1187 -0
- package/.agents/tests/fm-cd-pretool-check.test.sh +400 -0
- package/.agents/tests/fm-check-unregister.test.sh +198 -0
- package/.agents/tests/fm-classify-corr-token.test.sh +543 -0
- package/.agents/tests/fm-classify-decision-key.test.sh +340 -0
- package/.agents/tests/fm-claude-stop-autoarm-live-e2e.test.sh +164 -0
- package/.agents/tests/fm-claude-stop-autoarm.test.sh +1190 -0
- package/.agents/tests/fm-cmux-claude-composer-live-e2e.test.sh +110 -0
- package/.agents/tests/fm-codex-continuity-live-e2e.test.sh +55 -0
- package/.agents/tests/fm-composer-ghost.test.sh +716 -0
- package/.agents/tests/fm-composer-lib.test.sh +666 -0
- package/.agents/tests/fm-composer-matrix-live-e2e.test.sh +220 -0
- package/.agents/tests/fm-control-herdr-smoke.test.sh +149 -0
- package/.agents/tests/fm-control-relaunch.test.sh +1530 -0
- package/.agents/tests/fm-control.test.sh +910 -0
- package/.agents/tests/fm-crew-state.test.sh +1610 -0
- package/.agents/tests/fm-cursor-harness.test.sh +404 -0
- package/.agents/tests/fm-cursor-primary-live-e2e.test.sh +217 -0
- package/.agents/tests/fm-cursor-primary.test.sh +708 -0
- package/.agents/tests/fm-daemon.test.sh +2740 -0
- package/.agents/tests/fm-documentation-audiences.test.sh +141 -0
- package/.agents/tests/fm-ensure-agents-md.test.sh +371 -0
- package/.agents/tests/fm-extension-binding.test.sh +2187 -0
- package/.agents/tests/fm-fleet-snapshot-view.test.sh +816 -0
- package/.agents/tests/fm-fleet-sync.test.sh +721 -0
- package/.agents/tests/fm-gate-refuse.test.sh +356 -0
- package/.agents/tests/fm-gitignore-config.test.sh +89 -0
- package/.agents/tests/fm-gotmp.test.sh +230 -0
- package/.agents/tests/fm-grok-continuity-live-e2e.test.sh +112 -0
- package/.agents/tests/fm-grok-harness.test.sh +117 -0
- package/.agents/tests/fm-grok-stop-live-e2e.test.sh +219 -0
- package/.agents/tests/fm-guard-stale-banner.test.sh +709 -0
- package/.agents/tests/fm-harness-adapter-instructions-live-e2e.test.sh +134 -0
- package/.agents/tests/fm-harness-adapter-references.test.sh +30 -0
- package/.agents/tests/fm-harness-liveness-drift-live-e2e.test.sh +151 -0
- package/.agents/tests/fm-herdr-lab.test.sh +243 -0
- package/.agents/tests/fm-herdr-session-cleanup-e2e.test.sh +146 -0
- package/.agents/tests/fm-herdr-session-cleanup.test.sh +329 -0
- package/.agents/tests/fm-herdr-submit-confirm-live-e2e.test.sh +125 -0
- package/.agents/tests/fm-herdr-version-floor-live-e2e.test.sh +144 -0
- package/.agents/tests/fm-home-summary-refresh.test.sh +971 -0
- package/.agents/tests/fm-inactive-reconcile.test.sh +485 -0
- package/.agents/tests/fm-kimi-harness.test.sh +687 -0
- package/.agents/tests/fm-lint-workflows.test.sh +532 -0
- package/.agents/tests/fm-lint.test.sh +1023 -0
- package/.agents/tests/fm-muse-harness.test.sh +932 -0
- package/.agents/tests/fm-muse-signals-live-e2e.test.sh +205 -0
- package/.agents/tests/fm-no-mistakes-required.test.sh +72 -0
- package/.agents/tests/fm-on.test.sh +507 -0
- package/.agents/tests/fm-opencode-primary-live-e2e.test.sh +357 -0
- package/.agents/tests/fm-operational-input.test.sh +160 -0
- package/.agents/tests/fm-peek-remote.test.sh +110 -0
- package/.agents/tests/fm-pending-reply.test.sh +1288 -0
- package/.agents/tests/fm-pi-branch-extension.test.sh +3182 -0
- package/.agents/tests/fm-pi-branch-live-e2e.test.sh +527 -0
- package/.agents/tests/fm-pi-primary-live-e2e.test.sh +345 -0
- package/.agents/tests/fm-pi-primary-types.test.sh +68 -0
- package/.agents/tests/fm-pi-watch-extension.test.sh +2843 -0
- package/.agents/tests/fm-pr-check-security.test.sh +2140 -0
- package/.agents/tests/fm-pr-merge.test.sh +2135 -0
- package/.agents/tests/fm-procevent-quota.test.sh +225 -0
- package/.agents/tests/fm-procevent-when.test.sh +406 -0
- package/.agents/tests/fm-procevent.test.sh +1745 -0
- package/.agents/tests/fm-project-origin.test.sh +110 -0
- package/.agents/tests/fm-public-followup.test.sh +2272 -0
- package/.agents/tests/fm-quota-array-dispatch-live-e2e.test.sh +526 -0
- package/.agents/tests/fm-quota-choose.test.sh +626 -0
- package/.agents/tests/fm-remote-backlog-handoff.test.sh +453 -0
- package/.agents/tests/fm-remote-doctor.test.sh +625 -0
- package/.agents/tests/fm-remote-entrypoint.test.sh +59 -0
- package/.agents/tests/fm-remote-job-orphan-reap.test.sh +205 -0
- package/.agents/tests/fm-remote-job.test.sh +768 -0
- package/.agents/tests/fm-remote-reply.test.sh +520 -0
- package/.agents/tests/fm-remote-secondmate-lifecycle-e2e.test.sh +1256 -0
- package/.agents/tests/fm-remote-secondmate-parent-binding.test.sh +326 -0
- package/.agents/tests/fm-remote-secondmate-trace-context.test.sh +310 -0
- package/.agents/tests/fm-remote-transport-lanes.test.sh +431 -0
- package/.agents/tests/fm-review-diff.test.sh +176 -0
- package/.agents/tests/fm-secondmate-harness.test.sh +2600 -0
- package/.agents/tests/fm-secondmate-lifecycle-e2e.test.sh +259 -0
- package/.agents/tests/fm-secondmate-liveness.test.sh +559 -0
- package/.agents/tests/fm-secondmate-reconcile.test.sh +732 -0
- package/.agents/tests/fm-secondmate-safety.test.sh +2972 -0
- package/.agents/tests/fm-secondmate-sync.test.sh +913 -0
- package/.agents/tests/fm-send-inbox-doorbell-live-e2e.test.sh +206 -0
- package/.agents/tests/fm-send-inbox.test.sh +352 -0
- package/.agents/tests/fm-send-popup-settle.test.sh +167 -0
- package/.agents/tests/fm-send-remote-delivery.test.sh +796 -0
- package/.agents/tests/fm-send-resolve-key.test.sh +551 -0
- package/.agents/tests/fm-send-secondmate-marker-herdr-e2e.test.sh +187 -0
- package/.agents/tests/fm-send-secondmate-marker.test.sh +278 -0
- package/.agents/tests/fm-send-settle.test.sh +147 -0
- package/.agents/tests/fm-send-strict.test.sh +241 -0
- package/.agents/tests/fm-session-lock-ancestry.test.sh +365 -0
- package/.agents/tests/fm-session-start.test.sh +2515 -0
- package/.agents/tests/fm-sessionstart-hook-live-e2e.test.sh +631 -0
- package/.agents/tests/fm-sessionstart-instruction-refresh-live-e2e.test.sh +230 -0
- package/.agents/tests/fm-sessionstart-nudge.test.sh +1039 -0
- package/.agents/tests/fm-shared-captain-inheritance.test.sh +404 -0
- package/.agents/tests/fm-spawn-batch.test.sh +148 -0
- package/.agents/tests/fm-spawn-dispatch-profile.test.sh +827 -0
- package/.agents/tests/fm-spawn-pool-base-freshen.test.sh +440 -0
- package/.agents/tests/fm-spawn-worktree-settle.test.sh +147 -0
- package/.agents/tests/fm-startup-memory-budget.test.sh +333 -0
- package/.agents/tests/fm-startup-network.test.sh +712 -0
- package/.agents/tests/fm-stow-cascade.test.sh +370 -0
- package/.agents/tests/fm-subagent-pretool-check.test.sh +291 -0
- package/.agents/tests/fm-supervision-events.test.sh +156 -0
- package/.agents/tests/fm-supervision-instructions.test.sh +189 -0
- package/.agents/tests/fm-tangle-guard.test.sh +277 -0
- package/.agents/tests/fm-task-delivery.test.sh +420 -0
- package/.agents/tests/fm-task-inbox.test.sh +513 -0
- package/.agents/tests/fm-teardown-endpoint-safety.test.sh +374 -0
- package/.agents/tests/fm-teardown.test.sh +2665 -0
- package/.agents/tests/fm-test-fixture-cleanup.test.sh +172 -0
- package/.agents/tests/fm-test-fixtures.test.sh +132 -0
- package/.agents/tests/fm-test-isolation-proof.test.sh +278 -0
- package/.agents/tests/fm-test-run.test.sh +1196 -0
- package/.agents/tests/fm-tmux-agent-liveness.test.sh +354 -0
- package/.agents/tests/fm-tmux-submit-busy.test.sh +340 -0
- package/.agents/tests/fm-tool-update-check.test.sh +1044 -0
- package/.agents/tests/fm-trace-context-lib.test.sh +253 -0
- package/.agents/tests/fm-trace-context-spawn.test.sh +581 -0
- package/.agents/tests/fm-transition-lib.test.sh +54 -0
- package/.agents/tests/fm-turnend-guard.test.sh +1822 -0
- package/.agents/tests/fm-update.test.sh +304 -0
- package/.agents/tests/fm-vendor-auth-probe.test.sh +395 -0
- package/.agents/tests/fm-voice-relay.test.sh +4741 -0
- package/.agents/tests/fm-wake-daemon-lifecycle-e2e.test.sh +171 -0
- package/.agents/tests/fm-wake-drain-open-decisions-cursor.test.sh +356 -0
- package/.agents/tests/fm-wake-drain-open-decisions.test.sh +226 -0
- package/.agents/tests/fm-wake-drain-unread-status.test.sh +379 -0
- package/.agents/tests/fm-wake-queue.test.sh +1224 -0
- package/.agents/tests/fm-watch-arm.test.sh +821 -0
- package/.agents/tests/fm-watch-checkpoint.test.sh +87 -0
- package/.agents/tests/fm-watch-recovery-loop.test.sh +223 -0
- package/.agents/tests/fm-watch-triage.test.sh +3889 -0
- package/.agents/tests/fm-watcher-lock.test.sh +1133 -0
- package/.agents/tests/fm-x-mode.test.sh +3042 -0
- package/.agents/tests/gleipnir-guard-pretool-check.test.sh +51 -0
- package/.agents/tests/gleipnir-machine-lock.test.sh +130 -0
- package/.agents/tests/herdr-test-safety.sh +42 -0
- package/.agents/tests/lib.sh +315 -0
- package/.agents/tests/remote-herdr-fixture.sh +125 -0
- package/.agents/tests/secondmate-helpers.sh +193 -0
- package/.agents/tests/smoke.test.sh +93 -0
- package/.agents/tests/wake-helpers.sh +338 -0
- package/.agents/tests/zellij-test-safety.sh +60 -0
- package/.agents/tools/README.md +10 -0
- package/.agents/tools/bin/tasks-cli +267 -0
- package/.agents/tools/tasks-cli.ts +216 -0
- package/AGENTS.md +498 -0
- package/CHANGELOG.md +1913 -0
- package/LICENSE +1 -1
- package/NOTICE +63 -0
- package/README.md +114 -60
- package/RULES/01-domains.md +51 -0
- package/RULES/02-agents.md +78 -0
- package/RULES/03-houses.md +61 -0
- package/RULES/04-hoard.md +97 -0
- package/RULES/05-platforms.md +67 -0
- package/RULES/06-append-only.md +108 -0
- package/RULES/07-config.md +101 -0
- package/RULES/08-delivery-gate.md +75 -0
- package/RULES/09-electron.md +58 -0
- package/RULES/README.md +22 -0
- package/bin/README.md +107 -0
- package/bin/a2a-mcp.sh +133 -0
- package/bin/a2a-serve.py +103 -0
- package/bin/a2a-serve.sh +8 -0
- package/bin/a2a-talk.sh +50 -0
- package/bin/a2abridge-ensure.sh +108 -0
- package/bin/agent-run.sh +43 -0
- package/bin/agents-config.sh +256 -0
- package/bin/apodex-smoke-test.sh +105 -0
- package/bin/bifrost-bridge.sh +131 -0
- package/bin/bifrost-ingress.sh +77 -0
- package/bin/bootstrap-macos.sh +112 -0
- package/bin/bootstrap-windows.ps1 +112 -0
- package/bin/branch-guard.sh +64 -0
- package/bin/brokk +73 -0
- package/bin/brokk-classify-lib.sh +1770 -0
- package/bin/brokk-lease-lib.sh +222 -0
- package/bin/brokk-lease.sh +193 -0
- package/bin/brokk-lint.sh +65 -0
- package/bin/brokk-send.sh +51 -0
- package/bin/brokk-update.sh +9 -0
- package/bin/brokk-wake-grant.sh +127 -0
- package/bin/brokk-wake-lib.sh +1849 -0
- package/bin/changelog-assemble.sh +154 -0
- package/bin/changelog-guard.sh +197 -0
- package/bin/crash-sense.sh +173 -0
- package/bin/design-check.sh +80 -0
- package/bin/design-icon.sh +153 -0
- package/bin/desktop-place.sh +224 -0
- package/bin/docs-guard.sh +39 -0
- package/bin/editor-place.sh +225 -0
- package/bin/eindri-acclaim.sh +47 -0
- package/bin/eindri-control.sh +28 -0
- package/bin/eindri-role.sh +83 -0
- package/bin/eindri-seat.sh +83 -0
- package/bin/eindri-seen.sh +54 -0
- package/bin/eindri-send.sh +15 -0
- package/bin/eindri-start.sh +98 -0
- package/bin/eindri-watch.sh +57 -0
- package/bin/einherjar-spawn.sh +576 -0
- package/bin/eir-doctor.sh +158 -0
- package/bin/erindi-brief.sh +271 -0
- package/bin/feature-inventory.sh +73 -0
- package/bin/fleet-apply.sh +81 -0
- package/bin/github-deploy.sh +94 -0
- package/bin/gjallarhorn-expose.sh +136 -0
- package/bin/gjallarhorn-notify.sh +71 -0
- package/bin/gjallarhorn-purge.sh +67 -0
- package/bin/gjallarhorn-tunnel.sh +85 -0
- package/bin/gleipnir-lock-lib.sh +284 -0
- package/bin/groa-update.sh +130 -0
- package/bin/hall-snapshot.sh +111 -0
- package/bin/hamr-harness.sh +246 -0
- package/bin/heimdall-ssh-keys.sh +374 -0
- package/bin/herdr-agents.py +44 -0
- package/bin/herdr-ensure.sh +104 -0
- package/bin/herdr-run.sh +452 -0
- package/bin/hermes-ensure.sh +88 -0
- package/bin/hlidskjalf-agents.sh +172 -0
- package/bin/hlidskjalf-usage.sh +196 -0
- package/bin/hoard-guard.sh +135 -0
- package/bin/hoard-lib.sh +105 -0
- package/bin/hodd.sh +102 -0
- package/bin/host-sense.sh +199 -0
- package/bin/huginn-research-worker.sh +121 -0
- package/bin/local-model-lock.sh +70 -0
- package/bin/mimir-bridge.py +259 -0
- package/bin/mimir-bridge.sh +100 -0
- package/bin/mimir-ingest.sh +131 -0
- package/bin/mimir-reflect.sh +27 -0
- package/bin/mimir.sh +113 -0
- package/bin/mjollnir-webhook.sh +72 -0
- package/bin/mjollnir.sh +104 -0
- package/bin/model-hardware.sh +96 -0
- package/bin/model-resolve.sh +160 -0
- package/bin/models-detect.sh +178 -0
- package/bin/nornir-cron-start.sh +162 -0
- package/bin/nornir-job-daily-briefing.sh +191 -0
- package/bin/nornir-job-git-sync.sh +152 -0
- package/bin/nornir-job-hall-snapshot.sh +28 -0
- package/bin/nornir-job-memory-housekeeping.sh +114 -0
- package/bin/nornir-job-nsr-compliance.sh +54 -0
- package/bin/nornir-job-observer.sh +166 -0
- package/bin/nornir-job-skillopt-sleep.sh +76 -0
- package/bin/npm-publish.sh +136 -0
- package/bin/omarchy-hook-install.sh +60 -0
- package/bin/omarchy-install.sh +161 -0
- package/bin/omarchy-plugins.sh +187 -0
- package/bin/omarchy-sense.sh +162 -0
- package/bin/perm-guard.sh +30 -0
- package/bin/pi-agent.sh +68 -0
- package/bin/pi-ensure.sh +77 -0
- package/bin/pi-local.sh +37 -0
- package/bin/pi-model-agnostic.sh +71 -0
- package/bin/pi-seat.sh +63 -0
- package/bin/prereq-ensure.sh +166 -0
- package/bin/private-guard.sh +58 -0
- package/bin/project-git.sh +69 -0
- package/bin/public-guard.sh +71 -0
- package/bin/ratatoskr.sh +49 -0
- package/bin/realm-lib.sh +32 -0
- package/bin/repo-scrub.sh +62 -0
- package/bin/rodd-operational-input.sh +250 -0
- package/bin/runes-append.sh +198 -0
- package/bin/saga-session-start.sh +172 -0
- package/bin/saga-sessionstart-run.sh +79 -0
- package/bin/saga-wake-drain.sh +41 -0
- package/bin/secret-guard.sh +63 -0
- package/bin/sessrumnir-ensure.sh +100 -0
- package/bin/sessrumnir-sync.sh +237 -0
- package/bin/sessrumnir.sh +104 -0
- package/bin/skillopt-setup.sh +76 -0
- package/bin/skuld-branch-outcome.sh +203 -0
- package/bin/skuld-branch-prompt.sh +101 -0
- package/bin/smidja-bootstrap.sh +94 -0
- package/bin/smidja-observe.sh +86 -0
- package/bin/syn-arm-pretool-check.sh +57 -0
- package/bin/syn-asset-pretool-check.sh +89 -0
- package/bin/syn-cd-pretool-check.sh +28 -0
- package/bin/syn-guard-pretool-check.sh +83 -0
- package/bin/syn-spawn-pretool-check.sh +58 -0
- package/bin/syn-turnend-guard.sh +36 -0
- package/bin/syn-watch-arm.sh +99 -0
- package/bin/tailscale-sync.sh +203 -0
- package/bin/telegram-bot.sh +82 -0
- package/bin/toolchain.sh +74 -0
- package/bin/ui-truth-check.sh +75 -0
- package/bin/utgard.sh +111 -0
- package/bin/valhalla.sh +115 -0
- package/bin/valknut-load.sh +298 -0
- package/bin/vor-crew-state.sh +124 -0
- package/bin/wedge-notify.sh +60 -0
- package/bin/workspace-provision.sh +80 -0
- package/bin/workspace-rag.sh +163 -0
- package/bin/wyrd-db.sh +47 -0
- package/bin/yggdrasil.sh +152 -0
- package/bin/ymir-edit.sh +145 -0
- package/bin/ymir-install.sh +806 -0
- package/bin/ymir-invite.sh +93 -0
- package/bin/ymir-isolation.sh +88 -0
- package/bin/ymir-migrate.sh +61 -0
- package/bin/ymir-plan.sh +356 -0
- package/bin/ymir-platform.sh +348 -0
- package/bin/ymir-say.sh +110 -0
- package/bin/ymir-setup-auth.sh +119 -0
- package/bin/ymir-validate.sh +193 -0
- package/bin/ymir.js +74 -16
- package/docs/Architecture.md +339 -0
- package/docs/design.md +351 -0
- package/docs/installations/README.md +63 -0
- package/docs/installations/ymir-home.md +93 -0
- package/docs/integration.md +105 -0
- package/docs/lore.md +1060 -0
- package/docs/research/agent-harnesses.md +290 -0
- package/docs/runbooks/README.md +19 -0
- package/docs/runbooks/a2a.md +91 -0
- package/docs/runbooks/agent-permissions.md +99 -0
- package/docs/runbooks/agents.md +57 -0
- package/docs/runbooks/models.md +69 -0
- package/docs/runbooks/realm-onboarding.md +60 -0
- package/docs/runbooks/secrets-and-hoard.md +60 -0
- package/docs/runbooks/updates-and-migrations.md +110 -0
- package/docs/runbooks/worktrees-isolation.md +72 -0
- package/docs/session-start.md +105 -0
- package/docs/skillopt-integration.md +321 -0
- package/docs/sync-system.md +66 -0
- package/docs/workspaces.md +104 -0
- package/docs/ymir-rut.md +260 -0
- package/package.json +54 -14
- package/packaging/build.sh +74 -0
- package/packaging/macos/Ymir Installer.command +43 -0
- package/packaging/windows/ymir-setup.nsi +74 -0
- package/scripts/README.md +22 -0
- package/scripts/electron.sh +269 -0
- package/scripts/lower.sh +34 -0
- package/scripts/raise.sh +42 -0
- package/scripts/start.sh +217 -0
- package/scripts/stop.sh +113 -0
- package/install.sh +0 -35
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hamr
|
|
3
|
+
description: >-
|
|
4
|
+
Agent-only reference for Brokk harness operations.
|
|
5
|
+
Use before spawning or recovering a Eindri or Eindri-home, handling a trust dialog, sending a harness-specific skill invocation, interrupting or exiting an agent, resuming an exited agent, or verifying a new harness adapter.
|
|
6
|
+
Contains verified facts for claude, codex, opencode, pi, pi-signed, grok, kimi, cursor, and muse.
|
|
7
|
+
user-invocable: false
|
|
8
|
+
metadata:
|
|
9
|
+
internal: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# hamr-adapters — harness adapters — per-harness reference
|
|
13
|
+
|
|
14
|
+
This is the one skill, trigger, and routing owner for harness-specific Brokk operations.
|
|
15
|
+
Load this router first, then exactly the common reference and one harness reference selected below.
|
|
16
|
+
When an action spans rows, load the union once rather than every reference.
|
|
17
|
+
Files under `references/` are resources of this skill, not additional catalogued skills.
|
|
18
|
+
|
|
19
|
+
## Path contract
|
|
20
|
+
|
|
21
|
+
The skill directory is the directory containing this `SKILL.md`.
|
|
22
|
+
Resolve on-demand reference links and relative links to their executable, documentation, or sibling-skill owners against the skill directory, including links named by a nested reference.
|
|
23
|
+
Operational paths keep the context named by their owner: `config/` and active-home settings belong to the active Brokk home, `state/` belongs to that home, and project settings such as `.claude/settings.json` belong to the target project.
|
|
24
|
+
|
|
25
|
+
## Non-negotiable safety
|
|
26
|
+
|
|
27
|
+
Never dispatch a Eindri or Eindri-home on an unverified adapter.
|
|
28
|
+
If `config/crew-harness` or `config/Eindri-home-harness` names one, tell the Allfather under `../../../AGENTS.md` section 9 that the requested worker runtime is not verified, use Brokk's own verified runtime for current work, and ask only whether to verify the requested runtime for future work.
|
|
29
|
+
Do not pause current work for that choice.
|
|
30
|
+
|
|
31
|
+
On `unknown`, ask the Allfather instead of guessing.
|
|
32
|
+
A current Allfather override beats detection, while a per-task override governs only that dispatch.
|
|
33
|
+
For recovery and control, use the exact `harness=` in `state/<id>.meta`; never infer it from a model or provider.
|
|
34
|
+
|
|
35
|
+
Deliver lifecycle actions only through `../../../bin/brokk-control.sh <task-id> interrupt|exit|relaunch`.
|
|
36
|
+
Never type an interrupt key or exit command through `brokk-send`, where routing-marked lifecycle text becomes chat.
|
|
37
|
+
Trust handling is complete only when inspection proves the target started processing its instructions; delivery success alone is not proof.
|
|
38
|
+
Muse is verified only for Eindri and scout work, never a Eindri-home or primary.
|
|
39
|
+
|
|
40
|
+
## Detection
|
|
41
|
+
|
|
42
|
+
`../../../bin/hamr-harness.sh` prints Brokk's own harness from verified environment markers, then process ancestry.
|
|
43
|
+
Only `BROKK_PI_HARNESS=pi-signed` at the launch boundary together with `PI_CODING_AGENT=true` selects Pi-signed; shared unmarked launcher ancestry remains Pi.
|
|
44
|
+
`../../../bin/einherjar-spawn.sh` owns worker marker establishment, while the README launch command owns the signed-primary boundary.
|
|
45
|
+
`../../../bin/hamr-harness.sh crew` resolves `config/crew-harness`, where absent or `default` means Brokk's own harness.
|
|
46
|
+
`../../../bin/hamr-harness.sh Eindri-home` resolves `config/Eindri-home-harness` -> `config/crew-harness` -> Brokk's own harness.
|
|
47
|
+
`../../../bin/einherjar-spawn.sh` re-resolves on every spawn, and an explicit per-spawn argument wins for that spawn.
|
|
48
|
+
A new adapter's verified marker and command name must land in `../../../bin/hamr-harness.sh`.
|
|
49
|
+
|
|
50
|
+
## Operation-to-reference matrix
|
|
51
|
+
|
|
52
|
+
Every emitted plan appends the selected or recorded harness reference after the named common references.
|
|
53
|
+
The `harness-adapter-routing-v1` object is the machine-readable and human-visible selection contract: choose the operation, choose the scenario within it, then append the selected harness reference.
|
|
54
|
+
`default` is the normal scenario when no narrower scenario applies.
|
|
55
|
+
Kimi establishes its unsupported primary boundary in its selected harness reference; Muse follows Non-negotiable safety above.
|
|
56
|
+
A new tool remains undispatchable until the `verify` plan, its harness entry, every named owner, and the live checks land.
|
|
57
|
+
|
|
58
|
+
```json harness-adapter-routing-v1
|
|
59
|
+
{
|
|
60
|
+
"operations": {
|
|
61
|
+
"start": {
|
|
62
|
+
"default": ["references/common/dispatch.md", "references/common/model-and-effort.md"],
|
|
63
|
+
"trust-dialog": ["references/common/control-and-recovery.md"]
|
|
64
|
+
},
|
|
65
|
+
"trust": {"default": ["references/common/control-and-recovery.md"]},
|
|
66
|
+
"skill": {"default": ["references/common/control-and-recovery.md"]},
|
|
67
|
+
"interrupt": {"default": ["references/common/control-and-recovery.md"]},
|
|
68
|
+
"exit": {"default": ["references/common/control-and-recovery.md"]},
|
|
69
|
+
"resume": {"default": ["references/common/control-and-recovery.md"]},
|
|
70
|
+
"recovery": {
|
|
71
|
+
"default": ["references/common/control-and-recovery.md"],
|
|
72
|
+
"replacement-profile": ["references/common/control-and-recovery.md", "references/common/dispatch.md", "references/common/model-and-effort.md"],
|
|
73
|
+
"Eindri-home": ["references/common/control-and-recovery.md", "references/common/primary-hooks.md"],
|
|
74
|
+
"replacement-Eindri-home": ["references/common/control-and-recovery.md", "references/common/dispatch.md", "references/common/model-and-effort.md", "references/common/primary-hooks.md"]
|
|
75
|
+
},
|
|
76
|
+
"primary": {"default": ["references/common/primary-hooks.md"]},
|
|
77
|
+
"model-effort": {
|
|
78
|
+
"default": ["references/common/model-and-effort.md"],
|
|
79
|
+
"configured-profile": ["references/common/model-and-effort.md", "references/common/dispatch.md"]
|
|
80
|
+
},
|
|
81
|
+
"verify": {"default": ["references/common/dispatch.md", "references/common/control-and-recovery.md", "references/common/primary-hooks.md", "references/common/model-and-effort.md"]}
|
|
82
|
+
},
|
|
83
|
+
"harnesses": {
|
|
84
|
+
"claude": "references/harness/claude.md",
|
|
85
|
+
"codex": "references/harness/codex.md",
|
|
86
|
+
"opencode": "references/harness/opencode.md",
|
|
87
|
+
"pi": "references/harness/pi.md",
|
|
88
|
+
"pi-signed": "references/harness/pi.md",
|
|
89
|
+
"grok": "references/harness/grok.md",
|
|
90
|
+
"kimi": "references/harness/kimi.md",
|
|
91
|
+
"cursor": "references/harness/cursor.md",
|
|
92
|
+
"muse": "references/harness/muse.md"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Organisation law (RULES/) — domains, houses, agents
|
|
98
|
+
|
|
99
|
+
Hamr binds the harnesses; the house law governs *who* they run. The source of
|
|
100
|
+
truth is `RULES/`:
|
|
101
|
+
|
|
102
|
+
- **A house is a company** — and only that. **WayOf** is the house.
|
|
103
|
+
- **A domain is a field of knowledge — a *Grein* (pl. *Greinar*).** The eight:
|
|
104
|
+
`ymirlabs` (the system itself) · `brokkforge` (engineering) · `runestone`
|
|
105
|
+
(records/compliance) · `muninn` (memory) · `dvalin` (crafted tools) ·
|
|
106
|
+
`utgard` (creative) · `askr` (human products) · `mannheim` (holding).
|
|
107
|
+
- **Eindri are the specialists** (marketer, builder, researcher, planner,
|
|
108
|
+
reviewer, documenter, scout, …); each names its **domain** and its **craft**.
|
|
109
|
+
|
|
110
|
+
**Agent binding (Rule 02) — Hamr's own concern:**
|
|
111
|
+
|
|
112
|
+
- Canonical profiles live **only** in `.agents/agents/*.md`.
|
|
113
|
+
- Every harness directory is a **symlink** to them — never a copy:
|
|
114
|
+
- OpenCode: `.opencode/agents/<name>.md` → `../../.agents/agents/<profile>.md`
|
|
115
|
+
- Pi: `.pi/agents/<profile>.md` → the same canonical files
|
|
116
|
+
- Never edit `.opencode/agents/` or `.pi/agents/`; edit `.agents/agents/<profile>.md`
|
|
117
|
+
and run `bin/valknut-load.sh --all` to rebind. `bin/hamr-harness.sh` only
|
|
118
|
+
*detects* the harness shape; it never writes agents.
|
|
119
|
+
- **No mock agents:** ids, names, domains, models, and status are real and
|
|
120
|
+
sourced. The demo roster is the single, labelled mock (demo mode only).
|
|
121
|
+
|
|
122
|
+
In the code the eight are `DOMAINS` (`DomainId`/`DomainDef`) and an agent carries
|
|
123
|
+
`domain` (not `house`) — see `src/data/realms.ts` and `AgentCard`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Control and recovery
|
|
2
|
+
|
|
3
|
+
Load this with the running or recorded tool reference for trust, skill invocation, interrupt, exit, resume, or recovery.
|
|
4
|
+
|
|
5
|
+
## Typed data and lifecycle control
|
|
6
|
+
|
|
7
|
+
The router owns lifecycle-only control and recorded-harness selection.
|
|
8
|
+
Conversation and harness-native skill invocation use `../../../bin/brokk-send.sh`.
|
|
9
|
+
`../../../docs/agent-control.md` owns the data-plane split, and `../../../bin/brokk-control-lib.sh` owns executable capabilities.
|
|
10
|
+
Tool-reference exit and interrupt values are empirical records, not keys to improvise; a new adapter remains uncontrollable until they land in that owner.
|
|
11
|
+
Let the control plane verify postconditions.
|
|
12
|
+
|
|
13
|
+
## Trust and skill submission
|
|
14
|
+
|
|
15
|
+
Inspect after spawn within the tool's readiness window.
|
|
16
|
+
Select only its documented trust choice from the active Brokk home, binding `BROKK_HOME` unless already correct, then inspect again under the router-owned completion postcondition.
|
|
17
|
+
No observed dialog proves only that launch.
|
|
18
|
+
|
|
19
|
+
Use the tool's exact skill form, or natural language only when no separate command is verified or the form remains uncertain.
|
|
20
|
+
A successful send or key return is not proof of submission; require the tool-specific postcondition.
|
|
21
|
+
Popup, queued-input, and readiness handling belongs to `../../../bin/brokk-composer-lib.sh` and the selected backend.
|
|
22
|
+
|
|
23
|
+
## Interrupt and exit
|
|
24
|
+
|
|
25
|
+
Use the control plane so capabilities are checked first.
|
|
26
|
+
Interrupt preserves the agent and work; exit stops only the agent and preserves its endpoint, isolated copy, and uncommitted changes.
|
|
27
|
+
Cleanup and discard are not lifecycle verbs.
|
|
28
|
+
The tool reference records repeat, acknowledgement, and clearing behavior, while the executable owner sends or refuses the sequence.
|
|
29
|
+
|
|
30
|
+
## Resume and recovery
|
|
31
|
+
|
|
32
|
+
Native resume availability and form belong solely to the selected tool reference.
|
|
33
|
+
Use native resume only when both that reference and the recovery procedure call for it.
|
|
34
|
+
Deterministic relaunch instead trusts instructions on disk, not a private session.
|
|
35
|
+
|
|
36
|
+
`../stuck-Eindri-recovery/SKILL.md` owns worker recovery and `../Eindri-home-provisioning/SKILL.md` owns Eindri-home recovery; both preserve recorded work.
|
|
37
|
+
The router's recovery scenarios select the additional common references for replacement profiles and eindri-homes.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Dispatch and start
|
|
2
|
+
|
|
3
|
+
Load this with the selected tool reference for dispatch, start, or adapter verification; add `references/common/model-and-effort.md` for either profile axis.
|
|
4
|
+
|
|
5
|
+
## Resolution
|
|
6
|
+
|
|
7
|
+
Use the router's detection and safety sections for static crew and Eindri-home harness resolution and all explicit overrides.
|
|
8
|
+
`config/crew-dispatch.json` can override that static default for one Eindri or scout with concrete harness, model, and effort axes.
|
|
9
|
+
For a profile array, load `quota-array-dispatch` after establishing harness and provider facts here.
|
|
10
|
+
|
|
11
|
+
`../Eindri-home-provisioning/SKILL.md` owns inherited local material.
|
|
12
|
+
Its harness consequence is that a Eindri-home's workers receive literal `config/crew-harness` and `config/crew-dispatch.json`, while the primary-only `config/Eindri-home-harness` is never inherited because eindri-homes do not spawn eindri-homes.
|
|
13
|
+
A concrete crew value such as `codex` carries that runtime into the Eindri-home home.
|
|
14
|
+
Unset or `default` carries no concrete value, so its workers use that home's own or detected harness rather than the primary's effective crew harness.
|
|
15
|
+
The inherited dispatch file applies the same best-fit profiles there.
|
|
16
|
+
|
|
17
|
+
## Owners
|
|
18
|
+
|
|
19
|
+
`../../../bin/einherjar-spawn.sh` owns launch, autonomy, concrete flags, task-kind compatibility, and worker turn-end wiring.
|
|
20
|
+
Natural-language rules stay with Brokk, while scripts receive concrete axes.
|
|
21
|
+
|
|
22
|
+
`../../../bin/brokk-busy-lib.sh` owns semantic busy trust.
|
|
23
|
+
Composer shapes, glyphs, placeholders, popups, rendered delivery signals, and the `empty` / `pending` / `pending-unproven` / `unknown` decision belong only to `../../../bin/brokk-composer-lib.sh`.
|
|
24
|
+
Tool references record empirical knowledge for those executable owners.
|
|
25
|
+
|
|
26
|
+
## Adapter verification
|
|
27
|
+
|
|
28
|
+
For an approved new adapter check, use the spawn owner's raw-launch escape hatch only for a trivial supervised task.
|
|
29
|
+
Verify detection in `../../../bin/hamr-harness.sh`, launch in `../../../bin/einherjar-spawn.sh`, busy state in `../../../bin/brokk-busy-lib.sh`, shared composer behavior in `../../../bin/brokk-composer-lib.sh`, lifecycle in `../../../bin/brokk-control-lib.sh`, and tmux liveness in `../../../bin/backends/tmux.sh` when Eindri-home use is supported.
|
|
30
|
+
Also verify primary integration through `references/common/primary-hooks.md`, model discovery through `references/common/model-and-effort.md`, and one tool record.
|
|
31
|
+
A value remains unreachable until its executable owner, portable regression, applicable credentialed live guard, and verification record land together.
|
|
32
|
+
`../Brokk-coding-guidelines/SKILL.md` owns harness-dependent proof.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Model and effort
|
|
2
|
+
|
|
3
|
+
Load this with the selected tool reference before choosing, validating, or changing either axis.
|
|
4
|
+
Add `references/common/dispatch.md` for configured profile precedence.
|
|
5
|
+
|
|
6
|
+
## Axes and precedence
|
|
7
|
+
|
|
8
|
+
`../../../bin/einherjar-spawn.sh` accepts concrete `--harness`, `--model`, and `--effort` values selected at intake; scripts never parse natural-language dispatch rules.
|
|
9
|
+
The tool reference records verified flags, accepted values, omission behavior, and discovery.
|
|
10
|
+
|
|
11
|
+
Effort precedence is a per-task Allfather instruction, then applicable dispatch profile or Eindri-home pin, then the fallback below.
|
|
12
|
+
Never replace either higher-precedence value.
|
|
13
|
+
Use the fallback only when neither specifies effort.
|
|
14
|
+
|
|
15
|
+
Use `low` for well-understood work with an explicit bounded path and `xhigh` for ambiguous investigation or design.
|
|
16
|
+
Choose intermediate levels as complexity, uncertainty, blast radius, or open-ended reasoning rises.
|
|
17
|
+
If an adapter lacks `xhigh`, cap at its highest supported non-`max` level rather than silently omitting the intent.
|
|
18
|
+
Never select `max` through this fallback; only an explicit per-task or standing Allfather preference permits it.
|
|
19
|
+
|
|
20
|
+
If requested effort is outside the adapter's accepted set, the spawn records `effort=` in task metadata but emits no effort flag.
|
|
21
|
+
This preserves launch success instead of passing a known-bad value.
|
|
22
|
+
A harness with no verified interactive effort flag follows the same record-and-omit contract.
|
|
23
|
+
|
|
24
|
+
## Harness and provider identity
|
|
25
|
+
|
|
26
|
+
Harness identity is independent of model provider.
|
|
27
|
+
`harness=pi` with `model=xai/grok-*` is Pi using xAI, not standalone Grok Build, and does not require Grok CLI login.
|
|
28
|
+
`harness=cursor` with `model=cursor-grok-4.5-*` is Cursor routing a Grok model, not `harness=grok`.
|
|
29
|
+
|
|
30
|
+
No script resolves credential provenance for you.
|
|
31
|
+
Establish it from the tool's discovery surface and `quota-axi auth --json` per-provider sources, and show the reasoning rather than inferring it from a name.
|
|
32
|
+
|
|
33
|
+
## Discovery
|
|
34
|
+
|
|
35
|
+
Treat model and provider knowledge as current discovery, not a permanent namespace or mapping.
|
|
36
|
+
Use the selected tool reference's authoritative surface in the current authenticated environment because availability changes by version, account, and configuration.
|
|
37
|
+
|
|
38
|
+
For an unfamiliar namespace, establish support and provider identity from that harness's CLI help, model listing, or current documentation.
|
|
39
|
+
An account-reaching listing that omits a model is concrete unsupported evidence; block the candidate and quote it.
|
|
40
|
+
An unreachable surface establishes nothing; report uncertainty instead of a verdict.
|
|
41
|
+
|
|
42
|
+
For a matched profile array, return to `quota-array-dispatch` only after establishing every candidate's harness support, provider relationship, and uncertainty.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Primary startup and hooks
|
|
2
|
+
|
|
3
|
+
Load this with the detected primary's tool reference before changing session startup, turn-end handling, pre-tool protection, watcher supervision, or Eindri-home integration.
|
|
4
|
+
The tool reference establishes either that identity's empirical path or its unsupported boundary.
|
|
5
|
+
|
|
6
|
+
## Turn end
|
|
7
|
+
|
|
8
|
+
`../../../docs/turnend-guard.md` owns the "no turn ends blind" contract, hook installation, per-surface blocking behavior, and tradeoffs when a hook cannot block.
|
|
9
|
+
`../../../docs/supervision-protocols/` and `../../../bin/brokk-supervision-instructions.sh` own harness-specific wake protocols.
|
|
10
|
+
Never substitute another harness's wait shape.
|
|
11
|
+
`../../../bin/brokk-busy-lib.sh` remains the semantic busy owner; a tool reference names only its source and evidence.
|
|
12
|
+
|
|
13
|
+
Validate any turn-end change against the real harness in a scratch project or throwaway home.
|
|
14
|
+
Update its executable or hook owner, concise tool fact, and `../../../docs/verification/supervision.md` under "Turn-end guard".
|
|
15
|
+
|
|
16
|
+
## Pre-tool protection
|
|
17
|
+
|
|
18
|
+
Supported primaries deny watcher-arm anti-patterns before execution, including shell `&`, truncating pipes, bundling, and broad `pkill -f brokk-watch`.
|
|
19
|
+
`../../../docs/arm-pretool-check.md` owns hook commands, output quirks, and evidence.
|
|
20
|
+
The tool reference names the integration form.
|
|
21
|
+
Validate changes against the real harness in a scratch project before trusting them.
|
|
22
|
+
|
|
23
|
+
A primary must also account for built-in delegation that can create work outside Brokk's durable records.
|
|
24
|
+
Claude's verified delegation guard is in `references/harness/claude.md`.
|
|
25
|
+
`../../../docs/subagent-guard.md` owns its full contract, local hardening, escape hatch, and per-harness applicability review.
|
|
26
|
+
Never generalize Claude tool names or permissions without live evidence.
|
|
27
|
+
|
|
28
|
+
## Session start
|
|
29
|
+
|
|
30
|
+
`../../../AGENTS.md` section 3 remains the behavioral owner.
|
|
31
|
+
`../../../docs/sessionstart-nudge.md` owns native tier assignment, transport, source routing, runtime bound, and fail-open behavior.
|
|
32
|
+
Read it before changing session-open behavior.
|
|
33
|
+
`../../../docs/verification/supervision.md` under "Native session-start delivery" owns active dated evidence.
|
|
34
|
+
|
|
35
|
+
## Watcher supervision
|
|
36
|
+
|
|
37
|
+
`../../../bin/saga-session-start.sh` prints exactly one block for the detected primary.
|
|
38
|
+
Follow only that rendered protocol.
|
|
39
|
+
When changing a watcher adapter, update its file under `../../../docs/supervision-protocols/`, update `../../../docs/turnend-guard.md` if shared idle or turn-end behavior changed, and refresh the tool fact.
|
|
40
|
+
An identity without a dedicated protocol uses its documented unsupported or unknown boundary; never invent one from a similar TUI.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Claude
|
|
2
|
+
|
|
3
|
+
Busy hooks verified 2026-07-28 on Claude Code 2.1.220.
|
|
4
|
+
|
|
5
|
+
## Operating facts
|
|
6
|
+
|
|
7
|
+
| Fact | Value |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Busy | Owned hooks: `UserPromptSubmit` opens while `Stop`, `StopFailure`, and `SessionEnd` close; manual interrupt emits no hook, so control reports delivered keys and live endpoint only, publishes no idle event or cancellation claim, and usually leaves `claude-hook` busy. |
|
|
10
|
+
| Exit | `/exit`. |
|
|
11
|
+
| Interrupt | Single Escape. |
|
|
12
|
+
| Skill | `/<skill>`, for example `/no-mistakes`. |
|
|
13
|
+
| Model | `--model <model>`; discover through the interactive `/model` picker, with alias or full-name shape documented by `claude --help`. |
|
|
14
|
+
| Effort | `--effort <low\|medium\|high\|xhigh\|max>`, verified on 2.1.196. |
|
|
15
|
+
|
|
16
|
+
Fresh-worktree or first-machine launch may show trust or bypass-permissions confirmation.
|
|
17
|
+
Inspect within about 20 seconds, accept the required choice with `BROKK_HOME=<active-home> ../../../bin/brokk-send.sh <window> --key Enter` unless already bound, and verify instructions started.
|
|
18
|
+
|
|
19
|
+
## Composer ghost
|
|
20
|
+
|
|
21
|
+
Completed turns can render dim predicted text inside an empty composer, indistinguishable in plain `tmux capture-pane`.
|
|
22
|
+
The spawn scopes `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false` to every Claude worker and Eindri-home without changing global config.
|
|
23
|
+
CLI `--prompt-suggestions` affects print or SDK mode only and did not suppress interactive ghost text on v2.1.186.
|
|
24
|
+
|
|
25
|
+
As defense in depth, `fm_composer_strip_ghost` in `../../../bin/brokk-composer-lib.sh` removes SGR-2 runs before pending classification on styled tmux, Herdr, and Zellij readers.
|
|
26
|
+
`../../../docs/herdr-backend.md` under "Composer and injection safety" owns dark-TRUECOLOR tradeoffs and `../../../docs/verification/runtime-backends.md` owns captures.
|
|
27
|
+
Styled capture stays internal to the boolean detector; `brokk-peek` and model-facing captures remain plain, without escapes.
|
|
28
|
+
|
|
29
|
+
## Primary integration
|
|
30
|
+
|
|
31
|
+
Primary behavior was verified 2026-07-04 on 2.1.201, preserved 2026-07-08 on 2.1.204, and Stop auto-arm revalidated 2026-07-24 on 2.1.219.
|
|
32
|
+
This differs from the worker hook, which only touches a task marker through `.claude/settings.local.json`.
|
|
33
|
+
|
|
34
|
+
Primary `.claude/settings.json` registers `../../../bin/syn-turnend-guard.sh --claude` and `../../../bin/brokk-claude-stop-autoarm.sh` with `asyncRewake: true` and `timeout: 28800`.
|
|
35
|
+
Guard exit 2 plus stderr forces continuation.
|
|
36
|
+
Stop payload `stop_hook_active=true` follows any hook-driven continuation, including async reawakening, so Claude mode ignores it and uses cooperative claim and epoch plus bounded re-block; default Codex mode keeps it as a one-block loop guard.
|
|
37
|
+
|
|
38
|
+
Project `.claude/settings.json` loads only when the exact project root is the session root; Claude does not search parents, so Brokk starts at repository root.
|
|
39
|
+
Hooks still run through cwd-sensitive `/bin/sh`, so tracked commands anchor through `"$CLAUDE_PROJECT_DIR"/bin/...`.
|
|
40
|
+
`../../../docs/turnend-guard.md` owns details.
|
|
41
|
+
|
|
42
|
+
The Stop-owned watcher hook runs every Stop, foregrounds `../../../bin/syn-watch-arm.sh` only when eligible, and uses exit-2 async reawakening as notification.
|
|
43
|
+
The model handles notifications but never routine re-arm.
|
|
44
|
+
Claude's PreToolUse seatbelt blocks directly, and its deny is honored only with empty stdout; `../../../docs/arm-pretool-check.md` owns that contract.
|
|
45
|
+
|
|
46
|
+
### Delegation guard
|
|
47
|
+
|
|
48
|
+
Claude delegation, scheduling, and worktree tools can create work without `state/<id>.meta`, making guards unable to count it.
|
|
49
|
+
`../../../bin/brokk-subagent-pretool-check.sh` denies delegation-shaped tool names.
|
|
50
|
+
A primary should also keep an untracked home-local `permissions.deny` for known delegation tools so they disappear from the schema.
|
|
51
|
+
Never track it in project `.claude/settings.json`, which is Claude-only and propagates to worker copies where it would disarm legitimate delegation.
|
|
52
|
+
`../../../docs/subagent-guard.md` owns the contract, recommendation, `BROKK_ALLOW_SUBAGENT=1`, and applicability review.
|
|
53
|
+
|
|
54
|
+
On Claude 2.1.217 the tool presents as `Agent`, and both `Agent` and `Task` worked as deny keys in an A/B with nonsense control.
|
|
55
|
+
`permissions.allow` pre-approves rather than controls availability, so no closed positive allowlist exists.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Codex
|
|
2
|
+
|
|
3
|
+
Verified on 2026-06-11 with codex-cli 0.139.0 unless a fact gives a newer version.
|
|
4
|
+
|
|
5
|
+
## Operating facts
|
|
6
|
+
|
|
7
|
+
| Fact | Value |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Busy state | Unknown until a semantic source is live-verified: the app-server turn lifecycle is unreachable for a pane worker, and project lifecycle hooks did not fire for a Brokk-launched worker. |
|
|
10
|
+
| Exit command | `/quit`; its slash popup needs about one second between text and Enter, which the shared submit path used by the control plane handles. |
|
|
11
|
+
| Interrupt | Single Escape. |
|
|
12
|
+
| Skill invocation | `$<skill>`, for example `$no-mistakes`; `/<skill>` is Claude-only and Codex rejects it as "Unrecognized command". |
|
|
13
|
+
| Resume | `codex resume <session-id>`, using the id printed on quit. |
|
|
14
|
+
| Model flag | `--model <model>`. |
|
|
15
|
+
| Effort flag | `-c 'model_reasoning_effort="<low\|medium\|high\|xhigh>"'`, verified on codex-cli 0.142.1 whose installed schema contains `model_reasoning_effort`, active config uses it, and bundled catalog advertises only these four values while omitting `max`. |
|
|
16
|
+
| Model discovery | Open the current interactive session's `/model` picker. |
|
|
17
|
+
|
|
18
|
+
A directory trust dialog appears on the first run for a repository root: "Do you trust the contents of this directory?"
|
|
19
|
+
Accept it with Enter and verify the instructions begin processing.
|
|
20
|
+
The decision persists for the repository, so later worktrees of the same project skip it.
|
|
21
|
+
|
|
22
|
+
## Skill popup
|
|
23
|
+
|
|
24
|
+
A `$<skill>` invocation opens a `$` autocomplete popup.
|
|
25
|
+
Submitting too fast lets the popup swallow Enter, so the invocation never lands.
|
|
26
|
+
`../../../bin/brokk-send.sh` gives a leading `$` a 1.2-second settle before the first Enter only when the exact task metadata records `harness=codex`, with the target backend's submit retry as the safety net.
|
|
27
|
+
That scope is load-bearing because a leading `$` commonly starts ordinary text such as `$5/month` or `$HOME`.
|
|
28
|
+
An explicit `session:window` target has no metadata, so its harness is unknown and uses the non-Codex fast path.
|
|
29
|
+
This is why `$no-mistakes` reaches a Codex worker instead of being consumed by the popup.
|
|
30
|
+
|
|
31
|
+
## Primary integration
|
|
32
|
+
|
|
33
|
+
The primary integration was verified on 2026-07-08 with codex-cli 0.142.1.
|
|
34
|
+
The Brokk primary's `.codex/hooks.json` registers a Stop hook that pipes Codex's payload to `../../../bin/syn-turnend-guard.sh`.
|
|
35
|
+
Codex Stop hooks preserve exit status 2 and stderr to block, and expose `stop_hook_active` for the same one-block loop safety used by the guard's default mode.
|
|
36
|
+
|
|
37
|
+
The Stop payload includes `cwd`, but the tracked hook does not use it to choose the guard executable.
|
|
38
|
+
Codex runs the Stop command with process PWD set to the hook-loaded project root, while no `CODEX_PROJECT_DIR`, `CODEX_WORKSPACE_ROOT`, or `CODEX_CWD` root variable is set.
|
|
39
|
+
The tracked hook anchors to `pwd -P`, verifies that root is Brokk-shaped and hook-bearing, and then invokes the guard with the original payload.
|
|
40
|
+
|
|
41
|
+
Codex's primary watcher protocol is `../../../bin/brokk-watch-checkpoint.sh --seconds "${BROKK_CODEX_WATCH_CHECKPOINT:-180}"`, not `../../../bin/syn-watch-arm.sh`.
|
|
42
|
+
Codex cannot reason while a foreground tool call is running, so the checkpoint is deliberately foreground and bounded to return control regularly for user messages and queued notifications.
|
|
43
|
+
Codex's PreToolUse watcher-arm seatbelt blocks directly through its project hook.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Cursor Agent
|
|
2
|
+
|
|
3
|
+
Verified for crew and scout work on tmux on 2026-08-11 and Herdr on 2026-08-12, and for Eindri-home and primary work on 2026-08-13, with Cursor Agent CLI 2026.08.11-e8db854.
|
|
4
|
+
Cross-harness provider and credential identity is owned by `references/common/model-and-effort.md`.
|
|
5
|
+
|
|
6
|
+
## Operating facts
|
|
7
|
+
|
|
8
|
+
| Fact | Value |
|
|
9
|
+
|---|---|
|
|
10
|
+
| Binary | `fm_cursor_resolve_binary` in `../../../bin/brokk-cursor-lib.sh` resolves stable launcher `cursor-agent` or legacy `agent`, never `cursor`; both symlink into `~/.local/share/cursor-agent/versions/<version>/cursor-agent`, whose target auto-update replaces. |
|
|
11
|
+
| Launch | Positional instructions with `--trust`, `--yolo`, optional `--model <model>`, and `--workspace <absolute-task-worktree>`, after clearing foreign primary markers. |
|
|
12
|
+
| Models | Use current-account `cursor-agent --list-models` or legacy `agent --list-models`; the drifting observed list had only `cursor-grok-4.5-high` and `cursor-grok-4.5-high-fast` for Grok plus several `xhigh` ids, so choose a returned reasoning id and never assume low or medium Grok. |
|
|
13
|
+
| Busy state | `../../../bin/brokk-busy-lib.sh` folds the per-conversation transcript as `cursor-transcript`: `role:user` opens and typed `turn_ended` closes success or abort, covering manual interrupt; nothing is armed or seeded, and this backend-agnostic source was identical on tmux and Herdr. |
|
|
14
|
+
| Exit command | `/exit`. |
|
|
15
|
+
| Interrupt | Single Escape returns the placeholder with no clear key; control makes no cancellation claim because an aborted transcript close appeared within seconds in some runs and not within twenty in others. |
|
|
16
|
+
| Skill invocation | `/<skill>`, for example `/no-mistakes`; Cursor discovers Brokk's user skills. |
|
|
17
|
+
| Resume | No verified native pane resume; use deterministic relaunch. |
|
|
18
|
+
| Autonomy | `--yolo`, documented alias for `--force`; footer `Run Everything`. |
|
|
19
|
+
| Trust | `--trust` suppresses the dialog; `--yolo` does not, and every task has a fresh path. |
|
|
20
|
+
| Marker | `CURSOR_INVOKED_AS=cursor-agent` on agent and children, plus `CURSOR_AGENT=1` on child or tool processes; other `CURSOR_*` variables are not identity markers. |
|
|
21
|
+
| Effort | No verified flag; `references/common/model-and-effort.md` owns unsupported-value handling. |
|
|
22
|
+
| Composer | Bare borderless row with `→` (U+2192); de-emphasized placeholders `Plan, search, build anything` when fresh and `Add a follow-up` later. |
|
|
23
|
+
|
|
24
|
+
The slash popup consumes the first Enter; that Enter closes it and a genuine second Enter submits through the shared retry.
|
|
25
|
+
|
|
26
|
+
## Detection
|
|
27
|
+
|
|
28
|
+
Cursor does not clear inherited `CLAUDECODE`, so a Cursor worker under Claude carries both markers.
|
|
29
|
+
`../../../bin/hamr-harness.sh` tests Cursor first, and launch also clears foreign markers.
|
|
30
|
+
Both remain necessary: sanitization covers Brokk launches, ordering covers hand-started sessions.
|
|
31
|
+
|
|
32
|
+
Cursor is a bundled Node script, so tmux can report bare `node` while `ps -o comm=` carries its install path.
|
|
33
|
+
Bare `node` matches nothing; `../../../bin/brokk-cursor-lib.sh` proves identity from Cursor's name or install tree in path or argv zero.
|
|
34
|
+
Unrelated `node` or `agent` remains `other`, folded to ambiguous rather than dead.
|
|
35
|
+
Auto-update changes the target, not this rule.
|
|
36
|
+
|
|
37
|
+
## Composer and delivery
|
|
38
|
+
|
|
39
|
+
Cursor parks its terminal cursor outside the composer: `#{cursor_y}` was below the footer idle and typed, with `#{cursor_flag}` zero, so cursor-anchored reads are always unknown.
|
|
40
|
+
`../../../bin/brokk-tmux-lib.sh` lets the bottom-most shape win only after structural Cursor proof.
|
|
41
|
+
The composite then reads empty or pending, verified on 2026-08-13, while every other harness keeps strict blank-cursor behavior and a dead shell never reads empty.
|
|
42
|
+
`../../../bin/brokk-supervise-daemon.sh` can therefore require affirmatively empty before away-mode delivery without a Cursor-only branch.
|
|
43
|
+
|
|
44
|
+
Submission also uses an idle-to-busy transition.
|
|
45
|
+
Match stable token `ctrl+c to stop`, never spinner verbs that changed from `Working` to `Running` between turns.
|
|
46
|
+
|
|
47
|
+
Confirmation is verified only on tmux and Herdr.
|
|
48
|
+
Herdr reports Cursor `blocked` in every state, so its native idle path is unreachable; the composer path sees the mid-turn placeholder beside `ctrl+c to stop` as pending.
|
|
49
|
+
`../../../bin/backends/herdr.sh` baselines before Enter and confirms the footer transition, so an already-busy pane cannot confirm.
|
|
50
|
+
|
|
51
|
+
Zellij, cmux, and Orca do not consult that footer.
|
|
52
|
+
A typed-plane native invocation or explicit backend send lands but reports unconfirmed and exits nonzero; ordinary steering uses the durable inbox and exits zero at enqueue.
|
|
53
|
+
Treat this as confirmation failure, not loss, because text lands and busy state comes from the transcript.
|
|
54
|
+
Teaching those backends is separate cross-harness work requiring live checks.
|
|
55
|
+
|
|
56
|
+
Reverse-video placeholder remnants and Herdr half-block edges belong to `../../../bin/brokk-composer-lib.sh`; without the edges a bare composer swallows the footer and idle reads pending.
|
|
57
|
+
`../../../docs/verification/runtime-backends.md` owns captures.
|
|
58
|
+
Refresh with `BROKK_HARNESS_LIVENESS_DRIFT=1 ../../../bin/brokk-test-run.sh ../../../tests/brokk-harness-liveness-drift-live-e2e.test.sh`.
|
|
59
|
+
|
|
60
|
+
## Worktree boundary
|
|
61
|
+
|
|
62
|
+
Brokk enters its acquired worktree and passes the same absolute path through `--workspace`.
|
|
63
|
+
Never pass Cursor `-w` or `--worktree`, which allocates a second copy under `~/.cursor/worktrees` and breaks isolation.
|
|
64
|
+
The CLI supports repeatable `--add-dir`, but the adapter adds none; positional instructions need no grant to their private directory.
|
|
65
|
+
Example: `../../../bin/einherjar-spawn.sh <task-id> <project> --scout --harness cursor --model cursor-grok-4.5-high`.
|
|
66
|
+
|
|
67
|
+
## Primary integration
|
|
68
|
+
|
|
69
|
+
Primary supervision is the stop-hook park in `../../../docs/supervision-protocols/cursor.md` through tracked `.cursor/hooks.json`; primary and Eindri-home launches require `--trust` or hooks do not load.
|
|
70
|
+
Cursor exposes 20 project events plus a Claude-Code compatibility map that loads `.claude/settings.json`.
|
|
71
|
+
Tracked hooks register `stop`, `sessionStart`, and two `preToolUse` seatbelts through `$CURSOR_PROJECT_DIR`; Claude entries stand down on Cursor payloads under `../../../docs/turnend-guard.md`.
|
|
72
|
+
|
|
73
|
+
`stop` cannot block because exit 2 is a silent no-op, so `../../../bin/brokk-turnend-guard-cursor.sh` parks on supervision and returns one bounded `followup_message`.
|
|
74
|
+
It does not fire in headless `cursor-agent -p`.
|
|
75
|
+
`preCompact` is unregistered because it cannot inject context, so digest re-emission after Cursor compaction remains deferred.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Grok Build
|
|
2
|
+
|
|
3
|
+
The xAI `grok` TUI is Claude-Code-compatible.
|
|
4
|
+
Verified initially on 2026-06-29 with 0.2.73, slash submission on 2026-07-03 with 0.2.82, effort on 2026-07-13 with 0.2.99, and exit on 2026-07-19 with 0.2.103.
|
|
5
|
+
Launch shape: `grok --always-approve "$(cat <brief>)"`.
|
|
6
|
+
|
|
7
|
+
## Operating facts
|
|
8
|
+
|
|
9
|
+
| Fact | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Busy state | The last rendered-tail fallback, isolated to Grok pending a semantic source: ASCII mid-turn `Ctrl+c:cancel`, absent from idle bar `Shift+Tab:mode │ Ctrl+.:shortcuts`, never the locale-fragile braille spinner. |
|
|
12
|
+
| Exit | `/exit` prints `Resume this session with: grok --resume <session-id>`; fallback is `Ctrl+Q` twice within 1000ms, `Ctrl+D` quits in VS Code-family terminals, and `Ctrl+C` interrupts. |
|
|
13
|
+
| Interrupt | Single `Ctrl+C`; Escape only focuses scrollback. |
|
|
14
|
+
| Skill | `/<skill>`, for example `/no-mistakes`, with end-to-end user-skill discovery, invocation, and real `no-mistakes axi run` evidence; the popup may consume Enter and fill an argument placeholder, requiring a real second Enter. |
|
|
15
|
+
| Autonomy | `--always-approve`, footer `· always-approve`, verified unattended; `--permission-mode bypassPermissions` is stronger equivalent. |
|
|
16
|
+
| Marker | `GROK_AGENT=1` on child or tool processes in 0.2.73 and no `CLAUDECODE`; a 1.0.0 hook instead had `GROK_HOOK_EVENT`, `GROK_HOOK_NAME`, `GROK_SESSION_ID`, and `GROK_WORKSPACE_ROOT` without `GROK_AGENT`, so ancestry guarantees identity. |
|
|
17
|
+
| Resume | `grok --resume <session-id>`, or `grok -c` / `--continue` for cwd latest; `--fork-session` creates a new id. |
|
|
18
|
+
| Model | `--model <model>`; discover current account models with `grok models`. |
|
|
19
|
+
| Effort | `--reasoning-effort <low\|medium\|high>`, alias `--effort`; version 0.2.99 rejects `xhigh` and `max` with `use one of: high, medium, low`; `references/common/model-and-effort.md` owns fallback and unsupported-value handling. |
|
|
20
|
+
|
|
21
|
+
Reliable Grok rules must account for hook markers as well as the child fast path.
|
|
22
|
+
`../../../docs/turnend-guard.md` under "Harness integrations" owns the marker contract.
|
|
23
|
+
|
|
24
|
+
## Submission and startup
|
|
25
|
+
|
|
26
|
+
Slash autocomplete can turn the first Enter into selection plus an argument hint, including `/no-mistakes`'s optional task argument or `/compact compaction instructions`, without submission.
|
|
27
|
+
The shared classifier keeps that text pending, and retry sends the second Enter on both verified backends; Herdr may also prove a turn through native state.
|
|
28
|
+
|
|
29
|
+
On 2026-07-03 two Grok 0.2.82 Herdr workers left `/no-mistakes` typed for minutes while send returned success.
|
|
30
|
+
Old Herdr logic treated any pane delta as submission, including popup closure and placeholder fill.
|
|
31
|
+
Tmux and Herdr now route captures through `../../../bin/brokk-composer-lib.sh`, which classifies real text on every proven content row.
|
|
32
|
+
`../../../docs/herdr-backend.md` owns the boundary and `../../../tests/brokk-backend-herdr.test.sh` covers it.
|
|
33
|
+
|
|
34
|
+
The "Run Grok Build in a project directory?" picker appears only outside a project, such as home, Desktop, Downloads, or `/tmp`.
|
|
35
|
+
The spawn starts in the isolated git root, so Grok trusts it and needs no key.
|
|
36
|
+
For unavoidable non-project launch, `[hints] project_picker_disabled = true` in `~/.grok/config.toml` suppresses the picker.
|
|
37
|
+
|
|
38
|
+
## Composer
|
|
39
|
+
|
|
40
|
+
Fresh placeholder `Type a message...` uses dark 24-bit TRUECOLOR, not SGR-2.
|
|
41
|
+
`fm_composer_strip_ghost` in `../../../bin/brokk-composer-lib.sh` drops dim or faint and truecolor below `BROKK_COMPOSER_GHOST_LUMA_MAX`, default 128.
|
|
42
|
+
On Grok 0.2.93, real input `38;2;224;222;244` measured about 225 luminance, while borders and placeholder ranged from `38;2;50;47;70` through `38;2;110;106;134`, about 51-110, and were dropped.
|
|
43
|
+
The truecolor rule assumes the fleet's dark theme; SGR-2 is theme-independent.
|
|
44
|
+
Coverage is `../../../tests/brokk-composer-ghost.test.sh` and `../../../tests/brokk-backend-herdr.test.sh`.
|
|
45
|
+
|
|
46
|
+
Tmux `#{cursor_y}` may point at the pristine composer's bottom border.
|
|
47
|
+
The shared classifier locates the full box and all content rows, so border cursor and multi-row composers require no adapter offsets.
|
|
48
|
+
|
|
49
|
+
## Worker turn-end hook
|
|
50
|
+
|
|
51
|
+
Grok fires `Stop` each turn.
|
|
52
|
+
Project hooks require folder trust in `~/.grok/trusted_folders.toml`, which Brokk does not edit; global `~/.grok/hooks/` is always trusted.
|
|
53
|
+
The spawn installs guarded global `brokk-turn-end.json` and `brokk-turn-end.sh`.
|
|
54
|
+
They act only when workspace `.brokk-grok-turnend` matches the registry under `~/.grok/hooks/brokk-turn-end.d/`, then touch the task's `state/<id>.turn-ended` through always-set `GROK_WORKSPACE_ROOT`, which equals the worktree.
|
|
55
|
+
This stays outside the worktree, needs no trust grant, and writes only Brokk files.
|
|
56
|
+
`../../../bin/brokk-teardown.sh` removes the gitignored pointer before pooling.
|
|
57
|
+
Eindri-homes skip it because idle is healthy and ordinary stale-pane detection does not apply.
|
|
58
|
+
|
|
59
|
+
## Primary integration
|
|
60
|
+
|
|
61
|
+
Verified on 2026-07-28 with 0.2.112 and genuine pre-native 0.2.73.
|
|
62
|
+
`.grok/hooks/brokk-primary-turnend-guard.json` invokes `../../../bin/brokk-turnend-guard-grok.sh`.
|
|
63
|
+
The exact running Stop payload selects same-process continuation on 0.2.112; 0.2.73 omits that capability and needs one guarded `grok --resume`.
|
|
64
|
+
`../../../docs/turnend-guard.md` owns adaptive and malformed-input behavior.
|
|
65
|
+
|
|
66
|
+
Grok also loads Claude project settings, so Claude entries for Grok-covered events stand down under `GROK_AGENT` or `GROK_HOOK_EVENT`; that owner records the exact set and why `GROK_SESSION_ID` is excluded.
|
|
67
|
+
Project-local hooks require launch-time `--trust`; without it the guard steps aside and `../../../bin/brokk-guard.sh` is the next-command alarm.
|
|
68
|
+
Watcher supervision remains tracked background notification around `../../../bin/syn-watch-arm.sh`, not Pi-style extension ownership.
|
|
69
|
+
PreToolUse blocks directly, but every `$VAR` in a hook command needs inline `:-default` or Grok refuses the hook.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Kimi Code
|
|
2
|
+
|
|
3
|
+
Verified on 2026-07-25 with Kimi Code CLI 0.29.1.
|
|
4
|
+
|
|
5
|
+
## Operating facts
|
|
6
|
+
|
|
7
|
+
| Fact | Value |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Binary | Absolute executable resolved from `PATH`, then executable `$HOME/.kimi-code/bin/kimi`; spawning refuses if neither exists. |
|
|
10
|
+
| Launch | Bare interactive TUI with `--auto`, followed by readiness-gated pointer delivery; positional prompts are rejected. |
|
|
11
|
+
| Models | Observed default `kimi-code/kimi-for-coding`, `kimi-code/kimi-for-coding-highspeed`, `kimi-code/k3`, and `kimi-code/k3-256k`; use `kimi provider list --json` for current configuration. |
|
|
12
|
+
| Busy state | Standalone Kimi is unknown pending a live-verified semantic source, preferring Wire's `prompt` lifetime then documented hooks including `Interrupt`; Kimi behind Pi uses Pi lifecycle, and the moon-phase spinner is never a state source. |
|
|
13
|
+
| Exit command | `/exit`. |
|
|
14
|
+
| Interrupt | Single Escape, which prints `Interrupted by user`. |
|
|
15
|
+
| Skill invocation | `/<skill>`, for example `/no-mistakes`; Brokk skills are discovered. |
|
|
16
|
+
| Autonomy | `--auto`; `-y` and `--yolo` are weaker and are not used. |
|
|
17
|
+
| Trust dialog | None observed on a clean first launch in a fresh pooled worktree. |
|
|
18
|
+
| Slash submission | One Enter submits, with no popup swallow or settle hazard. |
|
|
19
|
+
| Environment marker | None; detection uses process ancestry command name `kimi`. |
|
|
20
|
+
| Composer | Bordered box with a bare `>` prompt glyph and no observed ghost or placeholder text. |
|
|
21
|
+
| Effort | No verified reasoning-effort flag; `references/common/model-and-effort.md` owns unsupported-value handling. |
|
|
22
|
+
|
|
23
|
+
## Readiness-gated start
|
|
24
|
+
|
|
25
|
+
`../../../bin/einherjar-spawn.sh` launches Kimi bare, waits for the composer box or `Welcome to Kimi Code!`, sends only `Read the brief at <absolute-path> and follow it exactly.`, and requires a cleared composer plus either the echoed `✨` submission or nonzero context before accepting delivery.
|
|
26
|
+
This launch-then-send shape is mandatory because Kimi rejects positional instructions as an unknown command.
|
|
27
|
+
The path must be absolute because the instructions live outside the task worktree and Kimi reads them there without `--add-dir`.
|
|
28
|
+
|
|
29
|
+
Sending before readiness was reproduced as a silent drop with zero exit status, an empty composer, `context: 0%`, no echoed user message, and a healthy-looking idle pane.
|
|
30
|
+
The startup input-readiness window is the established cause; the banner is not.
|
|
31
|
+
An early Enter can expand the composer to multiple content rows, leaving pointer text on the first row and the cursor on an empty later row.
|
|
32
|
+
The shared tmux reader therefore locates the complete bordered composer and treats real text on any content row as positive evidence that submission remains pending.
|
|
33
|
+
No rendering signal proves Kimi will accept input during this window, so delivery retries Enter through the shared submit core and retains the postcondition verification rather than relaxing readiness.
|
|
34
|
+
|
|
35
|
+
Observed spinner captures had optional leading whitespace, a moon-phase glyph, whitespace around `·`, and rotating tip text, including during tool execution.
|
|
36
|
+
The delivery-only matcher requires the observed whitespace, deliberately excludes the unobserved zero-whitespace form, and does not require trailing tip text.
|
|
37
|
+
Kimi's footer tip can show `ctrl+c: cancel` while idle, and its idle bar can contain lowercase `thinking` as an effort label.
|
|
38
|
+
Neither is a busy-state source.
|
|
39
|
+
The delivery-only spinner match covers the full moon-phase glyph set but remains locale- and emoji-font-sensitive because Kimi exposes no stable ASCII busy token.
|
|
40
|
+
|
|
41
|
+
## Crew turn-end hook and primary limit
|
|
42
|
+
|
|
43
|
+
Kimi is outside the primary turn-end guard scope.
|
|
44
|
+
`../../../docs/turnend-guard.md` owns its separate global hook surface and Allfather-approved crew wake integration.
|
|
45
|
+
|
|
46
|
+
`../../../bin/einherjar-spawn.sh` installs one marker-delimited Brokk entry in `$HOME/.kimi-code/config.toml`, one silent always-zero hook script, and one private token registry under `$HOME/.kimi-code/brokk-turn-end.d/`.
|
|
47
|
+
Each Kimi worker worktree receives a gitignored `.brokk-kimi-turnend` pointer.
|
|
48
|
+
The global hook touches `state/<id>.turn-ended` only when the Stop payload's `cwd`, pointer, and registry entry all agree.
|
|
49
|
+
A guarded silent hook cannot be verified from absence of effect, so prove invocation with an unguarded probe before concluding it did not fire.
|
|
50
|
+
The guarded turn-end signal remains a wake notification.
|
|
51
|
+
Standalone Kimi has no busy-state source until one is live-verified.
|