Skip to content

Add AI Office (AI 事务所) MiniApp - #23

Merged
MyPrototypeWhat merged 3 commits into
MiniMax-AI:mainfrom
cristinamadureira353-svg:add-ai-office
Oct 19, 2026
Merged

MyPrototypeWhat merged 3 commits into
MiniMax-AI:mainfrom
cristinamadureira353-svg:add-ai-office

Conversation

@cristinamadureira353-svg

@cristinamadureira353-svg cristinamadureira353-svg commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Adds AI Office / AI 事务所, a Chinese-language pixel office management game with five model-powered employees (M3, Flash, LongCat, Kimi and Step5). Players assign client work, review deliveries, chat with employees and arrange breaks and meetings. When a provider's quota is exhausted or credentials become invalid, the affected employee enters a visible offline state and stops work and further requests until the player repairs the configuration and manually reboots it.

Package

  • Adds the complete, independently installable plugins/cristinamadureira353-svg/ai-office/ package, version 0.5.10, plus entries in both root README tables.
  • Includes the Godot Web export, Python backend, generic first-run setup guidance, English/Chinese documentation, synthetic preview, tests outside the runtime payload, MIT license and required font/engine notices.
  • Uses the published v0.5.10 runtime. Runtime files remain byte-for-byte identical; this contribution adds documentation, a preview and author attribution. Tagged game source and build instructions are public.
  • Players need Python 3.9+ and the supplied Flask/requests/python-dotenv requirements, plus at least one employee provider's own API key. Optional Jev decisions use a separate OpenRouter key. Players need no Godot installation or source checkout.

Data and runtime access

  • Node binds only the Host-provided loopback listener and stores settings and progress under context.dataDir.
  • The player selects an existing environment file and, optionally, an initial JSON save; these external files are read only. No Host login credentials are read.
  • Starts one configured Python backend with argument arrays and a private JSON-lines protocol; setup also performs a short local Python dependency probe. The README documents both commands and lifecycle cleanup. API key values do not appear in process arguments, page APIs, logs or error responses.
  • Gameplay sends task/dialogue context to api.minimaxi.com, api.longcat.chat, api.kimi.com, api.stepfun.com, and optionally openrouter.ai. These calls use the player's own quota. Reading setup guidance and checking dependencies make no model calls.
  • No real keys, private saves, real conversations, virtual environments, caches or personal screenshots are included. The package and decompressed Web payload were checked for known real keys, credential formats and personal local identifiers; the preview uses synthetic game state.

Validation

  • npm run check: 0 errors, 55/55 repository checker tests passed.
  • This package: ai-office: OK, no warnings.
  • Full relocated-package tests: 34/34 passed, no failures or skips, using temporary Host-context fixtures and headless Chromium. Covers first setup, reopening, quota shutdown/manual recovery, five chats, all four conflict choices, failed-request recovery, rest seats, UI layout and HiDPI behavior.
  • Environment: macOS 26.4, Node.js 22.23.2, Python 3.9.6, Godot 4.4.1 Web export.
  • The source release separately recorded 54 isolated backend tests and 415 Godot headless checks. See the package's docs/VALIDATION.md for scope and reproducible commands.

The whole-repository validator reports four existing README_HEADING_MISSING warnings: plugins/amszuidas/mcode-token-usage-board/README.md and plugins/yanhy2000/mcode-usage-monitor/README.md each lack ## Tested environment and ## Data & access. Those packages are unchanged. The generated Godot HTML/JS retain the release exporter's whitespace; other staged files pass the whitespace check.

Manual host play and validation scope

Manual play with real model providers. The project author installed, opened and played AI Office in the real MiniMax Code desktop host on macOS using real provider-issued API keys, live model API calls and actual provider responses, and confirmed this test method on 2026-10-17. Recorded environment: macOS 26.4 / MiniMax Code 3.0.73; the installed host version and OS were rechecked for this documentation correction.

Existing host screenshots show the game running. The author's gameplay feedback covers employee controls and chat access, rest seating, conflict-choice buttons and HUD visibility, and informed the corresponding fixes and regression coverage. Both READMEs and the detailed validation record explicitly record live-provider manual play.

