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,525 @@
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
+ /**
6
+ * Format a response from the delivery note create/update endpoints.
7
+ * These endpoints return `{ deliveryNote: {...}, validation: {...} }`.
8
+ * The function unwraps the delivery note and appends any validation
9
+ * warnings or errors as a separate section so the caller is aware of them.
10
+ */
11
+ function formatDeliveryNoteResponse(res) {
12
+ if (!res.ok) {
13
+ return formatResponse(res);
14
+ }
15
+ const data = res.data;
16
+ // Handle both the new wrapped format and any legacy bare-object responses.
17
+ if (!data || typeof data.deliveryNote === 'undefined') {
18
+ return formatResponse(res);
19
+ }
20
+ const deliveryNote = data.deliveryNote;
21
+ const validation = data.validation;
22
+ const parts = [JSON.stringify(deliveryNote, null, 2)];
23
+ if (validation) {
24
+ const hasErrors = Array.isArray(validation.errors) && validation.errors.length > 0;
25
+ const hasWarnings = Array.isArray(validation.warnings) && validation.warnings.length > 0;
26
+ if (hasErrors || hasWarnings) {
27
+ parts.push('Validation:\n' + JSON.stringify(validation, null, 2));
28
+ }
29
+ }
30
+ return parts.join('\n\n');
31
+ }
32
+ const deliveryLineItemSchema = z.object({
33
+ uuid: z.string().optional().describe('UUID of existing line item (omit to create new)'),
34
+ description: z.string().describe('Item description'),
35
+ quantity: z.number().describe('Quantity delivered (must be > 0)'),
36
+ unitPrice: z.number().describe('Price per unit'),
37
+ vatRateId: z.string().describe('UUID of the VAT rate'),
38
+ unitOfMeasure: z.string().optional().describe('Unit of measure (e.g., piece, kg, hour)'),
39
+ productId: z.string().optional().describe('UUID of related product'),
40
+ });
41
+ export const tools = [
42
+ {
43
+ name: 'delivery_notes_list',
44
+ description: 'List delivery notes for the selected company with optional filtering by status, date range, client, and search term. Delivery notes document physical delivery of goods or completion of services.',
45
+ inputSchema: z.object({
46
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
47
+ page: z.number().optional().describe('Page number (default: 1)'),
48
+ limit: z.number().optional().describe('Items per page (default: 20, max: 100)'),
49
+ search: z.string().optional().describe('Search term for delivery note number or client name'),
50
+ status: z
51
+ .enum(['draft', 'issued', 'converted', 'cancelled'])
52
+ .optional()
53
+ .describe('Filter by status'),
54
+ from: z.string().optional().describe('Start date filter (YYYY-MM-DD)'),
55
+ to: z.string().optional().describe('End date filter (YYYY-MM-DD)'),
56
+ clientId: z.string().optional().describe('Filter by client UUID'),
57
+ }),
58
+ handler: async (params) => {
59
+ const config = getConfig();
60
+ if (!config.token)
61
+ return notAuthenticated();
62
+ const companyId = params.companyId || config.companyId;
63
+ if (!companyId)
64
+ return noCompanySelected();
65
+ const res = await apiRequest('/api/v1/delivery-notes', {
66
+ companyId,
67
+ query: {
68
+ page: params.page,
69
+ limit: params.limit,
70
+ search: params.search,
71
+ status: params.status,
72
+ from: params.from,
73
+ to: params.to,
74
+ clientId: params.clientId,
75
+ },
76
+ });
77
+ return formatResponse(res);
78
+ },
79
+ },
80
+ {
81
+ name: 'delivery_notes_get',
82
+ description: 'Get complete details for a specific delivery note including all line items, client information, deputy details, and calculated totals.',
83
+ inputSchema: z.object({
84
+ uuid: z.string().describe('UUID of the delivery note to retrieve'),
85
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
86
+ }),
87
+ handler: async (params) => {
88
+ const config = getConfig();
89
+ if (!config.token)
90
+ return notAuthenticated();
91
+ const companyId = params.companyId || config.companyId;
92
+ if (!companyId)
93
+ return noCompanySelected();
94
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}`, { companyId });
95
+ return formatResponse(res);
96
+ },
97
+ },
98
+ {
99
+ name: 'delivery_notes_create',
100
+ description: 'Create a new delivery note in draft status. Delivery notes document physical delivery of goods or services and can later be converted to invoices. Include deputy information for proof of delivery. A default delivery_note series is auto-assigned if neither seriesId nor documentSeriesId is provided.',
101
+ inputSchema: z.object({
102
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
103
+ clientId: z.string().describe('UUID of the client'),
104
+ seriesId: z.string().optional().describe('UUID of the delivery note series (uses default series if not provided)'),
105
+ documentSeriesId: z.string().optional().describe('UUID of the document series to use (alternative to seriesId; uses default delivery_note series if neither is provided)'),
106
+ issueDate: z.string().describe('Date of issue (YYYY-MM-DD)'),
107
+ dueDate: z.string().describe('Due date for invoicing (YYYY-MM-DD)'),
108
+ currency: z.string().describe('Currency code (e.g., RON, EUR, USD)'),
109
+ exchangeRate: z.number().optional().describe('Exchange rate to base currency (default: 1.0 for RON)'),
110
+ deliveryLocation: z.string().optional().describe('Full address where goods were delivered'),
111
+ projectReference: z.string().optional().describe('Related project or order reference'),
112
+ issuerName: z.string().optional().describe('Name of person issuing the delivery note'),
113
+ issuerId: z.string().optional().describe('UUID of the issuer user'),
114
+ salesAgent: z.string().optional().describe('Sales agent name'),
115
+ deputyName: z.string().optional().describe('Name of person who received the delivery'),
116
+ deputyIdentityCard: z.string().optional().describe('ID card number of the deputy'),
117
+ deputyAuto: z.string().optional().describe('Vehicle registration number used for delivery'),
118
+ notes: z.string().optional().describe('Public notes about the delivery'),
119
+ mentions: z.string().optional().describe('Additional mentions or instructions'),
120
+ internalNote: z.string().optional().describe('Internal note (not visible to client)'),
121
+ lines: z.array(deliveryLineItemSchema).describe('Array of line items (minimum 1 required)'),
122
+ }),
123
+ handler: async (params) => {
124
+ const config = getConfig();
125
+ if (!config.token)
126
+ return notAuthenticated();
127
+ const companyId = params.companyId || config.companyId;
128
+ if (!companyId)
129
+ return noCompanySelected();
130
+ const { companyId: _cid, ...body } = params;
131
+ const res = await apiRequest('/api/v1/delivery-notes', {
132
+ method: 'POST',
133
+ companyId,
134
+ body: body,
135
+ });
136
+ return formatDeliveryNoteResponse(res);
137
+ },
138
+ },
139
+ {
140
+ name: 'delivery_notes_update',
141
+ description: 'Update an existing delivery note. Delivery notes in draft or issued status can be updated. Replaces all line items with the provided array.',
142
+ inputSchema: z.object({
143
+ uuid: z.string().describe('UUID of the delivery note to update'),
144
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
145
+ clientId: z.string().describe('UUID of the client'),
146
+ seriesId: z.string().optional().describe('UUID of the delivery note series'),
147
+ documentSeriesId: z.string().optional().describe('UUID of the document series to use (alternative to seriesId)'),
148
+ issueDate: z.string().describe('Date of issue (YYYY-MM-DD)'),
149
+ dueDate: z.string().describe('Due date for invoicing (YYYY-MM-DD)'),
150
+ currency: z.string().describe('Currency code (e.g., RON, EUR, USD)'),
151
+ exchangeRate: z.number().optional().describe('Exchange rate to base currency'),
152
+ deliveryLocation: z.string().optional().describe('Full address where goods were delivered'),
153
+ projectReference: z.string().optional().describe('Related project or order reference'),
154
+ issuerName: z.string().optional().describe('Name of person issuing the delivery note'),
155
+ issuerId: z.string().optional().describe('UUID of the issuer user'),
156
+ salesAgent: z.string().optional().describe('Sales agent name'),
157
+ deputyName: z.string().optional().describe('Name of person who received the delivery'),
158
+ deputyIdentityCard: z.string().optional().describe('ID card number of the deputy'),
159
+ deputyAuto: z.string().optional().describe('Vehicle registration number'),
160
+ notes: z.string().optional().describe('Public notes about the delivery'),
161
+ mentions: z.string().optional().describe('Additional mentions or instructions'),
162
+ internalNote: z.string().optional().describe('Internal note (not visible to client)'),
163
+ lines: z.array(deliveryLineItemSchema).describe('Array of line items (replaces all existing lines)'),
164
+ }),
165
+ handler: async (params) => {
166
+ const config = getConfig();
167
+ if (!config.token)
168
+ return notAuthenticated();
169
+ const companyId = params.companyId || config.companyId;
170
+ if (!companyId)
171
+ return noCompanySelected();
172
+ const { uuid, companyId: _cid, ...body } = params;
173
+ const res = await apiRequest(`/api/v1/delivery-notes/${uuid}`, {
174
+ method: 'PUT',
175
+ companyId,
176
+ body: body,
177
+ });
178
+ return formatDeliveryNoteResponse(res);
179
+ },
180
+ },
181
+ {
182
+ name: 'delivery_notes_delete',
183
+ description: 'Permanently delete a delivery note. Only draft delivery notes can be deleted. Use cancel for issued delivery notes to preserve audit trail.',
184
+ inputSchema: z.object({
185
+ uuid: z.string().describe('UUID of the delivery note to delete'),
186
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
187
+ }),
188
+ handler: async (params) => {
189
+ const config = getConfig();
190
+ if (!config.token)
191
+ return notAuthenticated();
192
+ const companyId = params.companyId || config.companyId;
193
+ if (!companyId)
194
+ return noCompanySelected();
195
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}`, {
196
+ method: 'DELETE',
197
+ companyId,
198
+ });
199
+ return formatResponse(res);
200
+ },
201
+ },
202
+ {
203
+ name: 'delivery_notes_issue',
204
+ description: 'Mark a delivery note as issued when the physical delivery of goods or completion of services occurs. Transitions status from draft to issued. Once issued, the delivery note becomes read-only.',
205
+ inputSchema: z.object({
206
+ uuid: z.string().describe('UUID of the delivery note to mark as issued'),
207
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
208
+ }),
209
+ handler: async (params) => {
210
+ const config = getConfig();
211
+ if (!config.token)
212
+ return notAuthenticated();
213
+ const companyId = params.companyId || config.companyId;
214
+ if (!companyId)
215
+ return noCompanySelected();
216
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/issue`, {
217
+ method: 'POST',
218
+ companyId,
219
+ });
220
+ return formatResponse(res);
221
+ },
222
+ },
223
+ {
224
+ name: 'delivery_notes_cancel',
225
+ description: 'Cancel a delivery note when delivery will not occur. Can be cancelled from draft or issued status. Preserves historical record unlike deletion. Optionally provide a cancellation reason.',
226
+ inputSchema: z.object({
227
+ uuid: z.string().describe('UUID of the delivery note to cancel'),
228
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
229
+ cancellationReason: z.string().optional().describe('Reason for cancellation'),
230
+ cancellationNotes: z.string().optional().describe('Internal notes about the cancellation'),
231
+ }),
232
+ handler: async (params) => {
233
+ const config = getConfig();
234
+ if (!config.token)
235
+ return notAuthenticated();
236
+ const companyId = params.companyId || config.companyId;
237
+ if (!companyId)
238
+ return noCompanySelected();
239
+ const body = {};
240
+ if (params.cancellationReason)
241
+ body.cancellationReason = params.cancellationReason;
242
+ if (params.cancellationNotes)
243
+ body.cancellationNotes = params.cancellationNotes;
244
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/cancel`, {
245
+ method: 'POST',
246
+ companyId,
247
+ body: Object.keys(body).length > 0 ? body : undefined,
248
+ });
249
+ return formatResponse(res);
250
+ },
251
+ },
252
+ {
253
+ name: 'delivery_notes_pdf',
254
+ description: 'Download the PDF for a delivery note. Returns base64-encoded PDF binary data. The delivery note must be in issued or converted status. Optionally hide VAT or prices for simplified delivery documents.',
255
+ inputSchema: z.object({
256
+ uuid: z.string().describe('UUID of the delivery note'),
257
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
258
+ hideVat: z.boolean().optional().describe('Hide VAT amounts from the PDF (default: false)'),
259
+ hidePrices: z.boolean().optional().describe('Hide all prices from the PDF (default: false)'),
260
+ }),
261
+ handler: async (params) => {
262
+ const config = getConfig();
263
+ if (!config.token)
264
+ return notAuthenticated();
265
+ const companyId = params.companyId || config.companyId;
266
+ if (!companyId)
267
+ return noCompanySelected();
268
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/pdf`, {
269
+ companyId,
270
+ binary: true,
271
+ query: {
272
+ hideVat: params.hideVat,
273
+ hidePrices: params.hidePrices,
274
+ },
275
+ });
276
+ return formatResponse(res);
277
+ },
278
+ },
279
+ {
280
+ name: 'delivery_notes_convert',
281
+ description: 'Convert a delivery note into a final invoice. Creates a new invoice with all delivery note data, marks the delivery note as converted, and establishes a link between the two documents. Returns both the new invoice and updated delivery note.',
282
+ inputSchema: z.object({
283
+ uuid: z.string().describe('UUID of the delivery note to convert to an invoice'),
284
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
285
+ invoiceSeriesId: z
286
+ .string()
287
+ .optional()
288
+ .describe('UUID of the invoice series to use (if different from delivery note series)'),
289
+ issueDate: z
290
+ .string()
291
+ .optional()
292
+ .describe('Override issue date for the new invoice (default: today, YYYY-MM-DD)'),
293
+ dueDate: z
294
+ .string()
295
+ .optional()
296
+ .describe('Override due date for the new invoice (default: delivery note due date, YYYY-MM-DD)'),
297
+ }),
298
+ handler: async (params) => {
299
+ const config = getConfig();
300
+ if (!config.token)
301
+ return notAuthenticated();
302
+ const companyId = params.companyId || config.companyId;
303
+ if (!companyId)
304
+ return noCompanySelected();
305
+ const body = {};
306
+ if (params.invoiceSeriesId)
307
+ body.invoiceSeriesId = params.invoiceSeriesId;
308
+ if (params.issueDate)
309
+ body.issueDate = params.issueDate;
310
+ if (params.dueDate)
311
+ body.dueDate = params.dueDate;
312
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/convert`, {
313
+ method: 'POST',
314
+ companyId,
315
+ body: Object.keys(body).length > 0 ? body : undefined,
316
+ });
317
+ return formatResponse(res);
318
+ },
319
+ },
320
+ {
321
+ name: 'delivery_notes_restore',
322
+ description: 'Restore a cancelled delivery note back to draft status. Only cancelled delivery notes can be restored. This reverses the cancellation and allows the delivery note to be re-issued.',
323
+ inputSchema: z.object({
324
+ uuid: z.string().describe('UUID of the cancelled delivery note to restore'),
325
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
326
+ }),
327
+ handler: async (params) => {
328
+ const config = getConfig();
329
+ if (!config.token)
330
+ return notAuthenticated();
331
+ const companyId = params.companyId || config.companyId;
332
+ if (!companyId)
333
+ return noCompanySelected();
334
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/restore`, {
335
+ method: 'POST',
336
+ companyId,
337
+ });
338
+ return formatResponse(res);
339
+ },
340
+ },
341
+ {
342
+ name: 'delivery_notes_email',
343
+ description: 'Send a delivery note to a client via email with the PDF attached. Supports custom subject, body, CC, and BCC recipients.',
344
+ inputSchema: z.object({
345
+ uuid: z.string().describe('UUID of the delivery note to send'),
346
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
347
+ to: z.string().describe('Recipient email address'),
348
+ subject: z.string().optional().describe('Email subject (auto-generated if omitted)'),
349
+ body: z.string().optional().describe('Email body text (auto-generated if omitted)'),
350
+ cc: z.array(z.string()).optional().describe('CC email addresses'),
351
+ bcc: z.array(z.string()).optional().describe('BCC email addresses'),
352
+ }),
353
+ handler: async (params) => {
354
+ const config = getConfig();
355
+ if (!config.token)
356
+ return notAuthenticated();
357
+ const companyId = params.companyId || config.companyId;
358
+ if (!companyId)
359
+ return noCompanySelected();
360
+ const body = { to: params.to };
361
+ if (params.subject)
362
+ body.subject = params.subject;
363
+ if (params.body)
364
+ body.body = params.body;
365
+ if (params.cc)
366
+ body.cc = params.cc;
367
+ if (params.bcc)
368
+ body.bcc = params.bcc;
369
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/email`, {
370
+ method: 'POST',
371
+ companyId,
372
+ body,
373
+ });
374
+ return formatResponse(res);
375
+ },
376
+ },
377
+ {
378
+ name: 'delivery_notes_email_defaults',
379
+ description: 'Get pre-filled email content for a delivery note including default recipient, subject, and body text with template variables already substituted.',
380
+ inputSchema: z.object({
381
+ uuid: z.string().describe('UUID of the delivery note'),
382
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
383
+ }),
384
+ handler: async (params) => {
385
+ const config = getConfig();
386
+ if (!config.token)
387
+ return notAuthenticated();
388
+ const companyId = params.companyId || config.companyId;
389
+ if (!companyId)
390
+ return noCompanySelected();
391
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/email-defaults`, {
392
+ companyId,
393
+ });
394
+ return formatResponse(res);
395
+ },
396
+ },
397
+ {
398
+ name: 'delivery_notes_email_history',
399
+ description: 'Get the email sending history for a delivery note, including all sent emails with their status, timestamps, and recipient information.',
400
+ inputSchema: z.object({
401
+ uuid: z.string().describe('UUID of the delivery note'),
402
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
403
+ }),
404
+ handler: async (params) => {
405
+ const config = getConfig();
406
+ if (!config.token)
407
+ return notAuthenticated();
408
+ const companyId = params.companyId || config.companyId;
409
+ if (!companyId)
410
+ return noCompanySelected();
411
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/emails`, {
412
+ companyId,
413
+ });
414
+ return formatResponse(res);
415
+ },
416
+ },
417
+ {
418
+ name: 'delivery_notes_storno',
419
+ description: 'Create a storno (return) delivery note with negated quantities from an existing issued delivery note. The storno delivery note is created as a draft and can be issued separately.',
420
+ inputSchema: z.object({
421
+ uuid: z.string().describe('UUID of the issued delivery note to create storno for'),
422
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
423
+ }),
424
+ handler: async (params) => {
425
+ const config = getConfig();
426
+ if (!config.token)
427
+ return notAuthenticated();
428
+ const companyId = params.companyId || config.companyId;
429
+ if (!companyId)
430
+ return noCompanySelected();
431
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/storno`, {
432
+ method: 'POST',
433
+ companyId,
434
+ });
435
+ return formatResponse(res);
436
+ },
437
+ },
438
+ {
439
+ name: 'delivery_notes_from_proforma',
440
+ description: 'Create a new delivery note from an existing proforma invoice. Copies client, lines, dates, currency, and notes from the proforma. The delivery note is created in draft status.',
441
+ inputSchema: z.object({
442
+ proformaId: z.string().describe('UUID of the proforma invoice to create delivery note from'),
443
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
444
+ }),
445
+ handler: async (params) => {
446
+ const config = getConfig();
447
+ if (!config.token)
448
+ return notAuthenticated();
449
+ const companyId = params.companyId || config.companyId;
450
+ if (!companyId)
451
+ return noCompanySelected();
452
+ const res = await apiRequest('/api/v1/delivery-notes/from-proforma', {
453
+ method: 'POST',
454
+ companyId,
455
+ body: { proformaId: params.proformaId },
456
+ });
457
+ return formatResponse(res);
458
+ },
459
+ },
460
+ {
461
+ name: 'delivery_notes_bulk_convert',
462
+ description: 'Convert multiple issued delivery notes into a single invoice. All delivery notes must be issued, have the same client, and use the same currency. Creates one invoice combining all lines and marks all delivery notes as invoiced.',
463
+ inputSchema: z.object({
464
+ ids: z.array(z.string()).describe('Array of delivery note UUIDs to convert into a single invoice'),
465
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
466
+ }),
467
+ handler: async (params) => {
468
+ const config = getConfig();
469
+ if (!config.token)
470
+ return notAuthenticated();
471
+ const companyId = params.companyId || config.companyId;
472
+ if (!companyId)
473
+ return noCompanySelected();
474
+ const res = await apiRequest('/api/v1/delivery-notes/bulk-convert', {
475
+ method: 'POST',
476
+ companyId,
477
+ body: { ids: params.ids },
478
+ });
479
+ return formatResponse(res);
480
+ },
481
+ },
482
+ {
483
+ name: 'delivery_notes_validate_etransport',
484
+ description: 'Validate a delivery note against Romania\'s e-Transport schema before submitting. Checks entity validation, XSD schema, and Schematron rules. Returns validation result with errors and warnings. Use this before submit_etransport to catch issues early.',
485
+ inputSchema: z.object({
486
+ uuid: z.string().describe('UUID of the delivery note to validate'),
487
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
488
+ }),
489
+ handler: async (params) => {
490
+ const config = getConfig();
491
+ if (!config.token)
492
+ return notAuthenticated();
493
+ const companyId = params.companyId || config.companyId;
494
+ if (!companyId)
495
+ return noCompanySelected();
496
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/validate-etransport`, {
497
+ method: 'POST',
498
+ companyId,
499
+ });
500
+ return formatResponse(res);
501
+ },
502
+ },
503
+ {
504
+ name: 'delivery_notes_submit_etransport',
505
+ description: 'Submit an issued delivery note to Romania\'s ANAF e-Transport system for domestic transport declaration (TTN). The delivery note must be in issued status with e-Transport fields filled (vehicle number, route, transport data, line tariff codes and weights). Submission is asynchronous — the status will update from uploaded to ok (with UIT) or nok (with error).',
506
+ inputSchema: z.object({
507
+ uuid: z.string().describe('UUID of the issued delivery note to submit to e-Transport'),
508
+ companyId: z.string().optional().describe('Company UUID (overrides configured default)'),
509
+ }),
510
+ handler: async (params) => {
511
+ const config = getConfig();
512
+ if (!config.token)
513
+ return notAuthenticated();
514
+ const companyId = params.companyId || config.companyId;
515
+ if (!companyId)
516
+ return noCompanySelected();
517
+ const res = await apiRequest(`/api/v1/delivery-notes/${params.uuid}/submit-etransport`, {
518
+ method: 'POST',
519
+ companyId,
520
+ });
521
+ return formatResponse(res);
522
+ },
523
+ },
524
+ ];
525
+ //# sourceMappingURL=delivery-notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-notes.js","sourceRoot":"","sources":["../../src/tools/delivery-notes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
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
+ type: z.ZodOptional<z.ZodEnum<["invoice", "proforma", "credit_note", "delivery_note"]>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ companyId?: string | undefined;
10
+ type?: "invoice" | "proforma" | "credit_note" | "delivery_note" | undefined;
11
+ }, {
12
+ companyId?: string | undefined;
13
+ type?: "invoice" | "proforma" | "credit_note" | "delivery_note" | undefined;
14
+ }>;
15
+ handler: (params: Record<string, unknown>) => Promise<string>;
16
+ } | {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: z.ZodObject<{
20
+ companyId: z.ZodOptional<z.ZodString>;
21
+ prefix: z.ZodString;
22
+ type: z.ZodEnum<["invoice", "proforma", "credit_note", "delivery_note"]>;
23
+ currentNumber: z.ZodOptional<z.ZodNumber>;
24
+ active: z.ZodOptional<z.ZodBoolean>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ type: "invoice" | "proforma" | "credit_note" | "delivery_note";
27
+ prefix: string;
28
+ companyId?: string | undefined;
29
+ currentNumber?: number | undefined;
30
+ active?: boolean | undefined;
31
+ }, {
32
+ type: "invoice" | "proforma" | "credit_note" | "delivery_note";
33
+ prefix: string;
34
+ companyId?: string | undefined;
35
+ currentNumber?: number | undefined;
36
+ active?: boolean | undefined;
37
+ }>;
38
+ handler: (params: Record<string, unknown>) => Promise<string>;
39
+ } | {
40
+ name: string;
41
+ description: string;
42
+ inputSchema: z.ZodObject<{
43
+ uuid: z.ZodString;
44
+ companyId: z.ZodOptional<z.ZodString>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ uuid: string;
47
+ companyId?: string | undefined;
48
+ }, {
49
+ uuid: string;
50
+ companyId?: string | undefined;
51
+ }>;
52
+ handler: (params: Record<string, unknown>) => Promise<string>;
53
+ })[];
54
+ //# sourceMappingURL=document-series.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-series.d.ts","sourceRoot":"","sources":["../../src/tools/document-series.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,KAAK;;;;;;;;;;;;;sBAiBU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;sBA4CzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;sBA6EzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;IAsCpE,CAAC"}