Skip to content

feat(plugins): add unified provider system with capabilities#41496

Closed
kesor wants to merge 0 commit into
openclaw:mainfrom
kesor:feat/more-plugin-hooks
Closed

feat(plugins): add unified provider system with capabilities#41496
kesor wants to merge 0 commit into
openclaw:mainfrom
kesor:feat/more-plugin-hooks

Conversation

@kesor

@kesor kesor commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds a unified registerProvider API with capabilities to the plugin system, allowing plugins to provide custom providers for:

  • Chat/LLM - Standard model providers (existing)
  • Embeddings (embed, embedBatch, embedBatchInputs for multimodal)
  • ASR/Audio transcription (transcribeAudio)
  • Image understanding (describeImage)
  • Video understanding (describeVideo)
  • Text-to-speech (textToSpeech)

Key Changes

  1. Unified Provider API: Single registerProvider() method with optional capabilities array: ["chat", "embedding", "audio", "image", "video", "tts"]

  2. Embedding Support: Plugins can provide embedding providers with embed, embedBatch, and embedBatchInputs (multimodal) methods. Supports custom provider IDs beyond built-ins.

  3. Media Provider Support: Plugins can provide audio transcription, image/video understanding, and TTS with full access to API keys, baseUrl, headers, and proxy-aware fetchFn.

  4. Type Definitions: Added capability types and method signatures to plugin-sdk. Includes plugin-specific request types (PluginImageDescriptionRequest, PluginAudioTranscriptionRequest, PluginVideoDescriptionRequest).

  5. Plugin SDK Exports: New types exported for plugin authors:

    • PluginImageDescriptionRequest
    • PluginAudioTranscriptionRequest
    • PluginVideoDescriptionRequest
    • EmbeddingProviderRequest / EmbeddingProviderFallback (now supports custom string IDs)
  6. Provider ID Normalization: Uses normalizeProviderId() consistently for provider lookups to handle aliases (e.g., "z.ai" → "zai")

  7. Telephony TTS: Plugins can override built-in TTS providers for telephony with automatic fallback to built-in on failure

  8. Configuration Fallthrough: TTS plugins receive configured model/voice/headers from config when not overridden by directives

Architecture

  • Capability-based routing: getPluginProvidersByCapability() filters plugins by capability
  • Plugin registry: Normalized provider IDs stored in registry for consistent lookups
  • Graceful fallback: Built-in providers used when plugins fail or are unavailable

Risk Assessment

Low Risk:

  • Plugin providers only affect requests when plugins are loaded
  • Built-in providers remain unchanged
  • Additive only - doesn't modify existing behavior

Change Type

  • Feature

Scope

  • Gateway / orchestration
  • Integrations (plugin system)
  • API / contracts (plugin API)
  • Docs

Security Impact

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • Data access scope changed? No

Compatibility

  • Backward compatible? Yes - existing built-in providers unchanged
  • Config changes? None
  • Migration needed? No

@greptile-apps

greptile-apps Bot commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces a unified registerProvider API with capability routing, allowing plugins to supply custom providers for chat, embeddings, ASR/audio, image understanding, video understanding, and TTS. The architecture is sound — capability-filtered discovery via getPluginProvidersByCapability, version-stamped caching in the media-understanding registry, normalized ID lookups, and graceful fallback to built-ins when plugins fail.

Key issues found:

  • Telephony custom-plugin override ignored (src/tts/tts.ts): textToSpeechTelephony builds its provider order using only the persisted userProvider, not params.overrides?.provider. A caller that passes overrides.provider = "custom-tts" will have that plugin tried last (after all built-ins) rather than first — the opposite of synthesizeSpeech, which correctly uses overrideProvider ?? userProvider.

  • Misleading auto-mode embedding comment (src/memory/embeddings.ts): The comment above the built-in provider loop says "prefer built-in providers over custom plugins", but the code returns a plugin immediately if one shadows a built-in ID (e.g. "openai"), bypassing the built-in entirely and skipping all fallback logic.

  • cachedRegistryVersion committed prematurely (src/media-understanding/providers/index.ts): The cache version stamp is written before getPluginMediaProviders executes. While the null guard in the cache-hit check prevents incorrect behavior today, it creates a fragile ordering dependency that could regress silently if the guard condition is ever reordered.

  • No caching in buildTtsProviderRegistry (src/tts/providers.ts): Every TTS call triggers a full provider scan; the media-understanding registry uses version-based caching for the same purpose.

