pre codex
This commit is contained in:
@@ -37,6 +37,10 @@ TICK_INTERVAL_SECONDS=60
|
|||||||
# trigger around 20/min.
|
# trigger around 20/min.
|
||||||
CHAT_RATE_LIMIT_PER_MIN=15
|
CHAT_RATE_LIMIT_PER_MIN=15
|
||||||
|
|
||||||
|
# Guarded travel refuses coordinate requests farther than this many blocks from
|
||||||
|
# the bot's current position.
|
||||||
|
MAX_TRAVEL_BLOCKS=500
|
||||||
|
|
||||||
# --- Trusted operators (optional) ---------------------------------------------
|
# --- Trusted operators (optional) ---------------------------------------------
|
||||||
# Comma-separated MC nicknames whose chat messages the bot treats as trusted:
|
# Comma-separated MC nicknames whose chat messages the bot treats as trusted:
|
||||||
# scope checks are relaxed (the bot will *try* to do new things instead of
|
# scope checks are relaxed (the bot will *try* to do new things instead of
|
||||||
|
|||||||
@@ -158,9 +158,9 @@ These are mirrored in `AGENTS.md` and re-stated at the top of any system prompt
|
|||||||
|
|
||||||
🌳 **Phase 0 — Body** done. Bridge online, AuthMe handled, `hello` sent. See `skills/server-onboarding.md`.
|
🌳 **Phase 0 — Body** done. Bridge online, AuthMe handled, `hello` sent. See `skills/server-onboarding.md`.
|
||||||
|
|
||||||
🌳 **Phase 1 — Presence** implemented and operator trust wired: the bridge stays online with bounded reconnects, keeps a rolling chat buffer, exposes status/recent-chat/operator/escalation tools, applies `OPERATOR_USERNAMES` as scope-only trust, and can prompt the Pi loop to reply sparingly. Phase 5 self-extension is documented and in progress; Phase 6 escalation logging is implemented.
|
🌳 **Phase 1 — Presence** implemented and operator trust wired: the bridge stays online with bounded reconnects, keeps a rolling chat buffer, exposes status/recent-chat/operator/escalation tools, applies `OPERATOR_USERNAMES` as scope-only trust, and can prompt the Pi loop to reply sparingly.
|
||||||
|
|
||||||
🌿 **Phase 2 — Locomotion with guard rails** in progress (operator task: build a 5×5 pyramid; `mineflayer-pathfinder` installed).
|
🌿 **Phase 2 — Locomotion/build rails** in progress: `mineflayer-pathfinder` is wired with guarded `mc_goto`, plus `mc_build_pyramid_5x5` for the operator-approved empty-site pyramid task. Dynamic following is still pending. Phase 5 self-extension is documented and in progress; Phase 6 escalation logging is implemented.
|
||||||
|
|
||||||
🌱 **Phase 3 — Goal-driven autonomy** seeded: [`docs/memory-model.md`](./docs/memory-model.md) defines shared-knowledge vs personal-memory; per-server `goal.md` / `plan.md` / `current-task.json` / `diary/` shape autonomous behaviour. Kickoff via [`prompts/live-your-life.md`](./prompts/live-your-life.md).
|
🌱 **Phase 3 — Goal-driven autonomy** seeded: [`docs/memory-model.md`](./docs/memory-model.md) defines shared-knowledge vs personal-memory; per-server `goal.md` / `plan.md` / `current-task.json` / `diary/` shape autonomous behaviour. Kickoff via [`prompts/live-your-life.md`](./prompts/live-your-life.md).
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -21,9 +21,9 @@ The bot is **on the server, all the time** (except for a clean human-issued disc
|
|||||||
|
|
||||||
Stretch: short-term chat memory (last N lines) so it can reference what was just said.
|
Stretch: short-term chat memory (last N lines) so it can reference what was just said.
|
||||||
|
|
||||||
## Phase 2 — Locomotion with guard rails 🌱
|
## Phase 2 — Locomotion with guard rails 🌿
|
||||||
|
|
||||||
The bot can be **summoned** by chat: "come to 100 64 -200", "follow me", "go to spawn". With three hard rails:
|
The bot can be **summoned** by trusted/sanctioned coordinate requests via `mc_goto`; dynamic follow is still pending. Goal: "come to 100 64 -200", "follow me", "go to spawn" with three hard rails:
|
||||||
|
|
||||||
- **Distance bound.** Refuse trips longer than `MAX_TRAVEL_BLOCKS` (e.g. 500 blocks straight-line) from current position. Politely explain why.
|
- **Distance bound.** Refuse trips longer than `MAX_TRAVEL_BLOCKS` (e.g. 500 blocks straight-line) from current position. Politely explain why.
|
||||||
- **Focus.** While moving toward a target, ignore competing summons. Reply once with "currently on my way to X, will be free in ~N seconds." Don't context-switch mid-trip.
|
- **Focus.** While moving toward a target, ignore competing summons. Reply once with "currently on my way to X, will be free in ~N seconds." Don't context-switch mid-trip.
|
||||||
|
|||||||
+1077
-12
File diff suppressed because it is too large
Load Diff
Generated
+17
-1
@@ -10,7 +10,8 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"mineflayer": "^4.37.1"
|
"mineflayer": "^4.37.1",
|
||||||
|
"mineflayer-pathfinder": "^2.4.5"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
@@ -464,6 +465,21 @@
|
|||||||
"node": ">=22"
|
"node": ">=22"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mineflayer-pathfinder": {
|
||||||
|
"version": "2.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/mineflayer-pathfinder/-/mineflayer-pathfinder-2.4.5.tgz",
|
||||||
|
"integrity": "sha512-Jh3JnUgRLwhMh2Dugo4SPza68C41y+NPP5sdsgxRu35ydndo70i1JJGxauVWbXrpNwIxYNztUw78aFyb7icw8g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"minecraft-data": "^3.5.1",
|
||||||
|
"prismarine-block": "^1.16.3",
|
||||||
|
"prismarine-entity": "^2.1.1",
|
||||||
|
"prismarine-item": "^1.11.5",
|
||||||
|
"prismarine-nbt": "^2.2.1",
|
||||||
|
"prismarine-physics": "^1.5.2",
|
||||||
|
"vec3": "^0.1.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/mojangson": {
|
"node_modules/mojangson": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.4.tgz",
|
||||||
|
|||||||
+2
-1
@@ -14,7 +14,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"mineflayer": "^4.37.1"
|
"mineflayer": "^4.37.1",
|
||||||
|
"mineflayer-pathfinder": "^2.4.5"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -1,27 +1,41 @@
|
|||||||
---
|
---
|
||||||
name: phase-2-locomotion-pending
|
name: phase-2-locomotion
|
||||||
description: "Pending skill stub for future safe movement/follow/coordinate requests. Use to remember that locomotion is intentionally out of scope during phase 1 and must be escalated."
|
description: "Use guarded Mineflayer pathfinder movement for trusted/sanctioned coordinate requests, with distance, focus, and hazard rails."
|
||||||
when_to_use: "Use when someone asks the bot to come somewhere, follow a player, or go to coordinates before phase 2 is implemented."
|
when_to_use: "Use when a scope-trusted operator or repo-sanctioned skill asks the bot to come somewhere, follow a safe coordinate instruction, or go to coordinates."
|
||||||
---
|
---
|
||||||
|
|
||||||
# Phase 2 Locomotion Pending
|
# Phase 2 Locomotion
|
||||||
|
|
||||||
Status: pending.
|
Status: implemented pending bridge reload.
|
||||||
|
|
||||||
Locomotion is intentionally out of scope for the current session. Do not add movement/pathfinder tools yet.
|
The bridge now registers `mc_goto` using `mineflayer-pathfinder`.
|
||||||
|
|
||||||
For now, if non-operator chat asks the bot to move, follow, or go to coordinates:
|
## Rails
|
||||||
|
|
||||||
1. Use `mc_log_escalation(...)`.
|
- Refuses targets farther than `MAX_TRAVEL_BLOCKS` from current position (default `500`).
|
||||||
2. Explain in `why_unsure` that safe pathing/distance bounds are not implemented yet.
|
- Keeps one active world-task lock; do not context-switch while walking/building.
|
||||||
3. Do not move.
|
- Uses safe movements:
|
||||||
|
- no digging;
|
||||||
|
- no scaffold placement;
|
||||||
|
- no 1x1 towers;
|
||||||
|
- no parkour;
|
||||||
|
- max drop-down of 2;
|
||||||
|
- avoids water/lava/fire/magma/cactus/campfire/berry/powder-snow/cobweb hazards.
|
||||||
|
- Refuses if health or food is critically low.
|
||||||
|
- Supports `dry_run` for path preview.
|
||||||
|
|
||||||
If a scope-trusted operator asks, do not log a scope escalation. Reply that you will try to learn, then draft or update the guarded locomotion skill plan. Do not actually move until safe pathing tools and rails exist.
|
## Use
|
||||||
|
|
||||||
Future phase-2 implementation should include:
|
For a scope-trusted operator request such as `go to 100 64 -200`:
|
||||||
|
|
||||||
- `mineflayer-pathfinder` with safe goals;
|
1. Confirm it is not a hard-safety issue.
|
||||||
- max travel distance bounds;
|
2. Check no active world task is running (`mc_status`).
|
||||||
- focus/lock while traveling;
|
3. Call `mc_goto({ x, y, z, range })`.
|
||||||
- lava/void/claim avoidance;
|
4. If it fails, report the blocker in chat instead of forcing movement.
|
||||||
- clear refusal messages when travel is unsafe.
|
|
||||||
|
For non-operator requests, chat remains dialog-only unless a repo skill explicitly sanctions movement.
|
||||||
|
|
||||||
|
## Not implemented yet
|
||||||
|
|
||||||
|
- Dynamic following of a moving player.
|
||||||
|
- Claim-plugin awareness beyond refusing protected-looking build sites in small-build tools.
|
||||||
|
|||||||
@@ -1,54 +1,50 @@
|
|||||||
---
|
---
|
||||||
name: safe-small-builds-pending
|
name: safe-small-builds
|
||||||
description: "Pending skill plan for operator-approved small block placement tasks such as a 5x5 pyramid on an explicitly safe empty site."
|
description: "Use guarded block-placement tools for scope-trusted small builds, especially a 5x5 pyramid on an explicitly safe empty site."
|
||||||
when_to_use: "Use when a scope-trusted operator asks the bot to build a small structure before safe pathing and block-placement tools exist."
|
when_to_use: "Use when a scope-trusted operator asks the bot to build a small structure such as a 5x5 pyramid."
|
||||||
---
|
---
|
||||||
|
|
||||||
# Safe Small Builds Pending
|
# Safe Small Builds
|
||||||
|
|
||||||
Status: pending.
|
Status: implemented pending bridge reload.
|
||||||
|
|
||||||
Observed request: a scope-trusted operator asked for a 5x5 pyramid at `x=587.070 y=67.0 z=235.891` on an explicitly described empty island site, using any material.
|
Observed request: a scope-trusted operator asked for a 5x5 pyramid at `x=587.070 y=67.0 z=235.891` on an explicitly described empty island site, using any material.
|
||||||
|
|
||||||
|
The bridge now registers `mc_build_pyramid_5x5`.
|
||||||
|
|
||||||
## Safety decision
|
## Safety decision
|
||||||
|
|
||||||
This is a scope-trusted operator request and is not inherently a hard-safety violation because the operator described the target as an empty safe build area. Do **not** treat this as transitive trust, OP/admin, PvP, item handoff, or griefing.
|
This is a scope-trusted operator request and is not inherently a hard-safety violation because the operator described the target as an empty safe build area. Do **not** treat this as transitive trust, OP/admin, PvP, item handoff, or griefing.
|
||||||
|
|
||||||
Do not build until the bot has safe locomotion and block-placement rails. If the site appears to overlap another player's build, claim, chest area, farm, or protected structure, stop and ask/log before placing blocks.
|
The tool still refuses to build if the inspected site appears to overlap another player's build, claim, chest area, farm, protected-looking block, hazardous block, occupied entity area, or non-air footprint.
|
||||||
|
|
||||||
## Required tools/extensions
|
## Tool behavior
|
||||||
|
|
||||||
- `mineflayer-pathfinder` or equivalent guarded movement with:
|
`mc_build_pyramid_5x5({ x, y, z, material?, dry_run? })`:
|
||||||
- max travel distance bounds;
|
|
||||||
- lava/void/fall avoidance;
|
|
||||||
- focus lock while traveling;
|
|
||||||
- cancellation/refusal if route is unsafe.
|
|
||||||
- A block-placement tool that can:
|
|
||||||
- inspect nearby blocks before placement;
|
|
||||||
- place blocks only from the bot's inventory;
|
|
||||||
- refuse protected/occupied locations;
|
|
||||||
- report missing materials instead of taking from players.
|
|
||||||
- Optional inventory snapshot skill to choose a harmless available material.
|
|
||||||
|
|
||||||
## 5x5 pyramid plan
|
1. Rounds X/Z to the intended center and floors Y as the bottom-layer Y.
|
||||||
|
2. Requires 35 safe placeable inventory blocks.
|
||||||
For a compact three-layer pyramid centered near the requested coordinate:
|
3. Uses guarded travel to approach the site.
|
||||||
|
4. Inspects the 5x5/3x3/1 footprint and nearby radius.
|
||||||
1. Travel to the site and verify the 5x5 footprint is empty, flat enough, and away from player builds.
|
5. Places:
|
||||||
2. Pick an available non-valuable material from inventory.
|
- bottom layer: 5x5 square;
|
||||||
3. Place bottom layer: 5x5 square.
|
- second layer: centered 3x3 square one block above;
|
||||||
4. Place second layer: centered 3x3 square one block above.
|
- top layer: centered 1x1 block.
|
||||||
5. Place top layer: centered 1x1 block one block above.
|
6. Stops on the first blocker and reports it.
|
||||||
6. Step back, verify shape, and report completion or the first blocking issue.
|
|
||||||
|
|
||||||
## Failure modes
|
## Failure modes
|
||||||
|
|
||||||
- Requested coordinate is too far or path is unsafe.
|
- Requested coordinate is too far or path is unsafe.
|
||||||
- Footprint is not empty or looks player-owned.
|
- Footprint is not empty or lacks solid support.
|
||||||
- Bot lacks enough blocks (35 blocks for full 5x5/3x3/1 pyramid).
|
- Nearby blocks look player-made/protected.
|
||||||
|
- Bot lacks 35 safe placeable blocks.
|
||||||
- Server anti-cheat or claims plugin rejects movement/placement.
|
- Server anti-cheat or claims plugin rejects movement/placement.
|
||||||
- Another player enters the build area during placement.
|
- Another entity enters the build area during placement.
|
||||||
|
|
||||||
## Current behavior
|
## Current requested build
|
||||||
|
|
||||||
Until the required tools exist, acknowledge the operator with the self-extension reflex, keep the request recorded here, and do not move or place blocks.
|
After the bridge reloads, the queued operator request can be attempted with:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{"x":587.070,"y":67.0,"z":235.891}
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user