@mudraforge/statutory 2.12.1 → 2.14.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 (134) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +19 -0
  3. package/okf/corporate_ma_restructuring/business_combinations_indas_103/ast.json +20 -0
  4. package/okf/corporate_ma_restructuring/impairment_of_assets_indas_36/ast.json +20 -0
  5. package/okf/corporate_ma_restructuring/loss_carryforward_sec79/ast.json +33 -0
  6. package/okf/corporate_ma_restructuring/share_based_payments_indas_102/ast.json +20 -0
  7. package/okf/corporate_ma_restructuring/slump_sale_50b/ast.json +21 -0
  8. package/okf/corporate_ma_restructuring/tax_clearance_sec281/ast.json +21 -0
  9. package/okf/direct_tax/corporate_tax_115baa_115jb/ast.json +23 -0
  10. package/okf/direct_tax/income_taxes_deferred_tax_indas_12/ast.json +20 -0
  11. package/okf/direct_tax/special_rates_non_filer_206ab/ast.json +26 -0
  12. package/okf/direct_tax/statutory_disallowance_43b/ast.json +35 -0
  13. package/okf/direct_tax/tcs_goods_206c_1h/ast.json +69 -0
  14. package/okf/direct_tax/tds_commission_194h/ast.json +60 -0
  15. package/okf/direct_tax/tds_contractor_194c/ast.json +71 -0
  16. package/okf/direct_tax/tds_ecommerce_194o/ast.json +48 -0
  17. package/okf/direct_tax/tds_goods_194q/ast.json +71 -0
  18. package/okf/direct_tax/tds_goods_393/ast.json +59 -0
  19. package/okf/direct_tax/tds_individual_contract_194m/ast.json +59 -0
  20. package/okf/direct_tax/tds_interest_194a/ast.json +59 -0
  21. package/okf/direct_tax/tds_perquisites_194r/ast.json +47 -0
  22. package/okf/direct_tax/tds_property_194ia/ast.json +70 -0
  23. package/okf/direct_tax/tds_rent_194i/ast.json +60 -0
  24. package/okf/direct_tax/tds_rent_individual_194ib/ast.json +59 -0
  25. package/okf/direct_tax/tds_services_194j/ast.json +60 -0
  26. package/okf/indirect_tax_gst/blocked_itc_17_5/ast.json +26 -0
  27. package/okf/indirect_tax_gst/common_itc_reversal_rule42_43/ast.json +26 -0
  28. package/okf/indirect_tax_gst/composite_mixed_supplies_sec8/ast.json +21 -0
  29. package/okf/indirect_tax_gst/composition_levy_sec10/ast.json +23 -0
  30. package/okf/indirect_tax_gst/credit_debit_notes_sec34/ast.json +21 -0
  31. package/okf/indirect_tax_gst/e_invoicing_rule48_4/ast.json +20 -0
  32. package/okf/indirect_tax_gst/export_services_lut_sec16/ast.json +20 -0
  33. package/okf/indirect_tax_gst/gst_tds_sec51/ast.json +23 -0
  34. package/okf/indirect_tax_gst/itc_eligibility_16_2/ast.json +20 -0
  35. package/okf/indirect_tax_gst/itc_reversal_rule37_37a/ast.json +45 -0
  36. package/okf/indirect_tax_gst/rcm_liability_sec9_3/ast.json +26 -0
  37. package/okf/international_tax/cross_border_remittance_195/ast.json +39 -0
  38. package/okf/international_tax/financial_instruments_ecl_indas_109/ast.json +24 -0
  39. package/okf/international_tax/foreign_exchange_indas_21_109/ast.json +20 -0
  40. package/okf/international_tax/foreign_tax_credit_irc_901_904/ast.json +20 -0
  41. package/okf/international_tax/transfer_pricing_alp_92c/ast.json +25 -0
  42. package/okf/manifest.json +49 -3
  43. package/okf/msme_commercial/delayed_payments_15_16/ast.json +38 -0
  44. package/okf/msme_commercial/enterprise_classification_sec7/ast.json +25 -0
  45. package/okf/msme_commercial/lease_accounting_indas_116/ast.json +20 -0
  46. package/okf/msme_commercial/mca_msme_1_filing/ast.json +20 -0
  47. package/okf/msme_commercial/provisions_contingencies_indas_37/ast.json +20 -0
  48. package/okf/msme_commercial/revenue_recognition_indas_115/ast.json +20 -0
  49. package/okf/msme_commercial/statutory_disclosures_sec22/ast.json +21 -0
  50. package/package.json +16 -4
  51. package/src/calculators.js +139 -3
  52. package/src/constants.js +1 -1
  53. package/src/index.js +16 -2
  54. package/src/payroll.js +506 -0
  55. package/src/usvm/evaluation_vm.js +504 -0
  56. package/src/usvm/index.js +65 -0
  57. package/src/usvm/math_rational.js +165 -0
  58. package/src/usvm/rules/sec_115baa_115jb_mat.json +23 -0
  59. package/src/usvm/rules/sec_192_salary_tds.json +23 -0
  60. package/src/usvm/rules/sec_194a_interest.json +59 -0
  61. package/src/usvm/rules/sec_194c_contractors.json +71 -0
  62. package/src/usvm/rules/sec_194h_commission.json +60 -0
  63. package/src/usvm/rules/sec_194i_rent.json +60 -0
  64. package/src/usvm/rules/sec_194ia_property.json +70 -0
  65. package/src/usvm/rules/sec_194ib_rent_ind.json +59 -0
  66. package/src/usvm/rules/sec_194j_services.json +60 -0
  67. package/src/usvm/rules/sec_194m_contract_ind.json +59 -0
  68. package/src/usvm/rules/sec_194o_ecommerce.json +48 -0
  69. package/src/usvm/rules/sec_194q_goods.json +71 -0
  70. package/src/usvm/rules/sec_194r_perquisites.json +47 -0
  71. package/src/usvm/rules/sec_195_cross_border.json +39 -0
  72. package/src/usvm/rules/sec_206ab_non_filer.json +26 -0
  73. package/src/usvm/rules/sec_206c1h_tcs.json +69 -0
  74. package/src/usvm/rules/sec_281_tax_clearance.json +21 -0
  75. package/src/usvm/rules/sec_393_goods.json +59 -0
  76. package/src/usvm/rules/sec_43bh_disallowance.json +35 -0
  77. package/src/usvm/rules/sec_50b_slump_sale.json +21 -0
  78. package/src/usvm/rules/sec_79_loss_continuity.json +33 -0
  79. package/src/usvm/rules/sec_92c_transfer_pricing.json +25 -0
  80. package/src/usvm/rules/sec_ftc_dtaa_relief.json +20 -0
  81. package/src/usvm/rules/sec_gst_blocked_itc_17_5.json +26 -0
  82. package/src/usvm/rules/sec_gst_composite_mixed_8.json +21 -0
  83. package/src/usvm/rules/sec_gst_composition_levy_10.json +23 -0
  84. package/src/usvm/rules/sec_gst_credit_debit_notes_34.json +21 -0
  85. package/src/usvm/rules/sec_gst_einvoicing_rule48_4.json +20 -0
  86. package/src/usvm/rules/sec_gst_ewaybill_rule138.json +21 -0
  87. package/src/usvm/rules/sec_gst_export_lut_16.json +20 -0
  88. package/src/usvm/rules/sec_gst_itc_eligibility_16_2.json +20 -0
  89. package/src/usvm/rules/sec_gst_itc_reversal_rule37_37a.json +45 -0
  90. package/src/usvm/rules/sec_gst_rcm_liability_9_3.json +26 -0
  91. package/src/usvm/rules/sec_gst_rule42_43_apportionment.json +26 -0
  92. package/src/usvm/rules/sec_gst_tds_sec51.json +23 -0
  93. package/src/usvm/rules/sec_indas102_esop.json +20 -0
  94. package/src/usvm/rules/sec_indas103_mna.json +20 -0
  95. package/src/usvm/rules/sec_indas109_ecl.json +24 -0
  96. package/src/usvm/rules/sec_indas115_revenue.json +20 -0
  97. package/src/usvm/rules/sec_indas116_leases.json +20 -0
  98. package/src/usvm/rules/sec_indas12_deferred_tax.json +20 -0
  99. package/src/usvm/rules/sec_indas21_fx_reval.json +20 -0
  100. package/src/usvm/rules/sec_indas36_impairment.json +20 -0
  101. package/src/usvm/rules/sec_indas37_provisions.json +20 -0
  102. package/src/usvm/rules/sec_msme_classification_sec7.json +25 -0
  103. package/src/usvm/rules/sec_msme_delayed_payments_15_16.json +38 -0
  104. package/src/usvm/rules/sec_msme_disclosures_sec22.json +21 -0
  105. package/src/usvm/rules/sec_msme_mca_form_1.json +20 -0
  106. package/src/usvm/schemas/statutory_ast_schema.js +203 -0
  107. package/src/usvm/usvm_domain_evaluators.js +1021 -0
  108. package/types/index.d.ts +134 -0
  109. package/conformance/README.md +0 -54
  110. package/conformance/fixtures/invalid_malformed_temporal_dates.json +0 -10
  111. package/conformance/fixtures/invalid_missing_effective_period.json +0 -6
  112. package/conformance/fixtures/invalid_missing_section_code.json +0 -9
  113. package/conformance/fixtures/valid_circular_frontmatter.md +0 -16
  114. package/conformance/fixtures/valid_full_section.json +0 -35
  115. package/conformance/fixtures/valid_minimal_section.json +0 -11
  116. package/conformance/test_conformance.js +0 -129
  117. package/docs/ACCOUNTING_ASSURANCE_AUDIT_DOSSIER.md +0 -276
  118. package/docs/ADESHA_ASSURANCE_OVERVIEW.md +0 -166
  119. package/docs/ARCHITECTURE.md +0 -750
  120. package/docs/ARCHITECTURE_DECISIONS.md +0 -138
  121. package/docs/CASE_01_FORM_TEXT.txt +0 -48
  122. package/docs/CATALOG.md +0 -1901
  123. package/docs/CA_PILOT_BENCHMARK_CASES.md +0 -282
  124. package/docs/CORPUS_QUALITY.md +0 -106
  125. package/docs/DATA_LICENSING.md +0 -73
  126. package/docs/DOMAIN_BREADTH_AND_DEPTH_COMPARISON.md +0 -209
  127. package/docs/ENTERPRISE_GOVERNANCE.md +0 -159
  128. package/docs/OKF_MAINTENANCE_SOP.md +0 -286
  129. package/docs/PILOT_EVALUATION_GUIDE.md +0 -214
  130. package/docs/PROVENANCE.md +0 -33
  131. package/docs/VERIFICATION.md +0 -106
  132. package/examples/README.md +0 -56
  133. package/examples/invoice_deduction_trace.json +0 -149
  134. package/examples/simulate_end_to_end_trace.js +0 -106
