vibe-squire 2.3.2 → 3.0.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/README.md +8 -8
- package/dist/generated/prisma/internal/class.js +1 -1
- package/dist/generated/prisma/internal/class.js.map +1 -1
- package/dist/integrations/vibe-kanban/vibe-kanban-destination.module.js +10 -15
- package/dist/integrations/vibe-kanban/vibe-kanban-destination.module.js.map +1 -1
- package/dist/integrations/vibe-kanban/vk-board-adapter.service.d.ts +2 -2
- package/dist/integrations/vibe-kanban/vk-board-adapter.service.js +2 -2
- package/dist/integrations/vibe-kanban/vk-board-adapter.service.js.map +1 -1
- package/dist/integrations/vibe-kanban/{vk-mcp-integration.listener.d.ts → vk-board-integration.listener.d.ts} +3 -5
- package/dist/integrations/vibe-kanban/{vk-mcp-integration.listener.js → vk-board-integration.listener.js} +17 -22
- package/dist/integrations/vibe-kanban/vk-board-integration.listener.js.map +1 -0
- package/dist/integrations/vibe-kanban/vk-status.service.js +6 -6
- package/dist/integrations/vibe-kanban/vk-status.service.js.map +1 -1
- package/dist/integrations/vibe-kanban/vk-ui.controller.d.ts +2 -2
- package/dist/integrations/vibe-kanban/vk-ui.controller.js +2 -2
- package/dist/integrations/vibe-kanban/vk-ui.controller.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/ports/destination-status.port.d.ts +1 -1
- package/dist/ports/injection-tokens.d.ts +0 -1
- package/dist/ports/injection-tokens.js +1 -2
- package/dist/ports/injection-tokens.js.map +1 -1
- package/dist/reinit/reinit.controller.js +1 -1
- package/dist/reinit/reinit.controller.js.map +1 -1
- package/dist/settings/core-settings.schema.js +1 -1
- package/dist/settings/core-settings.schema.js.map +1 -1
- package/dist/setup/setup-evaluation.service.d.ts +1 -1
- package/dist/setup/setup-evaluation.service.js +2 -2
- package/dist/setup/setup-evaluation.service.js.map +1 -1
- package/dist/status/dto/status-snapshot.dto.d.ts +1 -1
- package/dist/status/dto/status-snapshot.dto.js +4 -4
- package/dist/status/dto/status-snapshot.dto.js.map +1 -1
- package/dist/status/status-snapshot.schema.d.ts +1 -1
- package/dist/status/status-snapshot.schema.js +1 -1
- package/dist/status/status-snapshot.schema.js.map +1 -1
- package/dist/sync/poll-cycle/run-poll-prerequisites.d.ts +1 -1
- package/dist/sync/poll-cycle/run-poll-prerequisites.js +3 -3
- package/dist/sync/poll-cycle/run-poll-prerequisites.js.map +1 -1
- package/dist/sync/poll-cycle/vk-board-network-error-heuristic.d.ts +1 -0
- package/dist/sync/poll-cycle/vk-board-network-error-heuristic.js +16 -0
- package/dist/sync/poll-cycle/vk-board-network-error-heuristic.js.map +1 -0
- package/dist/sync/run-poll-cycle.service.js +4 -4
- package/dist/sync/run-poll-cycle.service.js.map +1 -1
- package/dist/sync/sync.controller.js +1 -1
- package/dist/sync/sync.controller.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/public/operator-dashboard.js +3 -3
- package/dist/ui/public/operator-mappings.js +1 -1
- package/dist/ui/ui-vibe-kanban-presenter.d.ts +3 -3
- package/dist/ui/ui-vibe-kanban-presenter.js +8 -8
- package/dist/ui/ui-vibe-kanban-presenter.js.map +1 -1
- package/dist/ui/ui.controller.js +1 -1
- package/dist/ui/ui.controller.js.map +1 -1
- package/dist/ui/views/dashboard.hbs +1 -1
- package/dist/ui/views/mappings.hbs +1 -1
- package/dist/ui/views/vibe-kanban.hbs +2 -2
- package/dist/vibe-kanban/read-vk-main-port.d.ts +1 -0
- package/dist/vibe-kanban/read-vk-main-port.js +32 -0
- package/dist/vibe-kanban/read-vk-main-port.js.map +1 -0
- package/dist/vibe-kanban/resolve-vk-backend-base-url.d.ts +1 -0
- package/dist/vibe-kanban/resolve-vk-backend-base-url.js +46 -0
- package/dist/vibe-kanban/resolve-vk-backend-base-url.js.map +1 -0
- package/dist/vibe-kanban/rest/vibe-kanban-api.client.d.ts +62 -0
- package/dist/vibe-kanban/rest/vibe-kanban-api.client.js +364 -0
- package/dist/vibe-kanban/rest/vibe-kanban-api.client.js.map +1 -0
- package/dist/vibe-kanban/rest/vk-api-envelope.schema.d.ts +7 -0
- package/dist/vibe-kanban/rest/vk-api-envelope.schema.js +10 -0
- package/dist/vibe-kanban/rest/vk-api-envelope.schema.js.map +1 -0
- package/dist/vibe-kanban/rest/vk-remote-api.schema.d.ts +91 -0
- package/dist/vibe-kanban/rest/vk-remote-api.schema.js +64 -0
- package/dist/vibe-kanban/rest/vk-remote-api.schema.js.map +1 -0
- package/dist/vibe-kanban/{vibe-kanban-mcp.service.d.ts → vibe-kanban-board.service.d.ts} +5 -9
- package/dist/vibe-kanban/vibe-kanban-board.service.js +134 -0
- package/dist/vibe-kanban/vibe-kanban-board.service.js.map +1 -0
- package/dist/vibe-kanban/vibe-kanban-context.controller.d.ts +2 -2
- package/dist/vibe-kanban/vibe-kanban-context.controller.js +12 -10
- package/dist/vibe-kanban/vibe-kanban-context.controller.js.map +1 -1
- package/dist/vibe-kanban/{vibe-kanban-mcp-configured.guard.d.ts → vibe-kanban-destination-configured.guard.d.ts} +1 -1
- package/dist/vibe-kanban/{vibe-kanban-mcp-configured.guard.js → vibe-kanban-destination-configured.guard.js} +9 -9
- package/dist/vibe-kanban/vibe-kanban-destination-configured.guard.js.map +1 -0
- package/dist/vibe-kanban/vibe-kanban-destination.d.ts +4 -0
- package/dist/vibe-kanban/vibe-kanban-destination.js +13 -0
- package/dist/vibe-kanban/vibe-kanban-destination.js.map +1 -0
- package/dist/vibe-kanban/{mcp-result/vk-mcp-tool-result.d.ts → vk-board-payload-normalize.d.ts} +1 -4
- package/dist/vibe-kanban/{mcp-result/vk-mcp-tool-result.js → vk-board-payload-normalize.js} +1 -48
- package/dist/vibe-kanban/{mcp-result/vk-mcp-tool-result.js.map → vk-board-payload-normalize.js.map} +1 -1
- package/dist/vibe-kanban/{mcp-result/vk-mcp-list-get-issue-response.schema.d.ts → vk-list-get-issue-response.schema.d.ts} +10 -10
- package/dist/vibe-kanban/{mcp-result/vk-mcp-list-get-issue-response.schema.js → vk-list-get-issue-response.schema.js} +14 -14
- package/dist/vibe-kanban/vk-list-get-issue-response.schema.js.map +1 -0
- package/dist/vibe-kanban/vk-port-file.schema.d.ts +6 -0
- package/dist/vibe-kanban/vk-port-file.schema.js +9 -0
- package/dist/vibe-kanban/vk-port-file.schema.js.map +1 -0
- package/package.json +3 -3
- package/prisma/schema.prisma +1 -1
- package/dist/integrations/vibe-kanban/vk-mcp-integration.listener.js.map +0 -1
- package/dist/ports/vk-mcp-stdio-session.port.d.ts +0 -5
- package/dist/ports/vk-mcp-stdio-session.port.js +0 -3
- package/dist/ports/vk-mcp-stdio-session.port.js.map +0 -1
- package/dist/sync/poll-cycle/mcp-network-error-heuristic.d.ts +0 -1
- package/dist/sync/poll-cycle/mcp-network-error-heuristic.js +0 -13
- package/dist/sync/poll-cycle/mcp-network-error-heuristic.js.map +0 -1
- package/dist/vibe-kanban/mcp-result/mcp-tool-result-text.d.ts +0 -3
- package/dist/vibe-kanban/mcp-result/mcp-tool-result-text.js +0 -26
- package/dist/vibe-kanban/mcp-result/mcp-tool-result-text.js.map +0 -1
- package/dist/vibe-kanban/mcp-result/vk-mcp-list-get-issue-response.schema.js.map +0 -1
- package/dist/vibe-kanban/transport/mcp-transport-config.d.ts +0 -5
- package/dist/vibe-kanban/transport/mcp-transport-config.js +0 -16
- package/dist/vibe-kanban/transport/mcp-transport-config.js.map +0 -1
- package/dist/vibe-kanban/transport/vk-mcp-stdio-session.service.d.ts +0 -20
- package/dist/vibe-kanban/transport/vk-mcp-stdio-session.service.js +0 -124
- package/dist/vibe-kanban/transport/vk-mcp-stdio-session.service.js.map +0 -1
- package/dist/vibe-kanban/transport/vk-stdio-command.schema.d.ts +0 -9
- package/dist/vibe-kanban/transport/vk-stdio-command.schema.js +0 -37
- package/dist/vibe-kanban/transport/vk-stdio-command.schema.js.map +0 -1
- package/dist/vibe-kanban/vibe-kanban-mcp-configured.guard.js.map +0 -1
- package/dist/vibe-kanban/vibe-kanban-mcp.service.js +0 -225
- package/dist/vibe-kanban/vibe-kanban-mcp.service.js.map +0 -1
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.looksLikeMcpOrNetworkError = looksLikeMcpOrNetworkError;
|
|
4
|
-
function looksLikeMcpOrNetworkError(msg) {
|
|
5
|
-
const m = msg.toLowerCase();
|
|
6
|
-
return (m.includes('mcp') ||
|
|
7
|
-
m.includes('fetch') ||
|
|
8
|
-
m.includes('econnrefused') ||
|
|
9
|
-
m.includes('socket') ||
|
|
10
|
-
m.includes('network') ||
|
|
11
|
-
m.includes('streamablehttp'));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=mcp-network-error-heuristic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-network-error-heuristic.js","sourceRoot":"","sources":["../../../src/sync/poll-cycle/mcp-network-error-heuristic.ts"],"names":[],"mappings":";;AACA,gEAUC;AAVD,SAAgB,0BAA0B,CAAC,GAAW;IACpD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,OAAO,CACL,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mcpResultTextParts = mcpResultTextParts;
|
|
4
|
-
exports.summarizeMcpToolErrorText = summarizeMcpToolErrorText;
|
|
5
|
-
exports.isGetIssueNotFoundMcpResult = isGetIssueNotFoundMcpResult;
|
|
6
|
-
function mcpResultTextParts(result) {
|
|
7
|
-
const r = result;
|
|
8
|
-
return (r.content
|
|
9
|
-
?.filter((c) => c.type === 'text' && typeof c.text === 'string')
|
|
10
|
-
.map((c) => c.text.trim())
|
|
11
|
-
.filter(Boolean) ?? []);
|
|
12
|
-
}
|
|
13
|
-
function summarizeMcpToolErrorText(result) {
|
|
14
|
-
const parts = mcpResultTextParts(result);
|
|
15
|
-
const s = parts.join(' | ').slice(0, 800);
|
|
16
|
-
return s.length > 0 ? s : 'isError=true (no text in content)';
|
|
17
|
-
}
|
|
18
|
-
function isGetIssueNotFoundMcpResult(result) {
|
|
19
|
-
const r = result;
|
|
20
|
-
if (r.isError !== true) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
const summary = summarizeMcpToolErrorText(result);
|
|
24
|
-
return /\b404\b|not\s+found|issue\s+not\s+found|unknown\s+issue/i.test(summary);
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=mcp-tool-result-text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-result-text.js","sourceRoot":"","sources":["../../../src/vibe-kanban/mcp-result/mcp-tool-result-text.ts"],"names":[],"mappings":";;AACA,gDAaC;AAKD,8DAIC;AAMD,kEASC;AArCD,SAAgB,kBAAkB,CAAC,MAAe;IAChD,MAAM,CAAC,GAAG,MAET,CAAC;IACF,OAAO,CACL,CAAC,CAAC,OAAO;QACP,EAAE,MAAM,CACN,CAAC,CAAC,EAAuC,EAAE,CACzC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAClD;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACzB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CACzB,CAAC;AACJ,CAAC;AAKD,SAAgB,yBAAyB,CAAC,MAAe;IACvD,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC;AAChE,CAAC;AAMD,SAAgB,2BAA2B,CAAC,MAAe;IACzD,MAAM,CAAC,GAAG,MAA+B,CAAC;IAC1C,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,0DAA0D,CAAC,IAAI,CACpE,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vk-mcp-list-get-issue-response.schema.js","sourceRoot":"","sources":["../../../src/vibe-kanban/mcp-result/vk-mcp-list-get-issue-response.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SupportedDestinationType } from '../../config/integration-types';
|
|
2
|
-
export { parseVkStdioCommand, VK_MCP_STDIO_SPAWN, } from './vk-stdio-command.schema';
|
|
3
|
-
export declare const VK_MCP_NOT_CONFIGURED_MESSAGE = "Vibe Kanban MCP routes require VIBE_SQUIRE_DESTINATION_TYPE=vibe_kanban";
|
|
4
|
-
export declare function isVibeKanbanDestination(destinationType: SupportedDestinationType): boolean;
|
|
5
|
-
export declare function isVibeKanbanMcpConfigured(destinationType: SupportedDestinationType): boolean;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VK_MCP_NOT_CONFIGURED_MESSAGE = exports.VK_MCP_STDIO_SPAWN = exports.parseVkStdioCommand = void 0;
|
|
4
|
-
exports.isVibeKanbanDestination = isVibeKanbanDestination;
|
|
5
|
-
exports.isVibeKanbanMcpConfigured = isVibeKanbanMcpConfigured;
|
|
6
|
-
var vk_stdio_command_schema_1 = require("./vk-stdio-command.schema");
|
|
7
|
-
Object.defineProperty(exports, "parseVkStdioCommand", { enumerable: true, get: function () { return vk_stdio_command_schema_1.parseVkStdioCommand; } });
|
|
8
|
-
Object.defineProperty(exports, "VK_MCP_STDIO_SPAWN", { enumerable: true, get: function () { return vk_stdio_command_schema_1.VK_MCP_STDIO_SPAWN; } });
|
|
9
|
-
exports.VK_MCP_NOT_CONFIGURED_MESSAGE = 'Vibe Kanban MCP routes require VIBE_SQUIRE_DESTINATION_TYPE=vibe_kanban';
|
|
10
|
-
function isVibeKanbanDestination(destinationType) {
|
|
11
|
-
return destinationType === 'vibe_kanban';
|
|
12
|
-
}
|
|
13
|
-
function isVibeKanbanMcpConfigured(destinationType) {
|
|
14
|
-
return isVibeKanbanDestination(destinationType);
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=mcp-transport-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-transport-config.js","sourceRoot":"","sources":["../../../src/vibe-kanban/transport/mcp-transport-config.ts"],"names":[],"mappings":";;;AAWA,0DAIC;AAKD,8DAIC;AAtBD,qEAGmC;AAFjC,8HAAA,mBAAmB,OAAA;AACnB,6HAAA,kBAAkB,OAAA;AAIP,QAAA,6BAA6B,GACxC,yEAAyE,CAAC;AAE5E,SAAgB,uBAAuB,CACrC,eAAyC;IAEzC,OAAO,eAAe,KAAK,aAAa,CAAC;AAC3C,CAAC;AAKD,SAAgB,yBAAyB,CACvC,eAAyC;IAEzC,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { OnModuleDestroy } from '@nestjs/common';
|
|
2
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
|
-
import { type AppEnv } from '../../config/app-env.token';
|
|
4
|
-
import type { VkMcpStdioSessionPort } from '../../ports/vk-mcp-stdio-session.port';
|
|
5
|
-
export declare class VkMcpStdioSessionService implements OnModuleDestroy, VkMcpStdioSessionPort {
|
|
6
|
-
private readonly appEnv;
|
|
7
|
-
private readonly logger;
|
|
8
|
-
private client;
|
|
9
|
-
private transport;
|
|
10
|
-
private activeConfigKey;
|
|
11
|
-
private stderrTail?;
|
|
12
|
-
private chain;
|
|
13
|
-
constructor(appEnv: AppEnv);
|
|
14
|
-
private buildConfigKey;
|
|
15
|
-
shutdown(): Promise<void>;
|
|
16
|
-
onModuleDestroy(): Promise<void>;
|
|
17
|
-
private teardown;
|
|
18
|
-
private ensureConnected;
|
|
19
|
-
runWithClient<T>(fn: (client: Client) => Promise<T>): Promise<T>;
|
|
20
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var VkMcpStdioSessionService_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.VkMcpStdioSessionService = void 0;
|
|
17
|
-
const common_1 = require("@nestjs/common");
|
|
18
|
-
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
19
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
20
|
-
const app_env_token_1 = require("../../config/app-env.token");
|
|
21
|
-
const mcp_transport_config_1 = require("./mcp-transport-config");
|
|
22
|
-
let VkMcpStdioSessionService = VkMcpStdioSessionService_1 = class VkMcpStdioSessionService {
|
|
23
|
-
appEnv;
|
|
24
|
-
logger = new common_1.Logger(VkMcpStdioSessionService_1.name);
|
|
25
|
-
client = null;
|
|
26
|
-
transport = null;
|
|
27
|
-
activeConfigKey = null;
|
|
28
|
-
stderrTail;
|
|
29
|
-
chain = Promise.resolve();
|
|
30
|
-
constructor(appEnv) {
|
|
31
|
-
this.appEnv = appEnv;
|
|
32
|
-
}
|
|
33
|
-
buildConfigKey() {
|
|
34
|
-
return this.appEnv.destinationType;
|
|
35
|
-
}
|
|
36
|
-
async shutdown() {
|
|
37
|
-
await this.teardown();
|
|
38
|
-
}
|
|
39
|
-
async onModuleDestroy() {
|
|
40
|
-
await this.teardown();
|
|
41
|
-
}
|
|
42
|
-
async teardown() {
|
|
43
|
-
if (this.stderrTail && this.transport?.stderr) {
|
|
44
|
-
const s = this.transport.stderr;
|
|
45
|
-
try {
|
|
46
|
-
s.removeListener('data', this.stderrTail);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
}
|
|
50
|
-
this.stderrTail = undefined;
|
|
51
|
-
}
|
|
52
|
-
if (this.client) {
|
|
53
|
-
try {
|
|
54
|
-
await this.client.close();
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
this.logger.debug(`MCP client close: ${e instanceof Error ? e.message : String(e)}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
this.client = null;
|
|
61
|
-
this.transport = null;
|
|
62
|
-
this.activeConfigKey = null;
|
|
63
|
-
}
|
|
64
|
-
async ensureConnected() {
|
|
65
|
-
if (!(0, mcp_transport_config_1.isVibeKanbanDestination)(this.appEnv.destinationType)) {
|
|
66
|
-
throw new Error('Vibe Kanban MCP (stdio): VIBE_SQUIRE_DESTINATION_TYPE is not vibe_kanban');
|
|
67
|
-
}
|
|
68
|
-
const key = this.buildConfigKey();
|
|
69
|
-
if (this.client && this.transport && key === this.activeConfigKey) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
await this.teardown();
|
|
73
|
-
const parsed = mcp_transport_config_1.VK_MCP_STDIO_SPAWN;
|
|
74
|
-
const transport = new stdio_js_1.StdioClientTransport({
|
|
75
|
-
command: parsed.command,
|
|
76
|
-
args: parsed.args,
|
|
77
|
-
stderr: 'pipe',
|
|
78
|
-
});
|
|
79
|
-
const stderr = transport.stderr;
|
|
80
|
-
if (stderr) {
|
|
81
|
-
this.stderrTail = (chunk) => {
|
|
82
|
-
const line = (typeof chunk === 'string' ? chunk : chunk.toString('utf8')).trimEnd();
|
|
83
|
-
if (!line) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (stderrLineLooksLikeHardFailure(line)) {
|
|
87
|
-
this.logger.warn(`[vk-mcp stderr] ${line}`);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
this.logger.debug(`[vk-mcp stderr] ${line}`);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
stderr.on('data', this.stderrTail);
|
|
94
|
-
}
|
|
95
|
-
const client = new index_js_1.Client({ name: 'vibe-squire', version: '0.0.1' });
|
|
96
|
-
await client.connect(transport);
|
|
97
|
-
this.transport = transport;
|
|
98
|
-
this.client = client;
|
|
99
|
-
this.activeConfigKey = key;
|
|
100
|
-
this.logger.log(`Vibe Kanban MCP stdio started: ${parsed.command} ${parsed.args.join(' ')}`);
|
|
101
|
-
}
|
|
102
|
-
async runWithClient(fn) {
|
|
103
|
-
const op = this.chain.then(async () => {
|
|
104
|
-
await this.ensureConnected();
|
|
105
|
-
return fn(this.client);
|
|
106
|
-
});
|
|
107
|
-
this.chain = op.then(() => undefined, () => undefined);
|
|
108
|
-
return op;
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
exports.VkMcpStdioSessionService = VkMcpStdioSessionService;
|
|
112
|
-
exports.VkMcpStdioSessionService = VkMcpStdioSessionService = VkMcpStdioSessionService_1 = __decorate([
|
|
113
|
-
(0, common_1.Injectable)(),
|
|
114
|
-
__param(0, (0, common_1.Inject)(app_env_token_1.APP_ENV)),
|
|
115
|
-
__metadata("design:paramtypes", [Object])
|
|
116
|
-
], VkMcpStdioSessionService);
|
|
117
|
-
function stderrLineLooksLikeHardFailure(line) {
|
|
118
|
-
const t = line.trimStart();
|
|
119
|
-
return (/\b(ERROR|FATAL)\b/.test(line) ||
|
|
120
|
-
/\bpanic(?:ked)?\b/i.test(line) ||
|
|
121
|
-
/thread '[^']+' panicked/i.test(line) ||
|
|
122
|
-
/^error[\s:]/i.test(t));
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=vk-mcp-stdio-session.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vk-mcp-stdio-session.service.js","sourceRoot":"","sources":["../../../src/vibe-kanban/transport/vk-mcp-stdio-session.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const VK_MCP_STDIO_COMMAND_JSON: "[\"npx\",\"-y\",\"vibe-kanban@latest\",\"--mcp\"]";
|
|
2
|
-
export declare function parseVkStdioCommand(json: string): {
|
|
3
|
-
command: string;
|
|
4
|
-
args: string[];
|
|
5
|
-
} | null;
|
|
6
|
-
export declare const VK_MCP_STDIO_SPAWN: {
|
|
7
|
-
command: string;
|
|
8
|
-
args: string[];
|
|
9
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VK_MCP_STDIO_SPAWN = exports.VK_MCP_STDIO_COMMAND_JSON = void 0;
|
|
4
|
-
exports.parseVkStdioCommand = parseVkStdioCommand;
|
|
5
|
-
const zod_1 = require("zod");
|
|
6
|
-
const parsedJsonSchema = zod_1.z.array(zod_1.z.unknown()).min(1);
|
|
7
|
-
exports.VK_MCP_STDIO_COMMAND_JSON = '["npx","-y","vibe-kanban@latest","--mcp"]';
|
|
8
|
-
function parseVkStdioCommand(json) {
|
|
9
|
-
const t = json.trim();
|
|
10
|
-
if (!t) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
let parsed;
|
|
14
|
-
try {
|
|
15
|
-
parsed = JSON.parse(t);
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
const arr = parsedJsonSchema.safeParse(parsed);
|
|
21
|
-
if (!arr.success) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
const parts = arr.data
|
|
25
|
-
.map((x) => String(x).trim())
|
|
26
|
-
.filter((s) => s.length > 0);
|
|
27
|
-
if (parts.length < 1) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
return { command: parts[0], args: parts.slice(1) };
|
|
31
|
-
}
|
|
32
|
-
const _vkSpawn = parseVkStdioCommand(exports.VK_MCP_STDIO_COMMAND_JSON);
|
|
33
|
-
if (!_vkSpawn) {
|
|
34
|
-
throw new Error('VK_MCP_STDIO_COMMAND_JSON must parse to [command, ...args]');
|
|
35
|
-
}
|
|
36
|
-
exports.VK_MCP_STDIO_SPAWN = _vkSpawn;
|
|
37
|
-
//# sourceMappingURL=vk-stdio-command.schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vk-stdio-command.schema.js","sourceRoot":"","sources":["../../../src/vibe-kanban/transport/vk-stdio-command.schema.ts"],"names":[],"mappings":";;;AAcA,kDAwBC;AAtCD,6BAAwB;AAExB,MAAM,gBAAgB,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAMxC,QAAA,yBAAyB,GACpC,2CAAoD,CAAC;AAKvD,SAAgB,mBAAmB,CACjC,IAAY;IAEZ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,iCAAyB,CAAC,CAAC;AAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAChF,CAAC;AAGY,QAAA,kBAAkB,GAAG,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vibe-kanban-mcp-configured.guard.js","sourceRoot":"","sources":["../../src/vibe-kanban/vibe-kanban-mcp-configured.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,2DAA+D;AAC/D,2EAG0C;AAMnC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACO;IAA9C,YAA8C,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEhE,WAAW;QACT,IAAI,CAAC,IAAA,gDAAyB,EAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,4BAAmB,CAAC,oDAA6B,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AATY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,uBAAO,CAAC,CAAA;;GADjB,4BAA4B,CASxC"}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var VibeKanbanMcpService_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.VibeKanbanMcpService = void 0;
|
|
17
|
-
const common_1 = require("@nestjs/common");
|
|
18
|
-
const app_env_token_1 = require("../config/app-env.token");
|
|
19
|
-
const settings_service_1 = require("../settings/settings.service");
|
|
20
|
-
const mcp_transport_config_1 = require("./transport/mcp-transport-config");
|
|
21
|
-
const injection_tokens_1 = require("../ports/injection-tokens");
|
|
22
|
-
const mcp_tool_result_text_1 = require("./mcp-result/mcp-tool-result-text");
|
|
23
|
-
const vk_contract_1 = require("./vk-contract");
|
|
24
|
-
const vk_board_cap_1 = require("./vk-board-cap");
|
|
25
|
-
const vk_mcp_list_get_issue_response_schema_1 = require("./mcp-result/vk-mcp-list-get-issue-response.schema");
|
|
26
|
-
const vk_mcp_tool_result_1 = require("./mcp-result/vk-mcp-tool-result");
|
|
27
|
-
let VibeKanbanMcpService = class VibeKanbanMcpService {
|
|
28
|
-
static { VibeKanbanMcpService_1 = this; }
|
|
29
|
-
settings;
|
|
30
|
-
appEnv;
|
|
31
|
-
stdioSession;
|
|
32
|
-
logger = new common_1.Logger(VibeKanbanMcpService_1.name);
|
|
33
|
-
constructor(settings, appEnv, stdioSession) {
|
|
34
|
-
this.settings = settings;
|
|
35
|
-
this.appEnv = appEnv;
|
|
36
|
-
this.stdioSession = stdioSession;
|
|
37
|
-
}
|
|
38
|
-
assertToolCallOk(toolName, result) {
|
|
39
|
-
const r = result;
|
|
40
|
-
if (r.isError !== true) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const summary = (0, mcp_tool_result_text_1.summarizeMcpToolErrorText)(result);
|
|
44
|
-
this.logger.debug(`Vibe Kanban MCP tool "${toolName}" returned isError: ${summary}`);
|
|
45
|
-
throw new Error(`${toolName}: ${summary}`);
|
|
46
|
-
}
|
|
47
|
-
async callToolOk(client, name, args) {
|
|
48
|
-
const result = await client.callTool({ name, arguments: args });
|
|
49
|
-
this.assertToolCallOk(name, result);
|
|
50
|
-
return result;
|
|
51
|
-
}
|
|
52
|
-
async withClient(fn) {
|
|
53
|
-
if (!(0, mcp_transport_config_1.isVibeKanbanDestination)(this.appEnv.destinationType)) {
|
|
54
|
-
throw new Error('Vibe Kanban MCP: VIBE_SQUIRE_DESTINATION_TYPE must be vibe_kanban for this adapter');
|
|
55
|
-
}
|
|
56
|
-
return this.stdioSession.runWithClient(fn);
|
|
57
|
-
}
|
|
58
|
-
async probe() {
|
|
59
|
-
await this.listOrganizations();
|
|
60
|
-
}
|
|
61
|
-
async listOrganizations() {
|
|
62
|
-
return this.withClient(async (client) => {
|
|
63
|
-
const result = await this.callToolOk(client, 'list_organizations', {});
|
|
64
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
65
|
-
return (0, vk_mcp_tool_result_1.extractArrayFromMcpPayload)(parsed)
|
|
66
|
-
.map(vk_mcp_tool_result_1.normalizeOrg)
|
|
67
|
-
.filter((x) => x != null);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
async listProjects(organizationId) {
|
|
71
|
-
return this.withClient(async (client) => {
|
|
72
|
-
const result = await this.callToolOk(client, 'list_projects', {
|
|
73
|
-
organization_id: organizationId,
|
|
74
|
-
});
|
|
75
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
76
|
-
return (0, vk_mcp_tool_result_1.extractArrayFromMcpPayload)(parsed)
|
|
77
|
-
.map(vk_mcp_tool_result_1.normalizeProject)
|
|
78
|
-
.filter((x) => x != null);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
async listRepos() {
|
|
82
|
-
return this.withClient(async (client) => {
|
|
83
|
-
const result = await this.callToolOk(client, 'list_repos', {});
|
|
84
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
85
|
-
return (0, vk_mcp_tool_result_1.extractArrayFromMcpPayload)(parsed)
|
|
86
|
-
.map(vk_mcp_tool_result_1.normalizeRepo)
|
|
87
|
-
.filter((x) => x != null);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
async listIssues(projectId, opts) {
|
|
91
|
-
return this.withClient(async (client) => {
|
|
92
|
-
const args = { project_id: projectId };
|
|
93
|
-
if (opts?.search) {
|
|
94
|
-
args.search = opts.search;
|
|
95
|
-
}
|
|
96
|
-
if (opts?.limit != null) {
|
|
97
|
-
args.limit = opts.limit;
|
|
98
|
-
}
|
|
99
|
-
if (opts?.offset != null) {
|
|
100
|
-
args.offset = opts.offset;
|
|
101
|
-
}
|
|
102
|
-
const result = await this.callToolOk(client, 'list_issues', args);
|
|
103
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
104
|
-
const structured = (0, vk_mcp_list_get_issue_response_schema_1.safeParseVkMcpListIssuesResponse)(parsed);
|
|
105
|
-
if (structured) {
|
|
106
|
-
return structured.issues
|
|
107
|
-
.map((row) => (0, vk_mcp_tool_result_1.normalizeIssue)(row))
|
|
108
|
-
.filter((x) => x != null);
|
|
109
|
-
}
|
|
110
|
-
return (0, vk_mcp_tool_result_1.extractArrayFromMcpPayload)(parsed)
|
|
111
|
-
.map(vk_mcp_tool_result_1.normalizeIssue)
|
|
112
|
-
.filter((x) => x != null);
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
static VK_BOARD_PAGE_SIZE = 100;
|
|
116
|
-
static VK_BOARD_MAX_PAGES = 20;
|
|
117
|
-
async countActiveVibeSquireIssues(projectId) {
|
|
118
|
-
const kanbanDone = this.settings.getEffective('kanban_done_status').trim() || 'Done';
|
|
119
|
-
let total = 0;
|
|
120
|
-
for (let page = 0; page < VibeKanbanMcpService_1.VK_BOARD_MAX_PAGES; page++) {
|
|
121
|
-
const offset = page * VibeKanbanMcpService_1.VK_BOARD_PAGE_SIZE;
|
|
122
|
-
const rows = await this.listIssues(projectId, {
|
|
123
|
-
search: vk_contract_1.VIBE_SQUIRE_TITLE_MARKER,
|
|
124
|
-
limit: VibeKanbanMcpService_1.VK_BOARD_PAGE_SIZE,
|
|
125
|
-
offset,
|
|
126
|
-
});
|
|
127
|
-
for (const row of rows) {
|
|
128
|
-
if ((0, vk_board_cap_1.vkListRowCountsTowardBoardCap)(row, kanbanDone)) {
|
|
129
|
-
total += 1;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (rows.length < VibeKanbanMcpService_1.VK_BOARD_PAGE_SIZE) {
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return total;
|
|
137
|
-
}
|
|
138
|
-
async getIssue(issueId) {
|
|
139
|
-
return this.withClient(async (client) => {
|
|
140
|
-
const result = await client.callTool({
|
|
141
|
-
name: 'get_issue',
|
|
142
|
-
arguments: { issue_id: issueId },
|
|
143
|
-
});
|
|
144
|
-
if ((0, mcp_tool_result_text_1.isGetIssueNotFoundMcpResult)(result)) {
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
this.assertToolCallOk('get_issue', result);
|
|
148
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
149
|
-
const wrapped = (0, vk_mcp_list_get_issue_response_schema_1.safeParseVkMcpGetIssueResponse)(parsed);
|
|
150
|
-
if (wrapped) {
|
|
151
|
-
return (0, vk_mcp_tool_result_1.normalizeIssue)(wrapped.issue);
|
|
152
|
-
}
|
|
153
|
-
return (0, vk_mcp_tool_result_1.normalizeIssue)(parsed);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
async createIssue(params) {
|
|
157
|
-
return this.withClient(async (client) => {
|
|
158
|
-
const result = await this.callToolOk(client, 'create_issue', {
|
|
159
|
-
title: params.title,
|
|
160
|
-
project_id: params.projectId,
|
|
161
|
-
description: params.description,
|
|
162
|
-
});
|
|
163
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
164
|
-
const id = (0, vk_mcp_tool_result_1.pickCreatedIssueId)(parsed);
|
|
165
|
-
if (!id) {
|
|
166
|
-
throw new Error('create_issue: could not parse issue id from response');
|
|
167
|
-
}
|
|
168
|
-
return id;
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
async updateIssue(issueId, fields) {
|
|
172
|
-
await this.withClient(async (client) => {
|
|
173
|
-
const args = { issue_id: issueId };
|
|
174
|
-
if (fields.status != null) {
|
|
175
|
-
args.status = fields.status;
|
|
176
|
-
}
|
|
177
|
-
await this.callToolOk(client, 'update_issue', args);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
async startWorkspace(params) {
|
|
181
|
-
return this.withClient(async (client) => {
|
|
182
|
-
const args = {
|
|
183
|
-
name: params.name,
|
|
184
|
-
executor: params.executor,
|
|
185
|
-
repositories: params.repositories.map((r) => ({
|
|
186
|
-
repo_id: r.repoId,
|
|
187
|
-
branch: r.branch,
|
|
188
|
-
})),
|
|
189
|
-
};
|
|
190
|
-
if (params.issueId) {
|
|
191
|
-
args.issue_id = params.issueId;
|
|
192
|
-
}
|
|
193
|
-
if (params.prompt) {
|
|
194
|
-
args.prompt = params.prompt;
|
|
195
|
-
}
|
|
196
|
-
if (params.variant) {
|
|
197
|
-
args.variant = params.variant;
|
|
198
|
-
}
|
|
199
|
-
const result = await this.callToolOk(client, 'start_workspace', args);
|
|
200
|
-
const parsed = (0, vk_mcp_tool_result_1.parseToolJson)(result);
|
|
201
|
-
const id = (0, vk_mcp_tool_result_1.pickWorkspaceId)(parsed);
|
|
202
|
-
if (!id) {
|
|
203
|
-
throw new Error('start_workspace: could not parse workspace id from response');
|
|
204
|
-
}
|
|
205
|
-
return id;
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
async deleteWorkspace(workspaceId, opts) {
|
|
209
|
-
await this.withClient(async (client) => {
|
|
210
|
-
const args = { workspace_id: workspaceId };
|
|
211
|
-
if (opts?.deleteBranches) {
|
|
212
|
-
args.delete_branches = true;
|
|
213
|
-
}
|
|
214
|
-
await this.callToolOk(client, 'delete_workspace', args);
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
exports.VibeKanbanMcpService = VibeKanbanMcpService;
|
|
219
|
-
exports.VibeKanbanMcpService = VibeKanbanMcpService = VibeKanbanMcpService_1 = __decorate([
|
|
220
|
-
(0, common_1.Injectable)(),
|
|
221
|
-
__param(1, (0, common_1.Inject)(app_env_token_1.APP_ENV)),
|
|
222
|
-
__param(2, (0, common_1.Inject)(injection_tokens_1.VK_MCP_STDIO_SESSION_PORT)),
|
|
223
|
-
__metadata("design:paramtypes", [settings_service_1.SettingsService, Object, Object])
|
|
224
|
-
], VibeKanbanMcpService);
|
|
225
|
-
//# sourceMappingURL=vibe-kanban-mcp.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vibe-kanban-mcp.service.js","sourceRoot":"","sources":["../../src/vibe-kanban/vibe-kanban-mcp.service.ts"],"names":[],"mappings":"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"}
|