vibes-diy 2.4.14 → 2.4.15
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/cli/cmd-evento.js +2 -0
- package/cli/cmd-evento.js.map +1 -1
- package/cli/cmds/chats-cmd.d.ts +58 -0
- package/cli/cmds/chats-cmd.js +130 -0
- package/cli/cmds/chats-cmd.js.map +1 -0
- package/cli/cmds/db/shared.js +3 -3
- package/cli/cmds/db/shared.js.map +1 -1
- package/cli/cmds/mcp-cmd.d.ts +22 -0
- package/cli/cmds/mcp-cmd.js +254 -0
- package/cli/cmds/mcp-cmd.js.map +1 -0
- package/cli/cmds/mcp-cmd.test.d.ts +1 -0
- package/cli/cmds/mcp-cmd.test.js +184 -0
- package/cli/cmds/mcp-cmd.test.js.map +1 -0
- package/cli/main.js +49 -2
- package/cli/main.js.map +1 -1
- package/package.json +8 -6
package/cli/cmd-evento.js
CHANGED
|
@@ -7,6 +7,7 @@ import { pushEvento } from "./cmds/push-cmd.js";
|
|
|
7
7
|
import { putAssetEvento } from "./cmds/put-asset-cmd.js";
|
|
8
8
|
import { generateEvento } from "./cmds/generate-cmd.js";
|
|
9
9
|
import { dbListEvento, dbGetEvento, dbPutEvento, dbDelEvento, dbQueryEvento, dbSubscribeEvento } from "./cmds/db/index.js";
|
|
10
|
+
import { chatsEvento } from "./cmds/chats-cmd.js";
|
|
10
11
|
import { editEvento } from "./cmds/edit-cmd.js";
|
|
11
12
|
import { listEvento } from "./cmds/list-cmd.js";
|
|
12
13
|
import { pullEvento } from "./cmds/pull-cmd.js";
|
|
@@ -37,6 +38,7 @@ export function cmdTsEvento() {
|
|
|
37
38
|
pushEvento,
|
|
38
39
|
putAssetEvento,
|
|
39
40
|
generateEvento,
|
|
41
|
+
chatsEvento,
|
|
40
42
|
editEvento,
|
|
41
43
|
listEvento,
|
|
42
44
|
pullEvento,
|
package/cli/cmd-evento.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,GAIb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc;QACd,cAAc;QACd,UAAU;QACV,UAAU;QACV,UAAU;QACV,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,GAIb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc;QACd,cAAc;QACd,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { EventoHandler } from "@adviser/cement";
|
|
2
|
+
import { CliCtx } from "../cli-ctx.js";
|
|
3
|
+
import { WrapCmdTSMsg } from "../cmd-evento.js";
|
|
4
|
+
export declare const ReqChats: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
5
|
+
type: "vibes-diy.cli.chats";
|
|
6
|
+
appSlug: string;
|
|
7
|
+
ownerHandle: string;
|
|
8
|
+
chatId?: string | undefined;
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
}, {}>;
|
|
11
|
+
export type ReqChats = typeof ReqChats.infer;
|
|
12
|
+
export declare function isReqChats(obj: unknown): obj is ReqChats;
|
|
13
|
+
export declare const ResChatsList: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
14
|
+
type: "vibes-diy.cli.res-chats-list";
|
|
15
|
+
items: {
|
|
16
|
+
chatId: string;
|
|
17
|
+
appSlug: string;
|
|
18
|
+
ownerHandle: string;
|
|
19
|
+
created: string;
|
|
20
|
+
}[];
|
|
21
|
+
}, {}>;
|
|
22
|
+
export type ResChatsList = typeof ResChatsList.infer;
|
|
23
|
+
export declare function isResChatsList(obj: unknown): obj is ResChatsList;
|
|
24
|
+
export declare const ResChatDetail: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
25
|
+
type: "vibes-diy.cli.res-chat-detail";
|
|
26
|
+
chatId: string;
|
|
27
|
+
ownerHandle: string;
|
|
28
|
+
appSlug: string;
|
|
29
|
+
prompts: {
|
|
30
|
+
prompt: string;
|
|
31
|
+
fsId: string;
|
|
32
|
+
created: string;
|
|
33
|
+
}[];
|
|
34
|
+
}, {}>;
|
|
35
|
+
export type ResChatDetail = typeof ResChatDetail.infer;
|
|
36
|
+
export declare function isResChatDetail(obj: unknown): obj is ResChatDetail;
|
|
37
|
+
type ResChats = ResChatsList | ResChatDetail;
|
|
38
|
+
export declare const chatsEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqChats, ResChats>;
|
|
39
|
+
export declare function chatsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
|
|
40
|
+
parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
|
|
41
|
+
appSlug: string;
|
|
42
|
+
chatId: string | undefined;
|
|
43
|
+
handle: string;
|
|
44
|
+
apiUrl: string;
|
|
45
|
+
json: boolean;
|
|
46
|
+
text: boolean;
|
|
47
|
+
}>>;
|
|
48
|
+
} & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
|
|
49
|
+
appSlug: string;
|
|
50
|
+
chatId: string | undefined;
|
|
51
|
+
handle: string;
|
|
52
|
+
apiUrl: string;
|
|
53
|
+
json: boolean;
|
|
54
|
+
text: boolean;
|
|
55
|
+
}, never> & {
|
|
56
|
+
run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
|
|
57
|
+
} & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { command, option, optional, positional, string } from "cmd-ts";
|
|
2
|
+
import { Result, Option } from "@adviser/cement";
|
|
3
|
+
import { type } from "arktype";
|
|
4
|
+
import { resListApplicationChatsItem } from "@vibes.diy/api-types";
|
|
5
|
+
import { cmdTsDefaultArgs } from "../cli-ctx.js";
|
|
6
|
+
import { sendMsg } from "../cmd-evento.js";
|
|
7
|
+
import { resolveHandle } from "../resolve-handle.js";
|
|
8
|
+
import { formatErr } from "./format-err.js";
|
|
9
|
+
export const ReqChats = type({
|
|
10
|
+
type: "'vibes-diy.cli.chats'",
|
|
11
|
+
appSlug: "string",
|
|
12
|
+
ownerHandle: "string",
|
|
13
|
+
"chatId?": "string",
|
|
14
|
+
apiUrl: "string",
|
|
15
|
+
});
|
|
16
|
+
export function isReqChats(obj) {
|
|
17
|
+
return !(ReqChats(obj) instanceof type.errors);
|
|
18
|
+
}
|
|
19
|
+
export const ResChatsList = type({
|
|
20
|
+
type: "'vibes-diy.cli.res-chats-list'",
|
|
21
|
+
items: resListApplicationChatsItem.array(),
|
|
22
|
+
});
|
|
23
|
+
export function isResChatsList(obj) {
|
|
24
|
+
return !(ResChatsList(obj) instanceof type.errors);
|
|
25
|
+
}
|
|
26
|
+
export const ResChatDetail = type({
|
|
27
|
+
type: "'vibes-diy.cli.res-chat-detail'",
|
|
28
|
+
chatId: "string",
|
|
29
|
+
ownerHandle: "string",
|
|
30
|
+
appSlug: "string",
|
|
31
|
+
prompts: type({
|
|
32
|
+
prompt: "string",
|
|
33
|
+
fsId: "string",
|
|
34
|
+
created: "string",
|
|
35
|
+
}).array(),
|
|
36
|
+
});
|
|
37
|
+
export function isResChatDetail(obj) {
|
|
38
|
+
return !(ResChatDetail(obj) instanceof type.errors);
|
|
39
|
+
}
|
|
40
|
+
export const chatsEvento = {
|
|
41
|
+
hash: "vibes-diy.cli.chats",
|
|
42
|
+
validate: (ctx) => {
|
|
43
|
+
if (isReqChats(ctx.enRequest)) {
|
|
44
|
+
return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
|
|
45
|
+
}
|
|
46
|
+
return Promise.resolve(Result.Ok(Option.None()));
|
|
47
|
+
},
|
|
48
|
+
handle: async (ctx) => {
|
|
49
|
+
const ectx = ctx.ctx.getOrThrow("cliCtx");
|
|
50
|
+
if (ectx.vibesDiyApiFactory === undefined) {
|
|
51
|
+
return Result.Err("Not logged in. Run 'vibes-diy login' first.");
|
|
52
|
+
}
|
|
53
|
+
const args = ctx.validated;
|
|
54
|
+
const api = ectx.vibesDiyApiFactory(args.apiUrl);
|
|
55
|
+
const ownerHandle = await resolveHandle(api, args.ownerHandle === "" ? undefined : args.ownerHandle);
|
|
56
|
+
switch (true) {
|
|
57
|
+
case args.chatId !== undefined: {
|
|
58
|
+
if (ownerHandle === undefined) {
|
|
59
|
+
return Result.Err("Could not resolve handle. Pass --handle or run 'vibes-diy login'.");
|
|
60
|
+
}
|
|
61
|
+
const rDetail = await api.getChatDetails({
|
|
62
|
+
ownerHandle,
|
|
63
|
+
appSlug: args.appSlug,
|
|
64
|
+
chatId: args.chatId,
|
|
65
|
+
});
|
|
66
|
+
if (rDetail.isErr()) {
|
|
67
|
+
return Result.Err(formatErr(rDetail.Err()));
|
|
68
|
+
}
|
|
69
|
+
const detail = rDetail.Ok();
|
|
70
|
+
return sendMsg(ctx, {
|
|
71
|
+
type: "vibes-diy.cli.res-chat-detail",
|
|
72
|
+
chatId: args.chatId,
|
|
73
|
+
ownerHandle: detail.ownerHandle,
|
|
74
|
+
appSlug: detail.appSlug,
|
|
75
|
+
prompts: detail.prompts,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
default: {
|
|
79
|
+
const items = [];
|
|
80
|
+
let cursor;
|
|
81
|
+
do {
|
|
82
|
+
const rPage = await api.listApplicationChats({
|
|
83
|
+
appSlug: args.appSlug,
|
|
84
|
+
...(ownerHandle !== undefined ? { ownerHandle } : {}),
|
|
85
|
+
limit: 100,
|
|
86
|
+
...(cursor !== undefined ? { cursor } : {}),
|
|
87
|
+
});
|
|
88
|
+
if (rPage.isErr()) {
|
|
89
|
+
return Result.Err(formatErr(rPage.Err()));
|
|
90
|
+
}
|
|
91
|
+
const page = rPage.Ok();
|
|
92
|
+
items.push(...page.items);
|
|
93
|
+
cursor = page.nextCursor;
|
|
94
|
+
} while (cursor !== undefined);
|
|
95
|
+
return sendMsg(ctx, { type: "vibes-diy.cli.res-chats-list", items });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
export function chatsCmd(ctx) {
|
|
101
|
+
return command({
|
|
102
|
+
name: "chats",
|
|
103
|
+
description: "List chat sessions for a vibe, or show prompts for a specific chat.",
|
|
104
|
+
args: {
|
|
105
|
+
...cmdTsDefaultArgs(ctx),
|
|
106
|
+
appSlug: positional({
|
|
107
|
+
displayName: "appSlug",
|
|
108
|
+
description: "Slug of the app to list chats for",
|
|
109
|
+
type: string,
|
|
110
|
+
}),
|
|
111
|
+
chatId: positional({
|
|
112
|
+
displayName: "chatId",
|
|
113
|
+
description: "Chat ID to show prompt history for (omit to list all chats)",
|
|
114
|
+
type: optional(string),
|
|
115
|
+
}),
|
|
116
|
+
handle: option({
|
|
117
|
+
long: "handle",
|
|
118
|
+
description: "Handle (uses default if omitted)",
|
|
119
|
+
type: string,
|
|
120
|
+
defaultValue: () => "",
|
|
121
|
+
defaultValueIsSerializable: true,
|
|
122
|
+
}),
|
|
123
|
+
},
|
|
124
|
+
handler: ctx.cliStream.enqueue(({ handle, chatId, ...rest }) => {
|
|
125
|
+
const base = { type: "vibes-diy.cli.chats", ...rest, ownerHandle: handle };
|
|
126
|
+
return chatId === undefined ? base : { ...base, chatId };
|
|
127
|
+
}),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=chats-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chats-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/chats-cmd.ts"],"names":[],"mappings":"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"}
|
package/cli/cmds/db/shared.js
CHANGED
|
@@ -12,8 +12,8 @@ export function dbCommonArgs(ctx) {
|
|
|
12
12
|
defaultValueIsSerializable: true,
|
|
13
13
|
}),
|
|
14
14
|
ownerHandle: option({
|
|
15
|
-
long: "
|
|
16
|
-
description: "
|
|
15
|
+
long: "handle",
|
|
16
|
+
description: "Handle; defaults to defaultHandle from user settings",
|
|
17
17
|
type: string,
|
|
18
18
|
defaultValue: () => "",
|
|
19
19
|
defaultValueIsSerializable: true,
|
|
@@ -35,7 +35,7 @@ export async function resolveUserSlug(api, explicit) {
|
|
|
35
35
|
return Result.Err(r.Err());
|
|
36
36
|
const def = r.Ok().settings.find(isUserSettingDefaultHandle);
|
|
37
37
|
if (def === undefined) {
|
|
38
|
-
return Result.Err("No defaultHandle — pass --
|
|
38
|
+
return Result.Err("No defaultHandle — pass --handle or run 'vibes-diy login' first");
|
|
39
39
|
}
|
|
40
40
|
return Result.Ok(def.ownerHandle);
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClF,0BAA0B,EAAE,IAAI;SACjC,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClF,0BAA0B,EAAE,IAAI;SACjC,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sDAAsD;YACnE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,0BAA0B,EAAE,IAAI;SACjC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;YAC7B,0BAA0B,EAAE,IAAI;SACjC,CAAC;KACH,CAAC;AACJ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAgB,EAAE,QAAgB;IACtE,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC7D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { CliCtx } from "../cli-ctx.js";
|
|
3
|
+
import type { VibesDiyApi } from "@vibes.diy/api-impl";
|
|
4
|
+
export interface McpServerDeps {
|
|
5
|
+
readonly api: VibesDiyApi;
|
|
6
|
+
readonly appSlug: string;
|
|
7
|
+
readonly ownerHandle: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createMcpServer(deps: McpServerDeps): McpServer;
|
|
10
|
+
export declare function mcpCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
|
|
11
|
+
parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
|
|
12
|
+
appSlug: string;
|
|
13
|
+
ownerHandle: string;
|
|
14
|
+
apiUrl: string;
|
|
15
|
+
}>>;
|
|
16
|
+
} & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
|
|
17
|
+
appSlug: string;
|
|
18
|
+
ownerHandle: string;
|
|
19
|
+
apiUrl: string;
|
|
20
|
+
}, Promise<void>> & {
|
|
21
|
+
run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<Promise<void>>>;
|
|
22
|
+
} & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { command, option, string } from "cmd-ts";
|
|
5
|
+
import { basename } from "node:path";
|
|
6
|
+
import { exception2Result } from "@adviser/cement";
|
|
7
|
+
import { FireflyApiAdapter } from "@vibes.diy/api-impl";
|
|
8
|
+
import { isResGetDoc, isResGetDocNotFound, isResPutDoc, isResDeleteDoc, isResQueryDocs } from "@vibes.diy/api-types";
|
|
9
|
+
import charwise from "charwise";
|
|
10
|
+
import { resolveUserSlug } from "./db/shared.js";
|
|
11
|
+
export function createMcpServer(deps) {
|
|
12
|
+
const { api, appSlug, ownerHandle } = deps;
|
|
13
|
+
const args = { appSlug };
|
|
14
|
+
const server = new McpServer({
|
|
15
|
+
name: "vibes-diy",
|
|
16
|
+
version: "0.0.0",
|
|
17
|
+
});
|
|
18
|
+
server.tool("vibes_list_apps", "List all apps (vibes) owned by the authenticated user", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true }, async () => {
|
|
19
|
+
try {
|
|
20
|
+
const items = [];
|
|
21
|
+
let cursor;
|
|
22
|
+
do {
|
|
23
|
+
const rPage = await api.listRecentVibes({ limit: 100, ...(cursor ? { cursor } : {}) });
|
|
24
|
+
if (rPage.isErr()) {
|
|
25
|
+
return { content: [{ type: "text", text: `Error: ${rPage.Err()}` }] };
|
|
26
|
+
}
|
|
27
|
+
const page = rPage.Ok();
|
|
28
|
+
items.push(...page.items);
|
|
29
|
+
cursor = page.nextCursor;
|
|
30
|
+
} while (cursor);
|
|
31
|
+
return { content: [{ type: "text", text: JSON.stringify(items) }] };
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
server.tool("vibes_list_databases", "List database names for an app", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true }, async () => {
|
|
38
|
+
try {
|
|
39
|
+
const slug = args.appSlug;
|
|
40
|
+
const r = await api.listDbNames({ appSlug: slug, ownerHandle });
|
|
41
|
+
if (r.isErr()) {
|
|
42
|
+
return { content: [{ type: "text", text: `Error: ${r.Err()}` }] };
|
|
43
|
+
}
|
|
44
|
+
return { content: [{ type: "text", text: JSON.stringify(r.Ok().dbNames) }] };
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
server.tool("vibes_get", "Get a document by ID from a database", {
|
|
51
|
+
id: z.string().describe("Document ID"),
|
|
52
|
+
db: z.string().optional().describe("Database name (default: 'default')"),
|
|
53
|
+
}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true }, async (params) => {
|
|
54
|
+
try {
|
|
55
|
+
const slug = args.appSlug;
|
|
56
|
+
const dbName = params.db ?? "default";
|
|
57
|
+
const adapter = new FireflyApiAdapter(api, slug, { ownerHandle });
|
|
58
|
+
const r = await adapter.getDoc(params.id, dbName);
|
|
59
|
+
if (r.isErr()) {
|
|
60
|
+
return { content: [{ type: "text", text: `Error: ${r.Err()}` }] };
|
|
61
|
+
}
|
|
62
|
+
const res = r.Ok();
|
|
63
|
+
if (isResGetDocNotFound(res)) {
|
|
64
|
+
return { content: [{ type: "text", text: `Document not found: ${params.id}` }] };
|
|
65
|
+
}
|
|
66
|
+
if (!isResGetDoc(res)) {
|
|
67
|
+
return { content: [{ type: "text", text: `Unexpected response: ${JSON.stringify(res)}` }] };
|
|
68
|
+
}
|
|
69
|
+
const getRes = res;
|
|
70
|
+
return { content: [{ type: "text", text: JSON.stringify({ ...getRes.doc, _id: getRes.id }) }] };
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
server.tool("vibes_put", "Create or update a document in a database", {
|
|
77
|
+
doc: z.record(z.unknown()).describe("Document to store"),
|
|
78
|
+
id: z.string().optional().describe("Document ID (_id); generated if omitted"),
|
|
79
|
+
db: z.string().optional().describe("Database name (default: 'default')"),
|
|
80
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, async (params) => {
|
|
81
|
+
try {
|
|
82
|
+
const slug = args.appSlug;
|
|
83
|
+
const dbName = params.db ?? "default";
|
|
84
|
+
const adapter = new FireflyApiAdapter(api, slug, { ownerHandle });
|
|
85
|
+
const docId = params.id;
|
|
86
|
+
const r = await adapter.putDoc(params.doc, docId, dbName);
|
|
87
|
+
if (r.isErr()) {
|
|
88
|
+
return { content: [{ type: "text", text: `Error: ${r.Err()}` }] };
|
|
89
|
+
}
|
|
90
|
+
const res = r.Ok();
|
|
91
|
+
if (!isResPutDoc(res)) {
|
|
92
|
+
return { content: [{ type: "text", text: `Unexpected response: ${JSON.stringify(res)}` }] };
|
|
93
|
+
}
|
|
94
|
+
return { content: [{ type: "text", text: JSON.stringify({ id: res.id, ok: true }) }] };
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
server.tool("vibes_delete", "Delete a document by ID from a database", {
|
|
101
|
+
id: z.string().describe("Document ID to delete"),
|
|
102
|
+
db: z.string().optional().describe("Database name (default: 'default')"),
|
|
103
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, async (params) => {
|
|
104
|
+
try {
|
|
105
|
+
const slug = args.appSlug;
|
|
106
|
+
const dbName = params.db ?? "default";
|
|
107
|
+
const adapter = new FireflyApiAdapter(api, slug, { ownerHandle });
|
|
108
|
+
const r = await adapter.deleteDoc(params.id, dbName);
|
|
109
|
+
if (r.isErr()) {
|
|
110
|
+
return { content: [{ type: "text", text: `Error: ${r.Err()}` }] };
|
|
111
|
+
}
|
|
112
|
+
const res = r.Ok();
|
|
113
|
+
if (!isResDeleteDoc(res)) {
|
|
114
|
+
return { content: [{ type: "text", text: `Unexpected response: ${JSON.stringify(res)}` }] };
|
|
115
|
+
}
|
|
116
|
+
return { content: [{ type: "text", text: JSON.stringify({ id: res.id, ok: true }) }] };
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
server.tool("vibes_query", "Query documents by field value with optional key, prefix, range, limit, and descending filters", {
|
|
123
|
+
field: z.string().describe("Field name to index on"),
|
|
124
|
+
db: z.string().optional().describe("Database name (default: 'default')"),
|
|
125
|
+
key: z.string().optional().describe("Exact key match (JSON value)"),
|
|
126
|
+
prefix: z.string().optional().describe("Key prefix match (JSON value)"),
|
|
127
|
+
range: z.tuple([z.string(), z.string()]).optional().describe("Key range [start, end] (JSON values)"),
|
|
128
|
+
limit: z.number().optional().describe("Maximum number of results (0 or omitted = no limit)"),
|
|
129
|
+
descending: z.boolean().optional().describe("Return results in descending order"),
|
|
130
|
+
}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true }, async (params) => {
|
|
131
|
+
try {
|
|
132
|
+
const slug = args.appSlug;
|
|
133
|
+
const dbName = params.db ?? "default";
|
|
134
|
+
const adapter = new FireflyApiAdapter(api, slug, { ownerHandle });
|
|
135
|
+
const r = await adapter.queryDocs(dbName);
|
|
136
|
+
if (r.isErr()) {
|
|
137
|
+
return { content: [{ type: "text", text: `Error: ${r.Err()}` }] };
|
|
138
|
+
}
|
|
139
|
+
const res = r.Ok();
|
|
140
|
+
if (!isResQueryDocs(res)) {
|
|
141
|
+
return { content: [{ type: "text", text: `Unexpected response: ${JSON.stringify(res)}` }] };
|
|
142
|
+
}
|
|
143
|
+
const field = params.field;
|
|
144
|
+
let rows = res.docs
|
|
145
|
+
.filter((doc) => doc[field] !== undefined)
|
|
146
|
+
.map((doc) => ({
|
|
147
|
+
doc,
|
|
148
|
+
encodedKey: charwise.encode(doc[field]),
|
|
149
|
+
}));
|
|
150
|
+
if (params.key !== undefined && params.key !== "") {
|
|
151
|
+
const keyStr = params.key;
|
|
152
|
+
const rKey = await exception2Result(() => JSON.parse(keyStr));
|
|
153
|
+
if (rKey.isErr()) {
|
|
154
|
+
return { content: [{ type: "text", text: `Invalid key JSON: ${rKey.Err()}` }] };
|
|
155
|
+
}
|
|
156
|
+
const encodedKey = charwise.encode(rKey.Ok());
|
|
157
|
+
rows = rows.filter((r) => r.encodedKey === encodedKey);
|
|
158
|
+
}
|
|
159
|
+
if (params.prefix !== undefined && params.prefix !== "") {
|
|
160
|
+
const prefixStr = params.prefix;
|
|
161
|
+
const rPrefix = await exception2Result(() => JSON.parse(prefixStr));
|
|
162
|
+
if (rPrefix.isErr()) {
|
|
163
|
+
return { content: [{ type: "text", text: `Invalid prefix JSON: ${rPrefix.Err()}` }] };
|
|
164
|
+
}
|
|
165
|
+
const prefixVal = rPrefix.Ok();
|
|
166
|
+
let encodedPrefix = charwise.encode(prefixVal);
|
|
167
|
+
if (Array.isArray(prefixVal) && encodedPrefix.endsWith("!")) {
|
|
168
|
+
encodedPrefix = encodedPrefix.slice(0, -1);
|
|
169
|
+
}
|
|
170
|
+
rows = rows.filter((r) => r.encodedKey.startsWith(encodedPrefix));
|
|
171
|
+
}
|
|
172
|
+
if (params.range !== undefined) {
|
|
173
|
+
const [rangeStart, rangeEnd] = params.range;
|
|
174
|
+
const rStart = await exception2Result(() => JSON.parse(rangeStart));
|
|
175
|
+
const rEnd = await exception2Result(() => JSON.parse(rangeEnd));
|
|
176
|
+
if (rStart.isErr()) {
|
|
177
|
+
return { content: [{ type: "text", text: `Invalid range start JSON: ${rStart.Err()}` }] };
|
|
178
|
+
}
|
|
179
|
+
if (rEnd.isErr()) {
|
|
180
|
+
return { content: [{ type: "text", text: `Invalid range end JSON: ${rEnd.Err()}` }] };
|
|
181
|
+
}
|
|
182
|
+
const encodedStart = charwise.encode(rStart.Ok());
|
|
183
|
+
const encodedEnd = charwise.encode(rEnd.Ok());
|
|
184
|
+
rows = rows.filter((r) => r.encodedKey >= encodedStart && r.encodedKey <= encodedEnd);
|
|
185
|
+
}
|
|
186
|
+
rows.sort((a, b) => (a.encodedKey < b.encodedKey ? -1 : a.encodedKey > b.encodedKey ? 1 : 0));
|
|
187
|
+
if (params.descending) {
|
|
188
|
+
rows.reverse();
|
|
189
|
+
}
|
|
190
|
+
if (params.limit !== undefined && params.limit > 0) {
|
|
191
|
+
rows = rows.slice(0, params.limit);
|
|
192
|
+
}
|
|
193
|
+
const docs = rows.map((r) => r.doc);
|
|
194
|
+
return { content: [{ type: "text", text: JSON.stringify(docs) }] };
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
return { content: [{ type: "text", text: `Error: ${e}` }] };
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
return server;
|
|
201
|
+
}
|
|
202
|
+
async function startMcpServer(ctx, handlerArgs) {
|
|
203
|
+
if (!ctx.vibesDiyApiFactory) {
|
|
204
|
+
console.error("Not logged in. Run 'vibes-diy login' first.");
|
|
205
|
+
process.exit(1);
|
|
206
|
+
}
|
|
207
|
+
const api = ctx.vibesDiyApiFactory(handlerArgs.apiUrl);
|
|
208
|
+
const rUser = await resolveUserSlug(api, handlerArgs.ownerHandle);
|
|
209
|
+
if (rUser.isErr()) {
|
|
210
|
+
console.error(`Failed to resolve user slug: ${rUser.Err()}`);
|
|
211
|
+
process.exit(1);
|
|
212
|
+
}
|
|
213
|
+
const ownerHandle = rUser.Ok();
|
|
214
|
+
const server = createMcpServer({ api, appSlug: handlerArgs.appSlug, ownerHandle });
|
|
215
|
+
const transport = new StdioServerTransport();
|
|
216
|
+
console.error("vibes-diy MCP server started");
|
|
217
|
+
await server.connect(transport);
|
|
218
|
+
await new Promise(() => {
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
export function mcpCmd(ctx) {
|
|
222
|
+
return command({
|
|
223
|
+
name: "mcp",
|
|
224
|
+
description: "Start an MCP server for AI agent data access (stdio transport)",
|
|
225
|
+
args: {
|
|
226
|
+
appSlug: option({
|
|
227
|
+
long: "app-slug",
|
|
228
|
+
description: "App slug; defaults to env VIBES_APP_SLUG or basename(cwd)",
|
|
229
|
+
type: string,
|
|
230
|
+
defaultValue: () => ctx.sthis.env.get("VIBES_APP_SLUG") ?? basename(process.cwd()),
|
|
231
|
+
defaultValueIsSerializable: true,
|
|
232
|
+
}),
|
|
233
|
+
ownerHandle: option({
|
|
234
|
+
long: "handle",
|
|
235
|
+
description: "Handle; defaults to defaultHandle from user settings",
|
|
236
|
+
type: string,
|
|
237
|
+
defaultValue: () => "",
|
|
238
|
+
defaultValueIsSerializable: true,
|
|
239
|
+
}),
|
|
240
|
+
apiUrl: option({
|
|
241
|
+
long: "api-url",
|
|
242
|
+
short: "u",
|
|
243
|
+
description: "set the api url",
|
|
244
|
+
type: string,
|
|
245
|
+
defaultValue: () => ctx.sthis.env.get("VIBES_API_URL") ?? "https://vibes.diy/api?.stable-entry.=cli",
|
|
246
|
+
defaultValueIsSerializable: true,
|
|
247
|
+
}),
|
|
248
|
+
},
|
|
249
|
+
handler: async (handlerArgs) => {
|
|
250
|
+
await startMcpServer(ctx, handlerArgs);
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=mcp-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/mcp-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
3
|
+
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
4
|
+
import { Result } from "@adviser/cement";
|
|
5
|
+
import { createMcpServer } from "./mcp-cmd.js";
|
|
6
|
+
function makeMockApi() {
|
|
7
|
+
return {
|
|
8
|
+
listRecentVibes: vi.fn().mockResolvedValue(Result.Ok({
|
|
9
|
+
items: [
|
|
10
|
+
{ ownerHandle: "og", appSlug: "test-app", title: "Test App" },
|
|
11
|
+
{ ownerHandle: "og", appSlug: "other-app", title: "Other App" },
|
|
12
|
+
],
|
|
13
|
+
nextCursor: undefined,
|
|
14
|
+
})),
|
|
15
|
+
listDbNames: vi.fn().mockResolvedValue(Result.Ok({ dbNames: ["main", "settings"] })),
|
|
16
|
+
getDoc: vi.fn().mockImplementation(async (req) => Result.Ok({
|
|
17
|
+
type: "vibes.diy.res-get-doc",
|
|
18
|
+
status: "ok",
|
|
19
|
+
id: req.docId,
|
|
20
|
+
doc: { title: "Test Doc", type: "note" },
|
|
21
|
+
})),
|
|
22
|
+
putDoc: vi.fn().mockResolvedValue(Result.Ok({
|
|
23
|
+
type: "vibes.diy.res-put-doc",
|
|
24
|
+
status: "ok",
|
|
25
|
+
id: "generated-id-123",
|
|
26
|
+
})),
|
|
27
|
+
deleteDoc: vi.fn().mockImplementation(async (req) => Result.Ok({
|
|
28
|
+
type: "vibes.diy.res-delete-doc",
|
|
29
|
+
status: "ok",
|
|
30
|
+
id: req.docId,
|
|
31
|
+
})),
|
|
32
|
+
queryDocs: vi.fn().mockResolvedValue(Result.Ok({
|
|
33
|
+
type: "vibes.diy.res-query-docs",
|
|
34
|
+
status: "ok",
|
|
35
|
+
docs: [
|
|
36
|
+
{ _id: "doc-1", type: "note", title: "First" },
|
|
37
|
+
{ _id: "doc-2", type: "task", title: "Second" },
|
|
38
|
+
{ _id: "doc-3", type: "note", title: "Third" },
|
|
39
|
+
],
|
|
40
|
+
})),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async function setupClient() {
|
|
44
|
+
const api = makeMockApi();
|
|
45
|
+
const server = createMcpServer({
|
|
46
|
+
api: api,
|
|
47
|
+
appSlug: "test-app",
|
|
48
|
+
ownerHandle: "og",
|
|
49
|
+
});
|
|
50
|
+
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
|
|
51
|
+
const client = new Client({ name: "test-client", version: "0.1" });
|
|
52
|
+
await Promise.all([server.connect(serverTransport), client.connect(clientTransport)]);
|
|
53
|
+
return { client, server, api, clientTransport, serverTransport };
|
|
54
|
+
}
|
|
55
|
+
afterEach(() => {
|
|
56
|
+
vi.restoreAllMocks();
|
|
57
|
+
});
|
|
58
|
+
describe("MCP server — tool listing", () => {
|
|
59
|
+
it("exposes all 6 tools", async () => {
|
|
60
|
+
const { client } = await setupClient();
|
|
61
|
+
const { tools } = await client.listTools();
|
|
62
|
+
const names = tools.map((t) => t.name).sort();
|
|
63
|
+
expect(names).toEqual(["vibes_delete", "vibes_get", "vibes_list_apps", "vibes_list_databases", "vibes_put", "vibes_query"]);
|
|
64
|
+
await client.close();
|
|
65
|
+
});
|
|
66
|
+
it("marks read-only tools correctly", async () => {
|
|
67
|
+
const { client } = await setupClient();
|
|
68
|
+
const { tools } = await client.listTools();
|
|
69
|
+
const readTools = tools.filter((t) => t.annotations?.readOnlyHint === true);
|
|
70
|
+
const writeTools = tools.filter((t) => t.annotations?.destructiveHint === true);
|
|
71
|
+
expect(readTools.map((t) => t.name).sort()).toEqual(["vibes_get", "vibes_list_apps", "vibes_list_databases", "vibes_query"]);
|
|
72
|
+
expect(writeTools.map((t) => t.name).sort()).toEqual(["vibes_delete", "vibes_put"]);
|
|
73
|
+
await client.close();
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe("MCP server — vibes_list_apps", () => {
|
|
77
|
+
it("returns all apps", async () => {
|
|
78
|
+
const { client } = await setupClient();
|
|
79
|
+
const result = await client.callTool({ name: "vibes_list_apps", arguments: {} });
|
|
80
|
+
const text = result.content[0].text;
|
|
81
|
+
const items = JSON.parse(text);
|
|
82
|
+
expect(items).toHaveLength(2);
|
|
83
|
+
expect(items[0].appSlug).toBe("test-app");
|
|
84
|
+
expect(items[1].title).toBe("Other App");
|
|
85
|
+
await client.close();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe("MCP server — vibes_list_databases", () => {
|
|
89
|
+
it("returns database names for the session app", async () => {
|
|
90
|
+
const { client, api } = await setupClient();
|
|
91
|
+
const result = await client.callTool({ name: "vibes_list_databases", arguments: {} });
|
|
92
|
+
const text = result.content[0].text;
|
|
93
|
+
expect(JSON.parse(text)).toEqual(["main", "settings"]);
|
|
94
|
+
expect(api.listDbNames).toHaveBeenCalledWith({ appSlug: "test-app", ownerHandle: "og" });
|
|
95
|
+
await client.close();
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe("MCP server — vibes_get", () => {
|
|
99
|
+
it("retrieves a document by ID", async () => {
|
|
100
|
+
const { client } = await setupClient();
|
|
101
|
+
const result = await client.callTool({ name: "vibes_get", arguments: { id: "doc-abc", db: "main" } });
|
|
102
|
+
const text = result.content[0].text;
|
|
103
|
+
const doc = JSON.parse(text);
|
|
104
|
+
expect(doc._id).toBe("doc-abc");
|
|
105
|
+
expect(doc.title).toBe("Test Doc");
|
|
106
|
+
await client.close();
|
|
107
|
+
});
|
|
108
|
+
it("uses 'default' db when db is omitted", async () => {
|
|
109
|
+
const { client, api } = await setupClient();
|
|
110
|
+
await client.callTool({ name: "vibes_get", arguments: { id: "doc-abc" } });
|
|
111
|
+
const call = api.getDoc.mock.calls[0][0];
|
|
112
|
+
expect(call.dbName).toBe("default");
|
|
113
|
+
await client.close();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe("MCP server — vibes_put", () => {
|
|
117
|
+
it("creates a document and returns the ID", async () => {
|
|
118
|
+
const { client } = await setupClient();
|
|
119
|
+
const result = await client.callTool({
|
|
120
|
+
name: "vibes_put",
|
|
121
|
+
arguments: { doc: { type: "note", title: "New Note" }, db: "main" },
|
|
122
|
+
});
|
|
123
|
+
const text = result.content[0].text;
|
|
124
|
+
const res = JSON.parse(text);
|
|
125
|
+
expect(res.id).toBe("generated-id-123");
|
|
126
|
+
expect(res.ok).toBe(true);
|
|
127
|
+
await client.close();
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe("MCP server — vibes_delete", () => {
|
|
131
|
+
it("deletes a document and returns confirmation", async () => {
|
|
132
|
+
const { client } = await setupClient();
|
|
133
|
+
const result = await client.callTool({ name: "vibes_delete", arguments: { id: "doc-to-delete", db: "main" } });
|
|
134
|
+
const text = result.content[0].text;
|
|
135
|
+
const res = JSON.parse(text);
|
|
136
|
+
expect(res.id).toBe("doc-to-delete");
|
|
137
|
+
expect(res.ok).toBe(true);
|
|
138
|
+
await client.close();
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe("MCP server — vibes_query", () => {
|
|
142
|
+
it("queries by field and returns matching documents", async () => {
|
|
143
|
+
const { client } = await setupClient();
|
|
144
|
+
const result = await client.callTool({ name: "vibes_query", arguments: { field: "type", db: "main" } });
|
|
145
|
+
const text = result.content[0].text;
|
|
146
|
+
const docs = JSON.parse(text);
|
|
147
|
+
expect(docs).toHaveLength(3);
|
|
148
|
+
await client.close();
|
|
149
|
+
});
|
|
150
|
+
it("filters by key", async () => {
|
|
151
|
+
const { client } = await setupClient();
|
|
152
|
+
const result = await client.callTool({
|
|
153
|
+
name: "vibes_query",
|
|
154
|
+
arguments: { field: "type", db: "main", key: '"note"' },
|
|
155
|
+
});
|
|
156
|
+
const text = result.content[0].text;
|
|
157
|
+
const docs = JSON.parse(text);
|
|
158
|
+
expect(docs).toHaveLength(2);
|
|
159
|
+
expect(docs.every((d) => d.type === "note")).toBe(true);
|
|
160
|
+
await client.close();
|
|
161
|
+
});
|
|
162
|
+
it("respects limit", async () => {
|
|
163
|
+
const { client } = await setupClient();
|
|
164
|
+
const result = await client.callTool({
|
|
165
|
+
name: "vibes_query",
|
|
166
|
+
arguments: { field: "type", db: "main", limit: 1 },
|
|
167
|
+
});
|
|
168
|
+
const text = result.content[0].text;
|
|
169
|
+
const docs = JSON.parse(text);
|
|
170
|
+
expect(docs).toHaveLength(1);
|
|
171
|
+
await client.close();
|
|
172
|
+
});
|
|
173
|
+
it("supports descending order", async () => {
|
|
174
|
+
const { client } = await setupClient();
|
|
175
|
+
const asc = await client.callTool({ name: "vibes_query", arguments: { field: "type", db: "main" } });
|
|
176
|
+
const desc = await client.callTool({ name: "vibes_query", arguments: { field: "type", db: "main", descending: true } });
|
|
177
|
+
const ascDocs = JSON.parse(asc.content[0].text);
|
|
178
|
+
const descDocs = JSON.parse(desc.content[0].text);
|
|
179
|
+
expect(ascDocs[0].type).toBe("note");
|
|
180
|
+
expect(descDocs[0].type).toBe("task");
|
|
181
|
+
await client.close();
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
//# sourceMappingURL=mcp-cmd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-cmd.test.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/mcp-cmd.test.ts"],"names":[],"mappings":"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"}
|
package/cli/main.js
CHANGED
|
@@ -6,7 +6,7 @@ import { VibesDiyApi } from "@vibes.diy/api-impl";
|
|
|
6
6
|
import { dotenv } from "zx";
|
|
7
7
|
import { cmd_tsStream } from "./cmd-ts-stream.js";
|
|
8
8
|
import { runSafely, subcommands, setDefaultHelpFormatter, defaultHelpFormatter } from "cmd-ts";
|
|
9
|
-
import { getCliFooter } from "@vibes.diy/prompts";
|
|
9
|
+
import { getCliFooter, getMcpFooter } from "@vibes.diy/prompts";
|
|
10
10
|
import { isResEnsureUserSettings, isUserSettingSharing, isResEnsureAppSlug } from "@vibes.diy/api-types";
|
|
11
11
|
import { userSettingsCmd } from "./cmds/user-settings-cmd.js";
|
|
12
12
|
import { dbSubcommands, isResDbList, isResDbGet, isResDbPut, isResDbDel, isResDbQuery, } from "./cmds/db/index.js";
|
|
@@ -14,11 +14,13 @@ import { loginCmd } from "./cmds/login-cmd.js";
|
|
|
14
14
|
import { pushCmd } from "./cmds/push-cmd.js";
|
|
15
15
|
import { putAssetCmd, isResPutAssetCli } from "./cmds/put-asset-cmd.js";
|
|
16
16
|
import { generateCmd, isResGenerate } from "./cmds/generate-cmd.js";
|
|
17
|
+
import { chatsCmd, isResChatsList, isResChatDetail } from "./cmds/chats-cmd.js";
|
|
17
18
|
import { editCmd, isResEdit } from "./cmds/edit-cmd.js";
|
|
18
19
|
import { skillsCmd, isResSkillsList, isResSkillContent } from "./cmds/skills-cmd.js";
|
|
19
20
|
import { themesCmd, isResThemesList, isResThemeContent } from "./cmds/themes-cmd.js";
|
|
20
21
|
import { systemCmd, isResSystem } from "./cmds/system-cmd.js";
|
|
21
22
|
import { listCmd, isResVibesList } from "./cmds/list-cmd.js";
|
|
23
|
+
import { mcpCmd } from "./cmds/mcp-cmd.js";
|
|
22
24
|
import { pullCmd, isResPull } from "./cmds/pull-cmd.js";
|
|
23
25
|
import { defaultCliOutput } from "./cli-ctx.js";
|
|
24
26
|
import { cmdTsEvento, isCmdProgress } from "./cmd-evento.js";
|
|
@@ -93,8 +95,16 @@ async function main() {
|
|
|
93
95
|
};
|
|
94
96
|
const rFooter = await exception2Result(() => getCliFooter());
|
|
95
97
|
const cliFooter = rFooter.isOk() ? rFooter.Ok() : "";
|
|
98
|
+
const rMcpFooter = await exception2Result(() => getMcpFooter());
|
|
99
|
+
const mcpFooter = rMcpFooter.isOk() ? rMcpFooter.Ok() : "";
|
|
96
100
|
setDefaultHelpFormatter({
|
|
97
|
-
formatCommand
|
|
101
|
+
formatCommand(data, context) {
|
|
102
|
+
const base = defaultHelpFormatter.formatCommand(data, context);
|
|
103
|
+
if (data.name === "mcp") {
|
|
104
|
+
return base + "\n" + mcpFooter;
|
|
105
|
+
}
|
|
106
|
+
return base;
|
|
107
|
+
},
|
|
98
108
|
formatSubcommands(data, context) {
|
|
99
109
|
const base = defaultHelpFormatter.formatSubcommands(data, context);
|
|
100
110
|
return cliFooter ? base + "\n" + cliFooter : base;
|
|
@@ -105,11 +115,13 @@ async function main() {
|
|
|
105
115
|
description: "vibes-diy cli",
|
|
106
116
|
version: packageJson.version,
|
|
107
117
|
cmds: {
|
|
118
|
+
chats: chatsCmd(ctx),
|
|
108
119
|
db: dbSubcommands(ctx),
|
|
109
120
|
edit: editCmd(ctx),
|
|
110
121
|
generate: generateCmd(ctx),
|
|
111
122
|
list: listCmd(ctx),
|
|
112
123
|
login: loginCmd(ctx),
|
|
124
|
+
mcp: mcpCmd(ctx),
|
|
113
125
|
pull: pullCmd(ctx),
|
|
114
126
|
push: pushCmd(ctx),
|
|
115
127
|
"put-asset": putAssetCmd(ctx),
|
|
@@ -202,6 +214,41 @@ async function main() {
|
|
|
202
214
|
case isResEnsureAppSlug(msg): {
|
|
203
215
|
break;
|
|
204
216
|
}
|
|
217
|
+
case isResChatsList(msg): {
|
|
218
|
+
if (wmsg.cmdTs.outputFormat === "json") {
|
|
219
|
+
for (const item of msg.items) {
|
|
220
|
+
console.log(JSON.stringify(item));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
if (msg.items.length === 0) {
|
|
225
|
+
console.log("(no chats found)");
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
for (const item of msg.items) {
|
|
229
|
+
console.log(`${item.chatId} ${item.created}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case isResChatDetail(msg): {
|
|
236
|
+
const detail = msg;
|
|
237
|
+
if (wmsg.cmdTs.outputFormat === "json") {
|
|
238
|
+
console.log(JSON.stringify(detail, null, 2));
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
if (detail.prompts.length === 0) {
|
|
242
|
+
console.log("(no prompts in this chat)");
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
for (const p of detail.prompts) {
|
|
246
|
+
console.log(`[${p.created}] ${p.prompt}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
205
252
|
case isResDbList(msg): {
|
|
206
253
|
const { dbNames } = msg;
|
|
207
254
|
if (dbNames.length === 0) {
|
package/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../jsr/cli/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../jsr/cli/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibes-diy",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"description": "Transform any DOM element into an AI-powered micro-app",
|
|
@@ -38,15 +38,17 @@
|
|
|
38
38
|
"@fireproof/core-types-protocols-cloud": "~0.24.19",
|
|
39
39
|
"@fireproof/core-types-protocols-dashboard": "~0.24.19",
|
|
40
40
|
"@fireproof/use-fireproof": "~0.24.19",
|
|
41
|
-
"@
|
|
42
|
-
"@vibes.diy/api-
|
|
43
|
-
"@vibes.diy/
|
|
44
|
-
"@vibes.diy/
|
|
41
|
+
"@modelcontextprotocol/sdk": "~1.29.0",
|
|
42
|
+
"@vibes.diy/api-impl": "^2.4.15",
|
|
43
|
+
"@vibes.diy/api-types": "^2.4.15",
|
|
44
|
+
"@vibes.diy/call-ai-v2": "^2.4.15",
|
|
45
|
+
"@vibes.diy/prompts": "^2.4.15",
|
|
45
46
|
"arktype": "~2.2.0",
|
|
46
47
|
"charwise": "~3.0.1",
|
|
47
48
|
"cmd-ts": "~0.15.0",
|
|
48
49
|
"tsx": "~4.22.3",
|
|
49
|
-
"ws": "~8.20.
|
|
50
|
+
"ws": "~8.20.1",
|
|
51
|
+
"zod": "~4.3.6",
|
|
50
52
|
"zx": "~8.8.5"
|
|
51
53
|
},
|
|
52
54
|
"repository": {
|