Skip to content

Drain cloud sandbox exec streams to EOF after completion - #1615

Open
parteeksingh24 wants to merge 2 commits into
mainfrom
sandbox-exec-drain-fix
Open

Drain cloud sandbox exec streams to EOF after completion#1615
parteeksingh24 wants to merge 2 commits into
mainfrom
sandbox-exec-drain-fix

Conversation

@parteeksingh24

@parteeksingh24 parteeksingh24 commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces the 500ms post-completion stream abort in cloud sandbox exec with a 30s drain-to-EOF wait, so late Pulse chunks still reach stdout/JSON instead of being cut off when the catalyst completion signal arrives first.

  • After execution completes, the CLI races stream EOF against STREAM_DRAIN_TIMEOUT_MS (30s) instead of aborting readers after 500ms.
  • On drain timeout, prints an honest output may be incomplete warning to stderr (JSON stdout stays clean), aborts the readers, and observes the rejection.
  • Caps the final process.stdout drain wait at STDOUT_DRAIN_GRACE_MS (2s) after a timed-out stream drain so a stuck stdout consumer cannot hold the process open.
  • Adds a regression test that releases the stream chunk 1200ms after the execution result is served (plain and JSON modes).
  • Server-side gating of lifecycle completion on Pulse finalization ships separately in agentuity/infra. This client fix already recovers output against current production servers.

Why

