Skip to content

Add Bates installer: Core + Enhancement Wizard#1

Open
Kollerro wants to merge 11 commits intomainfrom
feature/installer-v1
Open

Add Bates installer: Core + Enhancement Wizard#1
Kollerro wants to merge 11 commits intomainfrom
feature/installer-v1

Conversation

@Kollerro
Copy link
Contributor

Summary

  • Step 1 (Bates Core): Windows Inno Setup installer that bootstraps WSL2/Ubuntu, installs OpenClaw gateway, configures AI auth (Claude/OpenAI), sets up Telegram channel, dashboard, cost tracker, and core workspace — working AI assistant in ~15 minutes
  • Step 2 (Bates Enhanced): Interactive bates-enhance.sh wizard with 14 optional integrations: Microsoft 365, Teams, Twilio voice calls, ElevenLabs TTS, search index, image generation, social media, Tailscale, on-demand agents (12 deputies), Google APIs, GitHub, DeepSeek, and web search
  • Build pipeline: Sanitization scanner (15 forbidden patterns), packaging script, patch management system for post-update gateway modifications

Stats

  • 189 files, 21,456 lines
  • 14 integration setup scripts with config merge, cron unlock, and state tracking
  • 8 documentation guides (M365, Telegram, Teams, Twilio, ElevenLabs, Google, Tailscale, troubleshooting)
  • 4 JavaScript/TypeScript patches (cost footer, adaptive cards, channel bridge, reapply script)

Test plan

  • Run sanitize-check.sh — verify 0/15 forbidden patterns
  • Test core-setup.sh + core-configure.sh + core-verify.sh on fresh WSL2 Ubuntu
  • Compile BatesCore.iss with Inno Setup 6 on Windows
  • Run bates-enhance.sh and test individual integrations
  • Verify template engine renders all {{PLACEHOLDER}} values correctly

🤖 Generated with Claude Code

Robert Koller and others added 11 commits February 17, 2026 22:13
…, dashboard, Telegram

Complete Step 1 "Bates Core" installer that gets a working AI assistant with
dashboard and Telegram in 15 minutes:

- Windows Inno Setup script (BatesCore.iss) + PowerShell WSL2 bootstrap (install.ps1)
- Linux setup scripts: core-setup.sh, core-configure.sh, core-verify.sh
- Shared libraries: common.sh, prerequisites.sh, template-engine.sh
- 7 core workspace rules, 2 skills, templatized SOUL.md/TOOLS.md
- Config templates: openclaw.json, auth-profiles.json, systemd service, crontab
- 8 sanitized core scripts (health-check, watchdog, archive, tmux, etc.)
- 2 plugins: cost-tracker + dashboard (glassmorphism UI, 14 panels, agent org chart)
- Step 2 enhancement wizard scaffold (bates-enhance.sh) with 5 shared libraries
- Build pipeline: sanitize-check.sh (15 forbidden patterns) + build-package.sh
- All personal data sanitized — 0 forbidden patterns detected

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Complete bates-enhance package with all 14 integration setup scripts:
- m365: 22 files (6 refs, 3 rules, 6 skills, 4 scripts, 14 cron jobs)
- agents: 15 files (12 deputy configs, 8 scripts, 15 cron jobs, delegation rules)
- search: 11 files (6 Python scripts, config.yaml template, Ollama setup)
- teams, twilio, social, tailscale, google: medium integrations with configs
- telegram, elevenlabs, image, github, deepseek, websearch: simple integrations

Also includes:
- Patch management: cost-footer, adaptive-cards, channel-bridge, reapply-patches.sh
- 8 documentation guides (manual-steps for each integration + troubleshooting)
- All sanitized — 0/15 forbidden patterns detected

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…hema

Found via Option B testing (fresh user install). 8 schema errors prevented
gateway startup: wrong key names (definitions→list, token→botToken,
ttlMinutes→ttl), misplaced sections (heartbeat, session), and missing
required fields (gateway.mode, model object format, subagents config).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add prominent disclaimer to README: experimental software, no warranty,
  use at your own risk, not affiliated with any third-party services