Confidence Score: 3/5

  • Safe to merge for non-telephony paths; the telephony provider-override regression and the misleading embedding comment should be resolved before shipping telephony + custom-plugin combinations in production.
  • The core capability routing, ID normalization fixes, and media-understanding plugin dispatch are well-implemented and covered by new tests. Two logic issues remain: the telephony path ignores overrides.provider for custom plugins (behavioral regression vs. synthesizeSpeech), and the embedding auto-mode comment misrepresents the priority order. The cache-version ordering issue is latent but not yet observable. None of these affect built-in provider paths, keeping the "Low Risk" assessment for standard usage largely intact.
  • src/tts/tts.ts (telephony override gap) and src/memory/embeddings.ts (comment/logic inconsistency in auto mode)

Comments Outside Diff (4)

  1. src/tts/tts.ts, line 916-956 (link)

    overrides?.provider ignored for custom-plugin routing in telephony

    synthesizeSpeech correctly uses overrideProvider ?? userProvider when deciding whether to head the provider list with a custom plugin:

    const overrideProvider = params.overrides?.provider;
    const primaryProvider = overrideProvider ?? userProvider;

    textToSpeechTelephony only considers userProvider (the persisted preference):

    const normalizedUser = userProvider ? normalizeSpeechProviderId(userProvider) : undefined;

    Because normalizeSpeechProviderId returns undefined for custom IDs, a custom plugin override also never makes it into legacyProviders through resolveTtsProviderOrder. The net effect is that passing overrides.provider = "custom-tts" in a telephony call causes the custom plugin to be placed last in the provider list (via customPluginsTelephony) rather than first — the opposite of the caller's intent.

    // Fix: mirror the synthesizeSpeech approach
    const overrideProvider = params.overrides?.provider;
    const primaryProvider = overrideProvider ?? userProvider;
    const normalizedPrimary = primaryProvider
      ? (normalizeSpeechProviderId(primaryProvider) ?? primaryProvider)
      : undefined;

    Then use normalizedPrimary instead of normalizedUser in the head-insertion check below.

  2. src/memory/embeddings.ts, line 326-340 (link)

    Comment contradicts code: plugins for built-in IDs take priority, not built-ins

    The block comment just above this loop reads:

    In auto mode, prefer built-in providers over custom plugins. Custom plugins will be tried as fallback after built-ins fail.

    But the code inside the loop does the opposite for plugins that shadow a built-in ID:

    for (const pid of REMOTE_EMBEDDING_PROVIDER_IDS) {
      const pp = pluginProviders[pid];
      if (pp) {
        return { provider: pp, requestedProvider };   // ← plugin wins, built-in never tried
      }
      // ... try built-in
    }

    If a plugin registers with id: "openai", it is returned immediately — the actual built-in OpenAI provider is never attempted, and the fallback logic is bypassed entirely. The comment applies only to plugins with custom (non-builtin) IDs, which are appended after the built-in loop.

    Either the comment should be corrected to "plugins that override a built-in ID take priority; custom-ID plugins are tried last", or the code should be reordered to try the built-in first and fall back to the plugin on key-missing errors, matching the stated intent.

  3. src/media-understanding/providers/index.ts, line 107-130 (link)

    cachedRegistryVersion is committed before plugin providers are loaded

    cachedRegistryVersion = currentVersion is set on line 129 — before getPluginMediaProviders(cfg) executes on line 131. If getPluginMediaProviders (or any of the subsequent loops) throws, mediaUnderstandingRegistryCache remains null but cachedRegistryVersion already equals currentVersion.

    On the next call the early-exit guard is:

    if (!overrides && mediaUnderstandingRegistryCache && cachedRegistryVersion === currentVersion) {
      return mediaUnderstandingRegistryCache;
    }

    Because mediaUnderstandingRegistryCache is null, the && short-circuits and the function correctly rebuilds — so in practice the stale version assignment has no observable effect today. However, it creates a fragile dependency on null check ordering. If the guard condition is ever reordered (e.g. to check cachedRegistryVersion first), the function would silently return a cache that was never populated.

    Move cachedRegistryVersion = currentVersion to just before mediaUnderstandingRegistryCache = registry (line 168), so both are committed atomically only after the full build succeeds.

  4. src/tts/providers.ts, line 34-58 (link)

    buildTtsProviderRegistry rebuilds on every TTS request

    buildMediaUnderstandingRegistry uses a version-stamped module-level cache (mediaUnderstandingRegistryCache / cachedRegistryVersion) to avoid redundant work when the plugin registry hasn't changed. buildTtsProviderRegistry has no such cache — it calls getPluginProvidersByCapability (iterating all registered providers) on every invocation, and synthesizeSpeech / textToSpeechTelephony each call await buildPluginTtsRegistry(params.cfg) unconditionally.

    For applications that serve many concurrent TTS requests (e.g. telephony workloads), this is an unnecessary O(n) scan per call. Adding the same version-based caching pattern used in buildMediaUnderstandingRegistry would keep the registries consistent.

