@codespar/sdk 0.2.0 → 0.3.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 +74 -12
- package/dist/__tests__/codespar.test.d.ts +1 -3
- package/dist/__tests__/codespar.test.d.ts.map +1 -1
- package/dist/__tests__/codespar.test.js +165 -7
- package/dist/__tests__/codespar.test.js.map +1 -1
- package/dist/__tests__/tools.test.d.ts +2 -0
- package/dist/__tests__/tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools.test.js +60 -0
- package/dist/__tests__/tools.test.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +4 -0
- package/dist/loop.d.ts.map +1 -0
- package/dist/loop.js +63 -0
- package/dist/loop.js.map +1 -0
- package/dist/session.d.ts +4 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +53 -74
- package/dist/session.js.map +1 -1
- package/dist/tools.d.ts +5 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +16 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +8 -156
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ const cs = new CodeSpar({ apiKey: "ak_..." });
|
|
|
18
18
|
const session = await cs.create("user_123", {
|
|
19
19
|
preset: "brazilian",
|
|
20
20
|
manageConnections: { waitForConnections: true },
|
|
21
|
+
// projectId: "prj_a1b2c3d4e5f6g7h8", // optional — overrides client default, falls back to org's default project
|
|
21
22
|
});
|
|
22
23
|
|
|
23
24
|
// Natural language
|
|
@@ -29,15 +30,20 @@ const charge = await session.execute("ZOOP_CREATE_CHARGE", {
|
|
|
29
30
|
payment_type: "pix",
|
|
30
31
|
});
|
|
31
32
|
|
|
32
|
-
// Complete Loop
|
|
33
|
-
|
|
33
|
+
// Complete Loop — tools, findTools, and loop are free functions
|
|
34
|
+
import { tools, findTools, loop } from "@codespar/sdk";
|
|
35
|
+
|
|
36
|
+
const available = await tools(session);
|
|
37
|
+
const payments = await findTools(session, "payment");
|
|
38
|
+
|
|
39
|
+
const result = await loop(session, {
|
|
34
40
|
steps: [
|
|
35
|
-
{
|
|
36
|
-
{
|
|
37
|
-
{
|
|
38
|
-
{
|
|
41
|
+
{ tool: "ZOOP_CREATE_CHARGE", params: { amount: 150, payment_type: "pix" } },
|
|
42
|
+
{ tool: "NUVEMFISCAL_EMITIR_NFE", params: (prev) => ({ chargeId: prev[0].data }) },
|
|
43
|
+
{ tool: "MELHORENVIO_GENERATE_LABEL", params: {} },
|
|
44
|
+
{ tool: "ZAPI_SEND_MESSAGE", params: { text: "Your order is on the way!" } },
|
|
39
45
|
],
|
|
40
|
-
onStepComplete: (step,
|
|
46
|
+
onStepComplete: (step, r) => console.log(`✓ ${step.tool}`),
|
|
41
47
|
retryPolicy: { maxRetries: 3, backoff: "exponential" },
|
|
42
48
|
});
|
|
43
49
|
```
|
|
@@ -51,6 +57,7 @@ const loop = await session.loop({
|
|
|
51
57
|
| `apiKey` | `string` | `CODESPAR_API_KEY` env | Your API key |
|
|
52
58
|
| `baseUrl` | `string` | `https://api.codespar.dev` | API base URL |
|
|
53
59
|
| `managed` | `boolean` | `true` | Enable managed billing/logging |
|
|
60
|
+
| `projectId` | `string` | — | Optional `prj_<16alphanum>`. Client-wide default project; sent as `x-codespar-project`. Falls back to the org's default project when omitted. |
|
|
54
61
|
|
|
55
62
|
### `cs.create(userId, config)`
|
|
56
63
|
|
|
@@ -59,21 +66,76 @@ const loop = await session.loop({
|
|
|
59
66
|
| `servers` | `string[]` | MCP servers to connect |
|
|
60
67
|
| `preset` | `string` | `"brazilian"`, `"mexican"`, `"argentinian"`, `"colombian"`, `"all"` |
|
|
61
68
|
| `manageConnections.waitForConnections` | `boolean` | Block until all servers connected |
|
|
69
|
+
| `projectId` | `string` | Optional `prj_<16alphanum>`. Overrides the client-level `projectId`; falls back to the org's default project when both are unset. |
|
|
62
70
|
|
|
63
|
-
### Session
|
|
71
|
+
### Session methods
|
|
64
72
|
|
|
65
73
|
| Method | Description |
|
|
66
74
|
|--------|-------------|
|
|
67
|
-
| `session.tools()` | Get all available tools |
|
|
68
|
-
| `session.findTools(intent)` | Search tools by description |
|
|
69
75
|
| `session.execute(tool, params)` | Execute a specific tool |
|
|
70
76
|
| `session.send(message)` | Send natural language message |
|
|
71
|
-
| `session.
|
|
77
|
+
| `session.sendStream(message)` | Stream events from a natural language message |
|
|
72
78
|
| `session.authorize(serverId)` | Start OAuth flow for a server |
|
|
79
|
+
| `session.proxyExecute(request)` | Proxy a raw HTTP call through the session |
|
|
73
80
|
| `session.connections()` | List connected servers |
|
|
74
|
-
| `session.mcp` | MCP transport URL and headers |
|
|
81
|
+
| `session.mcp` | MCP transport URL and headers (when using managed runtime) |
|
|
75
82
|
| `session.close()` | Close session |
|
|
76
83
|
|
|
84
|
+
### Free functions
|
|
85
|
+
|
|
86
|
+
`tools`, `findTools`, and `loop` are free functions that accept any `SessionBase` — they work with the managed runtime, Managed Agents sessions, and custom runtimes alike.
|
|
87
|
+
|
|
88
|
+
| Function | Description |
|
|
89
|
+
|----------|-------------|
|
|
90
|
+
| `tools(session)` | Get all available tools from the session |
|
|
91
|
+
| `findTools(session, query)` | Search tools by name or description |
|
|
92
|
+
| `loop(session, config)` | Run a Complete Loop workflow |
|
|
93
|
+
|
|
94
|
+
## Migrating from 0.2.x
|
|
95
|
+
|
|
96
|
+
`tools`, `findTools`, and `loop` moved from session instance methods to free functions in 0.3.0.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// 0.2.x
|
|
100
|
+
const tools = await session.tools();
|
|
101
|
+
const found = await session.findTools("payment");
|
|
102
|
+
const result = await session.loop({ steps: [...] });
|
|
103
|
+
|
|
104
|
+
// 0.3.0
|
|
105
|
+
import { tools, findTools, loop } from "@codespar/sdk";
|
|
106
|
+
const available = await tools(session);
|
|
107
|
+
const found = await findTools(session, "payment");
|
|
108
|
+
const result = await loop(session, { steps: [...] });
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Multi-environment (projects)
|
|
112
|
+
|
|
113
|
+
CodeSpar orgs have a second tenancy tier — **projects** — so dev / staging / prod each get isolated API keys, connected accounts, triggers, and sessions while billing stays at the org level. Every request accepts an optional `x-codespar-project: prj_<16 hex>` header; omit it and the backend resolves the org's default project (self-healed on first read).
|
|
114
|
+
|
|
115
|
+
Pin the whole client to one environment:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
const cs = new CodeSpar({
|
|
119
|
+
apiKey: process.env.CODESPAR_API_KEY!,
|
|
120
|
+
projectId: "prj_staging0123abcd", // every session this client spawns scopes here
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Or override per session:
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
const session = await cs.create("user_123", {
|
|
128
|
+
preset: "brazilian",
|
|
129
|
+
projectId: "prj_prod0123abcd", // overrides the client default
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Precedence: `sessionConfig.projectId` > `clientConfig.projectId` > backend's org default. Format is validated at construction via Zod (`/^prj_[A-Za-z0-9]{16}$/`) so typos fail fast. See the [Projects concept doc](https://docs.codespar.dev/concepts/projects) for the full tenancy model.
|
|
134
|
+
|
|
135
|
+
## Need more?
|
|
136
|
+
|
|
137
|
+
For production workloads with governance, audit trails, policy engines, self-hosted runtimes, and enterprise commerce primitives (mandates, escrow, payment routing), see **[CodeSpar Enterprise](https://codespar.dev/enterprise)**.
|
|
138
|
+
|
|
77
139
|
## License
|
|
78
140
|
|
|
79
141
|
MIT — [codespar.dev](https://codespar.dev)
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @codespar/sdk basic tests.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* replaced for 0.2.0. Comprehensive integration tests (mocking fetch
|
|
6
|
-
* against the api.codespar.dev contract) are tracked for a follow-up.
|
|
4
|
+
* Unit tests for the CodeSpar client and session configuration.
|
|
7
5
|
*/
|
|
8
6
|
export {};
|
|
9
7
|
//# sourceMappingURL=codespar.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codespar.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codespar.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codespar.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codespar.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @codespar/sdk basic tests.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* replaced for 0.2.0. Comprehensive integration tests (mocking fetch
|
|
6
|
-
* against the api.codespar.dev contract) are tracked for a follow-up.
|
|
4
|
+
* Unit tests for the CodeSpar client and session configuration.
|
|
7
5
|
*/
|
|
8
6
|
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
9
7
|
import { CodeSpar } from "../index.js";
|
|
@@ -71,6 +69,14 @@ describe("SessionConfigSchema", () => {
|
|
|
71
69
|
it("accepts metadata", () => {
|
|
72
70
|
expect(() => SessionConfigSchema.parse({ metadata: { source: "sandbox" } })).not.toThrow();
|
|
73
71
|
});
|
|
72
|
+
it("accepts a valid projectId", () => {
|
|
73
|
+
expect(() => SessionConfigSchema.parse({ projectId: "prj_abc123DEF456ghi7" })).not.toThrow();
|
|
74
|
+
});
|
|
75
|
+
it("rejects an invalid projectId format", () => {
|
|
76
|
+
expect(() => SessionConfigSchema.parse({ projectId: "not-a-project-id" })).toThrow();
|
|
77
|
+
expect(() => SessionConfigSchema.parse({ projectId: "prj_tooshort" })).toThrow();
|
|
78
|
+
expect(() => SessionConfigSchema.parse({ projectId: "prj_hasdash-abcde12" })).toThrow();
|
|
79
|
+
});
|
|
74
80
|
});
|
|
75
81
|
describe("CodeSpar.create wires fetch correctly", () => {
|
|
76
82
|
const originalFetch = globalThis.fetch;
|
|
@@ -99,8 +105,6 @@ describe("CodeSpar.create wires fetch correctly", () => {
|
|
|
99
105
|
});
|
|
100
106
|
const session = await cs.create("user_42", { servers: ["zoop"] });
|
|
101
107
|
expect(session.id).toBe("ses_test123");
|
|
102
|
-
expect(session.userId).toBe("user_42");
|
|
103
|
-
expect(session.servers).toEqual(["zoop"]);
|
|
104
108
|
// Assert the request body uses snake_case keys (not userId)
|
|
105
109
|
const callArgs = fetchMock.mock.calls[0];
|
|
106
110
|
expect(callArgs[0]).toBe("https://api.example.com/v1/sessions");
|
|
@@ -111,6 +115,160 @@ describe("CodeSpar.create wires fetch correctly", () => {
|
|
|
111
115
|
expect(body.servers).toEqual(["zoop"]);
|
|
112
116
|
expect(body.user_id).toBe("user_42");
|
|
113
117
|
});
|
|
118
|
+
it("proxyExecute POSTs to /v1/sessions/:id/proxy_execute", async () => {
|
|
119
|
+
const sessionCreate = {
|
|
120
|
+
ok: true,
|
|
121
|
+
status: 201,
|
|
122
|
+
text: async () => "",
|
|
123
|
+
json: async () => ({
|
|
124
|
+
id: "ses_px",
|
|
125
|
+
org_id: "org_test",
|
|
126
|
+
user_id: "u1",
|
|
127
|
+
servers: ["stripe"],
|
|
128
|
+
status: "active",
|
|
129
|
+
created_at: new Date().toISOString(),
|
|
130
|
+
closed_at: null,
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
const proxyResponse = {
|
|
134
|
+
ok: true,
|
|
135
|
+
status: 200,
|
|
136
|
+
text: async () => "",
|
|
137
|
+
json: async () => ({
|
|
138
|
+
status: 201,
|
|
139
|
+
data: { id: "ch_abc" },
|
|
140
|
+
headers: { "content-type": "application/json" },
|
|
141
|
+
duration: 142,
|
|
142
|
+
proxy_call_id: "px_1",
|
|
143
|
+
}),
|
|
144
|
+
};
|
|
145
|
+
const fetchMock = vi
|
|
146
|
+
.fn()
|
|
147
|
+
.mockResolvedValueOnce(sessionCreate)
|
|
148
|
+
.mockResolvedValueOnce(proxyResponse);
|
|
149
|
+
globalThis.fetch = fetchMock;
|
|
150
|
+
const cs = new CodeSpar({ apiKey: "csk_live_test", baseUrl: "https://api.example.com" });
|
|
151
|
+
const session = await cs.create("u1", { servers: ["stripe"] });
|
|
152
|
+
const result = await session.proxyExecute({
|
|
153
|
+
server: "stripe",
|
|
154
|
+
endpoint: "/v1/charges",
|
|
155
|
+
method: "POST",
|
|
156
|
+
body: { amount: 1000, currency: "usd" },
|
|
157
|
+
});
|
|
158
|
+
expect(result.status).toBe(201);
|
|
159
|
+
expect(result.data).toEqual({ id: "ch_abc" });
|
|
160
|
+
expect(result.proxy_call_id).toBe("px_1");
|
|
161
|
+
const [url, init] = fetchMock.mock.calls[1];
|
|
162
|
+
expect(url).toBe("https://api.example.com/v1/sessions/ses_px/proxy_execute");
|
|
163
|
+
const req = init;
|
|
164
|
+
expect(req.method).toBe("POST");
|
|
165
|
+
const sent = JSON.parse(req.body);
|
|
166
|
+
expect(sent.server).toBe("stripe");
|
|
167
|
+
expect(sent.endpoint).toBe("/v1/charges");
|
|
168
|
+
expect(sent.method).toBe("POST");
|
|
169
|
+
expect(sent.body).toEqual({ amount: 1000, currency: "usd" });
|
|
170
|
+
});
|
|
171
|
+
it("proxyExecute throws on non-2xx backend response", async () => {
|
|
172
|
+
const fetchMock = vi
|
|
173
|
+
.fn()
|
|
174
|
+
.mockResolvedValueOnce({
|
|
175
|
+
ok: true,
|
|
176
|
+
status: 201,
|
|
177
|
+
text: async () => "",
|
|
178
|
+
json: async () => ({
|
|
179
|
+
id: "ses_err",
|
|
180
|
+
org_id: "o",
|
|
181
|
+
user_id: "u",
|
|
182
|
+
servers: [],
|
|
183
|
+
status: "active",
|
|
184
|
+
created_at: new Date().toISOString(),
|
|
185
|
+
closed_at: null,
|
|
186
|
+
}),
|
|
187
|
+
})
|
|
188
|
+
.mockResolvedValueOnce({
|
|
189
|
+
ok: false,
|
|
190
|
+
status: 404,
|
|
191
|
+
text: async () => '{"message":"server not connected"}',
|
|
192
|
+
});
|
|
193
|
+
globalThis.fetch = fetchMock;
|
|
194
|
+
const cs = new CodeSpar({ apiKey: "csk_live_test", baseUrl: "https://api.example.com" });
|
|
195
|
+
const session = await cs.create("u");
|
|
196
|
+
await expect(session.proxyExecute({ server: "stripe", endpoint: "/x", method: "GET" })).rejects.toThrow(/proxyExecute failed: 404/);
|
|
197
|
+
});
|
|
198
|
+
it("omits x-codespar-project header when no projectId is set", async () => {
|
|
199
|
+
const fetchMock = vi.fn().mockResolvedValue({
|
|
200
|
+
ok: true,
|
|
201
|
+
status: 201,
|
|
202
|
+
text: async () => "",
|
|
203
|
+
json: async () => ({
|
|
204
|
+
id: "ses_noproj",
|
|
205
|
+
org_id: "org_test",
|
|
206
|
+
user_id: "u1",
|
|
207
|
+
servers: [],
|
|
208
|
+
status: "active",
|
|
209
|
+
created_at: new Date().toISOString(),
|
|
210
|
+
closed_at: null,
|
|
211
|
+
}),
|
|
212
|
+
});
|
|
213
|
+
globalThis.fetch = fetchMock;
|
|
214
|
+
const cs = new CodeSpar({ apiKey: "csk_live_test", baseUrl: "https://api.example.com" });
|
|
215
|
+
const session = await cs.create("u1");
|
|
216
|
+
const init = fetchMock.mock.calls[0][1];
|
|
217
|
+
expect(init.headers["x-codespar-project"]).toBeUndefined();
|
|
218
|
+
expect(session.mcp?.headers["x-codespar-project"]).toBeUndefined();
|
|
219
|
+
});
|
|
220
|
+
it("sends x-codespar-project header when client-level projectId is set", async () => {
|
|
221
|
+
const fetchMock = vi.fn().mockResolvedValue({
|
|
222
|
+
ok: true,
|
|
223
|
+
status: 201,
|
|
224
|
+
text: async () => "",
|
|
225
|
+
json: async () => ({
|
|
226
|
+
id: "ses_clientproj",
|
|
227
|
+
org_id: "org_test",
|
|
228
|
+
user_id: "u1",
|
|
229
|
+
servers: [],
|
|
230
|
+
status: "active",
|
|
231
|
+
created_at: new Date().toISOString(),
|
|
232
|
+
closed_at: null,
|
|
233
|
+
}),
|
|
234
|
+
});
|
|
235
|
+
globalThis.fetch = fetchMock;
|
|
236
|
+
const cs = new CodeSpar({
|
|
237
|
+
apiKey: "csk_live_test",
|
|
238
|
+
baseUrl: "https://api.example.com",
|
|
239
|
+
projectId: "prj_clientDefault001",
|
|
240
|
+
});
|
|
241
|
+
const session = await cs.create("u1");
|
|
242
|
+
const init = fetchMock.mock.calls[0][1];
|
|
243
|
+
expect(init.headers["x-codespar-project"]).toBe("prj_clientDefault001");
|
|
244
|
+
expect(session.mcp?.headers["x-codespar-project"]).toBe("prj_clientDefault001");
|
|
245
|
+
});
|
|
246
|
+
it("session-level projectId overrides client-level projectId", async () => {
|
|
247
|
+
const fetchMock = vi.fn().mockResolvedValue({
|
|
248
|
+
ok: true,
|
|
249
|
+
status: 201,
|
|
250
|
+
text: async () => "",
|
|
251
|
+
json: async () => ({
|
|
252
|
+
id: "ses_override",
|
|
253
|
+
org_id: "org_test",
|
|
254
|
+
user_id: "u1",
|
|
255
|
+
servers: [],
|
|
256
|
+
status: "active",
|
|
257
|
+
created_at: new Date().toISOString(),
|
|
258
|
+
closed_at: null,
|
|
259
|
+
}),
|
|
260
|
+
});
|
|
261
|
+
globalThis.fetch = fetchMock;
|
|
262
|
+
const cs = new CodeSpar({
|
|
263
|
+
apiKey: "csk_live_test",
|
|
264
|
+
baseUrl: "https://api.example.com",
|
|
265
|
+
projectId: "prj_clientDefault001",
|
|
266
|
+
});
|
|
267
|
+
const session = await cs.create("u1", { projectId: "prj_sessionOverride2" });
|
|
268
|
+
const init = fetchMock.mock.calls[0][1];
|
|
269
|
+
expect(init.headers["x-codespar-project"]).toBe("prj_sessionOverride2");
|
|
270
|
+
expect(session.mcp?.headers["x-codespar-project"]).toBe("prj_sessionOverride2");
|
|
271
|
+
});
|
|
114
272
|
it("populates session.mcp as a placeholder", async () => {
|
|
115
273
|
globalThis.fetch = vi.fn().mockResolvedValue({
|
|
116
274
|
ok: true,
|
|
@@ -128,8 +286,8 @@ describe("CodeSpar.create wires fetch correctly", () => {
|
|
|
128
286
|
});
|
|
129
287
|
const cs = new CodeSpar({ apiKey: "csk_live_test", baseUrl: "https://api.example.com" });
|
|
130
288
|
const session = await cs.create("user_1");
|
|
131
|
-
expect(session.mcp
|
|
132
|
-
expect(session.mcp
|
|
289
|
+
expect(session.mcp?.url).toBe("https://api.example.com/v1/sessions/ses_mcp/mcp");
|
|
290
|
+
expect(session.mcp?.headers.Authorization).toBe("Bearer csk_live_test");
|
|
133
291
|
});
|
|
134
292
|
});
|
|
135
293
|
//# sourceMappingURL=codespar.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codespar.test.js","sourceRoot":"","sources":["../../src/__tests__/codespar.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codespar.test.js","sourceRoot":"","sources":["../../src/__tests__/codespar.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { tools, findTools } from "../tools.js";
|
|
3
|
+
function makeSession(overrides = {}) {
|
|
4
|
+
return {
|
|
5
|
+
id: "ses_1",
|
|
6
|
+
status: "active",
|
|
7
|
+
async execute() { return { success: true, data: null, error: null, duration: 0, server: "", tool: "" }; },
|
|
8
|
+
async send() { return { message: "", tool_calls: [], iterations: 0 }; },
|
|
9
|
+
async *sendStream() { },
|
|
10
|
+
async connections() { return []; },
|
|
11
|
+
async close() { },
|
|
12
|
+
...overrides,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const fakeTool = (name, description) => ({
|
|
16
|
+
name,
|
|
17
|
+
description,
|
|
18
|
+
input_schema: {},
|
|
19
|
+
server: "test",
|
|
20
|
+
});
|
|
21
|
+
describe("tools()", () => {
|
|
22
|
+
it("returns [] when session has no internal tools() method", async () => {
|
|
23
|
+
const session = makeSession();
|
|
24
|
+
expect(await tools(session)).toEqual([]);
|
|
25
|
+
});
|
|
26
|
+
it("delegates to session.tools() when present", async () => {
|
|
27
|
+
const list = [fakeTool("PAY", "process payment")];
|
|
28
|
+
const session = makeSession({ tools: async () => list });
|
|
29
|
+
expect(await tools(session)).toBe(list);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("findTools()", () => {
|
|
33
|
+
const session = makeSession({
|
|
34
|
+
tools: async () => [
|
|
35
|
+
fakeTool("PIX_CHARGE", "create a pix charge"),
|
|
36
|
+
fakeTool("NFE_EMIT", "emit a nota fiscal"),
|
|
37
|
+
fakeTool("SHIP_LABEL", "generate shipping label"),
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
it("matches by tool name (case-insensitive)", async () => {
|
|
41
|
+
const result = await findTools(session, "pix");
|
|
42
|
+
expect(result.map((t) => t.name)).toEqual(["PIX_CHARGE"]);
|
|
43
|
+
});
|
|
44
|
+
it("matches by description (case-insensitive)", async () => {
|
|
45
|
+
const result = await findTools(session, "nota fiscal");
|
|
46
|
+
expect(result.map((t) => t.name)).toEqual(["NFE_EMIT"]);
|
|
47
|
+
});
|
|
48
|
+
it("returns multiple matches", async () => {
|
|
49
|
+
const result = await findTools(session, "label");
|
|
50
|
+
expect(result).toHaveLength(1);
|
|
51
|
+
expect(result[0].name).toBe("SHIP_LABEL");
|
|
52
|
+
});
|
|
53
|
+
it("returns [] when no tools match", async () => {
|
|
54
|
+
expect(await findTools(session, "stripe")).toEqual([]);
|
|
55
|
+
});
|
|
56
|
+
it("returns all tools when session has no tools() method", async () => {
|
|
57
|
+
expect(await findTools(makeSession(), "pix")).toEqual([]);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* @codespar/sdk — Commerce SDK for AI agents
|
|
3
3
|
*
|
|
4
4
|
* Sessions, managed auth, Complete Loop orchestration for Latin American
|
|
5
|
-
* commercial APIs.
|
|
6
|
-
* codespar/codespar-enterprise (packages/api) for the wire contract.
|
|
5
|
+
* commercial APIs.
|
|
7
6
|
*
|
|
8
7
|
* @example
|
|
9
8
|
* ```ts
|
|
@@ -24,9 +23,13 @@
|
|
|
24
23
|
*
|
|
25
24
|
* @packageDocumentation
|
|
26
25
|
*/
|
|
27
|
-
export
|
|
26
|
+
export * from "@codespar/types";
|
|
27
|
+
export type { CodeSparConfig, SessionConfig, Tool, LoopConfig, LoopStep, LoopResult, } from "./types.js";
|
|
28
28
|
export { SessionConfigSchema } from "./types.js";
|
|
29
|
-
|
|
29
|
+
export { loop } from "./loop.js";
|
|
30
|
+
export { tools, findTools } from "./tools.js";
|
|
31
|
+
import type { CodeSparConfig, SessionConfig } from "./types.js";
|
|
32
|
+
import type { Session } from "@codespar/types";
|
|
30
33
|
export declare class CodeSpar {
|
|
31
34
|
private readonly config;
|
|
32
35
|
constructor(config?: CodeSparConfig);
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAEhC,YAAY,EACV,cAAc,EACd,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,GAAE,cAAmB;IAevC;;;;;OAKG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;CAS3E;AAED,eAAe,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* @codespar/sdk — Commerce SDK for AI agents
|
|
3
3
|
*
|
|
4
4
|
* Sessions, managed auth, Complete Loop orchestration for Latin American
|
|
5
|
-
* commercial APIs.
|
|
6
|
-
* codespar/codespar-enterprise (packages/api) for the wire contract.
|
|
5
|
+
* commercial APIs.
|
|
7
6
|
*
|
|
8
7
|
* @example
|
|
9
8
|
* ```ts
|
|
@@ -24,7 +23,10 @@
|
|
|
24
23
|
*
|
|
25
24
|
* @packageDocumentation
|
|
26
25
|
*/
|
|
26
|
+
export * from "@codespar/types";
|
|
27
27
|
export { SessionConfigSchema } from "./types.js";
|
|
28
|
+
export { loop } from "./loop.js";
|
|
29
|
+
export { tools, findTools } from "./tools.js";
|
|
28
30
|
import { SessionConfigSchema } from "./types.js";
|
|
29
31
|
import { createSession } from "./session.js";
|
|
30
32
|
const DEFAULT_BASE_URL = "https://api.codespar.dev";
|
|
@@ -34,6 +36,7 @@ export class CodeSpar {
|
|
|
34
36
|
this.config = {
|
|
35
37
|
apiKey: config.apiKey || process.env.CODESPAR_API_KEY || "",
|
|
36
38
|
baseUrl: config.baseUrl || process.env.CODESPAR_BASE_URL || DEFAULT_BASE_URL,
|
|
39
|
+
projectId: config.projectId || "",
|
|
37
40
|
};
|
|
38
41
|
if (!this.config.apiKey) {
|
|
39
42
|
throw new Error("CodeSpar API key is required. Pass { apiKey: '...' } or set CODESPAR_API_KEY env var.\n" +
|
|
@@ -48,9 +51,11 @@ export class CodeSpar {
|
|
|
48
51
|
*/
|
|
49
52
|
async create(userId, config = {}) {
|
|
50
53
|
SessionConfigSchema.parse(config);
|
|
54
|
+
const projectId = config.projectId ?? this.config.projectId ?? undefined;
|
|
51
55
|
return createSession(userId, config, {
|
|
52
56
|
baseUrl: this.config.baseUrl,
|
|
53
57
|
apiKey: this.config.apiKey,
|
|
58
|
+
projectId: projectId || undefined,
|
|
54
59
|
});
|
|
55
60
|
}
|
|
56
61
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAWhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,MAAM,OAAO,QAAQ;IACF,MAAM,CAA2B;IAElD,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YAC3D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB;YAC5E,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,yFAAyF;gBACvF,sEAAsE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAwB,EAAE;QACrD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;QACzE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,SAAS,IAAI,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,QAAQ,CAAC"}
|
package/dist/loop.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAmExF"}
|
package/dist/loop.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export async function loop(session, config) {
|
|
2
|
+
const start = Date.now();
|
|
3
|
+
const results = [];
|
|
4
|
+
const maxRetries = config.retryPolicy?.maxRetries ?? 0;
|
|
5
|
+
const abortOnError = config.abortOnError ?? true;
|
|
6
|
+
for (let i = 0; i < config.steps.length; i++) {
|
|
7
|
+
const step = config.steps[i];
|
|
8
|
+
if (step.when && !step.when(results))
|
|
9
|
+
continue;
|
|
10
|
+
const params = typeof step.params === "function" ? step.params(results) : step.params;
|
|
11
|
+
let lastError = null;
|
|
12
|
+
let result = null;
|
|
13
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
14
|
+
try {
|
|
15
|
+
result = await session.execute(step.tool, params);
|
|
16
|
+
if (result.success) {
|
|
17
|
+
lastError = null;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
lastError = new Error(result.error || "Tool execution failed");
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
lastError = err instanceof Error ? err : new Error(String(err));
|
|
24
|
+
}
|
|
25
|
+
if (attempt < maxRetries) {
|
|
26
|
+
const baseDelay = config.retryPolicy?.baseDelay ?? 1000;
|
|
27
|
+
const delay = config.retryPolicy?.backoff === "exponential"
|
|
28
|
+
? baseDelay * Math.pow(2, attempt)
|
|
29
|
+
: baseDelay * (attempt + 1);
|
|
30
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (lastError || !result?.success) {
|
|
34
|
+
if (config.onStepError) {
|
|
35
|
+
config.onStepError(step, lastError || new Error("Unknown error"), i);
|
|
36
|
+
}
|
|
37
|
+
if (result)
|
|
38
|
+
results.push(result);
|
|
39
|
+
if (abortOnError) {
|
|
40
|
+
return {
|
|
41
|
+
success: false,
|
|
42
|
+
results,
|
|
43
|
+
duration: Date.now() - start,
|
|
44
|
+
completedSteps: results.filter((r) => r.success).length,
|
|
45
|
+
totalSteps: config.steps.length,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
results.push(result);
|
|
51
|
+
if (config.onStepComplete) {
|
|
52
|
+
config.onStepComplete(step, result, i);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
success: results.every((r) => r.success),
|
|
57
|
+
results,
|
|
58
|
+
duration: Date.now() - start,
|
|
59
|
+
completedSteps: results.filter((r) => r.success).length,
|
|
60
|
+
totalSteps: config.steps.length,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=loop.js.map
|
package/dist/loop.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Session implementation
|
|
3
|
-
*
|
|
4
|
-
* The shape of every request and response in this file matches what the
|
|
5
|
-
* backend (codespar-enterprise/packages/api) actually exposes. Do not edit
|
|
6
|
-
* one without the other.
|
|
2
|
+
* Session implementation for the CodeSpar managed runtime.
|
|
7
3
|
*/
|
|
8
|
-
import type {
|
|
4
|
+
import type { SessionConfig } from "./types.js";
|
|
5
|
+
import type { Session } from "@codespar/types";
|
|
9
6
|
interface SessionDeps {
|
|
10
7
|
baseUrl: string;
|
|
11
8
|
apiKey: string;
|
|
9
|
+
projectId?: string;
|
|
12
10
|
}
|
|
13
11
|
export declare function createSession(userId: string, config: SessionConfig, deps: SessionDeps): Promise<Session>;
|
|
14
12
|
export {};
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,OAAO,EAUR,MAAM,iBAAiB,CAAC;AAEzB,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CA0LlB"}
|
package/dist/session.js
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Session implementation
|
|
3
|
-
*
|
|
4
|
-
* The shape of every request and response in this file matches what the
|
|
5
|
-
* backend (codespar-enterprise/packages/api) actually exposes. Do not edit
|
|
6
|
-
* one without the other.
|
|
2
|
+
* Session implementation for the CodeSpar managed runtime.
|
|
7
3
|
*/
|
|
4
|
+
// The concrete session object satisfies the Session interface and carries extra
|
|
5
|
+
// internal methods (tools, findTools) that the free functions in tools.ts access
|
|
6
|
+
// via duck-typing. They are intentionally not declared on the Session interface.
|
|
8
7
|
export async function createSession(userId, config, deps) {
|
|
9
8
|
const { baseUrl, apiKey } = deps;
|
|
9
|
+
const projectId = config.projectId ?? deps.projectId;
|
|
10
10
|
const headers = {
|
|
11
11
|
"Content-Type": "application/json",
|
|
12
12
|
Authorization: `Bearer ${apiKey}`,
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
14
|
+
if (projectId)
|
|
15
|
+
headers["x-codespar-project"] = projectId;
|
|
16
|
+
const req = {
|
|
17
|
+
servers: config.servers ?? presetToServers(config.preset),
|
|
18
|
+
metadata: config.metadata,
|
|
19
|
+
projectId: config.projectId ?? deps.projectId,
|
|
20
|
+
};
|
|
17
21
|
const res = await fetch(`${baseUrl}/v1/sessions`, {
|
|
18
22
|
method: "POST",
|
|
19
23
|
headers,
|
|
20
|
-
body: JSON.stringify({ servers, user_id: userId }),
|
|
24
|
+
body: JSON.stringify({ servers: req.servers, user_id: userId }),
|
|
21
25
|
});
|
|
22
26
|
if (!res.ok) {
|
|
23
27
|
const body = await res.text();
|
|
@@ -36,7 +40,10 @@ export async function createSession(userId, config, deps) {
|
|
|
36
40
|
// Kept here so @codespar/mcp config helpers work today.
|
|
37
41
|
mcp: {
|
|
38
42
|
url: `${baseUrl}/v1/sessions/${data.id}/mcp`,
|
|
39
|
-
headers: {
|
|
43
|
+
headers: {
|
|
44
|
+
Authorization: `Bearer ${apiKey}`,
|
|
45
|
+
...(projectId ? { "x-codespar-project": projectId } : {}),
|
|
46
|
+
},
|
|
40
47
|
},
|
|
41
48
|
async tools() {
|
|
42
49
|
if (cachedTools)
|
|
@@ -71,67 +78,24 @@ export async function createSession(userId, config, deps) {
|
|
|
71
78
|
const result = (await r.json());
|
|
72
79
|
return result;
|
|
73
80
|
},
|
|
74
|
-
async
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
lastError = null;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
lastError = new Error(result.error || "Tool execution failed");
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
lastError = err instanceof Error ? err : new Error(String(err));
|
|
97
|
-
}
|
|
98
|
-
if (attempt < maxRetries) {
|
|
99
|
-
const baseDelay = loopConfig.retryPolicy?.baseDelay ?? 1000;
|
|
100
|
-
const delay = loopConfig.retryPolicy?.backoff === "exponential"
|
|
101
|
-
? baseDelay * Math.pow(2, attempt)
|
|
102
|
-
: baseDelay * (attempt + 1);
|
|
103
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
if (lastError || !result?.success) {
|
|
107
|
-
if (loopConfig.onStepError) {
|
|
108
|
-
loopConfig.onStepError(step, lastError || new Error("Unknown error"), i);
|
|
109
|
-
}
|
|
110
|
-
if (result)
|
|
111
|
-
results.push(result);
|
|
112
|
-
if (abortOnError) {
|
|
113
|
-
return {
|
|
114
|
-
success: false,
|
|
115
|
-
results,
|
|
116
|
-
duration: Date.now() - start,
|
|
117
|
-
completedSteps: results.filter((r) => r.success).length,
|
|
118
|
-
totalSteps: loopConfig.steps.length,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
results.push(result);
|
|
124
|
-
if (loopConfig.onStepComplete) {
|
|
125
|
-
loopConfig.onStepComplete(step, result, i);
|
|
126
|
-
}
|
|
81
|
+
async proxyExecute(request) {
|
|
82
|
+
const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/proxy_execute`, {
|
|
83
|
+
method: "POST",
|
|
84
|
+
headers,
|
|
85
|
+
body: JSON.stringify({
|
|
86
|
+
server: request.server,
|
|
87
|
+
endpoint: request.endpoint,
|
|
88
|
+
method: request.method,
|
|
89
|
+
body: request.body,
|
|
90
|
+
params: request.params,
|
|
91
|
+
headers: request.headers,
|
|
92
|
+
}),
|
|
93
|
+
});
|
|
94
|
+
if (!r.ok) {
|
|
95
|
+
const body = await r.text();
|
|
96
|
+
throw new Error(`proxyExecute failed: ${r.status} ${body}`);
|
|
127
97
|
}
|
|
128
|
-
return
|
|
129
|
-
success: results.every((r) => r.success),
|
|
130
|
-
results,
|
|
131
|
-
duration: Date.now() - start,
|
|
132
|
-
completedSteps: results.filter((r) => r.success).length,
|
|
133
|
-
totalSteps: loopConfig.steps.length,
|
|
134
|
-
};
|
|
98
|
+
return (await r.json());
|
|
135
99
|
},
|
|
136
100
|
async send(message) {
|
|
137
101
|
const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/send`, {
|
|
@@ -157,11 +121,26 @@ export async function createSession(userId, config, deps) {
|
|
|
157
121
|
}
|
|
158
122
|
yield* parseSseStream(r.body);
|
|
159
123
|
},
|
|
160
|
-
async authorize(
|
|
124
|
+
async authorize(serverId, config) {
|
|
125
|
+
const r = await fetch(`${baseUrl}/v1/connect/start`, {
|
|
126
|
+
method: "POST",
|
|
127
|
+
headers,
|
|
128
|
+
body: JSON.stringify({
|
|
129
|
+
server_id: serverId,
|
|
130
|
+
user_id: data.user_id,
|
|
131
|
+
redirect_uri: config.redirectUri,
|
|
132
|
+
scopes: config.scopes,
|
|
133
|
+
}),
|
|
134
|
+
});
|
|
135
|
+
if (!r.ok) {
|
|
136
|
+
const body = await r.text();
|
|
137
|
+
throw new Error(`authorize failed: ${r.status} ${body}`);
|
|
138
|
+
}
|
|
139
|
+
const payload = (await r.json());
|
|
161
140
|
return {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
141
|
+
linkToken: payload.link_token,
|
|
142
|
+
authorizeUrl: payload.authorize_url,
|
|
143
|
+
expiresAt: payload.expires_at,
|
|
165
144
|
};
|
|
166
145
|
},
|
|
167
146
|
async connections() {
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SessionBase } from "@codespar/types";
|
|
2
|
+
import type { Tool } from "./types.js";
|
|
3
|
+
export declare function tools(session: SessionBase): Promise<Tool[]>;
|
|
4
|
+
export declare function findTools(session: SessionBase, query: string): Promise<Tool[]>;
|
|
5
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMvC,wBAAsB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAIjE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAOpF"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// The SDK's concrete session exposes an internal tools() implementation that
|
|
2
|
+
// caches tool metadata fetched alongside connections. This free function
|
|
3
|
+
// delegates to that implementation via structural duck-typing, making it
|
|
4
|
+
// callable with any SessionBase that carries a compatible tools() method.
|
|
5
|
+
export async function tools(session) {
|
|
6
|
+
const s = session;
|
|
7
|
+
if (typeof s.tools === "function")
|
|
8
|
+
return s.tools();
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
export async function findTools(session, query) {
|
|
12
|
+
const all = await tools(session);
|
|
13
|
+
const q = query.toLowerCase();
|
|
14
|
+
return all.filter((t) => t.name.toLowerCase().includes(q) || t.description.toLowerCase().includes(q));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA,6EAA6E;AAC7E,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAoB;IAC9C,MAAM,CAAC,GAAG,OAAsD,CAAC;IACjE,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACpD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAoB,EAAE,KAAa;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,GAAG,CAAC,MAAM,CACf,CAAC,CAAO,EAAE,EAAE,CACV,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC9E,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import type { ToolResult } from "@codespar/types";
|
|
2
3
|
export interface CodeSparConfig {
|
|
3
4
|
/** API key for managed mode. Obtain from dashboard.codespar.dev */
|
|
4
5
|
apiKey?: string;
|
|
5
6
|
/** Base URL for CodeSpar API. Defaults to https://api.codespar.dev */
|
|
6
7
|
baseUrl?: string;
|
|
8
|
+
/** Optional project scope. Defaults to the org's default project when omitted. */
|
|
9
|
+
projectId?: string;
|
|
7
10
|
}
|
|
8
11
|
export interface SessionConfig {
|
|
9
12
|
/** MCP servers to connect, by id (e.g. "zoop", "nuvem-fiscal") */
|
|
@@ -19,70 +22,8 @@ export interface SessionConfig {
|
|
|
19
22
|
};
|
|
20
23
|
/** Metadata attached to every tool call in this session */
|
|
21
24
|
metadata?: Record<string, string>;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
/** Unique session ID (e.g. "ses_HZb4d5yxIAxLawb4") */
|
|
25
|
-
id: string;
|
|
26
|
-
/** User ID that owns this session */
|
|
27
|
-
userId: string;
|
|
28
|
-
/** IDs of the servers attached to this session */
|
|
29
|
-
servers: string[];
|
|
30
|
-
/** Session creation timestamp */
|
|
31
|
-
createdAt: Date;
|
|
32
|
-
/** Session status */
|
|
33
|
-
status: "active" | "closed" | "error";
|
|
34
|
-
/**
|
|
35
|
-
* MCP transport endpoint for this session. Pass to @codespar/mcp helpers
|
|
36
|
-
* (getClaudeDesktopConfig, getCursorConfig) to generate config files for
|
|
37
|
-
* MCP-compatible clients.
|
|
38
|
-
*
|
|
39
|
-
* Note: the runtime MCP endpoint is not yet implemented in the backend
|
|
40
|
-
* (planned for Marco 3). The URL is provided so config generators can
|
|
41
|
-
* produce the correct values today; runtime connection will work once
|
|
42
|
-
* the backend MCP transport ships.
|
|
43
|
-
*/
|
|
44
|
-
mcp: {
|
|
45
|
-
url: string;
|
|
46
|
-
headers: Record<string, string>;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Get tools available in this session. Loads from the backend on first
|
|
50
|
-
* call and caches. Call connections() to refresh.
|
|
51
|
-
*/
|
|
52
|
-
tools(): Promise<Tool[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Find tools by intent description. Loads tools first if not cached.
|
|
55
|
-
*/
|
|
56
|
-
findTools(intent: string): Promise<Tool[]>;
|
|
57
|
-
/**
|
|
58
|
-
* Execute a specific tool by name. Tool calls are logged on the
|
|
59
|
-
* backend with input + output for billing and audit.
|
|
60
|
-
*/
|
|
61
|
-
execute(toolName: string, params: Record<string, unknown>): Promise<ToolResult>;
|
|
62
|
-
/** Run a Complete Loop workflow. */
|
|
63
|
-
loop(config: LoopConfig): Promise<LoopResult>;
|
|
64
|
-
/**
|
|
65
|
-
* Send a natural-language message. Drives a Claude tool-use loop on
|
|
66
|
-
* the backend and returns the full transcript when done.
|
|
67
|
-
*/
|
|
68
|
-
send(message: string): Promise<SendResult>;
|
|
69
|
-
/**
|
|
70
|
-
* Stream a natural-language message. Yields events as the agent
|
|
71
|
-
* runs (assistant text, tool_use, tool_result, done).
|
|
72
|
-
*/
|
|
73
|
-
sendStream(message: string): AsyncIterable<StreamEvent>;
|
|
74
|
-
/**
|
|
75
|
-
* Initiate OAuth flow for a server.
|
|
76
|
-
* @deprecated Not implemented in 0.2.0 — coming in Marco 3.
|
|
77
|
-
*/
|
|
78
|
-
authorize(serverId: string, config?: AuthConfig): Promise<AuthResult>;
|
|
79
|
-
/**
|
|
80
|
-
* List server connections + available tools. Refreshes the internal
|
|
81
|
-
* tools cache as a side effect.
|
|
82
|
-
*/
|
|
83
|
-
connections(): Promise<ServerConnection[]>;
|
|
84
|
-
/** Close session and release resources. */
|
|
85
|
-
close(): Promise<void>;
|
|
25
|
+
/** Optional project scope. Defaults to the org's default project when omitted. */
|
|
26
|
+
projectId?: string;
|
|
86
27
|
}
|
|
87
28
|
export interface Tool {
|
|
88
29
|
/** Tool name (e.g. "codespar_pay") */
|
|
@@ -94,24 +35,6 @@ export interface Tool {
|
|
|
94
35
|
/** Server that provides this tool (for routing/billing). May be "codespar" for meta-tools. */
|
|
95
36
|
server: string;
|
|
96
37
|
}
|
|
97
|
-
export interface ToolResult {
|
|
98
|
-
/** Whether the call succeeded */
|
|
99
|
-
success: boolean;
|
|
100
|
-
/** Tool output (varies by tool) */
|
|
101
|
-
data: unknown;
|
|
102
|
-
/** Error message if failed */
|
|
103
|
-
error: string | null;
|
|
104
|
-
/** Execution time in ms */
|
|
105
|
-
duration: number;
|
|
106
|
-
/** Server that executed the tool */
|
|
107
|
-
server: string;
|
|
108
|
-
/** Tool that was executed */
|
|
109
|
-
tool: string;
|
|
110
|
-
/** Backend tool-call id for cross-referencing logs */
|
|
111
|
-
tool_call_id?: string;
|
|
112
|
-
/** Timestamp the call was logged */
|
|
113
|
-
called_at?: string;
|
|
114
|
-
}
|
|
115
38
|
export interface LoopStep {
|
|
116
39
|
/** Tool name to execute */
|
|
117
40
|
tool: string;
|
|
@@ -147,80 +70,6 @@ export interface LoopResult {
|
|
|
147
70
|
/** Total steps attempted */
|
|
148
71
|
totalSteps: number;
|
|
149
72
|
}
|
|
150
|
-
export interface AuthConfig {
|
|
151
|
-
/** API key for direct auth */
|
|
152
|
-
token?: string;
|
|
153
|
-
/** OAuth2 client credentials */
|
|
154
|
-
clientId?: string;
|
|
155
|
-
clientSecret?: string;
|
|
156
|
-
}
|
|
157
|
-
export interface AuthResult {
|
|
158
|
-
/** Whether auth was successful */
|
|
159
|
-
connected: boolean;
|
|
160
|
-
/** OAuth redirect URL (if OAuth flow required) */
|
|
161
|
-
redirectUrl?: string;
|
|
162
|
-
/** Error message if failed */
|
|
163
|
-
error?: string;
|
|
164
|
-
}
|
|
165
|
-
export interface ServerConnection {
|
|
166
|
-
/** Server id (e.g. "zoop") */
|
|
167
|
-
id: string;
|
|
168
|
-
/** Display name */
|
|
169
|
-
name: string;
|
|
170
|
-
/** Category (payments, fiscal, ecommerce, etc.) */
|
|
171
|
-
category: string;
|
|
172
|
-
/** Country code (BR, MX, AR, CO, GLOBAL) */
|
|
173
|
-
country: string;
|
|
174
|
-
/** Auth method */
|
|
175
|
-
auth_type: "oauth" | "api_key" | "cert" | "none";
|
|
176
|
-
/** Whether the server is connected and tools are callable */
|
|
177
|
-
connected: boolean;
|
|
178
|
-
}
|
|
179
|
-
export interface SendResult {
|
|
180
|
-
/** Final agent message text */
|
|
181
|
-
message: string;
|
|
182
|
-
/** Tools called during the run, in order */
|
|
183
|
-
tool_calls: ToolCallRecord[];
|
|
184
|
-
/** How many model iterations the loop ran */
|
|
185
|
-
iterations: number;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Single tool-call record returned by send / sendStream.
|
|
189
|
-
* Mirrors the backend's session_tool_calls row shape.
|
|
190
|
-
*/
|
|
191
|
-
export interface ToolCallRecord {
|
|
192
|
-
id: string;
|
|
193
|
-
tool_name: string;
|
|
194
|
-
server_id: string;
|
|
195
|
-
status: "success" | "error";
|
|
196
|
-
duration_ms: number;
|
|
197
|
-
input: unknown;
|
|
198
|
-
output: unknown;
|
|
199
|
-
error_code: string | null;
|
|
200
|
-
}
|
|
201
|
-
export type StreamEvent = {
|
|
202
|
-
type: "user_message";
|
|
203
|
-
content: string;
|
|
204
|
-
} | {
|
|
205
|
-
type: "assistant_text";
|
|
206
|
-
content: string;
|
|
207
|
-
iteration: number;
|
|
208
|
-
} | {
|
|
209
|
-
type: "tool_use";
|
|
210
|
-
id: string;
|
|
211
|
-
name: string;
|
|
212
|
-
input: Record<string, unknown>;
|
|
213
|
-
} | {
|
|
214
|
-
type: "tool_result";
|
|
215
|
-
toolCall: ToolCallRecord;
|
|
216
|
-
} | {
|
|
217
|
-
type: "done";
|
|
218
|
-
result: SendResult;
|
|
219
|
-
} | {
|
|
220
|
-
type: "error";
|
|
221
|
-
error: string;
|
|
222
|
-
message?: string;
|
|
223
|
-
};
|
|
224
73
|
export declare const SessionConfigSchema: z.ZodObject<{
|
|
225
74
|
servers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
226
75
|
preset: z.ZodOptional<z.ZodEnum<["brazilian", "mexican", "argentinian", "colombian", "all"]>>;
|
|
@@ -235,6 +84,7 @@ export declare const SessionConfigSchema: z.ZodObject<{
|
|
|
235
84
|
timeout?: number | undefined;
|
|
236
85
|
}>>;
|
|
237
86
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
87
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
238
88
|
}, "strip", z.ZodTypeAny, {
|
|
239
89
|
servers?: string[] | undefined;
|
|
240
90
|
preset?: "brazilian" | "mexican" | "argentinian" | "colombian" | "all" | undefined;
|
|
@@ -243,6 +93,7 @@ export declare const SessionConfigSchema: z.ZodObject<{
|
|
|
243
93
|
timeout?: number | undefined;
|
|
244
94
|
} | undefined;
|
|
245
95
|
metadata?: Record<string, string> | undefined;
|
|
96
|
+
projectId?: string | undefined;
|
|
246
97
|
}, {
|
|
247
98
|
servers?: string[] | undefined;
|
|
248
99
|
preset?: "brazilian" | "mexican" | "argentinian" | "colombian" | "all" | undefined;
|
|
@@ -251,5 +102,6 @@ export declare const SessionConfigSchema: z.ZodObject<{
|
|
|
251
102
|
timeout?: number | undefined;
|
|
252
103
|
} | undefined;
|
|
253
104
|
metadata?: Record<string, string> | undefined;
|
|
105
|
+
projectId?: string | undefined;
|
|
254
106
|
}>;
|
|
255
107
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC;IACvE,oCAAoC;IACpC,iBAAiB,CAAC,EAAE;QAClB,4CAA4C;QAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,wDAAwD;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,IAAI;IACnB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,0DAA0D;IAC1D,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,6BAA6B;IAC7B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,oCAAoC;IACpC,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW9B,CAAC"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuFxB,qEAAqE;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtF,iBAAiB,EAAE,CAAC;SACjB,MAAM,CAAC;QACN,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codespar/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Commerce SDK for AI agents — sessions, managed auth, Complete Loop orchestration for Latin American APIs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
"node": ">=20"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"zod": "^3.24.0"
|
|
50
|
+
"zod": "^3.24.0",
|
|
51
|
+
"@codespar/types": "^0.1.0"
|
|
51
52
|
},
|
|
52
53
|
"devDependencies": {
|
|
53
54
|
"@types/node": "^25.6.0",
|