@invaro/opentax 0.1.0 โ†’ 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 (69) hide show
  1. package/README.md +64 -0
  2. package/bundle/http.js +37595 -0
  3. package/bundle/index.js +36289 -0
  4. package/bundle/main.js +45281 -0
  5. package/package.json +16 -14
  6. package/dist/documents.d.ts +0 -177
  7. package/dist/documents.d.ts.map +0 -1
  8. package/dist/documents.js +0 -246
  9. package/dist/documents.js.map +0 -1
  10. package/dist/hosted-bundle.d.ts +0 -8
  11. package/dist/hosted-bundle.d.ts.map +0 -1
  12. package/dist/hosted-bundle.js +0 -8
  13. package/dist/hosted-bundle.js.map +0 -1
  14. package/dist/http.d.ts +0 -15
  15. package/dist/http.d.ts.map +0 -1
  16. package/dist/http.js +0 -90
  17. package/dist/http.js.map +0 -1
  18. package/dist/index.d.ts +0 -9
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js +0 -13
  21. package/dist/index.js.map +0 -1
  22. package/dist/schema.d.ts +0 -60
  23. package/dist/schema.d.ts.map +0 -1
  24. package/dist/schema.js +0 -467
  25. package/dist/schema.js.map +0 -1
  26. package/dist/server.d.ts +0 -14
  27. package/dist/server.d.ts.map +0 -1
  28. package/dist/server.js +0 -509
  29. package/dist/server.js.map +0 -1
  30. package/dist/state-return/ca.d.ts +0 -3
  31. package/dist/state-return/ca.d.ts.map +0 -1
  32. package/dist/state-return/ca.js +0 -108
  33. package/dist/state-return/ca.js.map +0 -1
  34. package/dist/state-return/il.d.ts +0 -3
  35. package/dist/state-return/il.d.ts.map +0 -1
  36. package/dist/state-return/il.js +0 -64
  37. package/dist/state-return/il.js.map +0 -1
  38. package/dist/state-return/index.d.ts +0 -8
  39. package/dist/state-return/index.d.ts.map +0 -1
  40. package/dist/state-return/index.js +0 -38
  41. package/dist/state-return/index.js.map +0 -1
  42. package/dist/state-return/money.d.ts +0 -10
  43. package/dist/state-return/money.d.ts.map +0 -1
  44. package/dist/state-return/money.js +0 -18
  45. package/dist/state-return/money.js.map +0 -1
  46. package/dist/state-return/ny.d.ts +0 -3
  47. package/dist/state-return/ny.d.ts.map +0 -1
  48. package/dist/state-return/ny.js +0 -59
  49. package/dist/state-return/ny.js.map +0 -1
  50. package/dist/state-return/shape.d.ts +0 -80
  51. package/dist/state-return/shape.d.ts.map +0 -1
  52. package/dist/state-return/shape.js +0 -97
  53. package/dist/state-return/shape.js.map +0 -1
  54. package/dist/state-return/types.d.ts +0 -17
  55. package/dist/state-return/types.d.ts.map +0 -1
  56. package/dist/state-return/types.js +0 -6
  57. package/dist/state-return/types.js.map +0 -1
  58. package/dist/state-return/va-worksheets.d.ts +0 -70
  59. package/dist/state-return/va-worksheets.d.ts.map +0 -1
  60. package/dist/state-return/va-worksheets.js +0 -116
  61. package/dist/state-return/va-worksheets.js.map +0 -1
  62. package/dist/state-return/va.d.ts +0 -3
  63. package/dist/state-return/va.d.ts.map +0 -1
  64. package/dist/state-return/va.js +0 -130
  65. package/dist/state-return/va.js.map +0 -1
  66. package/dist/state-return.d.ts +0 -4
  67. package/dist/state-return.d.ts.map +0 -1
  68. package/dist/state-return.js +0 -3
  69. package/dist/state-return.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # @invaro/opentax
