Skip to content

Add aevatar app experience and Telegram user bridge integration#28

Merged
eanzhao merged 7 commits intodevfrom
feature/openclaw
Mar 14, 2026
Merged

Add aevatar app experience and Telegram user bridge integration#28
eanzhao merged 7 commits intodevfrom
feature/openclaw

Conversation

@eanzhao
Copy link
Copy Markdown
Contributor

@eanzhao eanzhao commented Mar 6, 2026

Summary

  • Introduce unified aevatar CLI command groups with richer subcommands around config, chat, and especially app.
  • Add aevatar app runtime improvements (health probing, restart flow, API base resolution, embedded/proxy mode handling, and improved playground experience).
  • Add Telegram bridge capabilities for workflow callback orchestration, including callback token issuance/ingress endpoints, bridge event contracts, and SDK support.
  • Add in-process Telegram user connector (telegram_user) and bridge agents (TelegramBridgeGAgent / TelegramUserBridgeGAgent) to support Telegram group request/reply workflows.
  • Add bundled workflow and docs for OpenClaw + Telegram integration (telegram_openclaw_bridge_chat) and related connector deployment guidance.

Why

  • Make local developer workflow and demo workflow execution easier with one entrypoint (aevatar app) and a better built-in playground.
  • Unify CLI operations (configuration, workflow authoring, chat invocation, runtime app hosting) under one tool surface.
  • Enable end-to-end Telegram-based bridge interactions without external callback relay services, and make workflow callback integrations explicit/typed in API + SDK.

Main Changes

  • CLI / app
    • Add aevatar app with --port, --no-browser, --api-base, and aevatar app restart.
    • Add app-side bridge proxy routes and playground endpoint enhancements.
    • Add persisted API base URL resolution behavior shared by chat and app.
  • Bridge / workflow API
    • Add /api/bridge/callback-token and /api/bridge/callbacks.
    • Add bridge callback token contracts and HMAC token service.
    • Add bridge actor support (BridgeGAgent) and bridge options wiring.
  • Telegram integration
    • Add telegram_user connector and builder in bootstrap connector registration.
    • Add Telegram bridge agents and agent-type alias extension points for agent_type workflow parameters.
    • Add Telegram/OpenClaw bridge workflow and update workflow library/display resources.
  • SDK / tests / docs
    • Extend workflow SDK contracts/client with bridge callback APIs and parsing helpers.
    • Add/expand CLI, bridge, workflow, and host API tests for new paths.
    • Add docs for Telegram user channel setup and OpenClaw connector workflow usage.

Notes

  • This PR includes command-surface changes and bridge protocol additions; downstream automation/scripts should verify expected CLI behavior and endpoint contracts.

eanzhao added 6 commits March 3, 2026 11:30
- Added multiple workflows for OpenClaw integration, including setup, readiness checks, and screenshot tasks, enhancing the capabilities of the workflow system.
- Introduced a unified CLI tool for configuration, improving user experience and accessibility.
- Updated documentation to reflect new workflows and CLI commands, ensuring clarity for users.
- Enhanced the web application to support new workflows and provide better interaction with OpenClaw features.

These changes aim to streamline the integration of OpenClaw into the Aevatar ecosystem, improving usability and functionality.
- Updated the `openclaw_call` functionality to restrict execution to the OpenClaw CLI only, with support for custom installation paths via the `AEVATAR_OPENCLAW_CLI_PATH` environment variable.
- Improved documentation across multiple files to clarify the usage of `openclaw_call`, including safety constraints for the OpenClaw bridge and the requirement for explicit authentication tokens.
- Refactored the OpenClaw module to validate CLI executable identity, ensuring that only valid OpenClaw binaries are executed.
- Enhanced integration tests to cover new error handling scenarios and validate the behavior of the OpenClaw module under various conditions.

