@@ -33,15 +33,12 @@ For the broader model/provider/runtime split, start with
|
33 | 33 | - A GitHub Copilot subscription that can drive the Copilot CLI (or a |
34 | 34 | `gitHubToken` env / auth-profile entry for headless / cron runs). |
35 | 35 | - A writable `copilotHome` directory. The harness defaults to |
36 | | -`~/.openclaw/agents/<agentId>/copilot` for full per-agent isolation. The |
37 | | - platform default (`%APPDATA%\copilot` on Windows, `$XDG_CONFIG_HOME/copilot` |
38 | | - or `~/.config/copilot` elsewhere) is used as the doctor probe fallback when |
39 | | - no explicit home is set. |
| 36 | +`<agentDir>/copilot` when OpenClaw provides an agent directory, otherwise |
| 37 | +`~/.openclaw/agents/<agentId>/copilot` for full per-agent isolation. |
40 | 38 | |
41 | 39 | `openclaw doctor` runs the plugin |
42 | | -[doctor contract](#doctor-and-probes) for the extension; failures there are |
43 | | -the canonical way to confirm the environment is ready before opting an agent |
44 | | -in. |
| 40 | +[doctor contract](#doctor) for declarative session-state ownership and future |
| 41 | +compatibility migrations. It does not run Copilot CLI environment probes. |
45 | 42 | |
46 | 43 | ## Plugin install |
47 | 44 | |
@@ -153,10 +150,6 @@ the same directory), or `~/.openclaw/agents/<agentId>/copilot` otherwise.
|
153 | 150 | Override with `copilotHome: <path>` on the attempt input when you need a |
154 | 151 | custom location (for example, a shared mount for migration). |
155 | 152 | |
156 | | -`probeCopilotAuthShape` (see [Doctor and probes](#doctor-and-probes)) is the |
157 | | -pure shape check that validates which of the modes above will be used. |
158 | | -It does not perform a live SDK handshake. |
159 | | - |
160 | 153 | ## Configuration surface |
161 | 154 | |
162 | 155 | The harness reads its config from per-attempt input |
@@ -239,7 +232,7 @@ asserted in
|
239 | 232 | [`extensions/copilot/harness.test.ts`](https://github.com/openclaw/openclaw/blob/main/extensions/copilot/harness.test.ts) |
240 | 233 | under `describe("runSideQuestion")`. |
241 | 234 | |
242 | | -## Doctor and probes |
| 235 | +## Doctor |
243 | 236 | |
244 | 237 | `extensions/copilot/doctor-contract-api.ts` is auto-loaded by |
245 | 238 | `src/plugins/doctor-contract-registry.ts`. It contributes: |
@@ -251,18 +244,6 @@ under `describe("runSideQuestion")`.
|
251 | 244 | runtime `copilot`; CLI session key `copilot`; auth profile |
252 | 245 | prefix `github-copilot:`. |
253 | 246 | |
254 | | -`extensions/copilot/src/doctor-probes.ts` exports three imperative probes |
255 | | -that hosts (including `openclaw doctor`) can call to verify the environment: |
256 | | - |
257 | | -| Probe | What it checks | Reasons it can fail | |
258 | | -| -------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | |
259 | | -| `probeCopilotCliVersion` | `copilot --version` exits 0 with a non-empty version string | `non-zero-exit`, `empty-version`, `spawn-failed`, `spawn-error`, `probe-timeout` | |
260 | | -| `probeCopilotHomeWritable` | `mkdir -p copilotHome` + write + rm a marker file | `copilothome-not-writable` (with the underlying fs error in `details.rawError`) | |
261 | | -| `probeCopilotAuthShape` | At least one of `useLoggedInUser`, `gitHubToken`, or `profileId`+`profileVersion` | `no-auth-source` | |
262 | | - |
263 | | -Each probe accepts a DI seam (`spawnFn`, `fsApi`) so tests do not spawn the |
264 | | -real Copilot CLI or touch the host fs. |
265 | | - |
266 | 247 | ## Limitations |
267 | 248 | |
268 | 249 | - The harness only claims the canonical `github-copilot` provider at MVP. |
|