Skip to content

feat(ai): run LiteRT lookup tools in Mind chat - #2117

Merged
ucguy4u merged 1 commit into
mainfrom
cursor/litertlm-tool-calls-8768
Oct 16, 2026
Merged

ucguy4u merged 1 commit into
mainfrom
cursor/litertlm-tool-calls-8768

Conversation

@ucguy4u

@ucguy4u ucguy4u commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Mind can now run a short tool round with a LiteRT-LM package that supports function calling. The model may ask for the current time, a calendar read, or a LifeTrack status. Airo executes that lookup and sends the result back into the same conversation.

  • The Android plugin registers those tools with LiteRT and turns automatic tool execution off, so the native runtime cannot perform the action itself.
  • Replies now include tool-call names and arguments. A follow-up turn sends the tool result.
  • Tools outside that lookup list are refused. Flashlight, mail, contacts, and other side effects stay on the existing skill path.
  • Packages that do not support function calling keep the token stream from feat(ai): stream LiteRT-LM replies and read ModelInfo #2116.

Test Plan

  • flutter test in packages/core_ai for the tool loop, LiteRT adapter, execution adapter, and router
  • flutter test in app for the LiteRT service, warmup, and receipt extraction
  • flutter test test/agent_chat/data/services/assistant_runtime_service_test.dart --name LiteRT in packages/feature_mind
  • dart analyze on the changed Dart libraries
  • scripts/check-docs-completeness.sh --base origin/main --head HEAD
  • Manual device verification documented, or not applicable

Verification environment: Host-only. No Android device in this environment, so the Kotlin tool channel was not exercised on hardware.

Agent Policy

  • Linked issue includes a Critical Agent Gate.
  • Linked issue includes a Feature Packet or documents why one is not needed.
  • Cross-agent contract is documented for framework/application boundary work.
  • Deterministic use cases and automation flows are linked or included.
  • AI/tool/memory/routine changes include eval, trace, and redaction coverage.
  • Android Emulator was not used unless the linked issue explicitly accepted AIRO_ALLOW_ANDROID_EMULATOR=true.

Follow-up to merged #2116. Framework owns the LiteRT tool channel. Mind owns which lookup tools are offered and how chat runs them.

Council Review

  • I checked the Decision Matrix and listed every required role above.
  • Every package touched has a module.yaml; if not, this PR adds one (scripts/check-module-manifests.py enforces this in CI).
  • owner/reviewers in any touched module.yaml still match who actually reviewed this PR — updated if the roster has drifted.

User-Facing Documentation

  • I updated docs/wiki for any user-visible feature, route, platform, install, AI/model, privacy, file-type, media, game, finance, or troubleshooting change.
  • No docs/wiki update is needed because this PR has no user-visible behavior or documentation impact.

Plugin and Size Impact

  • This PR adds new dependencies
  • This PR adds or grows app/packages/plugins code
  • Size impact is documented below
  • Any module over 3 MB is a plugin or has an explicit plugin marker
  • Any plugin over 5 MB has cache-management documentation

Size impact / plugin justification:

No new dependency. litertlm-android stays pinned at 0.18.0. The change is the existing plugin's tool-call bridge.

Checklist

  • Code is formatted.
  • Tests or manual verification are included above.
  • Sensitive data, credentials, and signing artifacts are not committed.

Release Notes

  • User-facing change documented, or not applicable
Open in Web Open in Cursor 

Function-calling LiteRT packages can request the time, a calendar read,
or LifeTrack status. Airo executes those tools and sends the result back.

Co-authored-by: Uday Chauhan <chauhan.s.uday26@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

Plugin Module Size Gate

Policy: modules over 3 MB must be delivered as plugins; plugin modules over 5 MB must document cache management.

Module Size Type Status
packages/core_ai 0.58 MB bundled OK
packages/feature_mind 2.94 MB bundled WARN: 1-3 MB requires PR size justification

@github-actions

Copy link
Copy Markdown
Contributor

🚀 PR Quick Check Summary

Check Status Description
PR Validation ❌ failure Title format, docs, bundled model guardrail
Code Quality ✅ success Analyze, formatting
Core Tests ✅ success Core package unit tests
Airo Mind Shell ✅ success Mind flavour analyze, tests, entrypoint compile

💡 Note: Full app tests, coverage reports, and security scans run on merge to main.

View Details

@ucguy4u
ucguy4u marked this pull request as ready for review October 16, 2026 17:39
@ucguy4u
ucguy4u merged commit cad2fa6 into main Oct 16, 2026
26 of 27 checks passed
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