@agent-deck/cli 1.8.1 → 1.9.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/agent-harness.d.ts +5 -2
- package/dist/agent-harness.d.ts.map +1 -1
- package/dist/agent-harness.js +18 -7
- package/dist/agent-harness.js.map +1 -1
- package/dist/assignment.d.ts +19 -0
- package/dist/assignment.d.ts.map +1 -0
- package/dist/assignment.js +161 -0
- package/dist/assignment.js.map +1 -0
- package/dist/cursor-mcp-inspect.d.ts +3 -2
- package/dist/cursor-mcp-inspect.d.ts.map +1 -1
- package/dist/cursor-mcp-inspect.js +7 -5
- package/dist/cursor-mcp-inspect.js.map +1 -1
- package/dist/debug-mcp.d.ts +25 -0
- package/dist/debug-mcp.d.ts.map +1 -1
- package/dist/debug-mcp.js +93 -25
- package/dist/debug-mcp.js.map +1 -1
- package/dist/grant-issue.d.ts +0 -5
- package/dist/grant-issue.d.ts.map +1 -1
- package/dist/grant-issue.js +19 -70
- package/dist/grant-issue.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp-config.d.ts.map +1 -1
- package/dist/mcp-config.js +8 -5
- package/dist/mcp-config.js.map +1 -1
- package/dist/mcp-launcher.d.ts +13 -0
- package/dist/mcp-launcher.d.ts.map +1 -1
- package/dist/mcp-launcher.js +42 -10
- package/dist/mcp-launcher.js.map +1 -1
- package/dist/playbook-stubs.d.ts +8 -3
- package/dist/playbook-stubs.d.ts.map +1 -1
- package/dist/playbook-stubs.js +2 -1
- package/dist/playbook-stubs.js.map +1 -1
- package/dist/setup.d.ts +6 -4
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +50 -25
- package/dist/setup.js.map +1 -1
- package/dist/start.d.ts +1 -0
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +6 -2
- package/dist/start.js.map +1 -1
- package/dist/use.d.ts.map +1 -1
- package/dist/use.js +14 -52
- package/dist/use.js.map +1 -1
- package/package.json +3 -3
- package/dist/coordinator.d.ts +0 -2
- package/dist/coordinator.d.ts.map +0 -1
- package/dist/coordinator.js +0 -153
- package/dist/coordinator.js.map +0 -1
package/dist/agent-harness.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { McpClient, SetupScope } from './mcp-config';
|
|
2
|
+
export type HarnessClient = McpClient | 'codex';
|
|
2
3
|
export declare const HARNESS_MARKER_START = "<!-- agent-deck:harness:start -->";
|
|
3
4
|
export declare const HARNESS_MARKER_END = "<!-- agent-deck:harness:end -->";
|
|
4
5
|
export declare const CURSOR_RULE_FILENAME = "agent-deck.mdc";
|
|
5
6
|
/** One-line rule description (Cursor rule picker / skill-style discoverability). */
|
|
6
7
|
export declare const HARNESS_RULE_DESCRIPTION = "Use when user mentions decks, playbooks, deck MCP tools, or corrects playbook output \u2014 Agent Deck harness";
|
|
7
8
|
export declare function buildClaudeHarnessBlock(scope: SetupScope): string;
|
|
9
|
+
/** Codex uses the same protocol guidance, merged into AGENTS.md. */
|
|
10
|
+
export declare function buildCodexHarnessBlock(scope: SetupScope): string;
|
|
8
11
|
/** Merge only the agent-deck section; never replace other Cursor rules or skills. */
|
|
9
12
|
export declare function mergeCursorHarnessFile(existing: string, harnessInner: string, description?: string): {
|
|
10
13
|
content: string;
|
|
@@ -15,12 +18,12 @@ export declare function mergeClaudeHarness(existing: string, harnessBlock: strin
|
|
|
15
18
|
content: string;
|
|
16
19
|
changed: boolean;
|
|
17
20
|
};
|
|
18
|
-
export declare function resolveHarnessPath(client:
|
|
21
|
+
export declare function resolveHarnessPath(client: HarnessClient, scope: SetupScope): string | null;
|
|
19
22
|
export type HarnessInstallResult = {
|
|
20
23
|
installed: boolean;
|
|
21
24
|
path?: string;
|
|
22
25
|
action?: 'created' | 'updated' | 'unchanged';
|
|
23
26
|
message: string;
|
|
24
27
|
};
|
|
25
|
-
export declare function installAgentHarness(client:
|
|
28
|
+
export declare function installAgentHarness(client: HarnessClient, scope: SetupScope): HarnessInstallResult;
|
|
26
29
|
//# sourceMappingURL=agent-harness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AACxE,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AACpE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,mHACwE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhD,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AACxE,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AACpE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,mHACwE,CAAC;AAsD9G,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMjE;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhE;AAUD,qFAAqF;AACrF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAiC,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAuBvC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhE;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAevC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAoB1F;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAcF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,oBAAoB,CA6ClG"}
|
package/dist/agent-harness.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.HARNESS_RULE_DESCRIPTION = exports.CURSOR_RULE_FILENAME = exports.HARNESS_MARKER_END = exports.HARNESS_MARKER_START = void 0;
|
|
7
7
|
exports.buildClaudeHarnessBlock = buildClaudeHarnessBlock;
|
|
8
|
+
exports.buildCodexHarnessBlock = buildCodexHarnessBlock;
|
|
8
9
|
exports.mergeCursorHarnessFile = mergeCursorHarnessFile;
|
|
9
10
|
exports.buildCursorHarnessFile = buildCursorHarnessFile;
|
|
10
11
|
exports.mergeClaudeHarness = mergeClaudeHarness;
|
|
@@ -18,11 +19,13 @@ exports.HARNESS_MARKER_END = '<!-- agent-deck:harness:end -->';
|
|
|
18
19
|
exports.CURSOR_RULE_FILENAME = 'agent-deck.mdc';
|
|
19
20
|
/** One-line rule description (Cursor rule picker / skill-style discoverability). */
|
|
20
21
|
exports.HARNESS_RULE_DESCRIPTION = 'Use when user mentions decks, playbooks, deck MCP tools, or corrects playbook output — Agent Deck harness';
|
|
21
|
-
const GLOBAL_BODY = `**Connect first:**
|
|
22
|
+
const GLOBAL_BODY = `**Connect first:** Connection has three layers: host transport, folder assignment, then session bootstrap. Cursor / Claude users configure transport with \`agent-deck setup --client cursor|claude --start\`, then restart the host. Codex transport comes from the enabled Agent Deck plugin's bundled \`.mcp.json\`, which launches \`agent-deck mcp-launch\`; \`agent-deck setup --client codex\` installs or refreshes this AGENTS.md guidance but does not install the plugin. Run \`agent-deck use <deck>\` in an IDE folder when its assignment is missing or legacy, then reload or retry MCP. Claude Code: \`claude mcp list\` should show agent-deck as Connected when the backend is running.
|
|
22
23
|
|
|
23
|
-
**
|
|
24
|
+
**Agent Deck hard gate:** When Agent Deck MCP is configured for the current session, or \`.agent-deck/use.json\` indicates that it is expected, bootstrap is mandatory. This includes launch-selected sessions that deliberately have no assignment file. Before reading repo files, running task commands, or answering the task, require \`get_session_binding\` and \`get_bound_deck\` to succeed. If the tools are unavailable, disconnected, return \`GRANT_REQUIRED\`, or otherwise fail, stop and report the connection problem — do not improvise without the deck. Checking for the optional assignment signal, checking whether Agent Deck is configured, and other read-only connection diagnostics are allowed before the gate passes.
|
|
24
25
|
|
|
25
|
-
**
|
|
26
|
+
**Session opener (first turn only):** These calls verify an existing connection; they do not create it. When Agent Deck MCP is configured for the session, call \`get_session_binding\` then \`get_bound_deck\`, and tell the user **exactly one line** using \`display_summary\` (e.g. \`◆ dev · 2 MCP · 0 keys · 1 playbooks\`). Deck authority comes from the launch-selected connection — do **not** call \`get_decks\` or pick a deck. Match the task against the returned playbook triggers and call \`get_playbook\` for every match before taking task action. If tools are unavailable, repair the host transport first. On \`GRANT_REQUIRED\` or "No deck selected", run \`agent-deck use <deck>\` for a missing/legacy IDE folder assignment, or fix \`x-agent-deck-deck-id\` / the launch config for an unattended session. Then reload or retry MCP. Do **not** repeat the status line every turn unless the user asks or the bind changes.
|
|
27
|
+
|
|
28
|
+
**Later turns:** Deck scope comes from the launch-selected connection. Do not re-bind unless the user asks for deck administration.
|
|
26
29
|
|
|
27
30
|
Before declining for missing tools (Slack, Linear, GitHub, etc.), use agent-deck MCP: \`get_bound_deck\`, \`call_service_tool\`. Don't hardcode deck IDs.
|
|
28
31
|
|
|
@@ -64,7 +67,7 @@ Tell the user in one line that a proposal was filed (or a signal was logged for
|
|
|
64
67
|
| Change trigger phrases | \`set_triggers\` | Then user runs \`agent-deck use <deck>\` to refresh stubs |
|
|
65
68
|
|
|
66
69
|
Wrong: \`amend_item\` with a prose sentence as anchor → **409** at propose. Right: \`rewrite_body\` for prose edits.`;
|
|
67
|
-
const PROJECT_BODY_EXTRA = 'In this repo:
|
|
70
|
+
const PROJECT_BODY_EXTRA = 'In this repo: \`agent-deck use <deck>\` is the optional persistent folder-assignment path (writes MCP + trigger stubs + \`.agent-deck/use.json\`); launch-selected sessions can be bound without that file. When a task matches a stub or deck \`triggers\`, \`get_playbook\` before improvising. After accepting playbook patches that change triggers, run \`agent-deck use --refresh\`.';
|
|
68
71
|
function buildClaudeHarnessBlock(scope) {
|
|
69
72
|
const lines = ['## Agent Deck', '', GLOBAL_BODY];
|
|
70
73
|
if (scope === 'project') {
|
|
@@ -72,6 +75,10 @@ function buildClaudeHarnessBlock(scope) {
|
|
|
72
75
|
}
|
|
73
76
|
return lines.join('\n');
|
|
74
77
|
}
|
|
78
|
+
/** Codex uses the same protocol guidance, merged into AGENTS.md. */
|
|
79
|
+
function buildCodexHarnessBlock(scope) {
|
|
80
|
+
return buildClaudeHarnessBlock(scope);
|
|
81
|
+
}
|
|
75
82
|
function buildCursorHarnessInner(scope) {
|
|
76
83
|
const body = scope === 'project' ? `${GLOBAL_BODY}\n\n${PROJECT_BODY_EXTRA}` : GLOBAL_BODY;
|
|
77
84
|
return `# Agent Deck\n\n${body}`;
|
|
@@ -128,6 +135,10 @@ function resolveHarnessPath(client, scope) {
|
|
|
128
135
|
if (client === 'claude') {
|
|
129
136
|
return scope === 'project' ? node_path_1.default.join(cwd, 'CLAUDE.md') : node_path_1.default.join(home, '.claude', 'CLAUDE.md');
|
|
130
137
|
}
|
|
138
|
+
if (client === 'codex') {
|
|
139
|
+
const codexHome = process.env.CODEX_HOME?.trim() || node_path_1.default.join(home, '.codex');
|
|
140
|
+
return scope === 'project' ? node_path_1.default.join(cwd, 'AGENTS.md') : node_path_1.default.join(codexHome, 'AGENTS.md');
|
|
141
|
+
}
|
|
131
142
|
return null;
|
|
132
143
|
}
|
|
133
144
|
function readTextFile(filePath) {
|
|
@@ -145,7 +156,7 @@ function installAgentHarness(client, scope) {
|
|
|
145
156
|
if (!harnessPath) {
|
|
146
157
|
return {
|
|
147
158
|
installed: false,
|
|
148
|
-
message: 'Agent harness applies to Cursor
|
|
159
|
+
message: 'Agent harness applies to Cursor, Claude Code, and Codex. For Claude Desktop, add the same snippets from docs/AGENT_HARNESS.md to your Claude Code global CLAUDE.md if you use both.',
|
|
149
160
|
};
|
|
150
161
|
}
|
|
151
162
|
if (client === 'cursor') {
|
|
@@ -164,7 +175,7 @@ function installAgentHarness(client, scope) {
|
|
|
164
175
|
: `Installed agent harness → ${harnessPath} (other rules/skills untouched)`,
|
|
165
176
|
};
|
|
166
177
|
}
|
|
167
|
-
const block = buildClaudeHarnessBlock(scope);
|
|
178
|
+
const block = client === 'codex' ? buildCodexHarnessBlock(scope) : buildClaudeHarnessBlock(scope);
|
|
168
179
|
const existing = readTextFile(harnessPath);
|
|
169
180
|
const { content, changed } = mergeClaudeHarness(existing, block);
|
|
170
181
|
const action = !existing.trim() ? 'created' : changed ? 'updated' : 'unchanged';
|
|
@@ -177,7 +188,7 @@ function installAgentHarness(client, scope) {
|
|
|
177
188
|
action,
|
|
178
189
|
message: action === 'unchanged'
|
|
179
190
|
? `Agent harness already current → ${harnessPath}`
|
|
180
|
-
: `Installed agent harness → ${harnessPath} (rest of CLAUDE.md untouched)`,
|
|
191
|
+
: `Installed agent harness → ${harnessPath} (rest of ${client === 'codex' ? 'AGENTS.md' : 'CLAUDE.md'} untouched)`,
|
|
181
192
|
};
|
|
182
193
|
}
|
|
183
194
|
//# sourceMappingURL=agent-harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type AssignmentFields = {
|
|
2
|
+
deckId: string;
|
|
3
|
+
deckName: string;
|
|
4
|
+
mcpUrl?: string;
|
|
5
|
+
};
|
|
6
|
+
export type ReadAssignmentResult = AssignmentFields & {
|
|
7
|
+
/** True when the on-disk/keychain source was not already a v3 file. */
|
|
8
|
+
needsMigration: boolean;
|
|
9
|
+
source: 'v3' | 'v2' | 'keychain';
|
|
10
|
+
};
|
|
11
|
+
/** Best-effort delete of the legacy workspace-grant Keychain item after v3 migration. */
|
|
12
|
+
export declare function clearKeychainAssignment(workspaceRoot: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Read the folder's deck assignment (v3), or migrate-ready fields from a v2
|
|
15
|
+
* grant manifest / legacy macOS Keychain entry.
|
|
16
|
+
*/
|
|
17
|
+
export declare function readAssignment(workspaceRoot: string): Promise<ReadAssignmentResult | null>;
|
|
18
|
+
export declare function writeAssignment(workspaceRoot: string, input: AssignmentFields): Promise<string>;
|
|
19
|
+
//# sourceMappingURL=assignment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"","sources":["../src/assignment.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,uEAAuE;IACvE,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;CAClC,CAAC;AA0CF,yFAAyF;AACzF,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAsChG;AAED,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.clearKeychainAssignment = clearKeychainAssignment;
|
|
40
|
+
exports.readAssignment = readAssignment;
|
|
41
|
+
exports.writeAssignment = writeAssignment;
|
|
42
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
43
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
44
|
+
const shared_1 = require("@agent-deck/shared");
|
|
45
|
+
const MANIFEST_FILENAME = 'use.json';
|
|
46
|
+
const KEYCHAIN_SERVICE = 'agent-deck-workspace-grant';
|
|
47
|
+
function manifestPath(workspaceRoot) {
|
|
48
|
+
return node_path_1.default.join(workspaceRoot, '.agent-deck', MANIFEST_FILENAME);
|
|
49
|
+
}
|
|
50
|
+
async function readKeychainAssignment(workspaceRoot) {
|
|
51
|
+
if (process.platform !== 'darwin') {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const { execFile } = await Promise.resolve().then(() => __importStar(require('node:child_process')));
|
|
56
|
+
const { promisify } = await Promise.resolve().then(() => __importStar(require('node:util')));
|
|
57
|
+
const execFileAsync = promisify(execFile);
|
|
58
|
+
const result = await execFileAsync('security', [
|
|
59
|
+
'find-generic-password',
|
|
60
|
+
'-s',
|
|
61
|
+
KEYCHAIN_SERVICE,
|
|
62
|
+
'-a',
|
|
63
|
+
`workspace-grant:${workspaceRoot}`,
|
|
64
|
+
'-w',
|
|
65
|
+
], { encoding: 'utf8' });
|
|
66
|
+
const raw = String(result.stdout ?? '').trim();
|
|
67
|
+
if (!raw) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const parsed = shared_1.WorkspaceGrantManifestSchema.parse(JSON.parse(raw));
|
|
71
|
+
return {
|
|
72
|
+
deckId: parsed.deckId,
|
|
73
|
+
deckName: parsed.deckName ?? parsed.deckId,
|
|
74
|
+
...(parsed.mcpUrl ? { mcpUrl: parsed.mcpUrl } : {}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** Best-effort delete of the legacy workspace-grant Keychain item after v3 migration. */
|
|
82
|
+
async function clearKeychainAssignment(workspaceRoot) {
|
|
83
|
+
if (process.platform !== 'darwin') {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const { execFile } = await Promise.resolve().then(() => __importStar(require('node:child_process')));
|
|
88
|
+
const { promisify } = await Promise.resolve().then(() => __importStar(require('node:util')));
|
|
89
|
+
const execFileAsync = promisify(execFile);
|
|
90
|
+
await execFileAsync('security', [
|
|
91
|
+
'delete-generic-password',
|
|
92
|
+
'-s',
|
|
93
|
+
KEYCHAIN_SERVICE,
|
|
94
|
+
'-a',
|
|
95
|
+
`workspace-grant:${workspaceRoot}`,
|
|
96
|
+
], { encoding: 'utf8' });
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// may not exist
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Read the folder's deck assignment (v3), or migrate-ready fields from a v2
|
|
104
|
+
* grant manifest / legacy macOS Keychain entry.
|
|
105
|
+
*/
|
|
106
|
+
async function readAssignment(workspaceRoot) {
|
|
107
|
+
const filePath = manifestPath(workspaceRoot);
|
|
108
|
+
try {
|
|
109
|
+
const raw = await promises_1.default.readFile(filePath, 'utf8');
|
|
110
|
+
const json = JSON.parse(raw);
|
|
111
|
+
if (json.version === 3) {
|
|
112
|
+
const parsed = shared_1.WorkspaceAssignmentSchema.parse(json);
|
|
113
|
+
return {
|
|
114
|
+
deckId: parsed.deckId,
|
|
115
|
+
deckName: parsed.deckName,
|
|
116
|
+
...(parsed.mcpUrl ? { mcpUrl: parsed.mcpUrl } : {}),
|
|
117
|
+
needsMigration: false,
|
|
118
|
+
source: 'v3',
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
if (json.version === 2) {
|
|
122
|
+
const parsed = shared_1.WorkspaceGrantManifestSchema.parse(json);
|
|
123
|
+
return {
|
|
124
|
+
deckId: parsed.deckId,
|
|
125
|
+
deckName: parsed.deckName ?? parsed.deckId,
|
|
126
|
+
...(parsed.mcpUrl ? { mcpUrl: parsed.mcpUrl } : {}),
|
|
127
|
+
needsMigration: true,
|
|
128
|
+
source: 'v2',
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const nodeError = error;
|
|
134
|
+
if (nodeError.code !== 'ENOENT') {
|
|
135
|
+
// Corrupt or unexpected shape — fall through to Keychain.
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const fromKeychain = await readKeychainAssignment(workspaceRoot);
|
|
139
|
+
if (fromKeychain) {
|
|
140
|
+
return { ...fromKeychain, needsMigration: true, source: 'keychain' };
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
async function writeAssignment(workspaceRoot, input) {
|
|
145
|
+
const dir = node_path_1.default.join(workspaceRoot, '.agent-deck');
|
|
146
|
+
await promises_1.default.mkdir(dir, { recursive: true, mode: 0o700 });
|
|
147
|
+
const assignment = shared_1.WorkspaceAssignmentSchema.parse({
|
|
148
|
+
version: 3,
|
|
149
|
+
deckId: input.deckId,
|
|
150
|
+
deckName: input.deckName,
|
|
151
|
+
...(input.mcpUrl ? { mcpUrl: input.mcpUrl } : {}),
|
|
152
|
+
});
|
|
153
|
+
const target = manifestPath(workspaceRoot);
|
|
154
|
+
await promises_1.default.writeFile(target, `${JSON.stringify(assignment, null, 2)}\n`, {
|
|
155
|
+
encoding: 'utf8',
|
|
156
|
+
mode: 0o644,
|
|
157
|
+
});
|
|
158
|
+
(0, shared_1.ensureGitExcluded)(workspaceRoot);
|
|
159
|
+
return target;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=assignment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment.js","sourceRoot":"","sources":["../src/assignment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,0DAuBC;AAMD,wCAsCC;AAED,0CAqBC;AA5JD,gEAAkC;AAClC,0DAA6B;AAE7B,+CAK4B;AAE5B,MAAM,iBAAiB,GAAG,UAAU,CAAC;AACrC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AActD,SAAS,YAAY,CAAC,aAAqB;IACzC,OAAO,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,aAAqB;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAChD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,UAAU,EACV;YACE,uBAAuB;YACvB,IAAI;YACJ,gBAAgB;YAChB,IAAI;YACJ,mBAAmB,aAAa,EAAE;YAClC,IAAI;SACL,EACD,EAAE,QAAQ,EAAE,MAAwB,EAAE,CACvC,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,qCAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM;YAC1C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yFAAyF;AAClF,KAAK,UAAU,uBAAuB,CAAC,aAAqB;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QAChD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,CACjB,UAAU,EACV;YACE,yBAAyB;YACzB,IAAI;YACJ,gBAAgB;YAChB,IAAI;YACJ,mBAAmB,aAAa,EAAE;SACnC,EACD,EAAE,QAAQ,EAAE,MAAwB,EAAE,CACvC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,aAAqB;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QACxD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,kCAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,IAAI;aACb,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,qCAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM;gBAC1C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,KAA8B,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,0DAA0D;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,KAAuB;IAEvB,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAwB,kCAAyB,CAAC,KAAK,CAAC;QACtE,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACrE,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,IAAA,0BAAiB,EAAC,aAAa,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -50,8 +50,9 @@ export declare function resolveWorkspacePinValue(raw: string | undefined, option
|
|
|
50
50
|
unresolved: boolean;
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
|
-
* Read usable
|
|
54
|
-
*
|
|
53
|
+
* Read usable assignment metadata from `.agent-deck/use.json` without returning secrets.
|
|
54
|
+
* Accepts v3 assignments and legacy v2 grant manifests (deckId only for display).
|
|
55
|
+
* Legacy v1 manifests are not assignments — `mcp-launch` still requires `agent-deck use`.
|
|
55
56
|
*/
|
|
56
57
|
export declare function readGrantSummarySync(workspaceRoot: string): CursorMcpGrantSummary;
|
|
57
58
|
export declare function inspectCursorMcpConfig(options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-mcp-inspect.d.ts","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,UAAU,GACV,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,gBAAgB,GAChB,cAAc,GACd,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,8EAA8E;IAC9E,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAmDD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAoB7C;AA2GD
|
|
1
|
+
{"version":3,"file":"cursor-mcp-inspect.d.ts","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,UAAU,GACV,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,gBAAgB,GAChB,cAAc,GACd,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,8EAA8E;IAC9E,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAmDD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAoB7C;AA2GD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB,CAyBjF;AA4BD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;CACvB,GAAG,mBAAmB,CAyBtB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA+B7E"}
|
|
@@ -171,8 +171,9 @@ function classifyEntry(source, configPath, endpoint, options) {
|
|
|
171
171
|
};
|
|
172
172
|
}
|
|
173
173
|
/**
|
|
174
|
-
* Read usable
|
|
175
|
-
*
|
|
174
|
+
* Read usable assignment metadata from `.agent-deck/use.json` without returning secrets.
|
|
175
|
+
* Accepts v3 assignments and legacy v2 grant manifests (deckId only for display).
|
|
176
|
+
* Legacy v1 manifests are not assignments — `mcp-launch` still requires `agent-deck use`.
|
|
176
177
|
*/
|
|
177
178
|
function readGrantSummarySync(workspaceRoot) {
|
|
178
179
|
const checkedRoot = node_path_1.default.resolve(workspaceRoot);
|
|
@@ -186,7 +187,8 @@ function readGrantSummarySync(workspaceRoot) {
|
|
|
186
187
|
const deckName = typeof raw.deckName === 'string' ? raw.deckName : undefined;
|
|
187
188
|
const grantId = typeof raw.grantId === 'string' ? raw.grantId : undefined;
|
|
188
189
|
const version = raw.version;
|
|
189
|
-
const present = version ===
|
|
190
|
+
const present = (version === 3 && typeof deckId === 'string' && deckId.length > 0) ||
|
|
191
|
+
(version === 2 && typeof deckId === 'string' && deckId.length > 0);
|
|
190
192
|
return {
|
|
191
193
|
checkedRoot,
|
|
192
194
|
present,
|
|
@@ -214,7 +216,7 @@ function collectOverallIssues(preferredSource, global, project, grant) {
|
|
|
214
216
|
if (!grant.present) {
|
|
215
217
|
issues.push({
|
|
216
218
|
code: 'grant-missing',
|
|
217
|
-
message: `No
|
|
219
|
+
message: `No deck assignment at ${grant.checkedRoot} — run \`agent-deck use <deck>\`.`,
|
|
218
220
|
});
|
|
219
221
|
}
|
|
220
222
|
return issues;
|
|
@@ -251,7 +253,7 @@ function formatCursorMcpInspection(report) {
|
|
|
251
253
|
` Project ${report.project.path}`,
|
|
252
254
|
` shape=${report.project.shape} transport=${report.project.transport}` +
|
|
253
255
|
(report.project.workspacePin ? ` pin=${report.project.workspacePin}` : ''),
|
|
254
|
-
`
|
|
256
|
+
` Assignment ${report.grant.present ? 'present' : 'missing'} @ ${report.grant.checkedRoot}` +
|
|
255
257
|
(report.grant.deckName || report.grant.deckId
|
|
256
258
|
? ` (${report.grant.deckName ?? report.grant.deckId})`
|
|
257
259
|
: ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-mcp-inspect.js","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":";;;;;AAyHA,4DAuBC;
|
|
1
|
+
{"version":3,"file":"cursor-mcp-inspect.js","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":"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"}
|
package/dist/debug-mcp.d.ts
CHANGED
|
@@ -1,2 +1,27 @@
|
|
|
1
|
+
export declare function probeMcpInitialize(mcpUrl: string, launchHeaders?: Record<string, string>): Promise<{
|
|
2
|
+
ok: boolean;
|
|
3
|
+
detail: string;
|
|
4
|
+
}>;
|
|
5
|
+
type ClaudeMcpEntryRead = {
|
|
6
|
+
kind: 'missing';
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'entry';
|
|
9
|
+
entry: unknown;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'error';
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
export type ClaudeMcpConfigAssessment = {
|
|
15
|
+
ok: boolean;
|
|
16
|
+
lines: string[];
|
|
17
|
+
};
|
|
18
|
+
export declare function assessClaudeMcpConfig(project: ClaudeMcpEntryRead, user: ClaudeMcpEntryRead): ClaudeMcpConfigAssessment;
|
|
19
|
+
export declare function buildMcpProbePlan(workspaceRoot: string, assignment: {
|
|
20
|
+
deckId: string;
|
|
21
|
+
} | null): {
|
|
22
|
+
shouldProbe: boolean;
|
|
23
|
+
launchHeaders: Record<string, string>;
|
|
24
|
+
};
|
|
1
25
|
export declare function runDebugMcp(): Promise<number>;
|
|
26
|
+
export {};
|
|
2
27
|
//# sourceMappingURL=debug-mcp.d.ts.map
|
package/dist/debug-mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-mcp.d.ts","sourceRoot":"","sources":["../src/debug-mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug-mcp.d.ts","sourceRoot":"","sources":["../src/debug-mcp.ts"],"names":[],"mappings":"AAwBA,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC1C;AAED,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAwBF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,kBAAkB,GACvB,yBAAyB,CAmD3B;AAED,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACpC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAWjE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA8GnD"}
|