Prompt To Fix All With AI
This is a comment left during a code review.
Path: src/tts/tts.ts
Line: 916-956

Comment:
**`overrides?.provider` ignored for custom-plugin routing in telephony**

`synthesizeSpeech` correctly uses `overrideProvider ?? userProvider` when deciding whether to head the provider list with a custom plugin:

```typescript
const overrideProvider = params.overrides?.provider;
const primaryProvider = overrideProvider ?? userProvider;
```

`textToSpeechTelephony` only considers `userProvider` (the persisted preference):

```typescript
const normalizedUser = userProvider ? normalizeSpeechProviderId(userProvider) : undefined;
```

Because `normalizeSpeechProviderId` returns `undefined` for custom IDs, a custom plugin override also never makes it into `legacyProviders` through `resolveTtsProviderOrder`. The net effect is that passing `overrides.provider = "custom-tts"` in a telephony call causes the custom plugin to be placed last in the provider list (via `customPluginsTelephony`) rather than first — the opposite of the caller's intent.

```typescript
// Fix: mirror the synthesizeSpeech approach
const overrideProvider = params.overrides?.provider;
const primaryProvider = overrideProvider ?? userProvider;
const normalizedPrimary = primaryProvider
  ? (normalizeSpeechProviderId(primaryProvider) ?? primaryProvider)
  : undefined;
```

Then use `normalizedPrimary` instead of `normalizedUser` in the head-insertion check below.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: src/memory/embeddings.ts
Line: 326-340

Comment:
**Comment contradicts code: plugins for built-in IDs take priority, not built-ins**

The block comment just above this loop reads:

> In auto mode, prefer built-in providers over custom plugins. Custom plugins will be tried as fallback after built-ins fail.

But the code inside the loop does the opposite for plugins that shadow a built-in ID:

```typescript
for (const pid of REMOTE_EMBEDDING_PROVIDER_IDS) {
  const pp = pluginProviders[pid];
  if (pp) {
    return { provider: pp, requestedProvider };   // ← plugin wins, built-in never tried
  }
  // ... try built-in
}
```

If a plugin registers with `id: "openai"`, it is returned immediately — the actual built-in OpenAI provider is never attempted, and the fallback logic is bypassed entirely. The comment applies only to plugins with *custom* (non-builtin) IDs, which are appended after the built-in loop.

Either the comment should be corrected to "plugins that override a built-in ID take priority; custom-ID plugins are tried last", or the code should be reordered to try the built-in first and fall back to the plugin on key-missing errors, matching the stated intent.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: src/media-understanding/providers/index.ts
Line: 107-130

Comment:
**`cachedRegistryVersion` is committed before plugin providers are loaded**

`cachedRegistryVersion = currentVersion` is set on line 129 — before `getPluginMediaProviders(cfg)` executes on line 131. If `getPluginMediaProviders` (or any of the subsequent loops) throws, `mediaUnderstandingRegistryCache` remains `null` but `cachedRegistryVersion` already equals `currentVersion`.

