ctxr-cli 0.36.0 → 0.38.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/LICENSE +21 -201
- package/README.md +28 -12
- package/dist/commands/land.d.ts +5 -0
- package/dist/commands/land.d.ts.map +1 -1
- package/dist/commands/land.js +12 -3
- package/dist/commands/land.js.map +1 -1
- package/dist/commands/plugin-build.d.ts +21 -11
- package/dist/commands/plugin-build.d.ts.map +1 -1
- package/dist/commands/plugin-build.js +45 -24
- package/dist/commands/plugin-build.js.map +1 -1
- package/dist/commands/review-list.d.ts +5 -1
- package/dist/commands/review-list.d.ts.map +1 -1
- package/dist/commands/review-list.js +2 -2
- package/dist/commands/review-list.js.map +1 -1
- package/dist/commands/second-opinion.d.ts +6 -2
- package/dist/commands/second-opinion.d.ts.map +1 -1
- package/dist/commands/second-opinion.js.map +1 -1
- package/dist/commands/serve.d.ts +2 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +1 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/session-list.d.ts +2 -0
- package/dist/commands/session-list.d.ts.map +1 -1
- package/dist/commands/session-list.js +1 -1
- package/dist/commands/session-list.js.map +1 -1
- package/dist/commands/session-start.d.ts.map +1 -1
- package/dist/commands/session-start.js +2 -1
- package/dist/commands/session-start.js.map +1 -1
- package/dist/commands/session-submit.d.ts +9 -1
- package/dist/commands/session-submit.d.ts.map +1 -1
- package/dist/commands/session-submit.js +1 -1
- package/dist/commands/session-submit.js.map +1 -1
- package/dist/commands/shared-stores-status.d.ts +9 -1
- package/dist/commands/shared-stores-status.d.ts.map +1 -1
- package/dist/commands/shared-stores-status.js +13 -7
- package/dist/commands/shared-stores-status.js.map +1 -1
- package/dist/commands/shared-stores-sync.d.ts +13 -0
- package/dist/commands/shared-stores-sync.d.ts.map +1 -1
- package/dist/commands/shared-stores-sync.js +60 -13
- package/dist/commands/shared-stores-sync.js.map +1 -1
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +9 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +8 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/core/approval/session-group.d.ts +10 -1
- package/dist/core/approval/session-group.d.ts.map +1 -1
- package/dist/core/approval/session-group.js +4 -0
- package/dist/core/approval/session-group.js.map +1 -1
- package/dist/core/command.d.ts +5 -3
- package/dist/core/command.d.ts.map +1 -1
- package/dist/core/errors.d.ts +9 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +11 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/forge/credentials.d.ts +23 -3
- package/dist/core/forge/credentials.d.ts.map +1 -1
- package/dist/core/forge/credentials.js +99 -5
- package/dist/core/forge/credentials.js.map +1 -1
- package/dist/core/forge/github.d.ts +2 -0
- package/dist/core/forge/github.d.ts.map +1 -1
- package/dist/core/forge/github.js +1 -0
- package/dist/core/forge/github.js.map +1 -1
- package/dist/core/git/worktree.d.ts +6 -1
- package/dist/core/git/worktree.d.ts.map +1 -1
- package/dist/core/git/worktree.js +7 -2
- package/dist/core/git/worktree.js.map +1 -1
- package/dist/core/mcp/surface.js +1 -1
- package/dist/core/mcp/surface.js.map +1 -1
- package/dist/core/mcp/sync.d.ts +4 -1
- package/dist/core/mcp/sync.d.ts.map +1 -1
- package/dist/core/mcp/sync.js +6 -5
- package/dist/core/mcp/sync.js.map +1 -1
- package/dist/core/mcp/tool-map.d.ts +25 -12
- package/dist/core/mcp/tool-map.d.ts.map +1 -1
- package/dist/core/mcp/tool-map.js +28 -11
- package/dist/core/mcp/tool-map.js.map +1 -1
- package/dist/core/mcp/tools/cli.d.ts +6 -0
- package/dist/core/mcp/tools/cli.d.ts.map +1 -1
- package/dist/core/mcp/tools/cli.js +77 -4
- package/dist/core/mcp/tools/cli.js.map +1 -1
- package/dist/core/mcp/tools/gather.d.ts.map +1 -1
- package/dist/core/mcp/tools/gather.js +5 -4
- package/dist/core/mcp/tools/gather.js.map +1 -1
- package/dist/core/mcp/tools/index.d.ts +11 -1
- package/dist/core/mcp/tools/index.d.ts.map +1 -1
- package/dist/core/mcp/tools/index.js +21 -4
- package/dist/core/mcp/tools/index.js.map +1 -1
- package/dist/core/plugin/build.d.ts +53 -26
- package/dist/core/plugin/build.d.ts.map +1 -1
- package/dist/core/plugin/build.js +153 -50
- package/dist/core/plugin/build.js.map +1 -1
- package/dist/core/plugin/commands.d.ts +11 -0
- package/dist/core/plugin/commands.d.ts.map +1 -0
- package/dist/core/plugin/commands.js +25 -0
- package/dist/core/plugin/commands.js.map +1 -0
- package/dist/core/plugin/routes.d.ts +11 -7
- package/dist/core/plugin/routes.d.ts.map +1 -1
- package/dist/core/plugin/routes.js +27 -24
- package/dist/core/plugin/routes.js.map +1 -1
- package/dist/core/second-opinion/confine.d.ts +50 -0
- package/dist/core/second-opinion/confine.d.ts.map +1 -0
- package/dist/core/second-opinion/confine.js +162 -0
- package/dist/core/second-opinion/confine.js.map +1 -0
- package/dist/core/second-opinion/launch.d.ts +6 -1
- package/dist/core/second-opinion/launch.d.ts.map +1 -1
- package/dist/core/second-opinion/launch.js +31 -3
- package/dist/core/second-opinion/launch.js.map +1 -1
- package/dist/core/second-opinion/lineup.d.ts +11 -0
- package/dist/core/second-opinion/lineup.d.ts.map +1 -1
- package/dist/core/second-opinion/lineup.js +15 -0
- package/dist/core/second-opinion/lineup.js.map +1 -1
- package/dist/core/second-opinion/modes.d.ts +19 -2
- package/dist/core/second-opinion/modes.d.ts.map +1 -1
- package/dist/core/second-opinion/modes.js +103 -29
- package/dist/core/second-opinion/modes.js.map +1 -1
- package/dist/core/session/start.d.ts +2 -2
- package/dist/core/session/submit.d.ts.map +1 -1
- package/dist/core/session/submit.js +6 -3
- package/dist/core/session/submit.js.map +1 -1
- package/dist/core/shared-stores.d.ts +5 -0
- package/dist/core/shared-stores.d.ts.map +1 -1
- package/dist/core/shared-stores.js +10 -0
- package/dist/core/shared-stores.js.map +1 -1
- package/dist/core/skill-placeholders.d.ts +51 -0
- package/dist/core/skill-placeholders.d.ts.map +1 -0
- package/dist/core/skill-placeholders.js +55 -0
- package/dist/core/skill-placeholders.js.map +1 -0
- package/dist/core/skills.d.ts +38 -14
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +81 -91
- package/dist/core/skills.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +29 -7
- package/dist/run.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/templates/mcp/ctxr.md +1 -0
- package/templates/mcp/server-instructions.md +16 -0
- package/templates/plugin/README.md +30 -8
- package/templates/plugin/chatgpt-README.md +16 -0
- package/templates/plugin/claude-plugin.json +9 -1
- package/templates/plugin/command.md +7 -0
- package/templates/plugin/page.html +19 -8
- package/templates/second-opinion/critic-contract.md +2 -1
- package/templates/skills/_surfaces.md +30 -0
- package/templates/skills/ctxr-placement.md +1 -1
- package/templates/skills/ctxr-second-opinion.md +34 -13
- package/templates/skills/ctxr-session-lifecycle.md +6 -5
- package/templates/skills/mcp/_layer-step.md +18 -0
- package/templates/skills/mcp/_relation-grouping-step.md +5 -0
- package/templates/plugin/claude-mcp.json +0 -8
- package/templates/skills/mcp/_preamble.md +0 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/core/forge/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/core/forge/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ForgeCredentials } from '../forge/credentials.js';
|
|
1
2
|
import type { GitResult, GitRunner } from './exec.js';
|
|
2
3
|
export declare function hasRemote(git: GitRunner, cwd: string, name?: string): Promise<boolean>;
|
|
3
4
|
/**
|
|
@@ -7,8 +8,12 @@ export declare function hasRemote(git: GitRunner, cwd: string, name?: string): P
|
|
|
7
8
|
* exists but is still empty (nothing pushed yet, the common case for a
|
|
8
9
|
* brand-new project) — so the caller can degrade to the local branch
|
|
9
10
|
* instead of crashing on an honest, expected state.
|
|
11
|
+
*
|
|
12
|
+
* reach-each-owner-with-its-own-token D4: through the repository's forge
|
|
13
|
+
* credential, so a mount whose owner has a token is fetched with it rather
|
|
14
|
+
* than quietly cut from a stale local branch.
|
|
10
15
|
*/
|
|
11
|
-
export declare function fetchOrigin(git: GitRunner, cwd: string, branch: string, remote?: string): Promise<boolean>;
|
|
16
|
+
export declare function fetchOrigin(git: GitRunner, credentials: ForgeCredentials, env: Readonly<Record<string, string | undefined>>, cwd: string, branch: string, remote?: string): Promise<boolean>;
|
|
12
17
|
/**
|
|
13
18
|
* `allowFailure` is what lets `session start` report git's refusal as the usage
|
|
14
19
|
* error it almost always is — a name already taken — instead of letting an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9F;AAED
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,gBAAgB,EAC7B,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACjD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,SAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,OAAO,CAAC,SAAS,CAAC,CAKpB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1H;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErG;AAED,iHAAiH;AACjH,wBAAsB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKrF;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBnE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGxF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runRemoteGit } from '../forge/credentials.js';
|
|
1
2
|
export async function hasRemote(git, cwd, name = 'origin') {
|
|
2
3
|
const result = await git.run(['remote'], { cwd, allowFailure: true });
|
|
3
4
|
if (result.exitCode !== 0)
|
|
@@ -11,9 +12,13 @@ export async function hasRemote(git, cwd, name = 'origin') {
|
|
|
11
12
|
* exists but is still empty (nothing pushed yet, the common case for a
|
|
12
13
|
* brand-new project) — so the caller can degrade to the local branch
|
|
13
14
|
* instead of crashing on an honest, expected state.
|
|
15
|
+
*
|
|
16
|
+
* reach-each-owner-with-its-own-token D4: through the repository's forge
|
|
17
|
+
* credential, so a mount whose owner has a token is fetched with it rather
|
|
18
|
+
* than quietly cut from a stale local branch.
|
|
14
19
|
*/
|
|
15
|
-
export async function fetchOrigin(git, cwd, branch, remote = 'origin') {
|
|
16
|
-
const result = await git
|
|
20
|
+
export async function fetchOrigin(git, credentials, env, cwd, branch, remote = 'origin') {
|
|
21
|
+
const result = await runRemoteGit(git, credentials, env, ['fetch', remote, branch], { cwd, allowFailure: true });
|
|
17
22
|
return result.exitCode === 0;
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"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"}
|
package/dist/core/mcp/surface.js
CHANGED
|
@@ -118,7 +118,7 @@ export class McpSurface {
|
|
|
118
118
|
mutex: this.mutex,
|
|
119
119
|
baseUrl: config.serve?.base_url,
|
|
120
120
|
});
|
|
121
|
-
const instructions = serverInstructions(storeName);
|
|
121
|
+
const instructions = serverInstructions(storeName, config);
|
|
122
122
|
await handleMcpRequest({
|
|
123
123
|
originAllowed: (origin) => origin === issuer,
|
|
124
124
|
authenticate: (r) => oauth.authenticate(r),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../src/core/mcp/surface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../src/core/mcp/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/core/mcp/sync.d.ts
CHANGED
|
@@ -77,7 +77,10 @@ export declare class McpView {
|
|
|
77
77
|
private syncOnce;
|
|
78
78
|
/** Forced, detached, and cleaned of untracked files — the view is this surface's alone. Null on success. */
|
|
79
79
|
private checkout;
|
|
80
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* The configuration committed at the view's commit, and that commit's graph — built over the read view, as
|
|
82
|
+
* `ctxr graph build` builds it, so doctor's staleness check in the view compares like with like (#233).
|
|
83
|
+
*/
|
|
81
84
|
private rebuild;
|
|
82
85
|
/** Back to `commit` with its graph; null on success, else why not. */
|
|
83
86
|
private restore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,6GAA6G;AAC7G,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CACpC;AAED,+GAA+G;AAC/G,MAAM,WAAW,QAAQ;IACvB,oGAAoG;IACpG,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,IAAI,IAAI,CAAC;CACb;AAMD,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,qBAAa,OAAO;IAaN,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAoB;IACrC,oGAAoG;IACpG,OAAO,CAAC,UAAU,CAAqB;IAEvC,YAA6B,OAAO,EAAE,WAAW,EAEhD;IAED,OAAO,CAAC,GAAG;IAIX,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,yGAAyG;IACnG,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CASvH;IAED,4HAA4H;IACtH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3C;YAEa,SAAS;YAUT,UAAU;IAaxB,0DAA0D;YAC5C,QAAQ;IAwDtB,4GAA4G;YAC9F,QAAQ;IAOtB;;;OAGG;YACW,OAAO;IASrB,sEAAsE;YACxD,OAAO;IAWrB;;;;OAIG;YACW,WAAW;CA2B1B"}
|
package/dist/core/mcp/sync.js
CHANGED
|
@@ -7,9 +7,8 @@ import { runRemoteGit } from '../forge/credentials.js';
|
|
|
7
7
|
import { isUnderAnyPrefix } from '../fs/prefix.js';
|
|
8
8
|
import { pruneWorktrees } from '../git/worktree.js';
|
|
9
9
|
import { renderGraphDocument } from '../graph/document.js';
|
|
10
|
-
import { buildGraphFromNotes, graphBuildOptions } from '../graph/model.js';
|
|
11
10
|
import { readGraph, writeGraph, writeGraphDocument } from '../graph/persist.js';
|
|
12
|
-
import {
|
|
11
|
+
import { buildReadViewGraph } from '../shared-stores.js';
|
|
13
12
|
import { ToolRefusal } from './jsonrpc.js';
|
|
14
13
|
import { ReadWriteLock } from './rwlock.js';
|
|
15
14
|
/**
|
|
@@ -154,12 +153,14 @@ export class McpView {
|
|
|
154
153
|
await this.run(['clean', '-fdq'], viewRoot);
|
|
155
154
|
return null;
|
|
156
155
|
}
|
|
157
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* The configuration committed at the view's commit, and that commit's graph — built over the read view, as
|
|
158
|
+
* `ctxr graph build` builds it, so doctor's staleness check in the view compares like with like (#233).
|
|
159
|
+
*/
|
|
158
160
|
async rebuild(viewRoot) {
|
|
159
161
|
const config = await readConfig(viewRoot, MIGRATION_STEPS);
|
|
160
162
|
const store = { root: viewRoot, config };
|
|
161
|
-
const
|
|
162
|
-
const graph = buildGraphFromNotes(notes, graphBuildOptions(store.config));
|
|
163
|
+
const { graph } = await buildReadViewGraph(store.root, store.config);
|
|
163
164
|
await writeGraph(store, graph);
|
|
164
165
|
await writeGraphDocument(store, renderGraphDocument(graph, store.config.retrieval.graph).text);
|
|
165
166
|
return store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/core/mcp/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/core/mcp/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* serve-the-session-lifecycle-to-chat-apps D9 and revisions 2, 3 and 6: the
|
|
3
3
|
* one place a `ctxr` command is mapped to the MCP tool that runs it. The tool
|
|
4
4
|
* registry (`tools/index.ts`) registers exactly the tools listed here, in
|
|
5
|
-
* this order; the
|
|
5
|
+
* this order; the shared skills' opening section, the drift check over the shared
|
|
6
6
|
* render and the tool/command alignment check all read this module, so no
|
|
7
7
|
* tool name is ever derived from a command name by rule.
|
|
8
8
|
*
|
|
@@ -31,16 +31,29 @@ export declare const RUNNER_FIELDS: readonly ['args', "session", 'input'];
|
|
|
31
31
|
/** The literal argument `ctxr_write` replaces with the path of a file holding the call's `input` (D4). */
|
|
32
32
|
export declare const INPUT_ARGUMENT = "@input";
|
|
33
33
|
/** D4: read-only commands `ctxr` runs, as command paths matched before any option. */
|
|
34
|
-
export declare const CTXR_READ_COMMANDS: readonly ['lint', 'doctor', 'catalog show', 'catalog check', 'graph query', 'graph diff', 'context gather', 'source check', 'source hash', 'rollup stale', 'rollup gather', 'publish check', 'publish urls', 'publish gather', 'shared-stores status'];
|
|
34
|
+
export declare const CTXR_READ_COMMANDS: readonly ['lint', 'doctor', 'catalog show', 'catalog check', 'graph query', 'graph diff', 'context gather', 'source check', 'source hash', 'rollup stale', 'rollup gather', 'publish check', 'publish urls', 'publish gather', 'shared-stores status', 'second-opinion preflight', 'second-opinion critique', 'second-opinion poll'];
|
|
35
|
+
/**
|
|
36
|
+
* serve-the-second-opinion-to-chat-apps D3, D5: the read commands that start
|
|
37
|
+
* model CLIs. They take `input`, run one at a time per server, under their own
|
|
38
|
+
* time bound, with a per-CLI timeout inside it, `--require-confinement` always
|
|
39
|
+
* and `--print` for the two that answer.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SECOND_OPINION_COMMANDS: readonly string[];
|
|
42
|
+
/** Under the roughly four minutes claude.ai and Claude Desktop wait for a tool; a default-tier critique takes one to two. */
|
|
43
|
+
export declare const SECOND_OPINION_TIMEOUT_MS = 240000;
|
|
44
|
+
/** Each model CLI's own limit, leaving the run time to start and print before the bound. */
|
|
45
|
+
export declare const SECOND_OPINION_CLI_TIMEOUT_SECONDS = 200;
|
|
35
46
|
/** D4: writing commands `ctxr_write` runs inside a member's own session. `session capture` is one of them (revision 2). */
|
|
36
47
|
export declare const CTXR_WRITE_COMMANDS: readonly ['ingest', 'archive', 'entry append', 'rollup write', 'source stamp', 'source add-alt', 'session capture', 'catalog build', 'graph build', 'update'];
|
|
37
48
|
/**
|
|
38
|
-
* Commands a shipped skill names that have no counterpart over MCP
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
49
|
+
* Commands a shipped skill names that have no counterpart over MCP. Each step
|
|
50
|
+
* naming one says at the step to skip it through the store's server, and the
|
|
51
|
+
* drift check requires that (publish-one-contexture-plugin revision 15).
|
|
52
|
+
* `sync` refreshes the canonical clone, which the server keeps current
|
|
53
|
+
* itself; `shared-stores sync` refreshes the canonical clone's mounts, and the
|
|
54
|
+
* server keeps no mounts (mount-shared-stores).
|
|
42
55
|
*/
|
|
43
|
-
export declare const UNAVAILABLE_COMMANDS: readonly ['shared-stores sync'];
|
|
56
|
+
export declare const UNAVAILABLE_COMMANDS: readonly ['sync', 'shared-stores sync'];
|
|
44
57
|
/** D3: the session commands with a typed tool of their own. */
|
|
45
58
|
export declare const SESSION_COMMAND_TOOLS: {
|
|
46
59
|
readonly 'session start': 'session_start';
|
|
@@ -51,11 +64,11 @@ export declare const SESSION_COMMAND_TOOLS: {
|
|
|
51
64
|
readonly 'session discard': 'session_discard';
|
|
52
65
|
};
|
|
53
66
|
/**
|
|
54
|
-
* D6: the git and gh steps
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
67
|
+
* D6: the git and gh steps and the tool each one is through the store's
|
|
68
|
+
* server; null marks the server's own work. publish-one-contexture-plugin
|
|
69
|
+
* revision 16: a shared skill names a git or gh step only in a sentence that
|
|
70
|
+
* also names its tool here, so a step mapped to null, or not listed, cannot
|
|
71
|
+
* appear in one.
|
|
59
72
|
*/
|
|
60
73
|
export declare const GIT_STEP_TOOLS: Readonly<Record<string, string | null>>;
|
|
61
74
|
/** The registry, in `tools/list` order. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-map.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/tool-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wJAAwJ;AACxJ,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,8CAA8C;AAC9C,eAAO,MAAM,aAAa,YAAI,MAAM,aAAiB,OAAO,CAAU,CAAC;AAEvE,0GAA0G;AAC1G,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,YAC7B,MAAM,EACN,QAAQ,EACR,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAEhB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"tool-map.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/tool-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* serve-the-session-lifecycle-to-chat-apps D9 and revisions 2, 3 and 6: the
|
|
3
3
|
* one place a `ctxr` command is mapped to the MCP tool that runs it. The tool
|
|
4
4
|
* registry (`tools/index.ts`) registers exactly the tools listed here, in
|
|
5
|
-
* this order; the
|
|
5
|
+
* this order; the shared skills' opening section, the drift check over the shared
|
|
6
6
|
* render and the tool/command alignment check all read this module, so no
|
|
7
7
|
* tool name is ever derived from a command name by rule.
|
|
8
8
|
*
|
|
@@ -39,7 +39,22 @@ export const CTXR_READ_COMMANDS = [
|
|
|
39
39
|
'publish gather',
|
|
40
40
|
// mount-shared-stores: reads the declared mounts, with no writes and no network.
|
|
41
41
|
'shared-stores status',
|
|
42
|
+
// serve-the-second-opinion-to-chat-apps: run as in a shell, confined, with the answers printed.
|
|
43
|
+
'second-opinion preflight',
|
|
44
|
+
'second-opinion critique',
|
|
45
|
+
'second-opinion poll',
|
|
42
46
|
];
|
|
47
|
+
/**
|
|
48
|
+
* serve-the-second-opinion-to-chat-apps D3, D5: the read commands that start
|
|
49
|
+
* model CLIs. They take `input`, run one at a time per server, under their own
|
|
50
|
+
* time bound, with a per-CLI timeout inside it, `--require-confinement` always
|
|
51
|
+
* and `--print` for the two that answer.
|
|
52
|
+
*/
|
|
53
|
+
export const SECOND_OPINION_COMMANDS = ['second-opinion preflight', 'second-opinion critique', 'second-opinion poll'];
|
|
54
|
+
/** Under the roughly four minutes claude.ai and Claude Desktop wait for a tool; a default-tier critique takes one to two. */
|
|
55
|
+
export const SECOND_OPINION_TIMEOUT_MS = 240_000;
|
|
56
|
+
/** Each model CLI's own limit, leaving the run time to start and print before the bound. */
|
|
57
|
+
export const SECOND_OPINION_CLI_TIMEOUT_SECONDS = 200;
|
|
43
58
|
/** D4: writing commands `ctxr_write` runs inside a member's own session. `session capture` is one of them (revision 2). */
|
|
44
59
|
export const CTXR_WRITE_COMMANDS = [
|
|
45
60
|
'ingest',
|
|
@@ -58,12 +73,14 @@ export const CTXR_WRITE_COMMANDS = [
|
|
|
58
73
|
'update',
|
|
59
74
|
];
|
|
60
75
|
/**
|
|
61
|
-
* Commands a shipped skill names that have no counterpart over MCP
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
76
|
+
* Commands a shipped skill names that have no counterpart over MCP. Each step
|
|
77
|
+
* naming one says at the step to skip it through the store's server, and the
|
|
78
|
+
* drift check requires that (publish-one-contexture-plugin revision 15).
|
|
79
|
+
* `sync` refreshes the canonical clone, which the server keeps current
|
|
80
|
+
* itself; `shared-stores sync` refreshes the canonical clone's mounts, and the
|
|
81
|
+
* server keeps no mounts (mount-shared-stores).
|
|
65
82
|
*/
|
|
66
|
-
export const UNAVAILABLE_COMMANDS = ['shared-stores sync'];
|
|
83
|
+
export const UNAVAILABLE_COMMANDS = ['sync', 'shared-stores sync'];
|
|
67
84
|
/** D3: the session commands with a typed tool of their own. */
|
|
68
85
|
export const SESSION_COMMAND_TOOLS = {
|
|
69
86
|
'session start': 'session_start',
|
|
@@ -74,11 +91,11 @@ export const SESSION_COMMAND_TOOLS = {
|
|
|
74
91
|
'session discard': 'session_discard',
|
|
75
92
|
};
|
|
76
93
|
/**
|
|
77
|
-
* D6: the git and gh steps
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
94
|
+
* D6: the git and gh steps and the tool each one is through the store's
|
|
95
|
+
* server; null marks the server's own work. publish-one-contexture-plugin
|
|
96
|
+
* revision 16: a shared skill names a git or gh step only in a sentence that
|
|
97
|
+
* also names its tool here, so a step mapped to null, or not listed, cannot
|
|
98
|
+
* appear in one.
|
|
82
99
|
*/
|
|
83
100
|
export const GIT_STEP_TOOLS = {
|
|
84
101
|
'git mv': 'Move',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-map.js","sourceRoot":"","sources":["../../../src/core/mcp/tool-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAU,CAAC;AAEvE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEvC,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM;IACN,QAAQ;IACR,cAAc;IACd,eAAe;IACf,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,cAAc;IACd,eAAe;IACf,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iFAAiF;IACjF,sBAAsB;
|
|
1
|
+
{"version":3,"file":"tool-map.js","sourceRoot":"","sources":["../../../src/core/mcp/tool-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,10 @@ export declare const CTXR_INPUT_SCHEMA: {
|
|
|
29
29
|
readonly type: 'string';
|
|
30
30
|
readonly description: "Run in this session of yours (its directory name) instead of against the store's current commit.";
|
|
31
31
|
};
|
|
32
|
+
readonly input: {
|
|
33
|
+
readonly type: 'string';
|
|
34
|
+
readonly description: "For second-opinion critique and poll only: the plan or question. Pass \"@input\" as the --plan-file or --prompt-file value and it is replaced with a file holding this text.";
|
|
35
|
+
};
|
|
32
36
|
};
|
|
33
37
|
readonly required: readonly ['args'];
|
|
34
38
|
};
|
|
@@ -78,6 +82,8 @@ export interface CliToolContext {
|
|
|
78
82
|
/** The CLI entry the runners spawn with `process.execPath`. */
|
|
79
83
|
entry: string;
|
|
80
84
|
timeoutMs?: number;
|
|
85
|
+
/** The second opinion's own bound, when a caller (a test) needs a different one. */
|
|
86
|
+
secondOpinionTimeoutMs?: number;
|
|
81
87
|
}
|
|
82
88
|
export interface CliToolResult extends CliRunResult {
|
|
83
89
|
command: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../src/core/mcp/tools/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../src/core/mcp/tools/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
-
import { lstat, mkdir, readFile, rm, unlink, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { lstat, mkdir, mkdtemp, readFile, rm, unlink, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
3
4
|
import path from 'node:path';
|
|
4
5
|
import { rebaseInProgress } from '../../session/resolve.js';
|
|
5
6
|
import { runServerCli } from '../cli-runner.js';
|
|
6
7
|
import { ToolRefusal } from '../jsonrpc.js';
|
|
7
8
|
import { ownedSession, repoPrefixOf } from '../member-sessions.js';
|
|
8
9
|
import { protectedReason, protectedRefusal } from '../paths.js';
|
|
9
|
-
import { CTXR_READ_COMMANDS, CTXR_WRITE_COMMANDS, INPUT_ARGUMENT, matchCommand } from '../tool-map.js';
|
|
10
|
+
import { CTXR_READ_COMMANDS, CTXR_WRITE_COMMANDS, INPUT_ARGUMENT, matchCommand, SECOND_OPINION_CLI_TIMEOUT_SECONDS, SECOND_OPINION_COMMANDS, SECOND_OPINION_TIMEOUT_MS, } from '../tool-map.js';
|
|
10
11
|
/**
|
|
11
12
|
* serve-the-session-lifecycle-to-chat-apps D4, D5 (remote-access spec,
|
|
12
13
|
* *`ctxr` and `ctxr_write` run allowlisted CLI commands confined to one
|
|
@@ -26,6 +27,7 @@ export const CTXR_INPUT_SCHEMA = {
|
|
|
26
27
|
properties: {
|
|
27
28
|
args: { type: 'array', items: { type: 'string' }, description: `The command and its arguments, as you would type them after "ctxr", one item per argument, e.g. ["lint"] or ["catalog", "show", "--section", "projects"]. Read-only commands only: ${CTXR_READ_COMMANDS.join(', ')}.` },
|
|
28
29
|
session: { type: 'string', description: "Run in this session of yours (its directory name) instead of against the store's current commit." },
|
|
30
|
+
input: { type: 'string', description: `For second-opinion critique and poll only: the plan or question. Pass "${INPUT_ARGUMENT}" as the --plan-file or --prompt-file value and it is replaced with a file holding this text.` },
|
|
29
31
|
},
|
|
30
32
|
required: ['args'],
|
|
31
33
|
};
|
|
@@ -59,8 +61,9 @@ export function parseCliArgs(args, write) {
|
|
|
59
61
|
throw new ToolRefusal('mcp.no_session', '"session" is required: ctxr_write runs only inside one of your sessions. Call session_start first.');
|
|
60
62
|
}
|
|
61
63
|
if (args.input !== undefined && args.input !== null) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
// serve-the-second-opinion-to-chat-apps D5: the one read command that takes text is the second opinion.
|
|
65
|
+
if (!write && out.args[0] !== 'second-opinion')
|
|
66
|
+
throw invalid('"input" is for ctxr_write, and for ctxr second-opinion critique and poll.');
|
|
64
67
|
if (typeof args.input !== 'string')
|
|
65
68
|
throw invalid('"input" must be a string.');
|
|
66
69
|
if (Buffer.byteLength(args.input, 'utf8') > MAX_INPUT_BYTES)
|
|
@@ -148,7 +151,77 @@ export function childEnv(env, cwd, cacheDir) {
|
|
|
148
151
|
function finalArgv(argv) {
|
|
149
152
|
return argv.includes('--no-input') ? [...argv] : [...argv, '--no-input'];
|
|
150
153
|
}
|
|
154
|
+
/** True while a second opinion runs on this server (D4): three model CLIs at once are most of a small container. */
|
|
155
|
+
let secondOpinionRunning = false;
|
|
156
|
+
const optionValue = (argv, name) => {
|
|
157
|
+
const at = argv.findIndex((a) => a === name || a.startsWith(`${name}=`));
|
|
158
|
+
if (at === -1)
|
|
159
|
+
return undefined;
|
|
160
|
+
return argv[at].startsWith(`${name}=`) ? argv[at].slice(name.length + 1) : argv[at + 1];
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* serve-the-second-opinion-to-chat-apps D2–D5: the second opinion runs as in
|
|
164
|
+
* a shell, with what the server needs added: the answers printed rather than
|
|
165
|
+
* written, a per-CLI timeout inside the bound, confinement required, and the
|
|
166
|
+
* plan or question from `input` in a temp folder outside any checkout. It
|
|
167
|
+
* reads no store, so it runs outside the view's lock, in that temp folder.
|
|
168
|
+
*/
|
|
169
|
+
async function secondOpinionTool(ctx, args, command, checkedArgv, ranAgainst) {
|
|
170
|
+
if (checkedArgv.some((a) => a === '--out' || a.startsWith('--out=')))
|
|
171
|
+
throw invalid('"--out" is not accepted here: the answers come back in the result, and nothing is left on the server.');
|
|
172
|
+
const timeout = optionValue(checkedArgv, '--timeout');
|
|
173
|
+
if (timeout !== undefined && !(Number(timeout) > 0 && Number(timeout) <= SECOND_OPINION_CLI_TIMEOUT_SECONDS)) {
|
|
174
|
+
throw invalid(`"--timeout" is at most ${SECOND_OPINION_CLI_TIMEOUT_SECONDS} seconds here, so the answers come back before the chat app stops waiting.`);
|
|
175
|
+
}
|
|
176
|
+
const usesInput = checkedArgv.some((a) => a === INPUT_ARGUMENT || a.endsWith(`=${INPUT_ARGUMENT}`));
|
|
177
|
+
if (usesInput && args.input === undefined)
|
|
178
|
+
throw invalid(`An argument is "${INPUT_ARGUMENT}" but no "input" text was given.`);
|
|
179
|
+
if (secondOpinionRunning) {
|
|
180
|
+
throw new ToolRefusal('mcp.busy', 'A second opinion is already running on this server, and they run one at a time. Try again in a few minutes.');
|
|
181
|
+
}
|
|
182
|
+
secondOpinionRunning = true;
|
|
183
|
+
const folder = await mkdtemp(path.join(tmpdir(), 'ctxr-mcp-second-opinion-'));
|
|
184
|
+
try {
|
|
185
|
+
let argv = [...checkedArgv];
|
|
186
|
+
if (usesInput) {
|
|
187
|
+
const inputFile = path.join(folder, 'input.md');
|
|
188
|
+
await writeFile(inputFile, args.input, { flag: 'wx', mode: 0o600 });
|
|
189
|
+
argv = argv.map((a) => (a === INPUT_ARGUMENT ? inputFile : a.endsWith(`=${INPUT_ARGUMENT}`) ? `${a.slice(0, -INPUT_ARGUMENT.length)}${inputFile}` : a));
|
|
190
|
+
}
|
|
191
|
+
if (timeout === undefined)
|
|
192
|
+
argv.push('--timeout', String(SECOND_OPINION_CLI_TIMEOUT_SECONDS));
|
|
193
|
+
argv.push('--require-confinement');
|
|
194
|
+
if (command !== 'second-opinion preflight')
|
|
195
|
+
argv.push('--print');
|
|
196
|
+
const run = await runServerCli({
|
|
197
|
+
entry: ctx.entry,
|
|
198
|
+
argv: finalArgv(argv),
|
|
199
|
+
cwd: folder,
|
|
200
|
+
env: childEnv(ctx.write.env, folder, folder),
|
|
201
|
+
timeoutMs: ctx.secondOpinionTimeoutMs ?? SECOND_OPINION_TIMEOUT_MS,
|
|
202
|
+
});
|
|
203
|
+
return { command, args: checkedArgv, ...run, ran_against: ranAgainst };
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
secondOpinionRunning = false;
|
|
207
|
+
await rm(folder, { recursive: true, force: true });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
151
210
|
export async function ctxrTool(ctx, email, args) {
|
|
211
|
+
if (args.input !== undefined || args.args[0] === 'second-opinion') {
|
|
212
|
+
const command = matchCommand(args.args, SECOND_OPINION_COMMANDS);
|
|
213
|
+
if (command === null && args.input !== undefined)
|
|
214
|
+
throw invalid('"input" is for ctxr_write, and for ctxr second-opinion critique and poll.');
|
|
215
|
+
if (command !== null) {
|
|
216
|
+
if (args.session !== undefined) {
|
|
217
|
+
const session = await ownedSession(ctx.write, email, args.session);
|
|
218
|
+
const checked = checkArguments(args.args, CTXR_READ_COMMANDS, 'ctxr', ctx.write.config, session.root);
|
|
219
|
+
return secondOpinionTool(ctx, args, command, checked.argv, { session: session.name, root: session.root });
|
|
220
|
+
}
|
|
221
|
+
const { checked, head } = await ctx.view.read(ctx.syncDeps, async (snapshot) => ({ checked: checkArguments(args.args, CTXR_READ_COMMANDS, 'ctxr', snapshot.store.config, null), head: snapshot.head }));
|
|
222
|
+
return secondOpinionTool(ctx, args, command, checked.argv, { commit: head });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
152
225
|
if (args.session !== undefined) {
|
|
153
226
|
const session = await ownedSession(ctx.write, email, args.session);
|
|
154
227
|
const checked = checkArguments(args.args, CTXR_READ_COMMANDS, 'ctxr', ctx.write.config, session.root);
|