- Fix core-configure.sh: openclaw models auth setup-token requires an
  interactive TTY. Now falls back to manual credential storage when
  piped input is detected, with instructions to complete setup later.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude Code is essential for delegation (run-delegation.sh, claude-tmux.sh,
coding-agent skill) but was never installed. Also adds tmux which is needed
for the claude-tmux.sh persistent session wrapper.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All config fragments and setup scripts were using non-existent OpenClaw
config keys (mcp, features, assistant) and wrong key names/paths.
Fixed to match actual OpenClaw v2026.2 schema:

- telegram: token -> botToken, removed allowFrom, added dmPolicy/streamMode
- twilio: channels.voice -> plugins.entries.voice-call.config,
  maxConcurrent -> maxConcurrentCalls
- elevenlabs: channels.voice.tts -> plugins.entries.voice-call.config.tts.elevenlabs,
  model -> modelId, added talk section
- m365: removed assistant/mcp keys, use env.vars; fixed config_merge -> config_merge_inline
- github: removed mcp key, store token in env.vars
- google: removed mcp key, store credentials in env.vars
- websearch: removed mcp key, use tools.web.search for Brave,
  models.providers for Perplexity
- image: removed features key, store API keys in env.vars
- search: removed features key (search index uses own config.yaml)
- social: removed features key, store MixPost URL in env.vars
- deepseek: replaced {enabled:true} with full provider structure
  (baseUrl, apiKey, api, models array), added template rendering
- agents: added archiveAfterMinutes and model to subagents config
- config-merge.sh: fixed telegram and voice helper functions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- bates-icon.ico: Multi-size ICO (256/128/64/48/32/16) from app icon
- installer-banner.bmp: 164x314 wizard banner from splash screen
- installer-logo.bmp: 55x55 wizard logo from avatar
- installer-splash.png: Full splash screen for reference
- BatesCore.iss: Enable SetupIconFile, WizardSmallImageFile,
  WizardImageFile referencing the new assets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- All 12 deputy heartbeat crons now include delivery config with
  {{PRIMARY_CHANNEL}}/{{DELIVERY_TARGET}} placeholders and bestEffort
- Heartbeat prompts reference deputy-specific HEARTBEAT.md paths
  ({{HOME}}/.openclaw/agents/{name}/HEARTBEAT.md) instead of generic
- message-router cron changed to sessionTarget: "isolated" to prevent
  main session pollution
- daily-standup-compile and weekly-strategy-review get proper delivery
- cron-unlock.sh resolves {{USER_TZ}}, {{PRIMARY_CHANNEL}},
  {{DELIVERY_TARGET}}, {{HOME}} from env vars or openclaw.json config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- channel-bridge.patch.ts: add __openclawUpdateTeamsCard bridge + abort-signal blocking fix
- send-update.patch.ts: new patch for updateAdaptiveCardMSTeams function
- policy-dm.patch.ts: new patch fixing DM proxy revocation (replyStyle thread -> top-level)
- reapply-patches.sh: add sections 4-5 for send.ts and policy.ts auto-patching
- model-fallback.sh: expand from 2 to 4 provider options (+ Codex 5.3, Gemini, Sonnet)
- troubleshooting.md: add proxy revocation fix, channel auto-restart loop, 1M context warning

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sub-agent result cards, thinking bubbles, progress updates, and failure
cards now show the deputy's unique avatar image instead of a generic
robot emoji. Avatars are served from GitHub raw URLs (public repo) so
Teams servers can fetch them directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DISCLAIMER.txt: standalone file with full experimental/risk/autonomous-agent warnings
- BatesCore.iss: shows disclaimer as Inno Setup license page (must click "I accept"),
  Apache 2.0 license shown as info-before page
- install.ps1: shows disclaimer and requires "I ACCEPT" before Windows bootstrap;
  persists acceptance marker to avoid re-prompting after reboot
- core-setup.sh: shows disclaimer and requires "I ACCEPT" before Linux setup;
  supports BATES_ACCEPT_DISCLAIMER=yes for non-interactive/CI use

Co-Authored-By: Claude Opus 4.6 <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

Comments