Files
openclaw/package.json
T
Dallin Romney 496c84bf61 chore(release): prepare 2026.6.34 extended-stable (#112513)
* fix: gate diagnostics command to owners

(cherry picked from commit 170bf72e64)

* fix(agent): replace self-wait with deferred release in retained-lock abort cleanup (#96100)

* fix(agent): wait for retained session write before releasing held lock on abort

* fix(agent): replace self-wait with deferred release in retained-lock abort cleanup

* fix(test): reject fallback acquire with SessionWriteLockTimeoutError in active-scope cleanup test

* fix(agent): trim retained-lock comments

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
(cherry picked from commit 0a042f68df)

* fix(gateway): resume channel after pending task recovery

(cherry picked from commit 6039da3ed6)

* fix(gateway): resume channel after pending task recovery

(cherry picked from commit ecd29fe572)

* fix(outbound): ignore empty delivery receipts (#79811)

(cherry picked from commit 9a735bea03)

* fix(agents): guard delivery-evidence attachment recursion against cycles (#97041)

* fix(agents): guard delivery-evidence attachment recursion against cycles

* fix(agents): guard delivery-evidence attachment recursion against cycles

* fix(agents): guard delivery-evidence attachment recursion against cycles

---------

Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
(cherry picked from commit 498567190d)

* fix(opencode-go): re-arm idle timer on block-boundary events to prevent false stalled-stream abort (#97128)

* fix(opencode-go): re-arm idle timer on block-boundary events to prevent false stalled-stream abort

When the opencode-go model finalizes a tool call and deliberates before
the next one, the provider emits real block-boundary SSE events
(text_end, thinking_end, toolcall_start, toolcall_end) that prove the
socket is alive, but the watchdog's isProviderProgressEvent only
returned true for token deltas (text_delta, thinking_delta,
toolcall_delta). This caused the idle timer to fire and falsely abort a
live stream, replacing a completed answer with a stalled error and
dropping the provider's real done event.

Fix: include block-boundary events in isProviderProgressEvent so the
idle timer is re-armed on any forward-progress provider event.
text_start and thinking_start are intentionally excluded because they
are synthetic preamble events that should not shorten the first-event
window.

Closes #96518

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(opencode-go): satisfy lint in stream regression

* test(opencode-go): satisfy lint in stream regression

* test(opencode-go): satisfy lint in stream regression

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
(cherry picked from commit 552ec2b49d)

* fix(model-fallback): don't rethrow provider-side AbortErrors as user cancellations (#90908)

* fix(model-fallback): don't rethrow provider-side AbortErrors as user cancellations

When the LLM API closes the connection mid-stream, the fetch layer
surfaces AbortError("This operation was aborted") with no external
abort signal triggered. The old guard `shouldRethrowAbort()` returned
false for these errors (because isTimeoutError matched the message),
so they fell through to the fallback loop but were never retried —
the error propagated up and produced SILENT_REPLY_TOKEN in group
sessions, permanently silencing the topic.

Replace the guard with a direct check: only rethrow AbortError when
the external abort signal is actually set (user/gateway cancellation).
Provider-side AbortErrors without an external signal now fall through
to the next fallback candidate, giving the system a chance to recover.

* fix(cron): forward abort signal into runWithModelFallback

Thread the cron executor's abort signal into the shared
runWithModelFallback call so that cron timeouts and cancellations
stop the fallback chain instead of retrying with the next candidate.

Previously, the run callback checked params.abortSignal?.aborted and
threw, but runWithModelFallback itself had no signal — so the new
guard in model-fallback.ts could not distinguish a caller abort from
a provider-side AbortError and would retry silently.

Also adds a focused regression test verifying the signal is forwarded.

---------

Co-authored-by: Shengting Xie <shengting@openclaw.ai>
Co-authored-by: yayu <yayu@yayuMacStudio.local>
(cherry picked from commit 98ed83f848)

* fix(browser): block node routes when sandbox host control is disabled (#97958)

(cherry picked from commit 2cf765f732)

* fix(exec): bind Windows allowlist execution path (#98260)

* fix(exec): bind windows allowlist execution path

* fix(exec): add windows shadow execution proof

* fix(exec): preserve wildcard allowlist behavior

* fix(exec): correct blocked plan test fixture

(cherry picked from commit 3811001d27)

* fix(mcp): suppress unhandled error on stderr pipe in stdio transport (#99803)

* fix(mcp): suppress unhandled error on stderr pipe in stdio transport

When child.stderr is piped to stderrStream without an error
handler, a stream-level error (EPIPE, I/O failure) crashes the
process. Add a noop error handler before the pipe, consistent
with the error handlers already present on stdin and stdout.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(mcp): add regression test for stderr pipe error suppression

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(mcp): report stderr stream errors

* fix(mcp): report stderr stream errors

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
(cherry picked from commit 1b84316a91)

* Harden macOS SQLite WAL checkpoints (#99067)

(cherry picked from commit f7f1be276a)

* fix(secrets): suppress unhandled stdout/stderr stream errors in exec resolver (#100521)

* fix(secrets): suppress unhandled stdout/stderr stream errors in exec resolver

* proof(secrets): add real behavior proof script for exec resolver stream error catch

* proof(secrets): replace wrapper with real exec resolver stream error proof

* style: apply oxfmt to changed files

(cherry picked from commit c9a0783922)

* fix(agents): retry transient filesystem races when reading workspace bootstrap files (#100910)

* fix(agents): retry transient filesystem races when reading workspace bootstrap files

* fix(agents): retry transient boundary resolution

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
(cherry picked from commit f36d170bc6)

* fix(gateway): finish plugin HTTP responses after post-header failures (#102125)

* fix(gateway): finish plugin HTTP responses after post-header failures

* test(gateway): satisfy plugin HTTP regression lint

* fix(gateway): skip ending destroyed plugin responses

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 240d350c7f)

* fix(gateway): validate exact custom browser origins (#38290)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit fa0349aa44)

* fix: block unspecified trusted DNS targets (#103075)

(cherry picked from commit c70f3d0dae)

* fix(channels): make nack callbacks idempotent (#104919)

* fix(channels): make nack callbacks idempotent

* fix(channels): coalesce overlapping nack callbacks

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 02d307e1b8)

* fix(channels): prevent base URL credentials in status output (#107754)

* fix(channels): redact credentials in account URLs

* fix(channels): sanitize final status summaries

(cherry picked from commit 210340fe93)

* fix(channels): prevent lifecycle listener buildup (#109108)

(cherry picked from commit 0e1fad711c)

* fix(sandbox): use Buffer.byteLength for env var value size limit (#105017)

* fix(sandbox): use Buffer.byteLength for env var value size limit

validateEnvVarValue checked value.length (UTF-16 code units) against
the 32768-byte limit, so multi-byte CJK values like "值".repeat(11000)
passed the check despite exceeding 33 KB in UTF-8. Switch to
Buffer.byteLength(value, "utf8") so the limit matches the actual byte
count the OS and child processes see.

* test(sandbox): simplify env byte-limit coverage

Co-authored-by: 唐梓夷0668001293 <tang.ziyi@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 84fb48c3be)

* fix(gateway): guard process.kill ESRCH race in signalVerifiedGatewayPidSync (#109590)

* fix(gateway): guard process.kill ESRCH race in signalVerifiedGatewayPidSync

A verified gateway process can exit between the argv validation check and
the process.kill call, causing an unhandled ESRCH error. Wrap the kill in
try-catch and silently swallow ESRCH (process already gone = signal
already delivered).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(gateway): explain ESRCH signal race

Co-authored-by: 丁宇婷0668001435 <ding.yuting@xydigit.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 853b1a8d11)

* fix(litellm): guard loopback hostname auto-allow with isIP to prevent DNS SSRF bypass (#110693)

* fix(litellm): guard loopback hostname auto-allow with isIP to prevent DNS bypass

The isAutoAllowedLitellmHostname helper auto-enables private-network access
for loopback-style hosts. Before this fix, lowered.startsWith("127.")
matched DNS hostnames like 127.evil.com, letting remote endpoints bypass
the explicit allowPrivateNetwork opt-in — a SSRF risk.

Add isIP(host)===4 guard so only literal IPv4 loopback addresses qualify.
Same canonical pattern as extensions/slack/src/monitor/relay-source.ts:271
and the codex loopback fix.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(litellm): cover loopback endpoint policy

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 3d03b60da9)

* fix(discord): sustained gateway bursts stop growing memory (#110954)

* fix(discord): sustained gateway bursts stop growing memory

* fix(discord): contain gateway queue overflow

* fix(discord): drop oldest saturated gateway sends

Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com>

* fix(discord): surface gateway overflow warnings

Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
(cherry picked from commit 69aeba9d86)

* fix(gateway): bound busy channel health by real run age (#103793)

* fix(gateway): bound busy channel health by real run age

The channel health policy treats a channel as healthy-busy even while
disconnected, bounded only by a 25 minute stale ceiling measured from
lastRunActivityAt. The run-state heartbeat refreshes lastRunActivityAt
every 60 seconds for as long as any run is active, so a run that hangs
forever (for example a send blocking on a dead socket after the
transport already reported connected:false) keeps that timestamp fresh
and the stuck ceiling is never reached. The account is then reported
healthy forever by the health monitor, readiness probe, and health CLI,
and no restart ever fires.

createRunStateMachine now tracks each in-flight run's start time keyed by
an opaque run handle and publishes the oldest still-active run's start as
activeRunStartedAt. The health policy busy override keys its ceiling off
the real run age, so a run stuck longer than the threshold reports stuck
and the monitor can restart it. Because the reported start is the oldest
active run and advances to the next-oldest as runs complete, a channel
churning through many short overlapping runs (activeRuns above 1 across
concurrent queue keys) stays healthy; only a genuinely hung run breaches
the ceiling. Short and active runs stay healthy and the existing
lastRunActivityAt fallback is preserved for snapshots without a start
time.

* fix(channels): retain run-state callback compatibility

Keep the released zero-argument onRunEnd callback source-compatible while allowing internal queue callers to pass a run handle for exact concurrent-run accounting. The compatibility path closes the oldest active run, preserving existing lifecycle behavior for consumers that do not use handles.

* fix(channels): keep anonymous runs out of age tracking

The zero-argument lifecycle callbacks cannot identify which concurrent run completed, so they must not update the identity-sensitive run start used by channel health. Keep their busy count separately and reserve exact start tracking for the shared queue's handle-aware lifecycle path.

* fix(channels): keep tracked runs internal

Keep the public run-state lifecycle callbacks unchanged. The channel queue now owns opaque run identity and augments its status updates with the oldest active queue run, so implementation details do not expand the SDK surface.

* fix(channels): type queue run start status

Keep activeRunStartedAt in the internal status patch type so the queue can publish its private tracked-run age through the existing status sink.

* fix(channels): wrap isActive to satisfy unbound-method lint

* fix(gateway): gate busy run-age ceiling on disconnected transport

(cherry picked from commit 18b79d99ab)

* fix(deps): update fast-uri past advisory

(cherry picked from commit 1be9db038f)

* fix(release): adapt maintenance-line hardening

Backport/adapt 18ec9ce8f7, dea1fe1f11, 7f32b6c984, 1da345e9d3, 931ac3e2b5, 89780d5a60, and c0d99ed26e for the 2026.6 extended-stable maintenance line.

* fix(deps): bump protobufjs to 7.6.5

Backport-adapted from a230f742f2.

* test(gateway): cover bounded macOS process probe

* chore(release): prepare 2026.6.34

* test(dotenv): share path override environment assertions

* fix(release): resolve 2026.6.34 CI blockers

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Co-authored-by: Peter Lee <li.xialong@xydigit.com>
Co-authored-by: sallyom <somalley@redhat.com>
Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
Co-authored-by: Liu Wenyu <117838866+indulgeback@users.noreply.github.com>
Co-authored-by: pick-cat <huang.ting3@xydigit.com>
Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: weiqinl <liu.weiqin@xydigit.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: shengting <xieyayu@163.com>
Co-authored-by: Shengting Xie <shengting@openclaw.ai>
Co-authored-by: yayu <yayu@yayuMacStudio.local>
Co-authored-by: Agustin Rivera <31522568+eleqtrizit@users.noreply.github.com>
Co-authored-by: cxbAsDev <chen.xianbiao@xydigit.com>
Co-authored-by: ooiuuii <al3060388206@gmail.com>
Co-authored-by: Masato Hoshino <g515hoshino@gmail.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: mushuiyu886 <yang.haoyu@xydigit.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Bruno Wowk (Volky) <bruno.wowk@gmail.com>
Co-authored-by: Pavan Kumar Gondhi <pavangondhi@gmail.com>
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
Co-authored-by: xingzhou <zhang.guiping@xydigit.com>
Co-authored-by: tzy-17 <tang.ziyi@xydigit.com>
Co-authored-by: krissding <ding.yuting@xydigit.com>
Co-authored-by: lsr911 <liao.shirong@xydigit.com>
Co-authored-by: Yuval Dinodia <102706514+yetval@users.noreply.github.com>
2026-07-21 22:13:20 -07:00

2050 lines
111 KiB
JSON

{
"name": "openclaw",
"version": "2026.6.34",
"description": "Multi-channel AI gateway with extensible messaging integrations",
"keywords": [],
"homepage": "https://github.com/openclaw/openclaw#readme",
"bugs": {
"url": "https://github.com/openclaw/openclaw/issues"
},
"license": "MIT",
"author": "",
"repository": {
"type": "git",
"url": "git+https://github.com/openclaw/openclaw.git"
},
"bin": {
"openclaw": "openclaw.mjs"
},
"directories": {
"doc": "docs",
"test": "test"
},
"files": [
"CHANGELOG.md",
"LICENSE",
"npm-shrinkwrap.json",
"openclaw.mjs",
"pnpm-workspace.yaml",
"README.md",
"THIRD_PARTY_NOTICES.md",
"dist/",
"!dist/.buildstamp",
"!dist/.runtime-postbuildstamp",
"!dist/**/*.map",
"!dist/plugin-sdk/.tsbuildinfo",
"!dist/plugin-sdk/agent-runtime-test-contracts.js",
"!dist/plugin-sdk/agent-runtime-test-contracts.d.ts",
"!dist/plugin-sdk/channel-contract-testing.js",
"!dist/plugin-sdk/channel-contract-testing.d.ts",
"!dist/plugin-sdk/channel-target-testing.js",
"!dist/plugin-sdk/channel-target-testing.d.ts",
"!dist/plugin-sdk/channel-test-helpers.js",
"!dist/plugin-sdk/channel-test-helpers.d.ts",
"!dist/plugin-sdk/codex-native-task-runtime.js",
"!dist/plugin-sdk/codex-native-task-runtime.d.ts",
"!dist/plugin-sdk/plugin-test-api.js",
"!dist/plugin-sdk/plugin-test-api.d.ts",
"!dist/plugin-sdk/plugin-test-contracts.js",
"!dist/plugin-sdk/plugin-test-contracts.d.ts",
"!dist/plugin-sdk/plugin-state-test-runtime.js",
"!dist/plugin-sdk/plugin-state-test-runtime.d.ts",
"!dist/plugin-sdk/plugin-test-runtime.js",
"!dist/plugin-sdk/plugin-test-runtime.d.ts",
"!dist/plugin-sdk/provider-http-test-mocks.js",
"!dist/plugin-sdk/provider-http-test-mocks.d.ts",
"!dist/plugin-sdk/provider-test-contracts.js",
"!dist/plugin-sdk/provider-test-contracts.d.ts",
"!dist/plugin-sdk/reply-payload-testing.js",
"!dist/plugin-sdk/reply-payload-testing.d.ts",
"!dist/plugin-sdk/sqlite-runtime-testing.js",
"!dist/plugin-sdk/sqlite-runtime-testing.d.ts",
"!dist/plugin-sdk/ssrf-runtime-internal.js",
"!dist/plugin-sdk/ssrf-runtime-internal.d.ts",
"!dist/plugin-sdk/test-env.js",
"!dist/plugin-sdk/test-env.d.ts",
"!dist/plugin-sdk/test-fixtures.js",
"!dist/plugin-sdk/test-fixtures.d.ts",
"!dist/plugin-sdk/test-node-mocks.js",
"!dist/plugin-sdk/test-node-mocks.d.ts",
"!dist/plugin-sdk/test-utils.js",
"!dist/plugin-sdk/test-utils.d.ts",
"!dist/plugin-sdk/testing.js",
"!dist/plugin-sdk/testing.d.ts",
"!dist/plugin-sdk/src/agents/test-helpers/**",
"!dist/plugin-sdk/src/test-helpers/**",
"!dist/plugin-sdk/src/test-utils/**",
"!dist/plugin-sdk/src/plugin-sdk/test-helpers/**",
"!dist/extensions/acpx/**",
"!dist/extensions/amazon-bedrock/**",
"!dist/extensions/amazon-bedrock-mantle/**",
"!dist/extensions/anthropic-vertex/**",
"!dist/extensions/node_modules/**",
"!dist/extensions/*/node_modules/**",
"!dist/extensions/arcee/**",
"!dist/extensions/brave/**",
"!dist/extensions/cerebras/**",
"!dist/extensions/chutes/**",
"!dist/extensions/clickclack/**",
"!dist/extensions/cloudflare-ai-gateway/**",
"!dist/extensions/codex/**",
"!dist/extensions/copilot/**",
"!dist/extensions/deepinfra/**",
"!dist/extensions/deepseek/**",
"!dist/extensions/diagnostics-otel/**",
"!dist/extensions/diagnostics-prometheus/**",
"!dist/extensions/diffs/**",
"!dist/extensions/diffs-language-pack/**",
"!dist/extensions/discord/**",
"!dist/extensions/exa/**",
"!dist/extensions/feishu/**",
"!dist/extensions/firecrawl/**",
"!dist/extensions/fireworks/**",
"!dist/extensions/google-meet/**",
"!dist/extensions/googlechat/**",
"!dist/extensions/gmi/**",
"!dist/extensions/gradium/**",
"!dist/extensions/groq/**",
"!dist/extensions/inworld/**",
"!dist/extensions/irc/**",
"!dist/extensions/kilocode/**",
"!dist/extensions/kimi-coding/**",
"!dist/extensions/line/**",
"!dist/extensions/llama-cpp/**",
"!dist/extensions/lobster/**",
"!dist/extensions/mattermost/**",
"!dist/extensions/memory-lancedb/**",
"!dist/extensions/matrix/**",
"!dist/extensions/moonshot/**",
"!dist/extensions/msteams/**",
"!dist/extensions/nextcloud-talk/**",
"!dist/extensions/nostr/**",
"!dist/extensions/parallel/**",
"!dist/extensions/perplexity/**",
"!dist/extensions/qianfan/**",
"!dist/extensions/qqbot/**",
"!dist/extensions/raft/**",
"!dist/extensions/pixverse/**",
"!dist/extensions/qa-channel/**",
"!dist/extensions/qa-lab/**",
"!dist/extensions/qa-matrix/**",
"!dist/extensions/openshell/**",
"!dist/extensions/qwen/**",
"!dist/extensions/searxng/**",
"!dist/extensions/signal/**",
"!dist/extensions/slack/**",
"!dist/extensions/sms/**",
"!dist/extensions/stepfun/**",
"!dist/extensions/synology-chat/**",
"!dist/extensions/tavily/**",
"!dist/extensions/tencent/**",
"!dist/extensions/tokenjuice/**",
"!dist/extensions/tlon/**",
"!dist/extensions/twitch/**",
"!dist/extensions/venice/**",
"!dist/extensions/vercel-ai-gateway/**",
"!dist/extensions/voice-call/**",
"!dist/extensions/whatsapp/**",
"!dist/extensions/zai/**",
"!dist/extensions/zalo/**",
"!dist/extensions/zalouser/**",
"!dist/plugin-sdk/extensions/qa-channel/**",
"!dist/plugin-sdk/extensions/qa-lab/**",
"!dist/plugin-sdk/qa-channel.*",
"!dist/plugin-sdk/qa-channel-protocol.*",
"!dist/plugin-sdk/qa-lab.*",
"!dist/plugin-sdk/qa-runtime.*",
"!dist/plugin-sdk/src/**",
"!dist/plugin-sdk/src/plugin-sdk/qa-channel.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-channel-protocol.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-lab.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-runtime.d.ts",
"!dist/qa-runtime-*.js",
"docs/",
"!docs/.generated/**",
"!docs/channels/qa-channel.md",
"!docs/assets/**",
"!docs/images/**",
"!docs/**/*.jpg",
"!docs/**/*.png",
"src/agents/templates/",
"scripts/crabbox-wrapper.mjs",
"patches/",
"skills/",
"scripts/npm-runner.mjs",
"scripts/prepare-git-hooks.mjs",
"scripts/preinstall-package-manager-warning.mjs",
"scripts/lib/official-external-channel-catalog.json",
"scripts/lib/official-external-plugin-catalog.json",
"scripts/lib/official-external-provider-catalog.json",
"scripts/lib/package-dist-imports.mjs",
"scripts/postinstall-bundled-plugins.mjs",
"scripts/windows-cmd-helpers.mjs"
],
"type": "module",
"main": "dist/index.js",
"exports": {
".": "./dist/index.js",
"./plugin-sdk": {
"types": "./dist/plugin-sdk/index.d.ts",
"default": "./dist/plugin-sdk/index.js"
},
"./plugin-sdk/core": {
"types": "./dist/plugin-sdk/core.d.ts",
"default": "./dist/plugin-sdk/core.js"
},
"./plugin-sdk/lmstudio": {
"types": "./dist/plugin-sdk/lmstudio.d.ts",
"default": "./dist/plugin-sdk/lmstudio.js"
},
"./plugin-sdk/lmstudio-runtime": {
"types": "./dist/plugin-sdk/lmstudio-runtime.d.ts",
"default": "./dist/plugin-sdk/lmstudio-runtime.js"
},
"./plugin-sdk/provider-setup": {
"types": "./dist/plugin-sdk/provider-setup.d.ts",
"default": "./dist/plugin-sdk/provider-setup.js"
},
"./plugin-sdk/sandbox": {
"types": "./dist/plugin-sdk/sandbox.d.ts",
"default": "./dist/plugin-sdk/sandbox.js"
},
"./plugin-sdk/self-hosted-provider-setup": {
"types": "./dist/plugin-sdk/self-hosted-provider-setup.d.ts",
"default": "./dist/plugin-sdk/self-hosted-provider-setup.js"
},
"./plugin-sdk/routing": {
"types": "./dist/plugin-sdk/routing.d.ts",
"default": "./dist/plugin-sdk/routing.js"
},
"./plugin-sdk/runtime": {
"types": "./dist/plugin-sdk/runtime.d.ts",
"default": "./dist/plugin-sdk/runtime.js"
},
"./plugin-sdk/health": {
"types": "./dist/plugin-sdk/health.d.ts",
"default": "./dist/plugin-sdk/health.js"
},
"./plugin-sdk/runtime-doctor": {
"types": "./dist/plugin-sdk/runtime-doctor.d.ts",
"default": "./dist/plugin-sdk/runtime-doctor.js"
},
"./plugin-sdk/runtime-env": {
"types": "./dist/plugin-sdk/runtime-env.d.ts",
"default": "./dist/plugin-sdk/runtime-env.js"
},
"./plugin-sdk/runtime-logger": {
"types": "./dist/plugin-sdk/runtime-logger.d.ts",
"default": "./dist/plugin-sdk/runtime-logger.js"
},
"./plugin-sdk/proxy-capture": {
"types": "./dist/plugin-sdk/proxy-capture.d.ts",
"default": "./dist/plugin-sdk/proxy-capture.js"
},
"./plugin-sdk/runtime-secret-resolution": {
"types": "./dist/plugin-sdk/runtime-secret-resolution.d.ts",
"default": "./dist/plugin-sdk/runtime-secret-resolution.js"
},
"./plugin-sdk/setup": {
"types": "./dist/plugin-sdk/setup.d.ts",
"default": "./dist/plugin-sdk/setup.js"
},
"./plugin-sdk/setup-adapter-runtime": {
"types": "./dist/plugin-sdk/setup-adapter-runtime.d.ts",
"default": "./dist/plugin-sdk/setup-adapter-runtime.js"
},
"./plugin-sdk/setup-runtime": {
"types": "./dist/plugin-sdk/setup-runtime.d.ts",
"default": "./dist/plugin-sdk/setup-runtime.js"
},
"./plugin-sdk/channel-setup": {
"types": "./dist/plugin-sdk/channel-setup.d.ts",
"default": "./dist/plugin-sdk/channel-setup.js"
},
"./plugin-sdk/channel-streaming": {
"types": "./dist/plugin-sdk/channel-streaming.d.ts",
"default": "./dist/plugin-sdk/channel-streaming.js"
},
"./plugin-sdk/setup-tools": {
"types": "./dist/plugin-sdk/setup-tools.d.ts",
"default": "./dist/plugin-sdk/setup-tools.js"
},
"./plugin-sdk/approval-auth-runtime": {
"types": "./dist/plugin-sdk/approval-auth-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-auth-runtime.js"
},
"./plugin-sdk/approval-client-runtime": {
"types": "./dist/plugin-sdk/approval-client-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-client-runtime.js"
},
"./plugin-sdk/approval-delivery-runtime": {
"types": "./dist/plugin-sdk/approval-delivery-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-delivery-runtime.js"
},
"./plugin-sdk/approval-gateway-runtime": {
"types": "./dist/plugin-sdk/approval-gateway-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-gateway-runtime.js"
},
"./plugin-sdk/approval-handler-adapter-runtime": {
"types": "./dist/plugin-sdk/approval-handler-adapter-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-handler-adapter-runtime.js"
},
"./plugin-sdk/approval-handler-runtime": {
"types": "./dist/plugin-sdk/approval-handler-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-handler-runtime.js"
},
"./plugin-sdk/channel-runtime-context": {
"types": "./dist/plugin-sdk/channel-runtime-context.d.ts",
"default": "./dist/plugin-sdk/channel-runtime-context.js"
},
"./plugin-sdk/approval-native-runtime": {
"types": "./dist/plugin-sdk/approval-native-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-native-runtime.js"
},
"./plugin-sdk/approval-reaction-runtime": {
"types": "./dist/plugin-sdk/approval-reaction-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-reaction-runtime.js"
},
"./plugin-sdk/approval-reply-runtime": {
"types": "./dist/plugin-sdk/approval-reply-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-reply-runtime.js"
},
"./plugin-sdk/approval-runtime": {
"types": "./dist/plugin-sdk/approval-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-runtime.js"
},
"./plugin-sdk/config-runtime": {
"types": "./dist/plugin-sdk/config-runtime.d.ts",
"default": "./dist/plugin-sdk/config-runtime.js"
},
"./plugin-sdk/config-contracts": {
"types": "./dist/plugin-sdk/config-contracts.d.ts",
"default": "./dist/plugin-sdk/config-contracts.js"
},
"./plugin-sdk/config-types": {
"types": "./dist/plugin-sdk/config-types.d.ts",
"default": "./dist/plugin-sdk/config-types.js"
},
"./plugin-sdk/plugin-config-runtime": {
"types": "./dist/plugin-sdk/plugin-config-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-config-runtime.js"
},
"./plugin-sdk/config-mutation": {
"types": "./dist/plugin-sdk/config-mutation.d.ts",
"default": "./dist/plugin-sdk/config-mutation.js"
},
"./plugin-sdk/cron-store-runtime": {
"types": "./dist/plugin-sdk/cron-store-runtime.d.ts",
"default": "./dist/plugin-sdk/cron-store-runtime.js"
},
"./plugin-sdk/config-schema": {
"types": "./dist/plugin-sdk/config-schema.d.ts",
"default": "./dist/plugin-sdk/config-schema.js"
},
"./plugin-sdk/json-schema-runtime": {
"types": "./dist/plugin-sdk/json-schema-runtime.d.ts",
"default": "./dist/plugin-sdk/json-schema-runtime.js"
},
"./plugin-sdk/json-unsafe-integers": {
"types": "./dist/plugin-sdk/json-unsafe-integers.d.ts",
"default": "./dist/plugin-sdk/json-unsafe-integers.js"
},
"./plugin-sdk/reply-runtime": {
"types": "./dist/plugin-sdk/reply-runtime.d.ts",
"default": "./dist/plugin-sdk/reply-runtime.js"
},
"./plugin-sdk/reply-dedupe": {
"types": "./dist/plugin-sdk/reply-dedupe.d.ts",
"default": "./dist/plugin-sdk/reply-dedupe.js"
},
"./plugin-sdk/reply-dispatch-runtime": {
"types": "./dist/plugin-sdk/reply-dispatch-runtime.d.ts",
"default": "./dist/plugin-sdk/reply-dispatch-runtime.js"
},
"./plugin-sdk/reply-reference": {
"types": "./dist/plugin-sdk/reply-reference.d.ts",
"default": "./dist/plugin-sdk/reply-reference.js"
},
"./plugin-sdk/reply-chunking": {
"types": "./dist/plugin-sdk/reply-chunking.d.ts",
"default": "./dist/plugin-sdk/reply-chunking.js"
},
"./plugin-sdk/reply-payload": {
"types": "./dist/plugin-sdk/reply-payload.d.ts",
"default": "./dist/plugin-sdk/reply-payload.js"
},
"./plugin-sdk/agent-media-payload": {
"types": "./dist/plugin-sdk/agent-media-payload.d.ts",
"default": "./dist/plugin-sdk/agent-media-payload.js"
},
"./plugin-sdk/inbound-reply-dispatch": {
"types": "./dist/plugin-sdk/inbound-reply-dispatch.d.ts",
"default": "./dist/plugin-sdk/inbound-reply-dispatch.js"
},
"./plugin-sdk/inbound-envelope": {
"types": "./dist/plugin-sdk/inbound-envelope.d.ts",
"default": "./dist/plugin-sdk/inbound-envelope.js"
},
"./plugin-sdk/channel-reply-pipeline": {
"types": "./dist/plugin-sdk/channel-reply-pipeline.d.ts",
"default": "./dist/plugin-sdk/channel-reply-pipeline.js"
},
"./plugin-sdk/channel-reply-options-runtime": {
"types": "./dist/plugin-sdk/channel-reply-options-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-reply-options-runtime.js"
},
"./plugin-sdk/channel-runtime": {
"types": "./dist/plugin-sdk/channel-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-runtime.js"
},
"./plugin-sdk/interactive-runtime": {
"types": "./dist/plugin-sdk/interactive-runtime.d.ts",
"default": "./dist/plugin-sdk/interactive-runtime.js"
},
"./plugin-sdk/outbound-media": {
"types": "./dist/plugin-sdk/outbound-media.d.ts",
"default": "./dist/plugin-sdk/outbound-media.js"
},
"./plugin-sdk/outbound-send-deps": {
"types": "./dist/plugin-sdk/outbound-send-deps.d.ts",
"default": "./dist/plugin-sdk/outbound-send-deps.js"
},
"./plugin-sdk/outbound-runtime": {
"types": "./dist/plugin-sdk/outbound-runtime.d.ts",
"default": "./dist/plugin-sdk/outbound-runtime.js"
},
"./plugin-sdk/pair-loop-guard-runtime": {
"types": "./dist/plugin-sdk/pair-loop-guard-runtime.d.ts",
"default": "./dist/plugin-sdk/pair-loop-guard-runtime.js"
},
"./plugin-sdk/poll-runtime": {
"types": "./dist/plugin-sdk/poll-runtime.d.ts",
"default": "./dist/plugin-sdk/poll-runtime.js"
},
"./plugin-sdk/async-lock-runtime": {
"types": "./dist/plugin-sdk/async-lock-runtime.d.ts",
"default": "./dist/plugin-sdk/async-lock-runtime.js"
},
"./plugin-sdk/channel-activity-runtime": {
"types": "./dist/plugin-sdk/channel-activity-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-activity-runtime.js"
},
"./plugin-sdk/concurrency-runtime": {
"types": "./dist/plugin-sdk/concurrency-runtime.d.ts",
"default": "./dist/plugin-sdk/concurrency-runtime.js"
},
"./plugin-sdk/dedupe-runtime": {
"types": "./dist/plugin-sdk/dedupe-runtime.d.ts",
"default": "./dist/plugin-sdk/dedupe-runtime.js"
},
"./plugin-sdk/delivery-queue-runtime": {
"types": "./dist/plugin-sdk/delivery-queue-runtime.d.ts",
"default": "./dist/plugin-sdk/delivery-queue-runtime.js"
},
"./plugin-sdk/file-access-runtime": {
"types": "./dist/plugin-sdk/file-access-runtime.d.ts",
"default": "./dist/plugin-sdk/file-access-runtime.js"
},
"./plugin-sdk/heartbeat-runtime": {
"types": "./dist/plugin-sdk/heartbeat-runtime.d.ts",
"default": "./dist/plugin-sdk/heartbeat-runtime.js"
},
"./plugin-sdk/number-runtime": {
"types": "./dist/plugin-sdk/number-runtime.d.ts",
"default": "./dist/plugin-sdk/number-runtime.js"
},
"./plugin-sdk/secure-random-runtime": {
"types": "./dist/plugin-sdk/secure-random-runtime.d.ts",
"default": "./dist/plugin-sdk/secure-random-runtime.js"
},
"./plugin-sdk/system-event-runtime": {
"types": "./dist/plugin-sdk/system-event-runtime.d.ts",
"default": "./dist/plugin-sdk/system-event-runtime.js"
},
"./plugin-sdk/transport-ready-runtime": {
"types": "./dist/plugin-sdk/transport-ready-runtime.d.ts",
"default": "./dist/plugin-sdk/transport-ready-runtime.js"
},
"./plugin-sdk/exec-approvals-runtime": {
"types": "./dist/plugin-sdk/exec-approvals-runtime.d.ts",
"default": "./dist/plugin-sdk/exec-approvals-runtime.js"
},
"./plugin-sdk/infra-runtime": {
"types": "./dist/plugin-sdk/infra-runtime.d.ts",
"default": "./dist/plugin-sdk/infra-runtime.js"
},
"./plugin-sdk/runtime-config-snapshot": {
"types": "./dist/plugin-sdk/runtime-config-snapshot.d.ts",
"default": "./dist/plugin-sdk/runtime-config-snapshot.js"
},
"./plugin-sdk/runtime-group-policy": {
"types": "./dist/plugin-sdk/runtime-group-policy.d.ts",
"default": "./dist/plugin-sdk/runtime-group-policy.js"
},
"./plugin-sdk/model-session-runtime": {
"types": "./dist/plugin-sdk/model-session-runtime.d.ts",
"default": "./dist/plugin-sdk/model-session-runtime.js"
},
"./plugin-sdk/talk-config-runtime": {
"types": "./dist/plugin-sdk/talk-config-runtime.d.ts",
"default": "./dist/plugin-sdk/talk-config-runtime.js"
},
"./plugin-sdk/ssrf-policy": {
"types": "./dist/plugin-sdk/ssrf-policy.d.ts",
"default": "./dist/plugin-sdk/ssrf-policy.js"
},
"./plugin-sdk/ssrf-runtime": {
"types": "./dist/plugin-sdk/ssrf-runtime.d.ts",
"default": "./dist/plugin-sdk/ssrf-runtime.js"
},
"./plugin-sdk/media-runtime": {
"types": "./dist/plugin-sdk/media-runtime.d.ts",
"default": "./dist/plugin-sdk/media-runtime.js"
},
"./plugin-sdk/media-store": {
"types": "./dist/plugin-sdk/media-store.d.ts",
"default": "./dist/plugin-sdk/media-store.js"
},
"./plugin-sdk/media-mime": {
"types": "./dist/plugin-sdk/media-mime.d.ts",
"default": "./dist/plugin-sdk/media-mime.js"
},
"./plugin-sdk/embedding-providers": {
"types": "./dist/plugin-sdk/embedding-providers.d.ts",
"default": "./dist/plugin-sdk/embedding-providers.js"
},
"./plugin-sdk/media-generation-runtime": {
"types": "./dist/plugin-sdk/media-generation-runtime.d.ts",
"default": "./dist/plugin-sdk/media-generation-runtime.js"
},
"./plugin-sdk/conversation-binding-runtime": {
"types": "./dist/plugin-sdk/conversation-binding-runtime.d.ts",
"default": "./dist/plugin-sdk/conversation-binding-runtime.js"
},
"./plugin-sdk/conversation-runtime": {
"types": "./dist/plugin-sdk/conversation-runtime.d.ts",
"default": "./dist/plugin-sdk/conversation-runtime.js"
},
"./plugin-sdk/thread-bindings-runtime": {
"types": "./dist/plugin-sdk/thread-bindings-runtime.d.ts",
"default": "./dist/plugin-sdk/thread-bindings-runtime.js"
},
"./plugin-sdk/thread-bindings-session-runtime": {
"types": "./dist/plugin-sdk/thread-bindings-session-runtime.d.ts",
"default": "./dist/plugin-sdk/thread-bindings-session-runtime.js"
},
"./plugin-sdk/text-runtime": {
"types": "./dist/plugin-sdk/text-runtime.d.ts",
"default": "./dist/plugin-sdk/text-runtime.js"
},
"./plugin-sdk/text-chunking": {
"types": "./dist/plugin-sdk/text-chunking.d.ts",
"default": "./dist/plugin-sdk/text-chunking.js"
},
"./plugin-sdk/agent-runtime": {
"types": "./dist/plugin-sdk/agent-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-runtime.js"
},
"./plugin-sdk/simple-completion-runtime": {
"types": "./dist/plugin-sdk/simple-completion-runtime.d.ts",
"default": "./dist/plugin-sdk/simple-completion-runtime.js"
},
"./plugin-sdk/speech-core": {
"types": "./dist/plugin-sdk/speech-core.d.ts",
"default": "./dist/plugin-sdk/speech-core.js"
},
"./plugin-sdk/tts-runtime": {
"types": "./dist/plugin-sdk/tts-runtime.d.ts",
"default": "./dist/plugin-sdk/tts-runtime.js"
},
"./plugin-sdk/plugin-runtime": {
"types": "./dist/plugin-sdk/plugin-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-runtime.js"
},
"./plugin-sdk/skills-runtime": {
"types": "./dist/plugin-sdk/skills-runtime.d.ts",
"default": "./dist/plugin-sdk/skills-runtime.js"
},
"./plugin-sdk/channel-secret-basic-runtime": {
"types": "./dist/plugin-sdk/channel-secret-basic-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-secret-basic-runtime.js"
},
"./plugin-sdk/channel-secret-runtime": {
"types": "./dist/plugin-sdk/channel-secret-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-secret-runtime.js"
},
"./plugin-sdk/channel-secret-tts-runtime": {
"types": "./dist/plugin-sdk/channel-secret-tts-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-secret-tts-runtime.js"
},
"./plugin-sdk/secret-ref-runtime": {
"types": "./dist/plugin-sdk/secret-ref-runtime.d.ts",
"default": "./dist/plugin-sdk/secret-ref-runtime.js"
},
"./plugin-sdk/secret-provider-integration": {
"types": "./dist/plugin-sdk/secret-provider-integration.d.ts",
"default": "./dist/plugin-sdk/secret-provider-integration.js"
},
"./plugin-sdk/secret-file-runtime": {
"types": "./dist/plugin-sdk/secret-file-runtime.d.ts",
"default": "./dist/plugin-sdk/secret-file-runtime.js"
},
"./plugin-sdk/security-runtime": {
"types": "./dist/plugin-sdk/security-runtime.d.ts",
"default": "./dist/plugin-sdk/security-runtime.js"
},
"./plugin-sdk/gateway-method-runtime": {
"types": "./dist/plugin-sdk/gateway-method-runtime.d.ts",
"default": "./dist/plugin-sdk/gateway-method-runtime.js"
},
"./plugin-sdk/gateway-runtime": {
"types": "./dist/plugin-sdk/gateway-runtime.d.ts",
"default": "./dist/plugin-sdk/gateway-runtime.js"
},
"./plugin-sdk/cli-runtime": {
"types": "./dist/plugin-sdk/cli-runtime.d.ts",
"default": "./dist/plugin-sdk/cli-runtime.js"
},
"./plugin-sdk/cli-backend": {
"types": "./dist/plugin-sdk/cli-backend.d.ts",
"default": "./dist/plugin-sdk/cli-backend.js"
},
"./plugin-sdk/codex-mcp-projection": {
"types": "./dist/plugin-sdk/codex-mcp-projection.d.ts",
"default": "./dist/plugin-sdk/codex-mcp-projection.js"
},
"./plugin-sdk/agent-harness-task-runtime": {
"types": "./dist/plugin-sdk/agent-harness-task-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-harness-task-runtime.js"
},
"./plugin-sdk/agent-harness": {
"types": "./dist/plugin-sdk/agent-harness.d.ts",
"default": "./dist/plugin-sdk/agent-harness.js"
},
"./plugin-sdk/agent-harness-exec-review-runtime": {
"types": "./dist/plugin-sdk/agent-harness-exec-review-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-harness-exec-review-runtime.js"
},
"./plugin-sdk/agent-harness-runtime": {
"types": "./dist/plugin-sdk/agent-harness-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-harness-runtime.js"
},
"./plugin-sdk/agent-harness-tool-runtime": {
"types": "./dist/plugin-sdk/agent-harness-tool-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-harness-tool-runtime.js"
},
"./plugin-sdk/hook-runtime": {
"types": "./dist/plugin-sdk/hook-runtime.d.ts",
"default": "./dist/plugin-sdk/hook-runtime.js"
},
"./plugin-sdk/host-runtime": {
"types": "./dist/plugin-sdk/host-runtime.d.ts",
"default": "./dist/plugin-sdk/host-runtime.js"
},
"./plugin-sdk/types": {
"types": "./dist/plugin-sdk/types.d.ts",
"default": "./dist/plugin-sdk/types.js"
},
"./plugin-sdk/process-runtime": {
"types": "./dist/plugin-sdk/process-runtime.d.ts",
"default": "./dist/plugin-sdk/process-runtime.js"
},
"./plugin-sdk/windows-spawn": {
"types": "./dist/plugin-sdk/windows-spawn.d.ts",
"default": "./dist/plugin-sdk/windows-spawn.js"
},
"./plugin-sdk/acp-runtime": {
"types": "./dist/plugin-sdk/acp-runtime.d.ts",
"default": "./dist/plugin-sdk/acp-runtime.js"
},
"./plugin-sdk/acp-runtime-backend": {
"types": "./dist/plugin-sdk/acp-runtime-backend.d.ts",
"default": "./dist/plugin-sdk/acp-runtime-backend.js"
},
"./plugin-sdk/acp-binding-runtime": {
"types": "./dist/plugin-sdk/acp-binding-runtime.d.ts",
"default": "./dist/plugin-sdk/acp-binding-runtime.js"
},
"./plugin-sdk/acp-binding-resolve-runtime": {
"types": "./dist/plugin-sdk/acp-binding-resolve-runtime.d.ts",
"default": "./dist/plugin-sdk/acp-binding-resolve-runtime.js"
},
"./plugin-sdk/lazy-runtime": {
"types": "./dist/plugin-sdk/lazy-runtime.d.ts",
"default": "./dist/plugin-sdk/lazy-runtime.js"
},
"./plugin-sdk/temp-path": {
"types": "./dist/plugin-sdk/temp-path.d.ts",
"default": "./dist/plugin-sdk/temp-path.js"
},
"./plugin-sdk/time-runtime": {
"types": "./dist/plugin-sdk/time-runtime.d.ts",
"default": "./dist/plugin-sdk/time-runtime.js"
},
"./plugin-sdk/logging-core": {
"types": "./dist/plugin-sdk/logging-core.d.ts",
"default": "./dist/plugin-sdk/logging-core.js"
},
"./plugin-sdk/migration": {
"types": "./dist/plugin-sdk/migration.d.ts",
"default": "./dist/plugin-sdk/migration.js"
},
"./plugin-sdk/migration-runtime": {
"types": "./dist/plugin-sdk/migration-runtime.d.ts",
"default": "./dist/plugin-sdk/migration-runtime.js"
},
"./plugin-sdk/plugin-state-runtime": {
"types": "./dist/plugin-sdk/plugin-state-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-state-runtime.js"
},
"./plugin-sdk/markdown-table-runtime": {
"types": "./dist/plugin-sdk/markdown-table-runtime.d.ts",
"default": "./dist/plugin-sdk/markdown-table-runtime.js"
},
"./plugin-sdk/account-helpers": {
"types": "./dist/plugin-sdk/account-helpers.d.ts",
"default": "./dist/plugin-sdk/account-helpers.js"
},
"./plugin-sdk/account-core": {
"types": "./dist/plugin-sdk/account-core.d.ts",
"default": "./dist/plugin-sdk/account-core.js"
},
"./plugin-sdk/account-id": {
"types": "./dist/plugin-sdk/account-id.d.ts",
"default": "./dist/plugin-sdk/account-id.js"
},
"./plugin-sdk/account-resolution": {
"types": "./dist/plugin-sdk/account-resolution.d.ts",
"default": "./dist/plugin-sdk/account-resolution.js"
},
"./plugin-sdk/account-resolution-runtime": {
"types": "./dist/plugin-sdk/account-resolution-runtime.d.ts",
"default": "./dist/plugin-sdk/account-resolution-runtime.js"
},
"./plugin-sdk/agent-config-primitives": {
"types": "./dist/plugin-sdk/agent-config-primitives.d.ts",
"default": "./dist/plugin-sdk/agent-config-primitives.js"
},
"./plugin-sdk/access-groups": {
"types": "./dist/plugin-sdk/access-groups.d.ts",
"default": "./dist/plugin-sdk/access-groups.js"
},
"./plugin-sdk/allow-from": {
"types": "./dist/plugin-sdk/allow-from.d.ts",
"default": "./dist/plugin-sdk/allow-from.js"
},
"./plugin-sdk/allowlist-config-edit": {
"types": "./dist/plugin-sdk/allowlist-config-edit.d.ts",
"default": "./dist/plugin-sdk/allowlist-config-edit.js"
},
"./plugin-sdk/browser-config": {
"types": "./dist/plugin-sdk/browser-config.d.ts",
"default": "./dist/plugin-sdk/browser-config.js"
},
"./plugin-sdk/boolean-param": {
"types": "./dist/plugin-sdk/boolean-param.d.ts",
"default": "./dist/plugin-sdk/boolean-param.js"
},
"./plugin-sdk/dangerous-name-runtime": {
"types": "./dist/plugin-sdk/dangerous-name-runtime.d.ts",
"default": "./dist/plugin-sdk/dangerous-name-runtime.js"
},
"./plugin-sdk/command-auth": {
"types": "./dist/plugin-sdk/command-auth.d.ts",
"default": "./dist/plugin-sdk/command-auth.js"
},
"./plugin-sdk/command-auth-native": {
"types": "./dist/plugin-sdk/command-auth-native.d.ts",
"default": "./dist/plugin-sdk/command-auth-native.js"
},
"./plugin-sdk/command-gating": {
"types": "./dist/plugin-sdk/command-gating.d.ts",
"default": "./dist/plugin-sdk/command-gating.js"
},
"./plugin-sdk/command-primitives-runtime": {
"types": "./dist/plugin-sdk/command-primitives-runtime.d.ts",
"default": "./dist/plugin-sdk/command-primitives-runtime.js"
},
"./plugin-sdk/command-status": {
"types": "./dist/plugin-sdk/command-status.d.ts",
"default": "./dist/plugin-sdk/command-status.js"
},
"./plugin-sdk/command-status-runtime": {
"types": "./dist/plugin-sdk/command-status-runtime.d.ts",
"default": "./dist/plugin-sdk/command-status-runtime.js"
},
"./plugin-sdk/command-detection": {
"types": "./dist/plugin-sdk/command-detection.d.ts",
"default": "./dist/plugin-sdk/command-detection.js"
},
"./plugin-sdk/command-surface": {
"types": "./dist/plugin-sdk/command-surface.d.ts",
"default": "./dist/plugin-sdk/command-surface.js"
},
"./plugin-sdk/collection-runtime": {
"types": "./dist/plugin-sdk/collection-runtime.d.ts",
"default": "./dist/plugin-sdk/collection-runtime.js"
},
"./plugin-sdk/compat": {
"types": "./dist/plugin-sdk/compat.d.ts",
"default": "./dist/plugin-sdk/compat.js"
},
"./plugin-sdk/direct-dm": {
"types": "./dist/plugin-sdk/direct-dm.d.ts",
"default": "./dist/plugin-sdk/direct-dm.js"
},
"./plugin-sdk/direct-dm-access": {
"types": "./dist/plugin-sdk/direct-dm-access.d.ts",
"default": "./dist/plugin-sdk/direct-dm-access.js"
},
"./plugin-sdk/direct-dm-guard-policy": {
"types": "./dist/plugin-sdk/direct-dm-guard-policy.d.ts",
"default": "./dist/plugin-sdk/direct-dm-guard-policy.js"
},
"./plugin-sdk/discord": {
"types": "./dist/plugin-sdk/discord.d.ts",
"default": "./dist/plugin-sdk/discord.js"
},
"./plugin-sdk/mattermost": {
"types": "./dist/plugin-sdk/mattermost.d.ts",
"default": "./dist/plugin-sdk/mattermost.js"
},
"./plugin-sdk/matrix": {
"types": "./dist/plugin-sdk/matrix.d.ts",
"default": "./dist/plugin-sdk/matrix.js"
},
"./plugin-sdk/device-bootstrap": {
"types": "./dist/plugin-sdk/device-bootstrap.d.ts",
"default": "./dist/plugin-sdk/device-bootstrap.js"
},
"./plugin-sdk/diagnostic-runtime": {
"types": "./dist/plugin-sdk/diagnostic-runtime.d.ts",
"default": "./dist/plugin-sdk/diagnostic-runtime.js"
},
"./plugin-sdk/error-runtime": {
"types": "./dist/plugin-sdk/error-runtime.d.ts",
"default": "./dist/plugin-sdk/error-runtime.js"
},
"./plugin-sdk/extension-shared": {
"types": "./dist/plugin-sdk/extension-shared.d.ts",
"default": "./dist/plugin-sdk/extension-shared.js"
},
"./plugin-sdk/channel-config-helpers": {
"types": "./dist/plugin-sdk/channel-config-helpers.d.ts",
"default": "./dist/plugin-sdk/channel-config-helpers.js"
},
"./plugin-sdk/channel-config-writes": {
"types": "./dist/plugin-sdk/channel-config-writes.d.ts",
"default": "./dist/plugin-sdk/channel-config-writes.js"
},
"./plugin-sdk/channel-config-primitives": {
"types": "./dist/plugin-sdk/channel-config-primitives.d.ts",
"default": "./dist/plugin-sdk/channel-config-primitives.js"
},
"./plugin-sdk/channel-config-schema": {
"types": "./dist/plugin-sdk/channel-config-schema.d.ts",
"default": "./dist/plugin-sdk/channel-config-schema.js"
},
"./plugin-sdk/bundled-channel-config-schema": {
"types": "./dist/plugin-sdk/bundled-channel-config-schema.d.ts",
"default": "./dist/plugin-sdk/bundled-channel-config-schema.js"
},
"./plugin-sdk/chat-channel-ids": {
"types": "./dist/plugin-sdk/chat-channel-ids.d.ts",
"default": "./dist/plugin-sdk/chat-channel-ids.js"
},
"./plugin-sdk/channel-config-schema-legacy": {
"types": "./dist/plugin-sdk/channel-config-schema-legacy.d.ts",
"default": "./dist/plugin-sdk/channel-config-schema-legacy.js"
},
"./plugin-sdk/channel-actions": {
"types": "./dist/plugin-sdk/channel-actions.d.ts",
"default": "./dist/plugin-sdk/channel-actions.js"
},
"./plugin-sdk/channel-plugin-common": {
"types": "./dist/plugin-sdk/channel-plugin-common.d.ts",
"default": "./dist/plugin-sdk/channel-plugin-common.js"
},
"./plugin-sdk/channel-core": {
"types": "./dist/plugin-sdk/channel-core.d.ts",
"default": "./dist/plugin-sdk/channel-core.js"
},
"./plugin-sdk/channel-entry-contract": {
"types": "./dist/plugin-sdk/channel-entry-contract.d.ts",
"default": "./dist/plugin-sdk/channel-entry-contract.js"
},
"./plugin-sdk/channel-contract": {
"types": "./dist/plugin-sdk/channel-contract.d.ts",
"default": "./dist/plugin-sdk/channel-contract.js"
},
"./plugin-sdk/channel-envelope": {
"types": "./dist/plugin-sdk/channel-envelope.d.ts",
"default": "./dist/plugin-sdk/channel-envelope.js"
},
"./plugin-sdk/channel-feedback": {
"types": "./dist/plugin-sdk/channel-feedback.d.ts",
"default": "./dist/plugin-sdk/channel-feedback.js"
},
"./plugin-sdk/channel-inbound": {
"types": "./dist/plugin-sdk/channel-inbound.d.ts",
"default": "./dist/plugin-sdk/channel-inbound.js"
},
"./plugin-sdk/channel-inbound-debounce": {
"types": "./dist/plugin-sdk/channel-inbound-debounce.d.ts",
"default": "./dist/plugin-sdk/channel-inbound-debounce.js"
},
"./plugin-sdk/channel-inbound-roots": {
"types": "./dist/plugin-sdk/channel-inbound-roots.d.ts",
"default": "./dist/plugin-sdk/channel-inbound-roots.js"
},
"./plugin-sdk/channel-logging": {
"types": "./dist/plugin-sdk/channel-logging.d.ts",
"default": "./dist/plugin-sdk/channel-logging.js"
},
"./plugin-sdk/channel-location": {
"types": "./dist/plugin-sdk/channel-location.d.ts",
"default": "./dist/plugin-sdk/channel-location.js"
},
"./plugin-sdk/channel-mention-gating": {
"types": "./dist/plugin-sdk/channel-mention-gating.d.ts",
"default": "./dist/plugin-sdk/channel-mention-gating.js"
},
"./plugin-sdk/channel-lifecycle": {
"types": "./dist/plugin-sdk/channel-lifecycle.d.ts",
"default": "./dist/plugin-sdk/channel-lifecycle.js"
},
"./plugin-sdk/channel-ingress": {
"types": "./dist/plugin-sdk/channel-ingress.d.ts",
"default": "./dist/plugin-sdk/channel-ingress.js"
},
"./plugin-sdk/channel-ingress-runtime": {
"types": "./dist/plugin-sdk/channel-ingress-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-ingress-runtime.js"
},
"./plugin-sdk/channel-message": {
"types": "./dist/plugin-sdk/channel-message.d.ts",
"default": "./dist/plugin-sdk/channel-message.js"
},
"./plugin-sdk/channel-message-runtime": {
"types": "./dist/plugin-sdk/channel-message-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-message-runtime.js"
},
"./plugin-sdk/channel-outbound": {
"types": "./dist/plugin-sdk/channel-outbound.d.ts",
"default": "./dist/plugin-sdk/channel-outbound.js"
},
"./plugin-sdk/channel-pairing": {
"types": "./dist/plugin-sdk/channel-pairing.d.ts",
"default": "./dist/plugin-sdk/channel-pairing.js"
},
"./plugin-sdk/channel-pairing-paths": {
"types": "./dist/plugin-sdk/channel-pairing-paths.d.ts",
"default": "./dist/plugin-sdk/channel-pairing-paths.js"
},
"./plugin-sdk/channel-policy": {
"types": "./dist/plugin-sdk/channel-policy.d.ts",
"default": "./dist/plugin-sdk/channel-policy.js"
},
"./plugin-sdk/channel-send-result": {
"types": "./dist/plugin-sdk/channel-send-result.d.ts",
"default": "./dist/plugin-sdk/channel-send-result.js"
},
"./plugin-sdk/channel-route": {
"types": "./dist/plugin-sdk/channel-route.d.ts",
"default": "./dist/plugin-sdk/channel-route.js"
},
"./plugin-sdk/channel-targets": {
"types": "./dist/plugin-sdk/channel-targets.d.ts",
"default": "./dist/plugin-sdk/channel-targets.js"
},
"./plugin-sdk/context-visibility-runtime": {
"types": "./dist/plugin-sdk/context-visibility-runtime.d.ts",
"default": "./dist/plugin-sdk/context-visibility-runtime.js"
},
"./plugin-sdk/file-lock": {
"types": "./dist/plugin-sdk/file-lock.d.ts",
"default": "./dist/plugin-sdk/file-lock.js"
},
"./plugin-sdk/fetch-runtime": {
"types": "./dist/plugin-sdk/fetch-runtime.d.ts",
"default": "./dist/plugin-sdk/fetch-runtime.js"
},
"./plugin-sdk/runtime-fetch": {
"types": "./dist/plugin-sdk/runtime-fetch.d.ts",
"default": "./dist/plugin-sdk/runtime-fetch.js"
},
"./plugin-sdk/inline-image-data-url-runtime": {
"types": "./dist/plugin-sdk/inline-image-data-url-runtime.d.ts",
"default": "./dist/plugin-sdk/inline-image-data-url-runtime.js"
},
"./plugin-sdk/response-limit-runtime": {
"types": "./dist/plugin-sdk/response-limit-runtime.d.ts",
"default": "./dist/plugin-sdk/response-limit-runtime.js"
},
"./plugin-sdk/session-binding-runtime": {
"types": "./dist/plugin-sdk/session-binding-runtime.d.ts",
"default": "./dist/plugin-sdk/session-binding-runtime.js"
},
"./plugin-sdk/session-key-runtime": {
"types": "./dist/plugin-sdk/session-key-runtime.d.ts",
"default": "./dist/plugin-sdk/session-key-runtime.js"
},
"./plugin-sdk/session-store-runtime": {
"types": "./dist/plugin-sdk/session-store-runtime.d.ts",
"default": "./dist/plugin-sdk/session-store-runtime.js"
},
"./plugin-sdk/session-transcript-runtime": {
"types": "./dist/plugin-sdk/session-transcript-runtime.d.ts",
"default": "./dist/plugin-sdk/session-transcript-runtime.js"
},
"./plugin-sdk/sqlite-runtime": {
"types": "./dist/plugin-sdk/sqlite-runtime.d.ts",
"default": "./dist/plugin-sdk/sqlite-runtime.js"
},
"./plugin-sdk/session-transcript-hit": {
"types": "./dist/plugin-sdk/session-transcript-hit.d.ts",
"default": "./dist/plugin-sdk/session-transcript-hit.js"
},
"./plugin-sdk/session-visibility": {
"types": "./dist/plugin-sdk/session-visibility.d.ts",
"default": "./dist/plugin-sdk/session-visibility.js"
},
"./plugin-sdk/ssrf-dispatcher": {
"types": "./dist/plugin-sdk/ssrf-dispatcher.d.ts",
"default": "./dist/plugin-sdk/ssrf-dispatcher.js"
},
"./plugin-sdk/string-coerce-runtime": {
"types": "./dist/plugin-sdk/string-coerce-runtime.d.ts",
"default": "./dist/plugin-sdk/string-coerce-runtime.js"
},
"./plugin-sdk/group-activation": {
"types": "./dist/plugin-sdk/group-activation.d.ts",
"default": "./dist/plugin-sdk/group-activation.js"
},
"./plugin-sdk/group-access": {
"types": "./dist/plugin-sdk/group-access.d.ts",
"default": "./dist/plugin-sdk/group-access.js"
},
"./plugin-sdk/global-singleton": {
"types": "./dist/plugin-sdk/global-singleton.d.ts",
"default": "./dist/plugin-sdk/global-singleton.js"
},
"./plugin-sdk/directory-config-runtime": {
"types": "./dist/plugin-sdk/directory-config-runtime.d.ts",
"default": "./dist/plugin-sdk/directory-config-runtime.js"
},
"./plugin-sdk/directory-runtime": {
"types": "./dist/plugin-sdk/directory-runtime.d.ts",
"default": "./dist/plugin-sdk/directory-runtime.js"
},
"./plugin-sdk/media-generation-runtime-shared": {
"types": "./dist/plugin-sdk/media-generation-runtime-shared.d.ts",
"default": "./dist/plugin-sdk/media-generation-runtime-shared.js"
},
"./plugin-sdk/image-generation": {
"types": "./dist/plugin-sdk/image-generation.d.ts",
"default": "./dist/plugin-sdk/image-generation.js"
},
"./plugin-sdk/image-generation-runtime": {
"types": "./dist/plugin-sdk/image-generation-runtime.d.ts",
"default": "./dist/plugin-sdk/image-generation-runtime.js"
},
"./plugin-sdk/image-generation-core": {
"types": "./dist/plugin-sdk/image-generation-core.d.ts",
"default": "./dist/plugin-sdk/image-generation-core.js"
},
"./plugin-sdk/music-generation": {
"types": "./dist/plugin-sdk/music-generation.d.ts",
"default": "./dist/plugin-sdk/music-generation.js"
},
"./plugin-sdk/music-generation-core": {
"types": "./dist/plugin-sdk/music-generation-core.d.ts",
"default": "./dist/plugin-sdk/music-generation-core.js"
},
"./plugin-sdk/video-generation": {
"types": "./dist/plugin-sdk/video-generation.d.ts",
"default": "./dist/plugin-sdk/video-generation.js"
},
"./plugin-sdk/video-generation-runtime": {
"types": "./dist/plugin-sdk/video-generation-runtime.d.ts",
"default": "./dist/plugin-sdk/video-generation-runtime.js"
},
"./plugin-sdk/video-generation-core": {
"types": "./dist/plugin-sdk/video-generation-core.d.ts",
"default": "./dist/plugin-sdk/video-generation-core.js"
},
"./plugin-sdk/reply-history": {
"types": "./dist/plugin-sdk/reply-history.d.ts",
"default": "./dist/plugin-sdk/reply-history.js"
},
"./plugin-sdk/realtime-transcription": {
"types": "./dist/plugin-sdk/realtime-transcription.d.ts",
"default": "./dist/plugin-sdk/realtime-transcription.js"
},
"./plugin-sdk/realtime-bootstrap-context": {
"types": "./dist/plugin-sdk/realtime-bootstrap-context.d.ts",
"default": "./dist/plugin-sdk/realtime-bootstrap-context.js"
},
"./plugin-sdk/realtime-voice": {
"types": "./dist/plugin-sdk/realtime-voice.d.ts",
"default": "./dist/plugin-sdk/realtime-voice.js"
},
"./plugin-sdk/transcripts": {
"types": "./dist/plugin-sdk/transcripts.d.ts",
"default": "./dist/plugin-sdk/transcripts.js"
},
"./plugin-sdk/media-understanding": {
"types": "./dist/plugin-sdk/media-understanding.d.ts",
"default": "./dist/plugin-sdk/media-understanding.js"
},
"./plugin-sdk/media-understanding-runtime": {
"types": "./dist/plugin-sdk/media-understanding-runtime.d.ts",
"default": "./dist/plugin-sdk/media-understanding-runtime.js"
},
"./plugin-sdk/messaging-targets": {
"types": "./dist/plugin-sdk/messaging-targets.d.ts",
"default": "./dist/plugin-sdk/messaging-targets.js"
},
"./plugin-sdk/request-url": {
"types": "./dist/plugin-sdk/request-url.d.ts",
"default": "./dist/plugin-sdk/request-url.js"
},
"./plugin-sdk/runtime-store": {
"types": "./dist/plugin-sdk/runtime-store.d.ts",
"default": "./dist/plugin-sdk/runtime-store.js"
},
"./plugin-sdk/json-store": {
"types": "./dist/plugin-sdk/json-store.d.ts",
"default": "./dist/plugin-sdk/json-store.js"
},
"./plugin-sdk/persistent-dedupe": {
"types": "./dist/plugin-sdk/persistent-dedupe.d.ts",
"default": "./dist/plugin-sdk/persistent-dedupe.js"
},
"./plugin-sdk/keyed-async-queue": {
"types": "./dist/plugin-sdk/keyed-async-queue.d.ts",
"default": "./dist/plugin-sdk/keyed-async-queue.js"
},
"./plugin-sdk/qa-runner-runtime": {
"types": "./dist/plugin-sdk/qa-runner-runtime.d.ts",
"default": "./dist/plugin-sdk/qa-runner-runtime.js"
},
"./plugin-sdk/qa-live-transport-scenarios": {
"types": "./dist/plugin-sdk/qa-live-transport-scenarios.d.ts",
"default": "./dist/plugin-sdk/qa-live-transport-scenarios.js"
},
"./plugin-sdk/memory-core": {
"types": "./dist/plugin-sdk/memory-core.d.ts",
"default": "./dist/plugin-sdk/memory-core.js"
},
"./plugin-sdk/memory-core-engine-runtime": {
"types": "./dist/plugin-sdk/memory-core-engine-runtime.d.ts",
"default": "./dist/plugin-sdk/memory-core-engine-runtime.js"
},
"./plugin-sdk/memory-core-host-embedding-registry": {
"types": "./dist/plugin-sdk/memory-core-host-embedding-registry.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-embedding-registry.js"
},
"./plugin-sdk/memory-core-host-engine-embeddings": {
"types": "./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-embeddings.js"
},
"./plugin-sdk/memory-core-host-engine-foundation": {
"types": "./dist/plugin-sdk/memory-core-host-engine-foundation.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-foundation.js"
},
"./plugin-sdk/memory-core-host-engine-qmd": {
"types": "./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-qmd.js"
},
"./plugin-sdk/memory-core-host-engine-storage": {
"types": "./dist/plugin-sdk/memory-core-host-engine-storage.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-storage.js"
},
"./plugin-sdk/memory-core-host-multimodal": {
"types": "./dist/plugin-sdk/memory-core-host-multimodal.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-multimodal.js"
},
"./plugin-sdk/memory-core-host-query": {
"types": "./dist/plugin-sdk/memory-core-host-query.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-query.js"
},
"./plugin-sdk/memory-core-host-secret": {
"types": "./dist/plugin-sdk/memory-core-host-secret.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-secret.js"
},
"./plugin-sdk/memory-core-host-events": {
"types": "./dist/plugin-sdk/memory-core-host-events.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-events.js"
},
"./plugin-sdk/memory-core-host-status": {
"types": "./dist/plugin-sdk/memory-core-host-status.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-status.js"
},
"./plugin-sdk/memory-core-host-runtime-cli": {
"types": "./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-runtime-cli.js"
},
"./plugin-sdk/memory-core-host-runtime-core": {
"types": "./dist/plugin-sdk/memory-core-host-runtime-core.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-runtime-core.js"
},
"./plugin-sdk/memory-core-host-runtime-files": {
"types": "./dist/plugin-sdk/memory-core-host-runtime-files.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-runtime-files.js"
},
"./plugin-sdk/memory-host-core": {
"types": "./dist/plugin-sdk/memory-host-core.d.ts",
"default": "./dist/plugin-sdk/memory-host-core.js"
},
"./plugin-sdk/memory-host-events": {
"types": "./dist/plugin-sdk/memory-host-events.d.ts",
"default": "./dist/plugin-sdk/memory-host-events.js"
},
"./plugin-sdk/memory-host-files": {
"types": "./dist/plugin-sdk/memory-host-files.d.ts",
"default": "./dist/plugin-sdk/memory-host-files.js"
},
"./plugin-sdk/memory-host-markdown": {
"types": "./dist/plugin-sdk/memory-host-markdown.d.ts",
"default": "./dist/plugin-sdk/memory-host-markdown.js"
},
"./plugin-sdk/memory-host-search": {
"types": "./dist/plugin-sdk/memory-host-search.d.ts",
"default": "./dist/plugin-sdk/memory-host-search.js"
},
"./plugin-sdk/memory-host-status": {
"types": "./dist/plugin-sdk/memory-host-status.d.ts",
"default": "./dist/plugin-sdk/memory-host-status.js"
},
"./plugin-sdk/message-tool-delivery-hints": {
"types": "./dist/plugin-sdk/message-tool-delivery-hints.d.ts",
"default": "./dist/plugin-sdk/message-tool-delivery-hints.js"
},
"./plugin-sdk/models-provider-runtime": {
"types": "./dist/plugin-sdk/models-provider-runtime.d.ts",
"default": "./dist/plugin-sdk/models-provider-runtime.js"
},
"./plugin-sdk/skill-commands-runtime": {
"types": "./dist/plugin-sdk/skill-commands-runtime.d.ts",
"default": "./dist/plugin-sdk/skill-commands-runtime.js"
},
"./plugin-sdk/native-command-config-runtime": {
"types": "./dist/plugin-sdk/native-command-config-runtime.d.ts",
"default": "./dist/plugin-sdk/native-command-config-runtime.js"
},
"./plugin-sdk/native-command-registry": {
"types": "./dist/plugin-sdk/native-command-registry.d.ts",
"default": "./dist/plugin-sdk/native-command-registry.js"
},
"./plugin-sdk/provider-auth": {
"types": "./dist/plugin-sdk/provider-auth.d.ts",
"default": "./dist/plugin-sdk/provider-auth.js"
},
"./plugin-sdk/provider-oauth-runtime": {
"types": "./dist/plugin-sdk/provider-oauth-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-oauth-runtime.js"
},
"./plugin-sdk/provider-auth-runtime": {
"types": "./dist/plugin-sdk/provider-auth-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-auth-runtime.js"
},
"./plugin-sdk/provider-auth-api-key": {
"types": "./dist/plugin-sdk/provider-auth-api-key.d.ts",
"default": "./dist/plugin-sdk/provider-auth-api-key.js"
},
"./plugin-sdk/provider-auth-result": {
"types": "./dist/plugin-sdk/provider-auth-result.d.ts",
"default": "./dist/plugin-sdk/provider-auth-result.js"
},
"./plugin-sdk/provider-auth-login": {
"types": "./dist/plugin-sdk/provider-auth-login.d.ts",
"default": "./dist/plugin-sdk/provider-auth-login.js"
},
"./plugin-sdk/provider-selection-runtime": {
"types": "./dist/plugin-sdk/provider-selection-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-selection-runtime.js"
},
"./plugin-sdk/plugin-entry": {
"types": "./dist/plugin-sdk/plugin-entry.d.ts",
"default": "./dist/plugin-sdk/plugin-entry.js"
},
"./plugin-sdk/provider-catalog-live-runtime": {
"types": "./dist/plugin-sdk/provider-catalog-live-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-catalog-live-runtime.js"
},
"./plugin-sdk/provider-catalog-runtime": {
"types": "./dist/plugin-sdk/provider-catalog-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-catalog-runtime.js"
},
"./plugin-sdk/provider-catalog-shared": {
"types": "./dist/plugin-sdk/provider-catalog-shared.d.ts",
"default": "./dist/plugin-sdk/provider-catalog-shared.js"
},
"./plugin-sdk/provider-entry": {
"types": "./dist/plugin-sdk/provider-entry.d.ts",
"default": "./dist/plugin-sdk/provider-entry.js"
},
"./plugin-sdk/provider-env-vars": {
"types": "./dist/plugin-sdk/provider-env-vars.d.ts",
"default": "./dist/plugin-sdk/provider-env-vars.js"
},
"./plugin-sdk/provider-http": {
"types": "./dist/plugin-sdk/provider-http.d.ts",
"default": "./dist/plugin-sdk/provider-http.js"
},
"./plugin-sdk/provider-model-types": {
"types": "./dist/plugin-sdk/provider-model-types.d.ts",
"default": "./dist/plugin-sdk/provider-model-types.js"
},
"./plugin-sdk/provider-model-shared": {
"types": "./dist/plugin-sdk/provider-model-shared.d.ts",
"default": "./dist/plugin-sdk/provider-model-shared.js"
},
"./plugin-sdk/provider-onboard": {
"types": "./dist/plugin-sdk/provider-onboard.d.ts",
"default": "./dist/plugin-sdk/provider-onboard.js"
},
"./plugin-sdk/provider-stream-family": {
"types": "./dist/plugin-sdk/provider-stream-family.d.ts",
"default": "./dist/plugin-sdk/provider-stream-family.js"
},
"./plugin-sdk/provider-stream-shared": {
"types": "./dist/plugin-sdk/provider-stream-shared.d.ts",
"default": "./dist/plugin-sdk/provider-stream-shared.js"
},
"./plugin-sdk/provider-transport-runtime": {
"types": "./dist/plugin-sdk/provider-transport-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-transport-runtime.js"
},
"./plugin-sdk/provider-stream": {
"types": "./dist/plugin-sdk/provider-stream.d.ts",
"default": "./dist/plugin-sdk/provider-stream.js"
},
"./plugin-sdk/provider-tools": {
"types": "./dist/plugin-sdk/provider-tools.d.ts",
"default": "./dist/plugin-sdk/provider-tools.js"
},
"./plugin-sdk/provider-usage": {
"types": "./dist/plugin-sdk/provider-usage.d.ts",
"default": "./dist/plugin-sdk/provider-usage.js"
},
"./plugin-sdk/document-extractor": {
"types": "./dist/plugin-sdk/document-extractor.d.ts",
"default": "./dist/plugin-sdk/document-extractor.js"
},
"./plugin-sdk/web-content-extractor": {
"types": "./dist/plugin-sdk/web-content-extractor.d.ts",
"default": "./dist/plugin-sdk/web-content-extractor.js"
},
"./plugin-sdk/provider-web-fetch-contract": {
"types": "./dist/plugin-sdk/provider-web-fetch-contract.d.ts",
"default": "./dist/plugin-sdk/provider-web-fetch-contract.js"
},
"./plugin-sdk/provider-web-fetch": {
"types": "./dist/plugin-sdk/provider-web-fetch.d.ts",
"default": "./dist/plugin-sdk/provider-web-fetch.js"
},
"./plugin-sdk/provider-web-search-config-contract": {
"types": "./dist/plugin-sdk/provider-web-search-config-contract.d.ts",
"default": "./dist/plugin-sdk/provider-web-search-config-contract.js"
},
"./plugin-sdk/provider-web-search-contract": {
"types": "./dist/plugin-sdk/provider-web-search-contract.d.ts",
"default": "./dist/plugin-sdk/provider-web-search-contract.js"
},
"./plugin-sdk/provider-web-search": {
"types": "./dist/plugin-sdk/provider-web-search.d.ts",
"default": "./dist/plugin-sdk/provider-web-search.js"
},
"./plugin-sdk/retry-runtime": {
"types": "./dist/plugin-sdk/retry-runtime.d.ts",
"default": "./dist/plugin-sdk/retry-runtime.js"
},
"./plugin-sdk/run-command": {
"types": "./dist/plugin-sdk/run-command.d.ts",
"default": "./dist/plugin-sdk/run-command.js"
},
"./plugin-sdk/param-readers": {
"types": "./dist/plugin-sdk/param-readers.d.ts",
"default": "./dist/plugin-sdk/param-readers.js"
},
"./plugin-sdk/provider-zai-endpoint": {
"types": "./dist/plugin-sdk/provider-zai-endpoint.d.ts",
"default": "./dist/plugin-sdk/provider-zai-endpoint.js"
},
"./plugin-sdk/secret-input": {
"types": "./dist/plugin-sdk/secret-input.d.ts",
"default": "./dist/plugin-sdk/secret-input.js"
},
"./plugin-sdk/secret-input-runtime": {
"types": "./dist/plugin-sdk/secret-input-runtime.d.ts",
"default": "./dist/plugin-sdk/secret-input-runtime.js"
},
"./plugin-sdk/channel-status": {
"types": "./dist/plugin-sdk/channel-status.d.ts",
"default": "./dist/plugin-sdk/channel-status.js"
},
"./plugin-sdk/status-helpers": {
"types": "./dist/plugin-sdk/status-helpers.d.ts",
"default": "./dist/plugin-sdk/status-helpers.js"
},
"./plugin-sdk/speech": {
"types": "./dist/plugin-sdk/speech.d.ts",
"default": "./dist/plugin-sdk/speech.js"
},
"./plugin-sdk/string-normalization-runtime": {
"types": "./dist/plugin-sdk/string-normalization-runtime.d.ts",
"default": "./dist/plugin-sdk/string-normalization-runtime.js"
},
"./plugin-sdk/state-paths": {
"types": "./dist/plugin-sdk/state-paths.d.ts",
"default": "./dist/plugin-sdk/state-paths.js"
},
"./plugin-sdk/target-resolver-runtime": {
"types": "./dist/plugin-sdk/target-resolver-runtime.d.ts",
"default": "./dist/plugin-sdk/target-resolver-runtime.js"
},
"./plugin-sdk/telegram-account": {
"types": "./dist/plugin-sdk/telegram-account.d.ts",
"default": "./dist/plugin-sdk/telegram-account.js"
},
"./plugin-sdk/telegram-command-config": {
"types": "./dist/plugin-sdk/telegram-command-config.d.ts",
"default": "./dist/plugin-sdk/telegram-command-config.js"
},
"./plugin-sdk/text-autolink-runtime": {
"types": "./dist/plugin-sdk/text-autolink-runtime.d.ts",
"default": "./dist/plugin-sdk/text-autolink-runtime.js"
},
"./plugin-sdk/text-utility-runtime": {
"types": "./dist/plugin-sdk/text-utility-runtime.d.ts",
"default": "./dist/plugin-sdk/text-utility-runtime.js"
},
"./plugin-sdk/tool-plugin": {
"types": "./dist/plugin-sdk/tool-plugin.d.ts",
"default": "./dist/plugin-sdk/tool-plugin.js"
},
"./plugin-sdk/tool-payload": {
"types": "./dist/plugin-sdk/tool-payload.d.ts",
"default": "./dist/plugin-sdk/tool-payload.js"
},
"./plugin-sdk/tool-send": {
"types": "./dist/plugin-sdk/tool-send.d.ts",
"default": "./dist/plugin-sdk/tool-send.js"
},
"./plugin-sdk/webhook-ingress": {
"types": "./dist/plugin-sdk/webhook-ingress.d.ts",
"default": "./dist/plugin-sdk/webhook-ingress.js"
},
"./plugin-sdk/webhook-targets": {
"types": "./dist/plugin-sdk/webhook-targets.d.ts",
"default": "./dist/plugin-sdk/webhook-targets.js"
},
"./plugin-sdk/webhook-request-guards": {
"types": "./dist/plugin-sdk/webhook-request-guards.d.ts",
"default": "./dist/plugin-sdk/webhook-request-guards.js"
},
"./plugin-sdk/webhook-path": {
"types": "./dist/plugin-sdk/webhook-path.d.ts",
"default": "./dist/plugin-sdk/webhook-path.js"
},
"./plugin-sdk/web-media": {
"types": "./dist/plugin-sdk/web-media.d.ts",
"default": "./dist/plugin-sdk/web-media.js"
},
"./plugin-sdk/zalouser": {
"types": "./dist/plugin-sdk/zalouser.d.ts",
"default": "./dist/plugin-sdk/zalouser.js"
},
"./plugin-sdk/zod": {
"types": "./dist/plugin-sdk/zod.d.ts",
"default": "./dist/plugin-sdk/zod.js"
},
"./plugin-sdk/agent-core": {
"types": "./dist/plugin-sdk/agent-core.d.ts",
"default": "./dist/plugin-sdk/agent-core.js"
},
"./plugin-sdk/agent-sessions": {
"types": "./dist/plugin-sdk/agent-sessions.d.ts",
"default": "./dist/plugin-sdk/agent-sessions.js"
},
"./plugin-sdk/llm": {
"types": "./dist/plugin-sdk/llm.d.ts",
"default": "./dist/plugin-sdk/llm.js"
},
"./extension-api": "./dist/extensionAPI.js",
"./cli-entry": "./openclaw.mjs"
},
"scripts": {
"android:assemble": "node scripts/run-android-gradle.mjs :app:assemblePlayDebug",
"android:assemble:third-party": "node scripts/run-android-gradle.mjs :app:assembleThirdPartyDebug",
"android:bundle:release": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:format": "cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat",
"android:install": "node scripts/run-android-gradle.mjs :app:installPlayDebug",
"android:install:third-party": "node scripts/run-android-gradle.mjs :app:installThirdPartyDebug",
"android:lint": "cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck",
"android:lint:android": "node scripts/run-android-gradle.mjs :app:lintDebug",
"android:run": "node scripts/run-android-gradle.mjs :app:installPlayDebug -- adb shell am start -n ai.openclaw.app/.MainActivity",
"android:run:third-party": "node scripts/run-android-gradle.mjs :app:installThirdPartyDebug -- adb shell am start -n ai.openclaw.app/.MainActivity",
"android:release": "bash scripts/android-release.sh",
"android:release:archive": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:release:auth:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android auth_check'",
"android:release:metadata": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android metadata'",
"android:release:preflight": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android release_preflight'",
"android:release:signing:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_check'",
"android:release:signing:plan": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_plan'",
"android:release:signing:sync:pull": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_pull'",
"android:release:signing:sync:push": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_push'",
"android:release:upload": "bash scripts/android-release-upload.sh",
"android:screenshots": "bash scripts/android-screenshots.sh",
"android:test": "node scripts/run-android-gradle.mjs :app:testPlayDebugUnitTest",
"android:test:integration": "node scripts/run-with-env.mjs OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts",
"android:test:third-party": "node scripts/run-android-gradle.mjs :app:testThirdPartyDebugUnitTest",
"android:version": "node --import tsx scripts/android-version.ts --json",
"android:version:check": "node --import tsx scripts/android-sync-versioning.ts --check",
"android:version:pin": "node --import tsx scripts/android-pin-version.ts",
"android:version:sync": "node --import tsx scripts/android-sync-versioning.ts --write",
"audit:seams": "node scripts/audit-seams.mjs",
"build": "node scripts/build-all.mjs",
"build:ci-artifacts": "node scripts/build-all.mjs ciArtifacts",
"build:docker": "node scripts/tsdown-build.mjs && node scripts/check-cli-bootstrap-imports.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node scripts/runtime-postbuild-stamp.mjs && pnpm plugins:assets:build && pnpm plugins:assets:copy && node --experimental-strip-types scripts/copy-hook-metadata.ts && node --experimental-strip-types scripts/copy-export-html-templates.ts && node --experimental-strip-types scripts/write-build-info.ts && node --experimental-strip-types scripts/write-cli-startup-metadata.ts && node --experimental-strip-types scripts/write-cli-compat.ts",
"build:plugin-sdk:dts": "node scripts/run-tsgo.mjs -p tsconfig.plugin-sdk.dts.json --declaration true",
"build:plugin-sdk:strict-smoke": "pnpm build:plugin-sdk:dts && node --experimental-strip-types scripts/write-plugin-sdk-entry-dts.ts",
"build:strict-smoke": "pnpm plugins:assets:build && node scripts/tsdown-build.mjs && node scripts/check-cli-bootstrap-imports.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node scripts/runtime-postbuild-stamp.mjs && pnpm build:plugin-sdk:dts && node --experimental-strip-types scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs",
"canvas:a2ui:bundle": "node scripts/bundle-a2ui.mjs",
"canvas:a2ui:native:check": "node scripts/sync-native-a2ui.mjs --check",
"canvas:a2ui:native:sync": "node scripts/sync-native-a2ui.mjs --write",
"changed:lanes": "node scripts/changed-lanes.mjs",
"check": "node scripts/check.mjs",
"check:architecture": "pnpm check:import-cycles && pnpm check:madge-import-cycles && pnpm check:deprecated-api-usage && pnpm check:deprecated-jsdoc && pnpm db:kysely:check && pnpm lint:kysely && pnpm check:database-first-legacy-stores",
"check:base-config-schema": "node --import tsx scripts/generate-base-config-schema.ts --check",
"check:bundled-channel-config-metadata": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check",
"check:changed": "node scripts/check-changed.mjs",
"check:changelog-attributions": "node scripts/check-changelog-attributions.mjs",
"check:database-first-legacy-stores": "node scripts/check-database-first-legacy-stores.mjs",
"check:deprecated-api-usage": "node scripts/check-deprecated-api-usage.mjs",
"check:deprecated-jsdoc": "node scripts/check-deprecated-jsdoc.mjs",
"check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-mdx && pnpm docs:check-i18n-glossary && pnpm docs:check-links",
"check:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --check",
"check:import-cycles": "node --import tsx scripts/check-import-cycles.ts",
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
"check:madge-import-cycles": "node --import tsx scripts/check-madge-import-cycles.ts",
"check:media-download-helpers": "node scripts/check-media-download-helper-roundtrip.mjs",
"check:no-conflict-markers": "node scripts/check-no-conflict-markers.mjs",
"check:no-runtime-action-load-config": "node scripts/check-no-runtime-action-load-config.mjs",
"check:opengrep-rule-metadata": "node security/opengrep/check-rule-metadata.mjs",
"check:runtime-sidecar-loaders": "node --import tsx scripts/check-runtime-sidecar-loaders.mjs",
"check:static-import-sccs": "pnpm check:madge-import-cycles",
"check:temp-path-guardrails": "node --import tsx scripts/check-temp-path-guardrails.ts",
"check:test-types": "pnpm tsgo:test",
"check:timed": "node scripts/check-timed.mjs",
"check:timed:all-types": "node scripts/check-timed.mjs --include-test-types",
"check:timed:architecture": "node scripts/check-timed.mjs --include-architecture",
"check:workflows": "node scripts/check-workflows.mjs",
"ci:full-release": "node scripts/full-release-validation-at-sha.mjs",
"ci:timings": "node scripts/ci-run-timings.mjs --latest-main",
"ci:timings:recent": "node scripts/ci-run-timings.mjs --recent 10",
"clean:dist": "node -e \"require('fs').rmSync('dist', {recursive: true, force: true})\"",
"codex-app-server:protocol:check": "node --import tsx scripts/check-codex-app-server-protocol.ts",
"codex-app-server:protocol:sync": "node --import tsx scripts/sync-codex-app-server-protocol.ts",
"codex-supervisor:mcp": "node --import tsx extensions/codex-supervisor/src/mcp-serve.ts",
"config:channels:check": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check",
"config:channels:gen": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write",
"config:docs:check": "node --import tsx scripts/generate-config-doc-baseline.ts --check",
"config:docs:gen": "node --import tsx scripts/generate-config-doc-baseline.ts --write",
"config:schema:check": "node --import tsx scripts/generate-base-config-schema.ts --check",
"config:schema:gen": "node --import tsx scripts/generate-base-config-schema.ts --write",
"crabbox:hydrate": "node scripts/crabbox-wrapper.mjs actions hydrate",
"crabbox:run": "node scripts/crabbox-wrapper.mjs run",
"crabbox:stop": "node scripts/crabbox-wrapper.mjs stop",
"crabbox:warmup": "node scripts/crabbox-wrapper.mjs warmup",
"deadcode:ci": "pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-unused",
"deadcode:dependencies": "pnpm --config.minimum-release-age=0 dlx --package knip@6.8.0 knip --config config/knip.config.ts --production --no-progress --reporter compact --dependencies --no-config-hints",
"deadcode:knip": "pnpm --config.minimum-release-age=0 dlx --package knip@6.8.0 knip --config config/knip.config.ts --production --no-progress --reporter compact --files --dependencies",
"deadcode:report": "pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused",
"deadcode:report:ci:knip": "mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true",
"deadcode:report:ci:ts-prune": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true",
"deadcode:report:ci:ts-unused": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true",
"deadcode:ts-prune": "pnpm dlx ts-prune src extensions scripts",
"deadcode:ts-unused": "pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount",
"deadcode:unused-files": "node scripts/check-deadcode-unused-files.mjs",
"deps:root-ownership": "node scripts/root-dependency-ownership-audit.mjs",
"deps:root-ownership:check": "node scripts/root-dependency-ownership-audit.mjs --check",
"deps:changes:report": "node scripts/dependency-changes-report.mjs",
"deps:patches:check": "node scripts/check-package-patches.mjs",
"deps:pins:check": "node scripts/check-dependency-pins.mjs",
"deps:shrinkwrap:check": "node scripts/generate-npm-shrinkwrap.mjs --all --check",
"deps:shrinkwrap:changed:check": "node scripts/generate-npm-shrinkwrap.mjs --changed --check",
"deps:shrinkwrap:changed:generate": "node scripts/generate-npm-shrinkwrap.mjs --changed",
"deps:shrinkwrap:generate": "node scripts/generate-npm-shrinkwrap.mjs --all",
"deps:shrinkwrap:root:check": "node scripts/generate-npm-shrinkwrap.mjs --check",
"deps:shrinkwrap:root:generate": "node scripts/generate-npm-shrinkwrap.mjs",
"deps:ownership-surface:check": "node scripts/dependency-ownership-surface-report.mjs --check",
"deps:ownership-surface:report": "node scripts/dependency-ownership-surface-report.mjs",
"deps:transitive-risk:report": "node scripts/transitive-manifest-risk-report.mjs",
"deps:vuln:gate": "node scripts/dependency-vulnerability-gate.mjs",
"db:kysely:check": "node scripts/generate-kysely-types.mjs --verify",
"db:kysely:gen": "node scripts/generate-kysely-types.mjs",
"dev": "node scripts/run-node.mjs",
"dev:ui:mock": "node --import tsx scripts/control-ui-mock-dev.ts",
"docs:bin": "node scripts/build-docs-list.mjs",
"docs:check-i18n-glossary": "node scripts/check-docs-i18n-glossary.mjs",
"docs:check-links": "node scripts/docs-link-audit.mjs",
"docs:check-links:anchors": "node scripts/docs-link-audit.mjs --anchors",
"docs:check-mdx": "node scripts/check-docs-mdx.mjs docs README.md",
"docs:dev": "cd docs && mint dev",
"docs:list": "node scripts/docs-list.js",
"docs:spellcheck": "bash scripts/docs-spellcheck.sh",
"docs:spellcheck:fix": "bash scripts/docs-spellcheck.sh --write",
"maturity:check": "node --import tsx scripts/qa/render-maturity-docs.ts --check",
"maturity:render": "node --import tsx scripts/qa/render-maturity-docs.ts",
"dup:check": "node scripts/check-duplicates.mjs",
"dup:check:coverage": "node scripts/check-duplicates.mjs --coverage",
"dup:check:json": "node scripts/check-duplicates.mjs --json",
"format": "oxfmt --write --threads=1",
"format:all": "pnpm format && pnpm format:swift",
"format:check": "oxfmt --check --threads=1",
"format:diff": "oxfmt --write --threads=1 && git --no-pager diff",
"format:docs": "node scripts/format-docs.mjs",
"format:docs:check": "node scripts/format-docs.mjs --check",
"format:fix": "oxfmt --write --threads=1",
"format:swift": "swiftformat --lint --config config/swiftformat --exclude '**/apps/swabble,**/apps/android,**/apps/ios,**/apps/shared,**/OpenClawProtocol,**/HostEnvSecurityPolicy.generated.swift' apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
"gateway:dev": "node scripts/run-with-env.mjs OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway",
"gateway:dev:reset": "node scripts/run-with-env.mjs OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset",
"gateway:watch": "node scripts/gateway-watch-tmux.mjs gateway --force",
"gateway:watch:raw": "node scripts/watch-node.mjs gateway --force",
"gen:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --write",
"ghsa:patch": "node scripts/ghsa-patch.mjs",
"ios:app-review-notes:pdf": "xcrun swift scripts/ios-app-review-notes-pdf.swift apps/ios/APP-REVIEW-NOTES.md apps/ios/build/app-review/APP-REVIEW-NOTES.pdf",
"ios:build": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
"ios:gen": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'",
"ios:open": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'",
"ios:release:archive": "bash scripts/ios-release-archive.sh",
"ios:release:prepare": "bash scripts/ios-release-prepare.sh",
"ios:release:signing:check": "bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_check'",
"ios:release:signing:plan": "bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_plan'",
"ios:release:signing:setup": "bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_setup'",
"ios:release:signing:sync:pull": "bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_pull'",
"ios:release:signing:sync:push": "bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_push'",
"ios:release:upload": "bash scripts/ios-release-upload.sh",
"ios:run": "bash scripts/ios-run.sh",
"ios:screenshots": "bash scripts/ios-screenshots.sh",
"ios:version": "node --import tsx scripts/ios-version.ts --json",
"ios:version:check": "node --import tsx scripts/ios-sync-versioning.ts --check",
"ios:version:pin": "node --import tsx scripts/ios-pin-version.ts",
"ios:version:sync": "node --import tsx scripts/ios-sync-versioning.ts --write",
"leak:embedded-run": "node --import tsx --expose-gc scripts/embedded-run-abort-leak.ts",
"lint": "node scripts/run-oxlint-shards.mjs",
"lint:agent:ingress-owner": "node scripts/check-ingress-agent-owner-context.mjs",
"lint:all": "node scripts/run-oxlint.mjs",
"lint:apps": "pnpm lint:swift",
"lint:auth:no-pairing-store-group": "node scripts/check-no-pairing-store-group-auth.mjs",
"lint:auth:pairing-account-scope": "node scripts/check-pairing-account-scope.mjs",
"lint:core": "node scripts/run-oxlint-shards.mjs --only=core --split-core",
"lint:docker-e2e": "node scripts/check-docker-e2e-boundaries.mjs",
"lint:kysely": "node scripts/check-kysely-guardrails.mjs",
"lint:docs": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc",
"lint:docs:fix": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc --fix",
"lint:extensions:no-deprecated-channel-access": "node --import tsx scripts/check-no-deprecated-channel-access.ts",
"lint:extensions:telegram-grammy-types": "node scripts/check-telegram-grammy-types-imports.mjs",
"lint:extensions": "node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.extensions.json extensions",
"lint:extensions:bundled": "node scripts/run-bundled-extension-oxlint.mjs",
"lint:extensions:channels": "node scripts/run-extension-channel-oxlint.mjs",
"lint:extensions:no-guarded-wildcard-reexports": "node scripts/check-extension-wildcard-reexports.mjs",
"lint:extensions:no-plugin-sdk-internal": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal",
"lint:extensions:no-plugin-sdk-wildcard-reexports": "node scripts/check-plugin-sdk-wildcard-reexports.mjs",
"lint:extensions:no-relative-outside-package": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package",
"lint:extensions:no-src-outside-plugin-sdk": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk",
"lint:fix": "node scripts/run-oxlint.mjs --fix && pnpm format",
"lint:plugins:no-extension-imports": "node scripts/check-plugin-extension-import-boundary.mjs",
"lint:plugins:no-extension-src-imports": "node --import tsx scripts/check-no-extension-src-imports.ts",
"lint:plugins:no-extension-test-core-imports": "node --import tsx scripts/check-no-extension-test-core-imports.ts",
"lint:plugins:no-monolithic-plugin-sdk-entry-imports": "node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts",
"lint:plugins:no-register-http-handler": "node scripts/check-no-register-http-handler.mjs",
"lint:plugins:plugin-sdk-subpaths-exported": "node scripts/check-plugin-sdk-subpath-exports.mjs",
"lint:scripts": "pnpm lint:docker-e2e && pnpm lint:tmp:no-raw-http2-imports && node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.scripts.json scripts",
"lint:swift": "swiftlint lint --config config/swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
"lint:tmp:channel-agnostic-boundaries": "node scripts/check-channel-agnostic-boundaries.mjs",
"lint:tmp:dynamic-import-warts": "node scripts/check-dynamic-import-warts.mjs",
"lint:tmp:no-random-messaging": "node scripts/check-no-random-messaging-tmp.mjs",
"lint:tmp:no-raw-channel-fetch": "node scripts/check-no-raw-channel-fetch.mjs",
"lint:tmp:no-raw-http2-imports": "node scripts/check-no-raw-http2-imports.mjs",
"lint:tmp:session-accessor-boundary": "node scripts/check-session-accessor-boundary.mjs",
"lint:tmp:session-transcript-reader-boundary": "node scripts/check-session-transcript-reader-boundary.mjs",
"lint:tmp:tsgo-core-boundary": "node scripts/check-tsgo-core-boundary.mjs",
"lint:ui:no-raw-window-open": "node scripts/check-no-raw-window-open.mjs",
"lint:web-fetch-provider-boundaries": "node scripts/check-web-fetch-provider-boundaries.mjs",
"lint:web-search-provider-boundaries": "node scripts/check-web-search-provider-boundaries.mjs",
"lint:webhook:no-low-level-body-read": "node scripts/check-webhook-auth-body-order.mjs",
"mac:open": "open dist/OpenClaw.app",
"mac:package": "bash scripts/package-mac-app.sh",
"mac:restart": "bash scripts/restart-mac.sh",
"openclaw": "node scripts/run-node.mjs",
"openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
"perf:issue-78851": "node --import tsx scripts/perf/issue-78851-model-resolution.ts",
"perf:kova:summary": "node scripts/kova-ci-summary.mjs",
"perf:source:summary": "node scripts/openclaw-performance-source-summary.mjs",
"plugin-sdk:api:check": "node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check",
"plugin-sdk:api:gen": "node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write",
"plugin-sdk:check-exports": "node scripts/sync-plugin-sdk-exports.mjs --check",
"plugin-sdk:surface": "node --max-old-space-size=8192 scripts/plugin-sdk-surface-report.mjs",
"plugin-sdk:surface:check": "node --max-old-space-size=8192 scripts/plugin-sdk-surface-report.mjs --check",
"plugin-sdk:sync-exports": "node scripts/sync-plugin-sdk-exports.mjs",
"plugin-sdk:usage": "node --max-old-space-size=8192 --import tsx scripts/analyze-plugin-sdk-usage.ts",
"plugins:boundary-report": "node --import tsx scripts/plugin-boundary-report.ts",
"plugins:boundary-report:ci": "node --import tsx scripts/plugin-boundary-report.ts --summary --fail-on-cross-owner --fail-on-unclassified-unused-reserved --fail-on-eligible-compat",
"plugins:boundary-report:json": "node --import tsx scripts/plugin-boundary-report.ts --json",
"plugins:boundary-report:summary": "node --import tsx scripts/plugin-boundary-report.ts --summary",
"plugins:assets:build": "node scripts/bundled-plugin-assets.mjs --phase build",
"plugins:assets:copy": "node scripts/bundled-plugin-assets.mjs --phase copy",
"plugins:inventory:check": "node scripts/generate-plugin-inventory-doc.mjs --check",
"plugins:inventory:gen": "node scripts/generate-plugin-inventory-doc.mjs --write",
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
"plugins:sync:check": "node --import tsx scripts/sync-plugin-versions.ts --check",
"postinstall": "node scripts/postinstall-bundled-plugins.mjs",
"postpack": "node scripts/package-changelog.mjs restore",
"preinstall": "node scripts/preinstall-package-manager-warning.mjs",
"prepack": "node --import tsx scripts/openclaw-prepack.ts",
"prepare": "node scripts/prepare-git-hooks.mjs",
"prepush:ci": "bash scripts/prepush-ci.sh",
"probe:anthropic:prompt": "node --import tsx scripts/anthropic-prompt-probe.ts",
"prompt:snapshots:check": "node --import tsx scripts/generate-prompt-snapshots.ts --check",
"prompt:snapshots:gen": "node --import tsx scripts/generate-prompt-snapshots.ts --write",
"prompt:snapshots:sync-codex-model": "node --import tsx scripts/sync-codex-model-prompt-fixture.ts",
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift",
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
"proxy:coverage": "node scripts/run-node.mjs proxy coverage",
"proxy:gateway": "node scripts/run-node.mjs proxy run -- node scripts/run-node.mjs gateway",
"proxy:install-ca": "node --import tsx scripts/proxy-install-ca.mjs",
"proxy:run": "node scripts/run-node.mjs proxy run",
"proxy:start": "node scripts/run-node.mjs proxy start",
"qa:e2e": "node --import tsx scripts/qa-e2e.ts",
"qa:lab:build": "vite build --config extensions/qa-lab/web/vite.config.ts",
"qa:lab:ui": "pnpm openclaw qa ui",
"qa:lab:up": "node --import tsx scripts/qa-lab-up.ts",
"qa:lab:up:fast": "node --import tsx scripts/qa-lab-up.ts --use-prebuilt-image --bind-ui-dist --skip-ui-build",
"qa:lab:watch": "vite build --watch --config extensions/qa-lab/web/vite.config.ts",
"qa:observability:collector-smoke": "pnpm qa:otel:collector-smoke && pnpm qa:prometheus:smoke",
"qa:observability:smoke": "pnpm qa:otel:smoke && pnpm qa:prometheus:smoke",
"qa:otel:collector-smoke": "node --import tsx test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts --collector docker",
"qa:otel:smoke": "node --import tsx test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts",
"qa:prometheus:smoke": "node scripts/run-node.mjs qa suite --provider-mode mock-openai --scenario docker-prometheus-smoke --concurrency 1 --fast",
"release-metadata:check": "node scripts/check-release-metadata-only.mjs",
"release:beta": "node scripts/release-candidate-checklist.mjs",
"release:beta-smoke": "node --import tsx scripts/release-beta-smoke.ts",
"release:candidate": "node scripts/release-candidate-checklist.mjs",
"release:check": "pnpm release:generated:check && node --import tsx scripts/release-check.ts",
"release:fast-pretag-check": "bash scripts/release-fast-pretag-check.sh",
"release:generated:check": "node scripts/release-preflight.mjs --check",
"release:openclaw:npm:check": "node --import tsx scripts/openclaw-npm-release-check.ts",
"release:openclaw:npm:verify-published": "node --import tsx scripts/openclaw-npm-postpublish-verify.ts",
"release:plugins:clawhub:check": "node --import tsx scripts/plugin-clawhub-release-check.ts",
"release:plugins:clawhub:plan": "node --import tsx scripts/plugin-clawhub-release-plan.ts",
"release:plugins:npm:check": "node --import tsx scripts/plugin-npm-release-check.ts",
"release:plugins:npm:plan": "node --import tsx scripts/plugin-npm-release-plan.ts",
"release:verify-beta": "node --import tsx scripts/release-verify-beta.ts",
"release:prep": "node scripts/release-preflight.mjs --fix",
"runtime-sidecars:check": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --check",
"runtime-sidecars:gen": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --write",
"start": "node openclaw.mjs",
"test": "node scripts/test-projects.mjs",
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
"test:auth:compat": "node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts && node scripts/run-vitest.mjs run packages/gateway-protocol/src/connect-error-details.test.ts",
"test:build:singleton": "node scripts/test-built-plugin-singleton.mjs",
"test:build:status-message-runtime": "node scripts/test-built-status-message-runtime.mjs",
"test:bundled": "node scripts/run-vitest.mjs run --config test/vitest/vitest.bundled.config.ts",
"test:changed": "node scripts/test-projects.mjs --changed origin/main",
"test:changed:max": "node scripts/test-projects-max.mjs --changed origin/main",
"test:channels": "node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts",
"test:contracts": "pnpm test:contracts:channels && pnpm test:contracts:plugins",
"test:contracts:channels": "node scripts/test-projects.mjs --maxWorkers=1 test/vitest/vitest.contracts-channel-surface.config.ts test/vitest/vitest.contracts-channel-config.config.ts test/vitest/vitest.contracts-channel-registry.config.ts test/vitest/vitest.contracts-channel-session.config.ts",
"test:contracts:plugins": "node scripts/run-vitest.mjs run --config test/vitest/vitest.contracts-plugin.config.ts --maxWorkers=1",
"test:coverage": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage",
"test:coverage:changed": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage --changed origin/main",
"test:docker:agent-bundle-mcp-tools": "bash scripts/e2e/agent-bundle-mcp-tools-docker.sh",
"test:docker:agents-delete-shared-workspace": "bash scripts/e2e/agents-delete-shared-workspace-docker.sh",
"test:docker:all": "node scripts/test-docker-all.mjs",
"test:docker:browser-cdp-snapshot": "bash scripts/e2e/browser-cdp-snapshot-docker.sh",
"test:docker:bundled-plugin-install-uninstall": "bash scripts/e2e/bundled-plugin-install-uninstall-docker.sh",
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
"test:docker:commitments-safety": "bash scripts/e2e/commitments-safety-docker.sh",
"test:docker:config-reload": "bash scripts/e2e/config-reload-source-docker.sh",
"test:docker:crestodian-first-run": "bash scripts/e2e/crestodian-first-run-docker.sh",
"test:docker:crestodian-planner": "bash scripts/e2e/crestodian-planner-docker.sh",
"test:docker:crestodian-rescue": "bash scripts/e2e/crestodian-rescue-docker.sh",
"test:docker:cron-mcp-cleanup": "bash scripts/e2e/cron-mcp-cleanup-docker.sh",
"test:docker:codex-media-path": "bash scripts/e2e/codex-media-path-docker.sh",
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
"test:docker:e2e-build": "bash scripts/e2e/build-image.sh",
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
"test:docker:kitchen-sink-plugin": "bash scripts/e2e/kitchen-sink-plugin-docker.sh",
"test:docker:kitchen-sink-rpc": "bash scripts/e2e/kitchen-sink-rpc-docker.sh",
"test:docker:live-acp-bind": "bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:claude": "OPENCLAW_LIVE_ACP_BIND_AGENT=claude bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:codex": "OPENCLAW_LIVE_ACP_BIND_AGENT=codex bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:droid": "OPENCLAW_LIVE_ACP_BIND_AGENT=droid OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:gemini": "OPENCLAW_LIVE_ACP_BIND_AGENT=gemini bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:opencode": "OPENCLAW_LIVE_ACP_BIND_AGENT=opencode OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-build": "bash scripts/test-live-build-docker.sh",
"test:docker:live-cli-backend": "bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude-subscription": "OPENCLAW_LIVE_CLI_BACKEND_AUTH=subscription OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_DISABLE_MCP_CONFIG=1 OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=0 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-codex-bind": "OPENCLAW_LIVE_CODEX_BIND=1 OPENCLAW_LIVE_CODEX_TEST_FILES=src/gateway/gateway-codex-bind.live.test.ts bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-harness": "bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-media-path": "OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key OPENCLAW_LIVE_CODEX_HARNESS_CHAT_IMAGE_PROBE=1 OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-npm-plugin": "bash scripts/e2e/codex-npm-plugin-live-docker.sh",
"test:docker:live-plugin-tool": "bash scripts/e2e/live-plugin-tool-docker.sh",
"test:docker:live-subagent-announce": "bash scripts/test-live-subagent-announce-docker.sh",
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:claude": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=claude-cli OPENCLAW_LIVE_GATEWAY_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:gemini": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_GATEWAY_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-live-docker.sh",
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
"test:docker:live-models:claude": "OPENCLAW_LIVE_PROVIDERS=claude-cli OPENCLAW_LIVE_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-models-docker.sh",
"test:docker:live-models:gemini": "OPENCLAW_LIVE_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-models-docker.sh",
"test:docker:live:all": "node scripts/run-with-env.mjs OPENCLAW_DOCKER_ALL_LIVE_MODE=only -- node scripts/test-docker-all.mjs",
"test:docker:local:all": "node scripts/run-with-env.mjs OPENCLAW_DOCKER_ALL_LIVE_MODE=skip -- node scripts/test-docker-all.mjs",
"test:docker:mcp-channels": "bash scripts/e2e/mcp-channels-docker.sh",
"test:docker:mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-docker.sh",
"test:docker:multi-node-update": "bash scripts/e2e/multi-node-update-docker.sh",
"test:docker:codex-on-demand": "bash scripts/e2e/codex-on-demand-docker.sh",
"test:docker:npm-onboard-channel-agent": "bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-discord-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=discord bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-slack-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=slack bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-telegram-live": "bash scripts/e2e/npm-telegram-live-docker.sh",
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
"test:docker:release-user-journey": "bash scripts/e2e/release-user-journey-docker.sh",
"test:docker:release-typed-onboarding": "bash scripts/e2e/release-typed-onboarding-docker.sh",
"test:docker:release-media-memory": "bash scripts/e2e/release-media-memory-docker.sh",
"test:docker:release-upgrade-user-journey": "bash scripts/e2e/release-upgrade-user-journey-docker.sh",
"test:docker:release-plugin-marketplace": "bash scripts/e2e/release-plugin-marketplace-docker.sh",
"test:docker:openai-chat-tools": "bash scripts/e2e/openai-chat-tools-docker.sh",
"test:docker:openai-image-auth": "bash scripts/e2e/openai-image-auth-docker.sh",
"test:docker:openai-web-search-minimal": "bash scripts/e2e/openai-web-search-minimal-docker.sh",
"test:docker:openwebui": "bash scripts/e2e/openwebui-docker.sh",
"test:docker:plugin-binding-command-escape": "bash scripts/e2e/plugin-binding-command-escape-docker.sh",
"test:docker:plugin-lifecycle-matrix": "bash scripts/e2e/plugin-lifecycle-matrix-docker.sh",
"test:docker:plugin-update": "bash scripts/e2e/plugin-update-unchanged-docker.sh",
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
"test:docker:published-upgrade-survivor": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@latest} OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
"test:docker:rerun": "node scripts/docker-e2e-rerun.mjs",
"test:docker:root-managed-vps-upgrade": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_ROOT_MANAGED_VPS=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@2026.5.7} OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:session-runtime-context": "bash scripts/e2e/session-runtime-context-docker.sh",
"test:docker:skill-install": "bash scripts/e2e/skill-install-docker.sh",
"test:docker:timings": "node scripts/docker-e2e-timings.mjs",
"test:docker:update-channel-switch": "bash scripts/e2e/update-channel-switch-docker.sh",
"test:docker:update-corrupt-plugin": "bash scripts/e2e/update-corrupt-plugin-docker.sh",
"test:docker:update-migration": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@2026.4.23} OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=${OPENCLAW_UPGRADE_SURVIVOR_SCENARIO:-plugin-deps-cleanup} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:update-restart-auth": "env OPENCLAW_UPGRADE_SURVIVOR_UPDATE_RESTART_MODE=auto-auth OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:upgrade-survivor": "bash scripts/e2e/upgrade-survivor-docker.sh",
"test:env-mutations:report": "node --import tsx scripts/test-env-mutation-report.ts",
"test:e2e": "pnpm test:e2e:gateway && pnpm test:ui:e2e",
"test:e2e:gateway": "node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts",
"test:e2e:openshell": "node scripts/run-with-env.mjs OPENCLAW_E2E_OPENSHELL=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts extensions/openshell/src/backend.e2e.test.ts",
"test:e2e:status-corrupt-plugin-deps": "bash scripts/e2e/status-corrupt-plugin-deps.sh",
"test:extension": "node scripts/test-extension.mjs",
"test:extensions": "node scripts/test-projects.mjs extensions",
"test:extensions:batch": "node scripts/test-extension-batch.mjs",
"test:extensions:memory": "node scripts/profile-extension-memory.mjs",
"test:extensions:package-boundary": "node scripts/check-extension-package-tsc-boundary.mjs",
"test:extensions:package-boundary:canary": "node scripts/check-extension-package-tsc-boundary.mjs --mode=canary",
"test:extensions:package-boundary:compile": "node scripts/check-extension-package-tsc-boundary.mjs --mode=compile",
"test:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:force": "node --import tsx scripts/test-force.ts",
"test:gateway": "node scripts/run-with-env.mjs OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts",
"test:gateway:cpu-scenarios": "node scripts/check-gateway-cpu-scenarios.mjs",
"test:gateway:memory-fd-repro": "node scripts/check-memory-fd-repro.mjs",
"test:gateway:watch-regression": "node scripts/check-gateway-watch-regression.mjs",
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
"test:live": "node scripts/test-live.mjs",
"test:live:cache": "node scripts/run-with-env.mjs OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 -- node --import tsx scripts/check-live-cache.ts",
"test:live:codex-harness": "node scripts/test-live.mjs --codex-harness -- src/gateway/gateway-codex-harness.live.test.ts",
"test:live:crestodian-rescue-channel": "node scripts/run-with-env.mjs OPENCLAW_LIVE_CRESTODIAN_RESCUE_CHANNEL=1 -- node scripts/test-live.mjs -- src/crestodian/rescue-channel.live.test.ts",
"test:live:gateway-profiles": "node scripts/test-live.mjs -- src/gateway/gateway-models.profiles.live.test.ts",
"test:live:media": "node --import tsx scripts/test-live-media.ts",
"test:live:media:image": "node --import tsx scripts/test-live-media.ts image",
"test:live:media:music": "node --import tsx scripts/test-live-media.ts music",
"test:live:media:video": "node --import tsx scripts/test-live-media.ts video",
"test:live:models-profiles": "node scripts/test-live.mjs -- src/agents/models.profiles.live.test.ts",
"test:macos:ci": "node scripts/test-projects.mjs src/daemon/launchd.test.ts src/daemon/runtime-paths.test.ts src/daemon/runtime-binary.test.ts src/infra/brew.test.ts src/infra/stable-node-path.test.ts test/scripts/vitest-process-group.test.ts test/scripts/package-mac-app.test.ts test/scripts/package-mac-dist.test.ts test/scripts/create-dmg.test.ts test/scripts/codesign-mac-app.test.ts test/scripts/notarize-mac-artifact.test.ts",
"test:max": "node scripts/test-projects-max.mjs",
"test:parallels:linux": "bash scripts/e2e/parallels-linux-smoke.sh",
"test:parallels:macos": "bash scripts/e2e/parallels-macos-smoke.sh",
"test:parallels:npm-update": "bash scripts/e2e/parallels-npm-update-smoke.sh",
"test:parallels:windows": "bash scripts/e2e/parallels-windows-smoke.sh",
"test:perf:budget": "node scripts/test-perf-budget.mjs",
"test:perf:changed:bench": "node scripts/bench-test-changed.mjs",
"test:perf:groups": "node scripts/test-group-report.mjs",
"test:perf:groups:compare": "node scripts/test-group-report.mjs --compare",
"test:perf:hotspots": "node scripts/test-hotspots.mjs",
"test:perf:imports": "node scripts/test-projects-imports.mjs",
"test:perf:imports:changed": "node scripts/test-projects-imports.mjs --changed origin/main",
"test:perf:profile:main": "node scripts/run-vitest-profile.mjs main",
"test:perf:profile:runner": "node scripts/run-vitest-profile.mjs runner",
"test:sqlite:perf": "node --import tsx scripts/bench-sqlite-state.ts --profile default --output .artifacts/sqlite-perf/default.json",
"test:sqlite:perf:large": "node --import tsx scripts/bench-sqlite-state.ts --profile large --output .artifacts/sqlite-perf/large.json",
"test:sqlite:perf:smoke": "node --import tsx scripts/bench-sqlite-state.ts --profile smoke --output .artifacts/sqlite-perf/smoke.json",
"test:plugins:gateway-gauntlet": "node scripts/check-plugin-gateway-gauntlet.mjs",
"test:plugins:kitchen-sink-live": "bash -lc 'if [ -x \"$HOME/.local/bin/openclaw-testbox-env\" ]; then exec \"$HOME/.local/bin/openclaw-testbox-env\" pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai; fi; exec pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai'",
"test:plugins:kitchen-sink-rpc": "node --import tsx scripts/e2e/kitchen-sink-rpc-walk.mjs",
"test:sectriage": "node scripts/run-with-env.mjs OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --exclude src/process/exec.test.ts",
"test:serial": "node scripts/test-projects-serial.mjs",
"test:stability:gateway": "node scripts/run-with-env.mjs OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/gateway-stability.test.ts && node scripts/run-with-env.mjs OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.logging.config.ts src/logging/diagnostic-stability-bundle.test.ts && node scripts/run-with-env.mjs OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.infra.config.ts src/infra/fatal-error-hooks.test.ts",
"test:cli-response:contract": "node scripts/build-all.mjs cliStartup && node scripts/test-cli-startup-bench-budget.mjs --preset response --runs 1 --warmup 0 --timeout-ms 10000 --skip-baseline",
"test:startup:bench": "node --import tsx scripts/bench-cli-startup.ts",
"test:startup:bench:check": "node scripts/test-cli-startup-bench-budget.mjs",
"test:startup:bench:save": "node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json",
"test:startup:bench:smoke": "node scripts/ensure-cli-startup-build.mjs && node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json",
"test:startup:bench:update": "node scripts/test-update-cli-startup-bench.mjs",
"test:startup:gateway": "node --import tsx scripts/bench-gateway-startup.ts",
"test:restart:gateway": "node --import tsx scripts/bench-gateway-restart.ts",
"test:startup:memory": "node scripts/ensure-cli-startup-build.mjs && node scripts/check-cli-startup-memory.mjs",
"test:ui": "pnpm ui:i18n:check && pnpm lint:ui:no-raw-window-open && node scripts/ensure-playwright-chromium.mjs && pnpm --dir ui test",
"test:ui:e2e": "node scripts/ensure-playwright-chromium.mjs && node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner",
"test:unit": "pnpm test:unit:fast && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:unit:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit-fast.config.ts",
"test:unit:fast:audit": "node scripts/test-unit-fast-audit.mjs",
"test:voicecall:closedloop": "node scripts/test-voicecall-closedloop.mjs",
"test:watch": "node scripts/test-projects.mjs --watch",
"test:windows:ci": "node scripts/test-projects.mjs src/shared/runtime-import.test.ts src/process/exec.windows.test.ts src/process/windows-command.test.ts src/infra/windows-install-roots.test.ts src/node-host/invoke-system-run-allowlist.test.ts extensions/lobster/src/lobster-runner.test.ts test/scripts/format-generated-module.test.ts test/scripts/npm-runner.test.ts test/scripts/pnpm-runner.test.ts test/scripts/run-with-env.test.ts test/scripts/ui.test.ts test/scripts/vitest-process-group.test.ts",
"tool-display:check": "node --import tsx scripts/tool-display.ts --check",
"tool-display:write": "node --import tsx scripts/tool-display.ts --write",
"ts-topology": "node --import tsx scripts/ts-topology.ts",
"tsgo": "pnpm tsgo:core",
"tsgo:all": "node scripts/run-tsgo.mjs -b tsconfig.projects.json",
"tsgo:core": "node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo",
"tsgo:core:all": "node scripts/run-tsgo.mjs -b tsconfig.core.projects.json",
"tsgo:core:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfo",
"tsgo:extensions": "node scripts/run-tsgo.mjs -p tsconfig.extensions.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions.tsbuildinfo",
"tsgo:extensions:all": "node scripts/run-tsgo.mjs -b tsconfig.extensions.projects.json",
"tsgo:extensions:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo",
"tsgo:prod": "pnpm tsgo:core && pnpm tsgo:extensions",
"tsgo:profile": "node scripts/profile-tsgo.mjs",
"tsgo:test": "pnpm tsgo:core:test && pnpm tsgo:extensions:test",
"tsgo:test:extensions": "pnpm tsgo:extensions:test",
"tsgo:test:packages": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.packages.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-packages.tsbuildinfo",
"tsgo:test:src": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo",
"tsgo:test:ui": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.ui.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-ui.tsbuildinfo",
"tui": "node scripts/run-node.mjs tui",
"tui:dev": "node scripts/run-with-env.mjs OPENCLAW_PROFILE=dev -- node scripts/run-node.mjs --dev tui",
"tui:pty:test:watch": "node --import tsx scripts/dev/tui-pty-test-watch.ts",
"tui:pty:test:watch:all": "node --import tsx scripts/dev/tui-pty-test-watch.ts --mode all",
"tui:pty:test:watch:fake": "node --import tsx scripts/dev/tui-pty-test-watch.ts --mode fake",
"tui:pty:test:watch:local": "node --import tsx scripts/dev/tui-pty-test-watch.ts --mode local",
"ui:build": "node scripts/ui.js build",
"ui:dev": "node scripts/ui.js dev",
"ui:i18n:check": "node --import tsx scripts/control-ui-i18n.ts check",
"ui:i18n:report": "node --import tsx scripts/control-ui-i18n-report.ts",
"ui:i18n:sync": "node --import tsx scripts/control-ui-i18n.ts sync --write",
"ui:install": "node scripts/ui.js install",
"verify": "node scripts/verify.mjs"
},
"dependencies": {
"@agentclientprotocol/sdk": "0.22.1",
"@anthropic-ai/sdk": "0.100.1",
"@clack/core": "1.3.1",
"@clack/prompts": "1.4.0",
"@earendil-works/pi-tui": "0.78.0",
"@google/genai": "2.7.0",
"@grammyjs/runner": "2.0.3",
"@grammyjs/transformer-throttler": "1.2.1",
"@homebridge/ciao": "1.3.9",
"@lydell/node-pty": "1.2.0-beta.12",
"@mistralai/mistralai": "2.2.5",
"@modelcontextprotocol/sdk": "1.29.0",
"@mozilla/readability": "0.6.0",
"@openclaw/fs-safe": "0.3.0",
"@openclaw/proxyline": "0.3.3",
"chalk": "5.6.2",
"chokidar": "5.0.0",
"clawpdf": "0.3.0",
"commander": "14.0.3",
"croner": "10.0.1",
"diff": "9.0.0",
"dotenv": "17.4.2",
"express": "5.2.1",
"file-type": "22.0.1",
"glob": "13.0.6",
"grammy": "1.43.0",
"highlight.js": "11.11.1",
"hosted-git-info": "10.1.1",
"ignore": "7.0.5",
"jiti": "2.7.0",
"json5": "2.2.3",
"jszip": "3.10.1",
"kysely": "0.29.2",
"linkedom": "0.18.12",
"minimatch": "10.2.5",
"node-edge-tts": "1.2.10",
"openai": "6.39.1",
"partial-json": "0.1.7",
"playwright-core": "1.60.0",
"proper-lockfile": "4.1.2",
"qrcode": "1.5.4",
"quickjs-wasi": "3.0.0",
"rastermill": "0.3.1",
"tar": "7.5.20",
"tree-sitter-bash": "0.25.1",
"tslog": "4.10.2",
"typebox": "1.1.39",
"typescript": "6.0.3",
"undici": "8.5.0",
"web-push": "3.6.7",
"web-tree-sitter": "0.26.9",
"ws": "8.21.0",
"yaml": "2.9.0",
"zod": "4.4.3"
},
"devDependencies": {
"@a2ui/lit": "0.10.0",
"@copilotkit/aimock": "1.27.3",
"@grammyjs/types": "3.27.3",
"@lit-labs/signals": "0.3.0",
"@lit/context": "1.1.6",
"@mdx-js/mdx": "3.1.1",
"@shikijs/core": "4.1.0",
"@shikijs/engine-javascript": "4.1.0",
"@shikijs/engine-oniguruma": "4.1.0",
"@types/express": "5.0.6",
"@types/hosted-git-info": "3.0.5",
"@types/markdown-it": "14.1.2",
"@types/node": "25.9.1",
"@types/proper-lockfile": "4.1.4",
"@types/ws": "8.18.1",
"@typescript/native-preview": "7.0.0-dev.20260527.2",
"@vitest/coverage-v8": "4.1.10",
"esbuild": "0.28.1",
"jscpd": "4.2.4",
"jsdom": "29.1.1",
"lit": "3.3.3",
"oxfmt": "0.52.0",
"oxlint": "1.67.0",
"oxlint-tsgolint": "0.23.0",
"shiki": "4.1.0",
"signal-utils": "0.21.1",
"sigstore": "4.1.1",
"tsdown": "0.22.1",
"tsx": "4.22.3",
"unrun": "0.3.0",
"vitest": "4.1.10"
},
"optionalDependencies": {
"sqlite-vec": "0.1.9"
},
"engines": {
"node": ">=22.19.0"
},
"packageManager": "pnpm@11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f"
}