These changes aim to strengthen the OpenClaw integration within the Aevatar ecosystem, improving security and usability for developers.
- Revised the `openclaw_call` documentation across multiple files to specify that the custom installation path set via `AEVATAR_OPENCLAW_CLI_PATH` must point to an executable named `openclaw`.
- Enhanced clarity in the README files to ensure users understand the constraints and requirements for using the OpenClaw CLI effectively.

These changes aim to improve user understanding and ensure correct usage of the OpenClaw integration within the Aevatar ecosystem.
- Removed multiple OpenClaw workflows (57-68) from the project to streamline the workflow system and focus on essential functionalities.
- Updated the `AGENTS.md` file to include a new CLI playground asset drift guard for verifying static resource consistency.
- Revised the `README.md` to reflect the removal of outdated workflows and clarify the current capabilities of the OpenClaw integration.
- Enhanced the web application to improve user interaction with the remaining workflows and ensure clarity in available features.

These changes aim to simplify the OpenClaw integration within the Aevatar ecosystem, improving usability and maintainability.
- Introduced multiple new workflow examples demonstrating various primitives such as `assign`, `cache`, `conditional`, and `llm_call`.
- Updated existing demo workflows to improve clarity and functionality, including renaming demo identifiers for consistency.
- Added ergonomic aliases for `cli_call`, `foreach_llm`, and `map_reduce_llm` to streamline usage.
- Enhanced documentation in `README.md` to reflect changes in demo execution commands and workflow descriptions.

These updates aim to enrich the Aevatar demo experience, showcasing the capabilities of the workflow system more effectively.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

不要写在workflow里面,把独立的GAgent都放到独立项目里面, 作为能力提供

- Introduced the `TelegramUserBridgeGAgent` for delegating tasks to external agents in Telegram groups, allowing Aevatar to handle complex operations through group interactions.
- Updated workflow YAML examples to reflect the new delegation pattern, including improved handling of responses and timeouts.
- Enhanced documentation for the Telegram bridge integration, detailing prompt composition and key points for effective usage.
- Added a GitHub Actions workflow for publishing the Aevatar CLI, streamlining the release process.

These changes aim to improve the Aevatar workflow capabilities and provide clearer guidance for users integrating with Telegram.
@eanzhao eanzhao merged commit bb8d86a into dev Mar 14, 2026
eanzhao added a commit that referenced this pull request May 8, 2026
- #13 (major, arch): /api/oauth/aevatar-client/rebuild now dispatches
  ProvisionAevatarOAuthClientCommand via IActorDispatchPort.DispatchAsync,
  matching /unbind. The inline actor.HandleEventAsync was a known
  CLAUDE.md "投递语义必须 runtime-neutral" violation; aligning the two
  endpoints removes the inconsistency that any future inbox middleware
  would silently bypass on rebuild.
- #24 (minor, design): callback endpoint accepts ?format=json on the URL
  to opt back into the {status:"bound", already_bound, display_name}
  envelope that programmatic CLI/SDK consumers used pre-HTML-render.
  Default stays HTML for browser callbacks.
- #26 (minor, arch): /rebuild now sits behind a RebuildAuthEndpointFilter
  that enforces the admin-token check before model binding and per-request
  DI activation kick in. The filter + the inline check in the handler are
  redundant by design (defense in depth) — the filter rejects unauth
  posts before deserialization runs, and the handler still validates so
  hand-rolled tests/integration scenarios cannot bypass.
- #28 (minor, design): document the readmodel-deletion contract in the
  ExternalIdentityBindingProjector header — empty BindingId deletes the
  document instead of upserting an inactive record; downstream audit
  consumers must read the committed-event log directly.
- #1 + #2 (blocker, arch): no change needed. Earlier commits in this PR
  already moved /model self-heal to IActorDispatchPort.DispatchAsync and
  removed the EnsureProjectionForActorAsync call from the slash-command
  request path. Verified by reading the current handler.
- #25 (minor, test): documented in the rebuild handler comment — concurrent
  /rebuild calls would race on the same actor, but this is operator-grade
  break-glass and de-duping concurrent rebuilds is out of scope.

Build clean (Identity), 34 OAuth-path tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <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.

2 participants