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
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
const m = {
|
|
40
40
|
ok: 'Reachable.',
|
|
41
41
|
degraded: 'Degraded — some calls may fail.',
|
|
42
|
-
error: 'Error — check
|
|
42
|
+
error: 'Error — check Vibe Kanban is running and signed in on this machine.',
|
|
43
43
|
unknown: 'Not probed yet.',
|
|
44
44
|
};
|
|
45
45
|
return m[d.state] || String(d.state);
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
'Mappings: ' + String(setup.mappingCount ?? 0),
|
|
111
111
|
]
|
|
112
112
|
: [
|
|
113
|
-
'Finish
|
|
113
|
+
'Finish board settings and routing (see checklist on dashboard).',
|
|
114
114
|
setupReasonHuman(setup.reason),
|
|
115
115
|
];
|
|
116
116
|
parts.push(card('Setup', setupDot, setupLines));
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
if (dest.state === 'ok') destDot = 'status-ok';
|
|
121
121
|
else if (dest.state === 'degraded') destDot = 'status-warn';
|
|
122
122
|
else if (dest.state === 'error') destDot = 'status-err';
|
|
123
|
-
const destLines = ['Vibe Kanban (
|
|
123
|
+
const destLines = ['Vibe Kanban (local API).', destHuman(dest)];
|
|
124
124
|
if (dest.message) destLines.push(dest.message);
|
|
125
125
|
if (dest.lastOkAt) destLines.push('Last OK: ' + fmtIso(dest.lastOkAt));
|
|
126
126
|
parts.push(card('Destination', destDot, destLines));
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { SupportedDestinationType } from '../config/integration-types';
|
|
2
2
|
import type { SettingsService } from '../settings/settings.service';
|
|
3
3
|
import type { SetupEvaluationService } from '../setup/setup-evaluation.service';
|
|
4
|
-
import type {
|
|
4
|
+
import type { VibeKanbanBoardService } from '../vibe-kanban/vibe-kanban-board.service';
|
|
5
5
|
import type { UiNavEntry } from '../ports/ui-nav.types';
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const VK_PAGE_ORG_ERROR_WRONG_DESTINATION = "Vibe Kanban is not available (this UI requires VIBE_SQUIRE_DESTINATION_TYPE=vibe_kanban).";
|
|
7
7
|
export declare function buildVibeKanbanPageLocals(deps: {
|
|
8
8
|
settings: SettingsService;
|
|
9
9
|
destinationType: SupportedDestinationType;
|
|
10
10
|
setupEvaluation: Pick<SetupEvaluationService, 'evaluate'>;
|
|
11
|
-
vk: Pick<
|
|
11
|
+
vk: Pick<VibeKanbanBoardService, 'listOrganizations' | 'listProjects'>;
|
|
12
12
|
uiNavEntries: UiNavEntry[];
|
|
13
13
|
saved?: string;
|
|
14
14
|
err?: string;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.VK_PAGE_ORG_ERROR_WRONG_DESTINATION = void 0;
|
|
4
4
|
exports.buildVibeKanbanPageLocals = buildVibeKanbanPageLocals;
|
|
5
|
-
const
|
|
5
|
+
const vibe_kanban_destination_1 = require("../vibe-kanban/vibe-kanban-destination");
|
|
6
6
|
const vk_executors_1 = require("../config/vk-executors");
|
|
7
7
|
const setting_labels_1 = require("./setting-labels");
|
|
8
8
|
const ui_presenter_1 = require("./ui-presenter");
|
|
9
|
-
exports.
|
|
9
|
+
exports.VK_PAGE_ORG_ERROR_WRONG_DESTINATION = 'Vibe Kanban is not available (this UI requires VIBE_SQUIRE_DESTINATION_TYPE=vibe_kanban).';
|
|
10
10
|
async function buildVibeKanbanPageLocals(deps) {
|
|
11
11
|
const { settings, destinationType, setupEvaluation, vk, uiNavEntries, saved, err, } = deps;
|
|
12
12
|
const values = settings.listEffectiveNonSecret();
|
|
13
13
|
await setupEvaluation.evaluate();
|
|
14
|
-
const
|
|
15
|
-
const orgError = !
|
|
14
|
+
const vkBoardPicker = (0, vibe_kanban_destination_1.isVibeKanbanBoardDestination)(destinationType);
|
|
15
|
+
const orgError = !vkBoardPicker ? exports.VK_PAGE_ORG_ERROR_WRONG_DESTINATION : null;
|
|
16
16
|
const boardOrg = settings.getEffective('default_organization_id');
|
|
17
17
|
const boardProj = settings.getEffective('default_project_id');
|
|
18
18
|
let vkBoardOrganizations = [];
|
|
19
19
|
let vkBoardProjects = [];
|
|
20
20
|
let vkBoardListError = null;
|
|
21
|
-
if (
|
|
21
|
+
if (vkBoardPicker) {
|
|
22
22
|
try {
|
|
23
23
|
vkBoardOrganizations = await vk.listOrganizations();
|
|
24
24
|
}
|
|
@@ -37,7 +37,7 @@ async function buildVibeKanbanPageLocals(deps) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
const hasVkProjectPick =
|
|
40
|
+
const hasVkProjectPick = vkBoardPicker &&
|
|
41
41
|
boardOrg.trim().length > 0 &&
|
|
42
42
|
vkBoardOrganizations.some((o) => o.id === boardOrg.trim());
|
|
43
43
|
const vkBoardProjectsEmpty = hasVkProjectPick && vkBoardProjects.length === 0;
|
|
@@ -48,7 +48,7 @@ async function buildVibeKanbanPageLocals(deps) {
|
|
|
48
48
|
...(0, ui_presenter_1.uiNavLocals)(uiNavEntries),
|
|
49
49
|
saved: saved === '1',
|
|
50
50
|
error: err ? decodeURIComponent(err) : null,
|
|
51
|
-
|
|
51
|
+
vkBoardPicker,
|
|
52
52
|
boardOrg,
|
|
53
53
|
boardProj,
|
|
54
54
|
kanbanDoneStatus: values.kanban_done_status ?? '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-vibe-kanban-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-vibe-kanban-presenter.ts"],"names":[],"mappings":";;;AAoBA,8DAgFC;AAhGD,
|
|
1
|
+
{"version":3,"file":"ui-vibe-kanban-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-vibe-kanban-presenter.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/ui.controller.js
CHANGED
|
@@ -104,7 +104,7 @@ let UiController = class UiController {
|
|
|
104
104
|
...(0, ui_presenter_1.uiNavLocals)(this.uiNav.getEntries()),
|
|
105
105
|
rows,
|
|
106
106
|
error: err ? decodeURIComponent(err) : null,
|
|
107
|
-
|
|
107
|
+
kanbanBoardPicker: ev.vibeKanbanBoardActive,
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
110
|
async postMapping(body, res) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.controller.js","sourceRoot":"","sources":["../../src/ui/ui.controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui.controller.js","sourceRoot":"","sources":["../../src/ui/ui.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
<div class="card actions-row">
|
|
40
40
|
<button type="button" id="btn-sync" class="btn primary" {{#unless manualSync.canRun}}disabled{{/unless}} title="Run one full sync cycle now (same as the scheduler, but immediate)">Sync now</button>
|
|
41
|
-
<button type="button" id="btn-reinit" class="btn" style="display: none" title="Refresh settings cache, probe
|
|
41
|
+
<button type="button" id="btn-reinit" class="btn" style="display: none" title="Refresh settings cache, probe Vibe Kanban if configured, reset scout backoff">Reinit</button>
|
|
42
42
|
</div>
|
|
43
43
|
|
|
44
44
|
<div id="status-overview" class="status-grid" aria-live="polite"></div>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<input name="githubRepo" class="input" placeholder="owner/repo" required autocomplete="off" />
|
|
19
19
|
</label>
|
|
20
20
|
</div>
|
|
21
|
-
{{#if
|
|
21
|
+
{{#if kanbanBoardPicker}}
|
|
22
22
|
<input type="hidden" name="vibeKanbanRepoId" id="h-vk-repo" value="" />
|
|
23
23
|
<div class="form-row">
|
|
24
24
|
<label class="field inline grow">
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
<span class="field-label">{{vkLabels.default_organization_id}}</span>
|
|
17
17
|
<span class="field-key muted">default_organization_id · default_project_id</span>
|
|
18
18
|
<p class="muted" style="margin: 0.25rem 0 0.75rem; font-size: 0.9rem">
|
|
19
|
-
Required for sync. {{#if
|
|
19
|
+
Required for sync. {{#if vkBoardPicker}}Choose organization, then project.{{else}}Paste UUIDs from Vibe Kanban (dropdowns require VIBE_SQUIRE_DESTINATION_TYPE=vibe_kanban).{{/if}}
|
|
20
20
|
Click <strong>Save</strong> when done.
|
|
21
21
|
</p>
|
|
22
|
-
{{#if
|
|
22
|
+
{{#if vkBoardPicker}}
|
|
23
23
|
<input type="hidden" name="default_organization_id" id="vk-in-org" value="{{boardOrg}}" />
|
|
24
24
|
<input type="hidden" name="default_project_id" id="vk-in-proj" value="{{boardProj}}" />
|
|
25
25
|
{{#if vkBoardListError}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function readVkMainPortFromPortFile(): Promise<number>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readVkMainPortFromPortFile = readVkMainPortFromPortFile;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const vk_port_file_schema_1 = require("./vk-port-file.schema");
|
|
8
|
+
const APP_NAME = 'vibe-kanban';
|
|
9
|
+
async function readVkMainPortFromPortFile() {
|
|
10
|
+
const path = (0, node_path_1.join)((0, node_os_1.tmpdir)(), APP_NAME, `${APP_NAME}.port`);
|
|
11
|
+
const raw = await (0, promises_1.readFile)(path, 'utf8');
|
|
12
|
+
const trimmed = raw.trim();
|
|
13
|
+
let parsedJson;
|
|
14
|
+
try {
|
|
15
|
+
parsedJson = JSON.parse(trimmed);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
parsedJson = null;
|
|
19
|
+
}
|
|
20
|
+
if (parsedJson != null && typeof parsedJson === 'object') {
|
|
21
|
+
const jsonTry = vk_port_file_schema_1.vkPortFileJsonSchema.safeParse(parsedJson);
|
|
22
|
+
if (jsonTry.success) {
|
|
23
|
+
return jsonTry.data.main_port;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const legacy = Number.parseInt(trimmed, 10);
|
|
27
|
+
if (!Number.isFinite(legacy) || legacy < 1 || legacy > 65535) {
|
|
28
|
+
throw new Error(`Invalid Vibe Kanban port file at ${path}: expected JSON with main_port or a port number`);
|
|
29
|
+
}
|
|
30
|
+
return legacy;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=read-vk-main-port.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-vk-main-port.js","sourceRoot":"","sources":["../../src/vibe-kanban/read-vk-main-port.ts"],"names":[],"mappings":";;AAWA,gEAuBC;AAlCD,+CAA4C;AAC5C,yCAAiC;AACjC,qCAAiC;AACjC,+DAA6D;AAE7D,MAAM,QAAQ,GAAG,aAAsB,CAAC;AAMjC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,0CAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,iDAAiD,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveVkBackendBaseUrl(env?: NodeJS.ProcessEnv): Promise<string>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveVkBackendBaseUrl = resolveVkBackendBaseUrl;
|
|
4
|
+
const read_vk_main_port_1 = require("./read-vk-main-port");
|
|
5
|
+
const HOST_ENV_SQUIRE = 'VIBE_SQUIRE_VK_HOST';
|
|
6
|
+
const PORT_ENV_SQUIRE = 'VIBE_SQUIRE_VK_PORT';
|
|
7
|
+
const URL_ENV_SQUIRE = 'VIBE_SQUIRE_VK_BACKEND_URL';
|
|
8
|
+
const URL_ENV_VK = 'VIBE_BACKEND_URL';
|
|
9
|
+
const HOST_ENV_LEGACY = 'MCP_HOST';
|
|
10
|
+
const HOST_ENV_GENERIC = 'HOST';
|
|
11
|
+
const PORT_ENV_LEGACY = 'MCP_PORT';
|
|
12
|
+
const PORT_ENV_BACKEND = 'BACKEND_PORT';
|
|
13
|
+
const PORT_ENV_GENERIC = 'PORT';
|
|
14
|
+
function trimUrl(url) {
|
|
15
|
+
return url.trim().replace(/\/+$/, '');
|
|
16
|
+
}
|
|
17
|
+
function parsePort(portStr) {
|
|
18
|
+
const n = Number.parseInt(portStr.trim(), 10);
|
|
19
|
+
if (!Number.isFinite(n) || n < 1 || n > 65535) {
|
|
20
|
+
throw new Error(`Invalid Vibe Kanban backend port: ${portStr}`);
|
|
21
|
+
}
|
|
22
|
+
return n;
|
|
23
|
+
}
|
|
24
|
+
async function resolveVkBackendBaseUrl(env = process.env) {
|
|
25
|
+
const fromSquire = env[URL_ENV_SQUIRE]?.trim();
|
|
26
|
+
if (fromSquire) {
|
|
27
|
+
return trimUrl(fromSquire);
|
|
28
|
+
}
|
|
29
|
+
const fromVk = env[URL_ENV_VK]?.trim();
|
|
30
|
+
if (fromVk) {
|
|
31
|
+
return trimUrl(fromVk);
|
|
32
|
+
}
|
|
33
|
+
const host = env[HOST_ENV_SQUIRE]?.trim() ||
|
|
34
|
+
env[HOST_ENV_LEGACY]?.trim() ||
|
|
35
|
+
env[HOST_ENV_GENERIC]?.trim() ||
|
|
36
|
+
'127.0.0.1';
|
|
37
|
+
const portStr = env[PORT_ENV_SQUIRE]?.trim() ||
|
|
38
|
+
env[PORT_ENV_LEGACY]?.trim() ||
|
|
39
|
+
env[PORT_ENV_BACKEND]?.trim() ||
|
|
40
|
+
env[PORT_ENV_GENERIC]?.trim();
|
|
41
|
+
const port = portStr
|
|
42
|
+
? parsePort(portStr)
|
|
43
|
+
: await (0, read_vk_main_port_1.readVkMainPortFromPortFile)();
|
|
44
|
+
return `http://${host}:${port}`;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=resolve-vk-backend-base-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-vk-backend-base-url.js","sourceRoot":"","sources":["../../src/vibe-kanban/resolve-vk-backend-base-url.ts"],"names":[],"mappings":";;AAoCA,0DA6BC;AAjED,2DAAiE;AAEjE,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAGpD,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAUM,KAAK,UAAU,uBAAuB,CAC3C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,GACR,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE;QAC5B,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE;QAC5B,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE;QAC7B,WAAW,CAAC;IAEd,MAAM,OAAO,GACX,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE;QAC5B,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE;QAC5B,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE;QAC7B,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,OAAO;QAClB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,MAAM,IAAA,8CAA0B,GAAE,CAAC;IAEvC,OAAO,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type VkRemoteIssueRow } from './vk-remote-api.schema';
|
|
2
|
+
export declare function normalizeExecutorForVkApi(executor: string): string;
|
|
3
|
+
export declare class VibeKanbanApiClient {
|
|
4
|
+
private request;
|
|
5
|
+
listOrganizations(): Promise<Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
slug: string;
|
|
9
|
+
is_personal?: boolean;
|
|
10
|
+
}>>;
|
|
11
|
+
listProjects(organizationId: string): Promise<Array<{
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
organization_id: string;
|
|
15
|
+
created_at?: string;
|
|
16
|
+
updated_at?: string;
|
|
17
|
+
}>>;
|
|
18
|
+
listRepos(): Promise<Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
}>>;
|
|
22
|
+
private fetchProjectStatuses;
|
|
23
|
+
listIssuesForProject(projectId: string, opts?: {
|
|
24
|
+
search?: string;
|
|
25
|
+
limit?: number;
|
|
26
|
+
offset?: number;
|
|
27
|
+
}): Promise<Array<{
|
|
28
|
+
id: string;
|
|
29
|
+
title?: string;
|
|
30
|
+
status?: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
}>>;
|
|
33
|
+
getIssue(issueId: string): Promise<VkRemoteIssueRow | null>;
|
|
34
|
+
getIssueAsBoardRow(issueId: string): Promise<{
|
|
35
|
+
id: string;
|
|
36
|
+
title?: string;
|
|
37
|
+
status?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
} | null>;
|
|
40
|
+
createIssue(params: {
|
|
41
|
+
projectId: string;
|
|
42
|
+
title: string;
|
|
43
|
+
description: string;
|
|
44
|
+
}): Promise<string>;
|
|
45
|
+
updateIssueStatus(issueId: string, statusName: string): Promise<void>;
|
|
46
|
+
startWorkspace(params: {
|
|
47
|
+
name: string;
|
|
48
|
+
executor: string;
|
|
49
|
+
repositories: Array<{
|
|
50
|
+
repoId: string;
|
|
51
|
+
branch: string;
|
|
52
|
+
}>;
|
|
53
|
+
issueId?: string;
|
|
54
|
+
prompt?: string;
|
|
55
|
+
variant?: string;
|
|
56
|
+
}): Promise<string>;
|
|
57
|
+
private linkWorkspaceToIssue;
|
|
58
|
+
deleteWorkspace(workspaceId: string, opts?: {
|
|
59
|
+
deleteBranches?: boolean;
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
probe(): Promise<void>;
|
|
62
|
+
}
|