@@ -0,0 +1,21 @@
1
+ {
2
+ "sectionId": "MSMED2006_SEC22",
3
+ "version": "1.0.0",
4
+ "governingStatute": "Micro, Small and Medium Enterprises Development Act, 2006",
5
+ "statutorySection": "Section 22",
6
+ "successorStatute": "MSMED Act, 2006",
7
+ "successorSection": "Section 22",
8
+ "triggerPolicy": {
9
+ "type": "FISCAL_YEAR_END",
10
+ "description": "Annual statutory note disclosure in balance sheet"
11
+ },
12
+ "computation": {
13
+ "archetype": "MSME_DISCLOSURES_SEC22",
14
+ "disclosePrincipalUnpaid": true,
15
+ "discloseInterestCompounded": true
16
+ },
17
+ "rounding": {
18
+ "transactionLine": "COMMERCIAL_PAISA",
19
+ "assessmentTotal": "COMMERCIAL_PAISA"
20
+ }
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mudraforge/statutory",
3
- "version": "2.12.1",
3
+ "version": "2.14.0",
4
4
  "description": "Open Knowledge Format (OKF) client & AI Agent Skill for Indian and cross-border statutory tax provisions. Zero dependencies.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -26,6 +26,11 @@
26
26
  "import": "./src/calculators.js",
27
27
  "default": "./src/calculators.js"
28
28
  },
