Add shadow jar support, custom OpenAI base URL, and Chinese docs#52
Open
beancookie wants to merge 23 commits into
Open
Add shadow jar support, custom OpenAI base URL, and Chinese docs#52beancookie wants to merge 23 commits into
beancookie wants to merge 23 commits into
Conversation
…mpatibility - Add Tencent Gradle mirror for faster downloads in China - Configure HTTP/HTTPS proxy for corporate/network setups - Remove foojay-resolver-convention plugin that conflicts with ForgeGradle - Add Minecraft/Forge/AliYun repositories for dependency resolution Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add shadowJar plugin to bundle required dependencies (Caffeine, Resilience4j) - Add configurable OpenAI base URL for proxy/alternate endpoint support - Update AsyncOpenAIClient to support custom base URL via SteveConfig - Add Chinese README (README_zh.md) - Add multi-file documentation in docs/ directory Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove terrain modeling system (TerrainScanner, TerrainModel, SiteAnalyzer) as Arnis handles terrain generation. Add Arnis CLI usage, key parameters, and validation workflow. Renumber sections and update system architecture diagram to reflect Arnis data sources (OSM, SRTM, ESA WorldCover). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add 36-slot SimpleContainer inventory to SteveEntity with NBT persistence - Mining collects blocks into inventory instead of dropping on ground - Building consumes materials from inventory (skipped in creative mode) - Add creativeMode config option (default: true) for unlimited materials - Fix build plan fallback: procedural generation was commented out - Fix collaborative build: Steve now reassigns to other quadrants when done - Update LLM prompt to reflect creative/survival mode rules - Update PromptBuilder to show inventory or [unlimited] based on mode - Add block drop mapping (stone -> cobblestone, etc.) - Add material mining aliases (cobblestone, oak_planks, glass, etc.) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add SteveGUI implementation guide (09-steve-gui.md) - Add WorldKnowledge system documentation (10-world-knowledge.md) - Move construction-related docs to hackathon/ subdirectory - Update README.md with new documentation structure - Remove obsolete road implementation doc (12-road-implementation.md) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add comprehensive technical documentation covering: - System architecture and data flow - LLM integration with retry logic - Multi-agent coordination system - Procedural structure generation - World knowledge and environment scanning - Action execution system - Resume-ready technical highlights Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reorganize documentation into logical sections: - 基础层: overview, architecture, config - AI 核心: world knowledge, prompt builder, LLM, resilience - 执行层: actions, multi-agent, code execution - 架构模式: plugins, events, entity management - 数据层: memory, structures - 界面层: GUI Add new documentation: - PromptBuilder: LLM prompt engineering system - PluginSystem: SPI-based action registration framework - EventSystem: Observer pattern for decoupled communication - Resilience: Circuit breaker, retry, rate limiter, bulkhead - EntityManagement: Steve lifecycle management Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Previously, Steves were discarded and respawned on every player login using a static boolean flag, losing all state on world reload. Now the server event handler checks both the manager and the world for existing Steve entities before spawning, and registers entities loaded from save data instead of destroying them. The static stevesSpawned flag is removed in favor of runtime checks against the manager's active count. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- StructureTemplateLoader now loads/saves structures from config/steve/structures/ - PromptBuilder dynamically generates NBT template list for LLM prompts - TaskPlanner adds debug logging for system and user prompts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add configurable material warehouses that provide building materials automatically. When Steve runs out of materials during construction, it navigates to the nearest warehouse chest to withdraw more. - WarehouseConfig: parse warehouses.json with spawn modes (fixed/near_player) - WarehouseSavedData: persist warehouse positions across server restarts - WarehouseManager: chest interaction API with auto-restock every 5 seconds - WarehouseRefillHandler: state machine for build-time material refilling - BuildStructureAction: integrate refill handler when materials run out - SteveEntity: add warehousePos field and auto-restock tick trigger - PromptBuilder: add warehouse awareness to LLM prompt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ld delay - Remove StructureGenerators and its test (procedural generation deprecated) - Add BUILD_TICK_DELAY config for controlling block placement speed (default 20 ticks/block) - Add restock cooldown to WarehouseManager to prevent rapid auto-restock - Increase SteveEntity RESTOCK_INTERVAL from 100 to 1200 ticks - Add duckyausautoroute schematic to config - Ignore Amulet editor files Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Merge WarehouseManager + WarehouseSavedData into a single class - Move WarehouseConfig from memory to config package - Move StructureRegistry from memory to structure package - Add Map-based name index for O(1) warehouse lookup - Add persisted restock cooldown to SavedData - Encapsulate WarehouseEntry fields with getters - Remove dead code (findNearestPlayerPos, depositItem) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add MCP SDK (modelcontextprotocol.sdk:mcp:2.0.0-M3) dependency - Add SteveConfig MCP configuration (enabled, servers, timeout) - Add MCP client wrapper with HTTP transport support - Add MCPToolRegistry for managing MCP server connections - Add MCPToolConverter for formatting tools to prompts - Add MCP integration tests - Simplify PromptBuilder: remove procedural structures, use text blocks - Remove ternary operators in favor of if-else helpers - Simplify build action validation (structure only, no blocks/dimensions) - Optimize buildUserPrompt with text block formatting Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add McpSyncClient wrapper for synchronous MCP communication - Add MCPToolRegistry singleton with lazy initialization - Add "mcp" action type in TaskPlanner and ActionExecutor - Add MCPAction to execute MCP tool calls - Add MCP tools to system prompt via PromptBuilder - Remove NBT persistence from SteveMemory (use mempalace instead) - Add queryLongTermMemory() to SteveMemory - Register structure templates to mempalace on load - Add MCP config section to example config - Add MCP SDK to shadowJar dependencies Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- On startup, StructureTemplateLoader scans config/steve/structures/
and registers each NBT template to mempalace via
mempalace_add_drawer (wing=structure_{type}, room={name}), then
verifies by calling mempalace_list_drawers.
- docs/hackathon/03-mempalace-integration.md captures the full
architecture: template registration, LLM-driven dispatch, build
execution, and position archival.
- Add ReAct (Reason + Act) agent that drives Steve step-by-step
via LLM Thought/Action/Observation loops, reusing MCPAction for
tool calls. New commands queue while a ReAct is running; the next
one starts automatically when the current agent finishes.
- Replace the Plan-and-Execute path in ActionExecutor: incoming
commands go into pendingCommands, drainNextCommand starts a
ReActAgent, and tick() feeds ActionResult observations back.
No fallback to the old plan-and-execute path.
- ResponseParser parses single ReAct steps (thought/action/
parameters/is_final/final_answer); PromptBuilder emits a
ReAct system prompt and per-step user prompt; TaskPlanner
exposes buildReActParams and a public getAsyncClient.
- SteveConfig gains a [react] section (maxSteps,
observationTruncateChars, maxConsecutiveFailures). ReAct is
the only mode; no enable toggle.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Ship template_house_1.nbt and template_house_2.nbt in
config/steve/structures/ following the {type}_{name}.nbt naming
convention. StructureTemplateLoader will pick them up at startup
and register them to mempalace as wing=structure_template.
Drop *.nbt from .gitignore so future NBT templates can be tracked
alongside the mod source.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Keep the original 房子_1.nbt and 房子_2.nbt alongside the template_house_1/2.nbt copies in config/steve/structures/. This directory holds the source NBT assets; the steve/structures copies are the mod-managed runtime templates. Future migrations are a manual rename. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Refresh the seven P0 documentation files to reflect the current
codebase (ReAct mode replaces Plan-and-Execute; mempalace stores
NBT templates and built-structure records):
- 00-overview.md: add ReAct mode and Mempalace/MCP sections
- 01-architecture.md: invert "Direct Action Execution" decision
(now ReAct); expand directory tree with llm/react, mcp, util;
document ReActAgent, MCPToolRegistry, mempalace template
registration, and warehouse JSON loading
- 02-actions.md: replace Plan-and-Execute flow with ReAct drain
loop; add MCPAction row; rewrite BuildStructureAction flow to
show multi-step LLM dispatch with position archival
- 03-config.md: add [mcp] and [react] sections; document
{type}_{name}.nbt naming convention; add MCP SDK to tech stack
- 05-prompt-builder.md: add buildReActSystemPrompt and
buildReActUserPrompt; document ReAct JSON format and MCP tool
injection; replace stale multi-task example with single-step
ReAct example
- 06-llm.md: add ReActAgent, MCPToolRegistry, MCPAction;
document ParsedResponse.isFinal/finalAnswer and parseReActStep
- 09-memory.md: replace NBT persistence with mempalace-backed
SteveMemory.queryLongTermMemory
hackathon/:
- Remove 01-construction-site.md and 02-road-construction.md
(stale project notes)
- Rename 03-mempalace-integration.md to 01-... and rewrite to
reflect ReAct loop: end-to-end sequence diagram, command
queueing, error handling, and verification plan
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
🤖 Generated with Claude Code