description: "A one-shot native Antigravity subagent provider for DeepSeek Harness, with selectable native authentication, model, and effort." kind: "package-bundle"
@ashenjyy/dsh-subagent-antigravity
English | 中文
Summary
Install this bundle into a DeepSeek Harness 0.2.1-rc.3 Profile when delegated work should run in a genuine Antigravity agent in the parent workspace. Every delegation starts a fresh Google Antigravity ACP Server 1.4.3 and matching native harness, creates one session, and sends one self-contained text task. Antigravity owns reasoning, its tools, and the agent loop. DSH owns delegation, subprocess lifetime, cancellation, and result delivery.
The implementation follows the official @deepseek-ai/dsh-subagent-codex provider's architecture. This is a community package, not an official DeepSeek or Google integration. It does not wrap agy --print, automate the Antigravity App, or run a model inside DSH's agent loop.
No model or reasoning effort is restricted by the public bundle. Omitted model settings retain native defaults. Explicit settings must be supported by the ACP runtime and successfully read back; there is no fallback to another model, backend, or host executable.
Version 0.2.0 defaults to the ACP runtime's own authentication selection and supports explicitly selecting each native login route. Users upgrading from 0.1.0 who want its ADC behavior should set authMethod: agent-platform and agentPlatformMode: adc.
Contents
- Use this package
- Understand the implementation
- Further exploration
- Model experience
- Known limitations and deferred work
- Dev note
Use this package
Installing the Bundle
Download the .tgz package from GitHub Releases. Add that package as a local bundle using the DSH plugin installer or Plugins page for your Profile. Use the release artifact rather than an unrelated similarly named npm package.
For the CLI, select the Profile you actually use:
dsh plugin --profile web add /absolute/path/to/the-release-package.tgz
Then run the installer belonging to that installed package:
node /absolute/path/to/installed/package/lib/install.js
It downloads the pinned Google payload for the current platform, verifies the official registry SHA-256, and installs the executable and matching harness under the package's native/1.4.3/ directory. Native binaries are not redistributed in the npm archive. An alternative absolute directory can be supplied with --runtime-dir; configure the same directory in the provider. --archive accepts an already downloaded official ZIP and applies the same digest verification.
Enabling the bundle registers one provider and the global subagent_antigravity tool. Enabling it alone starts no native process; delegation and the explicit authentication command do. Restart when DSH requests it. This package does not modify built-in Official catalog entries.
Authentication
Choose authentication per provider instance. The default, native, leaves selection to ACP's existing settings and enterprise policy. It does not send an authenticate request or try methods in sequence. An explicit method must be available under the runtime's policy; failure does not select another account or route.
authMethod |
Native behavior and setup |
|---|---|
native |
Reuse ACP's existing authentication selection, OAuth cache, and applicable enterprise policy |
oauth-personal |
Google personal-account OAuth; native browser login when required |
oauth-business |
Gemini Enterprise OAuth and native license selection |
gemini-api-key |
Gemini Developer API using GEMINI_API_KEY |
agent-platform |
Gemini Enterprise Agent Platform using ADC or Express GOOGLE_API_KEY, as controlled by agentPlatformMode |
gateway |
Native Google-compatible enterprise gateway, subject to administrator policy |
For an initial OAuth login or an intentional change of method, run the installed package's authentication command before delegating:
dsh-antigravity-auth --method oauth-personal --gemini-home /absolute/path/to/your-acp-home
If the package's bin directory is not on your PATH, use node /absolute/path/to/installed/package/lib/auth-cli.js with the same arguments. Use the same geminiHome in the provider. Omit both settings to use the native home. The command accepts --runtime-dir, --gemini-home, --project, --location, --adc-path, --agent-platform-mode, and --timeout-ms; paths must be absolute. Its overall deadline defaults to 600000 ms, independently of the provider's startup deadline. It accepts no plaintext API-key argument. Supply keys through the selected native environment, and do not commit secrets to a Profile patch or repository.
The command performs only initialize and, for an explicit method, authenticate; it creates no session and sends no prompt. A successful command is not proof of a usable API key, ADC, account entitlement, quota, or inference access. In native mode it does not validate the inherited login. ACP 1.4.3 has no supported cached-only or no-browser authentication mode: expired or missing OAuth credentials can open the native browser flow during delegation as well, subject to startupTimeoutMs. Complete initial login interactively, and treat later reauthentication as a possible startup failure or interaction.
ACP has its own settings and credentials. An App or agy login is not guaranteed to be available to ACP; this package does not copy or convert their tokens. geminiHome supplies GEMINI_HOME, the persistent native home directory itself, with ACP settings under antigravity-acp/. It also changes native configuration, session storage, and discovery of shared MCP, skills, and hooks; it is more than a token path. Explicit non-gateway authentication persists auth.type there, and Enterprise license selection can update project/location. Use separate persistent homes for provider instances that select different methods to avoid competing settings writes. On macOS the native Keychain accounts may still be shared, so separate homes alone do not guarantee complete credential isolation.
Agent Platform: agentPlatformMode: native follows Google's choice: a nonempty GOOGLE_API_KEY selects Express; otherwise ADC requires a project and location from its environment or saved native settings. Choose adc to remove that key override, or api-key to require the key and fail if it is absent. These modes apply only to explicit authMethod: agent-platform. To establish ADC on the machine running DSH:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
Configure gcpProject and gcpLocation for Agent Platform ADC when native settings do not already supply them. Use adcPath when DSH cannot discover the standard ADC file. The provider forwards the path without reading or copying credential contents; ACP authentication itself does not perform gcloud login. Enterprise OAuth uses its native license picker and saved ACP project/location instead of these Agent Platform overrides.
Gateway: explicit selection enables the native gateway capability. Supply a supported configuration, normally AGY_LLM_GATEWAY_URL with the applicable AGY_LLM_GATEWAY_API_KEY or AGY_LLM_GATEWAY_HEADERS. Gateway authentication does not persist auth.type, so configure authMethod: gateway for subsequent delegations. Native administrator policy remains authoritative; an administrator-forced gateway can also be inherited through native. Providing a key or gateway URL alone does not select its authentication method.
DSH scrubs its child environment. Selected explicit routes forward their necessary native variables; native does not promise to inherit every sensitive shell variable. Use provider env for an explicit deployment environment when needed. Native execution remains responsible for authorization and account charges. The package does not enable billing, APIs, or subscriptions.
Configuration
| Field | Default | Meaning |
|---|---|---|
providerName |
antigravity |
Unique registration name on ctx.subagents |
authMethod |
native |
Inherit native selection, or explicitly select a method listed above |
agentPlatformMode |
native |
For explicit agent-platform: native selection, adc, or api-key |
geminiHome |
Native home | Optional absolute, persistent native home directory |
model |
Native default | Optional exact ACP model configuration value |
effort |
Native default | Optional exact ACP thinking_level value |
allowedModels |
Unrestricted | Optional deployment allowlist of ACP model-family values |
allowedEfforts |
Unrestricted | Optional deployment allowlist of reasoning values |
disabledTools |
Native defaults | Optional native tool IDs disabled for the session |
gcpProject |
Native environment/settings | Optional Agent Platform project override; not required by all login methods |
gcpLocation |
Native environment/settings | Optional Agent Platform location override |
adcPath |
Native ADC discovery | Optional absolute ADC file path |
runtimeDir |
Package-local installation | Optional absolute directory containing the installed native pair |
permissionMode |
deny |
deny, or allow-once for supported ordinary tool approvals |
env |
{} |
Explicit child environment over DSH's credential-scrubbed base |
startupTimeoutMs |
90000 |
Deadline for initialization, authentication selection, session creation, and configuration |
disposeEofGraceMs |
1000 |
Grace after stdin EOF before process termination |
disposeGraceMs |
3000 |
Shared managed-process termination grace |
maxOutputBytes |
8388608 |
Maximum retained assistant text; overflow fails explicitly |
model and effort are deployment settings for a provider instance, not tool-call parameters. Multiple named instances may expose different settings. The current adapter validates the pinned runtime's model, thinking_level, and mode configuration surface. Use values advertised by ACP, not labels inferred from another Antigravity client.
The native permission mode remains default. allow-once answers recognized ordinary read/edit/execute/search/fetch approvals once. It does not select YOLO, answer user questions, grant permanent permission, or auto-approve unknown/MCP other requests. Neither setting is an OS sandbox.
Exposing the tool
The bundle inserts these Host rows, making the tool available to all presets, including minimal:
- insert:
- id: subagent-antigravity
name: '@ashenjyy/dsh-subagent-antigravity'
- id: tool-subagent-antigravity
name: '@deepseek-ai/dsh-tool-subagent'
config:
provider: antigravity
toolName: subagent_antigravity
maxDepth: provider-managed
Configure the provider's authentication and optional model settings before the first delegation. A Cloud project is not a universal login requirement. Preserve maxDepth: provider-managed: this external provider does not implement DSH-enforced depth, output schemas, agent presets, or agent options.
What you get
The tool returns a child ID after the native session and its requested settings are ready. Execution continues asynchronously, and DSH delivers a completion notification to the parent. The result contains ACP assistant text, a stop reason, and optional safe diagnostic facts. Thoughts, tools, raw protocol payloads, credential values, and stderr are not copied into the parent answer. ACP streams assistant chunks without Codex's final/partial phase labels, so assistant text is accumulated rather than claiming identical phase-based answer selection.
Failure and recovery
Missing native payloads, unavailable model choices, mismatched readback, authentication errors, and unsupported protocol responses fail explicitly. There is no PATH lookup, CLI fallback, model substitution, or automatic task retry. Already-performed file or external changes are not rolled back.
Understand the implementation
Implementation detailsDesign principles
- One process, session, and prompt per delegation. No pool, resume, follow-up input, or reused history.
- Native execution. ACP clients advertise no filesystem or terminal implementation; Antigravity performs its own tool calls.
- Shared Harness lifecycle.
ctx.subagents,ctx.subprocess,settleRunResult, andsubprocessRunHandleown the same boundaries as the official product provider. - Explicit settings remain explicit. The runtime must accept requested model/effort values. Optional local allowlists reject changes outside the deployment's policy.
Source map
| File | Responsibility |
|---|---|
src/index.ts |
Configuration schema and provider registration |
src/auth.ts |
Native authentication selection and method-specific environment |
src/auth-cli.ts |
Explicit native authentication command without a session or prompt |
src/run.ts |
Managed subprocess, startup, cancellation, result settlement, teardown |
src/wire.ts |
Minimal ACP v1 adapter over DSH's shared JSON-RPC line transport |
src/model-policy.ts |
Advertised choices, exact selection, optional local policy |
src/runtime.ts |
Pinned native-payload resolution and integrity cache |
src/install.ts |
Explicit official-payload download and verified installation |
cordis.patch.yml |
Provider and global tool registration |
Run flow
Resolve the installed native pair → spawn through ctx.subprocess → validate antigravity-acp, version 1.4.3, ACP v1 → retain native authentication or select the configured method → create a fresh session → set and verify configured model/effort → publish the run → send one text prompt → collect the authoritative ACP terminal result → close stdin and wait → escalate managed-range termination when necessary → notify the parent after cleanup.
Cancellation settles locally and sends session/cancel best effort. Process cleanup waits for the entire managed range, including descendants. Early exit never becomes successful completion. Successful empty answers and unknown terminal reasons are errors.
Performance
Native installation is performed once. Runtime resolution coalesces concurrent checks and verifies hashes on first use or metadata changes; later tasks reuse verified metadata. Stderr forwarding uses stream backpressure instead of synchronous file writes. Assistant text is accumulated in bounded chunks; thought and tool payloads are not retained. DSH's existing admission control governs concurrency. These changes reduce adapter overhead without changing the one-process-per-task architecture; no measured speedup is claimed.
Further exploration
- Official Codex provider at the compatibility baseline
- DSH Subagent subsystem
- Pinned official Antigravity ACP distribution
- Google ADC setup
- Protocol verification record
Model experience
Child request
Antigravity receives the self-contained text task in the selected working directory. It has its own context and native tools. The provider does not inherit the parent conversation, supply DSH tools to the child, or create a separate Git worktree. Native model requests and their costs follow the selected account, project, or gateway configuration.
Parent scheduling and result
The parent sees the launch acknowledgment and eventual assistant result or safe failure diagnostic. The child context and native tool transcript are not inserted into the parent's context. Native model cache behavior belongs to Antigravity and its backend; this package does not promise cross-task cache reuse.
Known limitations and deferred work
- Exact compatibility baseline: DSH
0.2.1-rc.3, ACP runtime1.4.3, ACP protocol v1. Other releases require a deliberate compatibility update. - Authentication evidence: All advertised native routes are represented in configuration, but the added 0.2.0 flows were checked against source only. They were not each logged in or exercised with inference. Account and enterprise policy may make a method unavailable.
- OAuth can require interaction: First login or reauthentication can open a browser. The authentication command does not make later tasks strictly noninteractive.
- Fresh is not ephemeral: ACP can persist its own sessions. The adapter does not resume them, but does not claim Codex's
ephemeral: trueguarantee or erase native records. - App plugins are not automatically inherited: ACP 1.4.3 discovers shared MCP, skills, and hooks. It is a separate backend, not an attached App session; App-only plugin packages and UI features may be unavailable.
- Local allowlists govern this adapter's selections: Hooks, MCP servers, plugins, and Google's closed runtime can perform their own work. The adapter cannot attest that every internal or external auxiliary operation uses the selected model. Strict deployments should additionally control native hooks/plugins, tools, and server-side model access.
- No task-question UI: Agent questions and unsupported client requests cannot be answered. Slash-command prompts are rejected instead of being interpreted as model or mode changes. Native authentication browser flows are separate from these task questions.
- Text only, one turn: Non-text blocks are rejected; no follow-up, structured output, live DSH progress transcript, automatic retries, or side-effect rollback.
- No task execution deadline: The startup deadline does not limit a running task. DSH cancellation remains the stop mechanism.
- Platform evidence: Windows x64 startup and non-inference configuration were observed. Other pinned platform downloads are listed by the official registry but were not exercised here.
Dev note
npm ci --ignore-scripts
npm run build
npm pack
The runtime installer is explicit; installing JS dependencies does not execute or download the native agent. The release includes compiled ESM and declarations. Preserve the upstream MIT notice. Protocol/configuration verification and TypeScript compilation are separate from model execution; no automated tests or inference smoke tests were run for this delivery.
No comments yet. Be the first to write one.