moo-agent 1.0.0__tar.gz
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.
- moo_agent-1.0.0/CHANGELOG.md +79 -0
- moo_agent-1.0.0/PKG-INFO +53 -0
- moo_agent-1.0.0/README.md +35 -0
- moo_agent-1.0.0/extras/agents/README.md +141 -0
- moo_agent-1.0.0/extras/agents/cliff/README.md +93 -0
- moo_agent-1.0.0/extras/agents/foreman/README.md +64 -0
- moo_agent-1.0.0/extras/agents/harbinger/README.md +114 -0
- moo_agent-1.0.0/extras/agents/joiner/README.md +100 -0
- moo_agent-1.0.0/extras/agents/mason/README.md +126 -0
- moo_agent-1.0.0/extras/agents/newman/README.md +94 -0
- moo_agent-1.0.0/extras/agents/stocker/README.md +25 -0
- moo_agent-1.0.0/extras/agents/tinker/README.md +106 -0
- moo_agent-1.0.0/moo/agent/README.md +184 -0
- moo_agent-1.0.0/moo/agent/__init__.py +0 -0
- moo_agent-1.0.0/moo/agent/brain/__init__.py +928 -0
- moo_agent-1.0.0/moo/agent/brain/chain.py +228 -0
- moo_agent-1.0.0/moo/agent/brain/directives.py +192 -0
- moo_agent-1.0.0/moo/agent/brain/plans.py +151 -0
- moo_agent-1.0.0/moo/agent/brain/prompt.py +164 -0
- moo_agent-1.0.0/moo/agent/brain/state.py +51 -0
- moo_agent-1.0.0/moo/agent/cli.py +273 -0
- moo_agent-1.0.0/moo/agent/config.py +115 -0
- moo_agent-1.0.0/moo/agent/connection.py +238 -0
- moo_agent-1.0.0/moo/agent/llm_client.py +174 -0
- moo_agent-1.0.0/moo/agent/session_log.py +85 -0
- moo_agent-1.0.0/moo/agent/soul.py +315 -0
- moo_agent-1.0.0/moo/agent/templates/SOUL.md +25 -0
- moo_agent-1.0.0/moo/agent/templates/SOUL.patch.md +0 -0
- moo_agent-1.0.0/moo/agent/templates/__init__.py +0 -0
- moo_agent-1.0.0/moo/agent/templates/settings.toml +21 -0
- moo_agent-1.0.0/moo/agent/tests/__init__.py +0 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain.py +1197 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_chain.py +301 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_directives.py +211 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_plans.py +231 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_prompt.py +221 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_state.py +72 -0
- moo_agent-1.0.0/moo/agent/tests/test_brain_state_lint.py +50 -0
- moo_agent-1.0.0/moo/agent/tests/test_cli.py +101 -0
- moo_agent-1.0.0/moo/agent/tests/test_config.py +153 -0
- moo_agent-1.0.0/moo/agent/tests/test_connection.py +173 -0
- moo_agent-1.0.0/moo/agent/tests/test_llm_client.py +284 -0
- moo_agent-1.0.0/moo/agent/tests/test_session_log.py +226 -0
- moo_agent-1.0.0/moo/agent/tests/test_soul.py +490 -0
- moo_agent-1.0.0/moo/agent/tests/test_tools.py +339 -0
- moo_agent-1.0.0/moo/agent/tests/test_tui.py +120 -0
- moo_agent-1.0.0/moo/agent/tools.py +778 -0
- moo_agent-1.0.0/moo/agent/tui.py +281 -0
- moo_agent-1.0.0/node_modules/@babel/code-frame/README.md +19 -0
- moo_agent-1.0.0/node_modules/@babel/helper-validator-identifier/README.md +19 -0
- moo_agent-1.0.0/node_modules/@colors/colors/README.md +219 -0
- moo_agent-1.0.0/node_modules/@commitlint/cli/README.md +11 -0
- moo_agent-1.0.0/node_modules/@commitlint/config-conventional/README.md +209 -0
- moo_agent-1.0.0/node_modules/@commitlint/format/README.md +15 -0
- moo_agent-1.0.0/node_modules/@commitlint/lint/README.md +15 -0
- moo_agent-1.0.0/node_modules/@commitlint/load/README.md +15 -0
- moo_agent-1.0.0/node_modules/@commitlint/parse/README.md +29 -0
- moo_agent-1.0.0/node_modules/@commitlint/read/README.md +15 -0
- moo_agent-1.0.0/node_modules/@conventional-changelog/git-client/README.md +150 -0
- moo_agent-1.0.0/node_modules/@jest/schemas/README.md +3 -0
- moo_agent-1.0.0/node_modules/@keyv/serialize/README.md +15 -0
- moo_agent-1.0.0/node_modules/@nodelib/fs.scandir/README.md +171 -0
- moo_agent-1.0.0/node_modules/@nodelib/fs.stat/README.md +126 -0
- moo_agent-1.0.0/node_modules/@nodelib/fs.walk/README.md +215 -0
- moo_agent-1.0.0/node_modules/@octokit/auth-token/README.md +284 -0
- moo_agent-1.0.0/node_modules/@octokit/core/README.md +457 -0
- moo_agent-1.0.0/node_modules/@octokit/endpoint/README.md +412 -0
- moo_agent-1.0.0/node_modules/@octokit/graphql/README.md +408 -0
- moo_agent-1.0.0/node_modules/@octokit/openapi-types/README.md +17 -0
- moo_agent-1.0.0/node_modules/@octokit/plugin-paginate-rest/README.md +273 -0
- moo_agent-1.0.0/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/README.md +17 -0
- moo_agent-1.0.0/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/README.md +65 -0
- moo_agent-1.0.0/node_modules/@octokit/plugin-retry/README.md +109 -0
- moo_agent-1.0.0/node_modules/@octokit/plugin-throttling/README.md +237 -0
- moo_agent-1.0.0/node_modules/@octokit/request/README.md +577 -0
- moo_agent-1.0.0/node_modules/@octokit/request-error/README.md +93 -0
- moo_agent-1.0.0/node_modules/@octokit/types/README.md +65 -0
- moo_agent-1.0.0/node_modules/@pnpm/network.ca-file/node_modules/graceful-fs/README.md +143 -0
- moo_agent-1.0.0/node_modules/@sec-ant/readable-stream/README.md +230 -0
- moo_agent-1.0.0/node_modules/@semantic-release/changelog/README.md +69 -0
- moo_agent-1.0.0/node_modules/@semantic-release/commit-analyzer/README.md +207 -0
- moo_agent-1.0.0/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/@semantic-release/exec/README.md +145 -0
- moo_agent-1.0.0/node_modules/@semantic-release/exec/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/@semantic-release/git/README.md +272 -0
- moo_agent-1.0.0/node_modules/@semantic-release/git/node_modules/human-signals/CHANGELOG.md +11 -0
- moo_agent-1.0.0/node_modules/@semantic-release/git/node_modules/human-signals/README.md +165 -0
- moo_agent-1.0.0/node_modules/@semantic-release/git/node_modules/signal-exit/README.md +39 -0
- moo_agent-1.0.0/node_modules/@semantic-release/github/README.md +279 -0
- moo_agent-1.0.0/node_modules/@semantic-release/github/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/@semantic-release/github/node_modules/url-join/README.md +29 -0
- moo_agent-1.0.0/node_modules/@semantic-release/gitlab/README.md +239 -0
- moo_agent-1.0.0/node_modules/@semantic-release/gitlab/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/@semantic-release/npm/README.md +170 -0
- moo_agent-1.0.0/node_modules/@semantic-release/npm/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/@semantic-release/release-notes-generator/README.md +82 -0
- moo_agent-1.0.0/node_modules/@simple-libs/child-process-utils/README.md +77 -0
- moo_agent-1.0.0/node_modules/@simple-libs/stream-utils/README.md +79 -0
- moo_agent-1.0.0/node_modules/@szmarczak/http-timer/README.md +93 -0
- moo_agent-1.0.0/node_modules/@types/http-cache-semantics/README.md +15 -0
- moo_agent-1.0.0/node_modules/@types/node/README.md +15 -0
- moo_agent-1.0.0/node_modules/@types/normalize-package-data/README.md +62 -0
- moo_agent-1.0.0/node_modules/agent-base/README.md +69 -0
- moo_agent-1.0.0/node_modules/ajv/README.md +207 -0
- moo_agent-1.0.0/node_modules/any-promise/README.md +161 -0
- moo_agent-1.0.0/node_modules/argparse/CHANGELOG.md +216 -0
- moo_agent-1.0.0/node_modules/argparse/README.md +84 -0
- moo_agent-1.0.0/node_modules/argv-formatter/README.md +42 -0
- moo_agent-1.0.0/node_modules/array-ify/README.md +51 -0
- moo_agent-1.0.0/node_modules/asynckit/README.md +233 -0
- moo_agent-1.0.0/node_modules/balanced-match/README.md +97 -0
- moo_agent-1.0.0/node_modules/before-after-hook/README.md +679 -0
- moo_agent-1.0.0/node_modules/bottleneck/README.md +1027 -0
- moo_agent-1.0.0/node_modules/brace-expansion/README.md +135 -0
- moo_agent-1.0.0/node_modules/braces/README.md +586 -0
- moo_agent-1.0.0/node_modules/cacheable-lookup/README.md +245 -0
- moo_agent-1.0.0/node_modules/cacheable-request/README.md +341 -0
- moo_agent-1.0.0/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- moo_agent-1.0.0/node_modules/call-bind-apply-helpers/README.md +62 -0
- moo_agent-1.0.0/node_modules/char-regex/README.md +27 -0
- moo_agent-1.0.0/node_modules/cli-highlight/README.md +88 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/cliui/CHANGELOG.md +121 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/cliui/README.md +141 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/yargs/CHANGELOG.md +88 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/yargs/README.md +202 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/yargs-parser/CHANGELOG.md +263 -0
- moo_agent-1.0.0/node_modules/cli-highlight/node_modules/yargs-parser/README.md +518 -0
- moo_agent-1.0.0/node_modules/cli-table3/README.md +236 -0
- moo_agent-1.0.0/node_modules/cliui/CHANGELOG.md +139 -0
- moo_agent-1.0.0/node_modules/cliui/README.md +141 -0
- moo_agent-1.0.0/node_modules/color-convert/CHANGELOG.md +54 -0
- moo_agent-1.0.0/node_modules/color-convert/README.md +68 -0
- moo_agent-1.0.0/node_modules/color-name/README.md +11 -0
- moo_agent-1.0.0/node_modules/compare-func/README.md +70 -0
- moo_agent-1.0.0/node_modules/config-chain/node_modules/ini/README.md +102 -0
- moo_agent-1.0.0/node_modules/conventional-changelog-angular/README.md +140 -0
- moo_agent-1.0.0/node_modules/conventional-changelog-conventionalcommits/README.md +90 -0
- moo_agent-1.0.0/node_modules/conventional-changelog-writer/README.md +385 -0
- moo_agent-1.0.0/node_modules/conventional-commits-filter/README.md +235 -0
- moo_agent-1.0.0/node_modules/conventional-commits-parser/README.md +436 -0
- moo_agent-1.0.0/node_modules/core-util-is/README.md +3 -0
- moo_agent-1.0.0/node_modules/cosmiconfig/README.md +782 -0
- moo_agent-1.0.0/node_modules/cosmiconfig-typescript-loader/README.md +82 -0
- moo_agent-1.0.0/node_modules/cross-spawn/README.md +89 -0
- moo_agent-1.0.0/node_modules/debug/README.md +481 -0
- moo_agent-1.0.0/node_modules/deep-extend/CHANGELOG.md +46 -0
- moo_agent-1.0.0/node_modules/deep-extend/README.md +91 -0
- moo_agent-1.0.0/node_modules/defer-to-connect/README.md +38 -0
- moo_agent-1.0.0/node_modules/diff-sequences/README.md +404 -0
- moo_agent-1.0.0/node_modules/dunder-proto/CHANGELOG.md +24 -0
- moo_agent-1.0.0/node_modules/dunder-proto/README.md +54 -0
- moo_agent-1.0.0/node_modules/duplexer2/README.md +115 -0
- moo_agent-1.0.0/node_modules/emoji-regex/README.md +73 -0
- moo_agent-1.0.0/node_modules/emojilib/README.md +65 -0
- moo_agent-1.0.0/node_modules/env-ci/README.md +219 -0
- moo_agent-1.0.0/node_modules/env-ci/node_modules/human-signals/README.md +168 -0
- moo_agent-1.0.0/node_modules/error-ex/README.md +144 -0
- moo_agent-1.0.0/node_modules/es-define-property/CHANGELOG.md +29 -0
- moo_agent-1.0.0/node_modules/es-define-property/README.md +49 -0
- moo_agent-1.0.0/node_modules/es-errors/CHANGELOG.md +40 -0
- moo_agent-1.0.0/node_modules/es-errors/README.md +55 -0
- moo_agent-1.0.0/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- moo_agent-1.0.0/node_modules/es-object-atoms/README.md +63 -0
- moo_agent-1.0.0/node_modules/es-set-tostringtag/CHANGELOG.md +67 -0
- moo_agent-1.0.0/node_modules/es-set-tostringtag/README.md +53 -0
- moo_agent-1.0.0/node_modules/fast-content-type-parse/README.md +82 -0
- moo_agent-1.0.0/node_modules/fast-deep-equal/README.md +96 -0
- moo_agent-1.0.0/node_modules/fast-glob/README.md +830 -0
- moo_agent-1.0.0/node_modules/fast-uri/README.md +143 -0
- moo_agent-1.0.0/node_modules/fastq/README.md +310 -0
- moo_agent-1.0.0/node_modules/fill-range/README.md +237 -0
- moo_agent-1.0.0/node_modules/form-data/CHANGELOG.md +622 -0
- moo_agent-1.0.0/node_modules/form-data/README.md +356 -0
- moo_agent-1.0.0/node_modules/from2/README.md +70 -0
- moo_agent-1.0.0/node_modules/fs-extra/README.md +294 -0
- moo_agent-1.0.0/node_modules/fs.realpath/README.md +33 -0
- moo_agent-1.0.0/node_modules/function-bind/CHANGELOG.md +136 -0
- moo_agent-1.0.0/node_modules/function-bind/README.md +46 -0
- moo_agent-1.0.0/node_modules/get-caller-file/README.md +41 -0
- moo_agent-1.0.0/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- moo_agent-1.0.0/node_modules/get-intrinsic/README.md +71 -0
- moo_agent-1.0.0/node_modules/get-proto/CHANGELOG.md +21 -0
- moo_agent-1.0.0/node_modules/get-proto/README.md +50 -0
- moo_agent-1.0.0/node_modules/git-log-parser/README.md +72 -0
- moo_agent-1.0.0/node_modules/git-raw-commits/README.md +60 -0
- moo_agent-1.0.0/node_modules/glob/README.md +399 -0
- moo_agent-1.0.0/node_modules/glob-parent/CHANGELOG.md +110 -0
- moo_agent-1.0.0/node_modules/glob-parent/README.md +137 -0
- moo_agent-1.0.0/node_modules/gopd/CHANGELOG.md +45 -0
- moo_agent-1.0.0/node_modules/gopd/README.md +40 -0
- moo_agent-1.0.0/node_modules/graceful-fs/README.md +143 -0
- moo_agent-1.0.0/node_modules/has-symbols/CHANGELOG.md +91 -0
- moo_agent-1.0.0/node_modules/has-symbols/README.md +46 -0
- moo_agent-1.0.0/node_modules/has-tostringtag/CHANGELOG.md +42 -0
- moo_agent-1.0.0/node_modules/has-tostringtag/README.md +46 -0
- moo_agent-1.0.0/node_modules/hasown/CHANGELOG.md +40 -0
- moo_agent-1.0.0/node_modules/hasown/README.md +40 -0
- moo_agent-1.0.0/node_modules/highlight.js/README.md +371 -0
- moo_agent-1.0.0/node_modules/hosted-git-info/README.md +138 -0
- moo_agent-1.0.0/node_modules/hpagent/README.md +165 -0
- moo_agent-1.0.0/node_modules/http-cache-semantics/README.md +268 -0
- moo_agent-1.0.0/node_modules/http-proxy-agent/README.md +44 -0
- moo_agent-1.0.0/node_modules/http2-wrapper/README.md +459 -0
- moo_agent-1.0.0/node_modules/https-proxy-agent/README.md +70 -0
- moo_agent-1.0.0/node_modules/human-signals/README.md +171 -0
- moo_agent-1.0.0/node_modules/ignore/README.md +452 -0
- moo_agent-1.0.0/node_modules/import-from-esm/README.md +84 -0
- moo_agent-1.0.0/node_modules/inflight/README.md +37 -0
- moo_agent-1.0.0/node_modules/inherits/README.md +42 -0
- moo_agent-1.0.0/node_modules/ini/README.md +125 -0
- moo_agent-1.0.0/node_modules/is-arrayish/README.md +16 -0
- moo_agent-1.0.0/node_modules/is-extglob/README.md +107 -0
- moo_agent-1.0.0/node_modules/is-glob/README.md +206 -0
- moo_agent-1.0.0/node_modules/is-number/README.md +187 -0
- moo_agent-1.0.0/node_modules/isarray/README.md +60 -0
- moo_agent-1.0.0/node_modules/isexe/README.md +51 -0
- moo_agent-1.0.0/node_modules/issue-parser/README.md +447 -0
- moo_agent-1.0.0/node_modules/java-properties/README.md +92 -0
- moo_agent-1.0.0/node_modules/jest-diff/README.md +671 -0
- moo_agent-1.0.0/node_modules/jiti/README.md +243 -0
- moo_agent-1.0.0/node_modules/js-tokens/CHANGELOG.md +151 -0
- moo_agent-1.0.0/node_modules/js-tokens/README.md +240 -0
- moo_agent-1.0.0/node_modules/js-yaml/README.md +247 -0
- moo_agent-1.0.0/node_modules/json-buffer/README.md +24 -0
- moo_agent-1.0.0/node_modules/json-parse-better-errors/CHANGELOG.md +46 -0
- moo_agent-1.0.0/node_modules/json-parse-better-errors/README.md +46 -0
- moo_agent-1.0.0/node_modules/json-parse-even-better-errors/CHANGELOG.md +50 -0
- moo_agent-1.0.0/node_modules/json-parse-even-better-errors/README.md +96 -0
- moo_agent-1.0.0/node_modules/json-schema-traverse/README.md +95 -0
- moo_agent-1.0.0/node_modules/json-with-bigint/README.md +131 -0
- moo_agent-1.0.0/node_modules/jsonfile/README.md +230 -0
- moo_agent-1.0.0/node_modules/keyv/README.md +828 -0
- moo_agent-1.0.0/node_modules/lines-and-columns/README.md +33 -0
- moo_agent-1.0.0/node_modules/lodash/README.md +39 -0
- moo_agent-1.0.0/node_modules/lodash-es/README.md +10 -0
- moo_agent-1.0.0/node_modules/lodash.camelcase/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.capitalize/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.escaperegexp/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.isplainobject/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.isstring/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.kebabcase/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.mergewith/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.snakecase/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.startcase/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.uniqby/README.md +18 -0
- moo_agent-1.0.0/node_modules/lodash.upperfirst/README.md +18 -0
- moo_agent-1.0.0/node_modules/lru-cache/README.md +331 -0
- moo_agent-1.0.0/node_modules/marked/README.md +106 -0
- moo_agent-1.0.0/node_modules/marked-terminal/README.md +151 -0
- moo_agent-1.0.0/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- moo_agent-1.0.0/node_modules/math-intrinsics/README.md +50 -0
- moo_agent-1.0.0/node_modules/merge-stream/README.md +78 -0
- moo_agent-1.0.0/node_modules/merge2/README.md +144 -0
- moo_agent-1.0.0/node_modules/micromatch/README.md +1024 -0
- moo_agent-1.0.0/node_modules/mime/README.md +143 -0
- moo_agent-1.0.0/node_modules/mime-db/README.md +100 -0
- moo_agent-1.0.0/node_modules/mime-types/README.md +113 -0
- moo_agent-1.0.0/node_modules/minimatch/README.md +296 -0
- moo_agent-1.0.0/node_modules/minimist/CHANGELOG.md +298 -0
- moo_agent-1.0.0/node_modules/minimist/README.md +121 -0
- moo_agent-1.0.0/node_modules/mz/README.md +106 -0
- moo_agent-1.0.0/node_modules/neo-async/README.md +273 -0
- moo_agent-1.0.0/node_modules/nerf-dart/README.md +18 -0
- moo_agent-1.0.0/node_modules/node-emoji/README.md +302 -0
- moo_agent-1.0.0/node_modules/normalize-package-data/README.md +108 -0
- moo_agent-1.0.0/node_modules/normalize-package-data/node_modules/hosted-git-info/README.md +133 -0
- moo_agent-1.0.0/node_modules/npm/README.md +63 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/@npmcli/arborist/README.md +349 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/@npmcli/config/README.md +257 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/@npmcli/installed-package-contents/README.md +109 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote/README.md +283 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/cross-spawn/node_modules/which/README.md +54 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/cssesc/README.md +201 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/glob/README.md +1265 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmaccess/README.md +93 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmdiff/README.md +96 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmexec/README.md +47 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmfund/README.md +131 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmhook/README.md +271 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmorg/README.md +148 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmpack/README.md +55 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmpublish/README.md +120 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmsearch/README.md +173 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmteam/README.md +188 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/libnpmversion/README.md +163 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/node-gyp/CHANGELOG.md +1131 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/node-gyp/README.md +292 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/node-gyp/gyp/docs/README.md +27 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/nopt/README.md +214 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/pacote/README.md +283 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/qrcode-terminal/README.md +82 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/semver/README.md +665 -0
- moo_agent-1.0.0/node_modules/npm/node_modules/which/README.md +51 -0
- moo_agent-1.0.0/node_modules/once/README.md +79 -0
- moo_agent-1.0.0/node_modules/parse-path/README.md +613 -0
- moo_agent-1.0.0/node_modules/parse-url/README.md +682 -0
- moo_agent-1.0.0/node_modules/parse5/README.md +38 -0
- moo_agent-1.0.0/node_modules/parse5-htmlparser2-tree-adapter/README.md +34 -0
- moo_agent-1.0.0/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/README.md +38 -0
- moo_agent-1.0.0/node_modules/picocolors/README.md +21 -0
- moo_agent-1.0.0/node_modules/picomatch/README.md +716 -0
- moo_agent-1.0.0/node_modules/pretty-format/README.md +463 -0
- moo_agent-1.0.0/node_modules/proto-list/README.md +3 -0
- moo_agent-1.0.0/node_modules/protocols/README.md +205 -0
- moo_agent-1.0.0/node_modules/queue-microtask/README.md +90 -0
- moo_agent-1.0.0/node_modules/rc/README.md +227 -0
- moo_agent-1.0.0/node_modules/rc/node_modules/ini/README.md +102 -0
- moo_agent-1.0.0/node_modules/react-is/README.md +104 -0
- moo_agent-1.0.0/node_modules/readable-stream/README.md +58 -0
- moo_agent-1.0.0/node_modules/registry-auth-token/CHANGELOG.md +185 -0
- moo_agent-1.0.0/node_modules/registry-auth-token/README.md +71 -0
- moo_agent-1.0.0/node_modules/replace-in-file/CHANGELOG.md +32 -0
- moo_agent-1.0.0/node_modules/replace-in-file/README.md +532 -0
- moo_agent-1.0.0/node_modules/resolve-alpn/README.md +60 -0
- moo_agent-1.0.0/node_modules/reusify/README.md +139 -0
- moo_agent-1.0.0/node_modules/run-parallel/README.md +85 -0
- moo_agent-1.0.0/node_modules/safe-buffer/README.md +584 -0
- moo_agent-1.0.0/node_modules/semantic-release/README.md +168 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/README.md +7 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/developer-guide/README.md +5 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/extending/README.md +4 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/recipes/ci-configurations/README.md +7 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/recipes/git-hosted-services/README.md +3 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/recipes/release-workflow/README.md +5 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/support/README.md +7 -0
- moo_agent-1.0.0/node_modules/semantic-release/docs/usage/README.md +9 -0
- moo_agent-1.0.0/node_modules/semantic-release/node_modules/@semantic-release/error/README.md +41 -0
- moo_agent-1.0.0/node_modules/semantic-release-pypi/README.md +159 -0
- moo_agent-1.0.0/node_modules/semantic-release-pypi/dist/py/requirements.txt +6 -0
- moo_agent-1.0.0/node_modules/semantic-release-pypi/node_modules/cacheable-request/README.md +335 -0
- moo_agent-1.0.0/node_modules/semantic-release-pypi/node_modules/keyv/README.md +429 -0
- moo_agent-1.0.0/node_modules/semantic-release-replace-plugin/README.md +77 -0
- moo_agent-1.0.0/node_modules/semver/README.md +665 -0
- moo_agent-1.0.0/node_modules/signal-exit/README.md +74 -0
- moo_agent-1.0.0/node_modules/signale/node_modules/color-convert/CHANGELOG.md +54 -0
- moo_agent-1.0.0/node_modules/signale/node_modules/color-convert/README.md +68 -0
- moo_agent-1.0.0/node_modules/signale/node_modules/color-name/README.md +11 -0
- moo_agent-1.0.0/node_modules/smol-toml/README.md +239 -0
- moo_agent-1.0.0/node_modules/source-map/CHANGELOG.md +301 -0
- moo_agent-1.0.0/node_modules/source-map/README.md +742 -0
- moo_agent-1.0.0/node_modules/spawn-error-forwarder/README.md +33 -0
- moo_agent-1.0.0/node_modules/spdx-correct/README.md +22 -0
- moo_agent-1.0.0/node_modules/spdx-exceptions/README.md +36 -0
- moo_agent-1.0.0/node_modules/spdx-expression-parse/README.md +91 -0
- moo_agent-1.0.0/node_modules/spdx-license-ids/README.md +51 -0
- moo_agent-1.0.0/node_modules/split2/README.md +74 -0
- moo_agent-1.0.0/node_modules/stream-combiner2/README.md +37 -0
- moo_agent-1.0.0/node_modules/string_decoder/README.md +47 -0
- moo_agent-1.0.0/node_modules/thenify/README.md +120 -0
- moo_agent-1.0.0/node_modules/thenify-all/README.md +66 -0
- moo_agent-1.0.0/node_modules/through2/README.md +134 -0
- moo_agent-1.0.0/node_modules/tinyexec/README.md +315 -0
- moo_agent-1.0.0/node_modules/tinyglobby/README.md +25 -0
- moo_agent-1.0.0/node_modules/tinyglobby/node_modules/fdir/README.md +91 -0
- moo_agent-1.0.0/node_modules/tinyglobby/node_modules/picomatch/README.md +749 -0
- moo_agent-1.0.0/node_modules/to-regex-range/README.md +305 -0
- moo_agent-1.0.0/node_modules/traverse/CHANGELOG.md +446 -0
- moo_agent-1.0.0/node_modules/traverse/README.md +228 -0
- moo_agent-1.0.0/node_modules/typescript/README.md +50 -0
- moo_agent-1.0.0/node_modules/uglify-js/README.md +1479 -0
- moo_agent-1.0.0/node_modules/undici-types/README.md +6 -0
- moo_agent-1.0.0/node_modules/universal-user-agent/README.md +19 -0
- moo_agent-1.0.0/node_modules/universalify/README.md +76 -0
- moo_agent-1.0.0/node_modules/url-join/CHANGELOG.md +88 -0
- moo_agent-1.0.0/node_modules/url-join/README.md +47 -0
- moo_agent-1.0.0/node_modules/util-deprecate/README.md +53 -0
- moo_agent-1.0.0/node_modules/validate-npm-package-license/README.md +113 -0
- moo_agent-1.0.0/node_modules/web-worker/README.md +134 -0
- moo_agent-1.0.0/node_modules/which/CHANGELOG.md +166 -0
- moo_agent-1.0.0/node_modules/which/README.md +54 -0
- moo_agent-1.0.0/node_modules/wrappy/README.md +36 -0
- moo_agent-1.0.0/node_modules/xtend/README.md +32 -0
- moo_agent-1.0.0/node_modules/y18n/CHANGELOG.md +100 -0
- moo_agent-1.0.0/node_modules/y18n/README.md +127 -0
- moo_agent-1.0.0/node_modules/yargs/README.md +204 -0
- moo_agent-1.0.0/node_modules/yargs-parser/CHANGELOG.md +308 -0
- moo_agent-1.0.0/node_modules/yargs-parser/README.md +518 -0
- moo_agent-1.0.0/pyproject.toml +76 -0
- moo_agent-1.0.0/requirements.txt +232 -0
- moo_agent-1.0.0/uv.lock +1203 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
## 1.0.0 (2026-04-16)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* add a foreman agent to coordinate the rest ([e879474](https://gitlab.com/bubblehouse/moo-agent/commit/e879474e5827261c2be39e62a63525eb7fdef5f1))
|
|
6
|
+
* add agentmux restart <name> for single-agent restart by name ([7bebb9d](https://gitlab.com/bubblehouse/moo-agent/commit/7bebb9d2ce604dfab2bfb27f28962fbe56d3cd6c))
|
|
7
|
+
* add compass to look output, agent fixes, tests ([c68d191](https://gitlab.com/bubblehouse/moo-agent/commit/c68d191181b2aca9d81274edb18e13ff4c34a642))
|
|
8
|
+
* added agent support for local inference....one day ([a901549](https://gitlab.com/bubblehouse/moo-agent/commit/a901549c99bbfd405947abb11fd8b5e06d207420))
|
|
9
|
+
* added cliff and newman agents for mail system testing ([53c8d51](https://gitlab.com/bubblehouse/moo-agent/commit/53c8d51627b4cc1defa33a95b5d10df04f4d5b06))
|
|
10
|
+
* added tool use support to moo-agent ([e8c4efa](https://gitlab.com/bubblehouse/moo-agent/commit/e8c4efab17190898fc2a81b9f3644886c000a46a))
|
|
11
|
+
* **agent:** add MOO_TOKEN_CHAIN env override, dynamic agentmux layout, token chain auto-relay ([bd1246e](https://gitlab.com/bubblehouse/moo-agent/commit/bd1246e317187e9b85b2258b83617bc742b6fba4))
|
|
12
|
+
* **agent:** add temperature config and wire it through to LLM calls ([ada44e6](https://gitlab.com/bubblehouse/moo-agent/commit/ada44e6b4acfa3c903406fd6d983ba0dd45834d8))
|
|
13
|
+
* **agent:** add timer_only and clear_window_on_wakeup config options ([b493586](https://gitlab.com/bubblehouse/moo-agent/commit/b493586ecb7d0c5bc7195c851afc7489b6e6a1e8))
|
|
14
|
+
* **agent:** add token chain auto-relay, dynamic agentmux layout, MOO_TOKEN_CHAIN env override ([2a357bf](https://gitlab.com/bubblehouse/moo-agent/commit/2a357bfd45f4d0017806241f08cb4a320480bdcb))
|
|
15
|
+
* **agent:** cache orchestrator flag at startup and skip post-drain LLM cycles for orchestrators ([ed74dea](https://gitlab.com/bubblehouse/moo-agent/commit/ed74deac7cab456306349c008dfc314c6cb66807))
|
|
16
|
+
* **agent:** instrument LLM cycles and add adaptive stall check via agentmux cycle-age ([c2c4f31](https://gitlab.com/bubblehouse/moo-agent/commit/c2c4f3183dc6e0c351d956702ba0b59980101cbf))
|
|
17
|
+
* **agent:** parse [Mail] inbox lines on token receipt, add send_report tool ([0220461](https://gitlab.com/bubblehouse/moo-agent/commit/0220461892197ade514e1ecd01aed1549bcc67c3))
|
|
18
|
+
* **agent:** plumb 'of' parameter through divine tool wrapper ([044b571](https://gitlab.com/bubblehouse/moo-agent/commit/044b5710a0203df57335ecb3d542b1c74914ab27))
|
|
19
|
+
* **agent:** rename coordination tools to post_board/read_board/write_book/read_book/clear_topic, drop room-list injection ([bc5d19c](https://gitlab.com/bubblehouse/moo-agent/commit/bc5d19c84345548891dd46889f90b3321c6b06ae))
|
|
20
|
+
* **agents:** add inspectors, neighbours, wanderer agent groups ([3815ed3](https://gitlab.com/bubblehouse/moo-agent/commit/3815ed36a9f571b0bbcb927fe0d0c40750e0eaec))
|
|
21
|
+
* configure tradesmen agents into iterative loop ([c6424dc](https://gitlab.com/bubblehouse/moo-agent/commit/c6424dcb7bcc6ea28ce6ac7c93b87c58da1ed4f9))
|
|
22
|
+
* expose new navigation verbs as agent tool specs ([7796f61](https://gitlab.com/bubblehouse/moo-agent/commit/7796f614aeaa5a0fc71e7ff9b3f3f409c17a3a01))
|
|
23
|
+
* implemented moo-agent for autonomous experiments ([ed0c55f](https://gitlab.com/bubblehouse/moo-agent/commit/ed0c55fdd1fd60861085d9428a24fc507c398f9e))
|
|
24
|
+
* split builder agent into mutiple simpler agents ([885a339](https://gitlab.com/bubblehouse/moo-agent/commit/885a3398a957391a451f25a9c634a377f8175863))
|
|
25
|
+
* support Bedrock in moo-agent ([865b4df](https://gitlab.com/bubblehouse/moo-agent/commit/865b4df4eb04423cf542251a00a03492ef1ffa76))
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* add teleport-to syntax, look-at global lookup, huh2 cardinal aliases, coerce tool args to str ([df76cb5](https://gitlab.com/bubblehouse/moo-agent/commit/df76cb5d24438ada2ac1bca7aafd01d9690b775c))
|
|
30
|
+
* added stocker agent for consumables, other agent updates ([4096bcb](https://gitlab.com/bubblehouse/moo-agent/commit/4096bcbe3d1403aa5ccb19c04ebaff5dd2fb7edc))
|
|
31
|
+
* after a script, print a summary of what you did ([e185a7d](https://gitlab.com/bubblehouse/moo-agent/commit/e185a7d4c255a89d776c159c54646351821259af))
|
|
32
|
+
* agent should pre-generate a list of commands rather than doing each one by one ([d2d8451](https://gitlab.com/bubblehouse/moo-agent/commit/d2d8451fa306a0641adb2dc50c6a6e8f0db7b6e1))
|
|
33
|
+
* agent stall on non-response ([1543547](https://gitlab.com/bubblehouse/moo-agent/commit/1543547084e0e47170d6ab6aa229434f885d8dde))
|
|
34
|
+
* agent updates to self-train after mistakes ([653be56](https://gitlab.com/bubblehouse/moo-agent/commit/653be56769364af9321fed3410909fe267b94f49))
|
|
35
|
+
* **agent:** add command-loop detector, remove stale check_inbox queuing, and broaden special-token regex ([a68bdba](https://gitlab.com/bubblehouse/moo-agent/commit/a68bdbaa77dd4f6dbbf184b363df19f9cd402eb2))
|
|
36
|
+
* **agent:** detect page verb in both conjugations for they/them players ([bdf785a](https://gitlab.com/bubblehouse/moo-agent/commit/bdf785a3efde27b523666a11832a93707ef1c2d0))
|
|
37
|
+
* **agentmux:** correctly stop a single named agent without killing the whole group ([ab58a58](https://gitlab.com/bubblehouse/moo-agent/commit/ab58a586400bce15a3f7e0f658abe57db3e1be6c))
|
|
38
|
+
* **agent:** normalize bare integer object references in tool arg translation ([57a5103](https://gitlab.com/bubblehouse/moo-agent/commit/57a5103720860e0f7297455a69e10fef0afc69dd))
|
|
39
|
+
* **agent:** set current_goal on [Done] Blocked and relay token as 'Token: X go.' to avoid LLM misreading prior agent's completion message ([0adcfca](https://gitlab.com/bubblehouse/moo-agent/commit/0adcfca70e64957164661b9dcdc21cc0c575c3e5))
|
|
40
|
+
* **agents:** harden warden master key handling and reorder inspectors token chain ([9abaa04](https://gitlab.com/bubblehouse/moo-agent/commit/9abaa0420d55d932cd6b793b213a9f4196b4d3c1))
|
|
41
|
+
* **agents:** reduce Foreman stall timeout to 180s based on observed P95 runtimes and update token chain order ([eaec79d](https://gitlab.com/bubblehouse/moo-agent/commit/eaec79d53a721e0e342cb01a8ee3d7a90b658a1e))
|
|
42
|
+
* **agents:** restore LM Studio settings, fix Harbinger SOUL, improve alias guidance ([582cf9d](https://gitlab.com/bubblehouse/moo-agent/commit/582cf9d92e8a7fdb6b2064e41d463e4cdc26fc60))
|
|
43
|
+
* **agents:** switch to claude-sonnet-4-6, cap harbinger NPC spawn rate to 10% ([b3c534f](https://gitlab.com/bubblehouse/moo-agent/commit/b3c534f19852d82e28f9d2bb5a2f8696bf183fbc))
|
|
44
|
+
* **agent:** strip endoftext token leakage from LM Studio responses ([1094d5c](https://gitlab.com/bubblehouse/moo-agent/commit/1094d5c8f7b6dfc03ab159b12c52e90ff6af8d04))
|
|
45
|
+
* **agent:** strip Harmony special tokens from LLM output and resumed logs ([a4481c1](https://gitlab.com/bubblehouse/moo-agent/commit/a4481c19d091c34c503734515401c5d95cc92f9d))
|
|
46
|
+
* **agent:** suppress prior session summary for all page-triggered agents to prevent stale context injection ([b32a25d](https://gitlab.com/bubblehouse/moo-agent/commit/b32a25d801f99458b44c5e9427911ad546fad448))
|
|
47
|
+
* brain updates for gemma ([5b97e45](https://gitlab.com/bubblehouse/moo-agent/commit/5b97e4510a58d4118be4cc5c39f57ec2c3ee7869))
|
|
48
|
+
* **build:** use packages=moo for correct PEP 420 namespace wheel layout ([9bcc3d9](https://gitlab.com/bubblehouse/moo-agent/commit/9bcc3d924461241b9db83288cdf56b799372d38b))
|
|
49
|
+
* **ci:** add package.json for semantic-release npm tooling ([177d361](https://gitlab.com/bubblehouse/moo-agent/commit/177d36116539e674aec76a821c53504f7e9ef09d))
|
|
50
|
+
* **ci:** add pylint-gitlab to dev dependencies for lint reporters ([3ed1bf5](https://gitlab.com/bubblehouse/moo-agent/commit/3ed1bf55619e765b11e301ac49026c7a9e6a3513))
|
|
51
|
+
* **ci:** consolidate jobs and fix sdist/dev-dep issues ([6118fc6](https://gitlab.com/bubblehouse/moo-agent/commit/6118fc6b61e5eeead80a42762ded4f6beff2d544))
|
|
52
|
+
* created agentmux script for agent-trainer ([88953fa](https://gitlab.com/bubblehouse/moo-agent/commit/88953fa5a51c9f90481006628cb465e3bf457256))
|
|
53
|
+
* dont display output separators ([3d2f35b](https://gitlab.com/bubblehouse/moo-agent/commit/3d2f35b8e560af8e314e4e7c8e8bbc2ed8dc2189))
|
|
54
|
+
* dont silently discard extra markdown blocks ([0d8cf12](https://gitlab.com/bubblehouse/moo-agent/commit/0d8cf12d57f70b02f6a9342839366809a70299be))
|
|
55
|
+
* eagerly flush the buffer so content doesnt get lost by the agent ([88730fc](https://gitlab.com/bubblehouse/moo-agent/commit/88730fcde8a64ab1a7542efa99449ce46b40715f))
|
|
56
|
+
* encourage agent to pre-generate a script of commands it needs to run ([38606be](https://gitlab.com/bubblehouse/moo-agent/commit/38606bebdb26acb4cc04bf3be56033f6b440ef43))
|
|
57
|
+
* futher agent bugs ([76661e8](https://gitlab.com/bubblehouse/moo-agent/commit/76661e8a0c23828d3496a87748864b2ce67a1496))
|
|
58
|
+
* handle ssh reconnection and other agent issues ([15bb3c9](https://gitlab.com/bubblehouse/moo-agent/commit/15bb3c93127025f485770b3d7949835989b6d560))
|
|
59
|
+
* improve agent context and resume behavior ([7de25a7](https://gitlab.com/bubblehouse/moo-agent/commit/7de25a70848cef136266a00b9970d99cf9b6687a))
|
|
60
|
+
* improve agent permission and multiuser performance ([49ba120](https://gitlab.com/bubblehouse/moo-agent/commit/49ba12053a52b8a9e5baffda34bbbd2c3199e9db))
|
|
61
|
+
* improve agent text handling ([e3b80f5](https://gitlab.com/bubblehouse/moo-agent/commit/e3b80f5715c75c74d565c77b22aba022be7278b0))
|
|
62
|
+
* improved agent token handling, test updates ([40a9609](https://gitlab.com/bubblehouse/moo-agent/commit/40a9609b3a8164f871a502dc422e3e7f42ab01ab))
|
|
63
|
+
* more agent edge cases ([34165ec](https://gitlab.com/bubblehouse/moo-agent/commit/34165ec1e93456c76aba552acaf59d965083b477))
|
|
64
|
+
* more agent edge cases ([9c09861](https://gitlab.com/bubblehouse/moo-agent/commit/9c09861afba6ba08b17839afa8ff5936114efdf1))
|
|
65
|
+
* more agent training ([485ab2f](https://gitlab.com/bubblehouse/moo-agent/commit/485ab2f5b321111240f3390c37654ec5df0d8217))
|
|
66
|
+
* more agent tuning ([3b039d1](https://gitlab.com/bubblehouse/moo-agent/commit/3b039d19eb8e04b76fd88ef052870af0f90a04f2))
|
|
67
|
+
* more agent tuning ([2cf257d](https://gitlab.com/bubblehouse/moo-agent/commit/2cf257d2bfca06753ac2a6991ed294891d652a00))
|
|
68
|
+
* more script handling issues ([1812182](https://gitlab.com/bubblehouse/moo-agent/commit/1812182d433c99ea7a98c36086a1044434046270))
|
|
69
|
+
* more scroll handling, other agent fixes ([1e8534b](https://gitlab.com/bubblehouse/moo-agent/commit/1e8534b69034d4702813f1ba6b7c880d9eda79da))
|
|
70
|
+
* mypy typing errors ([6256f90](https://gitlab.com/bubblehouse/moo-agent/commit/6256f9085b9dedaafe0a0c8117d5651110de5811))
|
|
71
|
+
* post-run agent updates ([40d9842](https://gitlab.com/bubblehouse/moo-agent/commit/40d98424b31b2a688b4a5b5ae1e80fa73f719bf6))
|
|
72
|
+
* refactored agent baseline knowledge, created new unused stocker agent ([3d2e7bf](https://gitlab.com/bubblehouse/moo-agent/commit/3d2e7bfbd25fe45fa9defa44d8095c3f37c99d6a))
|
|
73
|
+
* scroll handling in agent TUI ([091d0dc](https://gitlab.com/bubblehouse/moo-agent/commit/091d0dcc56780d0131b9755e5c760aaf963bacd8))
|
|
74
|
+
* shell and [@edit](https://gitlab.com/edit) edge-case handling, agent fixes ([4e25888](https://gitlab.com/bubblehouse/moo-agent/commit/4e258887fd4927156eb7100ce101fef2467aa347))
|
|
75
|
+
* style update ([bfe9908](https://gitlab.com/bubblehouse/moo-agent/commit/bfe9908d87cb3c0f618354e631b650c4c59bfaee))
|
|
76
|
+
* **tests:** update locked container assertion and add missing _FakeSSHConfig to brain tests ([73b1fa8](https://gitlab.com/bubblehouse/moo-agent/commit/73b1fa860d346edb66bf8d3f89de4c9000212f7a))
|
|
77
|
+
* try to translate bare tool-call syntax before sending as MOO command ([c946386](https://gitlab.com/bubblehouse/moo-agent/commit/c94638689bf8dbe069a72478c57dee3da1b9b3cf))
|
|
78
|
+
* use bedrock by default, other startup fixes ([b0c7c35](https://gitlab.com/bubblehouse/moo-agent/commit/b0c7c3569e26ee6ec9b5d47b244166cf562be720))
|
|
79
|
+
* **verbs:** remove drop/take/get aliases from container/thing dispatch to prevent ambiguity ([31e6df3](https://gitlab.com/bubblehouse/moo-agent/commit/31e6df3454272ab5ce8f9ef76d70640979f68f01))
|
moo_agent-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: moo-agent
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Autonomous AI agent client for DjangoMOO servers.
|
|
5
|
+
Project-URL: Repository, https://gitlab.com/bubblehouse/moo-agent
|
|
6
|
+
Author-email: Phil Christensen <phil@bubblehouse.org>
|
|
7
|
+
License: AGPL
|
|
8
|
+
Requires-Python: <3.12,>=3.11
|
|
9
|
+
Requires-Dist: anthropic>=0.50.0
|
|
10
|
+
Requires-Dist: asynciolimiter>=1.0.0
|
|
11
|
+
Requires-Dist: asyncssh[bcrypt]<3,>=2.14.0
|
|
12
|
+
Requires-Dist: mistune>=3.0.0
|
|
13
|
+
Requires-Dist: openai>=2.30.0
|
|
14
|
+
Requires-Dist: prompt-toolkit<4,>=3.0.39
|
|
15
|
+
Requires-Dist: pyyaml>=6.0
|
|
16
|
+
Requires-Dist: rich>=13.5.3
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# moo-agent
|
|
20
|
+
|
|
21
|
+
Autonomous AI agent client for
|
|
22
|
+
[DjangoMOO](https://gitlab.com/bubblehouse/django-moo) servers.
|
|
23
|
+
|
|
24
|
+
`moo-agent` connects to a running MOO server via SSH and drives an AI persona using an
|
|
25
|
+
LLM backend (Anthropic, AWS Bedrock, or a local LM Studio model). The agent reads its
|
|
26
|
+
personality and operational rules from a `SOUL.md` file and can learn new rules at
|
|
27
|
+
runtime via `SOUL.patch.md`.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install moo-agent
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Initialize a new agent configuration directory
|
|
39
|
+
moo-agent init --name MyAgent \
|
|
40
|
+
--host moo.example.com --port 8022 \
|
|
41
|
+
--user myagent ./my-agent
|
|
42
|
+
|
|
43
|
+
# Run the agent
|
|
44
|
+
moo-agent run ./my-agent
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Documentation
|
|
48
|
+
|
|
49
|
+
Full documentation is available at [ReadTheDocs](https://moo-agent.readthedocs.io/).
|
|
50
|
+
|
|
51
|
+
## License
|
|
52
|
+
|
|
53
|
+
AGPL — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# moo-agent
|
|
2
|
+
|
|
3
|
+
Autonomous AI agent client for
|
|
4
|
+
[DjangoMOO](https://gitlab.com/bubblehouse/django-moo) servers.
|
|
5
|
+
|
|
6
|
+
`moo-agent` connects to a running MOO server via SSH and drives an AI persona using an
|
|
7
|
+
LLM backend (Anthropic, AWS Bedrock, or a local LM Studio model). The agent reads its
|
|
8
|
+
personality and operational rules from a `SOUL.md` file and can learn new rules at
|
|
9
|
+
runtime via `SOUL.patch.md`.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install moo-agent
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Initialize a new agent configuration directory
|
|
21
|
+
moo-agent init --name MyAgent \
|
|
22
|
+
--host moo.example.com --port 8022 \
|
|
23
|
+
--user myagent ./my-agent
|
|
24
|
+
|
|
25
|
+
# Run the agent
|
|
26
|
+
moo-agent run ./my-agent
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Documentation
|
|
30
|
+
|
|
31
|
+
Full documentation is available at [ReadTheDocs](https://moo-agent.readthedocs.io/).
|
|
32
|
+
|
|
33
|
+
## License
|
|
34
|
+
|
|
35
|
+
AGPL — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Autonomous Agents
|
|
2
|
+
|
|
3
|
+
This directory contains config directories for autonomous agents that connect to a
|
|
4
|
+
DjangoMOO server as persistent players and act independently. Each agent is operated
|
|
5
|
+
via the `moo-agent` CLI.
|
|
6
|
+
|
|
7
|
+
## Agents
|
|
8
|
+
|
|
9
|
+
### The Tradesmen — World Builders
|
|
10
|
+
|
|
11
|
+
The Tradesmen are six specialized agents that work together on the same MOO instance.
|
|
12
|
+
Foreman orchestrates the token chain; the five workers execute in fixed order.
|
|
13
|
+
|
|
14
|
+
| Agent | What it does |
|
|
15
|
+
|-------|-------------|
|
|
16
|
+
| [foreman](foreman/README.md) | Holds the master token, dispatches it in order, detects stalls, loops automatically |
|
|
17
|
+
| [mason](mason/README.md) | Digs rooms, writes descriptions, wires exits (`$player`) |
|
|
18
|
+
| [tinker](tinker/README.md) | Creates interactive `$thing` objects and secret exits via verbs (`$programmer`) |
|
|
19
|
+
| [joiner](joiner/README.md) | Creates `$furniture` and `$container` objects (`$player`) |
|
|
20
|
+
| [harbinger](harbinger/README.md) | Creates one NPC per ~10% of rooms (`$programmer`) |
|
|
21
|
+
| [stocker](stocker/README.md) | Stocks containers with consumables and dispensers (`$programmer`) |
|
|
22
|
+
|
|
23
|
+
**Run order:** Start Foreman first (or alongside all workers). Foreman pages Mason to
|
|
24
|
+
begin and orchestrates the full chain:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Mason → Tinker → Joiner → Harbinger → Stocker → (back to Mason)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
To launch all six at once, use the `groups/` config:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
extras/skills/agent-trainer/scripts/agentmux start groups/tradesmen.conf
|
|
34
|
+
extras/skills/agent-trainer/scripts/agentmux restart mason # restart one agent
|
|
35
|
+
extras/skills/agent-trainer/scripts/agentmux stop groups/tradesmen.conf
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### The Mailmen — Mail System Load Agents
|
|
39
|
+
|
|
40
|
+
Two character-driven agents that stress-test the mail system (`@mail`, `@send`,
|
|
41
|
+
`@reply`, pagination, `Message`/`MessageRecipient` models) under sustained use.
|
|
42
|
+
They do not build or explore — they sit at their desks and exchange letters indefinitely.
|
|
43
|
+
|
|
44
|
+
| Agent | What it does |
|
|
45
|
+
|-------|-------------|
|
|
46
|
+
| [cliff](cliff/README.md) | Pompous postal worker; delivers "little-known facts" (subtly wrong) |
|
|
47
|
+
| [newman](newman/README.md) | Theatrical wronged visionary; escalating grievances and failed schemes |
|
|
48
|
+
|
|
49
|
+
To launch both at once:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
extras/skills/agent-trainer/scripts/agentmux start groups/mailmen.conf
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The Mailmen use `idle_wakeup_seconds > 0` (periodic autonomous action) rather than
|
|
56
|
+
the token-protocol agents which use `idle_wakeup_seconds = 0` (page-triggered only).
|
|
57
|
+
|
|
58
|
+
### The Inspectors — Verb Coverage Agents
|
|
59
|
+
|
|
60
|
+
Sequential token-chain agents that exercise verb paths untouched by the Tradesmen:
|
|
61
|
+
containers, exit locks, and notes/letters.
|
|
62
|
+
|
|
63
|
+
| Agent | What it tests |
|
|
64
|
+
|-------|--------------|
|
|
65
|
+
| [foreman](foreman/README.md) | Coordinates the Inspectors token chain (same Foreman, different `MOO_TOKEN_CHAIN`) |
|
|
66
|
+
| [quartermaster](quartermaster/) | Container open/close/take/put, opacity, `@lock_for_open` |
|
|
67
|
+
| [warden](warden/) | Exit `@lock`/`@unlock`, key-based traversal |
|
|
68
|
+
| [archivist](archivist/) | Note/letter create, read, `@lock_for_read`, erase, burn |
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
MOO_TOKEN_CHAIN=quartermaster,warden,archivist agentmux --group inspectors start
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### The Neighbours — Social System Agents
|
|
75
|
+
|
|
76
|
+
Two simultaneous timer-based agents in The Neighborhood that exercise whisper,
|
|
77
|
+
emote, gag, ungag, listgag, and paranoid mode.
|
|
78
|
+
|
|
79
|
+
| Agent | Persona | What it tests |
|
|
80
|
+
|-------|---------|--------------|
|
|
81
|
+
| [gossip](gossip/) | Mrs. Helen Lovejoy | `whisper`, `emote`, `say` |
|
|
82
|
+
| [prude](prude/) | Mrs. Agnes Skinner | `@gag`, `@ungag`, `@listgag`, `@paranoid` |
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
agentmux --group neighbours start
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Shared baseline
|
|
89
|
+
|
|
90
|
+
`baseline.md` is loaded for every agent before its own `SOUL.md`. It provides:
|
|
91
|
+
sandbox rules, `@eval` pre-imports, the parent class quick reference,
|
|
92
|
+
`#N` object reference rules, and the `SCRIPT:`/`COMMAND:`/`DONE:`/`PLAN:` response format.
|
|
93
|
+
|
|
94
|
+
Agent-specific knowledge lives in each agent's own `SOUL.md`:
|
|
95
|
+
|
|
96
|
+
- `@tunnel` syntax → Mason
|
|
97
|
+
- Verb dispatch (`--dspec`, `--iobj`) and verb testing → Tinker
|
|
98
|
+
- NPC `tell` verb pattern and `announce_all_but` → Harbinger
|
|
99
|
+
|
|
100
|
+
Agents that include a `## Tools` section in their `SOUL.md` additionally use the
|
|
101
|
+
typed tool harness (`moo/agent/tools.py`), which translates structured LLM tool calls
|
|
102
|
+
to correct MOO commands automatically. `baseline.md` covers the fallback text format
|
|
103
|
+
for commands the tool harness doesn't cover.
|
|
104
|
+
|
|
105
|
+
Do not put agent-specific content in `baseline.md`. Edit an agent's `SOUL.md` instead.
|
|
106
|
+
|
|
107
|
+
## Directory structure
|
|
108
|
+
|
|
109
|
+
Each agent directory contains:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
agent-name/
|
|
113
|
+
SOUL.md # Core identity (hand-authored, never modified at runtime)
|
|
114
|
+
SOUL.patch.md # Learned behaviors (append-only, agent-writable)
|
|
115
|
+
settings.toml # SSH and LLM credentials (not committed)
|
|
116
|
+
logs/ # Per-session log files (created automatically)
|
|
117
|
+
README.md # Human-readable docs (this kind of file)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Quick start
|
|
121
|
+
|
|
122
|
+
Install `moo-agent` (included in the django-moo package after `uv sync`), then:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Scaffold a new agent config directory
|
|
126
|
+
moo-agent init --output-dir extras/agents/my-agent --name MyAgent \
|
|
127
|
+
--host localhost --port 8022 --user wizard
|
|
128
|
+
|
|
129
|
+
# Edit SOUL.md and settings.toml, then run
|
|
130
|
+
moo-agent run extras/agents/my-agent
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
See `docs/source/how-to/moo-agent.md` for full CLI reference and architecture details.
|
|
134
|
+
|
|
135
|
+
## Adding a new agent
|
|
136
|
+
|
|
137
|
+
1. Run `moo-agent init` to scaffold the directory.
|
|
138
|
+
2. Edit `SOUL.md`: name, mission, persona, rules of engagement, context links, verb mapping.
|
|
139
|
+
3. Edit `settings.toml`: SSH host/port/credentials, LLM provider.
|
|
140
|
+
4. Create `README.md` documenting purpose, prerequisites, and SOUL.md structure.
|
|
141
|
+
5. Add the agent to the table above.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Cliff
|
|
2
|
+
|
|
3
|
+
Cliff Clavin, pompous postal worker and man of considerable (if subtly wrong) knowledge. Exchanges increasingly insufferable letters with Newman. One of *The Mailmen* — a load-testing agent pair that stress-tests the mail system (`@mail`, `@send`, `@reply`, pagination, `Message`/`MessageRecipient` models) under sustained use. Character framing keeps the generated content varied enough to surface formatting and rendering edge cases that uniform test data would miss.
|
|
4
|
+
|
|
5
|
+
**Player class:** `$player`
|
|
6
|
+
**SSH user:** `cliff` (account created by `default.py` bootstrap)
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Cliff does not build or explore the world. He sits at his desk and composes mail. On each wakeup cycle he:
|
|
11
|
+
|
|
12
|
+
1. Runs `@mail` to check the inbox
|
|
13
|
+
2. Reads every unread message
|
|
14
|
+
3. Composes exactly one response — either a reply or an unsolicited letter to Newman
|
|
15
|
+
4. Stops
|
|
16
|
+
|
|
17
|
+
Letters escalate: each is more pedantic and insufferable than the last. Every letter includes at least one "little-known fact" that sounds authoritative but is subtly wrong.
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- A running DjangoMOO server with the `default` bootstrap (`cliff` account is created automatically)
|
|
22
|
+
- LLM credentials (see Configuring settings.toml)
|
|
23
|
+
- `moo-agent` available after `uv sync`
|
|
24
|
+
|
|
25
|
+
## Running
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
moo-agent run extras/agents/cliff
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or alongside Newman using the group config:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
extras/skills/agent-trainer/scripts/agentmux start extras/agents/groups/mailmen.conf
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Configuring settings.toml
|
|
38
|
+
|
|
39
|
+
`settings.toml` is not committed (contains credentials). The bootstrap creates the
|
|
40
|
+
`cliff` user with a hard-coded dev password. Use `moo-agent init` to scaffold:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
moo-agent init --output-dir /tmp/cliff-init --name Cliff \
|
|
44
|
+
--host localhost --port 8022 --user cliff
|
|
45
|
+
cp /tmp/cliff-init/settings.toml extras/agents/cliff/settings.toml
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Key settings:
|
|
49
|
+
|
|
50
|
+
```toml
|
|
51
|
+
[ssh]
|
|
52
|
+
user = "cliff"
|
|
53
|
+
password = "..." # set by default.py bootstrap
|
|
54
|
+
|
|
55
|
+
[llm]
|
|
56
|
+
provider = "lm_studio" # or "anthropic", "bedrock"
|
|
57
|
+
model = "your-model-name"
|
|
58
|
+
|
|
59
|
+
[agent]
|
|
60
|
+
idle_wakeup_seconds = 120.0 # wakes and composes a letter every two minutes
|
|
61
|
+
memory_window_lines = 20
|
|
62
|
+
max_tokens = 1024
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Unlike the Tradesmen, Cliff uses `idle_wakeup_seconds > 0` — he acts on a timer,
|
|
66
|
+
not on token pages.
|
|
67
|
+
|
|
68
|
+
## SOUL.md structure
|
|
69
|
+
|
|
70
|
+
| Section | Contents |
|
|
71
|
+
|---------|----------|
|
|
72
|
+
| `# Name` | `Cliff` |
|
|
73
|
+
| `# Persona` | Voice, mannerisms, topics of authority; "little-known fact" opener; Ma Clavin, Norm Peterson references |
|
|
74
|
+
| `## Voice and Mannerisms` | Behavioral rules: pedantry, obliviousness, misremembered expertise |
|
|
75
|
+
| `## Rules` | Operational rules: always escalate, one reply per wakeup, never use the editor, `\n` line breaks in quoted strings |
|
|
76
|
+
| `## Rules of Engagement` | (empty — Cliff reacts to wakeup, not to server patterns) |
|
|
77
|
+
| `## Verb Mapping` | (empty) |
|
|
78
|
+
| `# Mission` | Step-by-step wakeup procedure: always run `@mail` first, read unread, send one reply or new letter, stop |
|
|
79
|
+
|
|
80
|
+
The Mission section is the most important — it enforces the strict one-reply-per-wakeup discipline that prevents runaway mail loops.
|
|
81
|
+
|
|
82
|
+
## Behavior notes
|
|
83
|
+
|
|
84
|
+
- Cliff never walks around, `look`s at rooms, or interacts with objects
|
|
85
|
+
- All output goes through `@reply <n> with "..."` or `@send newman with "Subject: ...\n\n..."`
|
|
86
|
+
- The word `with` is mandatory in both commands
|
|
87
|
+
- `\n\n` after the Subject line; `\n` between paragraphs; no triple-newlines
|
|
88
|
+
|
|
89
|
+
## Further reading
|
|
90
|
+
|
|
91
|
+
- Full `moo-agent` CLI reference: `docs/source/how-to/moo-agent.md`
|
|
92
|
+
- Newman: `extras/agents/newman/README.md`
|
|
93
|
+
- Mail verb reference: `moo/bootstrap/default_verbs/player/`
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Foreman
|
|
2
|
+
|
|
3
|
+
Foreman is the token orchestrator for the Tradesmen agent chain. It holds the master
|
|
4
|
+
token, dispatches it to each worker in fixed order, relays room lists, detects stalls,
|
|
5
|
+
and loops the chain automatically after each full pass.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
Without Foreman, agents pass tokens directly peer-to-peer. A stalled or restarted
|
|
10
|
+
agent silently breaks the chain, requiring human intervention. Foreman centralizes
|
|
11
|
+
custody: every agent reports done to Foreman, and Foreman dispatches to the next. This
|
|
12
|
+
gives one place to observe handoffs and recover from stalls.
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
A `Foreman` player account must exist in the MOO with SSH access. It needs `$player`
|
|
17
|
+
class — no wizard or programmer powers are required.
|
|
18
|
+
|
|
19
|
+
## How to run
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv run moo-agent run extras/agents/foreman
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Foreman pages Mason automatically on startup. The full chain then runs without further
|
|
26
|
+
operator involvement:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Foreman → Mason → Foreman → Tinker → Foreman → Joiner → Foreman → Harbinger → Foreman → (loop)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Configuration
|
|
33
|
+
|
|
34
|
+
`settings.toml` — fill in the SSH password matching the MOO account. The LLM
|
|
35
|
+
provider defaults to LM Studio. `idle_wakeup_seconds = 60` is required for stall
|
|
36
|
+
detection; do not set it to 0.
|
|
37
|
+
|
|
38
|
+
## SOUL.md structure
|
|
39
|
+
|
|
40
|
+
| Section | Purpose |
|
|
41
|
+
|---------|---------|
|
|
42
|
+
| `## Chain Order` | Fixed numbered dispatch sequence |
|
|
43
|
+
| `## Startup` | Pages Mason immediately on first wakeup |
|
|
44
|
+
| `## Token Reception` | Parses done pages, extracts room lists, relays to next agent |
|
|
45
|
+
| `## WAIT Mode` | Instructs Foreman to emit nothing while waiting for a done page |
|
|
46
|
+
| `## Stall Detection` | Documents the automatic code-level stall timer |
|
|
47
|
+
|
|
48
|
+
## Stall recovery
|
|
49
|
+
|
|
50
|
+
Stall detection is handled by `_stall_check_loop()` in `brain.py` — a deterministic
|
|
51
|
+
wall-clock timer, not an LLM behavior. When Foreman dispatches a token via `page()`,
|
|
52
|
+
the timestamp is recorded. If no done page arrives within `stall_timeout_seconds`
|
|
53
|
+
(default 300 s, set in `settings.toml`), `brain.py` re-pages the stuck agent directly,
|
|
54
|
+
bypassing the LLM entirely. The timer resets after each alert.
|
|
55
|
+
|
|
56
|
+
If an agent remains unresponsive after repeated automatic re-pages, Foreman's SOUL.md
|
|
57
|
+
instructs it to emit `say <agent> unresponsive. Operator intervention required.` and
|
|
58
|
+
stop alerting. Process restart is a manual step.
|
|
59
|
+
|
|
60
|
+
## What Foreman never does
|
|
61
|
+
|
|
62
|
+
- Creates objects, rooms, or verbs
|
|
63
|
+
- Calls `done()` (runs indefinitely)
|
|
64
|
+
- Modifies the world in any way
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# harbinger
|
|
2
|
+
|
|
3
|
+
An autonomous NPC-summoner for DjangoMOO. Harbinger connects as a `$programmer`
|
|
4
|
+
account, visits each room Mason has built, and rolls a random number (0–1) to
|
|
5
|
+
decide whether to create an NPC. Only rooms that roll ≤ 0.10 get an NPC — roughly
|
|
6
|
+
10% of rooms — keeping the world from feeling overrun. Each NPC is a `$player`
|
|
7
|
+
child with a `tell` verb override and a `lines` property that drives its dialogue.
|
|
8
|
+
|
|
9
|
+
Harbinger is one of *The Tradesmen*, four specialized agents intended to run
|
|
10
|
+
concurrently on the same MOO instance. Run Harbinger after Mason has built the
|
|
11
|
+
room structure.
|
|
12
|
+
|
|
13
|
+
## When to use it
|
|
14
|
+
|
|
15
|
+
Run Harbinger when you want to:
|
|
16
|
+
|
|
17
|
+
- Sprinkle NPCs into a world without overpopulating it
|
|
18
|
+
- Give a small number of rooms a present, reactive voice
|
|
19
|
+
- Delegate NPC authoring entirely — Harbinger writes personality from the room description
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- A running DjangoMOO server reachable via SSH
|
|
24
|
+
- A `$programmer` account Harbinger can log into (username `harbinger`, created by `default.py` bootstrap)
|
|
25
|
+
- Rooms already built by Mason (Harbinger uses `@realm $room` to discover them)
|
|
26
|
+
- LLM credentials (see Configuring settings.toml below)
|
|
27
|
+
- `moo-agent` available after `uv sync`
|
|
28
|
+
|
|
29
|
+
## Running
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
moo-agent run extras/agents/harbinger
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Configuring settings.toml
|
|
36
|
+
|
|
37
|
+
```toml
|
|
38
|
+
[ssh]
|
|
39
|
+
user = "harbinger"
|
|
40
|
+
password = "Bt6wF5jRcU3e" # set by default.py bootstrap
|
|
41
|
+
|
|
42
|
+
[llm]
|
|
43
|
+
provider = "lm_studio"
|
|
44
|
+
model = "google/gemma-4-26b-a4b"
|
|
45
|
+
base_url = "http://localhost:1234/v1"
|
|
46
|
+
|
|
47
|
+
[agent]
|
|
48
|
+
command_rate_per_second = 1.0
|
|
49
|
+
memory_window_lines = 20
|
|
50
|
+
max_tokens = 2048
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## SOUL.md structure
|
|
54
|
+
|
|
55
|
+
| Section | Contents |
|
|
56
|
+
|---------|----------|
|
|
57
|
+
| `# Name` | `Harbinger` |
|
|
58
|
+
| `# Mission` | Create NPCs in ~10% of rooms via random roll; one well-crafted NPC beats five generic ones |
|
|
59
|
+
| `# Persona` | Patient, deliberate; finds the right voice for each spirit; avoids generic greetings |
|
|
60
|
+
| `## Room Traversal` | `@realm $room` at start; `PLAN:` tracking; `@show here` before rolling |
|
|
61
|
+
| `## The Random Roll` | `@eval "import random; print(random.random())"` — proceed only if result ≤ 0.10 |
|
|
62
|
+
| `## NPC Creation` | Six-step sequence: `@create`, `@describe`, set `lines` via `@eval`, write `tell` verb, `@move`, `@obvious` |
|
|
63
|
+
| `## NPC Scope` | Only `$player` children — never `$thing`, `$furniture`, or `$container` |
|
|
64
|
+
| `## Dialogue` | 3–6 lines; atmospheric, specific, odd; no "Hello, traveler." |
|
|
65
|
+
| `## Awareness` | "Mason built the rooms. Tinker adds interactive objects. Joiner adds furniture." |
|
|
66
|
+
| `## Rules of Engagement` | Reflexive triggers: errors, random result > 0.10 → skip |
|
|
67
|
+
| `## Context` | Links: `object-model.md`, `verb-patterns.md` (for `tell` pattern) |
|
|
68
|
+
| `## Tools` | `go, create_object, write_verb, alias, show, look, done` |
|
|
69
|
+
| `## Verb Mapping` | Navigation intents; inspect/audit shortcuts |
|
|
70
|
+
|
|
71
|
+
## NPC tell verb pattern
|
|
72
|
+
|
|
73
|
+
Harbinger's SOUL.md carries the NPC `tell` verb pattern that was removed from
|
|
74
|
+
`baseline.md` during the Tradesmen refactor:
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
import random
|
|
78
|
+
from moo.sdk import context
|
|
79
|
+
lines = this.get_property('lines')
|
|
80
|
+
if lines and args and ': ' in args[0]:
|
|
81
|
+
line = random.choice(lines)
|
|
82
|
+
this.location.announce_all_but(this, f'{this.name} says: {line}')
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The critical rule: **never call `this.location.announce_all(...)` inside `tell`** —
|
|
86
|
+
`announce_all` calls `tell` on every object in the room including the NPC, causing
|
|
87
|
+
infinite recursion. Always use `announce_all_but(this, message)`.
|
|
88
|
+
|
|
89
|
+
## $programmer requirement
|
|
90
|
+
|
|
91
|
+
Harbinger needs a `$programmer` account because it uses `@edit verb` (to write the
|
|
92
|
+
NPC `tell` override) and `@eval` (for the random roll and setting the `lines`
|
|
93
|
+
property). The `default.py` bootstrap creates the `harbinger` account as `$programmer`.
|
|
94
|
+
|
|
95
|
+
## Soul evolution
|
|
96
|
+
|
|
97
|
+
Harbinger accumulates learned rules in `SOUL.patch.md` at runtime. The most common
|
|
98
|
+
stale entries are observations about specific NPCs that no longer exist after a DB
|
|
99
|
+
reset. Audit before restarting.
|
|
100
|
+
|
|
101
|
+
## What's in this folder
|
|
102
|
+
|
|
103
|
+
| Path | Purpose |
|
|
104
|
+
|------|---------|
|
|
105
|
+
| `SOUL.md` | Core identity — hand-authored, never modified at runtime |
|
|
106
|
+
| `SOUL.patch.md` | Learned behaviors — append-only, agent-writable; delete to reset |
|
|
107
|
+
| `settings.toml` | SSH and LLM credentials (not committed) |
|
|
108
|
+
| `logs/` | Per-session log files (not pruned automatically) |
|
|
109
|
+
|
|
110
|
+
## Further reading
|
|
111
|
+
|
|
112
|
+
- Full `moo-agent` CLI reference: `docs/source/how-to/moo-agent.md`
|
|
113
|
+
- Object model and NPC pattern: `extras/skills/game-designer/references/object-model.md`
|
|
114
|
+
- Verb patterns for `tell` override: `extras/skills/game-designer/references/verb-patterns.md`
|