Skip to content

feat(runtime): add Runtime invocation#1820

Open
aidandaly24 wants to merge 31 commits into
refactorfrom
feat/runtime-invoke-lean
Open

feat(runtime): add Runtime invocation#1820
aidandaly24 wants to merge 31 commits into
refactorfrom
feat/runtime-invoke-lean

Conversation

@aidandaly24

@aidandaly24 aidandaly24 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

Adds headless and interactive invocation for the Runtime commands and TUI introduced in #1802.

Headless invocation supports both IAM and CUSTOM_JWT Runtimes. IAM requests use the AgentCore data-plane SDK, while CUSTOM_JWT requests use the generated Runtime data endpoint with an explicit bearer token. Payloads and bearer tokens can come from inline values, files, or stdin, with validation preventing both from consuming stdin at once.

The command maps the public Runtime invocation contract, including endpoint qualifiers, content negotiation, Runtime and MCP session IDs, application headers, MCP metadata, and tracing headers. Application headers are validated against the Runtime allowlist and cannot override reserved protocol headers. -H is available as the short form of --header.

Raw output streams the exact response bytes to stdout and writes response metadata to stderr. Binary responses can be written directly to a file, while --json emits one buffered response envelope with UTF-8 or base64 body encoding. Partial responses retain the bytes already received and report whether the stream completed.

Without --payload, runtime invoke opens a persistent console. Users can select a Runtime and endpoint, edit request options, send repeated requests, retain response history, switch targets, toggle completed JSON between raw and formatted views, and save binary responses to a file. Returned Runtime and MCP sessions are adopted only after a response completes.

Headless SIGINT, interactive Escape, route changes, and component unmounts propagate cancellation through Runtime lookup, transport, and response output. Usage failures return exit code 2, interruptions return 130, and transport or stream failures avoid exposing payloads, tokens, headers, or arbitrary upstream error causes. Invoke payloads, application headers, and bearer tokens are marked sensitive for command logging.

This change also adds shared abortable-stream handling used by Runtime and Harness, extends the Core Runtime client with invocation transport and injectable fetch support, and documents IAM, CUSTOM_JWT, MCP, binary, JSON, and persistent-console workflows.

Runtime creation and mutation, deployment or project resolution, cross-account invocation, Runtime ARNs, version targeting, custom request paths, and the Runtime /commands route remain outside this change.

Related Issue

N/A

Documentation PR

N/A. README command, invocation, output, MCP, and interactive-console documentation is included in this PR.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

Verified from current HEAD 1f79e4df:

  • bun test (403 passed, 0 failed)
  • bun run typecheck
  • bun run lint:check
  • bun run format:check
  • bun run build
  • GitHub builds and unit tests on Linux, Windows, and macOS
  • AgentCore end-to-end CI

Checklist

  • I have read the CONTRIBUTING document
  • I have added necessary tests that prove the feature works
  • I have updated the documentation accordingly
  • I have added appropriate examples to the documentation
  • My changes generate no new warnings
  • No dependent changes are required

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@github-actions github-actions Bot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 23, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.23664% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.26%. Comparing base (272e50e) to head (1f79e4d).

Files with missing lines Patch % Lines
src/handlers/runtime/invoke/index.tsx 93.91% 7 Missing ⚠️
src/handlers/runtime/invoke/response.ts 99.27% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##           refactor    #1820      +/-   ##
============================================
+ Coverage     94.84%   95.26%   +0.41%     
============================================
  Files           143      151       +8     
  Lines          7120     8211    +1091     
============================================
+ Hits           6753     7822    +1069     
- Misses          367      389      +22     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions github-actions Bot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 23, 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