storno-cli 1.0.5

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 (188) hide show
  1. package/LICENSE +53 -0
  2. package/README.md +257 -0
  3. package/TOOLS.md +3309 -0
  4. package/dist/client.d.ts +42 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +162 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/config.d.ts +22 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +30 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/index.d.ts +37 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +172 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/tools/accounting-export.d.ts +14 -0
  17. package/dist/tools/accounting-export.d.ts.map +1 -0
  18. package/dist/tools/accounting-export.js +97 -0
  19. package/dist/tools/accounting-export.js.map +1 -0
  20. package/dist/tools/admin.d.ts +8 -0
  21. package/dist/tools/admin.d.ts.map +1 -0
  22. package/dist/tools/admin.js +98 -0
  23. package/dist/tools/admin.js.map +1 -0
  24. package/dist/tools/anaf.d.ts +8 -0
  25. package/dist/tools/anaf.d.ts.map +1 -0
  26. package/dist/tools/anaf.js +115 -0
  27. package/dist/tools/anaf.js.map +1 -0
  28. package/dist/tools/api-keys.d.ts +8 -0
  29. package/dist/tools/api-keys.d.ts.map +1 -0
  30. package/dist/tools/api-keys.js +29 -0
  31. package/dist/tools/api-keys.js.map +1 -0
  32. package/dist/tools/auth.d.ts +8 -0
  33. package/dist/tools/auth.d.ts.map +1 -0
  34. package/dist/tools/auth.js +187 -0
  35. package/dist/tools/auth.js.map +1 -0
  36. package/dist/tools/backup.d.ts +62 -0
  37. package/dist/tools/backup.d.ts.map +1 -0
  38. package/dist/tools/backup.js +167 -0
  39. package/dist/tools/backup.js.map +1 -0
  40. package/dist/tools/bank-accounts.d.ts +14 -0
  41. package/dist/tools/bank-accounts.d.ts.map +1 -0
  42. package/dist/tools/bank-accounts.js +140 -0
  43. package/dist/tools/bank-accounts.js.map +1 -0
  44. package/dist/tools/borderou.d.ts +14 -0
  45. package/dist/tools/borderou.d.ts.map +1 -0
  46. package/dist/tools/borderou.js +233 -0
  47. package/dist/tools/borderou.js.map +1 -0
  48. package/dist/tools/clients.d.ts +14 -0
  49. package/dist/tools/clients.d.ts.map +1 -0
  50. package/dist/tools/clients.js +353 -0
  51. package/dist/tools/clients.js.map +1 -0
  52. package/dist/tools/companies.d.ts +8 -0
  53. package/dist/tools/companies.d.ts.map +1 -0
  54. package/dist/tools/companies.js +211 -0
  55. package/dist/tools/companies.js.map +1 -0
  56. package/dist/tools/company-registry.d.ts +31 -0
  57. package/dist/tools/company-registry.d.ts.map +1 -0
  58. package/dist/tools/company-registry.js +51 -0
  59. package/dist/tools/company-registry.js.map +1 -0
  60. package/dist/tools/cpv-codes.d.ts +17 -0
  61. package/dist/tools/cpv-codes.d.ts.map +1 -0
  62. package/dist/tools/cpv-codes.js +28 -0
  63. package/dist/tools/cpv-codes.js.map +1 -0
  64. package/dist/tools/dashboard.d.ts +23 -0
  65. package/dist/tools/dashboard.d.ts.map +1 -0
  66. package/dist/tools/dashboard.js +37 -0
  67. package/dist/tools/dashboard.js.map +1 -0
  68. package/dist/tools/defaults.d.ts +14 -0
  69. package/dist/tools/defaults.d.ts.map +1 -0
  70. package/dist/tools/defaults.js +29 -0
  71. package/dist/tools/defaults.js.map +1 -0
  72. package/dist/tools/delivery-notes.d.ts +185 -0
  73. package/dist/tools/delivery-notes.d.ts.map +1 -0
  74. package/dist/tools/delivery-notes.js +525 -0
  75. package/dist/tools/delivery-notes.js.map +1 -0
  76. package/dist/tools/document-series.d.ts +54 -0
  77. package/dist/tools/document-series.d.ts.map +1 -0
  78. package/dist/tools/document-series.js +171 -0
  79. package/dist/tools/document-series.js.map +1 -0
  80. package/dist/tools/efactura-messages.d.ts +34 -0
  81. package/dist/tools/efactura-messages.d.ts.map +1 -0
  82. package/dist/tools/efactura-messages.js +51 -0
  83. package/dist/tools/efactura-messages.js.map +1 -0
  84. package/dist/tools/einvoice.d.ts +8 -0
  85. package/dist/tools/einvoice.d.ts.map +1 -0
  86. package/dist/tools/einvoice.js +170 -0
  87. package/dist/tools/einvoice.js.map +1 -0
  88. package/dist/tools/email-templates.d.ts +14 -0
  89. package/dist/tools/email-templates.d.ts.map +1 -0
  90. package/dist/tools/email-templates.js +104 -0
  91. package/dist/tools/email-templates.js.map +1 -0
  92. package/dist/tools/exchange-rates.d.ts +14 -0
  93. package/dist/tools/exchange-rates.d.ts.map +1 -0
  94. package/dist/tools/exchange-rates.js +55 -0
  95. package/dist/tools/exchange-rates.js.map +1 -0
  96. package/dist/tools/exports.d.ts +14 -0
  97. package/dist/tools/exports.d.ts.map +1 -0
  98. package/dist/tools/exports.js +25 -0
  99. package/dist/tools/exports.js.map +1 -0
  100. package/dist/tools/import.d.ts +14 -0
  101. package/dist/tools/import.d.ts.map +1 -0
  102. package/dist/tools/import.js +221 -0
  103. package/dist/tools/import.js.map +1 -0
  104. package/dist/tools/invitations.d.ts +8 -0
  105. package/dist/tools/invitations.d.ts.map +1 -0
  106. package/dist/tools/invitations.js +70 -0
  107. package/dist/tools/invitations.js.map +1 -0
  108. package/dist/tools/invoices.d.ts +14 -0
  109. package/dist/tools/invoices.d.ts.map +1 -0
  110. package/dist/tools/invoices.js +1191 -0
  111. package/dist/tools/invoices.js.map +1 -0
  112. package/dist/tools/licensing.d.ts +8 -0
  113. package/dist/tools/licensing.d.ts.map +1 -0
  114. package/dist/tools/licensing.js +90 -0
  115. package/dist/tools/licensing.js.map +1 -0
  116. package/dist/tools/members.d.ts +8 -0
  117. package/dist/tools/members.d.ts.map +1 -0
  118. package/dist/tools/members.js +79 -0
  119. package/dist/tools/members.js.map +1 -0
  120. package/dist/tools/nc-codes.d.ts +17 -0
  121. package/dist/tools/nc-codes.d.ts.map +1 -0
  122. package/dist/tools/nc-codes.js +28 -0
  123. package/dist/tools/nc-codes.js.map +1 -0
  124. package/dist/tools/notifications.d.ts +8 -0
  125. package/dist/tools/notifications.d.ts.map +1 -0
  126. package/dist/tools/notifications.js +111 -0
  127. package/dist/tools/notifications.js.map +1 -0
  128. package/dist/tools/oauth2-clients.d.ts +8 -0
  129. package/dist/tools/oauth2-clients.d.ts.map +1 -0
  130. package/dist/tools/oauth2-clients.js +147 -0
  131. package/dist/tools/oauth2-clients.js.map +1 -0
  132. package/dist/tools/payments.d.ts +17 -0
  133. package/dist/tools/payments.d.ts.map +1 -0
  134. package/dist/tools/payments.js +109 -0
  135. package/dist/tools/payments.js.map +1 -0
  136. package/dist/tools/pdf-template-config.d.ts +14 -0
  137. package/dist/tools/pdf-template-config.d.ts.map +1 -0
  138. package/dist/tools/pdf-template-config.js +131 -0
  139. package/dist/tools/pdf-template-config.js.map +1 -0
  140. package/dist/tools/products.d.ts +40 -0
  141. package/dist/tools/products.d.ts.map +1 -0
  142. package/dist/tools/products.js +73 -0
  143. package/dist/tools/products.js.map +1 -0
  144. package/dist/tools/proforma-invoices.d.ts +198 -0
  145. package/dist/tools/proforma-invoices.d.ts.map +1 -0
  146. package/dist/tools/proforma-invoices.js +378 -0
  147. package/dist/tools/proforma-invoices.js.map +1 -0
  148. package/dist/tools/receipts.d.ts +166 -0
  149. package/dist/tools/receipts.d.ts.map +1 -0
  150. package/dist/tools/receipts.js +397 -0
  151. package/dist/tools/receipts.js.map +1 -0
  152. package/dist/tools/recurring-invoices.d.ts +187 -0
  153. package/dist/tools/recurring-invoices.d.ts.map +1 -0
  154. package/dist/tools/recurring-invoices.js +305 -0
  155. package/dist/tools/recurring-invoices.js.map +1 -0
  156. package/dist/tools/reports.d.ts +48 -0
  157. package/dist/tools/reports.d.ts.map +1 -0
  158. package/dist/tools/reports.js +200 -0
  159. package/dist/tools/reports.js.map +1 -0
  160. package/dist/tools/storage-config.d.ts +8 -0
  161. package/dist/tools/storage-config.d.ts.map +1 -0
  162. package/dist/tools/storage-config.js +117 -0
  163. package/dist/tools/storage-config.js.map +1 -0
  164. package/dist/tools/suppliers.d.ts +14 -0
  165. package/dist/tools/suppliers.d.ts.map +1 -0
  166. package/dist/tools/suppliers.js +205 -0
  167. package/dist/tools/suppliers.js.map +1 -0
  168. package/dist/tools/system.d.ts +8 -0
  169. package/dist/tools/system.d.ts.map +1 -0
  170. package/dist/tools/system.js +24 -0
  171. package/dist/tools/system.js.map +1 -0
  172. package/dist/tools/vat-rates.d.ts +14 -0
  173. package/dist/tools/vat-rates.d.ts.map +1 -0
  174. package/dist/tools/vat-rates.js +145 -0
  175. package/dist/tools/vat-rates.js.map +1 -0
  176. package/dist/tools/webhooks.d.ts +8 -0
  177. package/dist/tools/webhooks.d.ts.map +1 -0
  178. package/dist/tools/webhooks.js +305 -0
  179. package/dist/tools/webhooks.js.map +1 -0
  180. package/dist/utils/errors.d.ts +18 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +45 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/pagination.d.ts +9 -0
  185. package/dist/utils/pagination.d.ts.map +1 -0
  186. package/dist/utils/pagination.js +10 -0
  187. package/dist/utils/pagination.js.map +1 -0
  188. package/package.json +52 -0
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ import { apiRequest } from '../client.js';
3
+ import { formatResponse, notAuthenticated } from '../utils/errors.js';
4
+ import { getConfig } from '../config.js';
5
+ export const tools = [
6
+ {
7
+ name: 'exchange_rates_list',
8
+ description: 'Get current BNR (Banca Nationala a Romaniei) exchange rates. Rates are updated daily around 13:00 EET. Returns rates for all supported currencies expressed as: 1 foreign currency = X RON. On weekends and holidays, the last available rates are returned.',
9
+ inputSchema: z.object({
10
+ date: z
11
+ .string()
12
+ .optional()
13
+ .describe('Specific date for rates (YYYY-MM-DD, defaults to latest available rates)'),
14
+ }),
15
+ handler: async (params) => {
16
+ const config = getConfig();
17
+ if (!config.token)
18
+ return notAuthenticated();
19
+ const res = await apiRequest('/api/v1/exchange-rates', {
20
+ query: {
21
+ date: params.date,
22
+ },
23
+ });
24
+ return formatResponse(res);
25
+ },
26
+ },
27
+ {
28
+ name: 'exchange_rates_convert',
29
+ description: 'Convert an amount between two currencies using current BNR exchange rates. For non-RON to non-RON conversions, cross-rates through RON are calculated. Result is rounded to 2 decimal places.',
30
+ inputSchema: z.object({
31
+ from: z.string().describe('Source currency code (ISO 4217, e.g., EUR, USD, RON)'),
32
+ to: z.string().describe('Target currency code (ISO 4217, e.g., RON, EUR, USD)'),
33
+ amount: z.number().describe('Amount to convert'),
34
+ date: z
35
+ .string()
36
+ .optional()
37
+ .describe('Specific date for exchange rate (YYYY-MM-DD, defaults to latest rates)'),
38
+ }),
39
+ handler: async (params) => {
40
+ const config = getConfig();
41
+ if (!config.token)
42
+ return notAuthenticated();
43
+ const res = await apiRequest('/api/v1/exchange-rates/convert', {
44
+ query: {
45
+ from: params.from,
46
+ to: params.to,
47
+ amount: params.amount,
48
+ date: params.date,
49
+ },
50
+ });
51
+ return formatResponse(res);
52
+ },
53
+ },
54
+ ];
55
+ //# sourceMappingURL=exchange-rates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange-rates.js","sourceRoot":"","sources":["../../src/tools/exchange-rates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,8PAA8P;QAChQ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0EAA0E,CAAC;SACxF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAmB,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,gBAAgB,EAAE,CAAC;YAE7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,wBAAwB,EAAE;gBACrD,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM,CAAC,IAA0B;iBACxC;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;IAED;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,+LAA+L;QACjM,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YACjF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YAC/E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChD,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wEAAwE,CAAC;SACtF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAmB,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,gBAAgB,EAAE,CAAC;YAE7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,gCAAgC,EAAE;gBAC7D,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM,CAAC,IAAc;oBAC3B,EAAE,EAAE,MAAM,CAAC,EAAY;oBACvB,MAAM,EAAE,MAAM,CAAC,MAAgB;oBAC/B,IAAI,EAAE,MAAM,CAAC,IAA0B;iBACxC;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const tools: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ filename: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ filename: string;
9
+ }, {
10
+ filename: string;
11
+ }>;
12
+ handler: (params: Record<string, unknown>) => Promise<string>;
13
+ }[];
14
+ //# sourceMappingURL=exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,KAAK;;;;;;;;;;sBAYU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;GAWpE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { apiRequest } from '../client.js';
3
+ import { formatResponse, notAuthenticated } from '../utils/errors.js';
4
+ import { getConfig } from '../config.js';
5
+ export const tools = [
6
+ {
7
+ name: 'exports_download',
8
+ description: 'Download a generated export file (ZIP archive). Export files are single-use and auto-deleted after download. The filename is typically provided by the endpoint that generated the export (e.g. POST /api/v1/invoices/export). Common formats: invoices-export-YYYY-MM.zip, vat-report-YYYY-MM.zip, clients-export-YYYY-MM-DD.zip.',
9
+ inputSchema: z.object({
10
+ filename: z
11
+ .string()
12
+ .describe('Export filename to download (e.g. "invoices-export-2026-02.zip"). Obtained from the export generation endpoint response.'),
13
+ }),
14
+ handler: async (params) => {
15
+ if (!getConfig().token)
16
+ return notAuthenticated();
17
+ const { filename } = params;
18
+ const res = await apiRequest(`/api/v1/exports/${filename}`, {
19
+ binary: true,
20
+ });
21
+ return formatResponse(res);
22
+ },
23
+ },
24
+ ];
25
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,oUAAoU;QACtU,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACP,0HAA0H,CAC3H;SACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAmB,EAAE;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK;gBAAE,OAAO,gBAAgB,EAAE,CAAC;YAElD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAA8B,CAAC;YAEpD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,mBAAmB,QAAQ,EAAE,EAAE;gBAC1D,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const tools: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ companyId: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ companyId?: string | undefined;
9
+ }, {
10
+ companyId?: string | undefined;
11
+ }>;
12
+ handler: (params: Record<string, unknown>) => Promise<string>;
13
+ }[];
14
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/tools/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,KAAK;;;;;;;;;;sBAWU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;GA4NpE,CAAC"}
@@ -0,0 +1,221 @@
1
+ import { z } from 'zod';
2
+ import { apiRequest } from '../client.js';
3
+ import { formatResponse, notAuthenticated, noCompanySelected } from '../utils/errors.js';
4
+ import { getConfig } from '../config.js';
5
+ function getCompanyId(params) {
6
+ return params.companyId || getConfig().companyId;
7
+ }
8
+ export const tools = [
9
+ {
10
+ name: 'import_sources',
11
+ description: 'Get available import sources and import types. Returns supported import sources (SmartBill, Saga, Oblio, FGO, Facturis, etc.) and import types (clients, products, invoices_issued, invoices_received, recurring_invoices).',
12
+ inputSchema: z.object({
13
+ companyId: z
14
+ .string()
15
+ .optional()
16
+ .describe('Company UUID override (uses active company if not set)'),
17
+ }),
18
+ handler: async (params) => {
19
+ if (!getConfig().token)
20
+ return notAuthenticated();
21
+ const companyId = getCompanyId(params);
22
+ if (!companyId)
23
+ return noCompanySelected();
24
+ const result = await apiRequest('/api/v1/import/sources', { companyId });
25
+ return formatResponse(result);
26
+ },
27
+ },
28
+ {
29
+ name: 'import_preview',
30
+ description: 'Get a preview of an uploaded import job including detected columns, sample data, and column mapping suggestions. Use after uploading a file to review before executing.',
31
+ inputSchema: z.object({
32
+ id: z.string().describe('Import job ID'),
33
+ companyId: z
34
+ .string()
35
+ .optional()
36
+ .describe('Company UUID override (uses active company if not set)'),
37
+ }),
38
+ handler: async (params) => {
39
+ if (!getConfig().token)
40
+ return notAuthenticated();
41
+ const companyId = getCompanyId(params);
42
+ if (!companyId)
43
+ return noCompanySelected();
44
+ const { id } = params;
45
+ const result = await apiRequest(`/api/v1/import/${id}/preview`, { companyId });
46
+ return formatResponse(result);
47
+ },
48
+ },
49
+ {
50
+ name: 'import_mapping',
51
+ description: 'Save column mapping for an import job. Maps CSV columns to Storno fields. Call after reviewing the preview to confirm or adjust mappings before executing.',
52
+ inputSchema: z.object({
53
+ id: z.string().describe('Import job ID'),
54
+ columnMapping: z
55
+ .record(z.string())
56
+ .describe('Object mapping CSV column names to Storno field names'),
57
+ companyId: z
58
+ .string()
59
+ .optional()
60
+ .describe('Company UUID override (uses active company if not set)'),
61
+ }),
62
+ handler: async (params) => {
63
+ if (!getConfig().token)
64
+ return notAuthenticated();
65
+ const companyId = getCompanyId(params);
66
+ if (!companyId)
67
+ return noCompanySelected();
68
+ const { id, columnMapping } = params;
69
+ const result = await apiRequest(`/api/v1/import/${id}/mapping`, {
70
+ method: 'PATCH',
71
+ companyId,
72
+ body: { columnMapping },
73
+ });
74
+ return formatResponse(result);
75
+ },
76
+ },
77
+ {
78
+ name: 'import_execute',
79
+ description: 'Execute an import job after mapping is confirmed. The import runs asynchronously via a message queue. Check status with import_get.',
80
+ inputSchema: z.object({
81
+ id: z.string().describe('Import job ID'),
82
+ importOptions: z
83
+ .record(z.unknown())
84
+ .optional()
85
+ .describe('Optional import options (e.g., skipDuplicates, updateExisting)'),
86
+ companyId: z
87
+ .string()
88
+ .optional()
89
+ .describe('Company UUID override (uses active company if not set)'),
90
+ }),
91
+ handler: async (params) => {
92
+ if (!getConfig().token)
93
+ return notAuthenticated();
94
+ const companyId = getCompanyId(params);
95
+ if (!companyId)
96
+ return noCompanySelected();
97
+ const { id, importOptions } = params;
98
+ const body = {};
99
+ if (importOptions)
100
+ body.importOptions = importOptions;
101
+ const result = await apiRequest(`/api/v1/import/${id}/execute`, {
102
+ method: 'POST',
103
+ companyId,
104
+ body,
105
+ });
106
+ return formatResponse(result);
107
+ },
108
+ },
109
+ {
110
+ name: 'import_get',
111
+ description: 'Get full status and details of an import job including progress, row counts (imported, skipped, failed), and error details.',
112
+ inputSchema: z.object({
113
+ id: z.string().describe('Import job ID'),
114
+ companyId: z
115
+ .string()
116
+ .optional()
117
+ .describe('Company UUID override (uses active company if not set)'),
118
+ }),
119
+ handler: async (params) => {
120
+ if (!getConfig().token)
121
+ return notAuthenticated();
122
+ const companyId = getCompanyId(params);
123
+ if (!companyId)
124
+ return noCompanySelected();
125
+ const { id } = params;
126
+ const result = await apiRequest(`/api/v1/import/${id}`, { companyId });
127
+ return formatResponse(result);
128
+ },
129
+ },
130
+ {
131
+ name: 'import_upload',
132
+ description: 'Upload a file (CSV, XLSX, or XML) to start a new import job. Requires importType (clients, products, invoices_issued, invoices_received, recurring_invoices) and source (smartbill, saga, oblio, fgo, facturis_online, easybill, ciel, factureaza, facturare_pro, icefact, bolt, facturis, emag, generic). Returns the created import job with preview data.',
133
+ inputSchema: z.object({
134
+ filePath: z.string().describe('Absolute path to the file to upload (CSV, XLSX, or XML)'),
135
+ importType: z
136
+ .enum(['clients', 'products', 'invoices_issued', 'invoices_received', 'recurring_invoices'])
137
+ .describe('Type of data being imported'),
138
+ source: z
139
+ .enum([
140
+ 'smartbill', 'saga', 'oblio', 'fgo', 'facturis_online', 'easybill',
141
+ 'ciel', 'factureaza', 'facturare_pro', 'icefact', 'bolt', 'facturis', 'emag', 'generic',
142
+ ])
143
+ .describe('Source application the file was exported from'),
144
+ companyId: z
145
+ .string()
146
+ .optional()
147
+ .describe('Company UUID override (uses active company if not set)'),
148
+ }),
149
+ handler: async (params) => {
150
+ if (!getConfig().token)
151
+ return notAuthenticated();
152
+ const companyId = getCompanyId(params);
153
+ if (!companyId)
154
+ return noCompanySelected();
155
+ const { filePath, importType, source } = params;
156
+ const result = await apiRequest('/api/v1/import/upload', {
157
+ method: 'POST',
158
+ companyId,
159
+ filePath,
160
+ formFields: { importType, source },
161
+ });
162
+ return formatResponse(result);
163
+ },
164
+ },
165
+ {
166
+ name: 'import_template',
167
+ description: 'Download a CSV template for a specific import type. Returns base64-encoded CSV with column headers and example rows that can be filled in and uploaded via import_upload.',
168
+ inputSchema: z.object({
169
+ importType: z
170
+ .enum(['clients', 'products', 'invoices_issued', 'invoices_received', 'recurring_invoices'])
171
+ .describe('Type of import to get template for'),
172
+ companyId: z
173
+ .string()
174
+ .optional()
175
+ .describe('Company UUID override (uses active company if not set)'),
176
+ }),
177
+ handler: async (params) => {
178
+ if (!getConfig().token)
179
+ return notAuthenticated();
180
+ const companyId = getCompanyId(params);
181
+ if (!companyId)
182
+ return noCompanySelected();
183
+ const { importType } = params;
184
+ const result = await apiRequest('/api/v1/import/template', {
185
+ companyId,
186
+ binary: true,
187
+ query: { importType },
188
+ });
189
+ return formatResponse(result);
190
+ },
191
+ },
192
+ {
193
+ name: 'import_history',
194
+ description: 'List past import jobs for the active company. Returns job ID, type, source, status, row counts, and timestamps.',
195
+ inputSchema: z.object({
196
+ limit: z
197
+ .number()
198
+ .int()
199
+ .optional()
200
+ .describe('Number of results (max 200, default: 50)'),
201
+ companyId: z
202
+ .string()
203
+ .optional()
204
+ .describe('Company UUID override (uses active company if not set)'),
205
+ }),
206
+ handler: async (params) => {
207
+ if (!getConfig().token)
208
+ return notAuthenticated();
209
+ const companyId = getCompanyId(params);
210
+ if (!companyId)
211
+ return noCompanySelected();
212
+ const { limit } = params;
213
+ const result = await apiRequest('/api/v1/import/history', {
214
+ companyId,
215
+ query: { limit },
216
+ });
217
+ return formatResponse(result);
218
+ },
219
+ },
220
+ ];
221
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/tools/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const tools: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
6
+ handler: (_params: Record<string, unknown>) => Promise<string>;
7
+ }[];
8
+ //# sourceMappingURL=invitations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../src/tools/invitations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,KAAK;;;;uBAMW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;GAoErE,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import { apiRequest } from '../client.js';
3
+ import { formatResponse, notAuthenticated } from '../utils/errors.js';
4
+ import { getConfig } from '../config.js';
5
+ export const tools = [
6
+ {
7
+ name: 'invitations_list',
8
+ description: 'List all pending invitations for the organization. Only returns invitations that have not yet been accepted. Only organization admins and owners can view invitations.',
9
+ inputSchema: z.object({}),
10
+ handler: async (_params) => {
11
+ if (!getConfig().token)
12
+ return notAuthenticated();
13
+ const res = await apiRequest('/api/v1/invitations');
14
+ return formatResponse(res);
15
+ },
16
+ },
17
+ {
18
+ name: 'invitations_create',
19
+ description: 'Invite a new user to join the organization by email. An invitation email is sent automatically. Invitations expire after 7 days. Roles: ADMIN, ACCOUNTANT, EMPLOYEE (cannot invite as OWNER).',
20
+ inputSchema: z.object({
21
+ email: z.string().email().describe('Email address of the user to invite'),
22
+ role: z
23
+ .enum(['ADMIN', 'ACCOUNTANT', 'EMPLOYEE'])
24
+ .describe('Role to assign to the invited user: ADMIN, ACCOUNTANT, or EMPLOYEE'),
25
+ }),
26
+ handler: async (params) => {
27
+ if (!getConfig().token)
28
+ return notAuthenticated();
29
+ const { email, role } = params;
30
+ const res = await apiRequest('/api/v1/invitations', {
31
+ method: 'POST',
32
+ body: { email, role },
33
+ });
34
+ return formatResponse(res);
35
+ },
36
+ },
37
+ {
38
+ name: 'invitations_delete',
39
+ description: 'Cancel a pending invitation. The invitation token is immediately invalidated and cannot be used. Cannot cancel invitations that have already been accepted.',
40
+ inputSchema: z.object({
41
+ uuid: z.string().describe('Invitation UUID to cancel'),
42
+ }),
43
+ handler: async (params) => {
44
+ if (!getConfig().token)
45
+ return notAuthenticated();
46
+ const { uuid } = params;
47
+ const res = await apiRequest(`/api/v1/invitations/${uuid}`, {
48
+ method: 'DELETE',
49
+ });
50
+ return formatResponse(res);
51
+ },
52
+ },
53
+ {
54
+ name: 'invitations_resend',
55
+ description: 'Resend the invitation email for a pending invitation. Does not extend the expiration date. If the invitation has expired, cancel it and create a new one instead.',
56
+ inputSchema: z.object({
57
+ uuid: z.string().describe('Invitation UUID to resend'),
58
+ }),
59
+ handler: async (params) => {
60
+ if (!getConfig().token)
61
+ return notAuthenticated();
62
+ const { uuid } = params;
63
+ const res = await apiRequest(`/api/v1/invitations/${uuid}/resend`, {
64
+ method: 'POST',
65
+ });
66
+ return formatResponse(res);
67
+ },
68
+ },
69
+ ];
70
+ //# sourceMappingURL=invitations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/tools/invitations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const tools: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ companyId: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ companyId?: string | undefined;
9
+ }, {
10
+ companyId?: string | undefined;
11
+ }>;
12
+ handler: (params: Record<string, unknown>) => Promise<string>;
13
+ }[];
14
+ //# sourceMappingURL=invoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqCxB,eAAO,MAAM,KAAK;;;;;;;;;;sBA0jCU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;GAgKpE,CAAC"}