@namzu/cli 0.2.3 → 0.3.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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +1 -1
- package/dist/commands/__tests__/eval.test.d.ts +2 -0
- package/dist/commands/__tests__/eval.test.d.ts.map +1 -0
- package/dist/commands/__tests__/eval.test.js +165 -0
- package/dist/commands/__tests__/eval.test.js.map +1 -0
- package/dist/commands/__tests__/passthrough-help.test.d.ts +2 -0
- package/dist/commands/__tests__/passthrough-help.test.d.ts.map +1 -0
- package/dist/commands/__tests__/passthrough-help.test.js +96 -0
- package/dist/commands/__tests__/passthrough-help.test.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +5 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +4 -4
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/eval.d.ts +54 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +187 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +14 -4
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +20 -0
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/tools.js +1 -1
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/types.d.ts +13 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/doctor/checks/sandbox.d.ts +11 -1
- package/dist/doctor/checks/sandbox.d.ts.map +1 -1
- package/dist/doctor/checks/sandbox.js +68 -34
- package/dist/doctor/checks/sandbox.js.map +1 -1
- package/dist/doctor/checks/sandbox.test.d.ts +2 -0
- package/dist/doctor/checks/sandbox.test.d.ts.map +1 -0
- package/dist/doctor/checks/sandbox.test.js +59 -0
- package/dist/doctor/checks/sandbox.test.js.map +1 -0
- package/dist/exit-codes.d.ts +7 -1
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +6 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/integrations/clawtool/binary.test.js +9 -1
- package/dist/integrations/clawtool/binary.test.js.map +1 -1
- package/dist/integrations/clawtool/dispatch.d.ts +2 -2
- package/dist/integrations/clawtool/dispatch.js +4 -4
- package/dist/integrations/clawtool/dispatch.js.map +1 -1
- package/dist/integrations/clawtool/mcp.d.ts.map +1 -1
- package/dist/integrations/clawtool/mcp.js +20 -2
- package/dist/integrations/clawtool/mcp.js.map +1 -1
- package/dist/integrations/clawtool/tooling.d.ts +8 -6
- package/dist/integrations/clawtool/tooling.d.ts.map +1 -1
- package/dist/integrations/clawtool/tooling.js +8 -6
- package/dist/integrations/clawtool/tooling.js.map +1 -1
- package/dist/integrations/clipboard/image.d.ts +0 -1
- package/dist/integrations/clipboard/image.d.ts.map +1 -1
- package/dist/integrations/clipboard/image.js +0 -1
- package/dist/integrations/clipboard/image.js.map +1 -1
- package/dist/integrations/providers/discover.d.ts +1 -1
- package/dist/integrations/providers/discover.js +9 -9
- package/dist/integrations/providers/discover.js.map +1 -1
- package/dist/integrations/providers/index.d.ts +2 -2
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/index.js +2 -2
- package/dist/integrations/providers/index.js.map +1 -1
- package/dist/integrations/providers/keychain.d.ts +17 -16
- package/dist/integrations/providers/keychain.d.ts.map +1 -1
- package/dist/integrations/providers/keychain.js +19 -19
- package/dist/integrations/providers/keychain.js.map +1 -1
- package/dist/integrations/providers/oauth.d.ts +7 -8
- package/dist/integrations/providers/oauth.d.ts.map +1 -1
- package/dist/integrations/providers/oauth.js +13 -11
- package/dist/integrations/providers/oauth.js.map +1 -1
- package/dist/integrations/providers/oauth.test.js +8 -8
- package/dist/integrations/providers/oauth.test.js.map +1 -1
- package/dist/integrations/providers/preferences.test.js +9 -1
- package/dist/integrations/providers/preferences.test.js.map +1 -1
- package/dist/integrations/providers/registry.d.ts +2 -3
- package/dist/integrations/providers/registry.d.ts.map +1 -1
- package/dist/integrations/providers/registry.js +3 -4
- package/dist/integrations/providers/registry.js.map +1 -1
- package/dist/integrations/providers/store.d.ts +1 -1
- package/dist/integrations/providers/store.js +1 -1
- package/dist/integrations/providers/store.test.js +9 -1
- package/dist/integrations/providers/store.test.js.map +1 -1
- package/dist/integrations/trust/store.d.ts +2 -2
- package/dist/integrations/trust/store.js +2 -2
- package/dist/memory/store.d.ts +1 -1
- package/dist/memory/store.js +1 -1
- package/dist/output/rendered-payload.test.d.ts +2 -0
- package/dist/output/rendered-payload.test.d.ts.map +1 -0
- package/dist/output/rendered-payload.test.js +61 -0
- package/dist/output/rendered-payload.test.js.map +1 -0
- package/dist/output/text.js +14 -0
- package/dist/output/text.js.map +1 -1
- package/dist/tui/App.js +4 -2
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Markdown.d.ts +2 -1
- package/dist/tui/Markdown.d.ts.map +1 -1
- package/dist/tui/Markdown.js +2 -1
- package/dist/tui/Markdown.js.map +1 -1
- package/dist/tui/Transcript.js +3 -2
- package/dist/tui/Transcript.js.map +1 -1
- package/dist/tui/TrustPrompt.d.ts +1 -1
- package/dist/tui/TrustPrompt.js +1 -1
- package/dist/tui/agent.d.ts +1 -1
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +46 -17
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/index.js +1 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/mentions.d.ts +2 -2
- package/dist/tui/mentions.js +2 -2
- package/dist/tui/theme.d.ts +4 -3
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +4 -3
- package/dist/tui/theme.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { describeIsolationHealth, sandboxPlatformCheck } from './sandbox.js';
|
|
3
|
+
/**
|
|
4
|
+
* The check used to switch on `process.platform` and answer from a table
|
|
5
|
+
* written beside it, which drifted from the runtime in both directions:
|
|
6
|
+
* it called the Linux probe unimplemented long after the provider began
|
|
7
|
+
* probing real flags, and it told a Windows operator that sandboxing is
|
|
8
|
+
* "not supported" full stop — true of the in-process tier, silent about
|
|
9
|
+
* the container tier that runs there.
|
|
10
|
+
*
|
|
11
|
+
* The verdict is tested apart from the probe on purpose. Driving the
|
|
12
|
+
* whole check can only ever exercise the outcome THIS machine produces,
|
|
13
|
+
* so the branches for the other tiers would rot unnoticed — and did: an
|
|
14
|
+
* earlier version of this file guarded every assertion behind the status
|
|
15
|
+
* it happened to get, which made two of them unreachable here.
|
|
16
|
+
*/
|
|
17
|
+
const verdict = (environment) => describeIsolationHealth(environment);
|
|
18
|
+
describe('the verdict for a host that enforces everything', () => {
|
|
19
|
+
it('passes, and names every control it is claiming', () => {
|
|
20
|
+
const result = verdict('macos-seatbelt');
|
|
21
|
+
expect(result.status).toBe('pass');
|
|
22
|
+
expect(result.message).toBe('macos-seatbelt enforces filesystem, network, process');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('the verdict for a host that enforces some of it', () => {
|
|
26
|
+
it('warns rather than passing', () => {
|
|
27
|
+
// The run that depended on the missing control is the one that gets
|
|
28
|
+
// hurt, so a partial boundary is not a whole one.
|
|
29
|
+
expect(verdict('linux-namespace').status).toBe('warn');
|
|
30
|
+
});
|
|
31
|
+
it('names what is missing, not just that something is', () => {
|
|
32
|
+
const result = verdict('linux-namespace');
|
|
33
|
+
expect(result.message).toContain('enforces network, process');
|
|
34
|
+
expect(result.message).toContain('but not filesystem');
|
|
35
|
+
});
|
|
36
|
+
it('says what to do about it', () => {
|
|
37
|
+
expect(verdict('linux-namespace').remediation).toContain('requireIsolation');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('the verdict for a host that enforces nothing', () => {
|
|
41
|
+
it('warns and says so plainly', () => {
|
|
42
|
+
const result = verdict('basic');
|
|
43
|
+
expect(result.status).toBe('warn');
|
|
44
|
+
expect(result.message).toContain('enforces nothing');
|
|
45
|
+
expect(result.message).toContain('unconfined');
|
|
46
|
+
});
|
|
47
|
+
it('points at the boundary that does work there', () => {
|
|
48
|
+
// "Not supported", with nowhere to go, is what this replaced.
|
|
49
|
+
expect(verdict('basic').remediation).toContain('container');
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('the check itself', () => {
|
|
53
|
+
it('answers from the provider rather than from the OS name', async () => {
|
|
54
|
+
const result = await sandboxPlatformCheck.run({});
|
|
55
|
+
expect(['pass', 'warn', 'fail']).toContain(result.status);
|
|
56
|
+
expect(result.message).toMatch(/^(basic|linux-namespace|macos-seatbelt|sandbox probe failed)/);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=sandbox.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.test.js","sourceRoot":"","sources":["../../../src/doctor/checks/sandbox.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAE5E;;;;;;;;;;;;;GAaG;AAEH,MAAM,OAAO,GAAG,CAAC,WAA+B,EAAE,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAA;AAEzF,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAChE,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAExC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAChE,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACpC,oEAAoE;QACpE,kDAAkD;QAClD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAA;QAC7D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC7D,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAE/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACtD,8DAA8D;QAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,EAAW,CAAC,CAAA;QAE1D,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/dist/exit-codes.d.ts
CHANGED
|
@@ -6,11 +6,17 @@
|
|
|
6
6
|
* 1 EXIT_FAIL — one or more checks reported `fail`
|
|
7
7
|
* 2 EXIT_NO_CONFIG — Namzu is not configured in this environment
|
|
8
8
|
* (no checks registered, no config file found)
|
|
9
|
+
* 64 EXIT_USAGE — sysexits EX_USAGE; the caller's arguments are
|
|
10
|
+
* wrong. Distinct from 70 on purpose: 70 says the
|
|
11
|
+
* CLI is broken and is worth a bug report, 64 says
|
|
12
|
+
* the invocation is, and reporting one as the other
|
|
13
|
+
* sends the reader looking in the wrong place.
|
|
9
14
|
* 70 EXIT_INTERNAL_ERROR — sysexits EX_SOFTWARE; internal CLI error
|
|
10
15
|
*/
|
|
11
16
|
export declare const EXIT_OK = 0;
|
|
12
17
|
export declare const EXIT_FAIL = 1;
|
|
13
18
|
export declare const EXIT_NO_CONFIG = 2;
|
|
19
|
+
export declare const EXIT_USAGE = 64;
|
|
14
20
|
export declare const EXIT_INTERNAL_ERROR = 70;
|
|
15
|
-
export type CliExitCode = typeof EXIT_OK | typeof EXIT_FAIL | typeof EXIT_NO_CONFIG | typeof EXIT_INTERNAL_ERROR;
|
|
21
|
+
export type CliExitCode = typeof EXIT_OK | typeof EXIT_FAIL | typeof EXIT_NO_CONFIG | typeof EXIT_USAGE | typeof EXIT_INTERNAL_ERROR;
|
|
16
22
|
//# sourceMappingURL=exit-codes.d.ts.map
|
package/dist/exit-codes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,IAAI,CAAA;AACxB,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,cAAc,IAAI,CAAA;AAC/B,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC,MAAM,MAAM,WAAW,GACpB,OAAO,OAAO,GACd,OAAO,SAAS,GAChB,OAAO,cAAc,GACrB,OAAO,UAAU,GACjB,OAAO,mBAAmB,CAAA"}
|
package/dist/exit-codes.js
CHANGED
|
@@ -6,10 +6,16 @@
|
|
|
6
6
|
* 1 EXIT_FAIL — one or more checks reported `fail`
|
|
7
7
|
* 2 EXIT_NO_CONFIG — Namzu is not configured in this environment
|
|
8
8
|
* (no checks registered, no config file found)
|
|
9
|
+
* 64 EXIT_USAGE — sysexits EX_USAGE; the caller's arguments are
|
|
10
|
+
* wrong. Distinct from 70 on purpose: 70 says the
|
|
11
|
+
* CLI is broken and is worth a bug report, 64 says
|
|
12
|
+
* the invocation is, and reporting one as the other
|
|
13
|
+
* sends the reader looking in the wrong place.
|
|
9
14
|
* 70 EXIT_INTERNAL_ERROR — sysexits EX_SOFTWARE; internal CLI error
|
|
10
15
|
*/
|
|
11
16
|
export const EXIT_OK = 0;
|
|
12
17
|
export const EXIT_FAIL = 1;
|
|
13
18
|
export const EXIT_NO_CONFIG = 2;
|
|
19
|
+
export const EXIT_USAGE = 64;
|
|
14
20
|
export const EXIT_INTERNAL_ERROR = 70;
|
|
15
21
|
//# sourceMappingURL=exit-codes.js.map
|
package/dist/exit-codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAA;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAA"}
|
|
@@ -3,6 +3,14 @@ import { tmpdir } from 'node:os';
|
|
|
3
3
|
import { delimiter, join } from 'node:path';
|
|
4
4
|
import { describe, expect, it } from 'vitest';
|
|
5
5
|
import { ClawtoolBinaryError, findBinary } from './binary.js';
|
|
6
|
+
/**
|
|
7
|
+
* POSIX file modes do not exist on Windows: `chmod` is a no-op there and
|
|
8
|
+
* `fs.stat().mode` reports a fixed value, so these cases assert a
|
|
9
|
+
* permission the platform cannot enforce. Skipping keeps the suite
|
|
10
|
+
* meaningful on Windows instead of permanently red — the behavior itself
|
|
11
|
+
* is still covered on Linux and macOS, where it actually matters.
|
|
12
|
+
*/
|
|
13
|
+
const IS_WINDOWS = process.platform === 'win32';
|
|
6
14
|
function execBin(dir, name) {
|
|
7
15
|
const path = join(dir, name);
|
|
8
16
|
writeFileSync(path, '#!/bin/sh\nexit 0\n');
|
|
@@ -15,7 +23,7 @@ describe('findBinary', () => {
|
|
|
15
23
|
const path = execBin(dir, 'clawtool');
|
|
16
24
|
expect(findBinary({ override: path })).toBe(path);
|
|
17
25
|
});
|
|
18
|
-
it('throws when the override is not executable', () => {
|
|
26
|
+
it.skipIf(IS_WINDOWS)('throws when the override is not executable', () => {
|
|
19
27
|
const dir = mkdtempSync(join(tmpdir(), 'namzu-bin-'));
|
|
20
28
|
const path = join(dir, 'clawtool');
|
|
21
29
|
writeFileSync(path, '#!/bin/sh\nexit 0\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.test.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/binary.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7D,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC5B,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;IAC1C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtB,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"binary.test.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/binary.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* upstream CLI's exact wire format.
|
|
6
6
|
*
|
|
7
7
|
* The clawtool server passes through the upstream agent's NDJSON frames
|
|
8
|
-
* verbatim
|
|
9
|
-
*
|
|
8
|
+
* verbatim, and each upstream family emits a different shape. We do
|
|
9
|
+
* **best-effort normalization**: extract any `text` /
|
|
10
10
|
* `content` string fields as visible deltas; collapse `error` lines into
|
|
11
11
|
* error events; everything else (tool_use, tool_result, ping, message
|
|
12
12
|
* envelopes) is silently consumed for now — tool-call surfacing lands
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* upstream CLI's exact wire format.
|
|
6
6
|
*
|
|
7
7
|
* The clawtool server passes through the upstream agent's NDJSON frames
|
|
8
|
-
* verbatim
|
|
9
|
-
*
|
|
8
|
+
* verbatim, and each upstream family emits a different shape. We do
|
|
9
|
+
* **best-effort normalization**: extract any `text` /
|
|
10
10
|
* `content` string fields as visible deltas; collapse `error` lines into
|
|
11
11
|
* error events; everything else (tool_use, tool_result, ping, message
|
|
12
12
|
* envelopes) is silently consumed for now — tool-call surfacing lands
|
|
@@ -135,7 +135,7 @@ function extractText(frame) {
|
|
|
135
135
|
return frame.text;
|
|
136
136
|
if (typeof frame.content === 'string')
|
|
137
137
|
return frame.content;
|
|
138
|
-
//
|
|
138
|
+
// Block-delta shape: { type: 'content_block_delta', delta: { text: '...' } }
|
|
139
139
|
if (frame.delta && typeof frame.delta === 'object') {
|
|
140
140
|
const delta = frame.delta;
|
|
141
141
|
if (typeof delta.text === 'string')
|
|
@@ -143,7 +143,7 @@ function extractText(frame) {
|
|
|
143
143
|
if (typeof delta.content === 'string')
|
|
144
144
|
return delta.content;
|
|
145
145
|
}
|
|
146
|
-
//
|
|
146
|
+
// Choice-delta shape: { choices: [{ delta: { content: '...' } }] }
|
|
147
147
|
const choices = frame.choices;
|
|
148
148
|
if (Array.isArray(choices) && choices[0]?.delta?.content) {
|
|
149
149
|
const v = choices[0].delta.content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/dispatch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/integrations/clawtool/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/integrations/clawtool/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKlE,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,qBAAa,gBAAiB,SAAQ,KAAK;IAGzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;gBADtB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA;CAKvB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,kCAAkC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAsBD,qBAAa,iBAAiB;IAOjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,OAAO,CAAC,EAAE,CAAI;IACd,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEL,IAAI,EAAE,gBAAgB;IAK7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2BzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;YAKrE,GAAG;YAqCH,MAAM;IAWpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,OAAO;YAoBD,YAAY;CAQ1B"}
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* read fully before resolving (clawtool's current handlers return a
|
|
14
14
|
* single event per call).
|
|
15
15
|
*/
|
|
16
|
+
/** Runaway guard for a server whose cursor never ends. */
|
|
17
|
+
const MAX_LIST_PAGES = 100;
|
|
16
18
|
export const MCP_PROTOCOL_VERSION = '2024-11-05';
|
|
17
19
|
export class McpProtocolError extends Error {
|
|
18
20
|
code;
|
|
@@ -49,8 +51,24 @@ export class ClawtoolMcpClient {
|
|
|
49
51
|
}
|
|
50
52
|
async listTools() {
|
|
51
53
|
await this.initialize();
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
// Paged to the end. Sending no cursor and ignoring the one that
|
|
55
|
+
// comes back returns only the first page, so a server that pages
|
|
56
|
+
// its catalogue contributes part of it and nothing says so — the
|
|
57
|
+
// symptom is a model that never uses a tool it was told about.
|
|
58
|
+
const tools = [];
|
|
59
|
+
let cursor;
|
|
60
|
+
for (let page = 1;; page++) {
|
|
61
|
+
const result = await this.rpc('tools/list', cursor === undefined ? {} : { cursor });
|
|
62
|
+
if (Array.isArray(result.tools))
|
|
63
|
+
tools.push(...result.tools);
|
|
64
|
+
const next = result.nextCursor;
|
|
65
|
+
if (typeof next !== 'string' || next.length === 0)
|
|
66
|
+
return tools;
|
|
67
|
+
if (page >= MAX_LIST_PAGES) {
|
|
68
|
+
throw new Error(`tools/list did not stop paging after ${MAX_LIST_PAGES} pages (${tools.length} tools so far).`);
|
|
69
|
+
}
|
|
70
|
+
cursor = next;
|
|
71
|
+
}
|
|
54
72
|
}
|
|
55
73
|
async callTool(name, args) {
|
|
56
74
|
await this.initialize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAA;AAEhD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGhC;IAFV,YACC,OAAe,EACN,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAFL,SAAI,GAAJ,IAAI,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAC/B,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,14 @@ import type { ClawtoolProxyTool } from './plugin.js';
|
|
|
18
18
|
/** Bridged clawtool tools are namespaced under this prefix. */
|
|
19
19
|
export declare const CLAWTOOL_TOOL_PREFIX = "clawtool_";
|
|
20
20
|
/**
|
|
21
|
-
* clawtool tools namzu never bridges (bare lowercased names).
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
21
|
+
* clawtool tools namzu never bridges (bare lowercased names).
|
|
22
|
+
*
|
|
23
|
+
* The `Agent*` family is clawtool's on-disk persona manager. It writes
|
|
24
|
+
* agent definitions into a third-party tool's configuration directory —
|
|
25
|
+
* a mechanism namzu neither owns nor reads, and one that is redundant with
|
|
26
|
+
* (and confusing alongside) namzu's own in-memory dynamic sub-agents.
|
|
27
|
+
* namzu defines and dispatches sub-agents natively, so these are dropped
|
|
28
|
+
* before they reach the model.
|
|
27
29
|
*/
|
|
28
30
|
export declare const EXCLUDED_CLAWTOOL_TOOLS: Set<string>;
|
|
29
31
|
/** Whether a bridged clawtool tool (by its bare name) is excluded from namzu. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooling.d.ts","sourceRoot":"","sources":["../../../src/integrations/clawtool/tooling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,KAAK,2BAA2B,EAAwB,MAAM,aAAa,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAE/C
|
|
1
|
+
{"version":3,"file":"tooling.d.ts","sourceRoot":"","sources":["../../../src/integrations/clawtool/tooling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,KAAK,2BAA2B,EAAwB,MAAM,aAAa,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,aAAoD,CAAA;AAExF,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAkBjF;AAED,MAAM,WAAW,wBAAyB,SAAQ,2BAA2B;IAC5E,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAChD,IAAI,GAAE,wBAA6B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC,CAc3B"}
|
|
@@ -18,12 +18,14 @@ const DEFAULT_LOAD_TIMEOUT_MS = 5_000;
|
|
|
18
18
|
/** Bridged clawtool tools are namespaced under this prefix. */
|
|
19
19
|
export const CLAWTOOL_TOOL_PREFIX = 'clawtool_';
|
|
20
20
|
/**
|
|
21
|
-
* clawtool tools namzu never bridges (bare lowercased names).
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
21
|
+
* clawtool tools namzu never bridges (bare lowercased names).
|
|
22
|
+
*
|
|
23
|
+
* The `Agent*` family is clawtool's on-disk persona manager. It writes
|
|
24
|
+
* agent definitions into a third-party tool's configuration directory —
|
|
25
|
+
* a mechanism namzu neither owns nor reads, and one that is redundant with
|
|
26
|
+
* (and confusing alongside) namzu's own in-memory dynamic sub-agents.
|
|
27
|
+
* namzu defines and dispatches sub-agents natively, so these are dropped
|
|
28
|
+
* before they reach the model.
|
|
27
29
|
*/
|
|
28
30
|
export const EXCLUDED_CLAWTOOL_TOOLS = new Set(['agentnew', 'agentlist', 'agentdetect']);
|
|
29
31
|
/** Whether a bridged clawtool tool (by its bare name) is excluded from namzu. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooling.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/tooling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAEN,UAAU,EACV,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAoC,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGpF,MAAM,uBAAuB,GAAG,KAAK,CAAA;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAE/C
|
|
1
|
+
{"version":3,"file":"tooling.js","sourceRoot":"","sources":["../../../src/integrations/clawtool/tooling.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* `xclip` then `wl-paste`; Windows uses PowerShell. Non-throwing — any
|
|
8
8
|
* failure (no image on the clipboard, tool missing) returns `null`.
|
|
9
9
|
*
|
|
10
|
-
* Pattern mirrors Claude Code's `utils/imagePaste.ts` clipboard plumbing.
|
|
11
10
|
*/
|
|
12
11
|
export interface ClipboardImage {
|
|
13
12
|
/** Base64-encoded PNG bytes (no `data:` prefix). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/integrations/clipboard/image.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/integrations/clipboard/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,cAAc;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAC/B;AAID,wBAAgB,kBAAkB,IAAI,cAAc,GAAG,IAAI,CAgB1D"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* `xclip` then `wl-paste`; Windows uses PowerShell. Non-throwing — any
|
|
8
8
|
* failure (no image on the clipboard, tool missing) returns `null`.
|
|
9
9
|
*
|
|
10
|
-
* Pattern mirrors Claude Code's `utils/imagePaste.ts` clipboard plumbing.
|
|
11
10
|
*/
|
|
12
11
|
import { execFileSync } from 'node:child_process';
|
|
13
12
|
import { readFileSync, rmSync } from 'node:fs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/integrations/clipboard/image.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/integrations/clipboard/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAQhC,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,UAAU,kBAAkB;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC;QACJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACjC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;IAChE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;YAAS,CAAC;QACV,IAAI,CAAC;YACJ,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,sBAAsB;QACvB,CAAC;IACF,CAAC;AACF,CAAC;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAc,EAAW,EAAE;QACpD,IAAI,CAAC;YACJ,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YACvF,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAW,EAAE;QAC5C,IAAI,CAAC;YACJ,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBACvC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACrC,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC,CAAA;IAED,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACpB,KAAK,QAAQ;YACZ,OAAO,GAAG,CAAC,WAAW,EAAE;gBACvB,IAAI;gBACJ,iDAAiD;gBACjD,IAAI;gBACJ,yCAAyC,IAAI,yBAAyB;gBACtE,IAAI;gBACJ,sBAAsB;gBACtB,IAAI;gBACJ,iBAAiB;aACjB,CAAC,CAAA;QACH,KAAK,OAAO;YACX,OAAO,CACN,QAAQ,CAAC,iDAAiD,IAAI,eAAe,CAAC;gBAC9E,QAAQ,CAAC,gCAAgC,IAAI,eAAe,CAAC,CAC7D,CAAA;QACF,KAAK,OAAO;YACX,OAAO,GAAG,CAAC,YAAY,EAAE;gBACxB,YAAY;gBACZ,UAAU;gBACV,8DAA8D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,iEAAiE;aACvJ,CAAC,CAAA;QACH;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC"}
|
|
@@ -38,7 +38,7 @@ export interface DetectedProvider {
|
|
|
38
38
|
readonly baseUrl?: string;
|
|
39
39
|
/**
|
|
40
40
|
* OAuth refresh metadata, present only when `apiKey` is an OAuth access
|
|
41
|
-
* token carrying a refresh token + expiry (the
|
|
41
|
+
* token carrying a refresh token + expiry (the Keychain source). Lets
|
|
42
42
|
* the session layer renew a lapsed token instead of failing with a 401.
|
|
43
43
|
*/
|
|
44
44
|
readonly oauth?: {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Discovery is non-throwing. Network probes have short timeouts. The
|
|
14
14
|
* picker can render immediately and refine if discovery completes later.
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
16
|
+
import { KEYCHAIN_SERVICE, readAgentKeychainCredential } from './keychain.js';
|
|
17
17
|
import { PROVIDER_REGISTRY } from './registry.js';
|
|
18
18
|
import { readClawtoolSecrets } from './secrets.js';
|
|
19
19
|
const DEFAULT_PROBE_TIMEOUT_MS = 500;
|
|
@@ -21,10 +21,10 @@ export async function discoverProviders(opts = {}) {
|
|
|
21
21
|
const env = opts.env ?? process.env;
|
|
22
22
|
const secrets = readClawtoolSecrets(opts.home);
|
|
23
23
|
const detected = [];
|
|
24
|
-
// macOS-only: read
|
|
24
|
+
// macOS-only: read the third-party OAuth credential stored in the login
|
|
25
25
|
// Keychain once. Only anthropic consumes it, but we scan up front so
|
|
26
26
|
// the loop body stays uniform.
|
|
27
|
-
const
|
|
27
|
+
const keychainCredential = opts.skipKeychain ? null : readAgentKeychainCredential();
|
|
28
28
|
for (const id of Object.keys(PROVIDER_REGISTRY)) {
|
|
29
29
|
const entry = PROVIDER_REGISTRY[id];
|
|
30
30
|
const sources = [];
|
|
@@ -45,16 +45,16 @@ export async function discoverProviders(opts = {}) {
|
|
|
45
45
|
sources.push({ kind: 'secrets-toml', envName: cand.envName, scope: cand.scope });
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
if (id === 'anthropic' &&
|
|
48
|
+
if (id === 'anthropic' && keychainCredential) {
|
|
49
49
|
if (apiKey === undefined)
|
|
50
|
-
apiKey =
|
|
51
|
-
sources.push({ kind: 'keychain', service:
|
|
50
|
+
apiKey = keychainCredential.accessToken;
|
|
51
|
+
sources.push({ kind: 'keychain', service: KEYCHAIN_SERVICE });
|
|
52
52
|
// Only carry refresh metadata when the Keychain token is the one we'll
|
|
53
53
|
// actually use (an env/secrets token has no refresh path).
|
|
54
|
-
if (apiKey ===
|
|
54
|
+
if (apiKey === keychainCredential.accessToken) {
|
|
55
55
|
oauth = {
|
|
56
|
-
refreshToken:
|
|
57
|
-
expiresAt:
|
|
56
|
+
refreshToken: keychainCredential.refreshToken,
|
|
57
|
+
expiresAt: keychainCredential.expiresAt,
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { type DetectedProvider, type DetectionSource, type DiscoverOptions, discoverProviders, findDetected, } from './discover.js';
|
|
2
|
-
export { type
|
|
2
|
+
export { type AgentOAuthCredential, isAnthropicOAuthToken, readAgentKeychainCredential, } from './keychain.js';
|
|
3
3
|
export { maskSecret } from './mask.js';
|
|
4
|
-
export { ensureFreshAnthropicToken, type OAuthMetadata,
|
|
4
|
+
export { ensureFreshAnthropicToken, type OAuthMetadata, refreshAgentOAuthToken, } from './oauth.js';
|
|
5
5
|
export { type Preferences, PREFERENCES_FILE_VERSION, PreferencesError, preferencesPath, type ReadResult, readPreferences, writePreferences, } from './preferences.js';
|
|
6
6
|
export { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, type ProviderId, type ProviderRegistryEntry, type SdkProviderType, } from './registry.js';
|
|
7
7
|
export { clawtoolSecretsPath, readClawtoolSecrets, type SecretCandidate } from './secrets.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EACzB,KAAK,aAAa,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,KAAK,WAAW,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAG7F,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { discoverProviders, findDetected, } from './discover.js';
|
|
2
|
-
export { isAnthropicOAuthToken,
|
|
2
|
+
export { isAnthropicOAuthToken, readAgentKeychainCredential, } from './keychain.js';
|
|
3
3
|
export { maskSecret } from './mask.js';
|
|
4
|
-
export { ensureFreshAnthropicToken,
|
|
4
|
+
export { ensureFreshAnthropicToken, refreshAgentOAuthToken, } from './oauth.js';
|
|
5
5
|
export { PREFERENCES_FILE_VERSION, PreferencesError, preferencesPath, readPreferences, writePreferences, } from './preferences.js';
|
|
6
6
|
export { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, } from './registry.js';
|
|
7
7
|
export { clawtoolSecretsPath, readClawtoolSecrets } from './secrets.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEN,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEN,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EAEzB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,GAIjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAA;AAC7F,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EASN,cAAc,EAId,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
|
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* macOS Keychain reader for
|
|
2
|
+
* macOS Keychain reader for a co-installed agent CLI's OAuth credentials.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* under the generic-password service
|
|
6
|
-
*
|
|
4
|
+
* That CLI keeps its credentials in the macOS login Keychain rather than a
|
|
5
|
+
* flat file, under the generic-password service in {@link KEYCHAIN_SERVICE}
|
|
6
|
+
* below — the exact name is there, in one place, because it is the address
|
|
7
|
+
* of the data and an auditor has to be able to read it. The password value
|
|
8
|
+
* is a JSON envelope:
|
|
7
9
|
*
|
|
8
10
|
* { "claudeAiOauth": { "accessToken": "...", "refreshToken": "...",
|
|
9
11
|
* "expiresAt": ..., "scopes": [...] } }
|
|
10
12
|
*
|
|
11
|
-
*
|
|
12
|
-
* (`agent/anthropic_adapter.py:_read_claude_code_credentials_from_keychain`).
|
|
13
|
-
* Non-throwing — every failure (not-darwin, security not installed,
|
|
13
|
+
* * Non-throwing — every failure (not-darwin, security not installed,
|
|
14
14
|
* entry missing, payload malformed) returns `null` so discovery treats
|
|
15
15
|
* the source as "not available" rather than crashing.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
/** The generic-password service this reads. The address, verbatim. */
|
|
18
|
+
export declare const KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
19
|
+
export interface AgentOAuthCredential {
|
|
18
20
|
readonly accessToken: string;
|
|
19
21
|
readonly refreshToken?: string;
|
|
20
22
|
readonly expiresAt?: number;
|
|
21
23
|
readonly scopes?: readonly string[];
|
|
22
24
|
}
|
|
23
|
-
export declare function
|
|
25
|
+
export declare function readAgentKeychainCredential(): AgentOAuthCredential | null;
|
|
24
26
|
/**
|
|
25
27
|
* Persist a refreshed OAuth credential back into the same Keychain entry so
|
|
26
|
-
* the new access token survives across launches and
|
|
27
|
-
*
|
|
28
|
-
* change) so any extra keys
|
|
28
|
+
* the new access token survives across launches and the other CLI stays in
|
|
29
|
+
* sync. The full envelope is re-read and merged (only the OAuth sub-fields
|
|
30
|
+
* change) so any extra keys it stores are preserved. Non-throwing:
|
|
29
31
|
* returns `false` (not-darwin, no entry, missing account, write denied) and
|
|
30
32
|
* the caller falls back to using the refreshed token only in memory.
|
|
31
33
|
*
|
|
@@ -33,12 +35,11 @@ export declare function readClaudeCodeKeychainCredential(): ClaudeCodeOAuthCrede
|
|
|
33
35
|
* visible to `ps` — acceptable for a local dev CLI updating a credential that
|
|
34
36
|
* already lives on this machine.
|
|
35
37
|
*/
|
|
36
|
-
export declare function
|
|
38
|
+
export declare function writeAgentKeychainCredential(cred: AgentOAuthCredential): boolean;
|
|
37
39
|
/**
|
|
38
|
-
* Detect whether a credential value is an
|
|
40
|
+
* Detect whether a credential value is an OAuth-style token
|
|
39
41
|
* (must be sent via `Authorization: Bearer`) vs a console API key (sent
|
|
40
|
-
* via `x-api-key`).
|
|
41
|
-
* positively identifies by prefix; defaults to API-key when unsure.
|
|
42
|
+
* via `x-api-key`). Positively identifies by prefix; defaults to API-key when unsure.
|
|
42
43
|
*/
|
|
43
44
|
export declare function isAnthropicOAuthToken(value: string): boolean;
|
|
44
45
|
//# sourceMappingURL=keychain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/keychain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/keychain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,4BAA4B,CAAA;AAEzD,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED,wBAAgB,2BAA2B,IAAI,oBAAoB,GAAG,IAAI,CAmCzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAiDhF;AAiBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM5D"}
|