Files
openclaw/scripts/lib/plugin-sdk-entrypoints.json
Peter Steinberger 081a565cba perf(doctor): restore telegram doctor repairs dropped on source-run hosts (#120954)
* perf(doctor): keep telegram doctor enumeration off the runtime graph

Telegram's built doctor artifact reached execa through dist chunking, so a
source-run host (pnpm dev, tsx CLI, vitest) could not require it and silently
dropped all 9 telegram legacy config rules plus its state migration. The
artifact also pulled telegram's runtime stores, making it a 674-chunk outlier
that dominated doctor enumeration.

Root cause: `src/token.ts` took the broad `plugin-sdk/provider-auth` barrel for
`resolveDefaultSecretProviderAlias`, dragging the auth-profile store, provider
runtime, and plugin install graph (execa, kysely, commander) into the closure.
The alias now has a narrow `plugin-sdk/secret-provider-alias` leaf, and
provider-auth re-exports it so its runtime surface is unchanged.

Thread-binding, sent-message, and sticker-cache row shapes, keys, and legacy
sidecar readers move to `*.legacy-state.ts` leaves. The doctor closure keeps
the rows and drops the ACP, session-binding, send, logger, and plugin-runtime
graphs the stores also load.

The postbuild control-plane verifier only required each artifact in a plain
Node child, the one host where these graphs resolve fine, so it proved nothing
about the invariant that broke. It now also walks each built doctor artifact's
static import closure and fails when it reaches the process-spawn graph, which
is the dist-level analogue of the source closure guard.

Guard rules added for provider-auth, acp-runtime, and conversation-runtime; the
telegram boundary test became a real closure assertion instead of a string grep.

* fix(doctor): drop dead export surface from the telegram legacy-state split

Knip and oxlint caught leftovers from the split: the leaves exported helpers
only they use, the store modules re-exported constants nobody imports from them
anymore, and thread-bindings kept a `testing` barrel whose last production
caller was the migration path that now reads the leaf directly. Tests import the
constants from the leaf that owns them, and the reset helper directly.

The closure gate's failure message still interpolated a `host` field left over
from a probe-host approach that was reverted before commit; the existing verifier
test caught it. The gate now has its own coverage: a transitive chunk edge to a
forbidden dependency is reported, while dynamic imports and non-doctor contract
surfaces are not.

* fix(doctor): adopt the upstream telegram thread-binding store split

`main` landed an equivalent thread-binding leaf as `thread-bindings-store.ts`
while this branch was open, so the branch-local `thread-bindings.legacy-state.ts`
is dropped rather than kept as a second path for the same rows.

`state-migrations.ts` now reaches token.js through the lazy import `main` added,
so `token.ts` is no longer in the doctor closure at all. The narrow
`secret-provider-alias` leaf still matters: telegram's contract-api closure
reaches `provider-auth` through `token.ts` on current `main`, which is the same
execa/kysely/commander graph, so the barrel is repaired at its source instead of
being deferred a second time.

* fix(scripts): type the built doctor closure gate for the TypeScript migration

The gate was authored against the `.mjs` script and landed in the `.mts` file
`main` migrated to, so its parameters were implicitly `any` and `check:test-types`
failed. Adds the explicit signatures plus the violation type.

Regenerates the plugin-sdk API baseline: `provider-auth` re-exports the default
secret-provider alias from the new leaf, so its module hash moves while its
runtime export surface stays identical.
2026-08-09 08:50:03 -07:00

338 lines
7.9 KiB
JSON

[
"core",
"provider-setup",
"sandbox",
"routing",
"runtime",
"health",
"doctor-repair-runtime",
"model-ref-parse",
"outbound-echo-runtime",
"secret-provider-alias",
"session-store-paths",
"plugin-state-store-runtime",
"runtime-doctor-migrations",
"runtime-env",
"proxy-capture",
"setup",
"setup-runtime",
"channel-setup",
"channel-streaming",
"channel-streaming-config",
"setup-tools",
"archive",
"root-walk",
"secret-file",
"approval-auth-runtime",
"approval-client-runtime",
"approval-delivery-runtime",
"approval-gateway-runtime",
"approval-reference-runtime",
"approval-handler-adapter-runtime",
"approval-handler-runtime",
"channel-runtime-context",
"approval-native-runtime",
"approval-reaction-runtime",
"approval-reply-runtime",
"approval-runtime",
"question-gateway-runtime",
"config-runtime",
"config-contracts",
"plugin-config-runtime",
"config-mutation",
"cron-store-runtime",
"json-schema-runtime",
"json-unsafe-integers",
"reply-runtime",
"reply-dispatch-runtime",
"reply-reference",
"reply-chunking",
"reply-payload",
"reply-payload-testing",
"agent-media-payload",
"inbound-reply-dispatch",
"inbound-envelope",
"inbound-event-delivery",
"channel-reply-pipeline",
"interactive-runtime",
"outbound-media",
"pair-loop-guard-runtime",
"poll-runtime",
"async-lock-runtime",
"channel-activity-runtime",
"concurrency-runtime",
"dedupe-runtime",
"delivery-queue-runtime",
"file-access-runtime",
"heartbeat-runtime",
"expect-runtime",
"number-runtime",
"secure-random-runtime",
"system-event-runtime",
"transport-ready-runtime",
"exec-approvals-runtime",
"infra-runtime",
"runtime-config-snapshot",
"runtime-group-policy",
"model-session-runtime",
"talk-config-runtime",
"ssrf-policy",
"ssrf-runtime",
"ssrf-runtime-internal",
"media-runtime",
"media-local-roots",
"media-store",
"media-mime",
"embedding-providers",
"media-generation-runtime",
"conversation-binding-runtime",
"conversation-runtime",
"thread-bindings-runtime",
"thread-bindings-session-runtime",
"text-runtime",
"text-chunking",
"agent-scope-runtime",
"agent-runtime",
"simple-completion-runtime",
"speech-core",
"speech-settings",
"tts-runtime",
"plugin-runtime",
"channel-secret-basic-runtime",
"channel-secret-runtime",
"channel-secret-tts-runtime",
"secret-ref-runtime",
"secret-file-runtime",
"security-runtime",
"gateway-method-runtime",
"gateway-runtime",
"cli-argv",
"cli-runtime",
"cli-backend",
"codex-mcp-projection",
"codex-session-transcript-runtime",
"agent-harness-task-runtime",
"agent-harness",
"agent-harness-exec-review-runtime",
"agent-harness-runtime",
"agent-harness-tool-runtime",
"hook-runtime",
"html-entity-runtime",
"host-runtime",
"types",
"process-runtime",
"windows-spawn",
"acp-runtime",
"acp-runtime-backend",
"acp-binding-runtime",
"acp-binding-resolve-runtime",
"lazy-runtime",
"agent-runtime-test-contracts",
"channel-target-testing",
"channel-test-helpers",
"plugin-test-api",
"plugin-test-contracts",
"plugin-test-runtime",
"provider-http-test-mocks",
"provider-test-contracts",
"test-env",
"test-fixtures",
"test-live",
"test-live-auth",
"test-media-generation",
"test-media-understanding",
"test-node-mocks",
"test-state",
"temp-path",
"time-runtime",
"logging-core",
"migration",
"migration-runtime",
"plugin-state-runtime",
"plugin-state-test-runtime",
"markdown-table-runtime",
"account-helpers",
"account-core",
"account-id",
"account-resolution",
"account-resolution-runtime",
"agent-config-primitives",
"access-groups",
"allow-from",
"allowlist-config-edit",
"browser-config",
"boolean-param",
"channel-contract-testing",
"channel-dm-policy",
"dangerous-name-runtime",
"command-auth",
"command-auth-native",
"command-primitives-runtime",
"command-status",
"command-status-runtime",
"command-detection",
"command-surface",
"collection-runtime",
"direct-dm-guard-policy",
"discord",
"matrix",
"device-bootstrap",
"diagnostic-runtime",
"error-runtime",
"extension-shared",
"channel-config-helpers",
"channel-config-writes",
"channel-config-primitives",
"channel-config-schema",
"bundled-channel-config-schema",
"chat-channel-ids",
"channel-actions",
"channel-plugin-common",
"channel-core",
"channel-entry-contract",
"channel-contract",
"channel-feedback",
"channel-inbound",
"channel-inbound-debounce",
"channel-logging",
"channel-mention-gating",
"channel-lifecycle",
"channel-ingress-runtime",
"channel-message",
"channel-outbound",
"channel-pairing",
"channel-policy",
"channel-send-result",
"channel-route",
"channel-targets",
"context-visibility-runtime",
"file-lock",
"fetch-runtime",
"runtime-fetch",
"inline-image-data-url-runtime",
"node-host",
"response-limit-runtime",
"session-binding-runtime",
"session-catalog",
"session-catalog-runtime",
"session-discussion",
"session-key-runtime",
"session-store-runtime",
"session-transcript-runtime",
"sqlite-runtime",
"sqlite-runtime-testing",
"session-transcript-hit",
"session-visibility",
"ssrf-dispatcher",
"string-coerce-runtime",
"group-activation",
"group-access",
"global-singleton",
"directory-config-runtime",
"directory-runtime",
"image-generation",
"image-generation-runtime",
"image-generation-core",
"music-generation",
"video-generation",
"video-generation-runtime",
"video-generation-core",
"reply-history",
"realtime-transcription",
"realtime-bootstrap-context",
"realtime-voice-audio-queue",
"realtime-voice-activation",
"realtime-voice",
"meeting-runtime",
"transcripts",
"media-understanding",
"media-understanding-runtime",
"messaging-targets",
"request-url",
"runtime-store",
"json-store",
"persistent-dedupe",
"ingress-effect-once",
"keyed-async-queue",
"qa-runner-runtime",
"memory-core-host-embedding-registry",
"memory-core-host-engine-embeddings",
"memory-core-host-engine-curated",
"memory-core-host-engine-foundation",
"memory-core-host-engine-fs",
"memory-core-host-engine-sessions",
"memory-core-host-engine-schema",
"memory-core-host-engine-storage",
"memory-core-host-secret",
"memory-core-host-status",
"memory-core-host-runtime-cli",
"memory-core-host-runtime-core",
"memory-core-host-runtime-files",
"memory-host-core",
"memory-host-events",
"memory-host-markdown",
"memory-host-search",
"message-tool-delivery-hints",
"models-provider-runtime",
"skill-commands-runtime",
"native-command-config-runtime",
"native-command-registry",
"provider-auth",
"provider-oauth-runtime",
"provider-auth-runtime",
"provider-auth-login-flow-runtime",
"provider-auth-api-key",
"provider-auth-result",
"provider-selection-runtime",
"plugin-entry",
"provider-catalog-live-runtime",
"provider-catalog-runtime",
"provider-catalog-shared",
"provider-entry",
"provider-env-vars",
"provider-http",
"provider-model-types",
"provider-model-shared",
"provider-onboard",
"provider-stream-family",
"provider-stream-shared",
"provider-transport-runtime",
"provider-stream",
"provider-tools",
"provider-usage",
"document-extractor",
"web-content-extractor",
"provider-web-fetch-contract",
"provider-web-fetch",
"provider-web-search-config-contract",
"provider-web-search-contract",
"provider-web-search",
"retry-runtime",
"run-command",
"param-readers",
"secret-input",
"secret-input-runtime",
"channel-status",
"status-helpers",
"speech",
"string-normalization-runtime",
"state-paths",
"target-resolver-runtime",
"telegram-account",
"text-autolink-runtime",
"text-utility-runtime",
"widget-html",
"tool-plugin",
"tool-payload",
"tool-results",
"tool-send",
"webhook-ingress",
"webhook-targets",
"webhook-request-guards",
"web-media",
"zod",
"agent-core",
"agent-sessions",
"llm"
]