@agent-deck/cli 1.10.0 → 1.10.2
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/assignment.d.ts +2 -2
- package/dist/assignment.d.ts.map +1 -1
- package/dist/assignment.js +12 -7
- package/dist/assignment.js.map +1 -1
- package/dist/backend-runtime.d.ts +13 -0
- package/dist/backend-runtime.d.ts.map +1 -1
- package/dist/backend-runtime.js +20 -0
- package/dist/backend-runtime.js.map +1 -1
- package/dist/cli-integration-harness.d.ts +93 -0
- package/dist/cli-integration-harness.d.ts.map +1 -0
- package/dist/cli-integration-harness.js +309 -0
- package/dist/cli-integration-harness.js.map +1 -0
- package/dist/coordinator.d.ts +2 -0
- package/dist/coordinator.d.ts.map +1 -0
- package/dist/coordinator.js +153 -0
- package/dist/coordinator.js.map +1 -0
- package/dist/cursor-mcp-inspect.d.ts +5 -6
- package/dist/cursor-mcp-inspect.d.ts.map +1 -1
- package/dist/cursor-mcp-inspect.js +18 -19
- package/dist/cursor-mcp-inspect.js.map +1 -1
- package/dist/daemon-logs.d.ts +7 -0
- package/dist/daemon-logs.d.ts.map +1 -1
- package/dist/daemon-logs.js +55 -0
- package/dist/daemon-logs.js.map +1 -1
- package/dist/grant-issue.d.ts +5 -0
- package/dist/grant-issue.d.ts.map +1 -1
- package/dist/grant-issue.js +70 -19
- package/dist/grant-issue.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp-bridge.js +1 -1
- package/dist/mcp-bridge.js.map +1 -1
- package/dist/mcp-config.d.ts +5 -3
- 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 +5 -5
- package/dist/mcp-launcher.d.ts.map +1 -1
- package/dist/mcp-launcher.js +11 -11
- package/dist/mcp-launcher.js.map +1 -1
- package/dist/menubar.d.ts +13 -0
- package/dist/menubar.d.ts.map +1 -1
- package/dist/menubar.js +32 -1
- package/dist/menubar.js.map +1 -1
- package/dist/node-runtime.d.ts +14 -2
- package/dist/node-runtime.d.ts.map +1 -1
- package/dist/node-runtime.js +37 -18
- package/dist/node-runtime.js.map +1 -1
- package/dist/shutdown-reason.d.ts +105 -0
- package/dist/shutdown-reason.d.ts.map +1 -0
- package/dist/shutdown-reason.js +247 -0
- package/dist/shutdown-reason.js.map +1 -0
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +361 -37
- package/dist/start.js.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +27 -0
- package/dist/status.js.map +1 -1
- package/dist/stop.d.ts +14 -1
- package/dist/stop.d.ts.map +1 -1
- package/dist/stop.js +72 -1
- package/dist/stop.js.map +1 -1
- package/dist/store.d.ts +9 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +41 -0
- package/dist/store.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runCoordinatorCommand = runCoordinatorCommand;
|
|
4
|
+
const defaults_1 = require("./defaults");
|
|
5
|
+
const admin_secret_1 = require("./admin-secret");
|
|
6
|
+
const grant_issue_1 = require("./grant-issue");
|
|
7
|
+
function resolveBackendUrl(host) {
|
|
8
|
+
return `http://${host ?? process.env.AGENT_DECK_HOST ?? '127.0.0.1'}:${(0, defaults_1.readCliBackendPort)()}`;
|
|
9
|
+
}
|
|
10
|
+
async function trustedWriterAuth() {
|
|
11
|
+
const adminSecret = await (0, admin_secret_1.readAdminSecret)();
|
|
12
|
+
if (!adminSecret) {
|
|
13
|
+
return {
|
|
14
|
+
ok: false,
|
|
15
|
+
error: 'No admin secret — run `agent-deck setup` or `agent-deck start` once to initialize ~/.agent-deck/admin-secret',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return { ok: true, authorization: `Bearer ${adminSecret}` };
|
|
19
|
+
}
|
|
20
|
+
async function readJson(response) {
|
|
21
|
+
try {
|
|
22
|
+
return (await response.json());
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function runCoordinatorCommand(argv) {
|
|
29
|
+
const [action, ...rest] = argv;
|
|
30
|
+
if (!action || action === 'help' || action === '--help' || action === '-h') {
|
|
31
|
+
printCoordinatorUsage();
|
|
32
|
+
return action ? 0 : 1;
|
|
33
|
+
}
|
|
34
|
+
switch (action) {
|
|
35
|
+
case 'enroll':
|
|
36
|
+
return enroll(rest);
|
|
37
|
+
case 'status':
|
|
38
|
+
return status(rest);
|
|
39
|
+
case 'revoke':
|
|
40
|
+
return revoke(rest);
|
|
41
|
+
default:
|
|
42
|
+
console.error(`Unknown coordinator action: ${action}`);
|
|
43
|
+
printCoordinatorUsage();
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function printCoordinatorUsage() {
|
|
48
|
+
console.log(`Usage:
|
|
49
|
+
agent-deck coordinator enroll --coordinator-id <id> --deck <deckId> [--deck <deckId>...]
|
|
50
|
+
agent-deck coordinator status --enrollment-id <enr_…>
|
|
51
|
+
agent-deck coordinator revoke --enrollment-id <enr_…>
|
|
52
|
+
|
|
53
|
+
Enrolls a local Agent Dealer coordinator to mint short-lived execution authority (NOT-86).
|
|
54
|
+
Dashboard UX is deferred (NOT-90). OS launcher secret delivery is deferred (NOT-89).
|
|
55
|
+
`);
|
|
56
|
+
}
|
|
57
|
+
function parseFlag(args, name) {
|
|
58
|
+
const idx = args.indexOf(name);
|
|
59
|
+
if (idx < 0 || idx + 1 >= args.length)
|
|
60
|
+
return undefined;
|
|
61
|
+
return args[idx + 1];
|
|
62
|
+
}
|
|
63
|
+
function parseRepeatFlag(args, name) {
|
|
64
|
+
const values = [];
|
|
65
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
66
|
+
if (args[i] === name && i + 1 < args.length) {
|
|
67
|
+
values.push(args[i + 1]);
|
|
68
|
+
i += 1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return values;
|
|
72
|
+
}
|
|
73
|
+
async function enroll(args) {
|
|
74
|
+
const coordinatorId = parseFlag(args, '--coordinator-id');
|
|
75
|
+
const decks = parseRepeatFlag(args, '--deck');
|
|
76
|
+
if (!coordinatorId || decks.length === 0) {
|
|
77
|
+
console.error('Required: --coordinator-id <id> and at least one --deck <deckId>');
|
|
78
|
+
return 1;
|
|
79
|
+
}
|
|
80
|
+
const auth = await trustedWriterAuth();
|
|
81
|
+
if (!auth.ok) {
|
|
82
|
+
console.error(auth.error);
|
|
83
|
+
return 1;
|
|
84
|
+
}
|
|
85
|
+
const response = await fetch(`${resolveBackendUrl()}/api/execution-authority/enrollments`, {
|
|
86
|
+
method: 'POST',
|
|
87
|
+
headers: {
|
|
88
|
+
Authorization: auth.authorization,
|
|
89
|
+
'Content-Type': 'application/json',
|
|
90
|
+
},
|
|
91
|
+
body: JSON.stringify({ coordinatorId, allowedDeckIds: decks }),
|
|
92
|
+
});
|
|
93
|
+
const payload = await readJson(response);
|
|
94
|
+
if (!response.ok || !payload?.ok || !payload.data) {
|
|
95
|
+
console.error((0, grant_issue_1.formatTrustedWriterError)(response.status, payload, 'Failed to enroll coordinator'));
|
|
96
|
+
return 1;
|
|
97
|
+
}
|
|
98
|
+
const data = payload.data;
|
|
99
|
+
console.log(`Enrolled coordinator ${data.enrollment.coordinatorId}`);
|
|
100
|
+
console.log(`enrollmentId: ${data.enrollment.enrollmentId}`);
|
|
101
|
+
console.log(`status: ${data.enrollment.status}`);
|
|
102
|
+
console.log(`allowedDeckIds: ${data.enrollment.allowedDeckIds.join(', ')}`);
|
|
103
|
+
console.log('');
|
|
104
|
+
console.log('Store this enrollment secret for Dealer mint calls (shown once):');
|
|
105
|
+
console.log(`enrollmentSecret: ${data.enrollmentSecret}`);
|
|
106
|
+
console.log(`Bearer token form: ${data.enrollment.enrollmentId}:${data.enrollmentSecret}`);
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
async function status(args) {
|
|
110
|
+
const enrollmentId = parseFlag(args, '--enrollment-id');
|
|
111
|
+
if (!enrollmentId) {
|
|
112
|
+
console.error('Required: --enrollment-id <enr_…>');
|
|
113
|
+
return 1;
|
|
114
|
+
}
|
|
115
|
+
const auth = await trustedWriterAuth();
|
|
116
|
+
if (!auth.ok) {
|
|
117
|
+
console.error(auth.error);
|
|
118
|
+
return 1;
|
|
119
|
+
}
|
|
120
|
+
const response = await fetch(`${resolveBackendUrl()}/api/execution-authority/enrollments/${encodeURIComponent(enrollmentId)}`, { headers: { Authorization: auth.authorization } });
|
|
121
|
+
const payload = await readJson(response);
|
|
122
|
+
if (!response.ok || !payload?.ok || !payload.data) {
|
|
123
|
+
console.error((0, grant_issue_1.formatTrustedWriterError)(response.status, payload, 'Failed to load enrollment'));
|
|
124
|
+
return 1;
|
|
125
|
+
}
|
|
126
|
+
const enrollment = payload.data;
|
|
127
|
+
console.log(JSON.stringify(enrollment, null, 2));
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
async function revoke(args) {
|
|
131
|
+
const enrollmentId = parseFlag(args, '--enrollment-id');
|
|
132
|
+
if (!enrollmentId) {
|
|
133
|
+
console.error('Required: --enrollment-id <enr_…>');
|
|
134
|
+
return 1;
|
|
135
|
+
}
|
|
136
|
+
const auth = await trustedWriterAuth();
|
|
137
|
+
if (!auth.ok) {
|
|
138
|
+
console.error(auth.error);
|
|
139
|
+
return 1;
|
|
140
|
+
}
|
|
141
|
+
const response = await fetch(`${resolveBackendUrl()}/api/execution-authority/enrollments/${encodeURIComponent(enrollmentId)}/revoke`, {
|
|
142
|
+
method: 'POST',
|
|
143
|
+
headers: { Authorization: auth.authorization },
|
|
144
|
+
});
|
|
145
|
+
const payload = await readJson(response);
|
|
146
|
+
if (!response.ok || !payload?.ok) {
|
|
147
|
+
console.error((0, grant_issue_1.formatTrustedWriterError)(response.status, payload, 'Failed to revoke enrollment'));
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
console.log(`Revoked enrollment ${enrollmentId}`);
|
|
151
|
+
return 0;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type McpEndpoint } from './mcp-config';
|
|
|
2
2
|
export type CursorMcpConfigSource = 'global' | 'project';
|
|
3
3
|
export type CursorMcpEntryShape = 'missing' | 'legacy-bare-url' | 'mcp-launch' | 'custom';
|
|
4
4
|
export type CursorMcpTransport = 'none' | 'stdio' | 'http' | 'unknown';
|
|
5
|
-
export type CursorMcpIssueCode = 'missing' | 'bare-url' | 'mcp_auth_dead_end' | 'missing-workspace-pin' | 'unresolved-workspace-pin' | 'stale-endpoint' | 'custom-entry' | '
|
|
5
|
+
export type CursorMcpIssueCode = 'missing' | 'bare-url' | 'mcp_auth_dead_end' | 'missing-workspace-pin' | 'unresolved-workspace-pin' | 'stale-endpoint' | 'custom-entry' | 'assignment-missing';
|
|
6
6
|
export interface CursorMcpIssue {
|
|
7
7
|
code: CursorMcpIssueCode;
|
|
8
8
|
message: string;
|
|
@@ -22,12 +22,11 @@ export interface CursorMcpEntryReport {
|
|
|
22
22
|
workspacePin: string | null;
|
|
23
23
|
issues: CursorMcpIssue[];
|
|
24
24
|
}
|
|
25
|
-
export interface
|
|
25
|
+
export interface CursorMcpAssignmentSummary {
|
|
26
26
|
checkedRoot: string;
|
|
27
27
|
present: boolean;
|
|
28
28
|
deckId?: string;
|
|
29
29
|
deckName?: string;
|
|
30
|
-
grantId?: string;
|
|
31
30
|
}
|
|
32
31
|
export interface CursorMcpInspection {
|
|
33
32
|
cwd: string;
|
|
@@ -36,7 +35,7 @@ export interface CursorMcpInspection {
|
|
|
36
35
|
preferredSource: 'project' | 'global' | 'none';
|
|
37
36
|
global: CursorMcpEntryReport;
|
|
38
37
|
project: CursorMcpEntryReport;
|
|
39
|
-
|
|
38
|
+
assignment: CursorMcpAssignmentSummary;
|
|
40
39
|
issues: CursorMcpIssue[];
|
|
41
40
|
}
|
|
42
41
|
/**
|
|
@@ -51,10 +50,10 @@ export declare function resolveWorkspacePinValue(raw: string | undefined, option
|
|
|
51
50
|
};
|
|
52
51
|
/**
|
|
53
52
|
* Read usable assignment metadata from `.agent-deck/use.json` without returning secrets.
|
|
54
|
-
* Accepts v3 assignments and legacy v2
|
|
53
|
+
* Accepts v3 assignments and legacy v2 manifests (deckId only for display).
|
|
55
54
|
* Legacy v1 manifests are not assignments — `mcp-launch` still requires `agent-deck use`.
|
|
56
55
|
*/
|
|
57
|
-
export declare function
|
|
56
|
+
export declare function readAssignmentSummarySync(workspaceRoot: string): CursorMcpAssignmentSummary;
|
|
58
57
|
export declare function inspectCursorMcpConfig(options: {
|
|
59
58
|
cwd?: string;
|
|
60
59
|
endpoint: McpEndpoint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-mcp-inspect.d.ts","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"cursor-mcp-inspect.d.ts","sourceRoot":"","sources":["../src/cursor-mcp-inspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,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,oBAAoB,CAAC;AAEzB,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,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;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,UAAU,EAAE,0BAA0B,CAAC;IACvC,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;AA0GD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,0BAA0B,CAuB3F;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,CAiC7E"}
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.resolveWorkspacePinValue = resolveWorkspacePinValue;
|
|
7
|
-
exports.
|
|
7
|
+
exports.readAssignmentSummarySync = readAssignmentSummarySync;
|
|
8
8
|
exports.inspectCursorMcpConfig = inspectCursorMcpConfig;
|
|
9
9
|
exports.formatCursorMcpInspection = formatCursorMcpInspection;
|
|
10
10
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
@@ -108,11 +108,11 @@ function classifyEntry(source, configPath, endpoint, options) {
|
|
|
108
108
|
issues: [
|
|
109
109
|
{
|
|
110
110
|
code: 'bare-url',
|
|
111
|
-
message: `Legacy bare URL in ${configPath} has no
|
|
111
|
+
message: `Legacy bare URL in ${configPath} has no deck-assignment launcher.`,
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
code: 'mcp_auth_dead_end',
|
|
115
|
-
message:
|
|
115
|
+
message: `${mcp_config_1.CURSOR_MCP_RECOVERY_HINT} Bare HTTP entries are missing a folder assignment.`,
|
|
116
116
|
},
|
|
117
117
|
],
|
|
118
118
|
};
|
|
@@ -149,7 +149,7 @@ function classifyEntry(source, configPath, endpoint, options) {
|
|
|
149
149
|
else if (unresolved) {
|
|
150
150
|
issues.push({
|
|
151
151
|
code: 'unresolved-workspace-pin',
|
|
152
|
-
message: `AGENT_DECK_WORKSPACE in ${configPath} contains unresolved interpolation (${rawPin}); cannot locate the
|
|
152
|
+
message: `AGENT_DECK_WORKSPACE in ${configPath} contains unresolved interpolation (${rawPin}); cannot locate the assignment root.`,
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
155
|
if (endpointSummary.host !== endpoint.host ||
|
|
@@ -172,10 +172,10 @@ function classifyEntry(source, configPath, endpoint, options) {
|
|
|
172
172
|
}
|
|
173
173
|
/**
|
|
174
174
|
* Read usable assignment metadata from `.agent-deck/use.json` without returning secrets.
|
|
175
|
-
* Accepts v3 assignments and legacy v2
|
|
175
|
+
* Accepts v3 assignments and legacy v2 manifests (deckId only for display).
|
|
176
176
|
* Legacy v1 manifests are not assignments — `mcp-launch` still requires `agent-deck use`.
|
|
177
177
|
*/
|
|
178
|
-
function
|
|
178
|
+
function readAssignmentSummarySync(workspaceRoot) {
|
|
179
179
|
const checkedRoot = node_path_1.default.resolve(workspaceRoot);
|
|
180
180
|
const manifestPath = node_path_1.default.join(checkedRoot, '.agent-deck', 'use.json');
|
|
181
181
|
if (!node_fs_1.default.existsSync(manifestPath)) {
|
|
@@ -185,7 +185,6 @@ function readGrantSummarySync(workspaceRoot) {
|
|
|
185
185
|
const raw = JSON.parse(node_fs_1.default.readFileSync(manifestPath, 'utf8'));
|
|
186
186
|
const deckId = typeof raw.deckId === 'string' ? raw.deckId : undefined;
|
|
187
187
|
const deckName = typeof raw.deckName === 'string' ? raw.deckName : undefined;
|
|
188
|
-
const grantId = typeof raw.grantId === 'string' ? raw.grantId : undefined;
|
|
189
188
|
const version = raw.version;
|
|
190
189
|
const present = (version === 3 && typeof deckId === 'string' && deckId.length > 0) ||
|
|
191
190
|
(version === 2 && typeof deckId === 'string' && deckId.length > 0);
|
|
@@ -194,14 +193,13 @@ function readGrantSummarySync(workspaceRoot) {
|
|
|
194
193
|
present,
|
|
195
194
|
...(deckId ? { deckId } : {}),
|
|
196
195
|
...(deckName ? { deckName } : {}),
|
|
197
|
-
...(grantId ? { grantId } : {}),
|
|
198
196
|
};
|
|
199
197
|
}
|
|
200
198
|
catch {
|
|
201
199
|
return { checkedRoot, present: false };
|
|
202
200
|
}
|
|
203
201
|
}
|
|
204
|
-
function collectOverallIssues(preferredSource, global, project,
|
|
202
|
+
function collectOverallIssues(preferredSource, global, project, assignment) {
|
|
205
203
|
const issues = [];
|
|
206
204
|
for (const report of [global, project]) {
|
|
207
205
|
for (const issue of report.issues) {
|
|
@@ -213,10 +211,10 @@ function collectOverallIssues(preferredSource, global, project, grant) {
|
|
|
213
211
|
issues.push(issue);
|
|
214
212
|
}
|
|
215
213
|
}
|
|
216
|
-
if (!
|
|
214
|
+
if (!assignment.present) {
|
|
217
215
|
issues.push({
|
|
218
|
-
code: '
|
|
219
|
-
message: `No deck assignment at ${
|
|
216
|
+
code: 'assignment-missing',
|
|
217
|
+
message: `No deck assignment at ${assignment.checkedRoot} — run \`agent-deck use <deck>\`.`,
|
|
220
218
|
});
|
|
221
219
|
}
|
|
222
220
|
return issues;
|
|
@@ -229,16 +227,16 @@ function inspectCursorMcpConfig(options) {
|
|
|
229
227
|
const project = classifyEntry('project', projectPath, options.endpoint, { projectRoot: cwd });
|
|
230
228
|
const preferredSource = project.shape !== 'missing' ? 'project' : global.shape !== 'missing' ? 'global' : 'none';
|
|
231
229
|
const preferred = preferredSource === 'project' ? project : preferredSource === 'global' ? global : null;
|
|
232
|
-
const
|
|
233
|
-
const
|
|
234
|
-
const issues = collectOverallIssues(preferredSource, global, project,
|
|
230
|
+
const assignmentRoot = preferred?.workspacePin ?? cwd;
|
|
231
|
+
const assignment = readAssignmentSummarySync(assignmentRoot);
|
|
232
|
+
const issues = collectOverallIssues(preferredSource, global, project, assignment);
|
|
235
233
|
return {
|
|
236
234
|
cwd,
|
|
237
235
|
expectedPrecedence: 'project-over-global',
|
|
238
236
|
preferredSource,
|
|
239
237
|
global,
|
|
240
238
|
project,
|
|
241
|
-
|
|
239
|
+
assignment,
|
|
242
240
|
issues,
|
|
243
241
|
};
|
|
244
242
|
}
|
|
@@ -253,9 +251,9 @@ function formatCursorMcpInspection(report) {
|
|
|
253
251
|
` Project ${report.project.path}`,
|
|
254
252
|
` shape=${report.project.shape} transport=${report.project.transport}` +
|
|
255
253
|
(report.project.workspacePin ? ` pin=${report.project.workspacePin}` : ''),
|
|
256
|
-
` Assignment ${report.
|
|
257
|
-
(report.
|
|
258
|
-
? ` (${report.
|
|
254
|
+
` Assignment ${report.assignment.present ? 'present' : 'missing'} @ ${report.assignment.checkedRoot}` +
|
|
255
|
+
(report.assignment.deckName || report.assignment.deckId
|
|
256
|
+
? ` (${report.assignment.deckName ?? report.assignment.deckId})`
|
|
259
257
|
: ''),
|
|
260
258
|
];
|
|
261
259
|
const uniqueMessages = new Map();
|
|
@@ -271,6 +269,7 @@ function formatCursorMcpInspection(report) {
|
|
|
271
269
|
else {
|
|
272
270
|
lines.push(' Issues: none');
|
|
273
271
|
}
|
|
272
|
+
lines.push(` Recovery: ${mcp_config_1.CURSOR_MCP_RECOVERY_HINT}`);
|
|
274
273
|
return lines.join('\n');
|
|
275
274
|
}
|
|
276
275
|
//# sourceMappingURL=cursor-mcp-inspect.js.map
|
|
@@ -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":";;;;;AAyHA,4DAuBC;AA+GD,8DAuBC;AA4BD,wDA4BC;AAED,8DAiCC;AAjXD,sDAAyB;AACzB,0DAA6B;AAE7B,6CAOsB;AA0DtB,SAAS,kBAAkB,CAAC,UAAkB;IAI5C,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,yBAAY,EAAC,UAAU,CAAC,CAAC;IACxC,MAAM,OAAO,GACX,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACxD,CAAC,CAAE,MAAM,CAAC,UAAsC;QAChD,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,GAA8B,CAAC;QACjD,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,IAAA,6BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAI,KAAiC,CAAC,GAAG,CAAC;IACnD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,aAAa,GAAI,GAA+B,CAAC,oBAAoB,CAAC;IAC5E,OAAO,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,GAAuB,EACvB,OAAkC;IAElC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CACpB,MAA6B,EAC7B,UAAkB,EAClB,QAAqB,EACrB,OAAkC;IAElC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,UAAU;YACV,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,0BAA0B,UAAU,GAAG;iBACjD;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,2CAA8B,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,UAAU;YACV,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;YAClC,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,sBAAsB,UAAU,mCAAmC;iBAC7E;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,GAAG,qCAAwB,qDAAqD;iBAC1F;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAA,6BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,UAAU;YACV,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;YAClC,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,gCAAgC,UAAU,8FAA8F;iBAClJ;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACzE,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,iBAAiB,UAAU,8FAA8F;SACnI,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,2BAA2B,UAAU,uCAAuC,MAAM,uCAAuC;SACnI,CAAC,CAAC;IACL,CAAC;IACD,IACE,eAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QACtC,eAAe,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EACpD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,uBAAuB,eAAe,CAAC,IAAI,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,IAAI,GAAG,sCAAsC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,GAAG;SACxK,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM;QACN,IAAI,EAAE,UAAU;QAChB,UAAU;QACV,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,eAAe;QACzB,YAAY;QACZ,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,aAAqB;IAC7D,MAAM,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAA4B,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,OAAO,GACX,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAClE,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO;YACL,WAAW;YACX,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,eAAuD,EACvD,MAA4B,EAC5B,OAA6B,EAC7B,UAAsC;IAEtC,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,6EAA6E;YAC7E,sEAAsE;YACtE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,yBAAyB,UAAU,CAAC,WAAW,mCAAmC;SAC5F,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAGtC;IACC,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAA,8BAAiB,EAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9F,MAAM,eAAe,GACnB,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3F,MAAM,SAAS,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACzG,MAAM,cAAc,GAAG,SAAS,EAAE,YAAY,IAAI,GAAG,CAAC;IACtD,MAAM,UAAU,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAElF,OAAO;QACL,GAAG;QACH,kBAAkB,EAAE,qBAAqB;QACzC,eAAe;QACf,MAAM;QACN,OAAO;QACP,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,MAA2B;IACnE,MAAM,KAAK,GAAa;QACtB,oCAAoC;QACpC,4CAA4C;QAC5C,uBAAuB,MAAM,CAAC,eAAe,EAAE;QAC/C,aAAa,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACjC,aAAa,MAAM,CAAC,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;YACrE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,aAAa,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAClC,aAAa,MAAM,CAAC,OAAO,CAAC,KAAK,cAAc,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;YACvE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,gBAAgB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;YACpG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM;gBACrD,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG;gBAChE,CAAC,CAAC,EAAE,CAAC;KACV,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,qCAAwB,EAAE,CAAC,CAAC;IAEtD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/daemon-logs.d.ts
CHANGED
|
@@ -4,5 +4,12 @@ export declare function resolveDaemonLogPath(name: DaemonLogName): string;
|
|
|
4
4
|
/** Append-only log sink; returns fd for child stdio (caller does not close while process runs). */
|
|
5
5
|
export declare function openDaemonLogFd(name: DaemonLogName): number;
|
|
6
6
|
export declare function appendDaemonLogLine(name: DaemonLogName, line: string): void;
|
|
7
|
+
/**
|
|
8
|
+
* Last `maxLines` meaningful lines of a child log, newest last. Reads only the
|
|
9
|
+
* trailing window of the file, so a multi-GB backend.log stays cheap.
|
|
10
|
+
*/
|
|
11
|
+
export declare function readDaemonLogTail(name: DaemonLogName, maxLines?: number): string[];
|
|
12
|
+
/** Supervisor-log rendering of a child log tail, so the origin of each line is obvious. */
|
|
13
|
+
export declare function formatChildLogTail(name: DaemonLogName, lines: string[]): string[];
|
|
7
14
|
export declare function resolveCliEntry(): string;
|
|
8
15
|
//# sourceMappingURL=daemon-logs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-logs.d.ts","sourceRoot":"","sources":["../src/daemon-logs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon-logs.d.ts","sourceRoot":"","sources":["../src/daemon-logs.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAK7D,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEhE;AAED,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAM3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,SAAK,GAAG,MAAM,EAAE,CAgC9E;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASjF;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/daemon-logs.js
CHANGED
|
@@ -7,10 +7,15 @@ exports.resolveDaemonLogsDir = resolveDaemonLogsDir;
|
|
|
7
7
|
exports.resolveDaemonLogPath = resolveDaemonLogPath;
|
|
8
8
|
exports.openDaemonLogFd = openDaemonLogFd;
|
|
9
9
|
exports.appendDaemonLogLine = appendDaemonLogLine;
|
|
10
|
+
exports.readDaemonLogTail = readDaemonLogTail;
|
|
11
|
+
exports.formatChildLogTail = formatChildLogTail;
|
|
10
12
|
exports.resolveCliEntry = resolveCliEntry;
|
|
11
13
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
15
|
const shared_1 = require("@agent-deck/shared");
|
|
16
|
+
const strip_ansi_1 = require("./strip-ansi");
|
|
17
|
+
/** Child logs grow to hundreds of MB — only ever read the tail window. */
|
|
18
|
+
const LOG_TAIL_BYTES = 64 * 1024;
|
|
14
19
|
function resolveDaemonLogsDir() {
|
|
15
20
|
return node_path_1.default.join((0, shared_1.resolveAgentDeckHome)(), 'logs');
|
|
16
21
|
}
|
|
@@ -30,6 +35,56 @@ function appendDaemonLogLine(name, line) {
|
|
|
30
35
|
node_fs_1.default.mkdirSync(node_path_1.default.dirname(logPath), { recursive: true });
|
|
31
36
|
node_fs_1.default.appendFileSync(logPath, `${line}\n`);
|
|
32
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Last `maxLines` meaningful lines of a child log, newest last. Reads only the
|
|
40
|
+
* trailing window of the file, so a multi-GB backend.log stays cheap.
|
|
41
|
+
*/
|
|
42
|
+
function readDaemonLogTail(name, maxLines = 20) {
|
|
43
|
+
let fd;
|
|
44
|
+
try {
|
|
45
|
+
const logPath = resolveDaemonLogPath(name);
|
|
46
|
+
fd = node_fs_1.default.openSync(logPath, 'r');
|
|
47
|
+
const size = node_fs_1.default.fstatSync(fd).size;
|
|
48
|
+
const length = Math.min(size, LOG_TAIL_BYTES);
|
|
49
|
+
const buffer = Buffer.alloc(length);
|
|
50
|
+
node_fs_1.default.readSync(fd, buffer, 0, length, size - length);
|
|
51
|
+
const text = buffer.toString('utf8');
|
|
52
|
+
// A partial first line is an artefact of the window, not a log entry.
|
|
53
|
+
const lines = (size > length ? text.slice(text.indexOf('\n') + 1) : text)
|
|
54
|
+
.split('\n')
|
|
55
|
+
.map((line) => (0, strip_ansi_1.stripAnsi)(line).trimEnd())
|
|
56
|
+
.filter((line) => line.length > 0);
|
|
57
|
+
// Each spawn writes a `--- <name> <iso> ---` banner; report the current
|
|
58
|
+
// run only, so a previous run's output cannot look like this failure.
|
|
59
|
+
let lastBanner = -1;
|
|
60
|
+
for (let i = lines.length - 1; i >= 0; i -= 1) {
|
|
61
|
+
if (/^--- \w+ \d{4}-\d{2}-\d{2}T/.test(lines[i])) {
|
|
62
|
+
lastBanner = i;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return (lastBanner >= 0 ? lines.slice(lastBanner + 1) : lines).slice(-maxLines);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
if (fd !== undefined) {
|
|
73
|
+
node_fs_1.default.closeSync(fd);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Supervisor-log rendering of a child log tail, so the origin of each line is obvious. */
|
|
78
|
+
function formatChildLogTail(name, lines) {
|
|
79
|
+
if (lines.length === 0) {
|
|
80
|
+
return [`[agent-deck] ${name}.log had no output to show (${resolveDaemonLogPath(name)})`];
|
|
81
|
+
}
|
|
82
|
+
return [
|
|
83
|
+
`[agent-deck] --- last ${lines.length} line(s) of ${name}.log ---`,
|
|
84
|
+
...lines.map((line) => `[agent-deck] ${name}.log| ${line}`),
|
|
85
|
+
`[agent-deck] --- end of ${name}.log tail (${resolveDaemonLogPath(name)}) ---`,
|
|
86
|
+
];
|
|
87
|
+
}
|
|
33
88
|
function resolveCliEntry() {
|
|
34
89
|
return process.argv[1] ?? node_path_1.default.join(__dirname, 'bin.js');
|
|
35
90
|
}
|
package/dist/daemon-logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-logs.js","sourceRoot":"","sources":["../src/daemon-logs.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"daemon-logs.js","sourceRoot":"","sources":["../src/daemon-logs.ts"],"names":[],"mappings":"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"}
|
package/dist/grant-issue.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export type IssuedGrant = {
|
|
|
7
7
|
secret: string;
|
|
8
8
|
status: 'pending' | 'active';
|
|
9
9
|
};
|
|
10
|
+
/** Prefer Fastify `message` / API `error` over a bare status phrase like "Bad Request". */
|
|
11
|
+
export declare function formatTrustedWriterError(status: number, payload: {
|
|
12
|
+
error?: string;
|
|
13
|
+
message?: string;
|
|
14
|
+
} | null, fallback: string): string;
|
|
10
15
|
export declare function issueWorkspaceGrant(input: {
|
|
11
16
|
workspaceRoot: string;
|
|
12
17
|
deckId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-issue.d.ts","sourceRoot":"","sources":["../src/grant-issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"grant-issue.d.ts","sourceRoot":"","sources":["../src/grant-issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAyBF,2FAA2F;AAC3F,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EACpD,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAoBD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC3C;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqCtF;AAED,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BpC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,UAAmB,GAClC,sBAAsB,CAYxB"}
|