@agent-deck/backend 1.2.7 → 1.2.9
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/.tsbuildinfo +1 -1
- package/dist/lib/client-scope.d.ts +4 -0
- package/dist/lib/client-scope.d.ts.map +1 -1
- package/dist/lib/client-scope.js +15 -1
- package/dist/lib/client-scope.js.map +1 -1
- package/dist/mcp-server.d.ts +2 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +27 -12
- package/dist/mcp-server.js.map +1 -1
- package/dist/routes/scope.d.ts.map +1 -1
- package/dist/routes/scope.js +52 -2
- package/dist/routes/scope.js.map +1 -1
- package/dist/scope/bindings-sidecar.d.ts +6 -5
- package/dist/scope/bindings-sidecar.d.ts.map +1 -1
- package/dist/scope/bindings-sidecar.js +16 -15
- package/dist/scope/bindings-sidecar.js.map +1 -1
- package/dist/scope/display.d.ts +3 -3
- package/dist/scope/display.d.ts.map +1 -1
- package/dist/scope/display.js +42 -34
- package/dist/scope/display.js.map +1 -1
- package/dist/scope/live-display-registry.d.ts +19 -0
- package/dist/scope/live-display-registry.d.ts.map +1 -0
- package/dist/scope/live-display-registry.js +44 -0
- package/dist/scope/live-display-registry.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -0
- package/dist/server/index.js.map +1 -1
- package/package.json +2 -2
package/dist/scope/display.js
CHANGED
|
@@ -2,58 +2,66 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveDeckDisplay = resolveDeckDisplay;
|
|
4
4
|
const shared_1 = require("@agent-deck/shared");
|
|
5
|
-
const repo_deck_1 = require("./repo-deck");
|
|
6
|
-
const bindings_sidecar_1 = require("./bindings-sidecar");
|
|
7
5
|
const EMPTY_COUNTS = { mcp: 0, credentials: 0, playbooks: 0 };
|
|
6
|
+
const DEFAULT_MCP_PORT = 11112;
|
|
7
|
+
async function isMcpServerUp() {
|
|
8
|
+
const host = process.env.AGENT_DECK_HOST?.trim() || '127.0.0.1';
|
|
9
|
+
const parsed = Number.parseInt(process.env.AGENT_DECK_MCP_PORT ?? '', 10);
|
|
10
|
+
const port = Number.isFinite(parsed) ? parsed : DEFAULT_MCP_PORT;
|
|
11
|
+
const controller = new AbortController();
|
|
12
|
+
const timer = setTimeout(() => controller.abort(), 800);
|
|
13
|
+
try {
|
|
14
|
+
const response = await fetch(`http://${host}:${port}/health`, { signal: controller.signal });
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const body = (await response.json());
|
|
19
|
+
return body.service === 'agent-deck-mcp-server';
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
clearTimeout(timer);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
8
28
|
function buildDisplay(input, source, deck, options) {
|
|
9
29
|
const agentDeckOnline = options?.agentDeckOnline ?? true;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
30
|
+
const mcpOnline = options?.mcpOnline ?? true;
|
|
31
|
+
const cardCounts = deck ? (0, shared_1.countDeckCards)(deck) : options?.liveCardCounts ?? EMPTY_COUNTS;
|
|
32
|
+
const deckName = deck?.name ?? options?.liveDeckName ?? null;
|
|
33
|
+
const deckId = deck?.id ?? null;
|
|
34
|
+
const updatedAt = options?.updatedAt;
|
|
14
35
|
return {
|
|
15
36
|
workspaceRoot: input.workspaceRoot,
|
|
16
|
-
sessionId: input.sessionId ?? null,
|
|
17
37
|
deckId,
|
|
18
38
|
deckName,
|
|
19
39
|
source,
|
|
20
40
|
cardCounts,
|
|
21
|
-
oauthWarningCount: options?.sidecar?.oauthWarningCount,
|
|
22
41
|
agentDeckOnline,
|
|
42
|
+
mcpOnline,
|
|
23
43
|
updatedAt,
|
|
24
44
|
displayLine: (0, shared_1.formatDisplayLine)(deckName, cardCounts, {
|
|
25
45
|
offline: !agentDeckOnline,
|
|
46
|
+
mcpOffline: agentDeckOnline && !mcpOnline,
|
|
26
47
|
updatedAt,
|
|
27
48
|
}),
|
|
28
49
|
};
|
|
29
50
|
}
|
|
30
|
-
/** Resolve bound-deck display
|
|
31
|
-
async function resolveDeckDisplay(input, db) {
|
|
51
|
+
/** Resolve bound-deck display from live MCP session registry only (no sidecar/manifest guessing). */
|
|
52
|
+
async function resolveDeckDisplay(input, db, registry) {
|
|
32
53
|
const normalizedRoot = input.workspaceRoot.trim();
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const envDeckId = process.env.AGENT_DECK_DECK_ID?.trim();
|
|
44
|
-
if (envDeckId) {
|
|
45
|
-
const deck = await db.getDeck(envDeckId);
|
|
46
|
-
if (deck) {
|
|
47
|
-
return buildDisplay({ sessionId, workspaceRoot: normalizedRoot }, 'env', deck);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const manifest = await (0, repo_deck_1.loadRepoDeckManifest)(normalizedRoot);
|
|
51
|
-
if (manifest) {
|
|
52
|
-
const deck = await db.getDeck(manifest.deck_id);
|
|
53
|
-
if (deck) {
|
|
54
|
-
return buildDisplay({ sessionId, workspaceRoot: normalizedRoot }, 'repo_manifest', deck);
|
|
55
|
-
}
|
|
54
|
+
const live = registry.findForWorkspace(normalizedRoot);
|
|
55
|
+
const mcpOnline = live ? true : await isMcpServerUp();
|
|
56
|
+
if (live) {
|
|
57
|
+
const deck = await db.getDeck(live.deckId);
|
|
58
|
+
return buildDisplay({ workspaceRoot: normalizedRoot }, live.source, deck, {
|
|
59
|
+
mcpOnline,
|
|
60
|
+
updatedAt: live.updatedAt,
|
|
61
|
+
liveDeckName: live.deckName,
|
|
62
|
+
liveCardCounts: live.cardCounts,
|
|
63
|
+
});
|
|
56
64
|
}
|
|
57
|
-
return buildDisplay({
|
|
65
|
+
return buildDisplay({ workspaceRoot: normalizedRoot }, 'unbound', null, { mcpOnline });
|
|
58
66
|
}
|
|
59
67
|
//# sourceMappingURL=display.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/scope/display.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/scope/display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DeckCardCounts, DeckDisplaySource } from '@agent-deck/shared';
|
|
2
|
+
export type LiveDisplayEntry = {
|
|
3
|
+
mcpSessionId: string;
|
|
4
|
+
workspaceRoot: string;
|
|
5
|
+
deckId: string;
|
|
6
|
+
deckName: string;
|
|
7
|
+
source: Exclude<DeckDisplaySource, 'unbound'>;
|
|
8
|
+
cardCounts: DeckCardCounts;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
};
|
|
11
|
+
/** In-memory registry of live MCP session binds (status line reads reality only). */
|
|
12
|
+
export declare class LiveDisplayRegistry {
|
|
13
|
+
private bySessionId;
|
|
14
|
+
upsert(entry: LiveDisplayEntry): void;
|
|
15
|
+
remove(mcpSessionId: string): void;
|
|
16
|
+
/** Nearest workspace bind walking up from workspaceRoot (monorepo walk-up). */
|
|
17
|
+
findForWorkspace(workspaceRoot: string): LiveDisplayEntry | null;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=live-display-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-display-registry.d.ts","sourceRoot":"","sources":["../../src/scope/live-display-registry.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC9C,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qFAAqF;AACrF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAuC;IAE1D,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIrC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIlC,+EAA+E;IAC/E,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;CAwBjE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LiveDisplayRegistry = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const shared_1 = require("@agent-deck/shared");
|
|
9
|
+
/** In-memory registry of live MCP session binds (status line reads reality only). */
|
|
10
|
+
class LiveDisplayRegistry {
|
|
11
|
+
bySessionId = new Map();
|
|
12
|
+
upsert(entry) {
|
|
13
|
+
this.bySessionId.set(entry.mcpSessionId, entry);
|
|
14
|
+
}
|
|
15
|
+
remove(mcpSessionId) {
|
|
16
|
+
this.bySessionId.delete(mcpSessionId);
|
|
17
|
+
}
|
|
18
|
+
/** Nearest workspace bind walking up from workspaceRoot (monorepo walk-up). */
|
|
19
|
+
findForWorkspace(workspaceRoot) {
|
|
20
|
+
let current = (0, shared_1.normalizeWorkspaceRoot)(workspaceRoot);
|
|
21
|
+
while (true) {
|
|
22
|
+
let best = null;
|
|
23
|
+
for (const entry of this.bySessionId.values()) {
|
|
24
|
+
if ((0, shared_1.normalizeWorkspaceRoot)(entry.workspaceRoot) !== current) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (!best || entry.updatedAt > best.updatedAt) {
|
|
28
|
+
best = entry;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (best) {
|
|
32
|
+
return best;
|
|
33
|
+
}
|
|
34
|
+
const parent = node_path_1.default.dirname(current);
|
|
35
|
+
if (parent === current) {
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
current = parent;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.LiveDisplayRegistry = LiveDisplayRegistry;
|
|
44
|
+
//# sourceMappingURL=live-display-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-display-registry.js","sourceRoot":"","sources":["../../src/scope/live-display-registry.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,+CAI4B;AAY5B,qFAAqF;AACrF,MAAa,mBAAmB;IACtB,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D,MAAM,CAAC,KAAuB;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,YAAoB;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,+EAA+E;IAC/E,gBAAgB,CAAC,aAAqB;QACpC,IAAI,OAAO,GAAG,IAAA,+BAAsB,EAAC,aAAa,CAAC,CAAC;QACpD,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,GAA4B,IAAI,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAA,+BAAsB,EAAC,KAAK,CAAC,aAAa,CAAC,KAAK,OAAO,EAAE,CAAC;oBAC5D,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC9C,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApCD,kDAoCC"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { ServiceStatusUpdate, DeckUpdate, WebSocketMessage } from '@agent-deck/s
|
|
|
6
6
|
import { CredentialManager, OAuthClientSecretVault, OAuthTokenVault } from '../vault';
|
|
7
7
|
import { CollectionWarningService } from '../services/collection-warning-service';
|
|
8
8
|
import { PlaybookManager } from '../playbooks/playbook-manager';
|
|
9
|
+
import { LiveDisplayRegistry } from '../scope/live-display-registry';
|
|
9
10
|
export declare function createServer(): Promise<import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>>;
|
|
10
11
|
declare module 'fastify' {
|
|
11
12
|
interface FastifyInstance {
|
|
@@ -18,6 +19,7 @@ declare module 'fastify' {
|
|
|
18
19
|
credentialManager: CredentialManager;
|
|
19
20
|
playbookManager: PlaybookManager;
|
|
20
21
|
collectionWarningService: CollectionWarningService;
|
|
22
|
+
liveDisplayRegistry: LiveDisplayRegistry;
|
|
21
23
|
broadcastServiceUpdate: (update: ServiceStatusUpdate) => void;
|
|
22
24
|
broadcastDeckUpdate: (update: DeckUpdate) => void;
|
|
23
25
|
broadcastToAll: (message: WebSocketMessage) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAUzD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAqB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAUzD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAqB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,wBAAsB,YAAY,qUAkHjC;AAGD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,EAAE,EAAE,eAAe,CAAC;QACpB,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,gBAAgB,CAAC;QAC5B,YAAY,EAAE,YAAY,CAAC;QAC3B,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,eAAe,EAAE,eAAe,CAAC;QACjC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,eAAe,EAAE,eAAe,CAAC;QACjC,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,sBAAsB,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;QAC9D,mBAAmB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;QAClD,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;KACrD;CACF"}
|
package/dist/server/index.js
CHANGED
|
@@ -30,6 +30,7 @@ const collection_1 = require("../routes/collection");
|
|
|
30
30
|
const playbook_manager_1 = require("../playbooks/playbook-manager");
|
|
31
31
|
const version_1 = require("../lib/version");
|
|
32
32
|
const seed_default_services_1 = require("../data/seed-default-services");
|
|
33
|
+
const live_display_registry_1 = require("../scope/live-display-registry");
|
|
33
34
|
async function createServer() {
|
|
34
35
|
const fastify = (0, fastify_1.default)({
|
|
35
36
|
logger: {
|
|
@@ -60,6 +61,7 @@ async function createServer() {
|
|
|
60
61
|
void serviceManager.backfillMissingIcons();
|
|
61
62
|
const playbookManager = new playbook_manager_1.PlaybookManager(db);
|
|
62
63
|
const collectionWarningService = new collection_warning_service_1.CollectionWarningService();
|
|
64
|
+
const liveDisplayRegistry = new live_display_registry_1.LiveDisplayRegistry();
|
|
63
65
|
// Register routes
|
|
64
66
|
await fastify.register(websocket_2.registerWebSocketRoutes, { prefix: '/api/ws' });
|
|
65
67
|
await fastify.register(services_1.registerServiceRoutes, { prefix: '/api/services' });
|
|
@@ -111,6 +113,7 @@ async function createServer() {
|
|
|
111
113
|
fastify.decorate('credentialManager', credentialManager);
|
|
112
114
|
fastify.decorate('playbookManager', playbookManager);
|
|
113
115
|
fastify.decorate('collectionWarningService', collectionWarningService);
|
|
116
|
+
fastify.decorate('liveDisplayRegistry', liveDisplayRegistry);
|
|
114
117
|
// Add broadcast decorators for WebSocket functionality
|
|
115
118
|
fastify.decorate('broadcastServiceUpdate', (update) => {
|
|
116
119
|
console.log('Broadcasting service update:', update);
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-deck/backend",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9",
|
|
4
4
|
"description": "Agent Deck backend API, MCP server, and vault",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"prepublishOnly": "node ../../scripts/pre-publish-check.mjs && npm run build"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@agent-deck/shared": "^1.2.
|
|
40
|
+
"@agent-deck/shared": "^1.2.9",
|
|
41
41
|
"@fastify/cors": "^10.0.0",
|
|
42
42
|
"@fastify/static": "^8.0.0",
|
|
43
43
|
"@fastify/websocket": "^11.2.0",
|