@codespar/types 0.10.7 → 0.10.10

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.
Files changed (34) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/meta-tool-definitions.d.ts +52 -0
  6. package/dist/meta-tool-definitions.d.ts.map +1 -0
  7. package/dist/meta-tool-definitions.js +92 -0
  8. package/dist/meta-tool-definitions.js.map +1 -0
  9. package/dist/meta-tool-definitions.test.d.ts +2 -0
  10. package/dist/meta-tool-definitions.test.d.ts.map +1 -0
  11. package/dist/meta-tool-definitions.test.js +30 -0
  12. package/dist/meta-tool-definitions.test.js.map +1 -0
  13. package/dist/testing/contract-suite.d.ts.map +1 -1
  14. package/dist/testing/contract-suite.js +9 -2
  15. package/dist/testing/contract-suite.js.map +1 -1
  16. package/dist/testing/contract-suite.test.js +96 -1
  17. package/dist/testing/contract-suite.test.js.map +1 -1
  18. package/dist/testing/demo-scenario.d.ts +51 -0
  19. package/dist/testing/demo-scenario.d.ts.map +1 -0
  20. package/dist/testing/demo-scenario.js +89 -0
  21. package/dist/testing/demo-scenario.js.map +1 -0
  22. package/dist/testing/demo-scenario.test.d.ts +2 -0
  23. package/dist/testing/demo-scenario.test.d.ts.map +1 -0
  24. package/dist/testing/demo-scenario.test.js +68 -0
  25. package/dist/testing/demo-scenario.test.js.map +1 -0
  26. package/dist/testing/demo-scenarios/service-invoice.d.ts +3 -0
  27. package/dist/testing/demo-scenarios/service-invoice.d.ts.map +1 -0
  28. package/dist/testing/demo-scenarios/service-invoice.js +83 -0
  29. package/dist/testing/demo-scenarios/service-invoice.js.map +1 -0
  30. package/dist/testing/index.d.ts +2 -0
  31. package/dist/testing/index.d.ts.map +1 -1
  32. package/dist/testing/index.js +2 -0
  33. package/dist/testing/index.js.map +1 -1
  34. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./types.js";
2
2
  export * from "./guards.js";
3
3
  export * from "./meta-tool-contract.js";
4
+ export * from "./meta-tool-definitions.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./types.js";
2
2
  export * from "./guards.js";
3
3
  export * from "./meta-tool-contract.js";
4
+ export * from "./meta-tool-definitions.js";
4
5
  //# 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,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /** A single input property's wire description. */
2
+ export interface MetaToolInputProperty {
3
+ /** JSON-value type: "string" | "number" | "boolean" | "object" | "array". */
4
+ type: string;
5
+ /** Human-readable description shown to the agent. */
6
+ description?: string;
7
+ }
8
+ /** The JSON-Schema-shaped input contract an agent-facing meta-tool advertises. */
9
+ export interface MetaToolInputSchema {
10
+ type: "object";
11
+ properties: Record<string, MetaToolInputProperty>;
12
+ /** Property names that must be supplied. */
13
+ required?: readonly string[];
14
+ }
15
+ /**
16
+ * The conformance surface of a definition: the property names a conforming
17
+ * implementation must expose and the subset that is required. A conformance
18
+ * test compares a live runtime's tool against this — structural, not prose —
19
+ * so two runtimes prove they present the same agent-facing tool.
20
+ */
21
+ export interface MetaToolConformanceContract {
22
+ /** Every property name the agent-facing tool exposes. */
23
+ properties: readonly string[];
24
+ /** The subset of `properties` that is required. */
25
+ required: readonly string[];
26
+ }
27
+ /** A shared, runtime-agnostic agent-facing meta-tool definition. */
28
+ export interface SharedMetaToolDefinition {
29
+ /** Wire tool name, e.g. "codespar_invoice". */
30
+ name: string;
31
+ /** Description shown to the agent. */
32
+ description: string;
33
+ /** The input schema the agent is shown. */
34
+ input_schema: MetaToolInputSchema;
35
+ /** The conformance surface (property + required names). */
36
+ contract: MetaToolConformanceContract;
37
+ }
38
+ /** Issue invoices and fiscal documents (NF-e / NFS-e / invoice). */
39
+ export declare const INVOICE_DEFINITION: SharedMetaToolDefinition;
40
+ /** Send a notification over a messaging channel (WhatsApp / email / SMS). */
41
+ export declare const NOTIFY_DEFINITION: SharedMetaToolDefinition;
42
+ /** Execute a governed payment or transfer (Pix / card / boleto / wire). */
43
+ export declare const PAY_DEFINITION: SharedMetaToolDefinition;
44
+ /** The shared agent-facing definitions, keyed by wire tool name. */
45
+ export declare const SHARED_META_TOOL_DEFINITIONS: {
46
+ readonly codespar_invoice: SharedMetaToolDefinition;
47
+ readonly codespar_notify: SharedMetaToolDefinition;
48
+ readonly codespar_pay: SharedMetaToolDefinition;
49
+ };
50
+ /** Wire names that have a published shared definition. */
51
+ export type SharedMetaToolName = keyof typeof SHARED_META_TOOL_DEFINITIONS;
52
+ //# sourceMappingURL=meta-tool-definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-tool-definitions.d.ts","sourceRoot":"","sources":["../src/meta-tool-definitions.ts"],"names":[],"mappings":"AAkBA,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yDAAyD;IACzD,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,YAAY,EAAE,mBAAmB,CAAC;IAClC,2DAA2D;IAC3D,QAAQ,EAAE,2BAA2B,CAAC;CACvC;AAqDD,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,wBAMhC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,wBAM/B,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,wBAM5B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,4BAA4B,CAAC"}
@@ -0,0 +1,92 @@
1
+ /* ── Shared meta-tool definitions ────────────────────────────────
2
+ *
3
+ * The agent-facing definition of a commerce meta-tool — its name, its
4
+ * description, and the input schema the language model is shown — published
5
+ * once here so every runtime presents the identical tool to the agent.
6
+ *
7
+ * A runtime registers an implementation behind a definition (the OSS runtime
8
+ * via a `MetaToolHook`, a managed runtime via its built-in routing); the
9
+ * implementations differ, but the definition the agent reasons over does not.
10
+ * The `contract` field carries the conformance surface — the property names
11
+ * and the required subset a conforming implementation must expose — so a
12
+ * conformance test can assert any runtime's tool matches this definition
13
+ * without comparing prose.
14
+ *
15
+ * Definitions are data, not code: they carry no routing and import nothing
16
+ * runtime-specific, so they serialize cleanly and stay portable.
17
+ * ─────────────────────────────────────────────────────────────── */
18
+ /**
19
+ * Derive the conformance contract from an input schema, so the property and
20
+ * required sets never drift from the schema they describe.
21
+ */
22
+ function contractOf(schema) {
23
+ return {
24
+ properties: Object.keys(schema.properties),
25
+ required: [...(schema.required ?? [])],
26
+ };
27
+ }
28
+ const INVOICE_INPUT = {
29
+ type: "object",
30
+ properties: {
31
+ type: { type: "string", description: "Invoice type: nfe, nfse, invoice" },
32
+ recipient: { type: "object", description: "Recipient details (name, document, email)" },
33
+ items: { type: "array", description: "Line items" },
34
+ dueDate: { type: "string", description: "Due date (ISO 8601)" },
35
+ },
36
+ required: ["type", "recipient", "items"],
37
+ };
38
+ const NOTIFY_INPUT = {
39
+ type: "object",
40
+ properties: {
41
+ channel: { type: "string", description: "Notification channel: whatsapp, email, sms" },
42
+ to: { type: "string", description: "Recipient phone number or email" },
43
+ template: { type: "string", description: "Message template name" },
44
+ message: { type: "string", description: "Custom message text" },
45
+ variables: { type: "object", description: "Template variables" },
46
+ },
47
+ required: ["channel", "to"],
48
+ };
49
+ const PAY_INPUT = {
50
+ type: "object",
51
+ properties: {
52
+ amount: { type: "number", description: "Amount to pay, in minor units (centavos for BRL)" },
53
+ currency: { type: "string", description: "Currency code (BRL, USD, EUR)" },
54
+ country: { type: "string", description: "ISO-3166-1 alpha-2 country code for the eligibility rail" },
55
+ method: { type: "string", description: "Payment method: pix, card, usdc, boleto, sepa, wire" },
56
+ recipient: { type: "string", description: "Recipient identifier (e.g. a Pix key)" },
57
+ copia_e_cola: { type: "string", description: "A Pix copia-e-cola / BR Code to pay" },
58
+ consumer_id: { type: "string", description: "Which buyer's governed wallet pays" },
59
+ checkout_session_id: { type: "string", description: "A store checkout session to settle" },
60
+ description: { type: "string", description: "Payment description" },
61
+ mandateId: { type: "string", description: "Pre-authorized mandate id" },
62
+ },
63
+ required: ["amount", "currency", "description"],
64
+ };
65
+ /** Issue invoices and fiscal documents (NF-e / NFS-e / invoice). */
66
+ export const INVOICE_DEFINITION = {
67
+ name: "codespar_invoice",
68
+ description: "Issue invoices or Brazilian fiscal documents (NF-e, NFS-e). Selects the document type and recipient and emits the document.",
69
+ input_schema: INVOICE_INPUT,
70
+ contract: contractOf(INVOICE_INPUT),
71
+ };
72
+ /** Send a notification over a messaging channel (WhatsApp / email / SMS). */
73
+ export const NOTIFY_DEFINITION = {
74
+ name: "codespar_notify",
75
+ description: "Send a notification via WhatsApp, email, or SMS, using a template or custom message text.",
76
+ input_schema: NOTIFY_INPUT,
77
+ contract: contractOf(NOTIFY_INPUT),
78
+ };
79
+ /** Execute a governed payment or transfer (Pix / card / boleto / wire). */
80
+ export const PAY_DEFINITION = {
81
+ name: "codespar_pay",
82
+ description: "Execute a payment or transfer under governance. Supports Pix, card, USDC, boleto, SEPA, and wire; can pay a Pix copia-e-cola or settle a store checkout.",
83
+ input_schema: PAY_INPUT,
84
+ contract: contractOf(PAY_INPUT),
85
+ };
86
+ /** The shared agent-facing definitions, keyed by wire tool name. */
87
+ export const SHARED_META_TOOL_DEFINITIONS = {
88
+ codespar_invoice: INVOICE_DEFINITION,
89
+ codespar_notify: NOTIFY_DEFINITION,
90
+ codespar_pay: PAY_DEFINITION,
91
+ };
92
+ //# sourceMappingURL=meta-tool-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-tool-definitions.js","sourceRoot":"","sources":["../src/meta-tool-definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=meta-tool-definitions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-tool-definitions.test.d.ts","sourceRoot":"","sources":["../src/meta-tool-definitions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SHARED_META_TOOL_DEFINITIONS, } from "./meta-tool-definitions.js";
3
+ const ALL = Object.values(SHARED_META_TOOL_DEFINITIONS);
4
+ describe("shared meta-tool definitions", () => {
5
+ it("publishes the three demo actions keyed by wire name", () => {
6
+ expect(Object.keys(SHARED_META_TOOL_DEFINITIONS).sort()).toEqual([
7
+ "codespar_invoice",
8
+ "codespar_notify",
9
+ "codespar_pay",
10
+ ]);
11
+ });
12
+ it.each(ALL)("$name carries name, description, input_schema, and contract — all non-empty", (def) => {
13
+ expect(def.name).toMatch(/^codespar_[a-z]+$/);
14
+ expect(def.description.length).toBeGreaterThan(0);
15
+ expect(def.input_schema.type).toBe("object");
16
+ expect(Object.keys(def.input_schema.properties).length).toBeGreaterThan(0);
17
+ // contract descriptor is non-empty and derived from the schema
18
+ expect(def.contract.properties.length).toBeGreaterThan(0);
19
+ expect(def.contract.required.length).toBeGreaterThan(0);
20
+ });
21
+ it.each(ALL)("$name contract matches its input_schema (no drift)", (def) => {
22
+ expect([...def.contract.properties].sort()).toEqual(Object.keys(def.input_schema.properties).sort());
23
+ expect([...def.contract.required].sort()).toEqual([...(def.input_schema.required ?? [])].sort());
24
+ // every required field is an advertised property
25
+ for (const r of def.contract.required) {
26
+ expect(def.contract.properties).toContain(r);
27
+ }
28
+ });
29
+ });
30
+ //# sourceMappingURL=meta-tool-definitions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-tool-definitions.test.js","sourceRoot":"","sources":["../src/meta-tool-definitions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,4BAA4B,GAE7B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAA+B,CAAC;AAEtF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;YAC/D,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,6EAA6E,EAAE,CAAC,GAAG,EAAE,EAAE;QAClG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3E,+DAA+D;QAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oDAAoD,EAAE,CAAC,GAAG,EAAE,EAAE;QACzE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CACjD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAChD,CAAC;QACF,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAC/C,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAC9C,CAAC;QACF,iDAAiD;QACjD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-suite.d.ts","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"AAGA,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC;AAEtF,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;CACtB;AAWD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,WAAW,EAAE,CAErE;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAEA;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,GAAG,EAAE,MAAM;CAMxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUpD;AA2JD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,oBAAoB,GAC1B,IAAI,CA0FN"}
1
+ {"version":3,"file":"contract-suite.d.ts","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"AAGA,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC;AAEtF,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;CACtB;AAWD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,WAAW,EAAE,CAErE;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAEA;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,GAAG,EAAE,MAAM;CAMxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUpD;AA2JD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,oBAAoB,GAC1B,IAAI,CAiGN"}
@@ -228,10 +228,17 @@ export function runContractSuite(baseUrl, apiKey, opts) {
228
228
  it("execute() calls a registered tool and returns a ToolResult", async () => {
229
229
  session = await openSession(baseUrl, apiKey, opts);
230
230
  const result = await session.execute("codespar_list_tools", {});
231
+ // codespar_list_tools is a built-in that always succeeds, so this is
232
+ // a no-error result: error is the canonical `null` (matching the
233
+ // published `error: string | null` wire type), not `""`. Asserting
234
+ // `null` pins both runtimes to the same no-error value — an earlier
235
+ // `expect.anything()` here both read backwards (it demanded a
236
+ // non-null error on a success) and masked an OSS/managed divergence,
237
+ // since `expect.anything()` rejects `null`.
231
238
  expect(result).toMatchObject({
232
- success: expect.any(Boolean),
239
+ success: true,
233
240
  data: expect.anything(),
234
- error: expect.anything(),
241
+ error: null,
235
242
  duration: expect.any(Number),
236
243
  server: expect.any(String),
237
244
  tool: expect.any(String),
@@ -1 +1 @@
1
- {"version":3,"file":"contract-suite.js","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-suite.js","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * that `runContractSuite` registers only the selected legs by intercepting the
9
9
  * `it` registrations through a mocked `vitest` module.
10
10
  */
11
- import { describe, it, expect, vi } from "vitest";
11
+ import { describe, it, expect, vi, afterEach } from "vitest";
12
12
  import { selectLegs, buildSessionCreateBody, } from "./contract-suite.js";
13
13
  describe("selectLegs", () => {
14
14
  const ALL = ["execute", "send", "sendStream", "connections", "close"];
@@ -89,4 +89,99 @@ describe("runContractSuite leg registration", () => {
89
89
  expect(names.some((n) => n.startsWith("sendStream()"))).toBe(false);
90
90
  });
91
91
  });
92
+ function jsonResponse(body) {
93
+ return new Response(JSON.stringify(body), {
94
+ status: 200,
95
+ headers: { "Content-Type": "application/json" },
96
+ });
97
+ }
98
+ /** Stub `fetch`: session-create returns an active session, execute returns
99
+ * the given result, DELETE closes. Returns a teardown. */
100
+ function installFakeBackend(executeResult) {
101
+ const stub = vi.fn(async (url, init) => {
102
+ const u = String(url);
103
+ if (u.endsWith("/v1/sessions") && init?.method === "POST") {
104
+ return jsonResponse({ id: "sess_fake", status: "active" });
105
+ }
106
+ if (u.includes("/execute")) {
107
+ return jsonResponse(executeResult);
108
+ }
109
+ return jsonResponse({});
110
+ });
111
+ const original = globalThis.fetch;
112
+ globalThis.fetch = stub;
113
+ return () => {
114
+ globalThis.fetch = original;
115
+ };
116
+ }
117
+ /** Run only the execute leg under a mocked Vitest that executes the `it`
118
+ * body with the real `expect`, recording whether it passed. */
119
+ async function runExecuteLeg() {
120
+ vi.resetModules();
121
+ const cases = [];
122
+ const afterEachFns = [];
123
+ const realExpect = (await vi.importActual("vitest")).expect;
124
+ vi.doMock("vitest", () => ({
125
+ describe: (_name, fn) => fn(),
126
+ it: (_name, fn) => {
127
+ cases.push(async () => {
128
+ await fn();
129
+ });
130
+ },
131
+ afterEach: (fn) => {
132
+ afterEachFns.push(fn);
133
+ },
134
+ expect: realExpect,
135
+ }));
136
+ const mod = await import("./contract-suite.js");
137
+ mod.runContractSuite("http://localhost:9999", "csk_test", {
138
+ legs: ["execute"],
139
+ });
140
+ try {
141
+ for (const c of cases)
142
+ await c();
143
+ return { passed: true };
144
+ }
145
+ catch (err) {
146
+ return { passed: false, error: err instanceof Error ? err.message : String(err) };
147
+ }
148
+ finally {
149
+ for (const a of afterEachFns)
150
+ await a();
151
+ vi.doUnmock("vitest");
152
+ }
153
+ }
154
+ describe("runContractSuite execute leg against a fake backend", () => {
155
+ let teardown = null;
156
+ afterEach(() => {
157
+ teardown?.();
158
+ teardown = null;
159
+ });
160
+ const base = {
161
+ success: true,
162
+ data: { tools: [] },
163
+ duration: 3,
164
+ server: "fake-runtime",
165
+ tool: "codespar_list_tools",
166
+ };
167
+ it("passes when a success result carries the canonical error: null", async () => {
168
+ teardown = installFakeBackend({ ...base, error: null });
169
+ const outcome = await runExecuteLeg();
170
+ expect(outcome.error ?? "", outcome.error ?? "").toBe("");
171
+ expect(outcome.passed).toBe(true);
172
+ });
173
+ it("fails when a success result carries a non-null error (the masked divergence)", async () => {
174
+ // An OSS runtime used to return `error: ""` on a success — non-null, so
175
+ // it must now fail the pinned `error: null` assertion.
176
+ teardown = installFakeBackend({ ...base, error: "" });
177
+ const outcome = await runExecuteLeg();
178
+ expect(outcome.passed).toBe(false);
179
+ });
180
+ it("fails when a no-error result reports success: false", async () => {
181
+ // `success: true` is now pinned too — list_tools always succeeds.
182
+ teardown = installFakeBackend({ ...base, success: false, error: null });
183
+ const outcome = await runExecuteLeg();
184
+ expect(outcome.passed).toBe(false);
185
+ });
186
+ });
92
187
  //# sourceMappingURL=contract-suite.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract-suite.test.js","sourceRoot":"","sources":["../../src/testing/contract-suite.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-suite.test.js","sourceRoot":"","sources":["../../src/testing/contract-suite.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { ToolCallRecord } from "../types.js";
2
+ /** One conversational turn: a user message and the meta-tools it should drive. */
3
+ export interface DemoTurn {
4
+ /** The user message sent via `session.send()`. */
5
+ message: string;
6
+ /** Meta-tool names expected to be called while handling this turn. */
7
+ expectMetaTools: readonly string[];
8
+ }
9
+ /** A reusable, runtime-agnostic demo scenario. */
10
+ export interface DemoScenario {
11
+ /** Scenario label, used in the test name. */
12
+ name: string;
13
+ /** Server ids to open the session with. */
14
+ servers: readonly string[];
15
+ /** Per-tool mock fixtures forwarded to session create (runtime test mode). */
16
+ mocks: Record<string, unknown>;
17
+ /** The conversation turns. */
18
+ turns: readonly DemoTurn[];
19
+ /**
20
+ * The canned-LLM (aimock) fixture set the harness serves at
21
+ * `ANTHROPIC_BASE_URL` while the scenario runs. Opaque to the runner — each
22
+ * runtime's harness writes it out and boots the fixture server with it.
23
+ */
24
+ aimockFixtures: unknown;
25
+ }
26
+ /** Options for driving a scenario. */
27
+ export interface RunDemoScenarioOptions {
28
+ /** Bearer key for session create/send. Defaults to "demo". */
29
+ apiKey?: string;
30
+ /** Override `fetch` (for unit-testing the runner without a live runtime). */
31
+ fetchImpl?: typeof fetch;
32
+ }
33
+ /**
34
+ * Assert a collected tool-call trace stayed at the meta-tool abstraction and
35
+ * covered every meta-tool each turn expected. Pure (no I/O) so it is unit
36
+ * testable directly. Throws an `Error` describing the first violation.
37
+ */
38
+ export declare function assertMetaToolTrace(calls: readonly ToolCallRecord[], scenario: DemoScenario): void;
39
+ /**
40
+ * Drive a scenario against a live runtime at `baseUrl`: open a session with the
41
+ * scenario's servers + mocks, send each turn, and collect the tool-call trace.
42
+ * Returns every `ToolCallRecord` the agent produced across all turns.
43
+ */
44
+ export declare function driveDemoScenario(baseUrl: string, scenario: DemoScenario, opts?: RunDemoScenarioOptions): Promise<ToolCallRecord[]>;
45
+ /**
46
+ * Register a vitest test that runs the scenario against `baseUrl` and asserts
47
+ * the meta-tool trace. Both the OSS example and the managed integration test
48
+ * call this with the same scenario object and their own base URL.
49
+ */
50
+ export declare function runDemoScenario(baseUrl: string, scenario: DemoScenario, opts?: RunDemoScenarioOptions): void;
51
+ //# sourceMappingURL=demo-scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scenario.d.ts","sourceRoot":"","sources":["../../src/testing/demo-scenario.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAe9D,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC3B;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,YAAY,GACrB,IAAI,CA4BN;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC3B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,sBAA2B,GAChC,IAAI,CAQN"}
@@ -0,0 +1,89 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { validateBaseUrl } from "./contract-suite.js";
3
+ const META_TOOL_NAME = /^codespar_[a-z_]+$/;
4
+ /**
5
+ * Assert a collected tool-call trace stayed at the meta-tool abstraction and
6
+ * covered every meta-tool each turn expected. Pure (no I/O) so it is unit
7
+ * testable directly. Throws an `Error` describing the first violation.
8
+ */
9
+ export function assertMetaToolTrace(calls, scenario) {
10
+ for (const call of calls) {
11
+ if (call.tool_name.includes("__")) {
12
+ throw new Error(`scenario "${scenario.name}": agent called a raw tool "${call.tool_name}"; demos must call meta-tools`);
13
+ }
14
+ if (!META_TOOL_NAME.test(call.tool_name)) {
15
+ throw new Error(`scenario "${scenario.name}": "${call.tool_name}" is not a meta-tool (expected codespar_*)`);
16
+ }
17
+ if (call.status !== "success") {
18
+ throw new Error(`scenario "${scenario.name}": meta-tool "${call.tool_name}" failed (status ${call.status})`);
19
+ }
20
+ }
21
+ const seen = calls.map((c) => c.tool_name);
22
+ for (const turn of scenario.turns) {
23
+ for (const expected of turn.expectMetaTools) {
24
+ if (!seen.includes(expected)) {
25
+ throw new Error(`scenario "${scenario.name}": expected meta-tool "${expected}" was never called`);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ /**
31
+ * Drive a scenario against a live runtime at `baseUrl`: open a session with the
32
+ * scenario's servers + mocks, send each turn, and collect the tool-call trace.
33
+ * Returns every `ToolCallRecord` the agent produced across all turns.
34
+ */
35
+ export async function driveDemoScenario(baseUrl, scenario, opts = {}) {
36
+ validateBaseUrl(baseUrl);
37
+ const doFetch = opts.fetchImpl ?? fetch;
38
+ const headers = {
39
+ "Content-Type": "application/json",
40
+ Authorization: `Bearer ${opts.apiKey ?? "demo"}`,
41
+ };
42
+ const createRes = await doFetch(`${baseUrl}/v1/sessions`, {
43
+ method: "POST",
44
+ headers,
45
+ body: JSON.stringify({
46
+ servers: [...scenario.servers],
47
+ user_id: "demo-scenario",
48
+ mocks: scenario.mocks,
49
+ }),
50
+ });
51
+ if (!createRes.ok) {
52
+ throw new Error(`session create failed: ${createRes.status} ${await createRes.text()}`);
53
+ }
54
+ const { id } = (await createRes.json());
55
+ const calls = [];
56
+ try {
57
+ for (const turn of scenario.turns) {
58
+ const sendRes = await doFetch(`${baseUrl}/v1/sessions/${id}/send`, {
59
+ method: "POST",
60
+ headers: { ...headers, Accept: "application/json" },
61
+ body: JSON.stringify({ message: turn.message }),
62
+ });
63
+ if (!sendRes.ok) {
64
+ throw new Error(`send failed: ${sendRes.status} ${await sendRes.text()}`);
65
+ }
66
+ const result = (await sendRes.json());
67
+ calls.push(...result.tool_calls);
68
+ }
69
+ }
70
+ finally {
71
+ await doFetch(`${baseUrl}/v1/sessions/${id}`, { method: "DELETE", headers }).catch(() => { });
72
+ }
73
+ return calls;
74
+ }
75
+ /**
76
+ * Register a vitest test that runs the scenario against `baseUrl` and asserts
77
+ * the meta-tool trace. Both the OSS example and the managed integration test
78
+ * call this with the same scenario object and their own base URL.
79
+ */
80
+ export function runDemoScenario(baseUrl, scenario, opts = {}) {
81
+ describe(`demo scenario: ${scenario.name}`, () => {
82
+ it("runs green at the meta-tool abstraction", async () => {
83
+ const calls = await driveDemoScenario(baseUrl, scenario, opts);
84
+ expect(calls.length).toBeGreaterThan(0);
85
+ assertMetaToolTrace(calls, scenario);
86
+ });
87
+ });
88
+ }
89
+ //# sourceMappingURL=demo-scenario.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scenario.js","sourceRoot":"","sources":["../../src/testing/demo-scenario.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=demo-scenario.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scenario.test.d.ts","sourceRoot":"","sources":["../../src/testing/demo-scenario.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { assertMetaToolTrace, driveDemoScenario, } from "./demo-scenario.js";
3
+ import { SERVICE_INVOICE_SCENARIO } from "./demo-scenarios/service-invoice.js";
4
+ function call(tool_name, status = "success") {
5
+ return {
6
+ id: `tc_${tool_name}`,
7
+ tool_name,
8
+ server_id: "",
9
+ status,
10
+ duration_ms: 1,
11
+ input: {},
12
+ output: {},
13
+ error_code: null,
14
+ };
15
+ }
16
+ const SCN = {
17
+ name: "unit",
18
+ servers: ["a"],
19
+ mocks: {},
20
+ turns: [{ message: "hi", expectMetaTools: ["codespar_invoice", "codespar_notify"] }],
21
+ aimockFixtures: {},
22
+ };
23
+ describe("assertMetaToolTrace", () => {
24
+ it("passes when every call is a successful meta-tool and all expected ones appear", () => {
25
+ expect(() => assertMetaToolTrace([call("codespar_invoice"), call("codespar_notify")], SCN)).not.toThrow();
26
+ });
27
+ it("rejects a raw serverId__tool call", () => {
28
+ expect(() => assertMetaToolTrace([call("nuvem-fiscal__create_nfse")], SCN)).toThrow(/raw tool/);
29
+ });
30
+ it("rejects a non-meta-tool name", () => {
31
+ expect(() => assertMetaToolTrace([call("invoice")], SCN)).toThrow(/not a meta-tool/);
32
+ });
33
+ it("rejects a failed meta-tool call", () => {
34
+ expect(() => assertMetaToolTrace([call("codespar_invoice", "error")], SCN)).toThrow(/failed/);
35
+ });
36
+ it("rejects when an expected meta-tool never appeared", () => {
37
+ expect(() => assertMetaToolTrace([call("codespar_invoice")], SCN)).toThrow(/codespar_notify.*never called/);
38
+ });
39
+ });
40
+ describe("driveDemoScenario", () => {
41
+ it("opens a session with servers+mocks, sends each turn, collects the trace, and closes", async () => {
42
+ const seen = [];
43
+ const fakeFetch = (async (url, init) => {
44
+ seen.push({ url, method: init.method ?? "GET", body: init.body ? JSON.parse(init.body) : undefined });
45
+ if (url.endsWith("/v1/sessions") && init.method === "POST") {
46
+ return new Response(JSON.stringify({ id: "sess_1", status: "active" }), { status: 200 });
47
+ }
48
+ if (url.endsWith("/send")) {
49
+ return new Response(JSON.stringify({ message: "ok", iterations: 1, tool_calls: [call("codespar_invoice")] }), { status: 200 });
50
+ }
51
+ return new Response("", { status: 200 }); // DELETE close
52
+ });
53
+ const calls = await driveDemoScenario("http://localhost:3000", SERVICE_INVOICE_SCENARIO, {
54
+ fetchImpl: fakeFetch,
55
+ });
56
+ expect(calls.map((c) => c.tool_name)).toEqual(["codespar_invoice"]);
57
+ // create body carried servers + mocks from the scenario
58
+ const create = seen.find((s) => s.url.endsWith("/v1/sessions"));
59
+ expect((create?.body).servers).toEqual(["nuvem-fiscal", "z-api"]);
60
+ expect((create?.body).mocks).toHaveProperty("codespar_invoice");
61
+ // session was closed
62
+ expect(seen.some((s) => s.method === "DELETE")).toBe(true);
63
+ });
64
+ it("rejects a non-localhost http base URL (apiKey-leak guard)", async () => {
65
+ await expect(driveDemoScenario("http://evil.example", SCN, { fetchImpl: (async () => new Response()) })).rejects.toThrow();
66
+ });
67
+ });
68
+ //# sourceMappingURL=demo-scenario.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scenario.test.js","sourceRoot":"","sources":["../../src/testing/demo-scenario.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DemoScenario } from "../demo-scenario.js";
2
+ export declare const SERVICE_INVOICE_SCENARIO: DemoScenario;
3
+ //# sourceMappingURL=service-invoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-invoice.d.ts","sourceRoot":"","sources":["../../../src/testing/demo-scenarios/service-invoice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAexD,eAAO,MAAM,wBAAwB,EAAE,YAuEtC,CAAC"}
@@ -0,0 +1,83 @@
1
+ /* Service-invoice demo, expressed at the meta-tool abstraction.
2
+ *
3
+ * One natural-language request issues two fiscal documents and sends the links
4
+ * back over WhatsApp. The agent calls `codespar_invoice` twice then
5
+ * `codespar_notify` once — never a raw `serverId__tool`. The same object drives
6
+ * the OSS example and the managed integration test; each runtime serves
7
+ * `aimockFixtures` at its own canned-LLM endpoint.
8
+ *
9
+ * `mocks` is keyed on the meta-tool name so the fixture is returned regardless
10
+ * of how a runtime routes the meta-tool to underlying tools — the demo build
11
+ * (the example + the managed test) validates that meta-tool-level mock
12
+ * interception holds on both runtimes.
13
+ */
14
+ export const SERVICE_INVOICE_SCENARIO = {
15
+ name: "service-invoice",
16
+ servers: ["nuvem-fiscal", "z-api"],
17
+ mocks: {
18
+ // codespar_invoice is called twice; a stateful array returns one per call.
19
+ codespar_invoice: [
20
+ { id: "nfse_demo_001", status: "autorizada", pdf_url: "https://example.test/nfse_demo_001.pdf" },
21
+ { id: "nfse_demo_002", status: "autorizada", pdf_url: "https://example.test/nfse_demo_002.pdf" },
22
+ ],
23
+ codespar_notify: { messageId: "msg_demo_001", sent: true },
24
+ },
25
+ turns: [
26
+ {
27
+ message: "Preciso de duas NFS-e: taxa de acesso à plataforma R$2.800 e consultoria de onboarding R$1.200. Envia os PDFs no WhatsApp +5511987654321.",
28
+ expectMetaTools: ["codespar_invoice", "codespar_notify"],
29
+ },
30
+ ],
31
+ aimockFixtures: {
32
+ fixtures: [
33
+ {
34
+ match: { userMessage: "NFS-e", turnIndex: 0, hasToolResult: false },
35
+ response: {
36
+ toolCalls: [
37
+ {
38
+ name: "codespar_invoice",
39
+ arguments: {
40
+ type: "nfse",
41
+ recipient: { name: "Cliente Demo", document: "00000000000" },
42
+ items: [{ description: "Plataforma SaaS - acesso mensal", amount: 2800.0 }],
43
+ },
44
+ },
45
+ {
46
+ name: "codespar_invoice",
47
+ arguments: {
48
+ type: "nfse",
49
+ recipient: { name: "Cliente Demo", document: "00000000000" },
50
+ items: [{ description: "Consultoria de onboarding", amount: 1200.0 }],
51
+ },
52
+ },
53
+ ],
54
+ finishReason: "tool_calls",
55
+ },
56
+ },
57
+ {
58
+ match: { userMessage: "NFS-e", turnIndex: 1, hasToolResult: true },
59
+ response: {
60
+ toolCalls: [
61
+ {
62
+ name: "codespar_notify",
63
+ arguments: {
64
+ channel: "whatsapp",
65
+ to: "+5511987654321",
66
+ message: "Suas notas estão prontas: https://example.test/nfse_demo_001.pdf https://example.test/nfse_demo_002.pdf",
67
+ },
68
+ },
69
+ ],
70
+ finishReason: "tool_calls",
71
+ },
72
+ },
73
+ {
74
+ match: { userMessage: "NFS-e", turnIndex: 2, hasToolResult: true },
75
+ response: {
76
+ content: "Duas NFS-e emitidas (nfse_demo_001 e nfse_demo_002) e os PDFs enviados no WhatsApp.",
77
+ finishReason: "stop",
78
+ },
79
+ },
80
+ ],
81
+ },
82
+ };
83
+ //# sourceMappingURL=service-invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-invoice.js","sourceRoot":"","sources":["../../../src/testing/demo-scenarios/service-invoice.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAiB;IACpD,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE;QACL,2EAA2E;QAC3E,gBAAgB,EAAE;YAChB,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,wCAAwC,EAAE;YAChG,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,wCAAwC,EAAE;SACjG;QACD,eAAe,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;KAC3D;IACD,KAAK,EAAE;QACL;YACE,OAAO,EACL,2IAA2I;YAC7I,eAAe,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;SACzD;KACF;IACD,cAAc,EAAE;QACd,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;gBACnE,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,kBAAkB;4BACxB,SAAS,EAAE;gCACT,IAAI,EAAE,MAAM;gCACZ,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE;gCAC5D,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;6BAC5E;yBACF;wBACD;4BACE,IAAI,EAAE,kBAAkB;4BACxB,SAAS,EAAE;gCACT,IAAI,EAAE,MAAM;gCACZ,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE;gCAC5D,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;6BACtE;yBACF;qBACF;oBACD,YAAY,EAAE,YAAY;iBAC3B;aACF;YACD;gBACE,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;gBAClE,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,iBAAiB;4BACvB,SAAS,EAAE;gCACT,OAAO,EAAE,UAAU;gCACnB,EAAE,EAAE,gBAAgB;gCACpB,OAAO,EACL,yGAAyG;6BAC5G;yBACF;qBACF;oBACD,YAAY,EAAE,YAAY;iBAC3B;aACF;YACD;gBACE,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;gBAClE,QAAQ,EAAE;oBACR,OAAO,EACL,qFAAqF;oBACvF,YAAY,EAAE,MAAM;iBACrB;aACF;SACF;KACF;CACF,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from "./contract-suite.js";
2
2
  export * from "./conformance-kit.js";
3
+ export * from "./demo-scenario.js";
4
+ export { SERVICE_INVOICE_SCENARIO } from "./demo-scenarios/service-invoice.js";
3
5
  export { META_TOOL_CONTRACTS } from "../meta-tool-contract.js";
4
6
  export type { ContractedToolName } from "../meta-tool-contract.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAMrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAM/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from "./contract-suite.js";
2
2
  export * from "./conformance-kit.js";
3
+ export * from "./demo-scenario.js";
4
+ export { SERVICE_INVOICE_SCENARIO } from "./demo-scenarios/service-invoice.js";
3
5
  // Re-export the contract descriptors from the testing entrypoint too, so a
4
6
  // conformance-test author imports the suite and the descriptors it drives
5
7
  // from one place (`@codespar/types/testing`) rather than splitting imports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codespar/types",
3
- "version": "0.10.7",
3
+ "version": "0.10.10",
4
4
  "description": "Shared session interface contract for codespar runtimes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",