parasut-node-sdk-mcp 1.0.0

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 (274) hide show
  1. package/.github/workflows/deploy.yaml +51 -0
  2. package/.github/workflows/npm-publish.yml +71 -0
  3. package/.travis.yml +15 -0
  4. package/.yo-rc.json +11 -0
  5. package/LICENSE +21 -0
  6. package/README.md +187 -0
  7. package/gulpfile.js +50 -0
  8. package/package.json +42 -0
  9. package/packages/parasut-mcp-server/README.md +312 -0
  10. package/packages/parasut-mcp-server/dist/client.d.ts +24 -0
  11. package/packages/parasut-mcp-server/dist/client.d.ts.map +1 -0
  12. package/packages/parasut-mcp-server/dist/client.js +46 -0
  13. package/packages/parasut-mcp-server/dist/client.js.map +1 -0
  14. package/packages/parasut-mcp-server/dist/config.d.ts +39 -0
  15. package/packages/parasut-mcp-server/dist/config.d.ts.map +1 -0
  16. package/packages/parasut-mcp-server/dist/config.js +74 -0
  17. package/packages/parasut-mcp-server/dist/config.js.map +1 -0
  18. package/packages/parasut-mcp-server/dist/index.d.ts +21 -0
  19. package/packages/parasut-mcp-server/dist/index.d.ts.map +1 -0
  20. package/packages/parasut-mcp-server/dist/index.js +26 -0
  21. package/packages/parasut-mcp-server/dist/index.js.map +1 -0
  22. package/packages/parasut-mcp-server/dist/server.d.ts +17 -0
  23. package/packages/parasut-mcp-server/dist/server.d.ts.map +1 -0
  24. package/packages/parasut-mcp-server/dist/server.js +61 -0
  25. package/packages/parasut-mcp-server/dist/server.js.map +1 -0
  26. package/packages/parasut-mcp-server/dist/tools/bills.d.ts +13 -0
  27. package/packages/parasut-mcp-server/dist/tools/bills.d.ts.map +1 -0
  28. package/packages/parasut-mcp-server/dist/tools/bills.js +387 -0
  29. package/packages/parasut-mcp-server/dist/tools/bills.js.map +1 -0
  30. package/packages/parasut-mcp-server/dist/tools/contacts.d.ts +13 -0
  31. package/packages/parasut-mcp-server/dist/tools/contacts.d.ts.map +1 -0
  32. package/packages/parasut-mcp-server/dist/tools/contacts.js +522 -0
  33. package/packages/parasut-mcp-server/dist/tools/contacts.js.map +1 -0
  34. package/packages/parasut-mcp-server/dist/tools/edocuments.d.ts +13 -0
  35. package/packages/parasut-mcp-server/dist/tools/edocuments.d.ts.map +1 -0
  36. package/packages/parasut-mcp-server/dist/tools/edocuments.js +514 -0
  37. package/packages/parasut-mcp-server/dist/tools/edocuments.js.map +1 -0
  38. package/packages/parasut-mcp-server/dist/tools/financial.d.ts +13 -0
  39. package/packages/parasut-mcp-server/dist/tools/financial.d.ts.map +1 -0
  40. package/packages/parasut-mcp-server/dist/tools/financial.js +321 -0
  41. package/packages/parasut-mcp-server/dist/tools/financial.js.map +1 -0
  42. package/packages/parasut-mcp-server/dist/tools/index.d.ts +19 -0
  43. package/packages/parasut-mcp-server/dist/tools/index.d.ts.map +1 -0
  44. package/packages/parasut-mcp-server/dist/tools/index.js +132 -0
  45. package/packages/parasut-mcp-server/dist/tools/index.js.map +1 -0
  46. package/packages/parasut-mcp-server/dist/tools/inventory.d.ts +11 -0
  47. package/packages/parasut-mcp-server/dist/tools/inventory.d.ts.map +1 -0
  48. package/packages/parasut-mcp-server/dist/tools/inventory.js +143 -0
  49. package/packages/parasut-mcp-server/dist/tools/inventory.js.map +1 -0
  50. package/packages/parasut-mcp-server/dist/tools/invoices.d.ts +16 -0
  51. package/packages/parasut-mcp-server/dist/tools/invoices.d.ts.map +1 -0
  52. package/packages/parasut-mcp-server/dist/tools/invoices.js +850 -0
  53. package/packages/parasut-mcp-server/dist/tools/invoices.js.map +1 -0
  54. package/packages/parasut-mcp-server/dist/tools/organization.d.ts +14 -0
  55. package/packages/parasut-mcp-server/dist/tools/organization.d.ts.map +1 -0
  56. package/packages/parasut-mcp-server/dist/tools/organization.js +377 -0
  57. package/packages/parasut-mcp-server/dist/tools/organization.js.map +1 -0
  58. package/packages/parasut-mcp-server/dist/tools/products.d.ts +13 -0
  59. package/packages/parasut-mcp-server/dist/tools/products.d.ts.map +1 -0
  60. package/packages/parasut-mcp-server/dist/tools/products.js +299 -0
  61. package/packages/parasut-mcp-server/dist/tools/products.js.map +1 -0
  62. package/packages/parasut-mcp-server/dist/utils/errors.d.ts +34 -0
  63. package/packages/parasut-mcp-server/dist/utils/errors.d.ts.map +1 -0
  64. package/packages/parasut-mcp-server/dist/utils/errors.js +217 -0
  65. package/packages/parasut-mcp-server/dist/utils/errors.js.map +1 -0
  66. package/packages/parasut-mcp-server/dist/utils/response.d.ts +94 -0
  67. package/packages/parasut-mcp-server/dist/utils/response.d.ts.map +1 -0
  68. package/packages/parasut-mcp-server/dist/utils/response.js +194 -0
  69. package/packages/parasut-mcp-server/dist/utils/response.js.map +1 -0
  70. package/packages/parasut-mcp-server/package-lock.json +2831 -0
  71. package/packages/parasut-mcp-server/package.json +70 -0
  72. package/packages/parasut-mcp-server/src/client.ts +55 -0
  73. package/packages/parasut-mcp-server/src/config.ts +99 -0
  74. package/packages/parasut-mcp-server/src/index.ts +27 -0
  75. package/packages/parasut-mcp-server/src/server.ts +79 -0
  76. package/packages/parasut-mcp-server/src/tools/bills.ts +416 -0
  77. package/packages/parasut-mcp-server/src/tools/contacts.ts +549 -0
  78. package/packages/parasut-mcp-server/src/tools/edocuments.ts +543 -0
  79. package/packages/parasut-mcp-server/src/tools/financial.ts +345 -0
  80. package/packages/parasut-mcp-server/src/tools/index.ts +158 -0
  81. package/packages/parasut-mcp-server/src/tools/inventory.ts +154 -0
  82. package/packages/parasut-mcp-server/src/tools/invoices.ts +905 -0
  83. package/packages/parasut-mcp-server/src/tools/organization.ts +405 -0
  84. package/packages/parasut-mcp-server/src/tools/products.ts +320 -0
  85. package/packages/parasut-mcp-server/src/utils/errors.ts +296 -0
  86. package/packages/parasut-mcp-server/src/utils/response.ts +280 -0
  87. package/packages/parasut-mcp-server/tsconfig.json +48 -0
  88. package/packages/parasut-node-sdk/README.md +393 -0
  89. package/packages/parasut-node-sdk/dist/client/HttpTransport.d.ts +92 -0
  90. package/packages/parasut-node-sdk/dist/client/HttpTransport.d.ts.map +1 -0
  91. package/packages/parasut-node-sdk/dist/client/HttpTransport.js +237 -0
  92. package/packages/parasut-node-sdk/dist/client/HttpTransport.js.map +1 -0
  93. package/packages/parasut-node-sdk/dist/client/JsonApi.d.ts +122 -0
  94. package/packages/parasut-node-sdk/dist/client/JsonApi.d.ts.map +1 -0
  95. package/packages/parasut-node-sdk/dist/client/JsonApi.js +192 -0
  96. package/packages/parasut-node-sdk/dist/client/JsonApi.js.map +1 -0
  97. package/packages/parasut-node-sdk/dist/client/OAuth.d.ts +117 -0
  98. package/packages/parasut-node-sdk/dist/client/OAuth.d.ts.map +1 -0
  99. package/packages/parasut-node-sdk/dist/client/OAuth.js +322 -0
  100. package/packages/parasut-node-sdk/dist/client/OAuth.js.map +1 -0
  101. package/packages/parasut-node-sdk/dist/client/ParasutClient.d.ts +198 -0
  102. package/packages/parasut-node-sdk/dist/client/ParasutClient.d.ts.map +1 -0
  103. package/packages/parasut-node-sdk/dist/client/ParasutClient.js +334 -0
  104. package/packages/parasut-node-sdk/dist/client/ParasutClient.js.map +1 -0
  105. package/packages/parasut-node-sdk/dist/client/QueryBuilder.d.ts +115 -0
  106. package/packages/parasut-node-sdk/dist/client/QueryBuilder.d.ts.map +1 -0
  107. package/packages/parasut-node-sdk/dist/client/QueryBuilder.js +206 -0
  108. package/packages/parasut-node-sdk/dist/client/QueryBuilder.js.map +1 -0
  109. package/packages/parasut-node-sdk/dist/client/RateLimiter.d.ts +77 -0
  110. package/packages/parasut-node-sdk/dist/client/RateLimiter.d.ts.map +1 -0
  111. package/packages/parasut-node-sdk/dist/client/RateLimiter.js +142 -0
  112. package/packages/parasut-node-sdk/dist/client/RateLimiter.js.map +1 -0
  113. package/packages/parasut-node-sdk/dist/client/RetryHandler.d.ts +88 -0
  114. package/packages/parasut-node-sdk/dist/client/RetryHandler.d.ts.map +1 -0
  115. package/packages/parasut-node-sdk/dist/client/RetryHandler.js +125 -0
  116. package/packages/parasut-node-sdk/dist/client/RetryHandler.js.map +1 -0
  117. package/packages/parasut-node-sdk/dist/client/errors.d.ts +87 -0
  118. package/packages/parasut-node-sdk/dist/client/errors.d.ts.map +1 -0
  119. package/packages/parasut-node-sdk/dist/client/errors.js +153 -0
  120. package/packages/parasut-node-sdk/dist/client/errors.js.map +1 -0
  121. package/packages/parasut-node-sdk/dist/generated/operations.d.ts +157 -0
  122. package/packages/parasut-node-sdk/dist/generated/operations.d.ts.map +1 -0
  123. package/packages/parasut-node-sdk/dist/generated/operations.js +1285 -0
  124. package/packages/parasut-node-sdk/dist/generated/operations.js.map +1 -0
  125. package/packages/parasut-node-sdk/dist/generated/types.d.ts +1743 -0
  126. package/packages/parasut-node-sdk/dist/generated/types.d.ts.map +1 -0
  127. package/packages/parasut-node-sdk/dist/generated/types.js +6 -0
  128. package/packages/parasut-node-sdk/dist/generated/types.js.map +1 -0
  129. package/packages/parasut-node-sdk/dist/index.d.ts +49 -0
  130. package/packages/parasut-node-sdk/dist/index.d.ts.map +1 -0
  131. package/packages/parasut-node-sdk/dist/index.js +91 -0
  132. package/packages/parasut-node-sdk/dist/index.js.map +1 -0
  133. package/packages/parasut-node-sdk/dist/resources/BaseResource.d.ts +143 -0
  134. package/packages/parasut-node-sdk/dist/resources/BaseResource.d.ts.map +1 -0
  135. package/packages/parasut-node-sdk/dist/resources/BaseResource.js +148 -0
  136. package/packages/parasut-node-sdk/dist/resources/BaseResource.js.map +1 -0
  137. package/packages/parasut-node-sdk/dist/resources/accounts.d.ts +71 -0
  138. package/packages/parasut-node-sdk/dist/resources/accounts.d.ts.map +1 -0
  139. package/packages/parasut-node-sdk/dist/resources/accounts.js +43 -0
  140. package/packages/parasut-node-sdk/dist/resources/accounts.js.map +1 -0
  141. package/packages/parasut-node-sdk/dist/resources/bankFees.d.ts +52 -0
  142. package/packages/parasut-node-sdk/dist/resources/bankFees.d.ts.map +1 -0
  143. package/packages/parasut-node-sdk/dist/resources/bankFees.js +25 -0
  144. package/packages/parasut-node-sdk/dist/resources/bankFees.js.map +1 -0
  145. package/packages/parasut-node-sdk/dist/resources/contacts.d.ts +62 -0
  146. package/packages/parasut-node-sdk/dist/resources/contacts.d.ts.map +1 -0
  147. package/packages/parasut-node-sdk/dist/resources/contacts.js +43 -0
  148. package/packages/parasut-node-sdk/dist/resources/contacts.js.map +1 -0
  149. package/packages/parasut-node-sdk/dist/resources/eArchives.d.ts +125 -0
  150. package/packages/parasut-node-sdk/dist/resources/eArchives.d.ts.map +1 -0
  151. package/packages/parasut-node-sdk/dist/resources/eArchives.js +100 -0
  152. package/packages/parasut-node-sdk/dist/resources/eArchives.js.map +1 -0
  153. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.d.ts +48 -0
  154. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.d.ts.map +1 -0
  155. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.js +46 -0
  156. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.js.map +1 -0
  157. package/packages/parasut-node-sdk/dist/resources/eInvoices.d.ts +104 -0
  158. package/packages/parasut-node-sdk/dist/resources/eInvoices.d.ts.map +1 -0
  159. package/packages/parasut-node-sdk/dist/resources/eInvoices.js +72 -0
  160. package/packages/parasut-node-sdk/dist/resources/eInvoices.js.map +1 -0
  161. package/packages/parasut-node-sdk/dist/resources/eSmms.d.ts +73 -0
  162. package/packages/parasut-node-sdk/dist/resources/eSmms.d.ts.map +1 -0
  163. package/packages/parasut-node-sdk/dist/resources/eSmms.js +59 -0
  164. package/packages/parasut-node-sdk/dist/resources/eSmms.js.map +1 -0
  165. package/packages/parasut-node-sdk/dist/resources/employees.d.ts +37 -0
  166. package/packages/parasut-node-sdk/dist/resources/employees.d.ts.map +1 -0
  167. package/packages/parasut-node-sdk/dist/resources/employees.js +31 -0
  168. package/packages/parasut-node-sdk/dist/resources/employees.js.map +1 -0
  169. package/packages/parasut-node-sdk/dist/resources/index.d.ts +26 -0
  170. package/packages/parasut-node-sdk/dist/resources/index.d.ts.map +1 -0
  171. package/packages/parasut-node-sdk/dist/resources/index.js +35 -0
  172. package/packages/parasut-node-sdk/dist/resources/index.js.map +1 -0
  173. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.d.ts +25 -0
  174. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.d.ts.map +1 -0
  175. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.js +22 -0
  176. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.js.map +1 -0
  177. package/packages/parasut-node-sdk/dist/resources/itemCategories.d.ts +31 -0
  178. package/packages/parasut-node-sdk/dist/resources/itemCategories.d.ts.map +1 -0
  179. package/packages/parasut-node-sdk/dist/resources/itemCategories.js +22 -0
  180. package/packages/parasut-node-sdk/dist/resources/itemCategories.js.map +1 -0
  181. package/packages/parasut-node-sdk/dist/resources/products.d.ts +50 -0
  182. package/packages/parasut-node-sdk/dist/resources/products.d.ts.map +1 -0
  183. package/packages/parasut-node-sdk/dist/resources/products.js +31 -0
  184. package/packages/parasut-node-sdk/dist/resources/products.js.map +1 -0
  185. package/packages/parasut-node-sdk/dist/resources/purchaseBills.d.ts +105 -0
  186. package/packages/parasut-node-sdk/dist/resources/purchaseBills.d.ts.map +1 -0
  187. package/packages/parasut-node-sdk/dist/resources/purchaseBills.js +67 -0
  188. package/packages/parasut-node-sdk/dist/resources/purchaseBills.js.map +1 -0
  189. package/packages/parasut-node-sdk/dist/resources/salaries.d.ts +50 -0
  190. package/packages/parasut-node-sdk/dist/resources/salaries.d.ts.map +1 -0
  191. package/packages/parasut-node-sdk/dist/resources/salaries.js +25 -0
  192. package/packages/parasut-node-sdk/dist/resources/salaries.js.map +1 -0
  193. package/packages/parasut-node-sdk/dist/resources/salesInvoices.d.ts +137 -0
  194. package/packages/parasut-node-sdk/dist/resources/salesInvoices.d.ts.map +1 -0
  195. package/packages/parasut-node-sdk/dist/resources/salesInvoices.js +84 -0
  196. package/packages/parasut-node-sdk/dist/resources/salesInvoices.js.map +1 -0
  197. package/packages/parasut-node-sdk/dist/resources/salesOffers.d.ts +72 -0
  198. package/packages/parasut-node-sdk/dist/resources/salesOffers.d.ts.map +1 -0
  199. package/packages/parasut-node-sdk/dist/resources/salesOffers.js +66 -0
  200. package/packages/parasut-node-sdk/dist/resources/salesOffers.js.map +1 -0
  201. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.d.ts +26 -0
  202. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.d.ts.map +1 -0
  203. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.js +16 -0
  204. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.js.map +1 -0
  205. package/packages/parasut-node-sdk/dist/resources/stockMovements.d.ts +27 -0
  206. package/packages/parasut-node-sdk/dist/resources/stockMovements.d.ts.map +1 -0
  207. package/packages/parasut-node-sdk/dist/resources/stockMovements.js +16 -0
  208. package/packages/parasut-node-sdk/dist/resources/stockMovements.js.map +1 -0
  209. package/packages/parasut-node-sdk/dist/resources/tags.d.ts +22 -0
  210. package/packages/parasut-node-sdk/dist/resources/tags.d.ts.map +1 -0
  211. package/packages/parasut-node-sdk/dist/resources/tags.js +16 -0
  212. package/packages/parasut-node-sdk/dist/resources/tags.js.map +1 -0
  213. package/packages/parasut-node-sdk/dist/resources/taxes.d.ts +50 -0
  214. package/packages/parasut-node-sdk/dist/resources/taxes.d.ts.map +1 -0
  215. package/packages/parasut-node-sdk/dist/resources/taxes.js +25 -0
  216. package/packages/parasut-node-sdk/dist/resources/taxes.js.map +1 -0
  217. package/packages/parasut-node-sdk/dist/resources/trackableJobs.d.ts +72 -0
  218. package/packages/parasut-node-sdk/dist/resources/trackableJobs.d.ts.map +1 -0
  219. package/packages/parasut-node-sdk/dist/resources/trackableJobs.js +108 -0
  220. package/packages/parasut-node-sdk/dist/resources/trackableJobs.js.map +1 -0
  221. package/packages/parasut-node-sdk/dist/resources/transactions.d.ts +26 -0
  222. package/packages/parasut-node-sdk/dist/resources/transactions.d.ts.map +1 -0
  223. package/packages/parasut-node-sdk/dist/resources/transactions.js +16 -0
  224. package/packages/parasut-node-sdk/dist/resources/transactions.js.map +1 -0
  225. package/packages/parasut-node-sdk/package-lock.json +4030 -0
  226. package/packages/parasut-node-sdk/package.json +71 -0
  227. package/packages/parasut-node-sdk/scripts/generate-types.ts +495 -0
  228. package/packages/parasut-node-sdk/src/client/HttpTransport.ts +334 -0
  229. package/packages/parasut-node-sdk/src/client/JsonApi.ts +314 -0
  230. package/packages/parasut-node-sdk/src/client/OAuth.ts +446 -0
  231. package/packages/parasut-node-sdk/src/client/ParasutClient.ts +423 -0
  232. package/packages/parasut-node-sdk/src/client/QueryBuilder.ts +292 -0
  233. package/packages/parasut-node-sdk/src/client/RateLimiter.ts +190 -0
  234. package/packages/parasut-node-sdk/src/client/RetryHandler.ts +216 -0
  235. package/packages/parasut-node-sdk/src/client/errors.ts +209 -0
  236. package/packages/parasut-node-sdk/src/generated/operations.ts +1454 -0
  237. package/packages/parasut-node-sdk/src/generated/types.ts +1856 -0
  238. package/packages/parasut-node-sdk/src/index.ts +235 -0
  239. package/packages/parasut-node-sdk/src/resources/BaseResource.ts +275 -0
  240. package/packages/parasut-node-sdk/src/resources/accounts.ts +108 -0
  241. package/packages/parasut-node-sdk/src/resources/bankFees.ts +74 -0
  242. package/packages/parasut-node-sdk/src/resources/contacts.ts +96 -0
  243. package/packages/parasut-node-sdk/src/resources/eArchives.ts +202 -0
  244. package/packages/parasut-node-sdk/src/resources/eInvoiceInboxes.ts +78 -0
  245. package/packages/parasut-node-sdk/src/resources/eInvoices.ts +166 -0
  246. package/packages/parasut-node-sdk/src/resources/eSmms.ts +132 -0
  247. package/packages/parasut-node-sdk/src/resources/employees.ts +69 -0
  248. package/packages/parasut-node-sdk/src/resources/index.ts +44 -0
  249. package/packages/parasut-node-sdk/src/resources/inventoryLevels.ts +45 -0
  250. package/packages/parasut-node-sdk/src/resources/itemCategories.ts +49 -0
  251. package/packages/parasut-node-sdk/src/resources/products.ts +78 -0
  252. package/packages/parasut-node-sdk/src/resources/purchaseBills.ts +162 -0
  253. package/packages/parasut-node-sdk/src/resources/salaries.ts +72 -0
  254. package/packages/parasut-node-sdk/src/resources/salesInvoices.ts +194 -0
  255. package/packages/parasut-node-sdk/src/resources/salesOffers.ts +149 -0
  256. package/packages/parasut-node-sdk/src/resources/shipmentDocuments.ts +40 -0
  257. package/packages/parasut-node-sdk/src/resources/stockMovements.ts +41 -0
  258. package/packages/parasut-node-sdk/src/resources/tags.ts +32 -0
  259. package/packages/parasut-node-sdk/src/resources/taxes.ts +68 -0
  260. package/packages/parasut-node-sdk/src/resources/trackableJobs.ts +167 -0
  261. package/packages/parasut-node-sdk/src/resources/transactions.ts +40 -0
  262. package/packages/parasut-node-sdk/tsconfig.json +47 -0
  263. package/scripts/build.js +14 -0
  264. package/scripts/deploy-branch.js +16 -0
  265. package/spec/README.md +24 -0
  266. package/spec/code_samples/README.md +9 -0
  267. package/spec/swagger.yaml +19616 -0
  268. package/web/CNAME +1 -0
  269. package/web/custom.css +34 -0
  270. package/web/favicon.ico +0 -0
  271. package/web/favicon.png +0 -0
  272. package/web/index.html +26 -0
  273. package/web/logo.png +0 -0
  274. package/web/v4.html +3 -0