29
+ "./usvm": {
30
+ "types": "./types/index.d.ts",
31
+ "import": "./src/usvm/index.js",
32
+ "default": "./src/usvm/index.js"
33
+ },
29
34
  "./zoho_gstr2b": {
30
35
  "types": "./types/index.d.ts",
31
36
  "import": "./src/zoho_gstr2b.js",
@@ -43,6 +48,12 @@
43
48
  ],
44
49
  "constants": [
45
50
  "./types/index.d.ts"
51
+ ],
52
+ "usvm": [
53
+ "./types/index.d.ts"
54
+ ],
55
+ "zoho_gstr2b": [
56
+ "./types/index.d.ts"
46
57
  ]
47
58
  }
48
59
  },
@@ -61,15 +72,12 @@
61
72
  "okf",
62
73
  "calculators.js",
63
74
  "calculators.d.ts",
64
- "docs",
65
75
  "SKILL.md",
66
76
  "README.md",
67
77
  "CONTRIBUTING.md",
68
78
  "CHANGELOG.md",
69
79
  "SECURITY.md",
70
80
  "okf.publication.json",
71
- "conformance",
72
- "examples",
73
81
  "LICENSE"
74
82
  ],
75
83
  "publishConfig": {
@@ -78,6 +86,10 @@
78
86
  "scripts": {
79
87
  "prepublishOnly": "node scripts/prepublish_gate.js",
80
88
  "test": "node test.js",
89
+ "check:types": "npx --yes @arethetypeswrong/cli --pack . --profile esm-only",
90
+ "check:exports": "npx --yes publint",
91
+ "ci:local": "node scripts/ci_parity.js",
92
+ "setup:hooks": "node scripts/install_git_hooks.js",
81
93
  "validate": "node scripts/validate_okf.js",
82
94
  "citations": "node scripts/verify_citation_links.js",
83
95
  "conformance": "node conformance/test_conformance.js",
@@ -16,13 +16,20 @@
16
16
  * Advanced enterprise engines (full Form 3CD audit schedule synthesis, Section 234B/C dynamic
17
17
  * forecasting, Pillar Two BEPS models, and live banking rail settlement dispatch) are hosted API
18
18
  * services and require an Enterprise License (hello@mudraforge.in / support@mudraforge.in).
19
+ *
20
+ * @deprecated PROCEDURAL CALCULATORS DEPRECATION NOTICE (v2.14.0):
21
+ * The procedural calculators in this module are deprecated in favor of declarative
22
+ * Abstract Syntax Tree (AST) evaluation via the Universal Statutory Virtual Machine
23
+ * (USVM) in `@mudraforge/statutory/usvm` (`evaluateStatutoryAst`).
24
+ * Procedural exports are retained for backward compatibility throughout v2.x and
25
+ * will be sunset in v3.0.
19
26
  */
20
27
 
21
28
  // Canonical OKF v0.2 Release Merkle Roots & Versions
22
- export const CURRENT_RELEASE_MERKLE_ROOT = 'sha256-b17c37b2724aece2a28beaab5720a777ae27e661ac51f1436be6eff3ca5ef64b';
29
+ export const CURRENT_RELEASE_MERKLE_ROOT = 'sha256-7ffc75e8611a9c966eea756dd544fdae9144e2318d3478633232bb876d05e364';
23
30
  export const MERKLE_ROOT_OKF_V2 = CURRENT_RELEASE_MERKLE_ROOT;
24
- export const STATUTORY_PACKAGE_VERSION = '2.11.0';
25
- export const OKF_CORPUS_VERSION = '2.11.0';
31
+ export const STATUTORY_PACKAGE_VERSION = '2.14.0';
32
+ export const OKF_CORPUS_VERSION = '2.14.0';
26
33
 
27
34
  // Current RBI Bank Rate (H2 2024 - 2026 baseline): 6.75%
28
35
  export const DEFAULT_RBI_BANK_RATE = 0.0675;
@@ -296,6 +303,9 @@ export function roundSection288B(amount) {
296
303
  * Formula: Compound interest with monthly rests at 3x RBI Bank Rate.
297
304
  * For partial months, applies prorated day-count fractions.
298
305
  */
306
+ /**
307
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
308
+ */
299
309
  export function calculateMsmeCompoundInterest({
300
310
  principal,
301
311
  // First-class MSMED statutory parameters:
@@ -694,6 +704,9 @@ export function calculateMsmeCompoundInterest({
694
704
  * - Dispute clock pauses (Section 15 Explanation)
695
705
  * - Same FY (before March 31) payment vs crossing FY boundary
696
706
  */
707
+ /**
708
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
709
+ */
697
710
  export function evaluateSection43bH({
698
711
  invoiceDate,
699
712
  acceptanceDate = null,
@@ -892,6 +905,9 @@ export function evaluateSection43bH({
892
905
  * - Conversion of unpaid interest into a loan, advance, debenture, or other instrument
893
906
  * does NOT constitute actual payment and remains disallowed.
894
907
  */
908
+ /**
909
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
910
+ */
895
911
  export function evaluateSection43BStatutoryPayables({
896
912
  financialYear = '2025-26',
897
913
  assessmentYear = null,
@@ -1192,6 +1208,9 @@ export function evaluateSection43BStatutoryPayables({
1192
1208
  * - SC Engineering Analysis (2021) automated cloud infra vs human FTS
1193
1209
  * - Form 145 Part A vs Part B (AO order) vs Part C (CA cert)
1194
1210
  */
1211
+ /**
1212
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1213
+ */
1195
1214
  export function evaluateCrossBorderRemittance({
1196
1215
  amountUsd,
1197
1216
  fxRate = 83.5,
@@ -1366,6 +1385,9 @@ export function evaluateCrossBorderRemittance({
1366
1385
  * pre-issued for FY 2026-27 under the Income-tax Act, 2025.
1367
1386
  * - Rejects expired certificates (e.g. FY 2025-26 certificates used post-April 2026).
1368
1387
  */
1388
+ /**
1389
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1390
+ */
1369
1391
  export function evaluateLowerDeductionCertificateValidity({
1370
1392
  effectiveDate = null,
1371
1393
  lowerDeductionCertificate = null,
@@ -1490,6 +1512,9 @@ export function evaluateLowerDeductionCertificateValidity({
1490
1512
  };
1491
1513
  }
1492
1514
 
1515
+ /**
1516
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1517
+ */
1493
1518
  export function resolveGoverningCertificateSection(params = {}) {
1494
1519
  return evaluateLowerDeductionCertificateValidity(params);
1495
1520
  }
@@ -1564,6 +1589,9 @@ export const AUTHORITATIVE_STATUTORY_RATES = {
1564
1589
  * Section 194H / Table 8 Item 4 (Commission),
1565
1590
  * Section 195 / Section 394 (Non-residents).
1566
1591
  */
1592
+ /**
1593
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1594
+ */
1567
1595
  export function resolveMissingPanPenaltyFloor({
1568
1596
  sectionCode = '194Q',
1569
1597
  tableItem = null,
@@ -1607,6 +1635,9 @@ export function resolveMissingPanPenaltyFloor({
1607
1635
  * 4. Disallows private commercial contracts from modifying statutory withholding rates.
1608
1636
  * 5. Rejects unverified or contradictory rate evidence (fails closed).
1609
1637
  */
1638
+ /**
1639
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1640
+ */
1610
1641
  export function validateRateEvidence({
1611
1642
  rateInForce = null,
1612
1643
  ratesInForceSource = 'STATUTORY_BASE',
@@ -1759,6 +1790,9 @@ export function validateRateEvidence({
1759
1790
  };
1760
1791
  }
1761
1792
 
1793
+ /**
1794
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
1795
+ */
1762
1796
  export function evaluateSection194Q({
1763
1797
  invoiceAmount,
1764
1798
  priorFyPurchases = 0,
@@ -2221,6 +2255,9 @@ export function evaluateSection194Q({
2221
2255
  * - Finance Act, 2025 Sunset: Omitted/withdrawn effective 1 April 2025.
2222
2256
  * On or after 1 April 2025, TCS collection is statutorily barred.
2223
2257
  */
2258
+ /**
2259
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
2260
+ */
2224
2261
  export function evaluateSection206C1H({
2225
2262
  receiptAmountInr = 0,
2226
2263
  priorFyReceiptsInr = 0,
@@ -2545,6 +2582,9 @@ export function decodeTaxIdentifier(rawId) {
2545
2582
  * - CBDT Circular No. 23/2017: Excludes separately stated GST.
2546
2583
  * - Income-tax Act, 2025 Transition: Section 393(1) Table 8, Item (i).
2547
2584
  */
2585
+ /**
2586
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
2587
+ */
2548
2588
  export function evaluateSection194C({
2549
2589
  invoiceAmount,
2550
2590
  deducteeType = null, // 'INDIVIDUAL', 'HUF', 'COMPANY', 'FIRM', 'LLP', 'OTHER'
@@ -2892,6 +2932,9 @@ export function normalize194JCategory(rawCategory) {
2892
2932
  return null;
2893
2933
  }
2894
2934
 
2935
+ /**
2936
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
2937
+ */
2895
2938
  export function evaluateSection194J({
2896
2939
  invoiceAmount,
2897
2940
  serviceCategory = 'TECHNICAL_SERVICES', // 'TECHNICAL_SERVICES', 'PROFESSIONAL_SERVICES', 'ROYALTY_FILM', 'ROYALTY_GENERAL', 'DIRECTOR_REMUNERATION', 'NON_COMPETE'
@@ -3171,6 +3214,9 @@ export function evaluateSection194J({
3171
3214
  * - CBDT Circular No. 23/2017: Separately stated GST excluded from TDS.
3172
3215
  * - Income-tax Act, 2025 Transition: Section 393(1) Table 8, Item 5.
3173
3216
  */
3217
+ /**
3218
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
3219
+ */
3174
3220
  export function evaluateSection194I({
3175
3221
  invoiceAmount,
3176
3222
  monthlyRent = null,
@@ -3339,6 +3385,9 @@ export function evaluateSection194I({
3339
3385
  * - CBDT Circular No. 23/2017: Separately stated GST excluded from TDS.
3340
3386
  * - Income-tax Act, 2025 Transition: Section 393(1) Table 8, Item 4.
3341
3387
  */
3388
+ /**
3389
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
3390
+ */
3342
3391
  export function evaluateSection194H({
3343
3392
  invoiceAmount,
3344
3393
  priorFyCommission = 0,
@@ -3504,6 +3553,9 @@ export function evaluateSection194H({
3504
3553
  * - Temporal Resolution: Earlier of credit in books or payment disbursement.
3505
3554
  * - Dual-Act Crystallization: Pre-1 April 2026 -> 1961 Act; Post-1 April 2026 -> 2025 Act.
3506
3555
  */
3556
+ /**
3557
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
3558
+ */
3507
3559
  export function evaluateSection194A({
3508
3560
  interestAmount,
3509
3561
  priorPaymentsInCurrentFyInr = 0,
@@ -3715,6 +3767,9 @@ export function evaluateSection194A({
3715
3767
  * - Overrides Section 194Q (buyer TDS) and Section 206C(1H) (seller TCS).
3716
3768
  * - Temporal Resolution: Earlier of credit to account (including clearing) or payment.
3717
3769
  */
3770
+ /**
3771
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
3772
+ */
3718
3773
  export function evaluateSection194O({
3719
3774
  grossSaleAmount,
3720
3775
  directPurchaserPaymentDeemedInr = 0,
@@ -3882,6 +3937,9 @@ export function evaluateSection194O({
3882
3937
  * - Compliance: Form 26QB (30 days from month end), Form 16B (15 days from 26QB).
3883
3938
  * - Dual-Act 2025: Section 393(1) Table 4 Item (q).
3884
3939
  */
3940
+ /**
3941
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
3942
+ */
3885
3943
  export function evaluateSection194IA({
3886
3944
  contractualConsiderationInr,
3887
3945
  stampDutyValueInr = null,
@@ -4046,6 +4104,9 @@ export function evaluateSection194IA({
4046
4104
  * 12% & 36% safe harbors for Q1 and Q2, Section 234C sudden income provisos
4047
4105
  * (capital gains, dividends, new business), and Section 234B default interest.
4048
4106
  */
4107
+ /**
4108
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
4109
+ */
4049
4110
  export function calculateAdvanceTaxAndInterest({
4050
4111
  taxYear = '2025-26',
4051
4112
  assessmentYear = null,
@@ -4352,6 +4413,9 @@ export function calculateAdvanceTaxAndInterest({
4352
4413
  * - Eligible Common Credit: C3 = C2 - (D1 + D2)
4353
4414
  * - Net Eligible Inputs Credit: G = T4 + C3 = C1 - (D1 + D2)
4354
4415
  */
4416
+ /**
4417
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
4418
+ */
4355
4419
  export function calculateRule42InputServiceReversal({
4356
4420
  taxPeriod = 'CURRENT_PERIOD',
4357
4421
  totalItcInr,
@@ -4469,6 +4533,9 @@ export function calculateRule42InputServiceReversal({
4469
4533
  * - Shortfall Reversal: Payable with 18% p.a. interest under Section 50(1) from 1st April of succeeding FY.
4470
4534
  * - Excess Reversal: Reclaimable as credit in Form GSTR-3B Table 4(A)(5) and Table 4(D)(1) before 30th November.
4471
4535
  */
4536
+ /**
4537
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
4538
+ */
4472
4539
  export function reconcileRule42AnnualTrueUp({
4473
4540
  financialYear = '2024-25',
4474
4541
  annualCommonCreditC2Inr,
@@ -4585,6 +4652,9 @@ export function reconcileRule42AnnualTrueUp({
4585
4652
  * - Monthly exempt reversal: Te = (E / F) * Tr (added to output tax liability in Table 4(B)(1)).
4586
4653
  * - Asset conversion: 5% reduction per quarter under Rule 43(1)(c) for exclusive-to-common transitions.
4587
4654
  */
4655
+ /**
4656
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
4657
+ */
4588
4658
  export function calculateRule43CapitalGoodsReversal({
4589
4659
  taxPeriod = 'CURRENT_PERIOD',
4590
4660
  taxPeriodDate = new Date().toISOString().slice(0, 10),
@@ -4756,6 +4826,9 @@ export function calculateRule43CapitalGoodsReversal({
4756
4826
  * UNIFIED ORCHESTRATOR: GST RULE 42 & 43 COMBINED APPORTIONMENT
4757
4827
  * Backward-compatible facade coordinating inputs/services, capital goods, and annual true-ups.
4758
4828
  */
4829
+ /**
4830
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
4831
+ */
4759
4832
  export function calculateGstItcApportionmentRule42_43({
4760
4833
  taxPeriod = null,
4761
4834
  financialYear = '2025-26',
@@ -4946,6 +5019,9 @@ export function calculateGstItcApportionmentRule42_43({
4946
5019
  * Implements authoritative 180-day aging, proportional unpaid ITC computation,
4947
5020
  * Section 50(1) 18% annual interest, RCM/Schedule I exemptions, and GSTR-3B Table 4(B)(2) mapping.
4948
5021
  */
5022
+ /**
5023
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5024
+ */
4949
5025
  export function calculateItcReversalRule37({
4950
5026
  invoiceNumber = 'INV-UNKNOWN',
4951
5027
  invoiceDate,
@@ -5122,6 +5198,9 @@ export function calculateItcReversalRule37({
5122
5198
  * - If delayed past 30th November: 18% annual interest applies u/s 50(1).
5123
5199
  * - Interest-free re-availment permitted once supplier subsequently furnishes GSTR-3B.
5124
5200
  */
5201
+ /**
5202
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5203
+ */
5125
5204
  export function calculateRule37ASupplierNonFilingReversal({
5126
5205
  financialYear, // e.g. '2024-25'
5127
5206
  invoiceNumber = 'INV-UNKNOWN',
@@ -5225,6 +5304,9 @@ export function calculateRule37ASupplierNonFilingReversal({
5225
5304
  * 2. Statutory Overdue Status: Days past Section 15 statutory due date (Appointed Day).
5226
5305
  * 3. MCA Form MSME-1: Bi-annual filing of Micro/Small dues exceeding 45 days.
5227
5306
  */
5307
+ /**
5308
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5309
+ */
5228
5310
  export function generateMsme1AndScheduleThreeAging({
5229
5311
  asOfDate = new Date().toISOString().slice(0, 10),
5230
5312
  halfYearPeriod = null, // 'APRIL_TO_SEPTEMBER' | 'OCTOBER_TO_MARCH'
@@ -5415,6 +5497,9 @@ export function generateMsme1AndScheduleThreeAging({
5415
5497
  * 4. Section 115BAA Concessional Regime: Flat 22% + 10% surcharge + 4% cess = 25.168% effective.
5416
5498
  * Exempt from Section 115JB MAT u/s 115JB(5A). Forfeits accumulated MAT credit.
5417
5499
  */
5500
+ /**
5501
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5502
+ */
5418
5503
  export function calculateCorporateTaxMatVsConcessional({
5419
5504
  financialYear = '2025-26',
5420
5505
  assessmentYear = null,
@@ -5610,6 +5695,9 @@ export function calculateCorporateTaxMatVsConcessional({
5610
5695
  * 3. Export of Services under Section 16 & Section 2(6) cumulative 5 conditions.
5611
5696
  * 4. Letter of Undertaking (LUT) zero-rate export vs tax payment refund.
5612
5697
  */
5698
+ /**
5699
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5700
+ */
5613
5701
  export function evaluatePlaceOfSupplyAndLut({
5614
5702
  transactionType = 'DOMESTIC_SERVICES',
5615
5703
  supplierStateCode = null,
@@ -5802,6 +5890,9 @@ export function evaluatePlaceOfSupplyAndLut({
5802
5890
  * 4. Rule 10CA(7) Median (50th percentile) primary adjustment if tested margin is outside range.
5803
5891
  * 5. Section 92CE Secondary Adjustment threshold warning (> 1 Cr).
5804
5892
  */
5893
+ /**
5894
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
5895
+ */
5805
5896
  export function calculateTransferPricingAlp({
5806
5897
  transactionDescription = 'International Transaction with Associated Enterprise',
5807
5898
  testedParty = 'Indian Enterprise',
@@ -5936,6 +6027,9 @@ export function calculateTransferPricingAlp({
5936
6027
  * 3. IBC Carve-Out (Sec 79(2)(c)): Preserved for NCLT resolution plans.
5937
6028
  * 4. Section 32(2) Invariant: Unabsorbed depreciation carries forward INDEFINITELY regardless of Section 79.
5938
6029
  */
6030
+ /**
6031
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6032
+ */
5939
6033
  export function evaluateSection79LossContinuity({
5940
6034
  companyType = 'CLOSELY_HELD_COMPANY',
5941
6035
  isDpiitRecognizedStartup = false,
@@ -6047,6 +6141,9 @@ export function evaluateSection79LossContinuity({
6047
6141
  * 1. Section 281(1) Proviso (ii): Prior written permission of Assessing Officer (Circular 04/2011).
6048
6142
  * 2. Section 281(1) Proviso (i): Bona fide purchaser for adequate consideration without notice.
6049
6143
  */
6144
+ /**
6145
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6146
+ */
6050
6147
  export function evaluateSection281TaxClearance({
6051
6148
  assetType = 'IMMOVABLE_PROPERTY', // 'IMMOVABLE_PROPERTY' | 'PLANT_AND_MACHINERY' | 'SHARES_AND_SECURITIES' | 'FIXED_DEPOSIT' | 'OTHER'
6052
6149
  assetDescription = 'Commercial Asset / Undertaking',
@@ -6223,6 +6320,9 @@ export function evaluateSection281TaxClearance({
6223
6320
  * 2. Net Unrealized Gain/Loss routing: P&L vs Other Comprehensive Income (OCI - Cash Flow Hedge Reserve).
6224
6321
  * 3. Ind AS 109 Balance Sheet schedule generation.
6225
6322
  */
6323
+ /**
6324
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6325
+ */
6226
6326
  export function revalueForeignExchangeIndAs109({
6227
6327
  asOfDate = null,
6228
6328
  reportingCurrency = 'INR',
@@ -6346,6 +6446,9 @@ export function revalueForeignExchangeIndAs109({
6346
6446
  * 6. Statutory Invariant:
6347
6447
  * - Always returns isAuthorizedToDisburse: false.
6348
6448
  */
6449
+ /**
6450
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6451
+ */
6349
6452
  export function evaluateSection194R({
6350
6453
  currentBenefitValueInr,
6351
6454
  cumulativePriorBenefitsInr = 0,
@@ -6512,6 +6615,9 @@ export function evaluateSection194R({
6512
6615
  * 6. Statutory Invariant:
6513
6616
  * - Always returns isAuthorizedToDisburse: false.
6514
6617
  */
6618
+ /**
6619
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6620
+ */
6515
6621
  export function evaluateSection194IB({
6516
6622
  monthlyRentInr,
6517
6623
  tenancyMonthsInYear = 1,
@@ -6636,6 +6742,9 @@ export function evaluateSection194IB({
6636
6742
  * 6. Statutory Invariant:
6637
6743
  * - Always returns isAuthorizedToDisburse: false.
6638
6744
  */
6745
+ /**
6746
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6747
+ */
6639
6748
  export function evaluateSection194M({
6640
6749
  currentPaymentAmountInr,
6641
6750
  cumulativePriorPaymentsInr = 0,
@@ -6766,6 +6875,9 @@ export function evaluateSection194M({
6766
6875
  * 6. Generates balanced double-entry vouchers to exact paisa.
6767
6876
  * 7. Enforces statutory invariant: isAuthorizedToDisburse: false.
6768
6877
  */
6878
+ /**
6879
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
6880
+ */
6769
6881
  export function calculateBusinessCombinationsIndAs103(params = {}) {
6770
6882
  const acquisitionId = params.acquisitionId || 'ACQ-01';
6771
6883
  const acquirerName = params.acquirerName || 'Acquiring Enterprise';
@@ -6978,6 +7090,9 @@ export function calculateBusinessCombinationsIndAs103(params = {}) {
6978
7090
  /**
6979
7091
  * Ind AS 115 / IFRS 15 / US GAAP ASC 606: 5-Step Revenue Recognition & Relative SSP Allocation Calculator.
6980
7092
  */
7093
+ /**
7094
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7095
+ */
6981
7096
  export function calculateRevenueAllocationIndAs115(params = {}) {
6982
7097
  const rawPrice = cleanNumericAmount(params.transactionPrice, { defaultValue: 0 });
6983
7098
  const transactionPrice = roundToPaisa(rawPrice);
@@ -7097,6 +7212,9 @@ export function calculateRevenueAllocationIndAs115(params = {}) {
7097
7212
  /**
7098
7213
  * Ind AS 116 / IFRS 16 / US GAAP ASC 842: Right-of-Use (ROU) Asset & Lease Liability Amortization Schedule.
7099
7214
  */
7215
+ /**
7216
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7217
+ */
7100
7218
  export function calculateLeaseAmortizationIndAs116(params = {}) {
7101
7219
  const monthlyPayment = roundToPaisa(cleanNumericAmount(params.monthlyPaymentInr, { defaultValue: 0 }));
7102
7220
  const termMonths = Math.max(0, Math.floor(cleanNumericAmount(params.leaseTermMonths, { defaultValue: 0 })));
@@ -7228,6 +7346,9 @@ export function calculateLeaseAmortizationIndAs116(params = {}) {
7228
7346
  /**
7229
7347
  * Ind AS 109 / IFRS 9 / US GAAP ASC 326: Expected Credit Loss (ECL) Impairment Calculator.
7230
7348
  */
7349
+ /**
7350
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7351
+ */
7231
7352
  export function calculateExpectedCreditLossIndAs109(params = {}) {
7232
7353
  const grossTotal = roundToPaisa(cleanNumericAmount(params.grossTradeReceivablesInr, { defaultValue: 0 }));
7233
7354
  const rawBuckets = Array.isArray(params.agingBuckets) ? params.agingBuckets : [];
@@ -7319,6 +7440,9 @@ export function calculateExpectedCreditLossIndAs109(params = {}) {
7319
7440
  /**
7320
7441
  * Ind AS 102 / IFRS 2 / US GAAP ASC 718: ESOP Graded Vesting Amortization Calculator.
7321
7442
  */
7443
+ /**
7444
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7445
+ */
7322
7446
  export function calculateEsopAmortizationIndAs102(params = {}) {
7323
7447
  const totalOptions = Math.max(0, Math.floor(cleanNumericAmount(params.totalOptionsGranted, { defaultValue: 0 })));
7324
7448
  const fairValuePerOption = roundToPaisa(cleanNumericAmount(params.grantDateFairValuePerOptionInr, { defaultValue: 0 }));
@@ -7424,6 +7548,9 @@ export function calculateEsopAmortizationIndAs102(params = {}) {
7424
7548
  /**
7425
7549
  * Ind AS 12 / IAS 12 / US GAAP ASC 740: Income Taxes & Deferred Tax (DTA / DTL) Calculator.
7426
7550
  */
7551
+ /**
7552
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7553
+ */
7427
7554
  export function calculateDeferredTaxIndAs12(params = {}) {
7428
7555
  const bookProfit = roundToPaisa(cleanNumericAmount(params.accountingProfitBeforeTaxInr, { defaultValue: 0 }));
7429
7556
  const taxRatePercent = cleanNumericAmount(params.enactedTaxRatePercent, { defaultValue: 25.168 });
@@ -7521,6 +7648,9 @@ export function calculateDeferredTaxIndAs12(params = {}) {
7521
7648
  /**
7522
7649
  * Ind AS 37 / IAS 37 / US GAAP ASC 450: Provisions, Contingent Liabilities & Contingent Assets Evaluator.
7523
7650
  */
7651
+ /**
7652
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7653
+ */
7524
7654
  export function evaluateProvisionsAndContingenciesIndAs37(params = {}) {
7525
7655
  const rawItems = Array.isArray(params.exposureItems) ? params.exposureItems : [];
7526
7656
  const asOfDate = params.reportingDate || new Date().toISOString().split('T')[0];
@@ -7611,6 +7741,9 @@ export function evaluateProvisionsAndContingenciesIndAs37(params = {}) {
7611
7741
  /**
7612
7742
  * Ind AS 21 / IAS 21 / US GAAP ASC 830: Foreign Currency Monetary Revaluation & FCTR Translation Calculator.
7613
7743
  */
7744
+ /**
7745
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7746
+ */
7614
7747
  export function calculateForeignCurrencyIndAs21(params = {}) {
7615
7748
  const asOfDate = params.asOfDate || new Date().toISOString().split('T')[0];
7616
7749
  const functionalCurrency = params.functionalCurrency || 'INR';
@@ -7831,6 +7964,9 @@ export function calculateForeignCurrencyIndAs21(params = {}) {
7831
7964
  /**
7832
7965
  * Ind AS 36 / IAS 36 / US GAAP ASC 360 & 350: Impairment of Assets & Cash-Generating Units (CGU).
7833
7966
  */
7967
+ /**
7968
+ * @deprecated Use evaluateStatutoryAst from '@mudraforge/statutory/usvm' for declarative AST evaluation. Legacy procedural functions are retained for backward compatibility throughout v2.x and will be sunset in v3.0.
7969
+ */
7834
7970
  export function calculateImpairmentIndAs36(params = {}) {
7835
7971
  const asOfDate = params.asOfDate || new Date().toISOString().split('T')[0];
7836
7972
  const cguId = params.cguId || 'CGU-01';
package/src/constants.js CHANGED
@@ -6,5 +6,5 @@
6
6
  * @license MIT
7
7
  */
8
8
 
9
- export const STATUTORY_CLIENT_VERSION = '2.12.1';
9
+ export const STATUTORY_CLIENT_VERSION = '2.14.0';
10
10
  export const DEFAULT_BASE_URL = 'https://api.mudraforge.in';
package/src/index.js CHANGED
@@ -14,6 +14,10 @@ import os from 'node:os';
14
14
  import crypto from 'node:crypto';
15
15
  import dns from 'node:dns';
16
16
  import { fileURLToPath } from 'node:url';
17
+ import {
18
+ evaluateStatutoryAst,
19
+ resolveTemporalCrystallization
20
+ } from './usvm/index.js';
17
21
  import {
18
22
  roundToPaisa,
19
23
  roundSection288B,
@@ -117,7 +121,7 @@ export { STATUTORY_CLIENT_VERSION, DEFAULT_BASE_URL };
117
121
  /**
118
122
  * Current verified Merkle root digest for the active OKF v0.2 corpus.
119
123
  */
120
- export const CURRENT_RELEASE_MERKLE_ROOT = 'sha256-b17c37b2724aece2a28beaab5720a777ae27e661ac51f1436be6eff3ca5ef64b';
124
+ export const CURRENT_RELEASE_MERKLE_ROOT = 'sha256-7ffc75e8611a9c966eea756dd544fdae9144e2318d3478633232bb876d05e364';
121
125
  export const MERKLE_ROOT_OKF_V2 = CURRENT_RELEASE_MERKLE_ROOT;
122
126
 
123
127
  /**
@@ -125,6 +129,7 @@ export const MERKLE_ROOT_OKF_V2 = CURRENT_RELEASE_MERKLE_ROOT;
125
129
  * Prevents unauthorized bundle substitution attacks even if an attacker controls the remote endpoint.
126
130
  */
127
131
  export const PINNED_RELEASE_ROOTS = new Set([
132
+ 'sha256-7ffc75e8611a9c966eea756dd544fdae9144e2318d3478633232bb876d05e364', // feat/usvm-declarative-architecture (46 Declarative ASTs across 5 canonical domains)
128
133
  'sha256-318004673a779499e82fd7316c7a6728f3bcdaf449bb4a557b6bd685b899dee3', // fix/public-okf-table1-sl-nos-and-temporal-thresholds (Section 393 Table 1 Sl Nos & 2025 Act thresholds)
129
134
  'sha256-b17c37b2724aece2a28beaab5720a777ae27e661ac51f1436be6eff3ca5ef64b', // feat/okf-accounting-domain-expansion (46 Sections across 5 Domains, 52 Circulars, 47 Forms)
130
135
  'sha256-a94baf08cbdea064a7b1bd25c1e1311821bf75e9b0d15cc8e0648339d487c79b', // feat/zoho-gstr2b-ap-reconciliation (38 Sections across 5 Domains, 44 Circulars, 39 Forms)
@@ -916,6 +921,13 @@ export function lookupLocalStatute(section, okfDir = DEFAULT_LOCAL_OKF_DIR) {
916
921
  forms: fs.existsSync(formsDir) ? fs.readdirSync(formsDir).filter(f => f.endsWith('.json') || f.endsWith('.md')) : []
917
922
  };
918
923
 
924
+ const astPath = path.join(parentDir, 'ast.json');
925
+ if (fs.existsSync(astPath)) {
926
+ try {
927
+ data.ast = JSON.parse(fs.readFileSync(astPath, 'utf8'));
928
+ } catch (_) {}
929
+ }
930
+
919
931
  return data;
920
932
  }
921
933
  return null;
@@ -3412,7 +3424,9 @@ export {
3412
3424
  calculateEclUtilizationInterest,
3413
3425
  calculatePortfolioEclUtilizationInterest,
3414
3426
  buildEvidenceProvenance,
3415
- runStatutoryWatchtower
3427
+ runStatutoryWatchtower,
3428
+ evaluateStatutoryAst,
3429
+ resolveTemporalCrystallization
3416
3430
  };
3417
3431
 
3418
3432