@zauso-ai/capstan-agent 1.0.0-beta.5 → 1.0.0-beta.7
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/a2a.d.ts.map +1 -1
- package/dist/a2a.js +42 -21
- package/dist/a2a.js.map +1 -1
- package/dist/commerce.d.ts +62 -0
- package/dist/commerce.d.ts.map +1 -0
- package/dist/commerce.js +39 -0
- package/dist/commerce.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/langchain.d.ts +52 -0
- package/dist/langchain.d.ts.map +1 -0
- package/dist/langchain.js +157 -0
- package/dist/langchain.js.map +1 -0
- package/dist/llm.d.ts +41 -0
- package/dist/llm.d.ts.map +1 -0
- package/dist/llm.js +166 -0
- package/dist/llm.js.map +1 -0
- package/dist/mcp-client.d.ts +45 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +289 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/mcp.d.ts +23 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +85 -1
- package/dist/mcp.js.map +1 -1
- package/dist/registry.d.ts +21 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +48 -1
- package/dist/registry.js.map +1 -1
- package/dist/telemetry.d.ts +8 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +48 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/testing.d.ts +84 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +490 -0
- package/dist/testing.js.map +1 -0
- package/package.json +9 -2
package/dist/a2a.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQlE,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE;QACZ,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EACF,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;CACf;AAUD,kCAAkC;AAClC,UAAU,kBAAkB;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAkBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,kBAAkB,EAAE,GAC3B,YAAY,CAkCd;AA4BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,YAAY,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,OAAO,CAAC,GACpB;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9D,mBAAmB,EAAE,CACnB,IAAI,EAAE,OAAO,KACV,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,YAAY,EAAE,MAAM,YAAY,CAAC;CAClC,CA0RA"}
|
package/dist/a2a.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { routeToToolName } from "./mcp.js";
|
|
2
|
+
import { withSpan } from "./telemetry.js";
|
|
2
3
|
// ---------------------------------------------------------------------------
|
|
3
4
|
// Agent Card generation
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
@@ -136,17 +137,27 @@ export function createA2AHandler(config, routes, executeRoute) {
|
|
|
136
137
|
tasks.set(taskId, task);
|
|
137
138
|
// Transition to working.
|
|
138
139
|
task.status = "working";
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
140
|
+
return withSpan("capstan.a2a.tasks/send", {
|
|
141
|
+
"capstan.a2a.method": "tasks/send",
|
|
142
|
+
"capstan.a2a.taskId": taskId,
|
|
143
|
+
"capstan.a2a.skill": skillId,
|
|
144
|
+
}, async (span) => {
|
|
145
|
+
try {
|
|
146
|
+
const result = await executeRoute(resolved.method, resolved.path, params["input"]);
|
|
147
|
+
task.status = "completed";
|
|
148
|
+
task.output = result;
|
|
149
|
+
span?.setAttribute("capstan.a2a.status", "completed");
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
task.status = "failed";
|
|
153
|
+
task.error =
|
|
154
|
+
err instanceof Error
|
|
155
|
+
? err.message
|
|
156
|
+
: "Unknown error during execution";
|
|
157
|
+
span?.setAttribute("capstan.a2a.status", "failed");
|
|
158
|
+
}
|
|
159
|
+
return successResponse(reqId, task);
|
|
160
|
+
});
|
|
150
161
|
}
|
|
151
162
|
/**
|
|
152
163
|
* Streaming variant of `handleTasksSend`. Yields SSE events as the task
|
|
@@ -224,16 +235,26 @@ export function createA2AHandler(config, routes, executeRoute) {
|
|
|
224
235
|
return errorResponse(rpc.id, -32600, "Invalid JSON-RPC version");
|
|
225
236
|
}
|
|
226
237
|
const params = rpc.params ?? {};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
238
|
+
return withSpan(`capstan.a2a.${rpc.method}`, {
|
|
239
|
+
"capstan.a2a.method": rpc.method,
|
|
240
|
+
}, async (span) => {
|
|
241
|
+
let response;
|
|
242
|
+
switch (rpc.method) {
|
|
243
|
+
case "tasks/send":
|
|
244
|
+
response = await handleTasksSend(rpc.id, params);
|
|
245
|
+
break;
|
|
246
|
+
case "tasks/get":
|
|
247
|
+
response = handleTasksGet(rpc.id, params);
|
|
248
|
+
break;
|
|
249
|
+
case "agent/card":
|
|
250
|
+
response = successResponse(rpc.id, agentCard);
|
|
251
|
+
break;
|
|
252
|
+
default:
|
|
253
|
+
response = errorResponse(rpc.id, -32601, `Method not found: ${rpc.method}`);
|
|
254
|
+
}
|
|
255
|
+
span?.setAttribute("capstan.a2a.status", response.error ? "error" : "ok");
|
|
256
|
+
return response;
|
|
257
|
+
});
|
|
237
258
|
}
|
|
238
259
|
/**
|
|
239
260
|
* SSE streaming request handler.
|
package/dist/a2a.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../src/a2a.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface PaymentMandate {
|
|
2
|
+
/** Unique mandate ID */
|
|
3
|
+
id: string;
|
|
4
|
+
/** Maximum amount authorized */
|
|
5
|
+
maxAmount: number;
|
|
6
|
+
/** Currency code (ISO 4217) */
|
|
7
|
+
currency: string;
|
|
8
|
+
/** Mandate expiry (ISO 8601) */
|
|
9
|
+
expiresAt: string;
|
|
10
|
+
/** User who authorized this mandate */
|
|
11
|
+
authorizedBy: string;
|
|
12
|
+
/** Cryptographic signature of the mandate */
|
|
13
|
+
signature?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface TransactionConfig {
|
|
16
|
+
/** Transaction name for discovery */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Amount calculator */
|
|
19
|
+
amount: (input: unknown) => number;
|
|
20
|
+
/** Currency (default: USD) */
|
|
21
|
+
currency?: string;
|
|
22
|
+
/** Maximum amount per transaction */
|
|
23
|
+
maxAmount?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface TransactionResult {
|
|
26
|
+
transactionId: string;
|
|
27
|
+
amount: number;
|
|
28
|
+
currency: string;
|
|
29
|
+
status: "completed" | "pending" | "failed";
|
|
30
|
+
mandateId?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Define a transactable API endpoint.
|
|
34
|
+
* When an agent calls this, it must present a valid payment mandate.
|
|
35
|
+
*/
|
|
36
|
+
export declare function defineTransaction(config: TransactionConfig): TransactionConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Validate a payment mandate.
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateMandate(mandate: PaymentMandate): {
|
|
41
|
+
valid: boolean;
|
|
42
|
+
reason?: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create a metered usage tracker for API calls.
|
|
46
|
+
*/
|
|
47
|
+
export declare class UsageMeter {
|
|
48
|
+
private usage;
|
|
49
|
+
record(agentId: string, amount: number): void;
|
|
50
|
+
getUsage(agentId: string): {
|
|
51
|
+
calls: number;
|
|
52
|
+
totalAmount: number;
|
|
53
|
+
};
|
|
54
|
+
getAllUsage(): {
|
|
55
|
+
[k: string]: {
|
|
56
|
+
calls: number;
|
|
57
|
+
totalAmount: number;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
reset(): void;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=commerce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commerce.d.ts","sourceRoot":"","sources":["../src/commerce.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACnC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAE9E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAO5F;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA6D;IAE1E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7C,QAAQ,CAAC,OAAO,EAAE,MAAM;eATiB,MAAM;qBAAe,MAAM;;IAUpE,WAAW;;mBAV8B,MAAM;yBAAe,MAAM;;;IAWpE,KAAK;CACN"}
|
package/dist/commerce.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define a transactable API endpoint.
|
|
3
|
+
* When an agent calls this, it must present a valid payment mandate.
|
|
4
|
+
*/
|
|
5
|
+
export function defineTransaction(config) {
|
|
6
|
+
return config;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validate a payment mandate.
|
|
10
|
+
*/
|
|
11
|
+
export function validateMandate(mandate) {
|
|
12
|
+
if (!mandate.id)
|
|
13
|
+
return { valid: false, reason: "Missing mandate ID" };
|
|
14
|
+
if (!mandate.maxAmount || mandate.maxAmount <= 0)
|
|
15
|
+
return { valid: false, reason: "Invalid amount" };
|
|
16
|
+
if (!mandate.currency)
|
|
17
|
+
return { valid: false, reason: "Missing currency" };
|
|
18
|
+
if (new Date(mandate.expiresAt) < new Date())
|
|
19
|
+
return { valid: false, reason: "Mandate expired" };
|
|
20
|
+
if (!mandate.authorizedBy)
|
|
21
|
+
return { valid: false, reason: "Missing authorization" };
|
|
22
|
+
return { valid: true };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a metered usage tracker for API calls.
|
|
26
|
+
*/
|
|
27
|
+
export class UsageMeter {
|
|
28
|
+
usage = new Map();
|
|
29
|
+
record(agentId, amount) {
|
|
30
|
+
const current = this.usage.get(agentId) ?? { calls: 0, totalAmount: 0 };
|
|
31
|
+
current.calls++;
|
|
32
|
+
current.totalAmount += amount;
|
|
33
|
+
this.usage.set(agentId, current);
|
|
34
|
+
}
|
|
35
|
+
getUsage(agentId) { return this.usage.get(agentId) ?? { calls: 0, totalAmount: 0 }; }
|
|
36
|
+
getAllUsage() { return Object.fromEntries(this.usage); }
|
|
37
|
+
reset() { this.usage.clear(); }
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=commerce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commerce.js","sourceRoot":"","sources":["../src/commerce.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACvE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpG,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC3E,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACjG,IAAI,CAAC,OAAO,CAAC,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IACb,KAAK,GAAG,IAAI,GAAG,EAAkD,CAAC;IAE1E,MAAM,CAAC,OAAe,EAAE,MAAc;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,OAAe,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,WAAW,KAAK,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAChC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
export { generateAgentManifest } from "./manifest.js";
|
|
2
|
-
export { createMcpServer, serveMcpStdio, routeToToolName, inputSchemaToZodShape, } from "./mcp.js";
|
|
2
|
+
export { createMcpServer, createMcpHttpHandler, serveMcpStdio, routeToToolName, inputSchemaToZodShape, } from "./mcp.js";
|
|
3
3
|
export { generateOpenApiSpec } from "./openapi.js";
|
|
4
4
|
export { generateA2AAgentCard, createA2AHandler, formatSseEvent, } from "./a2a.js";
|
|
5
5
|
export type { A2AAgentCard, A2ATask, A2AStreamEvent } from "./a2a.js";
|
|
6
6
|
export { CapabilityRegistry } from "./registry.js";
|
|
7
|
+
export { withSpan } from "./telemetry.js";
|
|
8
|
+
export { createMcpClient } from "./mcp-client.js";
|
|
9
|
+
export type { McpClient, McpClientOptions, McpTool } from "./mcp-client.js";
|
|
10
|
+
export { McpTestHarness, McpHttpTestClient } from "./testing.js";
|
|
11
|
+
export type { McpTestResult } from "./testing.js";
|
|
12
|
+
export { toLangChainTools, toLangChainToolSpecs } from "./langchain.js";
|
|
13
|
+
export type { LangChainToolDefinition, ToLangChainOptions } from "./langchain.js";
|
|
7
14
|
export type { AgentManifest, RouteRegistryEntry, AgentConfig } from "./types.js";
|
|
15
|
+
export { defineTransaction, validateMandate, UsageMeter, } from "./commerce.js";
|
|
16
|
+
export type { PaymentMandate, TransactionConfig, TransactionResult, } from "./commerce.js";
|
|
17
|
+
export { openaiProvider, anthropicProvider } from "./llm.js";
|
|
18
|
+
export type { LLMProvider, LLMMessage, LLMResponse, LLMStreamChunk, LLMOptions, } from "./llm.js";
|
|
8
19
|
//# sourceMappingURL=index.d.ts.map
|
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,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClF,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7D,YAAY,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,GACX,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export { generateAgentManifest } from "./manifest.js";
|
|
2
|
-
export { createMcpServer, serveMcpStdio, routeToToolName, inputSchemaToZodShape, } from "./mcp.js";
|
|
2
|
+
export { createMcpServer, createMcpHttpHandler, serveMcpStdio, routeToToolName, inputSchemaToZodShape, } from "./mcp.js";
|
|
3
3
|
export { generateOpenApiSpec } from "./openapi.js";
|
|
4
4
|
export { generateA2AAgentCard, createA2AHandler, formatSseEvent, } from "./a2a.js";
|
|
5
5
|
export { CapabilityRegistry } from "./registry.js";
|
|
6
|
+
export { withSpan } from "./telemetry.js";
|
|
7
|
+
export { createMcpClient } from "./mcp-client.js";
|
|
8
|
+
export { McpTestHarness, McpHttpTestClient } from "./testing.js";
|
|
9
|
+
export { toLangChainTools, toLangChainToolSpecs } from "./langchain.js";
|
|
10
|
+
export { defineTransaction, validateMandate, UsageMeter, } from "./commerce.js";
|
|
11
|
+
export { openaiProvider, anthropicProvider } from "./llm.js";
|
|
6
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { CapabilityRegistry } from "./registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* LangChain DynamicTool-compatible definition.
|
|
4
|
+
*
|
|
5
|
+
* This interface mirrors LangChain's tool format so consumers can pass these
|
|
6
|
+
* directly to LangChain agents without importing LangChain as a dependency
|
|
7
|
+
* of this package.
|
|
8
|
+
*/
|
|
9
|
+
export interface LangChainToolDefinition {
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
/** JSON Schema for the tool's input. */
|
|
13
|
+
schema: Record<string, unknown>;
|
|
14
|
+
/** Execute the tool — calls the Capstan API over HTTP. */
|
|
15
|
+
func: (input: string | Record<string, unknown>) => Promise<string>;
|
|
16
|
+
}
|
|
17
|
+
export interface ToLangChainOptions {
|
|
18
|
+
/** Base URL of the running Capstan server (e.g. "http://localhost:3000"). */
|
|
19
|
+
baseUrl: string;
|
|
20
|
+
/** Value for the Authorization header (e.g. "Bearer <token>"). */
|
|
21
|
+
authorization?: string;
|
|
22
|
+
/** Only include routes whose capability matches one of these values. */
|
|
23
|
+
capabilities?: ("read" | "write")[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Convert a {@link CapabilityRegistry} into an array of LangChain-compatible
|
|
27
|
+
* tool definitions.
|
|
28
|
+
*
|
|
29
|
+
* Each tool invokes the corresponding Capstan API endpoint over HTTP when
|
|
30
|
+
* called, so the Capstan server must be running at `options.baseUrl`.
|
|
31
|
+
*
|
|
32
|
+
* @param registry - The Capstan capability registry.
|
|
33
|
+
* @param options - Connection and filtering options.
|
|
34
|
+
* @returns An array of tool definitions ready to hand to a LangChain agent.
|
|
35
|
+
*/
|
|
36
|
+
export declare function toLangChainTools(registry: CapabilityRegistry, options: ToLangChainOptions): LangChainToolDefinition[];
|
|
37
|
+
/**
|
|
38
|
+
* Generate LangChain-compatible tool specifications (metadata only, no
|
|
39
|
+
* executable function).
|
|
40
|
+
*
|
|
41
|
+
* Useful for sending tool definitions over the wire or for inspection
|
|
42
|
+
* without needing a live server connection.
|
|
43
|
+
*
|
|
44
|
+
* @param registry - The Capstan capability registry.
|
|
45
|
+
* @returns An array of tool spec objects.
|
|
46
|
+
*/
|
|
47
|
+
export declare function toLangChainToolSpecs(registry: CapabilityRegistry): Array<{
|
|
48
|
+
name: string;
|
|
49
|
+
description: string;
|
|
50
|
+
parameters: Record<string, unknown>;
|
|
51
|
+
}>;
|
|
52
|
+
//# sourceMappingURL=langchain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOxD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0DAA0D;IAC1D,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrC;AAmGD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,EAAE,CAkD3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,kBAAkB,GAC3B,KAAK,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC,CAiBD"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { routeToToolName } from "./mcp.js";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Internal helpers
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
/** HTTP methods that carry a request body. */
|
|
6
|
+
const BODY_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
|
|
7
|
+
/**
|
|
8
|
+
* Build a human-readable tool description from a route entry.
|
|
9
|
+
*/
|
|
10
|
+
function buildDescription(route) {
|
|
11
|
+
if (route.description) {
|
|
12
|
+
return route.description;
|
|
13
|
+
}
|
|
14
|
+
return `${route.method.toUpperCase()} ${route.path}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build the JSON Schema that describes the tool's input.
|
|
18
|
+
*
|
|
19
|
+
* If the route already carries an `inputSchema` we return it as-is
|
|
20
|
+
* (it is already JSON Schema). Otherwise we return a permissive
|
|
21
|
+
* empty-object schema.
|
|
22
|
+
*/
|
|
23
|
+
function buildInputJsonSchema(route) {
|
|
24
|
+
if (route.inputSchema) {
|
|
25
|
+
return { ...route.inputSchema };
|
|
26
|
+
}
|
|
27
|
+
return { type: "object", properties: {} };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Construct the URL for a GET request, appending `input` as query parameters.
|
|
31
|
+
*/
|
|
32
|
+
function buildGetUrl(base, path, input) {
|
|
33
|
+
const url = new URL(path, base);
|
|
34
|
+
for (const [key, value] of Object.entries(input)) {
|
|
35
|
+
if (value !== undefined && value !== null) {
|
|
36
|
+
url.searchParams.set(key, String(value));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return url.toString();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Determine whether a route should be included given the capability filter.
|
|
43
|
+
*/
|
|
44
|
+
function matchesCapabilities(route, capabilities) {
|
|
45
|
+
if (!capabilities || capabilities.length === 0) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
// Routes without an explicit capability are included only when no filter
|
|
49
|
+
// is specified (handled above). When a filter IS specified, the route
|
|
50
|
+
// must declare a matching capability.
|
|
51
|
+
if (!route.capability) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return capabilities.includes(route.capability);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Normalise the `input` argument that LangChain passes to `func`.
|
|
58
|
+
*
|
|
59
|
+
* LangChain may send either a JSON string or an object depending on the
|
|
60
|
+
* agent implementation, so we handle both.
|
|
61
|
+
*/
|
|
62
|
+
function normaliseInput(input) {
|
|
63
|
+
if (typeof input === "string") {
|
|
64
|
+
if (input.trim() === "") {
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
const parsed = JSON.parse(input);
|
|
69
|
+
if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
|
|
70
|
+
return parsed;
|
|
71
|
+
}
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return {};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return input;
|
|
79
|
+
}
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Public API
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
/**
|
|
84
|
+
* Convert a {@link CapabilityRegistry} into an array of LangChain-compatible
|
|
85
|
+
* tool definitions.
|
|
86
|
+
*
|
|
87
|
+
* Each tool invokes the corresponding Capstan API endpoint over HTTP when
|
|
88
|
+
* called, so the Capstan server must be running at `options.baseUrl`.
|
|
89
|
+
*
|
|
90
|
+
* @param registry - The Capstan capability registry.
|
|
91
|
+
* @param options - Connection and filtering options.
|
|
92
|
+
* @returns An array of tool definitions ready to hand to a LangChain agent.
|
|
93
|
+
*/
|
|
94
|
+
export function toLangChainTools(registry, options) {
|
|
95
|
+
const { baseUrl, authorization, capabilities } = options;
|
|
96
|
+
const routes = registry.getRoutes();
|
|
97
|
+
const tools = [];
|
|
98
|
+
for (const route of routes) {
|
|
99
|
+
if (!matchesCapabilities(route, capabilities)) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const name = routeToToolName(route.method, route.path);
|
|
103
|
+
const description = buildDescription(route);
|
|
104
|
+
const schema = buildInputJsonSchema(route);
|
|
105
|
+
const method = route.method.toUpperCase();
|
|
106
|
+
const func = async (rawInput) => {
|
|
107
|
+
const input = normaliseInput(rawInput);
|
|
108
|
+
const headers = {};
|
|
109
|
+
if (authorization) {
|
|
110
|
+
headers["Authorization"] = authorization;
|
|
111
|
+
}
|
|
112
|
+
let response;
|
|
113
|
+
if (BODY_METHODS.has(method)) {
|
|
114
|
+
headers["Content-Type"] = "application/json";
|
|
115
|
+
response = await fetch(new URL(route.path, baseUrl).toString(), {
|
|
116
|
+
method,
|
|
117
|
+
headers,
|
|
118
|
+
body: JSON.stringify(input),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// GET / HEAD — pass input as query parameters.
|
|
123
|
+
response = await fetch(buildGetUrl(baseUrl, route.path, input), {
|
|
124
|
+
method,
|
|
125
|
+
headers,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const text = await response.text();
|
|
129
|
+
return text;
|
|
130
|
+
};
|
|
131
|
+
tools.push({ name, description, schema, func });
|
|
132
|
+
}
|
|
133
|
+
return tools;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Generate LangChain-compatible tool specifications (metadata only, no
|
|
137
|
+
* executable function).
|
|
138
|
+
*
|
|
139
|
+
* Useful for sending tool definitions over the wire or for inspection
|
|
140
|
+
* without needing a live server connection.
|
|
141
|
+
*
|
|
142
|
+
* @param registry - The Capstan capability registry.
|
|
143
|
+
* @returns An array of tool spec objects.
|
|
144
|
+
*/
|
|
145
|
+
export function toLangChainToolSpecs(registry) {
|
|
146
|
+
const routes = registry.getRoutes();
|
|
147
|
+
const specs = [];
|
|
148
|
+
for (const route of routes) {
|
|
149
|
+
specs.push({
|
|
150
|
+
name: routeToToolName(route.method, route.path),
|
|
151
|
+
description: buildDescription(route),
|
|
152
|
+
parameters: buildInputJsonSchema(route),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return specs;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=langchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain.js","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"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"}
|
package/dist/llm.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface LLMMessage {
|
|
2
|
+
role: "system" | "user" | "assistant";
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
export interface LLMResponse {
|
|
6
|
+
content: string;
|
|
7
|
+
model: string;
|
|
8
|
+
usage?: {
|
|
9
|
+
promptTokens: number;
|
|
10
|
+
completionTokens: number;
|
|
11
|
+
totalTokens: number;
|
|
12
|
+
} | undefined;
|
|
13
|
+
finishReason?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
export interface LLMStreamChunk {
|
|
16
|
+
content: string;
|
|
17
|
+
done: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface LLMOptions {
|
|
20
|
+
model?: string;
|
|
21
|
+
temperature?: number;
|
|
22
|
+
maxTokens?: number;
|
|
23
|
+
systemPrompt?: string;
|
|
24
|
+
responseFormat?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export interface LLMProvider {
|
|
27
|
+
name: string;
|
|
28
|
+
chat(messages: LLMMessage[], options?: LLMOptions): Promise<LLMResponse>;
|
|
29
|
+
stream?(messages: LLMMessage[], options?: LLMOptions): AsyncIterable<LLMStreamChunk>;
|
|
30
|
+
}
|
|
31
|
+
export declare function openaiProvider(config: {
|
|
32
|
+
apiKey: string;
|
|
33
|
+
baseUrl?: string;
|
|
34
|
+
model?: string;
|
|
35
|
+
}): LLMProvider;
|
|
36
|
+
export declare function anthropicProvider(config: {
|
|
37
|
+
apiKey: string;
|
|
38
|
+
model?: string;
|
|
39
|
+
baseUrl?: string;
|
|
40
|
+
}): LLMProvider;
|
|
41
|
+
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,SAAS,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,MAAM,CAAC,CACL,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,CAAC,EAAE,UAAU,GACnB,aAAa,CAAC,cAAc,CAAC,CAAC;CAClC;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,WAAW,CA8Gd;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAyDd"}
|