sync main #1

Open
timur wants to merge 21 commits from development into main
Owner
No description provided.
Major restructuring of AI domain concepts:

- Rename Role -> Agent: workflows of intelligence with capabilities
- Rename Agent -> Bot: anthropomorphized instances with personality
- Add new `flow` domain with DAG-based Workflow definitions
- Add Agent Client Protocol (ACP) support for external agents
- Bots can now be backed by internal agents or external ACP agents

Schema changes:
- Split ai.oschema into ai.oschema (chat) and agent.oschema (Agent/Bot)
- New flow/workflow.oschema defining workflow DAG structure
- WorkflowStep supports: prompt, tool_call, condition, parallel, loop, subworkflow, transform, output
- AgentCapability now references workflow_id instead of inline functionality

Services:
- AgentService: get_by_name, list_all, get_capabilities
- BotService: query (unified ACP interface), get_by_agent, get_by_username, set_state, discover_acp_capabilities, list_public
- WorkflowService: execute, get_by_name, list_published, validate, get_execution, cancel_execution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add CI workflow and release targets
All checks were successful
Build and Test / build (push) Successful in 8m50s
Build and Test / build (pull_request) Successful in 9m1s
123fee2700
- Add .forgejo/workflows/build.yaml for CI on all branches
- Add make release, release-minor, release-major targets

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Demonstrates creating a Claude bot backed by Anthropic API via ACP:
- Creating a Bot with AcpEndpoint configuration
- Setting personality traits and capabilities
- Querying the bot (API structure demo)
- Bot state management

Run with: cargo run --example claude_bot_acp --features ai

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat(ai): implement BotService.query() with ACP stdio transport
Some checks failed
Build and Test / build (push) Failing after 11s
Build and Test / build (pull_request) Failing after 12s
628dc2c064
- Integrate herolib-clients::acp for stdio-based agent communication
- BotService.query() now spawns ACP-compliant agents (like Claude Code)
  and communicates via JSON-RPC 2.0 over stdin/stdout
- Add discover_acp_capabilities() to probe agent capabilities
- Update claude_bot_acp example to use Stdio transport

Note: Using path dependency for herolib-clients until acp module
is pushed to remote repository.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix(ai): align ACP client with official protocol schema
Some checks failed
Build and Test / build (push) Failing after 22s
Build and Test / build (pull_request) Failing after 18s
84b18a3575
- Update to use claude-code-acp adapter (not plain claude CLI)
- Fix protocol version to integer (1) instead of string
- Rename capabilities -> clientCapabilities for initialize
- Rename content -> prompt for session/prompt params
- Update session/new to use cwd instead of root_paths
- Remove token_usage from response (not in ACP spec)
- Add AuthMethod type for agent auth methods

The ACP integration now works end-to-end with claude-code-acp.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat(examples): add workflow-based coding agent example
Some checks failed
Build and Test / build (push) Failing after 13s
Build and Test / build (pull_request) Failing after 12s
b0a85ee9f4
Demonstrates creating a custom AI coding agent using Hero Osis workflows
that can compete with Claude Code. Each capability is powered by carefully
engineered workflow steps with AI prompts.

Features:
- code_analysis workflow: detect language → find issues → suggest improvements
- code_generation workflow: parse requirements → generate → self-review
- Agent "HeroCode" with both capabilities
- Bot "CodeMaster" with personality traits

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WorkflowExecutor with support for multiple step types:
  - Prompt: AI model calls via Anthropic API
  - Output: Collect and return results
  - Transform: Data transformation (basic implementation)
  - Condition: Branching logic with operators
  - Loop/Parallel/Subworkflow: Stub implementations

- Wire AI domain to Flow domain for internal agent queries:
  - BotServiceHandler.query() now executes workflows for internal agents
  - Model selection based on bot seniority level
  - Variable substitution with {{variable}} syntax

