@gram-ai/create-function 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +7 -4
- package/dist/main.js.map +1 -1
- package/dist/prompts/helpers.d.ts +1 -1
- package/dist/prompts/helpers.d.ts.map +1 -1
- package/dist/prompts/helpers.js +7 -2
- package/dist/prompts/helpers.js.map +1 -1
- package/gram-template-gram/package.json +1 -1
- package/gram-template-gram/src/server.ts +3 -103
- package/gram-template-mcp/package.json +1 -1
- package/package.json +2 -2
- package/src/main.ts +8 -4
- package/src/prompts/helpers.ts +9 -3
package/dist/main.js
CHANGED
|
@@ -108,14 +108,14 @@ async function init(argv) {
|
|
|
108
108
|
dir = dir.trim();
|
|
109
109
|
const initGit = await confirmOrClack({
|
|
110
110
|
message: "Initialize a git repository?",
|
|
111
|
-
})(args.yes || yn(args.git
|
|
111
|
+
})(args.yes || yn(args.git));
|
|
112
112
|
if (isCancel(initGit)) {
|
|
113
113
|
log.info("Operation cancelled.");
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
const installDeps = await confirmOrClack({
|
|
117
117
|
message: `Install dependencies with ${packageManager}?`,
|
|
118
|
-
})(args.yes || yn(args.install
|
|
118
|
+
})(args.yes || yn(args.install));
|
|
119
119
|
if (isCancel(installDeps)) {
|
|
120
120
|
log.info("Operation cancelled.");
|
|
121
121
|
return;
|
|
@@ -126,7 +126,7 @@ async function init(argv) {
|
|
|
126
126
|
if (proc.exitCode !== 0) {
|
|
127
127
|
const res = await confirmOrClack({
|
|
128
128
|
message: "Install the Gram CLI? Required to deploy tools to Gram.",
|
|
129
|
-
})(args.yes || yn(args.installCli
|
|
129
|
+
})(args.yes || yn(args.installCli));
|
|
130
130
|
if (isCancel(res)) {
|
|
131
131
|
log.info("Operation cancelled.");
|
|
132
132
|
return;
|
|
@@ -143,7 +143,9 @@ async function init(argv) {
|
|
|
143
143
|
await fs.cp(templateDir, dir, {
|
|
144
144
|
recursive: true,
|
|
145
145
|
filter: (src) => {
|
|
146
|
-
let banned = src.includes(".git") ||
|
|
146
|
+
let banned = src.includes(".git") ||
|
|
147
|
+
src.includes("CHANGELOG.md") ||
|
|
148
|
+
src.includes("NEXT_STEPS.txt");
|
|
147
149
|
if (isLocalDev) {
|
|
148
150
|
banned ||= src.includes("node_modules") || src.includes("dist");
|
|
149
151
|
}
|
|
@@ -170,6 +172,7 @@ async function init(argv) {
|
|
|
170
172
|
tlog.message("Updating package.json");
|
|
171
173
|
const pkgPath = await fs.readFile(join(dir, "package.json"), "utf-8");
|
|
172
174
|
const dstPkg = JSON.parse(pkgPath);
|
|
175
|
+
dstPkg.version = "0.0.0";
|
|
173
176
|
dstPkg.name = name;
|
|
174
177
|
const deps = dstPkg.dependencies;
|
|
175
178
|
if (deps?.["@gram-ai/functions"] != null) {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ConfirmOptions, type SelectOptions, type TextOptions } from "@clack/prompts";
|
|
2
|
-
export declare function yn(value: boolean | string | undefined): boolean;
|
|
2
|
+
export declare function yn(value: boolean | string | undefined): boolean | undefined;
|
|
3
3
|
export declare function textOrClack(options: TextOptions): (value: string | undefined) => Promise<string | symbol>;
|
|
4
4
|
export declare function selectOrClack<T>(options: SelectOptions<T>): (value: T | undefined) => Promise<T | symbol>;
|
|
5
5
|
export declare function confirmOrClack(options: ConfirmOptions): (value: boolean | undefined) => Promise<boolean | symbol>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/prompts/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/prompts/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAI3E;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,GACnB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAEzD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAE/C;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,GACtB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAQ3D"}
|
package/dist/prompts/helpers.js
CHANGED
|
@@ -2,7 +2,7 @@ import { confirm, select, text, } from "@clack/prompts";
|
|
|
2
2
|
const y = new Set(["y", "yes", "true", "t", "1"]);
|
|
3
3
|
export function yn(value) {
|
|
4
4
|
if (value == null)
|
|
5
|
-
return
|
|
5
|
+
return value;
|
|
6
6
|
if (typeof value === "boolean")
|
|
7
7
|
return value;
|
|
8
8
|
return y.has(value.toLowerCase());
|
|
@@ -14,6 +14,11 @@ export function selectOrClack(options) {
|
|
|
14
14
|
return async (value) => value || select(options);
|
|
15
15
|
}
|
|
16
16
|
export function confirmOrClack(options) {
|
|
17
|
-
return async (value) =>
|
|
17
|
+
return async (value) => {
|
|
18
|
+
if (value != null) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return confirm(options);
|
|
22
|
+
};
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/prompts/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,GAIL,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,MAAM,UAAU,EAAE,CAAC,KAAmC;IACpD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAoB;IAEpB,OAAO,KAAK,EAAE,KAAyB,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAyB;IAEzB,OAAO,KAAK,EAAE,KAAoB,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAuB;IAEvB,OAAO,KAAK,EAAE,KAA0B,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/prompts/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,GAIL,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,MAAM,UAAU,EAAE,CAAC,KAAmC;IACpD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAoB;IAEpB,OAAO,KAAK,EAAE,KAAyB,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAyB;IAEzB,OAAO,KAAK,EAAE,KAAoB,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAuB;IAEvB,OAAO,KAAK,EAAE,KAA0B,EAAE,EAAE;QAC1C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,112 +1,12 @@
|
|
|
1
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import {
|
|
3
|
-
CallToolRequestSchema,
|
|
4
|
-
ListToolsRequestSchema,
|
|
5
|
-
type CallToolResult,
|
|
6
|
-
type ListToolsResult,
|
|
7
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
8
1
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
2
|
+
import * as mcp from "@gram-ai/functions/mcp";
|
|
9
3
|
|
|
10
4
|
import pkg from "../package.json" with { type: "json" };
|
|
11
5
|
import gram from "./gram.ts";
|
|
12
6
|
|
|
13
|
-
const structuredLike = /\b(yaml|yml|json|toml|xml|xhtml)\b/i;
|
|
14
|
-
const textLike = /^text\//i;
|
|
15
|
-
const imageLike = /^image\//i;
|
|
16
|
-
const audioLike = /^audio\//i;
|
|
17
|
-
|
|
18
|
-
export const server = new Server(
|
|
19
|
-
{
|
|
20
|
-
name: pkg.name,
|
|
21
|
-
version: pkg.version,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
capabilities: {
|
|
25
|
-
tools: {},
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
server.setRequestHandler(
|
|
31
|
-
ListToolsRequestSchema,
|
|
32
|
-
async (): Promise<ListToolsResult> => {
|
|
33
|
-
const tools = (gram.manifest().tools || []).map((t) => {
|
|
34
|
-
return {
|
|
35
|
-
name: t.name,
|
|
36
|
-
description: t.description,
|
|
37
|
-
inputSchema: t.inputSchema,
|
|
38
|
-
};
|
|
39
|
-
}) as ListToolsResult["tools"];
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
tools,
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
server.setRequestHandler(
|
|
48
|
-
CallToolRequestSchema,
|
|
49
|
-
async (req, extra): Promise<CallToolResult> => {
|
|
50
|
-
const { name, arguments: args } = req.params;
|
|
51
|
-
|
|
52
|
-
const resp = await gram.handleToolCall({ name, input: args } as any, {
|
|
53
|
-
signal: extra.signal,
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
let ctype = resp.headers.get("Content-Type") || "";
|
|
57
|
-
ctype = ctype.split(";")[0]?.trim() || "";
|
|
58
|
-
|
|
59
|
-
switch (true) {
|
|
60
|
-
case textLike.test(ctype) || structuredLike.test(ctype): {
|
|
61
|
-
const text = await resp.text();
|
|
62
|
-
return {
|
|
63
|
-
content: [{ type: "text", text }],
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
case imageLike.test(ctype): {
|
|
67
|
-
return {
|
|
68
|
-
content: [
|
|
69
|
-
{
|
|
70
|
-
type: "image",
|
|
71
|
-
mimeType: ctype,
|
|
72
|
-
data: await responseToBase64(resp),
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
case audioLike.test(ctype): {
|
|
78
|
-
return {
|
|
79
|
-
content: [
|
|
80
|
-
{
|
|
81
|
-
type: "audio",
|
|
82
|
-
mimeType: ctype,
|
|
83
|
-
data: await responseToBase64(resp),
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
default: {
|
|
89
|
-
return {
|
|
90
|
-
isError: true,
|
|
91
|
-
content: [
|
|
92
|
-
{
|
|
93
|
-
type: "text",
|
|
94
|
-
text: `Unhandled content type: ${ctype}. Create a handler for this type in the MCP server.`,
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
async function responseToBase64(resp: Response): Promise<string> {
|
|
104
|
-
const blob = await resp.arrayBuffer();
|
|
105
|
-
const buffer = Buffer.from(blob);
|
|
106
|
-
return buffer.toString("base64");
|
|
107
|
-
}
|
|
108
|
-
|
|
109
7
|
async function run() {
|
|
8
|
+
const server = mcp.fromGram(gram, { name: pkg.name, version: pkg.version });
|
|
9
|
+
|
|
110
10
|
console.error("Starting MCP server with stdio...");
|
|
111
11
|
const stdio = new StdioServerTransport();
|
|
112
12
|
await server.connect(stdio);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@gram-ai/create-function",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.1",
|
|
5
5
|
"description": "Build AI tools and deploy them to getgram.ai",
|
|
6
6
|
"keywords": [],
|
|
7
7
|
"homepage": "https://github.com/speakeasy-api/gram",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"prettier": "^3.6.2",
|
|
39
39
|
"typescript": "5.9.2",
|
|
40
40
|
"zod": "^3.25.76",
|
|
41
|
-
"@gram-ai/functions": "^0.
|
|
41
|
+
"@gram-ai/functions": "^0.8.1"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc --noEmit false"
|
package/src/main.ts
CHANGED
|
@@ -127,7 +127,7 @@ async function init(argv: string[]): Promise<void> {
|
|
|
127
127
|
|
|
128
128
|
const initGit = await confirmOrClack({
|
|
129
129
|
message: "Initialize a git repository?",
|
|
130
|
-
})(args.yes || yn(args.git
|
|
130
|
+
})(args.yes || yn(args.git));
|
|
131
131
|
if (isCancel(initGit)) {
|
|
132
132
|
log.info("Operation cancelled.");
|
|
133
133
|
return;
|
|
@@ -135,7 +135,7 @@ async function init(argv: string[]): Promise<void> {
|
|
|
135
135
|
|
|
136
136
|
const installDeps = await confirmOrClack({
|
|
137
137
|
message: `Install dependencies with ${packageManager}?`,
|
|
138
|
-
})(args.yes || yn(args.install
|
|
138
|
+
})(args.yes || yn(args.install));
|
|
139
139
|
if (isCancel(installDeps)) {
|
|
140
140
|
log.info("Operation cancelled.");
|
|
141
141
|
return;
|
|
@@ -147,7 +147,7 @@ async function init(argv: string[]): Promise<void> {
|
|
|
147
147
|
if (proc.exitCode !== 0) {
|
|
148
148
|
const res = await confirmOrClack({
|
|
149
149
|
message: "Install the Gram CLI? Required to deploy tools to Gram.",
|
|
150
|
-
})(args.yes || yn(args.installCli
|
|
150
|
+
})(args.yes || yn(args.installCli));
|
|
151
151
|
if (isCancel(res)) {
|
|
152
152
|
log.info("Operation cancelled.");
|
|
153
153
|
return;
|
|
@@ -167,7 +167,10 @@ async function init(argv: string[]): Promise<void> {
|
|
|
167
167
|
await fs.cp(templateDir, dir, {
|
|
168
168
|
recursive: true,
|
|
169
169
|
filter: (src) => {
|
|
170
|
-
let banned =
|
|
170
|
+
let banned =
|
|
171
|
+
src.includes(".git") ||
|
|
172
|
+
src.includes("CHANGELOG.md") ||
|
|
173
|
+
src.includes("NEXT_STEPS.txt");
|
|
171
174
|
if (isLocalDev) {
|
|
172
175
|
banned ||= src.includes("node_modules") || src.includes("dist");
|
|
173
176
|
}
|
|
@@ -197,6 +200,7 @@ async function init(argv: string[]): Promise<void> {
|
|
|
197
200
|
tlog.message("Updating package.json");
|
|
198
201
|
const pkgPath = await fs.readFile(join(dir, "package.json"), "utf-8");
|
|
199
202
|
const dstPkg = JSON.parse(pkgPath);
|
|
203
|
+
dstPkg.version = "0.0.0";
|
|
200
204
|
dstPkg.name = name;
|
|
201
205
|
const deps = dstPkg.dependencies;
|
|
202
206
|
if (deps?.["@gram-ai/functions"] != null) {
|
package/src/prompts/helpers.ts
CHANGED
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
} from "@clack/prompts";
|
|
9
9
|
|
|
10
10
|
const y = new Set(["y", "yes", "true", "t", "1"]);
|
|
11
|
-
export function yn(value: boolean | string | undefined): boolean {
|
|
12
|
-
if (value == null) return
|
|
11
|
+
export function yn(value: boolean | string | undefined): boolean | undefined {
|
|
12
|
+
if (value == null) return value;
|
|
13
13
|
if (typeof value === "boolean") return value;
|
|
14
14
|
return y.has(value.toLowerCase());
|
|
15
15
|
}
|
|
@@ -29,5 +29,11 @@ export function selectOrClack<T>(
|
|
|
29
29
|
export function confirmOrClack(
|
|
30
30
|
options: ConfirmOptions,
|
|
31
31
|
): (value: boolean | undefined) => Promise<boolean | symbol> {
|
|
32
|
-
return async (value: boolean | undefined) =>
|
|
32
|
+
return async (value: boolean | undefined) => {
|
|
33
|
+
if (value != null) {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return confirm(options);
|
|
38
|
+
};
|
|
33
39
|
}
|