Additional automated regression. The submitted 0.5.10 package also passed 34/34 automated interaction checks, including first-run configuration, game entry, reopening and employee chat, using temporary Host-context fixtures and headless Chromium. This separate scripted suite substitutes provider replies to exercise repeatable success and failure cases. The author's manual playtesting above used real provider keys and live model responses. Windows/Linux host play, Chinese IME behavior and long-term balance remain outside the recorded test coverage.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@MyPrototypeWhat MyPrototypeWhat left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution — this game is very complete. I ran through it locally the way the package ships:

  • On Node 22, npm run check is 55/55; with the env vars set, in-package node --test tests/*.test.mjs is 34/34.
  • Started server.mjs with a temp dataDir, saved config, opened /ai-office in headless Chrome — Godot enters the game with no external requests; staff without a Key show "脑袋宕机了" and don't send requests.
  • Foreign Host/Origin get 403; pythonPath pointing at a non-python binary is rejected; the Python backend uses stdin/stdout and doesn't listen on a port; the Python child exits on close.
  • miniapp/ matches the v0.5.10 release package byte-for-byte, and the release sha256 checks out.
  • First-run Agent creating a venv in the private dir and installing Flask, requests, python-dotenv is acceptable for us.

Required changes

  1. CONTRIBUTING asks you to install, open, and check main flows in MiniMax Code before submitting, and to document the test environment and results in the PR. The README currently says it "has not been manually reinstalled and played in a real MiniMax Code host" (README.md line 47). Please run first-time setup, enter the game, and chat with staff on a real host, then update the PR description and the README Tested environment section, and fix that line 47 sentence.

Suggestions (optional)

  1. In THIRD_PARTY_NOTICES.md, LICENSES/Godot-MIT.txt, LICENSES/Godot-COPYRIGHT.txt, and godot/assets/fonts/OFL.txt are paths from the source repo; this package doesn't have them. Prefer the in-package LICENSE-GODOT.txt, COPYRIGHT-GODOT.txt, and LICENSE-NOTO.txt.
  2. In-package tests need env vars like AI_OFFICE_TEST_EVIDENCE and AI_OFFICE_TEST_NODE_MODULES, currently only documented in the source repo. A short note under tests/ would help others reproduce.
  3. In the two root README tables, the new rows can go at the end to match the existing order.


- Copyright (c) 2014-present Godot Engine contributors.
- Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
- License: LICENSES/Godot-MIT.txt

@MyPrototypeWhat MyPrototypeWhat Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These paths (LICENSES/Godot-MIT.txt, and the next line / line 21) are from the source repo; this plugin package has no LICENSES/ or godot/ directories. Prefer the in-package LICENSE-GODOT.txt, COPYRIGHT-GODOT.txt, and LICENSE-NOTO.txt.

@MyPrototypeWhat MyPrototypeWhat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the real-host notes: host version, OS and how real provider keys were used are all documented now, and the "not re-installed and played in a real host" line is gone. The code is unchanged since my last review; a trial merge onto current main is clean and npm run check passes on Node 22 (ai-office OK, 69/69). Approving.

Optional follow-ups

  • It would still be good to confirm in the README's Tested environment that this exact 0.5.10 package was installed and opened in MiniMax Code (ideally 3.1.2+, which adds loopback port authentication), rather than only development playtests plus automated checks.
  • THIRD_PARTY_NOTICES.md lines 11, 12 and 21 still point to source-repo paths (LICENSES/Godot-MIT.txt, LICENSES/Godot-COPYRIGHT.txt, godot/assets/fonts/OFL.txt); the package ships LICENSE-GODOT.txt, COPYRIGHT-GODOT.txt and LICENSE-NOTO.txt.
  • The tests under tests/ read AI_OFFICE_TEST_EVIDENCE and similar env vars; a short tests/README would help.
  • Consider moving the root README row to the end of the table to avoid conflicts with other open PRs.

@MyPrototypeWhat
MyPrototypeWhat merged commit c46be91 into MiniMax-AI:main Oct 19, 2026
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.

2 participants