@@ -0,0 +1,387 @@
1
+ /**
2
+ * Purchase Bill Tools
3
+ *
4
+ * Tools for managing expenses and purchase bills.
5
+ */
6
+ import { z } from 'zod';
7
+ import { getClient } from '../client.js';
8
+ import { formatSuccess, formatList, formatCreated, formatNotFound, } from '../utils/response.js';
9
+ import { handleError } from '../utils/errors.js';
10
+ // ============================================================================
11
+ // Schemas
12
+ // ============================================================================
13
+ const SearchBillsSchema = z.object({
14
+ supplier_id: z.string().optional().describe('Filter by supplier ID'),
15
+ issue_date_start: z.string().optional().describe('Start date (YYYY-MM-DD)'),
16
+ issue_date_end: z.string().optional().describe('End date (YYYY-MM-DD)'),
17
+ page: z.number().int().min(1).default(1),
18
+ limit: z.number().int().min(1).max(100).default(100),
19
+ });
20
+ const GetBillSchema = z.object({
21
+ id: z.string().describe('Bill ID'),
22
+ });
23
+ const BillLineSchema = z.object({
24
+ description: z.string().describe('Line item description'),
25
+ quantity: z.number().positive().default(1),
26
+ unit_price: z.number().describe('Unit price'),
27
+ vat_rate: z.number().min(0).max(100).default(20),
28
+ category_id: z.string().optional().describe('Expense category ID'),
29
+ });
30
+ const CreateBillSchema = z.object({
31
+ supplier_id: z.string().describe('Supplier contact ID'),
32
+ issue_date: z.string().optional().describe('Bill date (YYYY-MM-DD)'),
33
+ due_date: z.string().optional().describe('Due date'),
34
+ invoice_no: z.string().optional().describe('Supplier invoice number'),
35
+ currency: z.enum(['TRL', 'USD', 'EUR', 'GBP']).default('TRL'),
36
+ lines: z.array(BillLineSchema).min(1).describe('Bill line items'),
37
+ confirm: z.boolean().optional().describe('⚠️ Set to true to confirm creation. Required to execute.'),
38
+ });
39
+ const RecordBillPaymentSchema = z.object({
40
+ bill_id: z.string().describe('Bill ID'),
41
+ amount: z.number().positive().describe('Payment amount'),
42
+ date: z.string().optional().describe('Payment date'),
43
+ account_id: z.string().optional().describe('Account ID'),
44
+ confirm: z.boolean().optional().describe('⚠️ Set to true to confirm payment. Required to execute.'),
45
+ });
46
+ // ============================================================================
47
+ // Tool Definitions
48
+ // ============================================================================
49
+ export const billTools = [
50
+ {
51
+ name: 'search_bills',
52
+ description: `
53
+ <usecase>
54
+ Search for purchase bills (expenses/supplier invoices).
55
+ Use when: Finding bills by supplier, date range, or browsing expenses.
56
+ Do NOT use when: You have the bill ID (use get_bill instead).
57
+ </usecase>
58
+
59
+ <example>
60
+ search_bills(supplier_id="12345")
61
+ search_bills(issue_date_start="2024-01-01")
62
+ </example>
63
+
64
+ <returns>
65
+ List of bills with: id, invoice_no, issue_date, net_total, remaining, currency.
66
+ Use the ID to call get_bill for full details.
67
+ </returns>
68
+ `.trim(),
69
+ inputSchema: {
70
+ type: 'object',
71
+ properties: {
72
+ supplier_id: { type: 'string', description: 'Filter by supplier ID' },
73
+ issue_date_start: { type: 'string', description: 'Start date (YYYY-MM-DD)' },
74
+ issue_date_end: { type: 'string', description: 'End date (YYYY-MM-DD)' },
75
+ page: { type: 'number', default: 1 },
76
+ limit: { type: 'number', default: 100 },
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: 'get_bill',
82
+ description: `
83
+ <usecase>
84
+ Get detailed information about a purchase bill.
85
+ Use when: You have a bill ID and need full details, line items, or payment history.
86
+ Do NOT use when: You don't have the ID yet (use search_bills first).
87
+ </usecase>
88
+
89
+ <example>
90
+ get_bill(id="12345")
91
+ </example>
92
+
93
+ <returns>
94
+ Full bill: id, invoice_no, issue_date, net_total, remaining, currency.
95
+ </returns>
96
+ `.trim(),
97
+ inputSchema: {
98
+ type: 'object',
99
+ properties: {
100
+ id: { type: 'string', description: 'Bill ID' },
101
+ },
102
+ required: ['id'],
103
+ },
104
+ },
105
+ {
106
+ name: 'create_bill',
107
+ description: `
108
+ <usecase>
109
+ 📋 Create a new purchase bill (expense). THIS CREATES A FINANCIAL RECORD.
110
+ Use when: Recording an expense or supplier invoice.
111
+ Do NOT use when: Creating a sales invoice to a customer (use create_invoice instead).
112
+ </usecase>
113
+
114
+ <instructions>
115
+ ⚠️ REQUIRES CONFIRMATION: Set confirm=true to execute.
116
+ - supplier_id: Supplier contact ID (required)
117
+ - lines: Expense line items (required)
118
+ - category_id in lines: Expense category for accounting
119
+ - currency: Must be TRL, USD, EUR, or GBP
120
+ - confirm: Must be true to execute. Without confirm=true, returns preview only.
121
+ </instructions>
122
+
123
+ <example>
124
+ create_bill(supplier_id="12345", lines=[...]) # Preview only
125
+ create_bill(supplier_id="12345", lines=[...], confirm=true) # Actually creates
126
+ </example>
127
+
128
+ <returns>
129
+ Without confirm: Preview of bill to be created with calculated totals.
130
+ With confirm=true: Created bill with: id, invoice_no.
131
+ Use the ID for record_bill_payment.
132
+ </returns>
133
+ `.trim(),
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ supplier_id: { type: 'string' },
138
+ issue_date: { type: 'string' },
139
+ due_date: { type: 'string' },
140
+ invoice_no: { type: 'string' },
141
+ currency: { type: 'string', enum: ['TRL', 'USD', 'EUR', 'GBP'], description: 'Currency. MUST be one of: TRL, USD, EUR, GBP' },
142
+ confirm: { type: 'boolean', description: '⚠️ Set to true to confirm creation. Required to execute.' },
143
+ lines: {
144
+ type: 'array',
145
+ items: {
146
+ type: 'object',
147
+ properties: {
148
+ description: { type: 'string' },
149
+ quantity: { type: 'number' },
150
+ unit_price: { type: 'number' },
151
+ vat_rate: { type: 'number' },
152
+ category_id: { type: 'string' },
153
+ },
154
+ required: ['description', 'unit_price'],
155
+ },
156
+ },
157
+ },
158
+ required: ['supplier_id', 'lines'],
159
+ },
160
+ },
161
+ {
162
+ name: 'record_bill_payment',
163
+ description: `
164
+ <usecase>
165
+ 💸 Record a payment made for a purchase bill. THIS AFFECTS FINANCIAL RECORDS.
166
+ Use when: Paying a supplier for an outstanding bill.
167
+ Do NOT use when: Recording a payment received from a customer (use record_invoice_payment).
168
+ </usecase>
169
+
170
+ <instructions>
171
+ ⚠️ REQUIRES CONFIRMATION: Set confirm=true to execute.
172
+ - bill_id: Bill ID (required)
173
+ - amount: Payment amount (required)
174
+ - confirm: Must be true to execute. Without confirm=true, returns preview only.
175
+ </instructions>
176
+
177
+ <example>
178
+ record_bill_payment(bill_id="12345", amount=5000) # Preview only
179
+ record_bill_payment(bill_id="12345", amount=5000, confirm=true) # Actually records
180
+ </example>
181
+
182
+ <returns>
183
+ Without confirm: Preview of payment to be recorded.
184
+ With confirm=true: Payment record with: payment_id, amount.
185
+ </returns>
186
+ `.trim(),
187
+ inputSchema: {
188
+ type: 'object',
189
+ properties: {
190
+ bill_id: { type: 'string' },
191
+ amount: { type: 'number' },
192
+ confirm: { type: 'boolean', description: '⚠️ Set to true to confirm payment. Required to execute.' },
193
+ date: { type: 'string', description: 'Payment date (YYYY-MM-DD)' },
194
+ account_id: { type: 'string', description: 'Bank/cash account ID' },
195
+ },
196
+ required: ['bill_id', 'amount'],
197
+ },
198
+ },
199
+ ];
200
+ // ============================================================================
201
+ // Handlers
202
+ // ============================================================================
203
+ export async function handleSearchBills(args) {
204
+ try {
205
+ const params = SearchBillsSchema.parse(args);
206
+ const client = getClient();
207
+ const filter = {};
208
+ if (params.supplier_id)
209
+ filter['supplier_id'] = params.supplier_id;
210
+ if (params.issue_date_start)
211
+ filter['issue_date'] = params.issue_date_start;
212
+ const response = await client.purchaseBills.list({
213
+ filter,
214
+ page: { number: params.page, size: params.limit },
215
+ });
216
+ return formatList(response.data, {
217
+ totalCount: response.meta.total_count,
218
+ currentPage: response.meta.current_page,
219
+ totalPages: response.meta.total_pages,
220
+ }, {
221
+ nextSteps: [
222
+ { action: 'Get bill details', example: 'get_bill(id="<id>")' },
223
+ { action: 'Record payment', example: 'record_bill_payment(bill_id="<id>", amount=...)' },
224
+ ],
225
+ });
226
+ }
227
+ catch (error) {
228
+ return handleError(error, { operation: 'Search bills', resourceType: 'Bill' });
229
+ }
230
+ }
231
+ export async function handleGetBill(args) {
232
+ try {
233
+ const params = GetBillSchema.parse(args);
234
+ const client = getClient();
235
+ const response = await client.purchaseBills.get(params.id, {
236
+ include: ['supplier', 'details', 'payments'],
237
+ });
238
+ if (!response.data) {
239
+ return formatNotFound('Bill', params.id, [
240
+ { action: 'Search bills', example: 'search_bills()' },
241
+ ]);
242
+ }
243
+ const bill = response.data;
244
+ return formatSuccess({
245
+ id: bill.id,
246
+ invoice_no: bill.attributes.invoice_no,
247
+ issue_date: bill.attributes.issue_date,
248
+ net_total: bill.attributes.net_total,
249
+ remaining: bill.attributes.remaining,
250
+ currency: bill.attributes.currency,
251
+ }, {
252
+ summary: `Bill #${bill.attributes.invoice_no}`,
253
+ });
254
+ }
255
+ catch (error) {
256
+ return handleError(error, { operation: 'Get bill', resourceType: 'Bill' });
257
+ }
258
+ }
259
+ export async function handleCreateBill(args) {
260
+ try {
261
+ const params = CreateBillSchema.parse(args);
262
+ const client = getClient();
263
+ const issueDate = params.issue_date ?? new Date().toISOString().split('T')[0];
264
+ // If not confirmed, return preview
265
+ if (!params.confirm) {
266
+ // Try to get supplier info for preview
267
+ let supplierName = 'Unknown';
268
+ try {
269
+ const supplier = await client.contacts.get(params.supplier_id);
270
+ supplierName = supplier.data?.attributes.name ?? 'Unknown';
271
+ }
272
+ catch {
273
+ // Supplier lookup failed, continue with unknown
274
+ }
275
+ // Calculate totals for preview
276
+ let netTotal = 0;
277
+ let totalVat = 0;
278
+ for (const line of params.lines) {
279
+ const lineTotal = (line.quantity ?? 1) * line.unit_price;
280
+ const vatRate = line.vat_rate ?? 20;
281
+ netTotal += lineTotal;
282
+ totalVat += lineTotal * (vatRate / 100);
283
+ }
284
+ return formatSuccess({
285
+ preview: true,
286
+ bill_to_create: {
287
+ supplier_id: params.supplier_id,
288
+ supplier_name: supplierName,
289
+ issue_date: issueDate,
290
+ due_date: params.due_date,
291
+ invoice_no: params.invoice_no,
292
+ currency: params.currency,
293
+ line_count: params.lines.length,
294
+ net_total: netTotal,
295
+ vat_total: totalVat,
296
+ gross_total: netTotal + totalVat,
297
+ },
298
+ warning: '⚠️ This will create a purchase bill (expense). Call again with confirm=true to proceed.',
299
+ }, {
300
+ summary: `Preview: Create bill for ${supplierName} - ${netTotal.toFixed(2)} ${params.currency}`,
301
+ nextSteps: [
302
+ { action: 'Confirm creation', example: `create_bill(supplier_id="${params.supplier_id}", lines=[...], confirm=true)` },
303
+ ],
304
+ });
305
+ }
306
+ const response = await client.purchaseBills.create({
307
+ data: {
308
+ type: 'purchase_bills',
309
+ attributes: {
310
+ item_type: 'invoice',
311
+ issue_date: issueDate,
312
+ ...(params.due_date !== undefined && { due_date: params.due_date }),
313
+ ...(params.invoice_no !== undefined && { invoice_no: params.invoice_no }),
314
+ currency: params.currency,
315
+ },
316
+ relationships: {
317
+ supplier: { data: { id: params.supplier_id, type: 'contacts' } },
318
+ },
319
+ },
320
+ });
321
+ return formatCreated('Bill', {
322
+ id: response.data.id,
323
+ invoice_no: response.data.attributes.invoice_no,
324
+ }, [
325
+ { action: 'Record payment', example: `record_bill_payment(bill_id="${response.data.id}", amount=...)` },
326
+ ]);
327
+ }
328
+ catch (error) {
329
+ return handleError(error, { operation: 'Create bill', resourceType: 'Bill' });
330
+ }
331
+ }
332
+ export async function handleRecordBillPayment(args) {
333
+ try {
334
+ const params = RecordBillPaymentSchema.parse(args);
335
+ const client = getClient();
336
+ const paymentDate = params.date ?? new Date().toISOString().split('T')[0];
337
+ // If not confirmed, return preview
338
+ if (!params.confirm) {
339
+ const bill = await client.purchaseBills.get(params.bill_id);
340
+ if (!bill.data) {
341
+ return formatNotFound('Bill', params.bill_id, [
342
+ { action: 'Search bills', example: 'search_bills()' },
343
+ ]);
344
+ }
345
+ const attr = bill.data.attributes;
346
+ return formatSuccess({
347
+ preview: true,
348
+ payment_to_record: {
349
+ bill_id: params.bill_id,
350
+ invoice_no: attr.invoice_no,
351
+ current_remaining: attr.remaining,
352
+ payment_amount: params.amount,
353
+ new_remaining: (attr.remaining ?? 0) - params.amount,
354
+ date: paymentDate,
355
+ },
356
+ warning: '⚠️ This will record a supplier payment and affect financial records. Call again with confirm=true to proceed.',
357
+ }, {
358
+ summary: `Preview: Record payment of ${params.amount} for Bill #${attr.invoice_no}`,
359
+ nextSteps: [
360
+ { action: 'Confirm payment', example: `record_bill_payment(bill_id="${params.bill_id}", amount=${params.amount}, confirm=true)` },
361
+ ],
362
+ });
363
+ }
364
+ const result = await client.purchaseBills.pay(params.bill_id, {
365
+ data: {
366
+ type: 'payments',
367
+ attributes: {
368
+ date: paymentDate,
369
+ amount: params.amount,
370
+ },
371
+ ...(params.account_id !== undefined && {
372
+ relationships: {
373
+ account: { data: { id: params.account_id, type: 'accounts' } }
374
+ }
375
+ }),
376
+ },
377
+ });
378
+ return formatSuccess({
379
+ payment_id: result.data?.id,
380
+ amount: params.amount,
381
+ }, { summary: `✅ Payment of ${params.amount} recorded` });
382
+ }
383
+ catch (error) {
384
+ return handleError(error, { operation: 'Record payment', resourceType: 'Payment' });
385
+ }
386
+ }
387
+ //# sourceMappingURL=bills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bills.js","sourceRoot":"","sources":["../../src/tools/bills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Contact Tools
3
+ *
4
+ * Tools for managing customers and suppliers.
5
+ */
6
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import { type ToolResponse } from '../utils/response.js';
8
+ export declare const contactTools: Tool[];
9
+ export declare function handleSearchContacts(args: unknown): Promise<ToolResponse>;
10
+ export declare function handleGetContact(args: unknown): Promise<ToolResponse>;
11
+ export declare function handleCreateContact(args: unknown): Promise<ToolResponse>;
12
+ export declare function handleUpdateContact(args: unknown): Promise<ToolResponse>;
13
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAsE9B,eAAO,MAAM,YAAY,EAAE,IAAI,EA4O9B,CAAC;AAMF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,YAAY,CAAC,CAsCvB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAwE3E;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,YAAY,CAAC,CA8CvB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,YAAY,CAAC,CAoDvB"}