Skip to content

Add shadow jar support, custom OpenAI base URL, and Chinese docs#52

Open
beancookie wants to merge 23 commits into
YuvDwi:mainfrom
beancookie:main
Open

Add shadow jar support, custom OpenAI base URL, and Chinese docs#52
beancookie wants to merge 23 commits into
YuvDwi:mainfrom
beancookie:main

Conversation

@beancookie
Copy link
Copy Markdown

Summary

  • 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

Test plan

  • Verify shadowJar builds successfully
  • Test custom base URL configuration
  • Review Chinese documentation

🤖 Generated with Claude Code

luzhong and others added 23 commits April 30, 2026 17:18
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant