@tailormade/billit-mcp 1.1.1 → 1.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,MAAM,EAAE,YAAY;IAc1B,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAerG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,MAAM,EAAE,YAAY;IAc1B,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAgBrG"}
@@ -10,16 +10,16 @@ class BillitClient {
10
10
  "Content-Type": "application/json",
11
11
  "ApiKey": config.apiKey,
12
12
  };
13
- if (config.partyId) {
13
+ if (config.partyId !== undefined && config.partyId !== 0) {
14
14
  this.headers["PartyID"] = String(config.partyId);
15
15
  }
16
- if (config.contextPartyId) {
16
+ if (config.contextPartyId !== undefined && config.contextPartyId !== 0) {
17
17
  this.headers["ContextPartyID"] = String(config.contextPartyId);
18
18
  }
19
19
  }
20
20
  async request(method, path, body, partyIdOverride) {
21
21
  const headers = { ...this.headers };
22
- if (partyIdOverride)
22
+ if (partyIdOverride !== undefined)
23
23
  headers["PartyID"] = String(partyIdOverride);
24
24
  const res = await fetch(`${this.baseUrl}${path}`, {
25
25
  method,
@@ -27,7 +27,8 @@ class BillitClient {
27
27
  body: body ? JSON.stringify(body) : undefined,
28
28
  });
29
29
  if (!res.ok) {
30
- const text = await res.text().catch(() => "");
30
+ const raw = await res.text().catch(() => "");
31
+ const text = raw.length > 2000 ? raw.slice(0, 2000) + `… [truncated, ${raw.length} chars total]` : raw;
31
32
  throw new Error(`Billit ${res.status} ${method} ${path}: ${text}`);
32
33
  }
33
34
  if (res.status === 204)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";;;AAOA,MAAa,YAAY;IACd,OAAO,CAAS;IACR,OAAO,CAAyB;IAEjD,YAAY,MAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,uBAAuB,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG;YACb,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,eAAwB;QACrF,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,eAAe;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAChD,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAC9C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;CACF;AAjCD,oCAiCC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";;;AAOA,MAAa,YAAY;IACd,OAAO,CAAS;IACR,OAAO,CAAyB;IAEjD,YAAY,MAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,uBAAuB,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG;YACb,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,eAAwB;QACrF,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAChD,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;YACvG,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAC9C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;CACF;AAlCD,oCAkCC"}
package/dist/index.js CHANGED
@@ -23,10 +23,16 @@ function getRequiredEnv(name) {
23
23
  }
24
24
  async function main() {
25
25
  const apiKey = getRequiredEnv("BILLIT_API_KEY");
26
- const partyId = process.env["BILLIT_PARTY_ID"] ? parseInt(process.env["BILLIT_PARTY_ID"], 10) : 0;
27
- const contextPartyId = process.env["BILLIT_CONTEXT_PARTY_ID"]
28
- ? parseInt(process.env["BILLIT_CONTEXT_PARTY_ID"], 10)
29
- : undefined;
26
+ const rawPartyId = parseInt(process.env["BILLIT_PARTY_ID"] ?? "", 10);
27
+ if (process.env["BILLIT_PARTY_ID"] && Number.isNaN(rawPartyId)) {
28
+ console.error(`Warning: BILLIT_PARTY_ID="${process.env["BILLIT_PARTY_ID"]}" is not a valid number, falling back to 0`);
29
+ }
30
+ const partyId = Number.isNaN(rawPartyId) ? 0 : rawPartyId;
31
+ const rawContextPartyId = parseInt(process.env["BILLIT_CONTEXT_PARTY_ID"] ?? "", 10);
32
+ if (process.env["BILLIT_CONTEXT_PARTY_ID"] && Number.isNaN(rawContextPartyId)) {
33
+ console.error(`Warning: BILLIT_CONTEXT_PARTY_ID="${process.env["BILLIT_CONTEXT_PARTY_ID"]}" is not a valid number, ignoring`);
34
+ }
35
+ const contextPartyId = Number.isNaN(rawContextPartyId) ? undefined : rawContextPartyId;
30
36
  const client = new client_js_1.BillitClient({ apiKey, partyId, contextPartyId });
31
37
  const server = new mcp_js_1.McpServer({ name: "billit-mcp", version: pkg.version });
32
38
  (0, orders_js_1.registerOrderTools)(server, client);
@@ -40,5 +46,9 @@ async function main() {
40
46
  const transport = new stdio_js_1.StdioServerTransport();
41
47
  await server.connect(transport);
42
48
  }
49
+ process.on("unhandledRejection", (reason) => {
50
+ console.error("Unhandled rejection:", reason);
51
+ process.exit(1);
52
+ });
43
53
  main().catch((err) => { console.error(err); process.exit(1); });
44
54
  //# 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":";;;AACA,2BAAkC;AAClC,+BAA4B;AAC5B,oEAAoE;AACpE,wEAAiF;AAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACrF,+CAA+C;AAC/C,iDAAuD;AACvD,mDAAwD;AACxD,qDAA2D;AAC3D,iDAAwD;AACxD,uDAA6D;AAC7D,uDAA8D;AAC9D,uDAA8D;AAC9D,uDAA6D;AAE7D,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAC3D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC;QACtD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,IAAI,wBAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAE3E,IAAA,8BAAkB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAA,+BAAkB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAA,kCAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAA,+BAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAA,oCAAqB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,qCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAA,qCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAA,oCAAqB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAoE5E"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAwE5E"}
@@ -12,18 +12,7 @@ function registerDocumentTools(server, client) {
12
12
  skip: zod_1.z.coerce.number().optional().describe("Items to skip for pagination (default: 0)"),
13
13
  company_id: utils_js_1.companyId,
14
14
  }, async ({ filter, orderby, search, top, skip, company_id }) => {
15
- const params = new URLSearchParams();
16
- if (filter)
17
- params.set("$filter", filter);
18
- if (orderby)
19
- params.set("$orderby", orderby);
20
- if (search)
21
- params.set("fullTextSearch", search);
22
- if (top)
23
- params.set("$top", String(top));
24
- if (skip)
25
- params.set("$skip", String(skip));
26
- const qs = params.toString();
15
+ const qs = (0, utils_js_1.buildODataParams)({ filter, search, orderby, top, skip });
27
16
  const data = await client.request("GET", `/v1/documents${qs ? `?${qs}` : ""}`, undefined, company_id);
28
17
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
29
18
  });
@@ -34,19 +23,23 @@ function registerDocumentTools(server, client) {
34
23
  const data = await client.request("GET", `/v1/documents/${document_id}`, undefined, company_id);
35
24
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
36
25
  });
37
- server.tool("billit_upload_document", "Upload a document to Billit (e.g. an incoming invoice PDF for processing). Returns the created DocumentID. Next step: billit_submit_for_processing to have Billit parse the document.\n\nNOTE: file_base64 must be a base64-encoded string of the file content. EXAMPLE: for a PDF, encode the raw bytes as base64. Max file size depends on Billit account settings.", {
26
+ server.tool("billit_upload_document", (0, utils_js_1.withLlmTip)("Upload a document to Billit (e.g. an incoming invoice PDF for processing). Returns the created DocumentID. Next step: billit_submit_for_processing to have Billit parse the document.", "file_base64 must be a base64-encoded string of the file content (raw bytes base64). Max file size depends on Billit account settings."), {
38
27
  file_base64: zod_1.z.string().describe("Base64-encoded file content"),
39
28
  file_name: zod_1.z.string().describe("File name including extension (e.g. 'invoice-2026-001.pdf')"),
40
29
  content_type: zod_1.z.string().optional().describe("MIME type (default: 'application/pdf'). Other common values: 'image/jpeg', 'image/png'"),
30
+ dry_run: utils_js_1.coerceBool.describe("When true, preview the action without executing it (default: false)"),
41
31
  company_id: utils_js_1.companyId,
42
- }, async ({ file_base64, file_name, content_type, company_id }) => {
32
+ }, async ({ file_base64, file_name, content_type, dry_run, company_id }) => {
33
+ if (dry_run) {
34
+ return (0, utils_js_1.respond)(JSON.stringify({ dry_run: true, would: `Upload document '${file_name}' (${content_type ?? "application/pdf"})` }, null, 2));
35
+ }
43
36
  const body = {
44
37
  FileBase64: file_base64, FileName: file_name, ContentType: content_type ?? "application/pdf",
45
38
  };
46
39
  const data = await client.request("POST", "/v1/documents", body, company_id);
47
40
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
48
41
  });
49
- server.tool("billit_download_file", "Download a file by its UUID. File UUIDs are found in order responses (PDF of the invoice), document responses, or accountant feed items. Returns base64-encoded file content.\n\nCRITICAL: This endpoint uses a UUID (string like 'a1b2c3d4-...'), NOT a numeric ID. The fileID comes from order/document response fields, not from the DocumentID. Do not confuse DocumentID (numeric) with fileID (UUID).", {
42
+ server.tool("billit_download_file", (0, utils_js_1.withLlmTip)("Download a file by its UUID. File UUIDs are found in order responses (PDF of the invoice), document responses, or accountant feed items. Returns base64-encoded file content.", "ERROR: 404 on download CAUSE: passing numeric DocumentID instead of UUID fileID → FIX: use the UUID string (e.g. 'a1b2c3d4-...') from order/document response fields, NOT the numeric DocumentID."), {
50
43
  file_id: zod_1.z.string().describe("File UUID (e.g. 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'). Found in order or document response fields. This is NOT the numeric DocumentID."),
51
44
  company_id: utils_js_1.companyId,
52
45
  }, async ({ file_id, company_id }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"financial.d.ts","sourceRoot":"","sources":["../../src/tools/financial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAoL7E"}
1
+ {"version":3,"file":"financial.d.ts","sourceRoot":"","sources":["../../src/tools/financial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAoM7E"}
@@ -26,11 +26,11 @@ function registerFinancialTools(server, client) {
26
26
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
27
27
  });
28
28
  // ── billit_list_financial_transactions ─────────────────────────────
29
- server.tool("billit_list_financial_transactions", "List financial transactions in Billit (bank transactions, payments). Use to reconcile payments with orders. Supports full-text search, OData $filter and $orderby.\n\nEXAMPLES:\n- Recent first: orderby='ValueDate desc'\n- Date range: filter=\"ValueDate ge datetime'2026-01-01T00:00:00' and ValueDate le datetime'2026-03-31T23:59:59'\"\n- By counterparty: filter=\"NameCounterParty eq 'Mehmet'\"\n- Combined: orderby='ValueDate desc', filter=\"ValueDate ge datetime'2026-01-01T00:00:00'\"\n\nNOTE: max page size is 120. Date filter requires datetime'' syntax.", {
29
+ server.tool("billit_list_financial_transactions", (0, utils_js_1.withLlmTip)("List financial transactions in Billit (bank transactions, payments). Use to reconcile payments with orders. Supports full-text search, OData $filter and $orderby.\n\nEXAMPLES:\n- Recent first: orderby='ValueDate desc'\n- Date range: filter=\"ValueDate ge datetime'2026-01-01T00:00:00' and ValueDate le datetime'2026-03-31T23:59:59'\"\n- By counterparty: filter=\"NameCounterParty eq 'Acme Corp'\"\n- Combined: orderby='ValueDate desc', filter=\"ValueDate ge datetime'2026-01-01T00:00:00'\"", "Max page size is 120. Date filter requires datetime'' syntax."), {
30
30
  search: zod_1.z.string().optional()
31
31
  .describe("Full-text search on transaction description, reference, or amount"),
32
32
  filter: zod_1.z.string().optional()
33
- .describe("OData $filter expression. Date syntax requires datetime'': \"ValueDate ge datetime'2026-01-01T00:00:00'\". Other examples: \"NameCounterParty eq 'Mehmet Eryilmaz'\", \"TotalAmount ge 500\""),
33
+ .describe("OData $filter expression. Date syntax requires datetime'': \"ValueDate ge datetime'2026-01-01T00:00:00'\". Other examples: \"NameCounterParty eq 'Acme Corp'\", \"TotalAmount ge 500\""),
34
34
  orderby: zod_1.z.string().optional()
35
35
  .describe("OData $orderby expression. Examples: 'ValueDate desc', 'TotalAmount desc', 'ValueDate asc'"),
36
36
  top: zod_1.z.coerce.number().optional()
@@ -39,31 +39,24 @@ function registerFinancialTools(server, client) {
39
39
  .describe("Items to skip for pagination (default: 0)"),
40
40
  company_id: utils_js_1.companyId,
41
41
  }, async ({ search, filter, orderby, top, skip, company_id }) => {
42
- const params = new URLSearchParams();
43
- if (search)
44
- params.set("fullTextSearch", search);
45
- if (filter)
46
- params.set("$filter", filter);
47
- if (orderby)
48
- params.set("$orderby", orderby);
49
- if (top)
50
- params.set("$top", String(top));
51
- if (skip)
52
- params.set("$skip", String(skip));
53
- const qs = params.toString();
42
+ const qs = (0, utils_js_1.buildODataParams)({ filter, search, orderby, top, skip });
54
43
  const data = await client.request("GET", `/v1/financialTransactions${qs ? `?${qs}` : ""}`, undefined, company_id);
55
44
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
56
45
  });
57
46
  // ── billit_import_financial_transactions ───────────────────────────
58
- server.tool("billit_import_financial_transactions", "Import bank transactions from a CODA or MT940 bank statement file. Use to bulk-import bank transactions for payment reconciliation.\n\nNOTE: Supported formats are CODA (Belgian bank format) and MT940 (SWIFT bank format). file_base64 must be base64-encoded file content.", {
47
+ server.tool("billit_import_financial_transactions", (0, utils_js_1.withLlmTip)("Import bank transactions from a CODA or MT940 bank statement file. Use to bulk-import bank transactions for payment reconciliation.", "Supported formats: CODA (Belgian bank format) and MT940 (SWIFT bank format). file_base64 must be base64-encoded file content."), {
59
48
  file_base64: zod_1.z.string()
60
49
  .describe("Base64-encoded CODA or MT940 bank statement file content"),
61
50
  file_name: zod_1.z.string()
62
51
  .describe("File name (e.g. 'statement-2026-01.coda' or 'statement.mt940')"),
63
- content_type: zod_1.z.string()
64
- .describe("MIME type of the file"),
52
+ content_type: zod_1.z.string().optional()
53
+ .describe("MIME type of the file (e.g. 'application/octet-stream'). Auto-detected from file_name if omitted."),
54
+ dry_run: utils_js_1.coerceBool.describe("When true, preview the action without executing it (default: false)"),
65
55
  company_id: utils_js_1.companyId,
66
- }, async ({ file_base64, file_name, content_type, company_id }) => {
56
+ }, async ({ file_base64, file_name, content_type, dry_run, company_id }) => {
57
+ if (dry_run) {
58
+ return (0, utils_js_1.respond)(JSON.stringify({ dry_run: true, would: `Import financial transactions from '${file_name}'` }, null, 2));
59
+ }
67
60
  const body = { FileBase64: file_base64, FileName: file_name, ContentType: content_type };
68
61
  const data = await client.request("POST", "/v1/financialTransactions/commands/import", body, company_id);
69
62
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
@@ -78,14 +71,7 @@ function registerFinancialTools(server, client) {
78
71
  .describe("Items to skip for pagination (default: 0)"),
79
72
  company_id: utils_js_1.companyId,
80
73
  }, async ({ orderby, top, skip, company_id }) => {
81
- const params = new URLSearchParams();
82
- if (orderby)
83
- params.set("$orderby", orderby);
84
- if (top)
85
- params.set("$top", String(top));
86
- if (skip)
87
- params.set("$skip", String(skip));
88
- const qs = params.toString();
74
+ const qs = (0, utils_js_1.buildODataParams)({ orderby, top, skip });
89
75
  const data = await client.request("GET", `/v1/reports${qs ? `?${qs}` : ""}`, undefined, company_id);
90
76
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
91
77
  });
@@ -99,21 +85,31 @@ function registerFinancialTools(server, client) {
99
85
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
100
86
  });
101
87
  // ── billit_list_accountant_feeds ──────────────────────────────────
102
- server.tool("billit_list_accountant_feeds", "List all accountant feeds and their pending items. Feeds contain newly exported orders and documents for accountant processing. Poll at most once per minute. Next steps: billit_download_accountant_file to download items, billit_confirm_accountant_feed to confirm processed items.\n\nWARNING: Do not poll more than once per minute this is a rate-limited endpoint. After downloading feed items, always confirm them with billit_confirm_accountant_feed to remove them from the feed.", { company_id: utils_js_1.companyId }, async ({ company_id }) => {
88
+ server.tool("billit_list_accountant_feeds", (0, utils_js_1.withLlmTip)("List all accountant feeds and their pending items. Feeds contain newly exported orders and documents for accountant processing. Poll at most once per minute. Next steps: billit_download_accountant_file to download items, billit_confirm_accountant_feed to confirm processed items.", "ERROR: rate limit hit → CAUSE: polling more than once per minute FIX: wait at least 60s between calls.\nAfter downloading feed items, always confirm them with billit_confirm_accountant_feed to remove them from the feed."), { company_id: utils_js_1.companyId }, async ({ company_id }) => {
103
89
  const data = await client.request("GET", "/v1/accountant/feeds", undefined, company_id);
104
90
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
105
91
  });
106
92
  // ── billit_register_accountant_feed ───────────────────────────────
107
- server.tool("billit_register_accountant_feed", "Register a new accountant feed. All newly exported orders and documents will appear in this feed for the accountant to download. One-time setup per accountant integration.", { company_id: utils_js_1.companyId }, async ({ company_id }) => {
93
+ server.tool("billit_register_accountant_feed", "Register a new accountant feed. All newly exported orders and documents will appear in this feed for the accountant to download. One-time setup per accountant integration.", {
94
+ dry_run: utils_js_1.coerceBool.describe("When true, preview the action without executing it (default: false)"),
95
+ company_id: utils_js_1.companyId,
96
+ }, async ({ dry_run, company_id }) => {
97
+ if (dry_run) {
98
+ return (0, utils_js_1.respond)(JSON.stringify({ dry_run: true, would: "Register new accountant feed" }, null, 2));
99
+ }
108
100
  const data = await client.request("POST", "/v1/accountant/feeds", undefined, company_id);
109
101
  return (0, utils_js_1.respond)(JSON.stringify(data ?? { success: true }, null, 2));
110
102
  });
111
103
  // ── billit_confirm_accountant_feed ────────────────────────────────
112
- server.tool("billit_confirm_accountant_feed", "Confirm that feed items have been successfully downloaded. This removes them from the feed list. Always call this after processing items from billit_list_accountant_feeds.\n\nCRITICAL: Always confirm downloaded items without confirmation, the same items will reappear on the next poll. Pass the feed item IDs from the billit_list_accountant_feeds response.", {
104
+ server.tool("billit_confirm_accountant_feed", (0, utils_js_1.withLlmTip)("Confirm that feed items have been successfully downloaded. This removes them from the feed list. Always call this after processing items from billit_list_accountant_feeds.", "ERROR: duplicate items on next poll → CAUSE: items not confirmed after download FIX: always call this after downloading feed items, passing the feed item IDs from billit_list_accountant_feeds response."), {
113
105
  feed_item_ids: zod_1.z.array(zod_1.z.string())
114
106
  .describe("Array of feed item ID strings to confirm as downloaded. Get these from billit_list_accountant_feeds response."),
107
+ dry_run: utils_js_1.coerceBool.describe("When true, preview the action without executing it (default: false)"),
115
108
  company_id: utils_js_1.companyId,
116
- }, async ({ feed_item_ids, company_id }) => {
109
+ }, async ({ feed_item_ids, dry_run, company_id }) => {
110
+ if (dry_run) {
111
+ return (0, utils_js_1.respond)(JSON.stringify({ dry_run: true, would: `Confirm ${feed_item_ids.length} accountant feed item(s)` }, null, 2));
112
+ }
117
113
  const data = await client.request("POST", "/v1/accountant/feeds/confirm", { FeedItemIds: feed_item_ids }, company_id);
118
114
  return (0, utils_js_1.respond)(JSON.stringify(data ?? { success: true }, null, 2));
119
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"financial.js","sourceRoot":"","sources":["../../src/tools/financial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"financial.js","sourceRoot":"","sources":["../../src/tools/financial.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAsNzE"}
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAqPzE"}
@@ -3,9 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerOrderTools = registerOrderTools;
4
4
  const zod_1 = require("zod");
5
5
  const utils_js_1 = require("./utils.js");
6
- const coerceBool = zod_1.z.union([zod_1.z.boolean(), zod_1.z.string().transform(v => v === "true")]).optional();
7
6
  function registerOrderTools(server, client) {
8
- server.tool("billit_list_orders", "List orders from Billit. Returns paginated array of orders (invoices, credit notes, offers). Use direction='Income' for outgoing (sales) orders, direction='Cost' for incoming (purchase) orders. Supports OData filtering and full-text search. Next steps: billit_get_order for full details including order lines, billit_confirm_order to approve, billit_register_payment when paid.\n\nWARNING: OrderDirection 'Income' means money coming IN (= outgoing invoices you send to customers). OrderDirection 'Cost' means money going OUT (= incoming invoices from suppliers). This is counter-intuitive. NOTE: fullTextSearch is a separate query param do NOT put it in the OData $filter. OData date filter syntax: LastModified ge datetime'2026-01-01T00:00:00'. NOTE: PartyName may be empty in list responses — use billit_get_order for full party/supplier details.", {
7
+ server.tool("billit_list_orders", (0, utils_js_1.withLlmTip)("List orders from Billit. Returns paginated array of orders (invoices, credit notes, offers). Use direction='Income' for outgoing (sales) orders, direction='Cost' for incoming (purchase) orders. Supports OData filtering and full-text search. Next steps: billit_get_order for full details including order lines, billit_confirm_order to approve, billit_register_payment when paid.", "OrderDirection naming is counter-intuitive: 'Income' = outgoing invoices you send to customers, 'Cost' = incoming invoices from suppliers.\nERROR: fullTextSearch in $filter → CAUSE: fullTextSearch is a separate query param FIX: pass as 'fullTextSearch' param, not inside $filter.\nOData date filter syntax: LastModified ge datetime'2026-01-01T00:00:00'.\nPartyName may be empty in list responses — use billit_get_order for full party/supplier details."), {
9
8
  direction: zod_1.z.enum(["Income", "Cost"]).optional()
10
9
  .describe("Filter by order direction: 'Income' = outgoing sales invoices (money coming in), 'Cost' = incoming purchase invoices (money going out)"),
11
10
  order_type: zod_1.z.enum(["Invoice", "CreditNote", "Offer"]).optional()
@@ -14,7 +13,7 @@ function registerOrderTools(server, client) {
14
13
  .describe("ISO date string — only orders modified after this date. Used in OData filter: LastModified ge datetime'YYYY-MM-DDTHH:MM:SS'"),
15
14
  approval_status: zod_1.z.enum(["none", "approved", "rejected"]).optional()
16
15
  .describe("Filter by approval status: 'none' (pending), 'approved', 'rejected'"),
17
- paid: coerceBool.describe("Filter by payment status: true = paid, false = unpaid"),
16
+ paid: utils_js_1.coerceBool.describe("Filter by payment status: true = paid, false = unpaid"),
18
17
  search: zod_1.z.string().optional()
19
18
  .describe("Full-text search across order fields (order number, customer name, reference). Sent as separate 'fullTextSearch' query param, NOT in OData filter."),
20
19
  orderby: zod_1.z.string().optional()
@@ -30,24 +29,17 @@ function registerOrderTools(server, client) {
30
29
  filters.push(`OrderDirection eq '${direction}'`);
31
30
  if (order_type)
32
31
  filters.push(`OrderType eq '${order_type}'`);
33
- if (modified_after)
32
+ if (modified_after) {
33
+ if (!/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$/.test(modified_after)) {
34
+ return (0, utils_js_1.respond)("Error: modified_after must be ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)");
35
+ }
34
36
  filters.push(`LastModified ge datetime'${modified_after}'`);
37
+ }
35
38
  if (approval_status)
36
39
  filters.push(`ApprovalStatus eq '${approval_status}'`);
37
40
  if (paid !== undefined)
38
41
  filters.push(`Paid eq ${paid}`);
39
- const params = new URLSearchParams();
40
- if (filters.length)
41
- params.set("$filter", filters.join(" and "));
42
- if (search)
43
- params.set("fullTextSearch", search);
44
- if (orderby)
45
- params.set("$orderby", orderby);
46
- if (top)
47
- params.set("$top", String(top));
48
- if (skip)
49
- params.set("$skip", String(skip));
50
- const qs = params.toString();
42
+ const qs = (0, utils_js_1.buildODataParams)({ filter: filters.length ? filters.join(" and ") : undefined, search, orderby, top, skip });
51
43
  const data = await client.request("GET", `/v1/orders${qs ? `?${qs}` : ""}`, undefined, company_id);
52
44
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
53
45
  });
@@ -58,7 +50,7 @@ function registerOrderTools(server, client) {
58
50
  const data = await client.request("GET", `/v1/orders/${order_id}`, undefined, company_id);
59
51
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
60
52
  });
61
- server.tool("billit_create_order", "Create a new order (invoice or credit note) in Billit. For outgoing sales invoices use order_direction='Income'. For incoming purchase invoices use order_direction='Cost'. Returns the created order ID. Next steps: billit_confirm_order to set ApprovalStatus=approved, billit_send_order to email/Peppol.\n\nNOTE: 'lines' parameter must be a JSON string containing an array: '[{\"description\":\"Service\",\"quantity\":1,\"unit_price_excl\":100,\"vat_percentage\":21}]'. EXAMPLE: to create a sales invoice for customer BE0123456789, use order_direction='Income', order_type='Invoice'.", {
53
+ server.tool("billit_create_order", (0, utils_js_1.withLlmTip)("Create a new order (invoice or credit note) in Billit. For outgoing sales invoices use order_direction='Income'. For incoming purchase invoices use order_direction='Cost'. Returns the created order ID. Next steps: billit_confirm_order to set ApprovalStatus=approved, billit_send_order to email/Peppol.", "ERROR: lines param not parsed → CAUSE: must be a JSON string array FIX: pass '[{\"description\":\"Service\",\"quantity\":1,\"unit_price_excl\":100,\"vat_percentage\":21}]'.\nExample: sales invoice for BE0123456789 order_direction='Income', order_type='Invoice'."), {
62
54
  order_type: zod_1.z.enum(["Invoice", "CreditNote"]).describe("'Invoice' or 'CreditNote'"),
63
55
  order_direction: zod_1.z.enum(["Income", "Cost"]).describe("'Income' = outgoing sales invoice (you send to customer), 'Cost' = incoming purchase invoice (from supplier)"),
64
56
  order_date: zod_1.z.string().describe("Invoice date (YYYY-MM-DD)"),
@@ -76,6 +68,7 @@ function registerOrderTools(server, client) {
76
68
  payment_reference: zod_1.z.string().optional().describe("Structured payment reference (e.g. +++084/2613/66074+++)"),
77
69
  currency: zod_1.z.string().optional().describe("Currency code (default: EUR)"),
78
70
  lines: zod_1.z.string().describe("JSON string array of order lines: [{\"description\": \"...\", \"quantity\": 1, \"unit_price_excl\": 100.0, \"vat_percentage\": 21}]"),
71
+ dry_run: utils_js_1.coerceBool.describe("When true, validates input and returns what would be created without calling the API (default: false)"),
79
72
  company_id: utils_js_1.companyId,
80
73
  }, async (params) => {
81
74
  let parsedLines;
@@ -114,21 +107,25 @@ function registerOrderTools(server, client) {
114
107
  ...(params.payment_reference && { PaymentReference: params.payment_reference }),
115
108
  ...(params.currency && { Currency: params.currency }),
116
109
  };
110
+ if (params.dry_run) {
111
+ return (0, utils_js_1.respond)(`Dry run: would create ${params.order_type} (${params.order_direction}) for ${params.customer_name}. No changes made.`);
112
+ }
117
113
  const data = await client.request("POST", "/v1/orders", body, params.company_id);
118
114
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
119
115
  });
120
- server.tool("billit_update_order", "Update a limited set of fields on an existing order: payment status, send status, approval status, internal info, account code, export flags. Only include fields you want to change — absent fields are not modified.\n\nNOTE: Only fields present in the request are updated. To mark an order as paid, provide both paid=true and paid_date. To approve use billit_confirm_order (shortcut) or set approval_status='approved' here.", {
116
+ server.tool("billit_update_order", (0, utils_js_1.withLlmTip)("Update a limited set of fields on an existing order: payment status, send status, approval status, internal info, account code, export flags. Only include fields you want to change — absent fields are not modified.", "Only fields present in the request are updated. To mark as paid, provide both paid=true and paid_date. To approve use billit_confirm_order (shortcut) or set approval_status='approved' here."), {
121
117
  order_id: zod_1.z.coerce.number().describe("Numeric order ID to update"),
122
- paid: coerceBool.describe("Set to true to mark order as paid"),
118
+ paid: utils_js_1.coerceBool.describe("Set to true to mark order as paid"),
123
119
  paid_date: zod_1.z.string().optional().describe("Date payment was received (YYYY-MM-DD), required when setting paid=true"),
124
- is_sent: coerceBool.describe("Mark order as sent to customer"),
120
+ is_sent: utils_js_1.coerceBool.describe("Mark order as sent to customer"),
125
121
  approval_status: zod_1.z.enum(["none", "approved", "rejected"]).optional().describe("'none', 'approved', or 'rejected' — controls Billit processing"),
126
122
  internal_info: zod_1.z.string().optional().describe("Internal note/memo not visible to customer"),
127
123
  account_code: zod_1.z.string().optional().describe("Accounting code for bookkeeping export"),
128
- invoiced: coerceBool.describe("Mark as invoiced (for offers)"),
129
- exported_to_connector: coerceBool.describe("Mark as exported to external accounting connector"),
124
+ invoiced: utils_js_1.coerceBool.describe("Mark as invoiced (for offers)"),
125
+ exported_to_connector: utils_js_1.coerceBool.describe("Mark as exported to external accounting connector"),
126
+ dry_run: utils_js_1.coerceBool.describe("When true, returns what would be updated without calling the API (default: false)"),
130
127
  company_id: utils_js_1.companyId,
131
- }, async ({ order_id, paid, paid_date, is_sent, approval_status, internal_info, account_code, invoiced, exported_to_connector, company_id }) => {
128
+ }, async ({ order_id, paid, paid_date, is_sent, approval_status, internal_info, account_code, invoiced, exported_to_connector, dry_run, company_id }) => {
132
129
  const body = {};
133
130
  if (paid !== undefined)
134
131
  body.Paid = paid;
@@ -146,19 +143,26 @@ function registerOrderTools(server, client) {
146
143
  body.Invoiced = invoiced;
147
144
  if (exported_to_connector !== undefined)
148
145
  body.ExportedToConnector = exported_to_connector;
146
+ if (dry_run) {
147
+ return (0, utils_js_1.respond)(`Dry run: would update order ${order_id} with ${JSON.stringify(body)}. No changes made.`);
148
+ }
149
149
  const data = await client.request("PATCH", `/v1/orders/${order_id}`, body, company_id);
150
150
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
151
151
  });
152
152
  server.tool("billit_confirm_order", "Shortcut to approve an order for Billit processing. Sets ApprovalStatus to 'approved'. Required before Billit will process/send the invoice. Equivalent to billit_update_order with approval_status='approved'.", {
153
153
  order_id: zod_1.z.coerce.number().describe("Numeric order ID to approve"),
154
+ dry_run: utils_js_1.coerceBool.describe("When true, returns what would happen without calling the API (default: false)"),
154
155
  company_id: utils_js_1.companyId,
155
- }, async ({ order_id, company_id }) => {
156
+ }, async ({ order_id, dry_run, company_id }) => {
157
+ if (dry_run) {
158
+ return (0, utils_js_1.respond)(`Dry run: would confirm (approve) order ${order_id}. No changes made.`);
159
+ }
156
160
  const data = await client.request("PATCH", `/v1/orders/${order_id}`, { ApprovalStatus: "approved" }, company_id);
157
161
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
158
162
  });
159
163
  server.tool("billit_delete_order", "Delete an order permanently. Typically only applicable for draft or rejected orders. Supports dry_run=true to preview without deleting.", {
160
164
  order_id: zod_1.z.coerce.number().describe("Numeric order ID to delete"),
161
- dry_run: coerceBool.describe("When true, simulates the delete without making changes (default: false)"),
165
+ dry_run: utils_js_1.coerceBool.describe("When true, simulates the delete without making changes (default: false)"),
162
166
  company_id: utils_js_1.companyId,
163
167
  }, async ({ order_id, dry_run, company_id }) => {
164
168
  if (dry_run) {
@@ -172,18 +176,26 @@ function registerOrderTools(server, client) {
172
176
  amount: zod_1.z.coerce.number().describe("Payment amount as decimal (e.g. 121.00)"),
173
177
  payment_date: zod_1.z.string().describe("Date payment was received (YYYY-MM-DD)"),
174
178
  payment_reference: zod_1.z.string().optional().describe("Payment reference or bank transaction ID"),
179
+ dry_run: utils_js_1.coerceBool.describe("When true, returns what would be registered without calling the API (default: false)"),
175
180
  company_id: utils_js_1.companyId,
176
- }, async ({ order_id, amount, payment_date, payment_reference, company_id }) => {
181
+ }, async ({ order_id, amount, payment_date, payment_reference, dry_run, company_id }) => {
177
182
  const body = { Amount: amount, PaymentDate: payment_date };
178
183
  if (payment_reference)
179
184
  body.PaymentReference = payment_reference;
185
+ if (dry_run) {
186
+ return (0, utils_js_1.respond)(`Dry run: would register payment of ${amount} on order ${order_id} for ${payment_date}. No changes made.`);
187
+ }
180
188
  const data = await client.request("POST", `/v1/orders/${order_id}/payments`, body, company_id);
181
189
  return (0, utils_js_1.respond)(JSON.stringify(data, null, 2));
182
190
  });
183
- server.tool("billit_send_order", "Send one or more orders to the customer via email or Peppol (depending on customer configuration). Returns immediately — delivery is async. Prerequisites: order must be confirmed (ApprovalStatus=approved). Use billit_peppol_lookup_participant first to check if customer is on Peppol.\n\nNOTE: Sending method (email vs Peppol) is determined by Billit based on customer configuration. To force Peppol, use billit_peppol_send_order instead. CRITICAL: order must have ApprovalStatus='approved' before sending use billit_confirm_order first.", {
191
+ server.tool("billit_send_order", (0, utils_js_1.withLlmTip)("Send one or more orders to the customer via email or Peppol (depending on customer configuration). Returns immediately — delivery is async. Prerequisites: order must be confirmed (ApprovalStatus=approved). Use billit_peppol_lookup_participant first to check if customer is on Peppol.", "Sending method (email vs Peppol) is determined by Billit based on customer config. To force Peppol, use billit_peppol_send_order instead.\nERROR: send fails → CAUSE: order not approved FIX: call billit_confirm_order first to set ApprovalStatus='approved'."), {
184
192
  order_ids: zod_1.z.array(zod_1.z.number()).describe("Array of numeric order IDs to send (can send multiple at once)"),
193
+ dry_run: utils_js_1.coerceBool.describe("When true, returns what would be sent without calling the API (default: false)"),
185
194
  company_id: utils_js_1.companyId,
186
- }, async ({ order_ids, company_id }) => {
195
+ }, async ({ order_ids, dry_run, company_id }) => {
196
+ if (dry_run) {
197
+ return (0, utils_js_1.respond)(`Dry run: would send order(s) ${order_ids.join(", ")}. No changes made.`);
198
+ }
187
199
  const data = await client.request("POST", "/v1/orders/commands/send", { OrderIDs: order_ids }, company_id);
188
200
  return (0, utils_js_1.respond)(JSON.stringify(data ?? { sent: order_ids }, null, 2));
189
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":";;AAKA,gDAqPC;AAzPD,6BAAwB;AAExB,yCAA0F;AAE1F,SAAgB,kBAAkB,CAAC,MAAiB,EAAE,MAAoB;IACxE,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,IAAA,qBAAU,EACR,2XAA2X,EAC3X,ucAAuc,CACxc,EACD;QACE,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;aAC7C,QAAQ,CAAC,wIAAwI,CAAC;QACrJ,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;aAC9D,QAAQ,CAAC,qDAAqD,CAAC;QAClE,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAClC,QAAQ,CAAC,6HAA6H,CAAC;QAC1I,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;aACjE,QAAQ,CAAC,qEAAqE,CAAC;QAClF,IAAI,EAAE,qBAAU,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAClF,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC1B,QAAQ,CAAC,oJAAoJ,CAAC;QACjK,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,uGAAuG,CAAC;QACpH,GAAG,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC/B,QAAQ,CAAC,2CAA2C,CAAC;QACxD,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;QACjH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,SAAS,GAAG,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC;QAC7D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,6CAA6C,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxE,OAAO,IAAA,kBAAO,EAAC,mFAAmF,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,4BAA4B,cAAc,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,eAAe;YAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,eAAe,GAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,IAAA,2BAAgB,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACxH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACnG,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,uTAAuT,EACvT;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACvF,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1F,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,IAAA,qBAAU,EACR,+SAA+S,EAC/S,2QAA2Q,CAC5Q,EACD;QACE,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACnF,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,8GAA8G,CAAC;QACpK,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC5D,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACpE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC9E,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACxE,iBAAiB,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACxG,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9D,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACvE,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC1D,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/D,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC9E,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5E,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;QAC7G,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACxE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qIAAqI,CAAC;QACjK,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,uGAAuG,CAAC;QACrI,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,WAEF,CAAC;QACH,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAA,kBAAO,EACZ,6EAA6E;gBAC7E,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAA4B;YACpC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,cAAc,EAAE,MAAM,CAAC,eAAe;YACtC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC,aAAa;gBAC1B,SAAS,EAAE,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;gBACxE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC9D,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC9D,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACvE,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7D,WAAW,EAAE,gBAAgB;wBAC7B,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;wBACjE,GAAG,CAAC,MAAM,CAAC,sBAAsB,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;wBACrF,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;wBAC3D,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBACpE,WAAW,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;qBAC7C,CAAC,CAAC,CAAC,CAAC,SAAS;aACf;YACD,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,cAAc;gBACnH,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;aAC/C,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/E,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;SACtD,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,IAAA,kBAAO,EAAC,yBAAyB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,eAAe,SAAS,MAAM,CAAC,aAAa,oBAAoB,CAAC,CAAC;QACzI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACjF,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,IAAA,qBAAU,EACR,wNAAwN,EACxN,+LAA+L,CAChM,EACD;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClE,IAAI,EAAE,qBAAU,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC9D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QACpH,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC9D,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QAC/I,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC3F,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACtF,QAAQ,EAAE,qBAAU,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC9D,qBAAqB,EAAE,qBAAU,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC/F,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QACjH,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QACnJ,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACzC,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QACvD,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACjD,IAAI,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;QACzE,IAAI,aAAa,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QACnE,IAAI,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAChE,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACrD,IAAI,qBAAqB,KAAK,SAAS;YAAE,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;QAC1F,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,kBAAO,EAAC,+BAA+B,QAAQ,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACvF,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,iNAAiN,EACjN;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACnE,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,+EAA+E,CAAC;QAC7G,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,kBAAO,EAAC,0CAA0C,QAAQ,oBAAoB,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;QACjH,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,yIAAyI,EACzI;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClE,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QACvG,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,kBAAO,EAAC,+BAA+B,QAAQ,oBAAoB,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChF,OAAO,IAAA,kBAAO,EAAC,SAAS,QAAQ,WAAW,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,kMAAkM,EAClM;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACxD,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAC7E,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC3E,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAC7F,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,sFAAsF,CAAC;QACpH,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QACnF,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QACpF,IAAI,iBAAiB;YAAE,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,kBAAO,EAAC,sCAAsC,MAAM,aAAa,QAAQ,QAAQ,YAAY,oBAAoB,CAAC,CAAC;QAC5H,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,QAAQ,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/F,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,IAAA,qBAAU,EACR,6RAA6R,EAC7R,mQAAmQ,CACpQ,EACD;QACE,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QACzG,OAAO,EAAE,qBAAU,CAAC,QAAQ,CAAC,gFAAgF,CAAC;QAC9G,UAAU,EAAE,oBAAS;KACtB,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,kBAAO,EAAC,gCAAgC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3G,OAAO,IAAA,kBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parties.d.ts","sourceRoot":"","sources":["../../src/tools/parties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAyHzE"}
1
+ {"version":3,"file":"parties.d.ts","sourceRoot":"","sources":["../../src/tools/parties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAiIzE"}