@neon/tools 0.6.0 → 0.8.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 +26 -9
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/lib/ergonomic/bind.d.ts +4 -1
- package/dist/lib/ergonomic/bind.d.ts.map +1 -1
- package/dist/lib/ergonomic/bind.js +6 -1
- package/dist/lib/ergonomic/catalog.d.ts +157 -98
- package/dist/lib/ergonomic/catalog.d.ts.map +1 -1
- package/dist/lib/ergonomic/catalog.js +5 -3
- package/dist/lib/ergonomic/composed.d.ts +80 -6
- package/dist/lib/ergonomic/composed.d.ts.map +1 -1
- package/dist/lib/ergonomic/composed.js +64 -9
- package/dist/lib/ergonomic/ids.d.ts +1 -1
- package/dist/lib/ergonomic/ids.d.ts.map +1 -1
- package/dist/lib/ergonomic/ids.js +2 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,10 +8,13 @@ npm install @neon/tools
|
|
|
8
8
|
|
|
9
9
|
## Create tools
|
|
10
10
|
|
|
11
|
-
Selectors are SDK paths. The returned record is keyed by those paths. Each tool's published `id` is the path in snake_case (`projects.list` → `
|
|
11
|
+
Selectors are SDK paths. The returned record is keyed by those paths. Each tool's published `id` is the last path segment, then the resource, in snake_case (`projects.list` → `list_projects`, `postgres.roles.resetPassword` → `reset_password_postgres_roles`, `postgres.connectionString` → `connection_string_postgres`). `publishedId` derives that string. `toolIds` lists every published selector.
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
|
-
import { createNeonTools } from "@neon/tools";
|
|
14
|
+
import { createNeonTools, publishedId } from "@neon/tools";
|
|
15
|
+
|
|
16
|
+
publishedId("projects.list"); // "list_projects"
|
|
17
|
+
publishedId("postgres.roles.resetPassword"); // "reset_password_postgres_roles"
|
|
15
18
|
|
|
16
19
|
const apiKey = process.env.NEON_API_KEY;
|
|
17
20
|
if (!apiKey) throw new Error("NEON_API_KEY is required");
|
|
@@ -22,6 +25,8 @@ const tools = createNeonTools({
|
|
|
22
25
|
"projects.list",
|
|
23
26
|
"projects.createAndConnect",
|
|
24
27
|
"branches.createWithCompute",
|
|
28
|
+
"branches.resetFromParent",
|
|
29
|
+
"branches.compareSchema",
|
|
25
30
|
],
|
|
26
31
|
});
|
|
27
32
|
|
|
@@ -30,11 +35,21 @@ const created = await tools["projects.createAndConnect"].execute({
|
|
|
30
35
|
name: "agent-project",
|
|
31
36
|
region_id: "aws-us-east-1",
|
|
32
37
|
});
|
|
38
|
+
await tools["branches.resetFromParent"].execute({
|
|
39
|
+
project_id: "project-id",
|
|
40
|
+
branch_id: "br-feature",
|
|
41
|
+
preserve_under_name: "feature-before-reset",
|
|
42
|
+
});
|
|
43
|
+
const compared = await tools["branches.compareSchema"].execute({
|
|
44
|
+
project_id: "project-id",
|
|
45
|
+
branch_id: "br-feature",
|
|
46
|
+
database_name: "neondb",
|
|
47
|
+
});
|
|
33
48
|
```
|
|
34
49
|
|
|
35
50
|
`limit` on a list tool caps how many items come back.
|
|
36
51
|
|
|
37
|
-
MCP and Mastra publish `tool.id` (`
|
|
52
|
+
MCP and Mastra publish `tool.id` (`list_projects`), not the record key.
|
|
38
53
|
|
|
39
54
|
`apiKey` is a Bearer credential: a Neon API key or a Neon OAuth access token. A function is called on every request, which is how short-lived OAuth tokens get refreshed. A credential is required when a tool executes — at construction, on `execute()`, or from MCP `authInfo` — and an empty value is rejected rather than ignored.
|
|
40
55
|
|
|
@@ -74,7 +89,7 @@ These public client methods are not tools: `projects.create`, `branches.create`,
|
|
|
74
89
|
|
|
75
90
|
### Descriptions
|
|
76
91
|
|
|
77
|
-
Pass a map keyed by SDK path or published `id`, or a function that can append to the generated text
|
|
92
|
+
Pass a map keyed by SDK path or the current published `id`, or a function that can append to the generated text. A key that matches neither is ignored.
|
|
78
93
|
|
|
79
94
|
```ts
|
|
80
95
|
const tools = createNeonTools({
|
|
@@ -83,7 +98,7 @@ const tools = createNeonTools({
|
|
|
83
98
|
descriptions: {
|
|
84
99
|
"projects.list":
|
|
85
100
|
"List Neon projects in your account. Do not use for projects shared with you.",
|
|
86
|
-
|
|
101
|
+
delete_projects:
|
|
87
102
|
"Delete a Neon project and all its data. NEVER run autonomously; always ask the user first.",
|
|
88
103
|
},
|
|
89
104
|
});
|
|
@@ -118,7 +133,7 @@ const tools = createNeonTools({
|
|
|
118
133
|
});
|
|
119
134
|
```
|
|
120
135
|
|
|
121
|
-
Those tools publish as `neon_create_branch` and `
|
|
136
|
+
Those tools publish as `neon_create_branch` and `neon_list_projects`. The record is still keyed by SDK path (`tools["branches.createWithCompute"]`). MCP and Mastra publish `tool.id`. Eve uses the filename as the model-facing name, so name the file after the published `id`. Duplicate or non-snake-case ids throw, and a `names` key that matches no selected tool throws.
|
|
122
137
|
|
|
123
138
|
### Project and branch injection
|
|
124
139
|
|
|
@@ -228,6 +243,8 @@ MCP annotations are advisory; the protocol does not enforce approval. Tools expo
|
|
|
228
243
|
|
|
229
244
|
Eve requires Node.js 24 or later.
|
|
230
245
|
|
|
246
|
+
`create_and_connect_projects.ts`:
|
|
247
|
+
|
|
231
248
|
```ts
|
|
232
249
|
import { defineTool } from "eve/tools";
|
|
233
250
|
import { createNeonTool } from "@neon/tools";
|
|
@@ -245,7 +262,7 @@ export default defineTool(
|
|
|
245
262
|
);
|
|
246
263
|
```
|
|
247
264
|
|
|
248
|
-
Eve uses the filename as the model-facing tool name, so name the file after the
|
|
265
|
+
Eve uses the filename as the model-facing tool name, so name the file after the published `id`. The adapter maps approval requirements to Eve's `approval` hook and forwards its abort signal.
|
|
249
266
|
|
|
250
267
|
## Mastra
|
|
251
268
|
|
|
@@ -265,8 +282,8 @@ const neonTools = createNeonTools({
|
|
|
265
282
|
});
|
|
266
283
|
const configs = toMastraTools(neonTools);
|
|
267
284
|
|
|
268
|
-
const listProjects = createTool(configs.
|
|
269
|
-
const createProject = createTool(configs.
|
|
285
|
+
const listProjects = createTool(configs.list_projects);
|
|
286
|
+
const createProject = createTool(configs.create_and_connect_projects);
|
|
270
287
|
```
|
|
271
288
|
|
|
272
289
|
The adapter maps approval requirements to Mastra's `requireApproval` field and forwards its abort signal.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NeonError } from "@neon/sdk";
|
|
2
2
|
import { type InjectedNeonTool, type NeonToolCustomizeOptions, type NeonToolInjectOptions, type NeonToolNameOverrides } from "./lib/customize.js";
|
|
3
|
-
import { type NeonToolId, type ToolClientOptions, toolFactories, toolIds } from "./lib/ergonomic/index.js";
|
|
3
|
+
import { type NeonToolId, type PublishedId, publishedId, type ToolClientOptions, toolFactories, toolIds } from "./lib/ergonomic/index.js";
|
|
4
4
|
export type { NeonBearerCredential } from "./lib/auth.js";
|
|
5
5
|
export type { InjectedNeonTool, NeonToolCustomizeOptions, NeonToolDescriptionOverrides, NeonToolDescriptionSource, NeonToolInjectOptions, NeonToolInjectValue, NeonToolNameOverrides, NeonToolNameSource, NeonToolOnExecute, NeonToolOnExecuteEvent, } from "./lib/customize.js";
|
|
6
6
|
export type { JsonSafe, JsonSafeBlob, NeonTool, NeonToolAnnotations, NeonToolExecutionContext, NeonToolMetadata, NeonToolResult, } from "./lib/operation.js";
|
|
7
|
-
export type { NeonToolId };
|
|
8
|
-
export { NeonError, toolIds };
|
|
7
|
+
export type { NeonToolId, PublishedId };
|
|
8
|
+
export { NeonError, publishedId, toolIds };
|
|
9
9
|
type ToolFactories = typeof toolFactories;
|
|
10
10
|
export type NeonTools<Tools extends readonly NeonToolId[] = []> = {
|
|
11
11
|
[Tool in Tools[number]]: ReturnType<ToolFactories[Tool]>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAIN,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEN,KAAK,UAAU,EACf,KAAK,iBAAiB,EAEtB,aAAa,EACb,OAAO,EAEP,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EACX,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { applyToolCustomization, assertToolCustomizeOptions, hasToolCustomization } from "./lib/customize.js";
|
|
2
|
+
import { publishedId } from "./lib/ergonomic/bind.js";
|
|
2
3
|
import { toolFactories } from "./lib/ergonomic/catalog.js";
|
|
3
4
|
import { isNeonToolId, toolIds, unpublishedToolError } from "./lib/ergonomic/ids.js";
|
|
4
5
|
import { NeonError } from "@neon/sdk";
|
|
@@ -53,4 +54,4 @@ function createNeonTool(id, options) {
|
|
|
53
54
|
return hasToolCustomization(options) ? applyToolCustomization(tool, options) : tool;
|
|
54
55
|
}
|
|
55
56
|
//#endregion
|
|
56
|
-
export { NeonError, createNeonTool, createNeonTools, toolIds };
|
|
57
|
+
export { NeonError, createNeonTool, createNeonTools, publishedId, toolIds };
|
|
@@ -11,7 +11,10 @@ export interface ToolClientOptions {
|
|
|
11
11
|
wait?: NeonConfig["wait"];
|
|
12
12
|
}
|
|
13
13
|
type Snake<S extends string> = S extends `${infer Head}${infer Rest}` ? Head extends Uppercase<Head> ? Head extends Lowercase<Head> ? `${Head}${Snake<Rest>}` : `_${Lowercase<Head>}${Snake<Rest>}` : `${Head}${Snake<Rest>}` : S;
|
|
14
|
-
|
|
14
|
+
type LastSegment<Id extends string> = Id extends `${string}.${infer Rest}` ? LastSegment<Rest> : Id;
|
|
15
|
+
type ResourcePath<Id extends string, Acc extends string = ""> = Id extends `${infer Head}.${infer Rest}` ? ResourcePath<Rest, Acc extends "" ? Head : `${Acc}.${Head}`> : Acc;
|
|
16
|
+
type SnakeDots<Id extends string> = Id extends `${infer Head}.${infer Rest}` ? `${Snake<Head>}_${SnakeDots<Rest>}` : Snake<Id>;
|
|
17
|
+
export type PublishedId<Id extends string> = Id extends `${string}.${string}` ? `${Snake<LastSegment<Id>>}_${SnakeDots<ResourcePath<Id>>}` : Snake<Id>;
|
|
15
18
|
export declare const publishedId: <Id extends string>(id: Id) => PublishedId<Id>;
|
|
16
19
|
export declare const toolClient: (options: ToolClientOptions, context?: NeonToolExecutionContext) => NeonClient<true>;
|
|
17
20
|
export declare const collectObjectList: (neon: NeonClient<true>, input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/lib/ergonomic/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACN,KAAK,eAAe,EACpB,kBAAkB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,KAAK,oBAAoB,EAEzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACX,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CAC1B;AASD,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,GAClE,IAAI,SAAS,SAAS,CAAC,IAAI,CAAC,GAC3B,IAAI,SAAS,SAAS,CAAC,IAAI,CAAC,GAC3B,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GACvB,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GACpC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GACxB,CAAC,CAAC;AAEL,MAAM,MAAM,WAAW,CAAC,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/lib/ergonomic/bind.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,12 @@ import * as z from "zod";
|
|
|
6
6
|
//#region src/lib/ergonomic/bind.ts
|
|
7
7
|
const ALL_PAGES = " This tool returns every page. Pass limit to cap how many items come back. Do not pass a cursor.";
|
|
8
8
|
const inertClient = createNeonClient({ apiKey: "unused" }).client;
|
|
9
|
-
const
|
|
9
|
+
const snakeSegment = (segment) => segment.replace(/[A-Z]/g, (character) => `_${character.toLowerCase()}`);
|
|
10
|
+
const publishedId = (id) => {
|
|
11
|
+
const dot = id.lastIndexOf(".");
|
|
12
|
+
if (dot === -1) return snakeSegment(id);
|
|
13
|
+
return `${snakeSegment(id.slice(dot + 1))}_${id.slice(0, dot).split(".").map(snakeSegment).join("_")}`;
|
|
14
|
+
};
|
|
10
15
|
const resolveApiKey = (options, context) => {
|
|
11
16
|
if (context !== void 0 && "apiKey" in context) {
|
|
12
17
|
if (context.apiKey === void 0) throw new TypeError("A Neon API key or OAuth access token is required");
|