Files
openclaw/extensions/copilot
Peter Steinberger fe9893d41c refactor(agents): resolve code-mode vs tool-search once for every harness (#115189)
* refactor(agents): share one tool-surface resolver across runner and harness

The code-mode vs tool-search gate decision and the three-way catalog
application were duplicated across the embedded runner and the native
harness bridge, and had already drifted: the harness copy was missing the
skillWorkshopProposalOnly condition and its params object had no field to
express it.

Both surfaces now consume resolveAgentToolSurfacePlan and
applyAgentToolSurfaceCatalog, so the gates and the catalog branch exist
once. Both gate booleans derive from a single shared toolsAvailable
intermediate.

Behavior change: the harness path now honors skillWorkshopProposalOnly.
Proposal-only skill-workshop runs are deliberately narrow single-tool runs,
so code-mode indirection and tool-search catalogs are pure overhead — a
harness-independent reason. Both callers currently pin
agentHarnessRuntimeOverride "openclaw", so this closes a latent fail-open
rather than fixing a live bug.

* fix(agents): let the shared catalog params carry a config-less run

resolveAgentToolSearchRuntimeConfig returns OpenClawConfig | undefined, so
requiring a non-null toolSearchRuntimeConfig broke tsgo:core at both call
sites. Keep the key required so it cannot be silently omitted, but let the
value be undefined as the pre-refactor code already allowed.

* fix(agents): keep the tool-surface module free of dead exports

Importing isCodeModeEngagedForModel and applyToolSchemaDirectoryCatalog from
their defining modules left the code-mode.ts and tool-search.ts re-exports with
no production consumer, which knip rejects. Go back through the barrels, which
is also what both call sites did before this refactor.

The two params types were exported only for the test, so knip's production scan
saw them as dead. Keep them module-local and derive the type in the test.
2026-07-28 09:16:35 -04:00
..

GitHub Copilot agent runtime (OpenClaw plugin)

External OpenClaw plugin that registers a copilot agent harness backed by @github/copilot-sdk and the GitHub Copilot CLI.

Install

openclaw plugins install @openclaw/copilot

Restart the Gateway after installing or updating the plugin.

The harness claims the canonical subscription github-copilot provider plus custom BYOK provider entries that the Copilot SDK can represent. Manifest-owned native provider ids stay with their owning runtimes. The harness is opt-in only: selection requires explicit agentRuntime.id: "copilot" on a model or provider entry; auto never picks it. OpenClaw remains the default embedded runtime.

See GitHub Copilot agent runtime for configuration, the doctor contract, transcript mirroring, compaction, side questions, replay, and the supported-surface contract.

Package

  • Plugin id: copilot
  • Package: @openclaw/copilot
  • Minimum OpenClaw host: 2026.5.28