On the *next* call the early-exit guard is:
```typescript
if (!overrides && mediaUnderstandingRegistryCache && cachedRegistryVersion === currentVersion) {
  return mediaUnderstandingRegistryCache;
}
```

Because `mediaUnderstandingRegistryCache` is `null`, the `&&` short-circuits and the function correctly rebuilds — so in practice the stale version assignment has no observable effect today. However, it creates a fragile dependency on `null` check ordering. If the guard condition is ever reordered (e.g. to check `cachedRegistryVersion` first), the function would silently return a cache that was never populated.

Move `cachedRegistryVersion = currentVersion` to just before `mediaUnderstandingRegistryCache = registry` (line 168), so both are committed atomically only after the full build succeeds.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: src/tts/providers.ts
Line: 34-58

Comment:
**`buildTtsProviderRegistry` rebuilds on every TTS request**

`buildMediaUnderstandingRegistry` uses a version-stamped module-level cache (`mediaUnderstandingRegistryCache` / `cachedRegistryVersion`) to avoid redundant work when the plugin registry hasn't changed. `buildTtsProviderRegistry` has no such cache — it calls `getPluginProvidersByCapability` (iterating all registered providers) on every invocation, and `synthesizeSpeech` / `textToSpeechTelephony` each call `await buildPluginTtsRegistry(params.cfg)` unconditionally.

For applications that serve many concurrent TTS requests (e.g. telephony workloads), this is an unnecessary O(n) scan per call. Adding the same version-based caching pattern used in `buildMediaUnderstandingRegistry` would keep the registries consistent.

How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: "perf: limit attachme..."

Comment thread src/tts/tts.ts Outdated
Comment thread patches/allow-nix-store-hardlinks.patch Outdated
Comment thread src/tts/providers.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 59da49fd90

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated
Comment thread src/tts/providers.ts Outdated
@kesor
kesor force-pushed the feat/more-plugin-hooks branch from af43100 to 417e863 Compare March 10, 2026 01:58
Comment thread src/plugins/runtime.ts Outdated
Comment thread src/tts/providers.ts Outdated
Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 417e86325f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated
Comment thread src/plugins/runtime.ts Outdated
Comment thread src/media-understanding/providers/index.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b5b072d264

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated
Comment thread src/media-understanding/providers/index.ts Outdated
@kesor
kesor force-pushed the feat/more-plugin-hooks branch from 401c745 to 29d95ad Compare March 10, 2026 04:07
Comment thread src/plugins/types.ts Outdated
Comment thread src/media-understanding/providers/index.ts Outdated
Comment thread src/tts/tts.ts Outdated
Comment thread src/plugins/registry.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6d6e1c2a7d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/media-understanding/runner.entries.ts Outdated
Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5d248c889b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/zod-schema.agent-runtime.ts Outdated
Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d14f0b2a1f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/memory/embeddings.ts Outdated
Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 184cb198bd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/memory/embeddings.ts Outdated
Comment thread src/tts/providers.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab56b432f2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 594ab4b975

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d782fa5a9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/media-understanding/providers/index.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7ed9e3d4c0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/memory/embeddings.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 602fc67350

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d23ef2f4c5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8f79d915c9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/memory/embeddings.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2ff3bec0d2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated
Comment thread src/memory/embeddings.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b9a820e2aa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated
Comment thread src/media-understanding/runner.entries.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 623ec72e7b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 35fb31474b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f1e74287c4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated
Comment thread src/media-understanding/runner.entries.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9b08b11f4c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c5014b7937

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/commands/doctor-memory-search.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d0a6d9cbbb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 833e341f87

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated
Comment thread src/media-understanding/providers/index.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 91b71ff298

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e8c3e66606

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/media-understanding/runner.entries.ts Outdated
Comment thread src/memory/embeddings.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 92c337b75c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/memory/embeddings.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6cc5f7fd1b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tts/tts.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d9f974aae2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/media-understanding/providers/index.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab01bae3ed

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/plugins/provider-validation.ts Outdated
Comment thread src/tts/providers.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93884bb985

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/config/validation.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c6db4db64

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/media-understanding/runner.entries.ts Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling commands Command implementations docs Improvements or additions to documentation gateway Gateway runtime size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants