@orcareplay/adapters 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,4 +38,28 @@ export declare const MODEL_BASE_URL_VARS: readonly ["ANTHROPIC_BASE_URL", "OPENA
38
38
  export declare function checkAdapterContract(adapter: Adapter, opts?: ContractOptions): Promise<ContractResult>;
39
39
  /** One line for a pass, one line per failure otherwise — the shape a CI log wants. */
40
40
  export declare function formatContractResult(result: ContractResult): string;
41
+ /**
42
+ * Whether `path` is `base` or sits under it.
43
+ *
44
+ * Delegated to the platform's own path rules rather than compared as strings. The prefix used to be
45
+ * built with a forward slash only, so on Windows — where `path.join` spells the whole path with
46
+ * backslashes — a file genuinely inside `runDir` never matched, and `no-foreign-paths` called the
47
+ * run's own scratch file foreign. That failed the contract for every adapter that puts a runDir
48
+ * path into the environment: grok, openclaw and node. On POSIX the comparison was true either way,
49
+ * so CI never saw it.
50
+ *
51
+ * Normalising the separators by hand would have swapped one wrong answer for another: a backslash
52
+ * is a legal character in a POSIX filename, so `/tmp/run` + a file called `run\evil` would have
53
+ * read as contained when it is not — a leak check answering yes to the thing it exists to catch.
54
+ *
55
+ * `impl` is a parameter so both flavours are reachable from a test on either OS. The Windows
56
+ * behaviour is the whole reason this function was touched, and a test that can only run on Windows
57
+ * is how the original slipped through.
58
+ */
59
+ export declare function isInside(path: string, base: string, impl?: PathImpl): boolean;
60
+ /** The slice of `node:path` {@link isInside} needs, so `path.win32` and `path.posix` both fit. */
61
+ export interface PathImpl {
62
+ relative(from: string, to: string): string;
63
+ isAbsolute(p: string): boolean;
64
+ }
41
65
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAU,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;GAOG;AAEH,kFAAkF;AAClF,eAAO,MAAM,eAAe,uLAUlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B;AAED,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,uEAItB,CAAC;AAoBX;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CAkCzB;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAKnE"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAU,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;GAOG;AAEH,kFAAkF;AAClF,eAAO,MAAM,eAAe,uLAUlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B;AAED,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,uEAItB,CAAC;AAoBX;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CAqCzB;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAKnE;AA2SD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,QAAmB,GAAG,OAAO,CAIvF;AAED,kGAAkG;AAClG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC"}
package/dist/contract.js CHANGED
@@ -2,6 +2,7 @@ import { mkdir, mkdtemp, rm } from 'node:fs/promises';
2
2
  import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { isDeepStrictEqual } from 'node:util';
5
+ import nodePath from 'node:path';
5
6
  import { PLACEHOLDER_KEY, readEnv } from './env.js';
6
7
  /**
7
8
  * The adapter contract: the behaviour every adapter must have for capture to work at all.
@@ -54,7 +55,10 @@ export async function checkAdapterContract(adapter, opts = {}) {
54
55
  ['id-format', async () => idFormat(adapter)],
55
56
  ['detect-resolves', () => detectResolves(adapter, base, join(root, 'missing-workspace'))],
56
57
  ['prepare-shape', async () => prepareShape(primary)],
57
- ['redirects-model-traffic', async () => redirectsModelTraffic(primary, base)],
58
+ [
59
+ 'redirects-model-traffic',
60
+ async () => redirectsModelTraffic(primary, base, adapter.capture ?? 'env'),
61
+ ],
58
62
  ['no-invented-keys', () => noInventedKeys(adapter, base)],
59
63
  ['no-ctx-mutation', () => noCtxMutation(adapter, base)],
60
64
  ['deterministic', () => deterministic(adapter, base)],
@@ -177,12 +181,27 @@ function prepareShape(primary) {
177
181
  * the adapter, capture returns nothing while every other signal — exit code, output, the agent's
178
182
  * own answers — still says the run worked.
179
183
  */
180
- function redirectsModelTraffic(primary, base) {
184
+ function redirectsModelTraffic(primary, base, capture) {
181
185
  if ('error' in primary)
182
186
  return notVerified('prepare-shape');
183
187
  const env = primary.launch.env;
184
188
  if (!isStringRecord(env))
185
189
  return notVerified('prepare-shape');
190
+ // An adapter that captures at the transport redirects nothing on purpose: `--tls-intercept`
191
+ // terminates the agent's own TLS, and the run — not the adapter — puts `HTTPS_PROXY` and the run
192
+ // CA into the child's environment. Failing it for "points the harness nowhere" would be scoring
193
+ // it against a mechanism it does not use. It is still held to every other check, including the
194
+ // one below that any origin it *does* set must point at the proxy.
195
+ if (capture === 'transport') {
196
+ const stray = Object.entries(env)
197
+ .filter(([name]) => BASE_URL_LIKE.test(name))
198
+ .filter(([, value]) => !pointsAtHost(value, hostOf(base.proxyUrl) ?? base.proxyUrl));
199
+ if (stray.length > 0) {
200
+ const names = stray.map(([name, value]) => `${name}=${value}`).join(', ');
201
+ return `${names} does not point at the proxy (${base.proxyUrl}); traffic on that origin goes straight to the provider and never reaches the trace`;
202
+ }
203
+ return SKIP;
204
+ }
186
205
  // Any base-URL-shaped variable counts, not only the three orca happens to know: a harness with
187
206
  // its own spelling — grok-cli reads `GROK_BASE_URL` — is redirected just as effectively. So is
188
207
  // an adapter that installs the fetch hook instead, for a harness that reads no variable at all.
@@ -346,11 +365,29 @@ function absolutePaths(value) {
346
365
  }
347
366
  return found;
348
367
  }
349
- function isInside(path, base) {
368
+ /**
369
+ * Whether `path` is `base` or sits under it.
370
+ *
371
+ * Delegated to the platform's own path rules rather than compared as strings. The prefix used to be
372
+ * built with a forward slash only, so on Windows — where `path.join` spells the whole path with
373
+ * backslashes — a file genuinely inside `runDir` never matched, and `no-foreign-paths` called the
374
+ * run's own scratch file foreign. That failed the contract for every adapter that puts a runDir
375
+ * path into the environment: grok, openclaw and node. On POSIX the comparison was true either way,
376
+ * so CI never saw it.
377
+ *
378
+ * Normalising the separators by hand would have swapped one wrong answer for another: a backslash
379
+ * is a legal character in a POSIX filename, so `/tmp/run` + a file called `run\evil` would have
380
+ * read as contained when it is not — a leak check answering yes to the thing it exists to catch.
381
+ *
382
+ * `impl` is a parameter so both flavours are reachable from a test on either OS. The Windows
383
+ * behaviour is the whole reason this function was touched, and a test that can only run on Windows
384
+ * is how the original slipped through.
385
+ */
386
+ export function isInside(path, base, impl = nodePath) {
350
387
  if (base === '')
351
388
  return false;
352
- const prefix = base.endsWith('/') ? base : `${base}/`;
353
- return path === base || path.startsWith(prefix);
389
+ const rel = impl.relative(base, path);
390
+ return rel === '' || (!rel.startsWith('..') && !impl.isAbsolute(rel));
354
391
  }
355
392
  const SEMVER_COMPARATOR = /^(?:[<>]=?|=|[~^])?v?(?:\d+|[xX*])(?:\.(?:\d+|[xX*]))?(?:\.(?:\d+|[xX*]))?(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
356
393
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { Adapter } from '@orcareplay/plugin-api';
2
+ /**
3
+ * Cursor's terminal agent, which has nothing to redirect.
4
+ *
5
+ * Every other harness here reads an origin from somewhere orca can reach. Cursor reads none: the
6
+ * agent stream goes to hosts of Cursor's own over HTTP/2 exclusively, in Connect-over-protobuf,
7
+ * and the endpoint is compiled in. So this adapter sets no variables at all and the redirect
8
+ * happens underneath it, at the socket, when the run is given `--tls-intercept`.
9
+ *
10
+ * Two things an operator has to supply, because this adapter cannot:
11
+ *
12
+ * - **The hosts.** `DEFAULT_TLS_HOSTS` does not carry Cursor's, deliberately: a recorded run
13
+ * reached `api2.cursor.sh`, `repo42.cursor.sh` and `agentn.global.api5.cursor.sh`, and the
14
+ * shard numbers in the last two vary per account, so covering them needs a wildcard —
15
+ * `--tls-hosts '+*.cursor.sh'`. Putting a wildcard over a vendor's whole domain into the
16
+ * default list would decrypt its sign-in origins too, which is the one thing that list
17
+ * promises not to do. So it stays an explicit opt-in.
18
+ * - **`--trust`.** The agent refuses to run non-interactively in a directory it has not been
19
+ * trusted in. Passing it is the operator's call, not this adapter's: it is a permission grant,
20
+ * and an adapter that quietly granted permissions on someone's behalf would be a worse bug
21
+ * than the inconvenience it saved.
22
+ *
23
+ * The installer ships two shims, `cursor-agent` and `agent`, byte-identical and in the same
24
+ * directory: both run `versions/<build>/index.js` through the bundled node, and
25
+ * `CURSOR_INVOKED_AS` is how the tool learns which name it was called by. Its own usage text
26
+ * says `agent`, the shorter and more natural one. `cursor-agent` is launched here anyway,
27
+ * because a bare `agent` on PATH is generic enough to belong to something else, and since the
28
+ * two shims sit in one directory, whichever name resolves means both do.
29
+ *
30
+ * On Windows that directory is `%LOCALAPPDATA%\cursor-agent\` and the installer does not add
31
+ * it to PATH, so `orca record cursor` reports ENOENT until it is. Loud rather than silent, which
32
+ * is the tradeoff for a fixture that means the same thing on every machine;
33
+ * `orca record exec -- <full path to the shim> ...` is the way round it.
34
+ *
35
+ * `harnessVersions` is deliberately unset: Cursor ships date-stamped builds
36
+ * (`2026.09.02-c22c1a3`), not semver, so a range would be a claim in a vocabulary the harness
37
+ * does not use. The version the fixture was verified against is recorded in its `note` instead.
38
+ */
39
+ export declare const cursorAdapter: Adapter;
40
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAqB7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,aAAa,EAAE,OAiB3B,CAAC"}
package/dist/cursor.js ADDED
@@ -0,0 +1,71 @@
1
+ import { detectAgent } from './detect.js';
2
+ /**
3
+ * Where the installer puts `cursor-agent`, per platform.
4
+ *
5
+ * Detection only — the launch uses the bare name, like every other adapter, so the fixture stays
6
+ * the same on every machine. What these are for is answering "is this agent even installed here",
7
+ * which matters more than usual because on Windows the installer does *not* put the shim on PATH.
8
+ */
9
+ const CURSOR_AGENT_PATHS = [
10
+ // Windows: %LOCALAPPDATA%\cursor-agent\, which holds both shims
11
+ 'AppData/Local/cursor-agent/cursor-agent.cmd',
12
+ 'AppData/Local/cursor-agent/agent.cmd',
13
+ // macOS and Linux
14
+ '.local/bin/cursor-agent',
15
+ '.local/bin/agent',
16
+ // The editor's own directory, present whether or not the CLI is
17
+ '.cursor',
18
+ ];
19
+ /**
20
+ * Cursor's terminal agent, which has nothing to redirect.
21
+ *
22
+ * Every other harness here reads an origin from somewhere orca can reach. Cursor reads none: the
23
+ * agent stream goes to hosts of Cursor's own over HTTP/2 exclusively, in Connect-over-protobuf,
24
+ * and the endpoint is compiled in. So this adapter sets no variables at all and the redirect
25
+ * happens underneath it, at the socket, when the run is given `--tls-intercept`.
26
+ *
27
+ * Two things an operator has to supply, because this adapter cannot:
28
+ *
29
+ * - **The hosts.** `DEFAULT_TLS_HOSTS` does not carry Cursor's, deliberately: a recorded run
30
+ * reached `api2.cursor.sh`, `repo42.cursor.sh` and `agentn.global.api5.cursor.sh`, and the
31
+ * shard numbers in the last two vary per account, so covering them needs a wildcard —
32
+ * `--tls-hosts '+*.cursor.sh'`. Putting a wildcard over a vendor's whole domain into the
33
+ * default list would decrypt its sign-in origins too, which is the one thing that list
34
+ * promises not to do. So it stays an explicit opt-in.
35
+ * - **`--trust`.** The agent refuses to run non-interactively in a directory it has not been
36
+ * trusted in. Passing it is the operator's call, not this adapter's: it is a permission grant,
37
+ * and an adapter that quietly granted permissions on someone's behalf would be a worse bug
38
+ * than the inconvenience it saved.
39
+ *
40
+ * The installer ships two shims, `cursor-agent` and `agent`, byte-identical and in the same
41
+ * directory: both run `versions/<build>/index.js` through the bundled node, and
42
+ * `CURSOR_INVOKED_AS` is how the tool learns which name it was called by. Its own usage text
43
+ * says `agent`, the shorter and more natural one. `cursor-agent` is launched here anyway,
44
+ * because a bare `agent` on PATH is generic enough to belong to something else, and since the
45
+ * two shims sit in one directory, whichever name resolves means both do.
46
+ *
47
+ * On Windows that directory is `%LOCALAPPDATA%\cursor-agent\` and the installer does not add
48
+ * it to PATH, so `orca record cursor` reports ENOENT until it is. Loud rather than silent, which
49
+ * is the tradeoff for a fixture that means the same thing on every machine;
50
+ * `orca record exec -- <full path to the shim> ...` is the way round it.
51
+ *
52
+ * `harnessVersions` is deliberately unset: Cursor ships date-stamped builds
53
+ * (`2026.09.02-c22c1a3`), not semver, so a range would be a claim in a vocabulary the harness
54
+ * does not use. The version the fixture was verified against is recorded in its `note` instead.
55
+ */
56
+ export const cursorAdapter = {
57
+ id: 'cursor',
58
+ aliases: ['cursor-agent'],
59
+ // Redirecting nothing is the intent, not a defect. See the `capture` field on `Adapter`.
60
+ capture: 'transport',
61
+ async detect(cwd) {
62
+ void cwd;
63
+ return detectAgent(['cursor-agent', 'agent'], CURSOR_AGENT_PATHS);
64
+ },
65
+ async prepare(ctx) {
66
+ // No origin and no credential: the agent authenticates with the session its own sign-in
67
+ // wrote, and there is no variable to point anywhere. An empty overlay is the whole contract.
68
+ return { command: 'cursor-agent', args: [...ctx.userArgs], env: {} };
69
+ },
70
+ };
71
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;IACzB,gEAAgE;IAChE,6CAA6C;IAC7C,sCAAsC;IACtC,kBAAkB;IAClB,yBAAyB;IACzB,kBAAkB;IAClB,gEAAgE;IAChE,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,CAAC,cAAc,CAAC;IAEzB,yFAAyF;IACzF,OAAO,EAAE,WAAW;IAEpB,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,KAAK,GAAG,CAAC;QACT,OAAO,WAAW,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,wFAAwF;QACxF,6FAA6F;QAC7F,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC;CACF,CAAC"}
package/dist/exec.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import type { Adapter } from '@orcareplay/plugin-api';
2
+ /**
3
+ * Any agent at all, captured at the transport.
4
+ *
5
+ * The other adapters here each name a harness and the variable it reads. This one names neither,
6
+ * because the cases it exists for have nothing to name:
7
+ *
8
+ * - a bot with its origin hardcoded in source — a Grok bot posting to `https://api.x.ai/v1`
9
+ * because someone typed that string, which no environment variable will ever move;
10
+ * - an agent in a language the fetch hook cannot reach, which is every language except JS;
11
+ * - an editor that spawns the real agent as a child, where orca launches the editor and the
12
+ * agent inherits the capture two processes down.
13
+ *
14
+ * For all three the redirect happens below the agent, at the socket: `--tls-intercept` terminates
15
+ * the TLS the agent established itself. That is applied by the run rather than by this adapter,
16
+ * which is why `prepare` looks nearly empty — the emptiness is the design.
17
+ *
18
+ * It is deliberately not `generic-openai` with a better name. That adapter sets `OPENAI_BASE_URL`,
19
+ * `OPENAI_API_BASE` and `ANTHROPIC_BASE_URL` at once, which is right when you know your agent
20
+ * reads one of them and actively wrong when you do not: an injected origin silently repoints a
21
+ * harness that would otherwise have called somewhere else, and the trace then describes a run the
22
+ * user never asked for. Pointing an unknown agent nowhere is the honest default.
23
+ */
24
+ export declare const execAdapter: Adapter;
25
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,EAAE,OAiCzB,CAAC"}
package/dist/exec.js ADDED
@@ -0,0 +1,51 @@
1
+ import { applyNamedBaseUrls } from './env.js';
2
+ /**
3
+ * Any agent at all, captured at the transport.
4
+ *
5
+ * The other adapters here each name a harness and the variable it reads. This one names neither,
6
+ * because the cases it exists for have nothing to name:
7
+ *
8
+ * - a bot with its origin hardcoded in source — a Grok bot posting to `https://api.x.ai/v1`
9
+ * because someone typed that string, which no environment variable will ever move;
10
+ * - an agent in a language the fetch hook cannot reach, which is every language except JS;
11
+ * - an editor that spawns the real agent as a child, where orca launches the editor and the
12
+ * agent inherits the capture two processes down.
13
+ *
14
+ * For all three the redirect happens below the agent, at the socket: `--tls-intercept` terminates
15
+ * the TLS the agent established itself. That is applied by the run rather than by this adapter,
16
+ * which is why `prepare` looks nearly empty — the emptiness is the design.
17
+ *
18
+ * It is deliberately not `generic-openai` with a better name. That adapter sets `OPENAI_BASE_URL`,
19
+ * `OPENAI_API_BASE` and `ANTHROPIC_BASE_URL` at once, which is right when you know your agent
20
+ * reads one of them and actively wrong when you do not: an injected origin silently repoints a
21
+ * harness that would otherwise have called somewhere else, and the trace then describes a run the
22
+ * user never asked for. Pointing an unknown agent nowhere is the honest default.
23
+ */
24
+ export const execAdapter = {
25
+ id: 'exec',
26
+ // `any` is what someone types when their agent is not on the list, which is the whole audience.
27
+ aliases: ['any'],
28
+ // Redirecting nothing is the intent, not a defect. See the `capture` field on `Adapter`.
29
+ capture: 'transport',
30
+ async detect(_cwd) {
31
+ // Never automatic. An adapter that does not know what it would be launching must not claim a
32
+ // workspace — the same rule `generic-openai` and `node` follow, for the same reason.
33
+ return false;
34
+ },
35
+ async prepare(ctx) {
36
+ const [command, ...args] = ctx.userArgs;
37
+ if (command === undefined || command === '') {
38
+ throw new Error('exec needs the command to run: orca record exec --tls-intercept -- <command> [args...], ' +
39
+ 'e.g. orca record exec --tls-intercept -- python bot.py');
40
+ }
41
+ // Nothing is invented: no origin, and no credential. An agent recorded this way authenticates
42
+ // with whatever it already had, because orca never learned which provider it talks to.
43
+ const env = {};
44
+ // The one exception, and only because the operator asked for it by name. This is what makes
45
+ // `exec` useful for a harness that reads an unusual variable but has no adapter yet, without
46
+ // needing interception at all.
47
+ applyNamedBaseUrls(env, ctx.env, ctx.proxyUrl);
48
+ return { command, args, env };
49
+ },
50
+ };
51
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,EAAE,EAAE,MAAM;IACV,gGAAgG;IAChG,OAAO,EAAE,CAAC,KAAK,CAAC;IAEhB,yFAAyF;IACzF,OAAO,EAAE,WAAW;IAEpB,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,6FAA6F;QAC7F,qFAAqF;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,0FAA0F;gBACxF,wDAAwD,CAC3D,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,uFAAuF;QACvF,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,4FAA4F;QAC5F,6FAA6F;QAC7F,+BAA+B;QAC/B,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAChC,CAAC;CACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,19 @@
1
1
  export * from './claude-code.js';
2
2
  export * from './codex.js';
3
3
  export * from './contract.js';
4
+ export * from './cursor.js';
4
5
  export * from './detect.js';
5
6
  export * from './env.js';
7
+ export * from './exec.js';
6
8
  export * from './generic-openai.js';
7
9
  export * from './grok.js';
8
10
  export * from './node.js';
9
11
  export * from './openclaw.js';
10
12
  export * from './mcp-config.js';
13
+ export * from './kilo.js';
14
+ export * from './mimo.js';
11
15
  export * from './opencode.js';
16
+ export * from './qwen.js';
12
17
  export * from './registry.js';
13
18
  export * from './scaffold.js';
14
19
  export * from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,19 @@
1
1
  export * from './claude-code.js';
2
2
  export * from './codex.js';
3
3
  export * from './contract.js';
4
+ export * from './cursor.js';
4
5
  export * from './detect.js';
5
6
  export * from './env.js';
7
+ export * from './exec.js';
6
8
  export * from './generic-openai.js';
7
9
  export * from './grok.js';
8
10
  export * from './node.js';
9
11
  export * from './openclaw.js';
10
12
  export * from './mcp-config.js';
13
+ export * from './kilo.js';
14
+ export * from './mimo.js';
11
15
  export * from './opencode.js';
16
+ export * from './qwen.js';
12
17
  export * from './registry.js';
13
18
  export * from './scaffold.js';
14
19
  export * from './session.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
package/dist/kilo.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import type { Adapter } from '@orcareplay/plugin-api';
2
+ /**
3
+ * Kilo Code's CLI — another OpenCode fork, captured the way the others are.
4
+ *
5
+ * Nothing is redirected, for the reason the whole OpenCode family shares: the provider origin
6
+ * lives in the harness's own config rather than in an environment variable, so `OPENAI_BASE_URL`
7
+ * leaves the run talking straight past the proxy. `--tls-intercept` terminates the TLS the agent
8
+ * established itself, and `api.kilo.ai` is in `DEFAULT_TLS_HOSTS` so the built-in `kilo/*` models
9
+ * need no extra `--tls-hosts`.
10
+ *
11
+ * One thing worth knowing before recording it: Kilo checks entitlement locally, before it opens a
12
+ * connection. A model the account cannot use fails with "You need to sign in to use this model"
13
+ * and no request is ever sent, so there is nothing to capture — unlike MiMo, which sends the
14
+ * request and lets the server reject it. `kilo/kilo-auto/free` is reachable without a paid plan
15
+ * and is what the fixture below was verified against.
16
+ *
17
+ * Kilo also posts to `us.i.posthog.com`. That is not a model API and is not in the allowlist, so
18
+ * it stays tunnelled: orca records that the connection happened and reads none of it.
19
+ */
20
+ export declare const kiloAdapter: Adapter;
21
+ //# sourceMappingURL=kilo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../src/kilo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,EAAE,OAiBzB,CAAC"}
package/dist/kilo.js ADDED
@@ -0,0 +1,35 @@
1
+ import { detectAgent } from './detect.js';
2
+ /**
3
+ * Kilo Code's CLI — another OpenCode fork, captured the way the others are.
4
+ *
5
+ * Nothing is redirected, for the reason the whole OpenCode family shares: the provider origin
6
+ * lives in the harness's own config rather than in an environment variable, so `OPENAI_BASE_URL`
7
+ * leaves the run talking straight past the proxy. `--tls-intercept` terminates the TLS the agent
8
+ * established itself, and `api.kilo.ai` is in `DEFAULT_TLS_HOSTS` so the built-in `kilo/*` models
9
+ * need no extra `--tls-hosts`.
10
+ *
11
+ * One thing worth knowing before recording it: Kilo checks entitlement locally, before it opens a
12
+ * connection. A model the account cannot use fails with "You need to sign in to use this model"
13
+ * and no request is ever sent, so there is nothing to capture — unlike MiMo, which sends the
14
+ * request and lets the server reject it. `kilo/kilo-auto/free` is reachable without a paid plan
15
+ * and is what the fixture below was verified against.
16
+ *
17
+ * Kilo also posts to `us.i.posthog.com`. That is not a model API and is not in the allowlist, so
18
+ * it stays tunnelled: orca records that the connection happened and reads none of it.
19
+ */
20
+ export const kiloAdapter = {
21
+ id: 'kilo',
22
+ aliases: ['kilocode', 'kilo-code'],
23
+ harnessVersions: '>=7.5.9',
24
+ // Redirecting nothing is the intent, not a defect. See the `capture` field on `Adapter`.
25
+ capture: 'transport',
26
+ async detect(_cwd) {
27
+ return detectAgent(['kilo', 'kilocode'], ['.config/kilo', '.kilo']);
28
+ },
29
+ async prepare(ctx) {
30
+ // No origin and no credential: both live in the harness's own config and credential store,
31
+ // and an adapter that injected either would override a choice made there.
32
+ return { command: 'kilo', args: [...ctx.userArgs], env: {} };
33
+ },
34
+ };
35
+ //# sourceMappingURL=kilo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.js","sourceRoot":"","sources":["../src/kilo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;IAClC,eAAe,EAAE,SAAS;IAE1B,yFAAyF;IACzF,OAAO,EAAE,WAAW;IAEpB,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,WAAW,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,2FAA2F;QAC3F,0EAA0E;QAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC"}
package/dist/mimo.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import type { Adapter } from '@orcareplay/plugin-api';
2
+ /**
3
+ * MiMo Code, Xiaomi's terminal agent — an OpenCode fork, captured the way OpenCode is.
4
+ *
5
+ * Nothing is redirected, and that is inherited rather than chosen: like OpenCode, MiMo keeps its
6
+ * provider origin in a config file (`~/.config/mimocode/mimocode.jsonc`) rather than in an
7
+ * environment variable, so `OPENAI_BASE_URL` leaves the run talking straight past the proxy. The
8
+ * route that works is the one orca built for an origin that cannot be moved — `--tls-intercept`
9
+ * terminates the TLS the agent established itself, and the config is left alone.
10
+ *
11
+ * Being a fork does *not* mean it inherits an OpenCode installation. The two read parallel
12
+ * directories, `~/.config/mimocode/` beside `~/.config/opencode/`, so a machine with OpenCode
13
+ * configured still starts MiMo on Xiaomi's own provider. The config *shape* is shared, which is
14
+ * what makes a provider block copied from one work in the other.
15
+ *
16
+ * `api.xiaomimimo.com` is in `DEFAULT_TLS_HOSTS`, so no extra `--tls-hosts` is needed for the
17
+ * built-in `xiaomi/*` and `mimo/*` models. A provider of your own pointed at a plain-HTTP gateway
18
+ * is a different matter: orca sets `HTTPS_PROXY` and not `HTTP_PROXY`, so that traffic is neither
19
+ * redirected nor decrypted and the run records nothing.
20
+ *
21
+ * A credential is not required to capture the prompt. MiMo sends the request and lets the server
22
+ * reject it, and the system prompt is in the request — so an invalid key still yields a complete
23
+ * capture, which is how the fixture below was verified.
24
+ */
25
+ export declare const mimoAdapter: Adapter;
26
+ //# sourceMappingURL=mimo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mimo.d.ts","sourceRoot":"","sources":["../src/mimo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,EAAE,OAiBzB,CAAC"}
package/dist/mimo.js ADDED
@@ -0,0 +1,40 @@
1
+ import { detectAgent } from './detect.js';
2
+ /**
3
+ * MiMo Code, Xiaomi's terminal agent — an OpenCode fork, captured the way OpenCode is.
4
+ *
5
+ * Nothing is redirected, and that is inherited rather than chosen: like OpenCode, MiMo keeps its
6
+ * provider origin in a config file (`~/.config/mimocode/mimocode.jsonc`) rather than in an
7
+ * environment variable, so `OPENAI_BASE_URL` leaves the run talking straight past the proxy. The
8
+ * route that works is the one orca built for an origin that cannot be moved — `--tls-intercept`
9
+ * terminates the TLS the agent established itself, and the config is left alone.
10
+ *
11
+ * Being a fork does *not* mean it inherits an OpenCode installation. The two read parallel
12
+ * directories, `~/.config/mimocode/` beside `~/.config/opencode/`, so a machine with OpenCode
13
+ * configured still starts MiMo on Xiaomi's own provider. The config *shape* is shared, which is
14
+ * what makes a provider block copied from one work in the other.
15
+ *
16
+ * `api.xiaomimimo.com` is in `DEFAULT_TLS_HOSTS`, so no extra `--tls-hosts` is needed for the
17
+ * built-in `xiaomi/*` and `mimo/*` models. A provider of your own pointed at a plain-HTTP gateway
18
+ * is a different matter: orca sets `HTTPS_PROXY` and not `HTTP_PROXY`, so that traffic is neither
19
+ * redirected nor decrypted and the run records nothing.
20
+ *
21
+ * A credential is not required to capture the prompt. MiMo sends the request and lets the server
22
+ * reject it, and the system prompt is in the request — so an invalid key still yields a complete
23
+ * capture, which is how the fixture below was verified.
24
+ */
25
+ export const mimoAdapter = {
26
+ id: 'mimo',
27
+ aliases: ['mimo-code', 'mimocode'],
28
+ harnessVersions: '>=0.1.14',
29
+ // Redirecting nothing is the intent, not a defect. See the `capture` field on `Adapter`.
30
+ capture: 'transport',
31
+ async detect(_cwd) {
32
+ return detectAgent(['mimo'], ['.config/mimocode', '.mimocode']);
33
+ },
34
+ async prepare(ctx) {
35
+ // No origin and no credential: both live in the harness's own config, and an adapter that
36
+ // injected either would be overriding a choice the operator already made there.
37
+ return { command: 'mimo', args: [...ctx.userArgs], env: {} };
38
+ },
39
+ };
40
+ //# sourceMappingURL=mimo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mimo.js","sourceRoot":"","sources":["../src/mimo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IAClC,eAAe,EAAE,UAAU;IAE3B,yFAAyF;IACzF,OAAO,EAAE,WAAW;IAEpB,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,0FAA0F;QAC1F,gFAAgF;QAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC"}