- Server startup wires domains together automatically

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat(sdk): use shared SmartId from herolib-sid
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 19s
7faf123d97
- Remove per-domain SmartId generation in SDK types
- Import SmartId from herolib-sid in all domain types
- Re-export SmartId in sdk lib.rs for convenience
- Add job domain SDK types
- Fix examples to use SmartId::parse() which returns Result

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat(ai): add hero_bot binary for ACP-based workflow execution
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 21s
da4b6aa350
hero_bot is an ACP-compatible agent binary that can be spawned like
Claude Code or other external agents. It executes Hero Osis workflows
via the standard ACP stdio protocol.

Usage:
  hero_bot --agent-id 0005 --server http://localhost:3377
  hero_bot --workflow ./workflows/analyzer.toml

ACP endpoint configuration:
  [acp_endpoint]
  transport = "stdio"
  command = "hero_bot"
  args = ["--agent-id", "0005", "--server", "http://localhost:3377"]

This allows internal agents to use the same ACP interface as external
agents, providing a unified communication layer.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix(examples): update error message now that workflow execution works
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 20s
2e415bff3d
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
chore: regenerate types and add job domain
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 18s
967e4ddaa2
- Regenerate WASM types for all domains (SmartId import change)
- Add job domain for distributed job execution
- Update domain READMEs
- Update Cargo.lock

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
chore: cleanup and update configs
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 4m16s
44f2090de4
- Remove unused CI workflow
- Update Cargo.toml (local path for herolib-clients)
- Update README
- Regenerate server READMEs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
chore: simplify Makefile and fix build issues
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 3m52s
3eb49a6c45
- Remove instance management targets (run-instance, stop-instance, stop-all, list-instances)
- Remove test-all (test now runs all tests)
- Remove sdk-build, sdk-check, update-deps, release-patch targets
- Move executor module to rpc.rs to prevent linter removal
- Add ambiguous_glob_reexports allow to SDK for naming conflicts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
chore: cleanup docs, scripts, and specs
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 4m2s
91f3057abb
- Remove outdated docs (EMBEDDER_ARCHITECTURE.md)
- Remove obsolete shell scripts (replaced by Makefile)
- Remove outdated specs docs
- Simplify README
- Add SDK Cargo.lock
- Suppress ambiguous glob re-export warnings in SDK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix: remove duplicate executor module export
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 3m52s
cbc3042e9d
Executor is now declared in rpc.rs, remove duplicate from mod.rs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: change default context from hero_osis to root
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 2m56s
4697604bdb
- Default context is now "root" instead of "hero_osis"
- Update e2e tests to use root context
- Add tests/test_data/ to .gitignore
- Remove outdated SCHEMA_PROPOSALS.md
- Suppress ambiguous glob re-export warnings in SDK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
docs: reorganize documentation structure
Some checks failed
Build and Test / build (push) Waiting to run
Build and Test / build (pull_request) Failing after 3m48s
35b131fbe4
- Move creating-schemas docs from specs/ to docs/
- Add research docs folder

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
chore: update dependencies and add new business example
Some checks failed
Build and Test / build (push) Failing after 4m46s
Build and Test / build (pull_request) Failing after 4m39s
507561a4cd
- Update `herolib-*` git dependency hashes
- Upgrade `time` and `time-macros` crate versions
- Add `business_client_server` example entry
- Change `herolib-osis` git dependency source URL
feat(examples): update all examples to use 'root' default context
Some checks failed
Build and Test / build (pull_request) Failing after 1m43s
Build and Test / build (push) Failing after 1m53s
d72ee69171
- Update claude_bot_acp.rs with personality-focused query
- Update workflow_coding_agent.rs context
- Update all domain client_server.rs examples
- Add network domain schema updates (Farm, Contract, VDC types)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Some checks failed
Build and Test / build (pull_request) Failing after 1m43s
Build and Test / build (push) Failing after 1m53s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin development:development
git switch development

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff development
git switch development
git rebase main
git switch main
git merge --ff-only development
git switch development
git rebase main
git switch main
git merge --no-ff development
git switch main
git merge --squash development
git switch main
git merge --ff-only development
git switch main
git merge development
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_osis!1
No description provided.