Direct evidence Inference
Infra E2E went red on 2026-06-04 after hadron started emitting lifecycle-complete before Pulse complete/v2 finished (PR #600 reverted the #518 wait). Completion travels a faster channel (catalyst lifecycle) than output chunks (Pulse).
Both the v2 and v3 CLIs aborted stream readers 500ms after the execution-complete signal (packages/cli/src/cmd/cloud/sandbox/exec.ts). Tail output that arrives after that window was silently dropped.
Red-verified against the pre-fix implementation: both new tests fail at ~509ms (the old grace abort). The 500ms abort is the client-side cut that loses delayed chunks.

Implementation

Drain race after execution complete

When streams are still open after the execution result arrives, wait for EOF up to 30s. On timeout, warn on stderr, abort, and observe the rejected stream promise so it does not become an unhandled rejection:

const STREAM_DRAIN_TIMEOUT_MS = 30_000;

const drainResult = await Promise.race([
	streamDrainPromise.then((results) => ({ type: 'streams' as const, results })),
	new Promise<{ type: 'timeout' }>((resolve) => {
		drainTimeout = setTimeout(
			() => resolve({ type: 'timeout' }),
			STREAM_DRAIN_TIMEOUT_MS
		);
	}),
]);

if (drainResult.type === 'streams') {
	streamResults = drainResult.results;
} else {
	streamDrainTimedOut = true;
	tui.warning(
		`Timed out after ${STREAM_DRAIN_TIMEOUT_MS / 1000}s waiting for execution output streams to finish; output may be incomplete`
	);
	streamAbortController.abort();
	void streamDrainPromise.catch((err) => {
		logger.debug('[exec] stream failed after drain timeout: %s', err);
	});
}

Bounded stdout drain after timeout

If the stream drain timed out and stdout still needs a drain event, resolve after 2s at most:

if (streamDrainTimedOut) {
	drainWait = setTimeout(() => {
		process.stdout.removeListener('drain', onDrain);
		resolve();
	}, 2000);
}
process.stdout.once('drain', onDrain);

Regression coverage

packages/cli/test/cmd/cloud/sandbox/exec.test.ts installs a fetch fake whose Pulse stream releases its chunk 1200ms after the execution result is served. That delay is anchored to the completion response so scheduling skew before completion cannot accidentally land inside the old 500ms window. Plain and JSON modes both expect the delayed line.

How to review

Area Start here What to check
Drain behavior packages/cli/src/cmd/cloud/sandbox/exec.ts (post-completion stream wait) 30s race replaces 500ms abort; timeout path warns, aborts, and observes rejection
Exit hygiene same file, stdout drain block 2s bound only when streamDrainTimedOut
Regression packages/cli/test/cmd/cloud/sandbox/exec.test.ts Delay anchored to execution-served; covers plain + JSON

References / Sources

  • Related server history: agentuity/infra#518 (wait for Pulse before lifecycle-complete) and agentuity/infra#600 (latency change that reintroduced the race); the companion server fix ships separately in agentuity/infra.

Verification

  • bun test packages/cli/test/cmd/cloud/sandbox/exec.test.ts: 2/2 pass.
  • bunx tsc --noEmit in packages/cli: pass.
  • Red-verification against the pre-fix implementation: both tests fail at ~509ms (old grace abort); pass with this change.
  • Live run from source against production: 4 sandbox executions, 650/650 output lines received; burst-output run 50/50; test sandbox deleted afterward.

Follow-ups

  • packages/sandbox writeAndDrain is not abort-aware (pre-existing). Making stream writes abort-aware is deliberately out of scope here.
  • Server-side companion (gate lifecycle completion on Pulse finalization) remains in agentuity/infra and is what clears the E2E root cause after deploy.
  • A backport of this drain fix to the v2 CLI line is an open decision (target branch at the v2 release commit).

Summary by CodeRabbit

  • Bug Fixes

    • Improved cloud sandbox command output handling to capture delayed stdout and stderr more reliably.
    • Prevented commands from hanging indefinitely when output streams encounter backpressure or fail to finish.
    • Added a timeout safeguard with a warning when stream output may be incomplete.
  • Tests

    • Added coverage for delayed output in both plain-text and JSON response modes.

- Replace 500ms post-completion abort with a 30s drain race
- Warn on stderr when the drain times out; JSON stays clean
- Bound the final stdout drain wait at 2s after a timeout
- Anchor the regression test to the execution-served signal
@agentuity-agent

agentuity-agent Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest Agentuity deployment details.

Project Deployment Preview Updated (UTC)
docs 🟢 Ready (deploy_f016efe50775bcc3caf1a0e62441f894) - 2026-07-13T17:15:01Z

View deployment logs with the Agentuity CLI:

agentuity cloud deployment logs deploy_f016efe50775bcc3caf1a0e62441f894 --project-id=proj_5ed7da797bef771d65e1bd6946a052b1

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The sandbox exec command now uses bounded stream-drain and stdout-backpressure waits, with tests covering delayed output in plain and JSON modes.

Changes

Sandbox execution streams

Layer / File(s) Summary
Stream drain timeout and stdout backpressure
packages/cli/src/cmd/cloud/sandbox/exec.ts
The exec command adds a 30-second stream-drain timeout, aborts timed-out streams, and bounds stdout backpressure waiting with a 2-second fallback.
Delayed output integration coverage
packages/cli/test/cmd/cloud/sandbox/exec.test.ts
Tests simulate delayed stdout delivery and verify the output in plain and JSON execution modes.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown

📦 Canary Packages Published

version: 3.1.9-5330111

Packages
Package Version URL
@agentuity/client 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-client-3.1.9-5330111.tgz
@agentuity/schedule 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schedule-3.1.9-5330111.tgz
@agentuity/coder 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-3.1.9-5330111.tgz
@agentuity/coder-tui 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-tui-3.1.9-5330111.tgz
@agentuity/keyvalue 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-keyvalue-3.1.9-5330111.tgz
@agentuity/queue 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-queue-3.1.9-5330111.tgz
@agentuity/claude-code 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-claude-code-3.1.9-5330111.tgz
@agentuity/opencode 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-opencode-3.1.9-5330111.tgz
@agentuity/vite 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vite-3.1.9-5330111.tgz
@agentuity/analytics 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-analytics-3.1.9-5330111.tgz
@agentuity/config 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-config-3.1.9-5330111.tgz
@agentuity/webhook 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-webhook-3.1.9-5330111.tgz
@agentuity/skills 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-skills-3.1.9-5330111.tgz
@agentuity/pi 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-pi-3.1.9-5330111.tgz
@agentuity/vector 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vector-3.1.9-5330111.tgz
@agentuity/hono 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-hono-3.1.9-5330111.tgz
@agentuity/stream 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-stream-3.1.9-5330111.tgz
@agentuity/task 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-task-3.1.9-5330111.tgz
@agentuity/migrate 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-migrate-3.1.9-5330111.tgz
@agentuity/genesis 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-genesis-3.1.9-5330111.tgz
@agentuity/cli 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-cli-3.1.9-5330111.tgz
@agentuity/email 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-email-3.1.9-5330111.tgz
@agentuity/api 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-api-3.1.9-5330111.tgz
@agentuity/adapter 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-adapter-3.1.9-5330111.tgz
@agentuity/runtime 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-runtime-3.1.9-5330111.tgz
@agentuity/sandbox 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-sandbox-3.1.9-5330111.tgz
@agentuity/aigateway 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-aigateway-3.1.9-5330111.tgz
create-agentuity 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/create-agentuity-3.1.9-5330111.tgz
@agentuity/db 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-db-3.1.9-5330111.tgz
@agentuity/postgres 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-postgres-3.1.9-5330111.tgz
@agentuity/schema 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schema-3.1.9-5330111.tgz
@agentuity/server 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-server-3.1.9-5330111.tgz
@agentuity/storage 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-storage-3.1.9-5330111.tgz
@agentuity/core 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-core-3.1.9-5330111.tgz
@agentuity/telemetry 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-telemetry-3.1.9-5330111.tgz
@agentuity/drizzle 3.1.9-5330111 https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-drizzle-3.1.9-5330111.tgz
Install

Add to your package.json:

{
  "dependencies": {
    "@agentuity/client": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-client-3.1.9-5330111.tgz",
    "@agentuity/schedule": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schedule-3.1.9-5330111.tgz",
    "@agentuity/coder": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-3.1.9-5330111.tgz",
    "@agentuity/coder-tui": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-tui-3.1.9-5330111.tgz",
    "@agentuity/keyvalue": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-keyvalue-3.1.9-5330111.tgz",
    "@agentuity/queue": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-queue-3.1.9-5330111.tgz",
    "@agentuity/claude-code": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-claude-code-3.1.9-5330111.tgz",
    "@agentuity/opencode": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-opencode-3.1.9-5330111.tgz",
    "@agentuity/vite": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vite-3.1.9-5330111.tgz",
    "@agentuity/analytics": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-analytics-3.1.9-5330111.tgz",
    "@agentuity/config": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-config-3.1.9-5330111.tgz",
    "@agentuity/webhook": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-webhook-3.1.9-5330111.tgz",
    "@agentuity/skills": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-skills-3.1.9-5330111.tgz",
    "@agentuity/pi": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-pi-3.1.9-5330111.tgz",
    "@agentuity/vector": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vector-3.1.9-5330111.tgz",
    "@agentuity/hono": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-hono-3.1.9-5330111.tgz",
    "@agentuity/stream": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-stream-3.1.9-5330111.tgz",
    "@agentuity/task": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-task-3.1.9-5330111.tgz",
    "@agentuity/migrate": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-migrate-3.1.9-5330111.tgz",
    "@agentuity/genesis": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-genesis-3.1.9-5330111.tgz",
    "@agentuity/cli": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-cli-3.1.9-5330111.tgz",
    "@agentuity/email": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-email-3.1.9-5330111.tgz",
    "@agentuity/api": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-api-3.1.9-5330111.tgz",
    "@agentuity/adapter": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-adapter-3.1.9-5330111.tgz",
    "@agentuity/runtime": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-runtime-3.1.9-5330111.tgz",
    "@agentuity/sandbox": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-sandbox-3.1.9-5330111.tgz",
    "@agentuity/aigateway": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-aigateway-3.1.9-5330111.tgz",
    "create-agentuity": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/create-agentuity-3.1.9-5330111.tgz",
    "@agentuity/db": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-db-3.1.9-5330111.tgz",
    "@agentuity/postgres": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-postgres-3.1.9-5330111.tgz",
    "@agentuity/schema": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schema-3.1.9-5330111.tgz",
    "@agentuity/server": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-server-3.1.9-5330111.tgz",
    "@agentuity/storage": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-storage-3.1.9-5330111.tgz",
    "@agentuity/core": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-core-3.1.9-5330111.tgz",
    "@agentuity/telemetry": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-telemetry-3.1.9-5330111.tgz",
    "@agentuity/drizzle": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-drizzle-3.1.9-5330111.tgz"
  }
}

Or install directly:

bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-client-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schedule-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-coder-tui-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-keyvalue-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-queue-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-claude-code-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-opencode-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vite-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-analytics-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-config-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-webhook-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-skills-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-pi-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-vector-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-hono-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-stream-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-task-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-migrate-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-genesis-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-cli-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-email-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-api-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-adapter-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-runtime-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-sandbox-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-aigateway-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/create-agentuity-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-db-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-postgres-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-schema-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-server-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-storage-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-core-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-telemetry-3.1.9-5330111.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/3.1.9-5330111/agentuity-drizzle-3.1.9-5330111.tgz

Co-authored-by: Cursor <cursoragent@cursor.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