pigeongov 0.2.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 (571) hide show
  1. package/AGENTS.md +258 -0
  2. package/LICENSE +21 -0
  3. package/PRIVACY.md +38 -0
  4. package/README.md +234 -0
  5. package/agents.json +72 -0
  6. package/dist/bin/pigeongov.d.ts +2 -0
  7. package/dist/bin/pigeongov.js +4 -0
  8. package/dist/bin/pigeongov.js.map +1 -0
  9. package/dist/src/advisory/decision-support/contribution-optimizer.d.ts +36 -0
  10. package/dist/src/advisory/decision-support/contribution-optimizer.js +88 -0
  11. package/dist/src/advisory/decision-support/contribution-optimizer.js.map +1 -0
  12. package/dist/src/advisory/decision-support/deduction-optimizer.d.ts +31 -0
  13. package/dist/src/advisory/decision-support/deduction-optimizer.js +96 -0
  14. package/dist/src/advisory/decision-support/deduction-optimizer.js.map +1 -0
  15. package/dist/src/advisory/life-events/events.d.ts +4 -0
  16. package/dist/src/advisory/life-events/events.js +156 -0
  17. package/dist/src/advisory/life-events/events.js.map +1 -0
  18. package/dist/src/advisory/life-events/planner.d.ts +19 -0
  19. package/dist/src/advisory/life-events/planner.js +72 -0
  20. package/dist/src/advisory/life-events/planner.js.map +1 -0
  21. package/dist/src/advisory/screener/engine.d.ts +4 -0
  22. package/dist/src/advisory/screener/engine.js +368 -0
  23. package/dist/src/advisory/screener/engine.js.map +1 -0
  24. package/dist/src/advisory/screener/intake.d.ts +68 -0
  25. package/dist/src/advisory/screener/intake.js +93 -0
  26. package/dist/src/advisory/screener/intake.js.map +1 -0
  27. package/dist/src/analytics/stats.d.ts +18 -0
  28. package/dist/src/analytics/stats.js +158 -0
  29. package/dist/src/analytics/stats.js.map +1 -0
  30. package/dist/src/api/handlers/deadlines.d.ts +2 -0
  31. package/dist/src/api/handlers/deadlines.js +7 -0
  32. package/dist/src/api/handlers/deadlines.js.map +1 -0
  33. package/dist/src/api/handlers/openapi.d.ts +2 -0
  34. package/dist/src/api/handlers/openapi.js +7 -0
  35. package/dist/src/api/handlers/openapi.js.map +1 -0
  36. package/dist/src/api/handlers/workflows.d.ts +5 -0
  37. package/dist/src/api/handlers/workflows.js +73 -0
  38. package/dist/src/api/handlers/workflows.js.map +1 -0
  39. package/dist/src/api/index.d.ts +20 -0
  40. package/dist/src/api/index.js +70 -0
  41. package/dist/src/api/index.js.map +1 -0
  42. package/dist/src/api/openapi.d.ts +5 -0
  43. package/dist/src/api/openapi.js +384 -0
  44. package/dist/src/api/openapi.js.map +1 -0
  45. package/dist/src/api/router.d.ts +19 -0
  46. package/dist/src/api/router.js +57 -0
  47. package/dist/src/api/router.js.map +1 -0
  48. package/dist/src/cli/commands/completions.d.ts +2 -0
  49. package/dist/src/cli/commands/completions.js +396 -0
  50. package/dist/src/cli/commands/completions.js.map +1 -0
  51. package/dist/src/cli/commands/deadlines.d.ts +2 -0
  52. package/dist/src/cli/commands/deadlines.js +47 -0
  53. package/dist/src/cli/commands/deadlines.js.map +1 -0
  54. package/dist/src/cli/commands/doctor.d.ts +2 -0
  55. package/dist/src/cli/commands/doctor.js +50 -0
  56. package/dist/src/cli/commands/doctor.js.map +1 -0
  57. package/dist/src/cli/commands/drafts.d.ts +2 -0
  58. package/dist/src/cli/commands/drafts.js +75 -0
  59. package/dist/src/cli/commands/drafts.js.map +1 -0
  60. package/dist/src/cli/commands/extract.d.ts +2 -0
  61. package/dist/src/cli/commands/extract.js +17 -0
  62. package/dist/src/cli/commands/extract.js.map +1 -0
  63. package/dist/src/cli/commands/fees.d.ts +2 -0
  64. package/dist/src/cli/commands/fees.js +40 -0
  65. package/dist/src/cli/commands/fees.js.map +1 -0
  66. package/dist/src/cli/commands/fill.d.ts +25 -0
  67. package/dist/src/cli/commands/fill.js +354 -0
  68. package/dist/src/cli/commands/fill.js.map +1 -0
  69. package/dist/src/cli/commands/glossary.d.ts +2 -0
  70. package/dist/src/cli/commands/glossary.js +90 -0
  71. package/dist/src/cli/commands/glossary.js.map +1 -0
  72. package/dist/src/cli/commands/life-event.d.ts +2 -0
  73. package/dist/src/cli/commands/life-event.js +41 -0
  74. package/dist/src/cli/commands/life-event.js.map +1 -0
  75. package/dist/src/cli/commands/list.d.ts +2 -0
  76. package/dist/src/cli/commands/list.js +19 -0
  77. package/dist/src/cli/commands/list.js.map +1 -0
  78. package/dist/src/cli/commands/machine.d.ts +2 -0
  79. package/dist/src/cli/commands/machine.js +100 -0
  80. package/dist/src/cli/commands/machine.js.map +1 -0
  81. package/dist/src/cli/commands/merge.d.ts +2 -0
  82. package/dist/src/cli/commands/merge.js +24 -0
  83. package/dist/src/cli/commands/merge.js.map +1 -0
  84. package/dist/src/cli/commands/plugin.d.ts +2 -0
  85. package/dist/src/cli/commands/plugin.js +119 -0
  86. package/dist/src/cli/commands/plugin.js.map +1 -0
  87. package/dist/src/cli/commands/profile.d.ts +2 -0
  88. package/dist/src/cli/commands/profile.js +125 -0
  89. package/dist/src/cli/commands/profile.js.map +1 -0
  90. package/dist/src/cli/commands/review.d.ts +2 -0
  91. package/dist/src/cli/commands/review.js +25 -0
  92. package/dist/src/cli/commands/review.js.map +1 -0
  93. package/dist/src/cli/commands/scaffold.d.ts +2 -0
  94. package/dist/src/cli/commands/scaffold.js +304 -0
  95. package/dist/src/cli/commands/scaffold.js.map +1 -0
  96. package/dist/src/cli/commands/schemas.d.ts +2 -0
  97. package/dist/src/cli/commands/schemas.js +14 -0
  98. package/dist/src/cli/commands/schemas.js.map +1 -0
  99. package/dist/src/cli/commands/screen.d.ts +2 -0
  100. package/dist/src/cli/commands/screen.js +89 -0
  101. package/dist/src/cli/commands/screen.js.map +1 -0
  102. package/dist/src/cli/commands/serve.d.ts +2 -0
  103. package/dist/src/cli/commands/serve.js +46 -0
  104. package/dist/src/cli/commands/serve.js.map +1 -0
  105. package/dist/src/cli/commands/start.d.ts +2 -0
  106. package/dist/src/cli/commands/start.js +16 -0
  107. package/dist/src/cli/commands/start.js.map +1 -0
  108. package/dist/src/cli/commands/stats.d.ts +2 -0
  109. package/dist/src/cli/commands/stats.js +17 -0
  110. package/dist/src/cli/commands/stats.js.map +1 -0
  111. package/dist/src/cli/commands/testdata.d.ts +2 -0
  112. package/dist/src/cli/commands/testdata.js +60 -0
  113. package/dist/src/cli/commands/testdata.js.map +1 -0
  114. package/dist/src/cli/commands/tui.d.ts +2 -0
  115. package/dist/src/cli/commands/tui.js +26 -0
  116. package/dist/src/cli/commands/tui.js.map +1 -0
  117. package/dist/src/cli/commands/validate.d.ts +2 -0
  118. package/dist/src/cli/commands/validate.js +22 -0
  119. package/dist/src/cli/commands/validate.js.map +1 -0
  120. package/dist/src/cli/commands/vault.d.ts +2 -0
  121. package/dist/src/cli/commands/vault.js +73 -0
  122. package/dist/src/cli/commands/vault.js.map +1 -0
  123. package/dist/src/cli/commands/workflows.d.ts +2 -0
  124. package/dist/src/cli/commands/workflows.js +23 -0
  125. package/dist/src/cli/commands/workflows.js.map +1 -0
  126. package/dist/src/cli/display/review.d.ts +2 -0
  127. package/dist/src/cli/display/review.js +4 -0
  128. package/dist/src/cli/display/review.js.map +1 -0
  129. package/dist/src/cli/display/summary.d.ts +2 -0
  130. package/dist/src/cli/display/summary.js +19 -0
  131. package/dist/src/cli/display/summary.js.map +1 -0
  132. package/dist/src/cli/display/validation.d.ts +2 -0
  133. package/dist/src/cli/display/validation.js +16 -0
  134. package/dist/src/cli/display/validation.js.map +1 -0
  135. package/dist/src/cli/index.d.ts +1 -0
  136. package/dist/src/cli/index.js +83 -0
  137. package/dist/src/cli/index.js.map +1 -0
  138. package/dist/src/cli/output.d.ts +21 -0
  139. package/dist/src/cli/output.js +107 -0
  140. package/dist/src/cli/output.js.map +1 -0
  141. package/dist/src/cli/prompts/common.d.ts +21 -0
  142. package/dist/src/cli/prompts/common.js +53 -0
  143. package/dist/src/cli/prompts/common.js.map +1 -0
  144. package/dist/src/cli/prompts/credits.d.ts +3 -0
  145. package/dist/src/cli/prompts/credits.js +23 -0
  146. package/dist/src/cli/prompts/credits.js.map +1 -0
  147. package/dist/src/cli/prompts/deductions.d.ts +12 -0
  148. package/dist/src/cli/prompts/deductions.js +26 -0
  149. package/dist/src/cli/prompts/deductions.js.map +1 -0
  150. package/dist/src/cli/prompts/identity.d.ts +8 -0
  151. package/dist/src/cli/prompts/identity.js +36 -0
  152. package/dist/src/cli/prompts/identity.js.map +1 -0
  153. package/dist/src/cli/prompts/income.d.ts +15 -0
  154. package/dist/src/cli/prompts/income.js +61 -0
  155. package/dist/src/cli/prompts/income.js.map +1 -0
  156. package/dist/src/cli/prompts/workflow.d.ts +3 -0
  157. package/dist/src/cli/prompts/workflow.js +74 -0
  158. package/dist/src/cli/prompts/workflow.js.map +1 -0
  159. package/dist/src/cli/support.d.ts +53 -0
  160. package/dist/src/cli/support.js +80 -0
  161. package/dist/src/cli/support.js.map +1 -0
  162. package/dist/src/cli/tui.d.ts +22 -0
  163. package/dist/src/cli/tui.js +122 -0
  164. package/dist/src/cli/tui.js.map +1 -0
  165. package/dist/src/engine/audit-risk/scorer.d.ts +36 -0
  166. package/dist/src/engine/audit-risk/scorer.js +132 -0
  167. package/dist/src/engine/audit-risk/scorer.js.map +1 -0
  168. package/dist/src/engine/crypto/cost-basis.d.ts +19 -0
  169. package/dist/src/engine/crypto/cost-basis.js +115 -0
  170. package/dist/src/engine/crypto/cost-basis.js.map +1 -0
  171. package/dist/src/engine/crypto/transaction-parser.d.ts +36 -0
  172. package/dist/src/engine/crypto/transaction-parser.js +124 -0
  173. package/dist/src/engine/crypto/transaction-parser.js.map +1 -0
  174. package/dist/src/engine/crypto/wash-sale.d.ts +25 -0
  175. package/dist/src/engine/crypto/wash-sale.js +51 -0
  176. package/dist/src/engine/crypto/wash-sale.js.map +1 -0
  177. package/dist/src/engine/equity/espp.d.ts +41 -0
  178. package/dist/src/engine/equity/espp.js +90 -0
  179. package/dist/src/engine/equity/espp.js.map +1 -0
  180. package/dist/src/engine/equity/iso.d.ts +42 -0
  181. package/dist/src/engine/equity/iso.js +94 -0
  182. package/dist/src/engine/equity/iso.js.map +1 -0
  183. package/dist/src/engine/equity/nso.d.ts +35 -0
  184. package/dist/src/engine/equity/nso.js +63 -0
  185. package/dist/src/engine/equity/nso.js.map +1 -0
  186. package/dist/src/engine/equity/rsu.d.ts +33 -0
  187. package/dist/src/engine/equity/rsu.js +64 -0
  188. package/dist/src/engine/equity/rsu.js.map +1 -0
  189. package/dist/src/engine/field-mapper.d.ts +26 -0
  190. package/dist/src/engine/field-mapper.js +119 -0
  191. package/dist/src/engine/field-mapper.js.map +1 -0
  192. package/dist/src/engine/forms/core-1040.d.ts +2 -0
  193. package/dist/src/engine/forms/core-1040.js +124 -0
  194. package/dist/src/engine/forms/core-1040.js.map +1 -0
  195. package/dist/src/engine/forms/form-8949.d.ts +21 -0
  196. package/dist/src/engine/forms/form-8949.js +96 -0
  197. package/dist/src/engine/forms/form-8949.js.map +1 -0
  198. package/dist/src/engine/forms/index.d.ts +7 -0
  199. package/dist/src/engine/forms/index.js +6 -0
  200. package/dist/src/engine/forms/index.js.map +1 -0
  201. package/dist/src/engine/forms/schedule-b.d.ts +15 -0
  202. package/dist/src/engine/forms/schedule-b.js +78 -0
  203. package/dist/src/engine/forms/schedule-b.js.map +1 -0
  204. package/dist/src/engine/forms/schedule-d.d.ts +9 -0
  205. package/dist/src/engine/forms/schedule-d.js +86 -0
  206. package/dist/src/engine/forms/schedule-d.js.map +1 -0
  207. package/dist/src/engine/fpl.d.ts +70 -0
  208. package/dist/src/engine/fpl.js +127 -0
  209. package/dist/src/engine/fpl.js.map +1 -0
  210. package/dist/src/engine/gig/home-office.d.ts +34 -0
  211. package/dist/src/engine/gig/home-office.js +53 -0
  212. package/dist/src/engine/gig/home-office.js.map +1 -0
  213. package/dist/src/engine/gig/mileage.d.ts +30 -0
  214. package/dist/src/engine/gig/mileage.js +45 -0
  215. package/dist/src/engine/gig/mileage.js.map +1 -0
  216. package/dist/src/engine/gig/multi-1099.d.ts +19 -0
  217. package/dist/src/engine/gig/multi-1099.js +28 -0
  218. package/dist/src/engine/gig/multi-1099.js.map +1 -0
  219. package/dist/src/engine/multiyear/carryforward.d.ts +31 -0
  220. package/dist/src/engine/multiyear/carryforward.js +77 -0
  221. package/dist/src/engine/multiyear/carryforward.js.map +1 -0
  222. package/dist/src/engine/multiyear/compare.d.ts +25 -0
  223. package/dist/src/engine/multiyear/compare.js +94 -0
  224. package/dist/src/engine/multiyear/compare.js.map +1 -0
  225. package/dist/src/engine/multiyear/import.d.ts +23 -0
  226. package/dist/src/engine/multiyear/import.js +193 -0
  227. package/dist/src/engine/multiyear/import.js.map +1 -0
  228. package/dist/src/engine/optimizer/filing-status.d.ts +29 -0
  229. package/dist/src/engine/optimizer/filing-status.js +66 -0
  230. package/dist/src/engine/optimizer/filing-status.js.map +1 -0
  231. package/dist/src/engine/orchestrator.d.ts +14 -0
  232. package/dist/src/engine/orchestrator.js +135 -0
  233. package/dist/src/engine/orchestrator.js.map +1 -0
  234. package/dist/src/engine/scenarios/whatif.d.ts +34 -0
  235. package/dist/src/engine/scenarios/whatif.js +70 -0
  236. package/dist/src/engine/scenarios/whatif.js.map +1 -0
  237. package/dist/src/engine/state/ca/calculator.d.ts +3 -0
  238. package/dist/src/engine/state/ca/calculator.js +107 -0
  239. package/dist/src/engine/state/ca/calculator.js.map +1 -0
  240. package/dist/src/engine/state/common.d.ts +39 -0
  241. package/dist/src/engine/state/common.js +115 -0
  242. package/dist/src/engine/state/common.js.map +1 -0
  243. package/dist/src/engine/state/ga/calculator.d.ts +3 -0
  244. package/dist/src/engine/state/ga/calculator.js +82 -0
  245. package/dist/src/engine/state/ga/calculator.js.map +1 -0
  246. package/dist/src/engine/state/il/calculator.d.ts +3 -0
  247. package/dist/src/engine/state/il/calculator.js +49 -0
  248. package/dist/src/engine/state/il/calculator.js.map +1 -0
  249. package/dist/src/engine/state/mi/calculator.d.ts +3 -0
  250. package/dist/src/engine/state/mi/calculator.js +60 -0
  251. package/dist/src/engine/state/mi/calculator.js.map +1 -0
  252. package/dist/src/engine/state/nc/calculator.d.ts +3 -0
  253. package/dist/src/engine/state/nc/calculator.js +54 -0
  254. package/dist/src/engine/state/nc/calculator.js.map +1 -0
  255. package/dist/src/engine/state/nj/calculator.d.ts +3 -0
  256. package/dist/src/engine/state/nj/calculator.js +90 -0
  257. package/dist/src/engine/state/nj/calculator.js.map +1 -0
  258. package/dist/src/engine/state/ny/calculator.d.ts +3 -0
  259. package/dist/src/engine/state/ny/calculator.js +103 -0
  260. package/dist/src/engine/state/ny/calculator.js.map +1 -0
  261. package/dist/src/engine/state/oh/calculator.d.ts +3 -0
  262. package/dist/src/engine/state/oh/calculator.js +79 -0
  263. package/dist/src/engine/state/oh/calculator.js.map +1 -0
  264. package/dist/src/engine/state/pa/calculator.d.ts +3 -0
  265. package/dist/src/engine/state/pa/calculator.js +58 -0
  266. package/dist/src/engine/state/pa/calculator.js.map +1 -0
  267. package/dist/src/engine/state/registry.d.ts +9 -0
  268. package/dist/src/engine/state/registry.js +67 -0
  269. package/dist/src/engine/state/registry.js.map +1 -0
  270. package/dist/src/engine/state/types.d.ts +57 -0
  271. package/dist/src/engine/state/types.js +2 -0
  272. package/dist/src/engine/state/types.js.map +1 -0
  273. package/dist/src/engine/state/va/calculator.d.ts +3 -0
  274. package/dist/src/engine/state/va/calculator.js +76 -0
  275. package/dist/src/engine/state/va/calculator.js.map +1 -0
  276. package/dist/src/engine/suggestions/missed-deductions.d.ts +43 -0
  277. package/dist/src/engine/suggestions/missed-deductions.js +128 -0
  278. package/dist/src/engine/suggestions/missed-deductions.js.map +1 -0
  279. package/dist/src/engine/tax-calculator.d.ts +55 -0
  280. package/dist/src/engine/tax-calculator.js +156 -0
  281. package/dist/src/engine/tax-calculator.js.map +1 -0
  282. package/dist/src/engine/tax-constants-2025.d.ts +56 -0
  283. package/dist/src/engine/tax-constants-2025.js +138 -0
  284. package/dist/src/engine/tax-constants-2025.js.map +1 -0
  285. package/dist/src/engine/types.d.ts +77 -0
  286. package/dist/src/engine/types.js +2 -0
  287. package/dist/src/engine/types.js.map +1 -0
  288. package/dist/src/engine/va-math.d.ts +24 -0
  289. package/dist/src/engine/va-math.js +90 -0
  290. package/dist/src/engine/va-math.js.map +1 -0
  291. package/dist/src/engine/validator.d.ts +7 -0
  292. package/dist/src/engine/validator.js +108 -0
  293. package/dist/src/engine/validator.js.map +1 -0
  294. package/dist/src/glossary/entries/healthcare.d.ts +2 -0
  295. package/dist/src/glossary/entries/healthcare.js +78 -0
  296. package/dist/src/glossary/entries/healthcare.js.map +1 -0
  297. package/dist/src/glossary/entries/immigration.d.ts +2 -0
  298. package/dist/src/glossary/entries/immigration.js +112 -0
  299. package/dist/src/glossary/entries/immigration.js.map +1 -0
  300. package/dist/src/glossary/entries/tax.d.ts +2 -0
  301. package/dist/src/glossary/entries/tax.js +149 -0
  302. package/dist/src/glossary/entries/tax.js.map +1 -0
  303. package/dist/src/glossary/entries/unemployment.d.ts +2 -0
  304. package/dist/src/glossary/entries/unemployment.js +52 -0
  305. package/dist/src/glossary/entries/unemployment.js.map +1 -0
  306. package/dist/src/glossary/index.d.ts +19 -0
  307. package/dist/src/glossary/index.js +39 -0
  308. package/dist/src/glossary/index.js.map +1 -0
  309. package/dist/src/i18n/index.d.ts +21 -0
  310. package/dist/src/i18n/index.js +92 -0
  311. package/dist/src/i18n/index.js.map +1 -0
  312. package/dist/src/mcp/result.d.ts +3 -0
  313. package/dist/src/mcp/result.js +7 -0
  314. package/dist/src/mcp/result.js.map +1 -0
  315. package/dist/src/mcp/return-bundle.d.ts +19 -0
  316. package/dist/src/mcp/return-bundle.js +49 -0
  317. package/dist/src/mcp/return-bundle.js.map +1 -0
  318. package/dist/src/mcp/shared.d.ts +49102 -0
  319. package/dist/src/mcp/shared.js +354 -0
  320. package/dist/src/mcp/shared.js.map +1 -0
  321. package/dist/src/mcp/tools/build-packet.d.ts +7 -0
  322. package/dist/src/mcp/tools/build-packet.js +23 -0
  323. package/dist/src/mcp/tools/build-packet.js.map +1 -0
  324. package/dist/src/mcp/tools/calculate-tax.d.ts +40 -0
  325. package/dist/src/mcp/tools/calculate-tax.js +17 -0
  326. package/dist/src/mcp/tools/calculate-tax.js.map +1 -0
  327. package/dist/src/mcp/tools/deadlines.d.ts +7 -0
  328. package/dist/src/mcp/tools/deadlines.js +23 -0
  329. package/dist/src/mcp/tools/deadlines.js.map +1 -0
  330. package/dist/src/mcp/tools/describe-form.d.ts +14 -0
  331. package/dist/src/mcp/tools/describe-form.js +23 -0
  332. package/dist/src/mcp/tools/describe-form.js.map +1 -0
  333. package/dist/src/mcp/tools/describe-workflow.d.ts +6 -0
  334. package/dist/src/mcp/tools/describe-workflow.js +16 -0
  335. package/dist/src/mcp/tools/describe-workflow.js.map +1 -0
  336. package/dist/src/mcp/tools/explain-flag.d.ts +7 -0
  337. package/dist/src/mcp/tools/explain-flag.js +19 -0
  338. package/dist/src/mcp/tools/explain-flag.js.map +1 -0
  339. package/dist/src/mcp/tools/extract-document.d.ts +13 -0
  340. package/dist/src/mcp/tools/extract-document.js +20 -0
  341. package/dist/src/mcp/tools/extract-document.js.map +1 -0
  342. package/dist/src/mcp/tools/fees.d.ts +7 -0
  343. package/dist/src/mcp/tools/fees.js +24 -0
  344. package/dist/src/mcp/tools/fees.js.map +1 -0
  345. package/dist/src/mcp/tools/fill-form.d.ts +56 -0
  346. package/dist/src/mcp/tools/fill-form.js +47 -0
  347. package/dist/src/mcp/tools/fill-form.js.map +1 -0
  348. package/dist/src/mcp/tools/fill-workflow.d.ts +7 -0
  349. package/dist/src/mcp/tools/fill-workflow.js +24 -0
  350. package/dist/src/mcp/tools/fill-workflow.js.map +1 -0
  351. package/dist/src/mcp/tools/glossary.d.ts +8 -0
  352. package/dist/src/mcp/tools/glossary.js +54 -0
  353. package/dist/src/mcp/tools/glossary.js.map +1 -0
  354. package/dist/src/mcp/tools/list-forms.d.ts +6 -0
  355. package/dist/src/mcp/tools/list-forms.js +15 -0
  356. package/dist/src/mcp/tools/list-forms.js.map +1 -0
  357. package/dist/src/mcp/tools/list-workflows.d.ts +6 -0
  358. package/dist/src/mcp/tools/list-workflows.js +16 -0
  359. package/dist/src/mcp/tools/list-workflows.js.map +1 -0
  360. package/dist/src/mcp/tools/plan-life-event.d.ts +59 -0
  361. package/dist/src/mcp/tools/plan-life-event.js +41 -0
  362. package/dist/src/mcp/tools/plan-life-event.js.map +1 -0
  363. package/dist/src/mcp/tools/review-form.d.ts +40 -0
  364. package/dist/src/mcp/tools/review-form.js +26 -0
  365. package/dist/src/mcp/tools/review-form.js.map +1 -0
  366. package/dist/src/mcp/tools/review-workflow.d.ts +7 -0
  367. package/dist/src/mcp/tools/review-workflow.js +27 -0
  368. package/dist/src/mcp/tools/review-workflow.js.map +1 -0
  369. package/dist/src/mcp/tools/screen-eligibility.d.ts +53 -0
  370. package/dist/src/mcp/tools/screen-eligibility.js +44 -0
  371. package/dist/src/mcp/tools/screen-eligibility.js.map +1 -0
  372. package/dist/src/mcp/tools/start-workflow.d.ts +6 -0
  373. package/dist/src/mcp/tools/start-workflow.js +17 -0
  374. package/dist/src/mcp/tools/start-workflow.js.map +1 -0
  375. package/dist/src/mcp/tools/validate-form.d.ts +48 -0
  376. package/dist/src/mcp/tools/validate-form.js +30 -0
  377. package/dist/src/mcp/tools/validate-form.js.map +1 -0
  378. package/dist/src/mcp/tools/validate-workflow.d.ts +7 -0
  379. package/dist/src/mcp/tools/validate-workflow.js +24 -0
  380. package/dist/src/mcp/tools/validate-workflow.js.map +1 -0
  381. package/dist/src/pdf/batch.d.ts +8 -0
  382. package/dist/src/pdf/batch.js +15 -0
  383. package/dist/src/pdf/batch.js.map +1 -0
  384. package/dist/src/pdf/merge.d.ts +10 -0
  385. package/dist/src/pdf/merge.js +62 -0
  386. package/dist/src/pdf/merge.js.map +1 -0
  387. package/dist/src/pdf/ocr.d.ts +22 -0
  388. package/dist/src/pdf/ocr.js +52 -0
  389. package/dist/src/pdf/ocr.js.map +1 -0
  390. package/dist/src/pdf/reader.d.ts +2 -0
  391. package/dist/src/pdf/reader.js +354 -0
  392. package/dist/src/pdf/reader.js.map +1 -0
  393. package/dist/src/pdf/shared.d.ts +89 -0
  394. package/dist/src/pdf/shared.js +137 -0
  395. package/dist/src/pdf/shared.js.map +1 -0
  396. package/dist/src/pdf/writer.d.ts +7 -0
  397. package/dist/src/pdf/writer.js +311 -0
  398. package/dist/src/pdf/writer.js.map +1 -0
  399. package/dist/src/plugins/loader.d.ts +15 -0
  400. package/dist/src/plugins/loader.js +86 -0
  401. package/dist/src/plugins/loader.js.map +1 -0
  402. package/dist/src/plugins/sandbox.d.ts +14 -0
  403. package/dist/src/plugins/sandbox.js +88 -0
  404. package/dist/src/plugins/sandbox.js.map +1 -0
  405. package/dist/src/plugins/types.d.ts +17 -0
  406. package/dist/src/plugins/types.js +13 -0
  407. package/dist/src/plugins/types.js.map +1 -0
  408. package/dist/src/schemas/2025/f1040.d.ts +127 -0
  409. package/dist/src/schemas/2025/f1040.js +104 -0
  410. package/dist/src/schemas/2025/f1040.js.map +1 -0
  411. package/dist/src/schemas/2025/f1099-int.d.ts +53 -0
  412. package/dist/src/schemas/2025/f1099-int.js +51 -0
  413. package/dist/src/schemas/2025/f1099-int.js.map +1 -0
  414. package/dist/src/schemas/2025/f1099-nec.d.ts +47 -0
  415. package/dist/src/schemas/2025/f1099-nec.js +45 -0
  416. package/dist/src/schemas/2025/f1099-nec.js.map +1 -0
  417. package/dist/src/schemas/2025/form-8949.d.ts +46 -0
  418. package/dist/src/schemas/2025/form-8949.js +71 -0
  419. package/dist/src/schemas/2025/form-8949.js.map +1 -0
  420. package/dist/src/schemas/2025/index.d.ts +1004 -0
  421. package/dist/src/schemas/2025/index.js +60 -0
  422. package/dist/src/schemas/2025/index.js.map +1 -0
  423. package/dist/src/schemas/2025/schedule-1.d.ts +44 -0
  424. package/dist/src/schemas/2025/schedule-1.js +56 -0
  425. package/dist/src/schemas/2025/schedule-1.js.map +1 -0
  426. package/dist/src/schemas/2025/schedule-b.d.ts +32 -0
  427. package/dist/src/schemas/2025/schedule-b.js +53 -0
  428. package/dist/src/schemas/2025/schedule-b.js.map +1 -0
  429. package/dist/src/schemas/2025/schedule-c.d.ts +58 -0
  430. package/dist/src/schemas/2025/schedule-c.js +46 -0
  431. package/dist/src/schemas/2025/schedule-c.js.map +1 -0
  432. package/dist/src/schemas/2025/schedule-d.d.ts +36 -0
  433. package/dist/src/schemas/2025/schedule-d.js +52 -0
  434. package/dist/src/schemas/2025/schedule-d.js.map +1 -0
  435. package/dist/src/schemas/2025/shared.d.ts +98 -0
  436. package/dist/src/schemas/2025/shared.js +161 -0
  437. package/dist/src/schemas/2025/shared.js.map +1 -0
  438. package/dist/src/schemas/2025/w2.d.ts +57 -0
  439. package/dist/src/schemas/2025/w2.js +62 -0
  440. package/dist/src/schemas/2025/w2.js.map +1 -0
  441. package/dist/src/storage/drafts.d.ts +25 -0
  442. package/dist/src/storage/drafts.js +117 -0
  443. package/dist/src/storage/drafts.js.map +1 -0
  444. package/dist/src/storage/paths.d.ts +15 -0
  445. package/dist/src/storage/paths.js +33 -0
  446. package/dist/src/storage/paths.js.map +1 -0
  447. package/dist/src/storage/profile.d.ts +17 -0
  448. package/dist/src/storage/profile.js +59 -0
  449. package/dist/src/storage/profile.js.map +1 -0
  450. package/dist/src/storage/vault.d.ts +38 -0
  451. package/dist/src/storage/vault.js +187 -0
  452. package/dist/src/storage/vault.js.map +1 -0
  453. package/dist/src/testing/synthetic.d.ts +13 -0
  454. package/dist/src/testing/synthetic.js +164 -0
  455. package/dist/src/testing/synthetic.js.map +1 -0
  456. package/dist/src/types.d.ts +362 -0
  457. package/dist/src/types.js +2 -0
  458. package/dist/src/types.js.map +1 -0
  459. package/dist/src/workflows/deadlines.d.ts +13 -0
  460. package/dist/src/workflows/deadlines.js +88 -0
  461. package/dist/src/workflows/deadlines.js.map +1 -0
  462. package/dist/src/workflows/domains/benefits.d.ts +409 -0
  463. package/dist/src/workflows/domains/benefits.js +744 -0
  464. package/dist/src/workflows/domains/benefits.js.map +1 -0
  465. package/dist/src/workflows/domains/business.d.ts +65 -0
  466. package/dist/src/workflows/domains/business.js +76 -0
  467. package/dist/src/workflows/domains/business.js.map +1 -0
  468. package/dist/src/workflows/domains/education.d.ts +251 -0
  469. package/dist/src/workflows/domains/education.js +504 -0
  470. package/dist/src/workflows/domains/education.js.map +1 -0
  471. package/dist/src/workflows/domains/estate.d.ts +217 -0
  472. package/dist/src/workflows/domains/estate.js +407 -0
  473. package/dist/src/workflows/domains/estate.js.map +1 -0
  474. package/dist/src/workflows/domains/healthcare-ext.d.ts +88 -0
  475. package/dist/src/workflows/domains/healthcare-ext.js +150 -0
  476. package/dist/src/workflows/domains/healthcare-ext.js.map +1 -0
  477. package/dist/src/workflows/domains/healthcare.d.ts +92 -0
  478. package/dist/src/workflows/domains/healthcare.js +126 -0
  479. package/dist/src/workflows/domains/healthcare.js.map +1 -0
  480. package/dist/src/workflows/domains/identity-domain.d.ts +291 -0
  481. package/dist/src/workflows/domains/identity-domain.js +541 -0
  482. package/dist/src/workflows/domains/identity-domain.js.map +1 -0
  483. package/dist/src/workflows/domains/immigration-ext.d.ts +282 -0
  484. package/dist/src/workflows/domains/immigration-ext.js +590 -0
  485. package/dist/src/workflows/domains/immigration-ext.js.map +1 -0
  486. package/dist/src/workflows/domains/immigration.d.ts +121 -0
  487. package/dist/src/workflows/domains/immigration.js +152 -0
  488. package/dist/src/workflows/domains/immigration.js.map +1 -0
  489. package/dist/src/workflows/domains/legal.d.ts +235 -0
  490. package/dist/src/workflows/domains/legal.js +380 -0
  491. package/dist/src/workflows/domains/legal.js.map +1 -0
  492. package/dist/src/workflows/domains/permits.d.ts +65 -0
  493. package/dist/src/workflows/domains/permits.js +74 -0
  494. package/dist/src/workflows/domains/permits.js.map +1 -0
  495. package/dist/src/workflows/domains/retirement.d.ts +59 -0
  496. package/dist/src/workflows/domains/retirement.js +155 -0
  497. package/dist/src/workflows/domains/retirement.js.map +1 -0
  498. package/dist/src/workflows/domains/tax.d.ts +133 -0
  499. package/dist/src/workflows/domains/tax.js +187 -0
  500. package/dist/src/workflows/domains/tax.js.map +1 -0
  501. package/dist/src/workflows/domains/unemployment.d.ts +105 -0
  502. package/dist/src/workflows/domains/unemployment.js +122 -0
  503. package/dist/src/workflows/domains/unemployment.js.map +1 -0
  504. package/dist/src/workflows/domains/veterans.d.ts +189 -0
  505. package/dist/src/workflows/domains/veterans.js +380 -0
  506. package/dist/src/workflows/domains/veterans.js.map +1 -0
  507. package/dist/src/workflows/fees.d.ts +15 -0
  508. package/dist/src/workflows/fees.js +93 -0
  509. package/dist/src/workflows/fees.js.map +1 -0
  510. package/dist/src/workflows/helpers.d.ts +8 -0
  511. package/dist/src/workflows/helpers.js +66 -0
  512. package/dist/src/workflows/helpers.js.map +1 -0
  513. package/dist/src/workflows/io.d.ts +3 -0
  514. package/dist/src/workflows/io.js +38 -0
  515. package/dist/src/workflows/io.js.map +1 -0
  516. package/dist/src/workflows/registry.d.ts +51355 -0
  517. package/dist/src/workflows/registry.js +140 -0
  518. package/dist/src/workflows/registry.js.map +1 -0
  519. package/dist/src/workflows/schemas/benefits.d.ts +78 -0
  520. package/dist/src/workflows/schemas/benefits.js +91 -0
  521. package/dist/src/workflows/schemas/benefits.js.map +1 -0
  522. package/dist/src/workflows/schemas/common.d.ts +27 -0
  523. package/dist/src/workflows/schemas/common.js +28 -0
  524. package/dist/src/workflows/schemas/common.js.map +1 -0
  525. package/dist/src/workflows/schemas/education.d.ts +70 -0
  526. package/dist/src/workflows/schemas/education.js +85 -0
  527. package/dist/src/workflows/schemas/education.js.map +1 -0
  528. package/dist/src/workflows/schemas/estate.d.ts +64 -0
  529. package/dist/src/workflows/schemas/estate.js +85 -0
  530. package/dist/src/workflows/schemas/estate.js.map +1 -0
  531. package/dist/src/workflows/schemas/healthcare-ext.d.ts +15 -0
  532. package/dist/src/workflows/schemas/healthcare-ext.js +17 -0
  533. package/dist/src/workflows/schemas/healthcare-ext.js.map +1 -0
  534. package/dist/src/workflows/schemas/healthcare.d.ts +33 -0
  535. package/dist/src/workflows/schemas/healthcare.js +20 -0
  536. package/dist/src/workflows/schemas/healthcare.js.map +1 -0
  537. package/dist/src/workflows/schemas/identity-domain.d.ts +64 -0
  538. package/dist/src/workflows/schemas/identity-domain.js +87 -0
  539. package/dist/src/workflows/schemas/identity-domain.js.map +1 -0
  540. package/dist/src/workflows/schemas/immigration-ext.d.ts +63 -0
  541. package/dist/src/workflows/schemas/immigration-ext.js +58 -0
  542. package/dist/src/workflows/schemas/immigration-ext.js.map +1 -0
  543. package/dist/src/workflows/schemas/immigration.d.ts +48 -0
  544. package/dist/src/workflows/schemas/immigration.js +27 -0
  545. package/dist/src/workflows/schemas/immigration.js.map +1 -0
  546. package/dist/src/workflows/schemas/legal.d.ts +45 -0
  547. package/dist/src/workflows/schemas/legal.js +45 -0
  548. package/dist/src/workflows/schemas/legal.js.map +1 -0
  549. package/dist/src/workflows/schemas/planning.d.ts +23 -0
  550. package/dist/src/workflows/schemas/planning.js +15 -0
  551. package/dist/src/workflows/schemas/planning.js.map +1 -0
  552. package/dist/src/workflows/schemas/retirement.d.ts +14 -0
  553. package/dist/src/workflows/schemas/retirement.js +22 -0
  554. package/dist/src/workflows/schemas/retirement.js.map +1 -0
  555. package/dist/src/workflows/schemas/tax.d.ts +58 -0
  556. package/dist/src/workflows/schemas/tax.js +51 -0
  557. package/dist/src/workflows/schemas/tax.js.map +1 -0
  558. package/dist/src/workflows/schemas/unemployment.d.ts +33 -0
  559. package/dist/src/workflows/schemas/unemployment.js +19 -0
  560. package/dist/src/workflows/schemas/unemployment.js.map +1 -0
  561. package/dist/src/workflows/schemas/veterans.d.ts +47 -0
  562. package/dist/src/workflows/schemas/veterans.js +51 -0
  563. package/dist/src/workflows/schemas/veterans.js.map +1 -0
  564. package/dist/src/workflows/types.d.ts +9 -0
  565. package/dist/src/workflows/types.js +2 -0
  566. package/dist/src/workflows/types.js.map +1 -0
  567. package/dist/xmcp.config.d.ts +3 -0
  568. package/dist/xmcp.config.js +29 -0
  569. package/dist/xmcp.config.js.map +1 -0
  570. package/llms.txt +48 -0
  571. package/package.json +82 -0