2
+
3
+ **The verifiable US tax oracle for AI agents** โ€” a Model Context Protocol (MCP) server where every answer is computed from a content-addressed corpus of cited tax rules, ships its assumptions, and is independently re-verifiable. Never let a model guess at tax law again.
4
+
5
+ ๐ŸŒ **[opentax.invaro.ai](https://opentax.invaro.ai)** ยท [GitHub](https://github.com/Invaro/opentax-engine) ยท Apache-2.0
6
+
7
+ ## Why
8
+
9
+ On [TaxCalcBench](https://github.com/column-tax/tax-calc-bench) TY25, a Claude Sonnet agent using this oracle computes **48/50 complete returns exactly (96%, 98.2% of all lines)** โ€” versus 58% for the best web-search-equipped frontier model and 6% for the same model unaided. The two remaining cases contain reference-data inconsistencies the engine's line-level reconciliation surfaced ([reported upstream](https://github.com/column-tax/tax-calc-bench/issues/96)).
10
+
11
+ ## Use the hosted connector (no install)
12
+
13
+ Paste this URL into Claude.ai (**Settings โ†’ Connectors โ†’ Add custom connector**), ChatGPT, or Cursor:
14
+
15
+ ```
16
+ https://opentax.invaro.ai/mcp
17
+ ```
18
+
19
+ ## Or run it locally (stdio)
20
+
21
+ ```bash
22
+ claude mcp add opentax -- npx -y @invaro/opentax
23
+ ```
24
+
25
+ Claude Desktop / Cursor config:
26
+
27
+ ```json
28
+ {
29
+ "mcpServers": {
30
+ "opentax": { "command": "npx", "args": ["-y", "@invaro/opentax"] }
31
+ }
32
+ }
33
+ ```
34
+
35
+ The same binary is also the full CLI and the self-hostable connector:
36
+
37
+ ```bash
38
+ npx -y @invaro/opentax eval --status mfj --wages 120000 --kids 2 # terminal CLI
39
+ npx -y @invaro/opentax check --wages 120000 --expect 5746 # verify a claimed number
40
+ npx -y @invaro/opentax lookup standard deduction # citations behind an amount
41
+ npx -y @invaro/opentax mcp-http # self-host /mcp on $PORT
42
+ ```
43
+
44
+ One package: run with no arguments from an MCP client and it's the stdio server; give it a command and it's the CLI.
45
+
46
+ ## Tools
47
+
48
+ | Tool | What it does |
49
+ |---|---|
50
+ | `calculate_tax` | Any federal target (net tax, AGI, EITC, AMT, SE tax, โ€ฆ) from typed facts |
51
+ | `compute_return` | The full Form 1040 line set from raw document transcriptions (W-2s, 1099-Rs, SSA-1099s) |
52
+ | `compute_state_return` | IL-1040, VA 760, CA 540, NY IT-201 printed-form line sets |
53
+ | `verify_tax_claim` | Gate a claimed number before presenting it: verified / refuted, with the difference |
54
+ | `find_tax_cliffs` | Exact-cent benefit cliffs over an income range |
55
+ | `compare_filing_statuses` | The same facts across all five filing statuses |
56
+ | `list_input_facts`, `explain_rule`, `lookup_tax_parameter` | Discover inputs; read any rule's citation, formula, and validity window |
57
+ | `calculate_business_tax`, `calculate_fiduciary_tax`, `determine_dependent`, `verify_fact`, `is_tipped_occupation` | Form 1120, Form 1041, ยง 152 dependency, proofs, ยง 224 tips |
58
+
59
+ ## What "verifiable" means
60
+
61
+ Every computation returns its **assumptions** (documented defaults it relied on), **citations** (statute source, section, URL on every rule), and a **content hash** of the exact rule corpus used (tax years 2025 and 2026, kept current โ€” e.g. OBBBA amounts, state 2025 legislation). Answers are derivation trees you can re-execute, not model output.
62
+
63
+ The engine refuses rather than guesses: missing facts are named, uncovered situations return "not covered," and dates outside a rule's validity window are errors โ€” never silent fallbacks to a stale year.
64
+