Files
openclaw/scripts/lib/plugin-sdk-entrypoints.json
Peter Steinberger 1e9d918037 feat(sdk): always persist media facts and ship facts-first replacements for legacy Media* surfaces (#113355)
* feat(sdk): always persist media facts and ship facts-first replacements for legacy Media* surfaces

PR 1 of the media legacy retirement program (audit-frozen, 4 PRs).

- Every media-bearing user turn now persists normalized __openclaw.media
  facts unconditionally while continuing to emit the legacy top-level
  Media* projection byte-identically (dual-write bridge; the conditional
  shouldPersistStructuredMediaEntries gate now always includes media).
- New replacement APIs, shipped before any removal: typed hook media
  facts (media[], originalMedia[], mediaStagingPending) on message
  events; {{AttachmentPath}}/{{AttachmentUrl}}/{{AttachmentContentType}}/
  {{AttachmentDir}}/{{AttachmentIndex}} template variables; focused
  openclaw/plugin-sdk/media-local-roots subpath split out of the
  deprecated agent-media-payload facade.
- Every legacy surface carries @deprecated naming its replacement, under
  one named compatibility record media-legacy-projection with the
  operator-approved removeAfter 2026-10-01 (two release trains; deletion
  additionally gates on a clean published-plugin artifact sweep).
- Generic transcript append invariant documented; SDK migration, hooks,
  and configuration docs updated to the facts-first path.

Writer golden matrix proves legacy bytes and model prompt bytes are
unchanged while nested facts become unconditional. 2,189 broad media
tests green; SDK api-baseline regenerated on fresh-env Testbox.

* feat(sdk): register media-local-roots subpath exports and deprecation metadata

Completes PR 1: package export map for openclaw/plugin-sdk/media-local-roots
plus the deprecated-subpath inventory and doc metadata entries for the
media-legacy-projection record.

* chore(sdk): track media-local-roots entrypoint and deprecated-export budgets

* fix(sdk): keep deprecated MSTeams buildMediaPayload re-export through the compat window

Deleting shipped runtime-api re-exports belongs to retirement PR 4 after
the media-legacy-projection window; PR 1 only deprecates. Also formats
the migration-guide schedule table.

* docs: regenerate docs map for media migration additions
2026-07-24 10:42:17 -07:00

317 lines
7.4 KiB
JSON

[
"core",
"provider-setup",
"sandbox",
"routing",
"runtime",
"health",
"runtime-doctor",
"runtime-env",
"proxy-capture",
"setup",
"setup-runtime",
"channel-setup",
"channel-streaming",
"setup-tools",
"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",
"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-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-runtime",
"cli-backend",
"codex-mcp-projection",
"codex-native-task-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",
"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",
"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-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",
"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-foundation",
"memory-core-host-engine-qmd",
"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"
]