@@ -0,0 +1,354 @@
1
+ import { z } from "zod";
2
+ import { buildReturnBundle } from "../engine/field-mapper.js";
3
+ import { validateReturnBundle } from "../engine/validator.js";
4
+ import { calculateFederalTax } from "../engine/tax-calculator.js";
5
+ import { schemaRegistry } from "../schemas/2025/index.js";
6
+ import { buildWorkflowBundle, describeWorkflow, explainWorkflowFlag, getWorkflowStarterData, listDomains, listWorkflowSummaries, normalizeWorkflowId, reviewWorkflowBundle, validateWorkflowBundle, } from "../workflows/registry.js";
7
+ export const PIGEONGOV_YEAR = 2025;
8
+ export const supportedFormIds = [
9
+ "1040",
10
+ "schedule-1",
11
+ "schedule-c",
12
+ "w2",
13
+ "1099-nec",
14
+ "1099-int",
15
+ ];
16
+ export const supportedFormSchema = z.enum(supportedFormIds);
17
+ export const incomeDocumentTypeSchema = z.enum(["w2", "1099-nec", "1099-int"]);
18
+ const dependentSchema = z
19
+ .object({
20
+ name: z.string().trim().min(1),
21
+ ssn: z.string().trim().regex(/^\d{3}-\d{2}-\d{4}$/),
22
+ relationship: z.string().trim().min(1),
23
+ childTaxCreditEligible: z.boolean(),
24
+ eitcEligible: z.boolean().optional(),
25
+ })
26
+ .strict();
27
+ const identitySchema = z
28
+ .object({
29
+ firstName: z.string().trim().min(1),
30
+ lastName: z.string().trim().min(1),
31
+ ssn: z.string().trim().regex(/^\d{3}-\d{2}-\d{4}$/),
32
+ address: z
33
+ .object({
34
+ street1: z.string().trim().min(1),
35
+ street2: z.string().trim().optional(),
36
+ city: z.string().trim().min(1),
37
+ state: z.string().trim().regex(/^[A-Z]{2}$/),
38
+ zipCode: z.string().trim().regex(/^\d{5}(?:-\d{4})?$/),
39
+ })
40
+ .strict(),
41
+ })
42
+ .strict();
43
+ const adjustmentSchema = z
44
+ .object({
45
+ educatorExpenses: z.coerce.number().default(0),
46
+ hsaDeduction: z.coerce.number().default(0),
47
+ selfEmploymentTaxDeduction: z.coerce.number().default(0),
48
+ iraDeduction: z.coerce.number().default(0),
49
+ studentLoanInterest: z.coerce.number().default(0),
50
+ })
51
+ .strict();
52
+ export const taxInputSchema = z
53
+ .object({
54
+ filingStatus: z.enum([
55
+ "single",
56
+ "married_filing_jointly",
57
+ "married_filing_separately",
58
+ "head_of_household",
59
+ "qualifying_surviving_spouse",
60
+ ]),
61
+ wages: z.coerce.number().default(0),
62
+ taxableInterest: z.coerce.number().default(0),
63
+ ordinaryDividends: z.coerce.number().default(0),
64
+ scheduleCNet: z.coerce.number().default(0),
65
+ otherIncome: z.coerce.number().default(0),
66
+ adjustments: adjustmentSchema.default({
67
+ educatorExpenses: 0,
68
+ hsaDeduction: 0,
69
+ selfEmploymentTaxDeduction: 0,
70
+ iraDeduction: 0,
71
+ studentLoanInterest: 0,
72
+ }),
73
+ useItemizedDeductions: z.boolean().default(false),
74
+ itemizedDeductions: z.coerce.number().default(0),
75
+ dependents: z.array(dependentSchema).default([]),
76
+ federalWithheld: z.coerce.number().min(0).default(0),
77
+ estimatedPayments: z.coerce.number().min(0).default(0),
78
+ })
79
+ .strict();
80
+ export const sourceDocumentDescriptorSchema = z
81
+ .object({
82
+ path: z.string().trim().min(1),
83
+ type: incomeDocumentTypeSchema.optional(),
84
+ })
85
+ .strict();
86
+ export const fillFormInputSchema = z
87
+ .object({
88
+ formId: supportedFormSchema,
89
+ taxYear: z.literal(PIGEONGOV_YEAR).optional(),
90
+ data: taxInputSchema,
91
+ documents: z.array(sourceDocumentDescriptorSchema).optional(),
92
+ })
93
+ .strict();
94
+ export const calculateTaxInputSchema = z
95
+ .object({
96
+ taxYear: z.literal(PIGEONGOV_YEAR).optional(),
97
+ data: taxInputSchema,
98
+ })
99
+ .strict();
100
+ export const validateFormInputSchema = z
101
+ .object({
102
+ formId: supportedFormSchema,
103
+ taxYear: z.literal(PIGEONGOV_YEAR).optional(),
104
+ data: taxInputSchema,
105
+ })
106
+ .strict();
107
+ export const describeFormInputSchema = z
108
+ .object({
109
+ formId: supportedFormSchema,
110
+ taxYear: z.literal(PIGEONGOV_YEAR).optional(),
111
+ })
112
+ .strict();
113
+ export const extractDocumentInputSchema = z
114
+ .object({
115
+ path: z.string().trim().min(1),
116
+ type: incomeDocumentTypeSchema.optional(),
117
+ })
118
+ .strict();
119
+ export const workflowIdSchema = z.string().trim().min(1);
120
+ export const describeWorkflowInputSchema = z
121
+ .object({
122
+ workflowId: workflowIdSchema,
123
+ })
124
+ .strict();
125
+ export const startWorkflowInputSchema = z
126
+ .object({
127
+ workflowId: workflowIdSchema,
128
+ })
129
+ .strict();
130
+ export const fillWorkflowInputSchema = z
131
+ .object({
132
+ workflowId: workflowIdSchema,
133
+ data: z.record(z.string(), z.unknown()),
134
+ })
135
+ .strict();
136
+ export const validateWorkflowInputSchema = z
137
+ .object({
138
+ workflowId: workflowIdSchema.optional(),
139
+ bundle: z.record(z.string(), z.unknown()),
140
+ })
141
+ .strict();
142
+ export const reviewWorkflowInputSchema = validateWorkflowInputSchema;
143
+ export const buildPacketInputSchema = z
144
+ .object({
145
+ workflowId: workflowIdSchema,
146
+ data: z.record(z.string(), z.unknown()),
147
+ })
148
+ .strict();
149
+ export const explainFlagInputSchema = z
150
+ .object({
151
+ bundle: z.record(z.string(), z.unknown()),
152
+ field: z.string().trim().min(1),
153
+ })
154
+ .strict();
155
+ function unwrapSchema(schema) {
156
+ if (schema instanceof z.ZodOptional) {
157
+ const unwrapped = unwrapSchema(schema.unwrap());
158
+ return { schema: unwrapped.schema, optional: true };
159
+ }
160
+ if (schema instanceof z.ZodDefault) {
161
+ const unwrapped = unwrapSchema(schema.removeDefault());
162
+ return { schema: unwrapped.schema, optional: true };
163
+ }
164
+ return { schema, optional: false };
165
+ }
166
+ function describeSchemaField(name, schema) {
167
+ const { schema: unwrapped, optional } = unwrapSchema(schema);
168
+ const field = {
169
+ name,
170
+ kind: unwrapped.constructor.name.replace(/^Zod/, "").toLowerCase() || "value",
171
+ optional,
172
+ };
173
+ if (unwrapped.description !== undefined) {
174
+ field.description = unwrapped.description;
175
+ }
176
+ if (unwrapped instanceof z.ZodObject) {
177
+ field.kind = "object";
178
+ field.children = Object.entries(unwrapped.shape).map(([childName, childSchema]) => describeSchemaField(childName, childSchema));
179
+ }
180
+ else if (unwrapped instanceof z.ZodArray) {
181
+ field.kind = "array";
182
+ field.children = [describeSchemaField(`${name}[]`, unwrapped.element)];
183
+ }
184
+ return field;
185
+ }
186
+ export function listForms() {
187
+ return supportedFormIds.map((formId) => ({
188
+ formId,
189
+ taxYear: PIGEONGOV_YEAR,
190
+ meta: schemaRegistry[formId].meta,
191
+ }));
192
+ }
193
+ export function describeForm(formId) {
194
+ const definition = schemaRegistry[formId];
195
+ const fields = definition.schema instanceof z.ZodObject
196
+ ? Object.entries(definition.schema.shape).map(([name, schema]) => describeSchemaField(name, schema))
197
+ : [];
198
+ return {
199
+ formId,
200
+ taxYear: PIGEONGOV_YEAR,
201
+ meta: definition.meta,
202
+ fields,
203
+ };
204
+ }
205
+ export function listWorkflows() {
206
+ return listWorkflowSummaries();
207
+ }
208
+ export function workflowDomains() {
209
+ return listDomains();
210
+ }
211
+ export function describeWorkflowDefinition(workflowId) {
212
+ return describeWorkflow(workflowId);
213
+ }
214
+ export function startWorkflow(workflowId) {
215
+ const normalizedId = normalizeWorkflowId(workflowId);
216
+ return {
217
+ workflowId: normalizedId,
218
+ starterData: getWorkflowStarterData(normalizedId),
219
+ };
220
+ }
221
+ export function fillWorkflow(workflowId, data) {
222
+ return buildWorkflowBundle(workflowId, data);
223
+ }
224
+ export function validateWorkflow(bundle) {
225
+ const parsed = bundle;
226
+ const workflowBundle = parsed.workflowId
227
+ ? buildWorkflowBundle(parsed.workflowId, bundle.answers ?? bundle)
228
+ : bundle;
229
+ return validateWorkflowBundle(workflowBundle);
230
+ }
231
+ export function reviewWorkflow(workflowId, data) {
232
+ const bundle = buildWorkflowBundle(workflowId, data);
233
+ return {
234
+ bundle,
235
+ review: reviewWorkflowBundle(bundle),
236
+ validation: validateWorkflowBundle(bundle),
237
+ };
238
+ }
239
+ export function explainFlag(bundle, field) {
240
+ return explainWorkflowFlag(bundle, field);
241
+ }
242
+ export function buildTaxCalculationInput(input) {
243
+ return {
244
+ filingStatus: input.filingStatus,
245
+ wages: input.wages,
246
+ taxableInterest: input.taxableInterest,
247
+ ordinaryDividends: input.ordinaryDividends,
248
+ scheduleCNet: input.scheduleCNet,
249
+ otherIncome: input.otherIncome,
250
+ adjustments: input.adjustments,
251
+ useItemizedDeductions: input.useItemizedDeductions,
252
+ itemizedDeductions: input.itemizedDeductions,
253
+ dependents: input.dependents.map((dependent) => {
254
+ const normalized = {
255
+ name: dependent.name,
256
+ ssn: dependent.ssn,
257
+ relationship: dependent.relationship,
258
+ childTaxCreditEligible: dependent.childTaxCreditEligible,
259
+ };
260
+ return dependent.eitcEligible === undefined
261
+ ? normalized
262
+ : { ...normalized, eitcEligible: dependent.eitcEligible };
263
+ }),
264
+ federalWithheld: input.federalWithheld,
265
+ estimatedPayments: input.estimatedPayments,
266
+ };
267
+ }
268
+ export function calculateTaxFromInput(input) {
269
+ return calculateFederalTax(buildTaxCalculationInput(input));
270
+ }
271
+ export async function extractDocumentFromPath(path, typeHint) {
272
+ const { readPdfDocument } = await import("../pdf/reader.js");
273
+ const result = await readPdfDocument(path, typeHint ? { typeHint } : {});
274
+ return {
275
+ documentType: result.detectedType,
276
+ confidence: result.confidence,
277
+ extracted: result.detectedType === "unknown" ? null : result.document,
278
+ text: result.rawText,
279
+ flaggedFields: result.flaggedFields,
280
+ };
281
+ }
282
+ export function mergeImportedDocuments(baseInput, documents) {
283
+ const merged = structuredClone(baseInput);
284
+ for (const document of documents) {
285
+ if (document.type === "w2") {
286
+ merged.wages += document.wages;
287
+ merged.federalWithheld += document.federalWithheld;
288
+ }
289
+ else if (document.type === "1099-nec") {
290
+ merged.scheduleCNet += document.nonemployeeCompensation;
291
+ merged.federalWithheld += document.federalWithheld ?? 0;
292
+ }
293
+ else if (document.type === "1099-int") {
294
+ merged.taxableInterest += document.interestIncome;
295
+ merged.federalWithheld += document.federalWithheld ?? 0;
296
+ }
297
+ }
298
+ return {
299
+ input: merged,
300
+ flaggedFields: documents.length > 0
301
+ ? [
302
+ {
303
+ field: "documents",
304
+ severity: "review",
305
+ message: `Merged ${documents.length} imported document${documents.length === 1 ? "" : "s"}.`,
306
+ source: "mcp",
307
+ },
308
+ ]
309
+ : [],
310
+ };
311
+ }
312
+ export function validateTaxInput(input) {
313
+ const bundle = buildReturnBundle({
314
+ formId: "1040",
315
+ taxYear: PIGEONGOV_YEAR,
316
+ filingStatus: input.filingStatus,
317
+ taxpayer: identitySchema.parse({
318
+ firstName: "Taxpayer",
319
+ lastName: "Example",
320
+ ssn: "000-00-0000",
321
+ address: {
322
+ street1: "Unknown",
323
+ city: "Unknown",
324
+ state: "CA",
325
+ zipCode: "00000",
326
+ },
327
+ }),
328
+ dependents: buildTaxCalculationInput(input).dependents,
329
+ importedDocuments: [],
330
+ taxInput: buildTaxCalculationInput(input),
331
+ });
332
+ return validateReturnBundle(bundle);
333
+ }
334
+ export function reviewTaxInput(input) {
335
+ const calculation = calculateTaxFromInput(input);
336
+ const validation = validateTaxInput(input);
337
+ return {
338
+ headline: calculation.refund > 0
339
+ ? "Refund due"
340
+ : calculation.amountOwed > 0
341
+ ? "Balance due"
342
+ : "No balance due",
343
+ notes: [
344
+ `Gross income: $${calculation.grossIncome.toFixed(2)}`,
345
+ `Taxable income: $${calculation.taxableIncome.toFixed(2)}`,
346
+ `Federal tax: $${calculation.federalTax.toFixed(2)}`,
347
+ `Refund: $${calculation.refund.toFixed(2)}`,
348
+ ],
349
+ flaggedFields: validation.flaggedFields,
350
+ checks: validation.checks,
351
+ calculation,
352
+ };
353
+ }
354
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/mcp/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type InferSchema, type ToolMetadata } from "xmcp";
2
+ export declare const schema: {
3
+ workflowId: import("zod").ZodString;
4
+ data: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
5
+ };
6
+ export declare const metadata: ToolMetadata;
7
+ export default function buildPacketTool(args: InferSchema<typeof schema>): any;
@@ -0,0 +1,23 @@
1
+ import { fillWorkflow, buildPacketInputSchema } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = {
4
+ workflowId: buildPacketInputSchema.shape.workflowId,
5
+ data: buildPacketInputSchema.shape.data,
6
+ };
7
+ export const metadata = {
8
+ name: "build-packet",
9
+ description: "Build a workflow packet summary with output artifact metadata for local saving.",
10
+ };
11
+ export default function buildPacketTool(args) {
12
+ const bundle = fillWorkflow(args.workflowId, args.data);
13
+ return withStructuredContent({
14
+ ok: true,
15
+ workflowId: bundle.workflowId,
16
+ outputArtifacts: bundle.outputArtifacts,
17
+ review: bundle.review,
18
+ validation: bundle.validation,
19
+ flaggedFields: bundle.validation.flaggedFields,
20
+ bundle,
21
+ });
22
+ }
23
+ //# sourceMappingURL=build-packet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-packet.js","sourceRoot":"","sources":["../../../../src/mcp/tools/build-packet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,UAAU;IACnD,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,iFAAiF;CAC/F,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAgC;IACtE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAExD,OAAO,qBAAqB,CAAC;QAC3B,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;QAC9C,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,40 @@
1
+ export declare const schema: {
2
+ taxYear: import("zod").ZodOptional<import("zod").ZodLiteral<2025>>;
3
+ data: import("zod").ZodObject<{
4
+ filingStatus: import("zod").ZodEnum<{
5
+ single: "single";
6
+ married_filing_jointly: "married_filing_jointly";
7
+ married_filing_separately: "married_filing_separately";
8
+ head_of_household: "head_of_household";
9
+ qualifying_surviving_spouse: "qualifying_surviving_spouse";
10
+ }>;
11
+ wages: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
12
+ taxableInterest: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
13
+ ordinaryDividends: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
14
+ scheduleCNet: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
15
+ otherIncome: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
16
+ adjustments: import("zod").ZodDefault<import("zod").ZodObject<{
17
+ educatorExpenses: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
18
+ hsaDeduction: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
19
+ selfEmploymentTaxDeduction: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
20
+ iraDeduction: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
21
+ studentLoanInterest: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
22
+ }, import("zod/v4/core").$strict>>;
23
+ useItemizedDeductions: import("zod").ZodDefault<import("zod").ZodBoolean>;
24
+ itemizedDeductions: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
25
+ dependents: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
26
+ name: import("zod").ZodString;
27
+ ssn: import("zod").ZodString;
28
+ relationship: import("zod").ZodString;
29
+ childTaxCreditEligible: import("zod").ZodBoolean;
30
+ eitcEligible: import("zod").ZodOptional<import("zod").ZodBoolean>;
31
+ }, import("zod/v4/core").$strict>>>;
32
+ federalWithheld: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
33
+ estimatedPayments: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
34
+ }, import("zod/v4/core").$strict>;
35
+ };
36
+ export declare const metadata: {
37
+ title: string;
38
+ description: string;
39
+ };
40
+ export default function calculateTaxTool(input: unknown): any;
@@ -0,0 +1,17 @@
1
+ import { calculateTaxFromInput, calculateTaxInputSchema, } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = calculateTaxInputSchema.shape;
4
+ export const metadata = {
5
+ title: "Calculate tax",
6
+ description: "Run deterministic federal tax calculations for the 2025 tax year.",
7
+ };
8
+ export default function calculateTaxTool(input) {
9
+ const parsed = calculateTaxInputSchema.parse(input);
10
+ const calculation = calculateTaxFromInput(parsed.data);
11
+ return withStructuredContent({
12
+ ok: true,
13
+ flaggedFields: [],
14
+ calculation,
15
+ });
16
+ }
17
+ //# sourceMappingURL=calculate-tax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-tax.js","sourceRoot":"","sources":["../../../../src/mcp/tools/calculate-tax.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,mEAAmE;CACjF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvD,OAAO,qBAAqB,CAAC;QAC3B,EAAE,EAAE,IAAI;QACR,aAAa,EAAE,EAAE;QACjB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from "zod";
2
+ import type { InferSchema, ToolMetadata } from "xmcp";
3
+ export declare const schema: {
4
+ workflowId: z.ZodOptional<z.ZodString>;
5
+ };
6
+ export declare const metadata: ToolMetadata;
7
+ export default function listDeadlinesTool(args: InferSchema<typeof schema>): any;
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ import { withStructuredContent } from "../result.js";
3
+ import { DEFAULT_DEADLINES, getUpcomingDeadlines, } from "../../workflows/deadlines.js";
4
+ export const schema = {
5
+ workflowId: z.string().trim().min(1).optional(),
6
+ };
7
+ export const metadata = {
8
+ name: "pigeongov-list-deadlines",
9
+ description: "List upcoming deadlines for government workflows. Optionally filter by workflow ID.",
10
+ };
11
+ export default function listDeadlinesTool(args) {
12
+ let deadlines = DEFAULT_DEADLINES;
13
+ if (args.workflowId) {
14
+ deadlines = deadlines.filter((d) => d.workflowId === args.workflowId);
15
+ }
16
+ const upcoming = getUpcomingDeadlines(deadlines);
17
+ return withStructuredContent({
18
+ ok: true,
19
+ deadlines: upcoming,
20
+ flaggedFields: [],
21
+ });
22
+ }
23
+ //# sourceMappingURL=deadlines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlines.js","sourceRoot":"","sources":["../../../../src/mcp/tools/deadlines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,qFAAqF;CACxF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,IAAgC;IAEhC,IAAI,SAAS,GAAG,iBAAiB,CAAC;IAElC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEjD,OAAO,qBAAqB,CAAC;QAC3B,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type InferSchema, type ToolMetadata } from "xmcp";
2
+ export declare const schema: {
3
+ formId: import("zod").ZodEnum<{
4
+ w2: "w2";
5
+ "1099-nec": "1099-nec";
6
+ "1099-int": "1099-int";
7
+ 1040: "1040";
8
+ "schedule-1": "schedule-1";
9
+ "schedule-c": "schedule-c";
10
+ }>;
11
+ taxYear: import("zod").ZodOptional<import("zod").ZodLiteral<2025>>;
12
+ };
13
+ export declare const metadata: ToolMetadata;
14
+ export default function describeFormTool(args: InferSchema<typeof schema>): Promise<any>;
@@ -0,0 +1,23 @@
1
+ import { describeForm, describeFormInputSchema } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = {
4
+ formId: describeFormInputSchema.shape.formId,
5
+ taxYear: describeFormInputSchema.shape.taxYear,
6
+ };
7
+ export const metadata = {
8
+ name: "describe-form",
9
+ description: "Return a field-level description of a supported form schema.",
10
+ annotations: {
11
+ title: "Describe form",
12
+ readOnlyHint: true,
13
+ idempotentHint: true,
14
+ destructiveHint: false,
15
+ },
16
+ };
17
+ export default async function describeFormTool(args) {
18
+ return withStructuredContent({
19
+ ...describeForm(args.formId),
20
+ flaggedFields: [],
21
+ });
22
+ }
23
+ //# sourceMappingURL=describe-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-form.js","sourceRoot":"","sources":["../../../../src/mcp/tools/describe-form.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC,MAAM;IAC5C,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,OAAO;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,8DAA8D;IAC3E,WAAW,EAAE;QACX,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;KACvB;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAgC;IAC7E,OAAO,qBAAqB,CAAC;QAC3B,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type InferSchema, type ToolMetadata } from "xmcp";
2
+ export declare const schema: {
3
+ workflowId: import("zod").ZodString;
4
+ };
5
+ export declare const metadata: ToolMetadata;
6
+ export default function describeWorkflowTool(args: InferSchema<typeof schema>): any;
@@ -0,0 +1,16 @@
1
+ import { describeWorkflowDefinition, describeWorkflowInputSchema } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = {
4
+ workflowId: describeWorkflowInputSchema.shape.workflowId,
5
+ };
6
+ export const metadata = {
7
+ name: "describe-workflow",
8
+ description: "Describe a workflow schema, starter data, and guided sections.",
9
+ };
10
+ export default function describeWorkflowTool(args) {
11
+ return withStructuredContent({
12
+ ...describeWorkflowDefinition(args.workflowId),
13
+ flaggedFields: [],
14
+ });
15
+ }
16
+ //# sourceMappingURL=describe-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-workflow.js","sourceRoot":"","sources":["../../../../src/mcp/tools/describe-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,2BAA2B,CAAC,KAAK,CAAC,UAAU;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,gEAAgE;CAC9E,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,IAAgC;IAEhC,OAAO,qBAAqB,CAAC;QAC3B,GAAG,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type InferSchema, type ToolMetadata } from "xmcp";
2
+ export declare const schema: {
3
+ bundle: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
4
+ field: import("zod").ZodString;
5
+ };
6
+ export declare const metadata: ToolMetadata;
7
+ export default function explainFlagTool(args: InferSchema<typeof schema>): any;
@@ -0,0 +1,19 @@
1
+ import { explainFlag, explainFlagInputSchema } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = {
4
+ bundle: explainFlagInputSchema.shape.bundle,
5
+ field: explainFlagInputSchema.shape.field,
6
+ };
7
+ export const metadata = {
8
+ name: "explain-flag",
9
+ description: "Explain a flagged field from a workflow bundle and suggest a next step.",
10
+ };
11
+ export default function explainFlagTool(args) {
12
+ const result = explainFlag(args.bundle, args.field);
13
+ return withStructuredContent({
14
+ ok: result.found,
15
+ flaggedFields: [],
16
+ ...result,
17
+ });
18
+ }
19
+ //# sourceMappingURL=explain-flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-flag.js","sourceRoot":"","sources":["../../../../src/mcp/tools/explain-flag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,MAAM;IAC3C,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAAK;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,yEAAyE;CACvF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAgC;IACtE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,qBAAqB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC,KAAK;QAChB,aAAa,EAAE,EAAE;QACjB,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const schema: {
2
+ path: import("zod").ZodString;
3
+ type: import("zod").ZodOptional<import("zod").ZodEnum<{
4
+ w2: "w2";
5
+ "1099-nec": "1099-nec";
6
+ "1099-int": "1099-int";
7
+ }>>;
8
+ };
9
+ export declare const metadata: {
10
+ title: string;
11
+ description: string;
12
+ };
13
+ export default function extractDocumentTool(input: unknown): Promise<any>;
@@ -0,0 +1,20 @@
1
+ import { extractDocumentFromPath, extractDocumentInputSchema } from "../shared.js";
2
+ import { withStructuredContent } from "../result.js";
3
+ export const schema = extractDocumentInputSchema.shape;
4
+ export const metadata = {
5
+ title: "Extract document",
6
+ description: "Extract W-2 and 1099 source document data from a local PDF.",
7
+ };
8
+ export default async function extractDocumentTool(input) {
9
+ const parsed = extractDocumentInputSchema.parse(input);
10
+ const result = await extractDocumentFromPath(parsed.path, parsed.type);
11
+ return withStructuredContent({
12
+ ok: true,
13
+ flaggedFields: result.flaggedFields,
14
+ detectedType: result.documentType,
15
+ confidence: result.confidence,
16
+ document: result.extracted ?? { type: "unknown" },
17
+ textPreview: result.text.slice(0, 500),
18
+ });
19
+ }
20
+ //# sourceMappingURL=extract-document.js.map