@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,72 @@
|
|
|
1
|
+
# HOST-DATA.example — the shape of a host record (Vog)
|
|
2
|
+
|
|
3
|
+
Vog weighs a local model on a machine; this is the shape of the record it keeps.
|
|
4
|
+
|
|
5
|
+
A host record is **private to the machine it describes** and lives in that
|
|
6
|
+
machine's Hoard: `hodd/docs/vog/`. This file is the tracked `*.example`
|
|
7
|
+
shape (Rule 04) so a new operator knows what belongs there without inheriting
|
|
8
|
+
anyone's data.
|
|
9
|
+
|
|
10
|
+
Copy this skeleton into the Hoard and fill it in per host.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `<hostname>` — `<device summary>`
|
|
15
|
+
|
|
16
|
+
| | |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Serving GPU | `<vendor model, VRAM, link>` |
|
|
19
|
+
| Other GPU(s) | `<device, role>` |
|
|
20
|
+
| System RAM | `<size>` |
|
|
21
|
+
| Driver / runtime | `<versions>` |
|
|
22
|
+
| Model directory | `<path>` where the weights actually live |
|
|
23
|
+
|
|
24
|
+
## Serving stack on this host
|
|
25
|
+
|
|
26
|
+
| Part | Path / endpoint |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Registry (single source of truth) | `<path>` |
|
|
29
|
+
| Launcher / engine | `<path>` |
|
|
30
|
+
| Router / gateway | `<path>` `:<port>` |
|
|
31
|
+
| Secondary endpoint (other device/backend) | `<path>` `:<port>` |
|
|
32
|
+
| Autostart | `<systemd unit or equivalent>` |
|
|
33
|
+
| Client wiring | `<pi / editor / other>` |
|
|
34
|
+
|
|
35
|
+
## Models on this host, verified
|
|
36
|
+
|
|
37
|
+
One row per model. `ctx` is the **verified** window — the largest value that
|
|
38
|
+
survived a real request — never the file's maximum.
|
|
39
|
+
|
|
40
|
+
| Model | quant | weights | KV bytes/token | ctx | prefill t/s | decode t/s | peak memory | alias |
|
|
41
|
+
|---|---|---|---|---|---|---|---|---|
|
|
42
|
+
| `<name>` | `<quant>` | `<GiB>` | `<KiB>` | `<ctx>` | `<n>` | `<n>` | `<MiB>` | `<alias>` |
|
|
43
|
+
|
|
44
|
+
## Configurations tried and rejected
|
|
45
|
+
|
|
46
|
+
The most useful part of the record. Keep what failed and why.
|
|
47
|
+
|
|
48
|
+
| Config | Result | Cause |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `<ctx / kv / batch / device>` | `<load failure, crash on request, etc.>` | `<measured cause>` |
|
|
51
|
+
|
|
52
|
+
## Measured rules this host produced
|
|
53
|
+
|
|
54
|
+
Short, falsifiable statements, each traceable to a table above. For example:
|
|
55
|
+
"a smaller context ceiling changes memory and not speed — measured identical
|
|
56
|
+
decode at two ceilings" or "KV size, not weight size, decides how much context
|
|
57
|
+
fits on this device".
|
|
58
|
+
|
|
59
|
+
## Traps specific to this host
|
|
60
|
+
|
|
61
|
+
| Symptom | Cause | Fix |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| `<observable>` | `<mechanism>` | `<what to do>` |
|
|
64
|
+
|
|
65
|
+
## Reference points for a new model on this host
|
|
66
|
+
|
|
67
|
+
The budget formula with this box's numbers filled in, so the next model can be
|
|
68
|
+
sized before it is downloaded:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
usable_context = (free_memory - weights - compute_buffer) / kv_bytes_per_token
|
|
72
|
+
```
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# Vog — local models: operating the runtime on models that run on this machine
|
|
2
|
+
|
|
3
|
+
**Vog** is the scales: the capability that weighs a local model on this machine
|
|
4
|
+
and reports what it truly weighs. Load this when the setup serves **local** models: when pi, opencode, or an agent
|
|
5
|
+
roster points at a local endpoint, when a model's context window or speed has to
|
|
6
|
+
be decided, or when a local backend is chosen, installed, or suspected of
|
|
7
|
+
misbehaving. If every model in the setup is hosted, this asset does not apply.
|
|
8
|
+
|
|
9
|
+
> **Two laws.**
|
|
10
|
+
> 1. **Measure, never assume.** A local model's usable context and speed are
|
|
11
|
+
> facts about *this* machine. Take them, do not inherit them.
|
|
12
|
+
> 2. **The numbers are private.** Devices, model inventories, memory and speeds
|
|
13
|
+
> describe the operator's hardware. They belong in **Hodd**
|
|
14
|
+
> (**Hodd**, `hodd/docs/vog/`, `RULES/04-hoard.md`), never in a tracked skill.
|
|
15
|
+
|
|
16
|
+
## 1. The engines galdr must recognise
|
|
17
|
+
|
|
18
|
+
| Engine | Endpoint it usually holds | How to recognise it | What it hides |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| **llama.cpp** (`llama-server`) | `:8080` (or per-model ports) | `llama-server` in the process list; a `--models-preset`/`--models-dir` flag means **router mode** (many models, one endpoint) | nothing — but you own every flag. The reference for GGUF. |
|
|
21
|
+
| **LM Studio** | `:1234` (its HTTP server) | `lm-studio` process; `~/.lmstudio/` on disk; its own model folder | bundles an **older** llama.cpp than upstream, and its defaults are conservative — they can push work onto the CPU |
|
|
22
|
+
| **Ollama** | `:11434` | `ollama` process; models under `~/.ollama/models` | hides the MoE expert-offload knobs; a plain model loads at a **low default context** unless `num_ctx` is set |
|
|
23
|
+
| **vLLM / SGLang** | `:8000` | `vllm` process | needs fp8/bf16 rather than GGUF, and a large device — the wrong shape for a single-user desktop |
|
|
24
|
+
| **ExLlama (TabbyAPI)** | `:5000` | `tabbyAPI` process | EXL2/EXL3 only; **cannot read GGUF** |
|
|
25
|
+
|
|
26
|
+
Detection, in one line each:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
curl -s http://127.0.0.1:8080/v1/models # llama.cpp (router or single)
|
|
30
|
+
curl -s http://127.0.0.1:1234/v1/models # LM Studio
|
|
31
|
+
curl -s http://127.0.0.1:11434/v1/models # Ollama
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
All three answer the same OpenAI-shaped `/v1` API, which is why the harness does
|
|
35
|
+
not care which one is behind the URL — and why a wrong assumption about *which*
|
|
36
|
+
one is behind it is easy to make and expensive to debug.
|
|
37
|
+
|
|
38
|
+
## 2. Pointing the runtime at a local model
|
|
39
|
+
|
|
40
|
+
- **pi** — models come from `.pi/agent/models.json` (providers + models) or the
|
|
41
|
+
built-in local providers. Prefer **static** entries with an explicit
|
|
42
|
+
`contextWindow`: in router mode a server may report the true `n_ctx` only for
|
|
43
|
+
the model that is currently resident, and any client that falls back to its own
|
|
44
|
+
default will silently compact far too early.
|
|
45
|
+
- **opencode** — a provider block with `baseUrl` pointing at the local `/v1`.
|
|
46
|
+
- **Environment** — a local server can be selected without config where the
|
|
47
|
+
harness supports it (e.g. a base-URL variable); prefer config, which is
|
|
48
|
+
reviewable.
|
|
49
|
+
- Harness specifics: `assets/harness-integration/pi.md` and
|
|
50
|
+
`assets/harness-integration/opencode.md`.
|
|
51
|
+
|
|
52
|
+
**Always write an explicit context window** per local model. The server's own
|
|
53
|
+
advertisement is not a contract.
|
|
54
|
+
|
|
55
|
+
## 3. Choosing an engine
|
|
56
|
+
|
|
57
|
+
- **GGUF work → llama.cpp.** Everything tunable, and router mode gives one
|
|
58
|
+
endpoint for many models.
|
|
59
|
+
- **Convenience → LM Studio or Ollama.** Good download and run experience; accept
|
|
60
|
+
that you must verify the engine version, the defaults, and the context.
|
|
61
|
+
- **Throughput serving for many users → vLLM/SGLang**; **maximum speed on one
|
|
62
|
+
consumer GPU → ExLlama**, at the cost of GGUF.
|
|
63
|
+
|
|
64
|
+
## 4. Measuring a local model honestly
|
|
65
|
+
|
|
66
|
+
Five numbers decide usability:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
five_numbers[5]{metric,decides}:
|
|
70
|
+
"prefill t/s","time-to-first-token on a realistic prompt"
|
|
71
|
+
"decode t/s","whether it is usable at all"
|
|
72
|
+
"TTFT","wall time to the first token at the size of prompt you really use"
|
|
73
|
+
"peak device memory","what else can run beside it"
|
|
74
|
+
"GPU/CPU split","whether the device did the work"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Procedure: start from a known baseline → warm up and discard → **warm the GPU
|
|
78
|
+
itself** (many hosts idle at a low clock and boost lazily) → pin seed and
|
|
79
|
+
temperature → verify the loaded context *from the server* → use a multi-thousand
|
|
80
|
+
token prompt → sample the device during the run → finish with a real request at
|
|
81
|
+
the configuration you intend to keep.
|
|
82
|
+
|
|
83
|
+
Always record **the context the run was measured at**. A decode figure without
|
|
84
|
+
its context is not a measurement.
|
|
85
|
+
|
|
86
|
+
### The four traps that produce believable, useless numbers
|
|
87
|
+
|
|
88
|
+
| Trap | Reads as | Is |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| **Silent backend fallback** | device busy, high wattage, CPU-class throughput | the requested KV cache type had no kernel for that build, so an op moved to the CPU — no error, no log line |
|
|
91
|
+
| **Load is not run** | a model that loads, written down as working | it may die on the first real request |
|
|
92
|
+
| **Context-blind comparison** | two runs "differing by config" | they also differed in context; attention cost tracks the context in use |
|
|
93
|
+
| **Asserted > observed** | a tidy explanation for a slow run | the explanation was never tested against an alternative |
|
|
94
|
+
|
|
95
|
+
### The fifth trap — model-host port drift
|
|
96
|
+
|
|
97
|
+
| Trap | Reads as | Is |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| **Router port ≠ model port** | `:8080` dead or wrong model answers | **model-host** runs each variant (swap/parallel/orchestrator) on its **own port** from `llama-models.yaml`; the router `:8080` may be empty. The catalog (`~/.pi/agent/models.json` or `.pi/agent/models.json`) must point at the **variant's true port**, not the router's. |
|
|
100
|
+
|
|
101
|
+
**Procedure to align the door:**
|
|
102
|
+
|
|
103
|
+
1. `model-host status` — read the running variant's port (e.g. `iq3-s` swap → `:8125`).
|
|
104
|
+
2. Check `llama-models.yaml` for the canonical port (`port:` under the variant's block).
|
|
105
|
+
3. Edit the provider's `baseUrl` in `models.json` to match that port (`http://127.0.0.1:<port>/v1`).
|
|
106
|
+
4. Verify: `curl http://127.0.0.1:<port>/v1/models` returns the model; a test completion works.
|
|
107
|
+
|
|
108
|
+
**Example (this platform, 2026-09-15):**
|
|
109
|
+
- `model-host start iq3-swap` → model runs at `:8125`.
|
|
110
|
+
- `llama-models.yaml` confirms swap `port: 8125`.
|
|
111
|
+
- `~/.pi/agent/models.json` provider `llamacpp-qwen3-6-35b-a3b-iq3_s` had `baseUrl: "http://127.0.0.1:8080/v1"` → corrected to `:8125/v1`.
|
|
112
|
+
- The chat's `hi` went from "Connection error" to a real reply.
|
|
113
|
+
|
|
114
|
+
### Budgeting context
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
kv_bytes_per_token = kv_layers x 2 x kv_heads x head_dim x bytes_per_element
|
|
118
|
+
usable_context = (free_memory - weights - ~compute_buffer) / kv_bytes_per_token
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`kv_layers` counts only the blocks that keep a real KV cache — hybrid models
|
|
122
|
+
(linear/recurrent blocks mixed with attention) cache a fraction of their blocks
|
|
123
|
+
and so afford far more context than their weight size suggests. **Keep the K and
|
|
124
|
+
V types identical**, and prefer a modest prompt batch: a batch that is
|
|
125
|
+
comfortable at a small context can exhaust the device at a large one, and the
|
|
126
|
+
failure appears on a *request*, not at load.
|
|
127
|
+
|
|
128
|
+
Find the ceiling by bisection and confirm it with a real request. The largest
|
|
129
|
+
value that **survives** is the answer, not the largest that loads.
|
|
130
|
+
|
|
131
|
+
## 5. Tooling
|
|
132
|
+
|
|
133
|
+
`scripts/bench-one.sh` — one model end to end: it starts its **own** throwaway
|
|
134
|
+
single-model server on a scratch port, verifies the loaded context, warms,
|
|
135
|
+
times a cold-context run, samples the device, and tears down. It never touches a
|
|
136
|
+
running service, and needs only a `llama-server` binary and a `.gguf`.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
.agents/skills/galdr-ymirsystem/scripts/bench-one.sh /path/to/model.gguf --ctx 32768
|
|
140
|
+
.agents/skills/galdr-ymirsystem/scripts/bench-one.sh /path/to/model.gguf --ctx 131072 --kv q8_0
|
|
141
|
+
.agents/skills/galdr-ymirsystem/scripts/bench-one.sh /path/to/model.gguf --ctx 8192 --ngl 0 # pure CPU
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Point it at the right server with `--server` (or `$LLAMA_SERVER`); a build that
|
|
145
|
+
reports no GPU device will measure the CPU, and the script says so.
|
|
146
|
+
|
|
147
|
+
`scripts/gpu-sample.sh` samples utilisation and memory while a command runs —
|
|
148
|
+
the way to catch a CPU spill. `scripts/stop-all.sh` clears leftover throwaway
|
|
149
|
+
servers and reports what holds the device.
|
|
150
|
+
|
|
151
|
+
## 6. Where the results go — Hodd
|
|
152
|
+
|
|
153
|
+
A host record keeps: the machine and its devices, the model inventory with
|
|
154
|
+
verified windows, every measured table **including the rejected configurations**,
|
|
155
|
+
the host-specific traps, and the operational notes for that stack.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
export YMIR_HOARD="${YMIR_HOARD:-$PWD/hodd}"
|
|
159
|
+
ls "$YMIR_HOARD/docs/vog/"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Shape to follow: `assets/local-models/HOST-DATA.example.md`.
|
|
163
|
+
|
|
164
|
+
## 7. Installing a local stack
|
|
165
|
+
|
|
166
|
+
Installing and running a local model service is the operator's business on their
|
|
167
|
+
own machine, not part of a shared tree. What galdr guarantees is the *knowledge*:
|
|
168
|
+
which engine, how to reach it, how to point a harness at it, and how to measure
|
|
169
|
+
it. Keep the service's own scripts, registry and configuration on the machine —
|
|
170
|
+
outside every repository — and keep only the framework here.
|
|
171
|
+
|
|
172
|
+
## 8. Upstream documentation — the authoritative addresses
|
|
173
|
+
|
|
174
|
+
Verified **2026-09-12**. These are the *sources of truth*; galdr reads them
|
|
175
|
+
rather than recalling a flag from memory.
|
|
176
|
+
|
|
177
|
+
| Engine | Documentation | Server / API reference |
|
|
178
|
+
|---|---|---|
|
|
179
|
+
| **llama.cpp** | <https://github.com/ggml-org/llama.cpp> | server: <https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md> · build & backends (CUDA/Vulkan/ROCm/Metal): `…/docs/build.md` |
|
|
180
|
+
| **LM Studio** | <https://lmstudio.ai/docs> | developer/API: <https://lmstudio.ai/docs/developer> · REST: <https://lmstudio.ai/docs/developer/rest> · CLI: <https://lmstudio.ai/docs/cli> |
|
|
181
|
+
| **Ollama** | <https://docs.ollama.com> | Modelfile: <https://docs.ollama.com/modelfile> · **machine-readable index: <https://docs.ollama.com/llms.txt>** |
|
|
182
|
+
| **vLLM** | <https://docs.vllm.ai> | — |
|
|
183
|
+
| **SGLang** | <https://docs.sglang.ai> | — |
|
|
184
|
+
| **ExLlamaV2 / TabbyAPI** | <https://github.com/theroyallab/tabbyAPI> | — |
|
|
185
|
+
| **llama-swap** (external router) | <https://github.com/mostlygeek/llama-swap> | — |
|
|
186
|
+
|
|
187
|
+
Read this table with four facts in mind:
|
|
188
|
+
|
|
189
|
+
- **llama.cpp has no separate documentation site — the repository *is* the
|
|
190
|
+
documentation.** The server flags live in `tools/server/README.md`, the
|
|
191
|
+
backends in `docs/build.md`, and the router/preset behaviour there plus the
|
|
192
|
+
server README. When a flag's meaning matters, read it at the source.
|
|
193
|
+
- **Ollama publishes a machine-readable page index** at `/llms.txt`. Fetch it to
|
|
194
|
+
discover the current page instead of guessing a path that has moved.
|
|
195
|
+
- **LM Studio's docs are per-page, not per-release**, and it bundles its own
|
|
196
|
+
llama.cpp build. Check the *bundled engine version* separately from the app
|
|
197
|
+
version; an old engine explains most "impossible" numbers from that backend.
|
|
198
|
+
- **Release notes and issue trackers are documentation.** For llama.cpp
|
|
199
|
+
especially, a behaviour that surprises you is usually an open issue with the
|
|
200
|
+
root cause already written down — including the silent ones.
|
|
201
|
+
|
|
202
|
+
## 9. When a local model misbehaves — research it upstream, then record it
|
|
203
|
+
|
|
204
|
+
A local stack fails in ways that look like hardware limits and are not: a build
|
|
205
|
+
quietly doing an operation on the CPU, a KV cache type with no kernel, an engine
|
|
206
|
+
version too old for a feature, a quant the loader misreads. **Guessing at these
|
|
207
|
+
wastes hours and produces plausible wrong conclusions.** When a local-model
|
|
208
|
+
service misbehaves, galdr researches it rather than theorising:
|
|
209
|
+
|
|
210
|
+
1. **Capture the exact string.** The precise error line, or the precise absence
|
|
211
|
+
of one. "It is slow" is not a symptom; "prefill 14 t/s with the GPU at 100 %
|
|
212
|
+
and 115 W" is.
|
|
213
|
+
2. **Search the project's issues for that string**, not for your theory. Use the
|
|
214
|
+
tracker at the address in §8, and the web more broadly. Include the build
|
|
215
|
+
version and the flags in the query.
|
|
216
|
+
3. **Quote the root cause with a date and a link** — and note whether it is
|
|
217
|
+
fixed, open, or silently unacknowledged. Distinguish "the vendor says" from
|
|
218
|
+
"someone's blog says".
|
|
219
|
+
4. **Check the engine version before anything else.** A bundled or packaged
|
|
220
|
+
engine that is months behind explains most anomalies, and a pinned version is
|
|
221
|
+
a repeatable, comparable thing — a moving one is not.
|
|
222
|
+
5. **Test the candidate cause on this machine.** Reproduce with the fix, or
|
|
223
|
+
disprove the theory. An explanation that has not been tested against an
|
|
224
|
+
alternative is not a diagnosis.
|
|
225
|
+
6. **Record the finding where it belongs.** A general lesson — a trap, a check,
|
|
226
|
+
a flag that matters — goes in this asset. Anything describing *this* machine's
|
|
227
|
+
devices, models and numbers goes to Hodd (§6).
|
|
228
|
+
7. **Never paper over a silent fallback.** If the fix is "use a different flag
|
|
229
|
+
until upstream lands the kernel", write that down with the reason, so the
|
|
230
|
+
next operator does not rediscover it as a machine limit.
|
|
231
|
+
|
|
232
|
+
An example of the shape, from this platform's own history: a GPU that was
|
|
233
|
+
visibly busy at full wattage while throughput sat at CPU level turned out to be
|
|
234
|
+
the attention operation being scheduled onto the CPU because the requested KV
|
|
235
|
+
cache type had no kernel in that build — no error, no log line. It was found by
|
|
236
|
+
reading the upstream issue tracker, not by tuning flags. See §4, first trap.
|
|
237
|
+
|
|
238
|
+
## 10. Driving pi with a local model — what was actually measured
|
|
239
|
+
|
|
240
|
+
The integration works end to end, tools included. What decides success is **not**
|
|
241
|
+
the endpoint — it is how much context the harness injects.
|
|
242
|
+
|
|
243
|
+
| Test | Model | Context | Result | Time |
|
|
244
|
+
|---|---|---|---|---|
|
|
245
|
+
| Follow a literal instruction | `qwen3.5-4b@q4_k_s` (GPU) | **none** (run outside the repo) | exact reply | 3.6s |
|
|
246
|
+
| The *same* instruction, inside the repo | `qwen3.5-4b@q4_k_s` | full Ymir inject | **ignored it** — answered the context instead | 17.4s |
|
|
247
|
+
| Follow a literal instruction, inside the repo | `qwen3.6-35b-a3b@iq2_xxs` | full Ymir inject | exact reply | 30.1s |
|
|
248
|
+
| **Use a tool** (read a file, report an unguessable token) | `qwen3.6-35b-a3b@iq2_xxs` | full Ymir inject | exact token back | 3.9s |
|
|
249
|
+
| Follow a literal instruction | `qwen3.5-4b@q4_k_s` (iGPU :8097) | none | exact reply | 57.0s |
|
|
250
|
+
| The *same* instruction + tool, inside the repo | `qwen3.5-4b@q4_k_s` (iGPU) | full Ymir inject | **ignored it** | — |
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
model_vs_context[3]{finding,evidence,rule}:
|
|
254
|
+
"a small model drowns in the injected prompt","the same 4B obeyed exactly outside the repo (3.6s) and rambled about 'arming supervision' inside it (17.4s)","test a suspect local model OUTSIDE the repo first; it separates 'cannot follow instructions' from 'the context swamped it'"
|
|
255
|
+
"a MoE absorbs it","35B-A3B (~3B active) followed every instruction and drove the read tool to an unguessable token in 3.9s","prefer a sparse MoE for agent work on a local model — the active parameters decide the speed, the total decides the capacity"
|
|
256
|
+
"tool calling needs no special wiring","the tool call succeeded through pi's normal path; nothing local-specific was configured","a local endpoint that answers /v1 is enough; if tools fail, suspect the model's tool syntax, not the transport"
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**The rule for agents.** When a local model misbehaves in the harness, do not
|
|
260
|
+
conclude the model is weak and do not start tuning flags. Run the identical
|
|
261
|
+
prompt from outside the repo. If it obeys there, the model is fine and the
|
|
262
|
+
*context* is the problem — pick a larger model for that errand, or give it a
|
|
263
|
+
leaner instruction set.
|
|
264
|
+
|
|
265
|
+
**How to run the test yourself** (non-interactive, one prompt):
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
pi -p --model "llamacpp/qwen3.6-35b-a3b@iq2_xxs" "Reply with exactly: LOCAL MODEL OK"
|
|
269
|
+
pi -p --model "llamacpp-igpu/qwen3.5-4b@q4_k_s" "Reply with exactly: IGPU OK"
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
`--model` takes `provider/id`, matching the static entries in
|
|
273
|
+
`.pi/agent/models.json` (§2). Screen the result by hand — a model that answers a
|
|
274
|
+
question you did not ask has told you more than one that answers yours.
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# The Well — Mimirsbrunn (engram) memory, bridge, and harness wiring
|
|
2
|
+
|
|
3
|
+
> **Purpose:** Everything an agent must know to operate, extend, or rebuild
|
|
4
|
+
> Ymir's memory: the store, the HTTP bridge, the MCP server, the harness
|
|
5
|
+
> registrations, the laws, and the UI. The **code is authoritative**; this page
|
|
6
|
+
> explains the whole of it.
|
|
7
|
+
|
|
8
|
+
The well is **Mimirsbrunn**, backed by the validated OSS engine **engdbram**
|
|
9
|
+
(`pip install engdbram`) — the *module* it provides is `engram`.
|
|
10
|
+
|
|
11
|
+
> **The name trap.** PyPI's `engram` is an unrelated *rendering* library
|
|
12
|
+
> (mitsuba/drjit/torch). Installing it pulls gigabytes of CUDA wheels and still
|
|
13
|
+
> leaves Ymir with no memory engine. The distribution is **`engdbram`**;
|
|
14
|
+
> `bin/prereq-ensure.sh engram` installs the right one. It is **one repo-local store** shared by every agent and
|
|
15
|
+
every harness. Motto: **drink before you act, water it after** — recall on the
|
|
16
|
+
way in, observe on the way out.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 1. Components
|
|
21
|
+
|
|
22
|
+
| Component | Path | Role |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Store | `.agents/memory/kaia.engram` | the single SQLite memory (episodes, facts, entities) |
|
|
25
|
+
| Append log | `.agents/memory/well/episodes.jsonl` | the raw episode log (source of truth for re-seeding) |
|
|
26
|
+
| HTTP bridge | `bin/mimir-bridge.py` (+ `bin/mimir-bridge.sh`) | the `:4602` face over the engram library |
|
|
27
|
+
| CLI | `bin/mimir.sh` | operator CLI: `health` `recall` `observe` `timeline` |
|
|
28
|
+
| Ingest | `bin/mimir-ingest.sh` | drinks a directory into the JSONL well + bridge |
|
|
29
|
+
| Gate API | `apps/hlidskjalf/server/index.ts` | `/api/well`, `/api/well/episode`, `/api/mimir/health` |
|
|
30
|
+
| UI | `apps/hlidskjalf/src/gates/Well.tsx` + `components/RecallPanel.tsx` | recall panel, timeline, click-to-read |
|
|
31
|
+
| MCP server | `engram-mcp` (console script) | stdio MCP: `remember` `recall` `why` `forget` `stats` |
|
|
32
|
+
|
|
33
|
+
The upstream engine ships a **CLI + MCP stdio server only** — there is no
|
|
34
|
+
`engram.server` HTTP module. `bin/mimir-bridge.py` is Ymir's own face, because
|
|
35
|
+
the gate API, `mimir.sh`, and `mimir-ingest.sh` speak HTTP on `:4602`.
|
|
36
|
+
|
|
37
|
+
`bin/mimir-ingest.sh` loads every stored hash once into an associative array, so
|
|
38
|
+
dedupe is O(1) per section rather than rescanning the whole store each time (was
|
|
39
|
+
O(sections × store)); `bin/workspace-rag.sh index` reads the store once and walks
|
|
40
|
+
all files in a single Python pass (was a store read + process spawn per file).
|
|
41
|
+
|
|
42
|
+
**Where ingest reads from.** Its source is the hoard's `docs/business`, and the
|
|
43
|
+
hoard root resolves through `bin/hoard-lib.sh` (`$YMIR_HOARD`, else `$YMIR_HOME`,
|
|
44
|
+
else `$HOME/Documents/Ymir`) — the same one default every other script uses, and
|
|
45
|
+
never the repo's `hodd/`, which holds only the guard, README and `*.example`
|
|
46
|
+
scaffolds (Rule 04).
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. HTTP bridge (`:4602`)
|
|
51
|
+
|
|
52
|
+
Raised by `bin/mimir-bridge.sh --start`; also raised by `scripts/start.sh` and
|
|
53
|
+
`bin/saga-session-start.sh`, so it is up whenever the stack is up.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
GET /health -> {status, store, episodes, agents}
|
|
57
|
+
GET /recall?q&k&mode -> {results:[{score, distance, importance, episode}]}
|
|
58
|
+
GET /recent?limit -> {episodes:[...]}
|
|
59
|
+
GET /episode?id=<id> -> {episode:{id, content, timestamp, tags, actors, agent_id}}
|
|
60
|
+
GET /timeline?entity -> {facts:[...]}
|
|
61
|
+
GET /inspect -> {store, episodes, agents}
|
|
62
|
+
POST /observe {content,...} -> {id, agent_id, episodes}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Mode is `hybrid` (default) | `cosine` | `spreading`. The bridge is **read-all**
|
|
66
|
+
by default (an unscoped `Engram`), so recall sees every episode regardless of
|
|
67
|
+
which agent wrote it.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 3. MCP for harnesses (the shared well)
|
|
72
|
+
|
|
73
|
+
`engram-mcp --db $YMIR_ROOT/.agents/memory/kaia.engram` — **unscoped**, so
|
|
74
|
+
every harness reads the one well. (A scoped `--agent-id` filters reads to that
|
|
75
|
+
agent and would hide the seeded `well` episodes; pass `agent_id` per `remember`
|
|
76
|
+
call instead when attribution is wanted.)
|
|
77
|
+
|
|
78
|
+
| Harness | Config | Notes |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| OpenCode (4 accounts: `opencode`, `opencode-rd`, `opencode-work`, `opencode-oczer`) | `<config-dir>/opencode.json` → `mcp.engram` | `{type:"local", command:["engram-mcp","--db",…], enabled:true}` |
|
|
81
|
+
| Pi | `~/.pi/agent/settings.json` → `mcpServers.engram` **and** `~/.pi/agent/mcp.json` + repo `.pi/mcp.json` (pass `pi --mcp-config .pi/mcp.json`) | pi-mcp-adapter. **Scope:** `bin/a2a-mcp.sh install` writes the GLOBAL `~/.pi/agent/mcp.json`; `install --project` writes the repo's `.pi/mcp.json` instead and never touches `~/.pi` — use it when Pi is run in other areas. |
|
|
82
|
+
| Claude Code | `~/.claude.json` → `mcpServers.engram` | |
|
|
83
|
+
| Cursor | `~/.cursor/mcp.json` → `mcpServers.engram` | |
|
|
84
|
+
| Codex | `~/.codex/config.toml` → `[mcp_servers.engram]` | args are a TOML array |
|
|
85
|
+
|
|
86
|
+
**Hard dependency:** `engram-mcp` needs the **`mcp<2`** SDK (mcp 2.x renamed
|
|
87
|
+
`FastMCP`→`MCPServer` and breaks engram 1.x/2.x):
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
python3 -m pip install --user --break-system-packages 'mcp<2'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 4. Laws
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
well_laws[5]{id,law}:
|
|
99
|
+
1,"No mock data — the well holds only true observations; test writes are purged"
|
|
100
|
+
2,"Drink before you act — recall on the way in; never answer the Allfather dry"
|
|
101
|
+
3,"Water it after — observe a lesson once it lands"
|
|
102
|
+
4,"Repo-local — the store is .agents/memory/kaia.engram; never an external repo"
|
|
103
|
+
5,"One well — every harness shares it; scope per-call, never per-server"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Words that *discuss* mock data (docs about removing mocks) are real knowledge
|
|
107
|
+
and stay; entries that *are* test/mock are removed.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 5. Operate & verify
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
bin/mimir-bridge.sh --status # well[1]{port,status}: 4602,"up"
|
|
115
|
+
bin/mimir.sh health # WARM/COLD + entry count + online
|
|
116
|
+
bin/mimir.sh recall "sales pipeline" # semantic recall (bridge) with local fallback
|
|
117
|
+
curl -s localhost:4602/health # {"status":"up","episodes":367,"agents":["well"]}
|
|
118
|
+
curl -s 'localhost:4602/episode?id=<id>' # full memory text
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Re-seed the store from the JSONL well (idempotent spirit; dedupe by hash):
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
python3 - <<'PY'
|
|
125
|
+
import json
|
|
126
|
+
from datetime import datetime
|
|
127
|
+
from engram import Engram
|
|
128
|
+
eng = Engram(path=".agents/memory/kaia.engram", agent_id="well")
|
|
129
|
+
for l in open(".agents/memory/well/episodes.jsonl"):
|
|
130
|
+
if not l.strip().startswith("{"): continue
|
|
131
|
+
e = json.loads(l); ts = e.get("timestamp")
|
|
132
|
+
when = datetime.fromisoformat(ts.replace("Z","+00:00")) if ts else None
|
|
133
|
+
eng.observe(e["content"], actors=[e.get("source","well")], tags=e.get("tags",["well"]), timestamp=when)
|
|
134
|
+
PY
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 6. UI
|
|
140
|
+
|
|
141
|
+
The **Well** gate (`#/well`) shows live metrics (episodes, bridge state from
|
|
142
|
+
`/api/mimir/health`) and a real timeline derived from episodes. Each recalled
|
|
143
|
+
episode is **clickable** — `RecallPanel` calls `onOpen(id)`, `Well` fetches
|
|
144
|
+
`/api/well/episode?id=` and opens the full memory text in a modal. The old
|
|
145
|
+
hardcoded timeline is gone.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 7. Troubleshooting
|
|
150
|
+
|
|
151
|
+
- **MCP recall returns `[]`** → the server is scoped (`--agent-id`); drop it for
|
|
152
|
+
the shared well.
|
|
153
|
+
- **`ModuleNotFoundError: mcp.server.fastmcp`** → mcp 2.x installed; pin `mcp<2`.
|
|
154
|
+
- **First `observe` slow (~20–30 s)** → the embedding model is warming; later
|
|
155
|
+
writes are instant.
|
|
156
|
+
- **Bridge down / `COLD`** → `bin/mimir-bridge.sh --start`; check
|
|
157
|
+
`$YMIR_STATE_DIR/mimir-bridge.log` — runtime state lives in the home the
|
|
158
|
+
operator chose (`hoard_state_dir` via `bin/hoard-lib.sh`), never in the code
|
|
159
|
+
tree: a packaged install replaces its tree on upgrade.
|
|
160
|
+
|
|
161
|
+
**Portability.** The bridge signals processes through `ymir_kill_matching` from
|
|
162
|
+
`bin/ymir-platform.sh` rather than calling `pkill` directly, because `pkill` is
|
|
163
|
+
absent on some MSYS/WSL images (Rule 05, one place knows the difference).
|