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.
- package/AGENTS.md +258 -0
- package/LICENSE +21 -0
- package/PRIVACY.md +38 -0
- package/README.md +234 -0
- package/agents.json +72 -0
- package/dist/bin/pigeongov.d.ts +2 -0
- package/dist/bin/pigeongov.js +4 -0
- package/dist/bin/pigeongov.js.map +1 -0
- package/dist/src/advisory/decision-support/contribution-optimizer.d.ts +36 -0
- package/dist/src/advisory/decision-support/contribution-optimizer.js +88 -0
- package/dist/src/advisory/decision-support/contribution-optimizer.js.map +1 -0
- package/dist/src/advisory/decision-support/deduction-optimizer.d.ts +31 -0
- package/dist/src/advisory/decision-support/deduction-optimizer.js +96 -0
- package/dist/src/advisory/decision-support/deduction-optimizer.js.map +1 -0
- package/dist/src/advisory/life-events/events.d.ts +4 -0
- package/dist/src/advisory/life-events/events.js +156 -0
- package/dist/src/advisory/life-events/events.js.map +1 -0
- package/dist/src/advisory/life-events/planner.d.ts +19 -0
- package/dist/src/advisory/life-events/planner.js +72 -0
- package/dist/src/advisory/life-events/planner.js.map +1 -0
- package/dist/src/advisory/screener/engine.d.ts +4 -0
- package/dist/src/advisory/screener/engine.js +368 -0
- package/dist/src/advisory/screener/engine.js.map +1 -0
- package/dist/src/advisory/screener/intake.d.ts +68 -0
- package/dist/src/advisory/screener/intake.js +93 -0
- package/dist/src/advisory/screener/intake.js.map +1 -0
- package/dist/src/analytics/stats.d.ts +18 -0
- package/dist/src/analytics/stats.js +158 -0
- package/dist/src/analytics/stats.js.map +1 -0
- package/dist/src/api/handlers/deadlines.d.ts +2 -0
- package/dist/src/api/handlers/deadlines.js +7 -0
- package/dist/src/api/handlers/deadlines.js.map +1 -0
- package/dist/src/api/handlers/openapi.d.ts +2 -0
- package/dist/src/api/handlers/openapi.js +7 -0
- package/dist/src/api/handlers/openapi.js.map +1 -0
- package/dist/src/api/handlers/workflows.d.ts +5 -0
- package/dist/src/api/handlers/workflows.js +73 -0
- package/dist/src/api/handlers/workflows.js.map +1 -0
- package/dist/src/api/index.d.ts +20 -0
- package/dist/src/api/index.js +70 -0
- package/dist/src/api/index.js.map +1 -0
- package/dist/src/api/openapi.d.ts +5 -0
- package/dist/src/api/openapi.js +384 -0
- package/dist/src/api/openapi.js.map +1 -0
- package/dist/src/api/router.d.ts +19 -0
- package/dist/src/api/router.js +57 -0
- package/dist/src/api/router.js.map +1 -0
- package/dist/src/cli/commands/completions.d.ts +2 -0
- package/dist/src/cli/commands/completions.js +396 -0
- package/dist/src/cli/commands/completions.js.map +1 -0
- package/dist/src/cli/commands/deadlines.d.ts +2 -0
- package/dist/src/cli/commands/deadlines.js +47 -0
- package/dist/src/cli/commands/deadlines.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +2 -0
- package/dist/src/cli/commands/doctor.js +50 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/drafts.d.ts +2 -0
- package/dist/src/cli/commands/drafts.js +75 -0
- package/dist/src/cli/commands/drafts.js.map +1 -0
- package/dist/src/cli/commands/extract.d.ts +2 -0
- package/dist/src/cli/commands/extract.js +17 -0
- package/dist/src/cli/commands/extract.js.map +1 -0
- package/dist/src/cli/commands/fees.d.ts +2 -0
- package/dist/src/cli/commands/fees.js +40 -0
- package/dist/src/cli/commands/fees.js.map +1 -0
- package/dist/src/cli/commands/fill.d.ts +25 -0
- package/dist/src/cli/commands/fill.js +354 -0
- package/dist/src/cli/commands/fill.js.map +1 -0
- package/dist/src/cli/commands/glossary.d.ts +2 -0
- package/dist/src/cli/commands/glossary.js +90 -0
- package/dist/src/cli/commands/glossary.js.map +1 -0
- package/dist/src/cli/commands/life-event.d.ts +2 -0
- package/dist/src/cli/commands/life-event.js +41 -0
- package/dist/src/cli/commands/life-event.js.map +1 -0
- package/dist/src/cli/commands/list.d.ts +2 -0
- package/dist/src/cli/commands/list.js +19 -0
- package/dist/src/cli/commands/list.js.map +1 -0
- package/dist/src/cli/commands/machine.d.ts +2 -0
- package/dist/src/cli/commands/machine.js +100 -0
- package/dist/src/cli/commands/machine.js.map +1 -0
- package/dist/src/cli/commands/merge.d.ts +2 -0
- package/dist/src/cli/commands/merge.js +24 -0
- package/dist/src/cli/commands/merge.js.map +1 -0
- package/dist/src/cli/commands/plugin.d.ts +2 -0
- package/dist/src/cli/commands/plugin.js +119 -0
- package/dist/src/cli/commands/plugin.js.map +1 -0
- package/dist/src/cli/commands/profile.d.ts +2 -0
- package/dist/src/cli/commands/profile.js +125 -0
- package/dist/src/cli/commands/profile.js.map +1 -0
- package/dist/src/cli/commands/review.d.ts +2 -0
- package/dist/src/cli/commands/review.js +25 -0
- package/dist/src/cli/commands/review.js.map +1 -0
- package/dist/src/cli/commands/scaffold.d.ts +2 -0
- package/dist/src/cli/commands/scaffold.js +304 -0
- package/dist/src/cli/commands/scaffold.js.map +1 -0
- package/dist/src/cli/commands/schemas.d.ts +2 -0
- package/dist/src/cli/commands/schemas.js +14 -0
- package/dist/src/cli/commands/schemas.js.map +1 -0
- package/dist/src/cli/commands/screen.d.ts +2 -0
- package/dist/src/cli/commands/screen.js +89 -0
- package/dist/src/cli/commands/screen.js.map +1 -0
- package/dist/src/cli/commands/serve.d.ts +2 -0
- package/dist/src/cli/commands/serve.js +46 -0
- package/dist/src/cli/commands/serve.js.map +1 -0
- package/dist/src/cli/commands/start.d.ts +2 -0
- package/dist/src/cli/commands/start.js +16 -0
- package/dist/src/cli/commands/start.js.map +1 -0
- package/dist/src/cli/commands/stats.d.ts +2 -0
- package/dist/src/cli/commands/stats.js +17 -0
- package/dist/src/cli/commands/stats.js.map +1 -0
- package/dist/src/cli/commands/testdata.d.ts +2 -0
- package/dist/src/cli/commands/testdata.js +60 -0
- package/dist/src/cli/commands/testdata.js.map +1 -0
- package/dist/src/cli/commands/tui.d.ts +2 -0
- package/dist/src/cli/commands/tui.js +26 -0
- package/dist/src/cli/commands/tui.js.map +1 -0
- package/dist/src/cli/commands/validate.d.ts +2 -0
- package/dist/src/cli/commands/validate.js +22 -0
- package/dist/src/cli/commands/validate.js.map +1 -0
- package/dist/src/cli/commands/vault.d.ts +2 -0
- package/dist/src/cli/commands/vault.js +73 -0
- package/dist/src/cli/commands/vault.js.map +1 -0
- package/dist/src/cli/commands/workflows.d.ts +2 -0
- package/dist/src/cli/commands/workflows.js +23 -0
- package/dist/src/cli/commands/workflows.js.map +1 -0
- package/dist/src/cli/display/review.d.ts +2 -0
- package/dist/src/cli/display/review.js +4 -0
- package/dist/src/cli/display/review.js.map +1 -0
- package/dist/src/cli/display/summary.d.ts +2 -0
- package/dist/src/cli/display/summary.js +19 -0
- package/dist/src/cli/display/summary.js.map +1 -0
- package/dist/src/cli/display/validation.d.ts +2 -0
- package/dist/src/cli/display/validation.js +16 -0
- package/dist/src/cli/display/validation.js.map +1 -0
- package/dist/src/cli/index.d.ts +1 -0
- package/dist/src/cli/index.js +83 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/output.d.ts +21 -0
- package/dist/src/cli/output.js +107 -0
- package/dist/src/cli/output.js.map +1 -0
- package/dist/src/cli/prompts/common.d.ts +21 -0
- package/dist/src/cli/prompts/common.js +53 -0
- package/dist/src/cli/prompts/common.js.map +1 -0
- package/dist/src/cli/prompts/credits.d.ts +3 -0
- package/dist/src/cli/prompts/credits.js +23 -0
- package/dist/src/cli/prompts/credits.js.map +1 -0
- package/dist/src/cli/prompts/deductions.d.ts +12 -0
- package/dist/src/cli/prompts/deductions.js +26 -0
- package/dist/src/cli/prompts/deductions.js.map +1 -0
- package/dist/src/cli/prompts/identity.d.ts +8 -0
- package/dist/src/cli/prompts/identity.js +36 -0
- package/dist/src/cli/prompts/identity.js.map +1 -0
- package/dist/src/cli/prompts/income.d.ts +15 -0
- package/dist/src/cli/prompts/income.js +61 -0
- package/dist/src/cli/prompts/income.js.map +1 -0
- package/dist/src/cli/prompts/workflow.d.ts +3 -0
- package/dist/src/cli/prompts/workflow.js +74 -0
- package/dist/src/cli/prompts/workflow.js.map +1 -0
- package/dist/src/cli/support.d.ts +53 -0
- package/dist/src/cli/support.js +80 -0
- package/dist/src/cli/support.js.map +1 -0
- package/dist/src/cli/tui.d.ts +22 -0
- package/dist/src/cli/tui.js +122 -0
- package/dist/src/cli/tui.js.map +1 -0
- package/dist/src/engine/audit-risk/scorer.d.ts +36 -0
- package/dist/src/engine/audit-risk/scorer.js +132 -0
- package/dist/src/engine/audit-risk/scorer.js.map +1 -0
- package/dist/src/engine/crypto/cost-basis.d.ts +19 -0
- package/dist/src/engine/crypto/cost-basis.js +115 -0
- package/dist/src/engine/crypto/cost-basis.js.map +1 -0
- package/dist/src/engine/crypto/transaction-parser.d.ts +36 -0
- package/dist/src/engine/crypto/transaction-parser.js +124 -0
- package/dist/src/engine/crypto/transaction-parser.js.map +1 -0
- package/dist/src/engine/crypto/wash-sale.d.ts +25 -0
- package/dist/src/engine/crypto/wash-sale.js +51 -0
- package/dist/src/engine/crypto/wash-sale.js.map +1 -0
- package/dist/src/engine/equity/espp.d.ts +41 -0
- package/dist/src/engine/equity/espp.js +90 -0
- package/dist/src/engine/equity/espp.js.map +1 -0
- package/dist/src/engine/equity/iso.d.ts +42 -0
- package/dist/src/engine/equity/iso.js +94 -0
- package/dist/src/engine/equity/iso.js.map +1 -0
- package/dist/src/engine/equity/nso.d.ts +35 -0
- package/dist/src/engine/equity/nso.js +63 -0
- package/dist/src/engine/equity/nso.js.map +1 -0
- package/dist/src/engine/equity/rsu.d.ts +33 -0
- package/dist/src/engine/equity/rsu.js +64 -0
- package/dist/src/engine/equity/rsu.js.map +1 -0
- package/dist/src/engine/field-mapper.d.ts +26 -0
- package/dist/src/engine/field-mapper.js +119 -0
- package/dist/src/engine/field-mapper.js.map +1 -0
- package/dist/src/engine/forms/core-1040.d.ts +2 -0
- package/dist/src/engine/forms/core-1040.js +124 -0
- package/dist/src/engine/forms/core-1040.js.map +1 -0
- package/dist/src/engine/forms/form-8949.d.ts +21 -0
- package/dist/src/engine/forms/form-8949.js +96 -0
- package/dist/src/engine/forms/form-8949.js.map +1 -0
- package/dist/src/engine/forms/index.d.ts +7 -0
- package/dist/src/engine/forms/index.js +6 -0
- package/dist/src/engine/forms/index.js.map +1 -0
- package/dist/src/engine/forms/schedule-b.d.ts +15 -0
- package/dist/src/engine/forms/schedule-b.js +78 -0
- package/dist/src/engine/forms/schedule-b.js.map +1 -0
- package/dist/src/engine/forms/schedule-d.d.ts +9 -0
- package/dist/src/engine/forms/schedule-d.js +86 -0
- package/dist/src/engine/forms/schedule-d.js.map +1 -0
- package/dist/src/engine/fpl.d.ts +70 -0
- package/dist/src/engine/fpl.js +127 -0
- package/dist/src/engine/fpl.js.map +1 -0
- package/dist/src/engine/gig/home-office.d.ts +34 -0
- package/dist/src/engine/gig/home-office.js +53 -0
- package/dist/src/engine/gig/home-office.js.map +1 -0
- package/dist/src/engine/gig/mileage.d.ts +30 -0
- package/dist/src/engine/gig/mileage.js +45 -0
- package/dist/src/engine/gig/mileage.js.map +1 -0
- package/dist/src/engine/gig/multi-1099.d.ts +19 -0
- package/dist/src/engine/gig/multi-1099.js +28 -0
- package/dist/src/engine/gig/multi-1099.js.map +1 -0
- package/dist/src/engine/multiyear/carryforward.d.ts +31 -0
- package/dist/src/engine/multiyear/carryforward.js +77 -0
- package/dist/src/engine/multiyear/carryforward.js.map +1 -0
- package/dist/src/engine/multiyear/compare.d.ts +25 -0
- package/dist/src/engine/multiyear/compare.js +94 -0
- package/dist/src/engine/multiyear/compare.js.map +1 -0
- package/dist/src/engine/multiyear/import.d.ts +23 -0
- package/dist/src/engine/multiyear/import.js +193 -0
- package/dist/src/engine/multiyear/import.js.map +1 -0
- package/dist/src/engine/optimizer/filing-status.d.ts +29 -0
- package/dist/src/engine/optimizer/filing-status.js +66 -0
- package/dist/src/engine/optimizer/filing-status.js.map +1 -0
- package/dist/src/engine/orchestrator.d.ts +14 -0
- package/dist/src/engine/orchestrator.js +135 -0
- package/dist/src/engine/orchestrator.js.map +1 -0
- package/dist/src/engine/scenarios/whatif.d.ts +34 -0
- package/dist/src/engine/scenarios/whatif.js +70 -0
- package/dist/src/engine/scenarios/whatif.js.map +1 -0
- package/dist/src/engine/state/ca/calculator.d.ts +3 -0
- package/dist/src/engine/state/ca/calculator.js +107 -0
- package/dist/src/engine/state/ca/calculator.js.map +1 -0
- package/dist/src/engine/state/common.d.ts +39 -0
- package/dist/src/engine/state/common.js +115 -0
- package/dist/src/engine/state/common.js.map +1 -0
- package/dist/src/engine/state/ga/calculator.d.ts +3 -0
- package/dist/src/engine/state/ga/calculator.js +82 -0
- package/dist/src/engine/state/ga/calculator.js.map +1 -0
- package/dist/src/engine/state/il/calculator.d.ts +3 -0
- package/dist/src/engine/state/il/calculator.js +49 -0
- package/dist/src/engine/state/il/calculator.js.map +1 -0
- package/dist/src/engine/state/mi/calculator.d.ts +3 -0
- package/dist/src/engine/state/mi/calculator.js +60 -0
- package/dist/src/engine/state/mi/calculator.js.map +1 -0
- package/dist/src/engine/state/nc/calculator.d.ts +3 -0
- package/dist/src/engine/state/nc/calculator.js +54 -0
- package/dist/src/engine/state/nc/calculator.js.map +1 -0
- package/dist/src/engine/state/nj/calculator.d.ts +3 -0
- package/dist/src/engine/state/nj/calculator.js +90 -0
- package/dist/src/engine/state/nj/calculator.js.map +1 -0
- package/dist/src/engine/state/ny/calculator.d.ts +3 -0
- package/dist/src/engine/state/ny/calculator.js +103 -0
- package/dist/src/engine/state/ny/calculator.js.map +1 -0
- package/dist/src/engine/state/oh/calculator.d.ts +3 -0
- package/dist/src/engine/state/oh/calculator.js +79 -0
- package/dist/src/engine/state/oh/calculator.js.map +1 -0
- package/dist/src/engine/state/pa/calculator.d.ts +3 -0
- package/dist/src/engine/state/pa/calculator.js +58 -0
- package/dist/src/engine/state/pa/calculator.js.map +1 -0
- package/dist/src/engine/state/registry.d.ts +9 -0
- package/dist/src/engine/state/registry.js +67 -0
- package/dist/src/engine/state/registry.js.map +1 -0
- package/dist/src/engine/state/types.d.ts +57 -0
- package/dist/src/engine/state/types.js +2 -0
- package/dist/src/engine/state/types.js.map +1 -0
- package/dist/src/engine/state/va/calculator.d.ts +3 -0
- package/dist/src/engine/state/va/calculator.js +76 -0
- package/dist/src/engine/state/va/calculator.js.map +1 -0
- package/dist/src/engine/suggestions/missed-deductions.d.ts +43 -0
- package/dist/src/engine/suggestions/missed-deductions.js +128 -0
- package/dist/src/engine/suggestions/missed-deductions.js.map +1 -0
- package/dist/src/engine/tax-calculator.d.ts +55 -0
- package/dist/src/engine/tax-calculator.js +156 -0
- package/dist/src/engine/tax-calculator.js.map +1 -0
- package/dist/src/engine/tax-constants-2025.d.ts +56 -0
- package/dist/src/engine/tax-constants-2025.js +138 -0
- package/dist/src/engine/tax-constants-2025.js.map +1 -0
- package/dist/src/engine/types.d.ts +77 -0
- package/dist/src/engine/types.js +2 -0
- package/dist/src/engine/types.js.map +1 -0
- package/dist/src/engine/va-math.d.ts +24 -0
- package/dist/src/engine/va-math.js +90 -0
- package/dist/src/engine/va-math.js.map +1 -0
- package/dist/src/engine/validator.d.ts +7 -0
- package/dist/src/engine/validator.js +108 -0
- package/dist/src/engine/validator.js.map +1 -0
- package/dist/src/glossary/entries/healthcare.d.ts +2 -0
- package/dist/src/glossary/entries/healthcare.js +78 -0
- package/dist/src/glossary/entries/healthcare.js.map +1 -0
- package/dist/src/glossary/entries/immigration.d.ts +2 -0
- package/dist/src/glossary/entries/immigration.js +112 -0
- package/dist/src/glossary/entries/immigration.js.map +1 -0
- package/dist/src/glossary/entries/tax.d.ts +2 -0
- package/dist/src/glossary/entries/tax.js +149 -0
- package/dist/src/glossary/entries/tax.js.map +1 -0
- package/dist/src/glossary/entries/unemployment.d.ts +2 -0
- package/dist/src/glossary/entries/unemployment.js +52 -0
- package/dist/src/glossary/entries/unemployment.js.map +1 -0
- package/dist/src/glossary/index.d.ts +19 -0
- package/dist/src/glossary/index.js +39 -0
- package/dist/src/glossary/index.js.map +1 -0
- package/dist/src/i18n/index.d.ts +21 -0
- package/dist/src/i18n/index.js +92 -0
- package/dist/src/i18n/index.js.map +1 -0
- package/dist/src/mcp/result.d.ts +3 -0
- package/dist/src/mcp/result.js +7 -0
- package/dist/src/mcp/result.js.map +1 -0
- package/dist/src/mcp/return-bundle.d.ts +19 -0
- package/dist/src/mcp/return-bundle.js +49 -0
- package/dist/src/mcp/return-bundle.js.map +1 -0
- package/dist/src/mcp/shared.d.ts +49102 -0
- package/dist/src/mcp/shared.js +354 -0
- package/dist/src/mcp/shared.js.map +1 -0
- package/dist/src/mcp/tools/build-packet.d.ts +7 -0
- package/dist/src/mcp/tools/build-packet.js +23 -0
- package/dist/src/mcp/tools/build-packet.js.map +1 -0
- package/dist/src/mcp/tools/calculate-tax.d.ts +40 -0
- package/dist/src/mcp/tools/calculate-tax.js +17 -0
- package/dist/src/mcp/tools/calculate-tax.js.map +1 -0
- package/dist/src/mcp/tools/deadlines.d.ts +7 -0
- package/dist/src/mcp/tools/deadlines.js +23 -0
- package/dist/src/mcp/tools/deadlines.js.map +1 -0
- package/dist/src/mcp/tools/describe-form.d.ts +14 -0
- package/dist/src/mcp/tools/describe-form.js +23 -0
- package/dist/src/mcp/tools/describe-form.js.map +1 -0
- package/dist/src/mcp/tools/describe-workflow.d.ts +6 -0
- package/dist/src/mcp/tools/describe-workflow.js +16 -0
- package/dist/src/mcp/tools/describe-workflow.js.map +1 -0
- package/dist/src/mcp/tools/explain-flag.d.ts +7 -0
- package/dist/src/mcp/tools/explain-flag.js +19 -0
- package/dist/src/mcp/tools/explain-flag.js.map +1 -0
- package/dist/src/mcp/tools/extract-document.d.ts +13 -0
- package/dist/src/mcp/tools/extract-document.js +20 -0
- package/dist/src/mcp/tools/extract-document.js.map +1 -0
- package/dist/src/mcp/tools/fees.d.ts +7 -0
- package/dist/src/mcp/tools/fees.js +24 -0
- package/dist/src/mcp/tools/fees.js.map +1 -0
- package/dist/src/mcp/tools/fill-form.d.ts +56 -0
- package/dist/src/mcp/tools/fill-form.js +47 -0
- package/dist/src/mcp/tools/fill-form.js.map +1 -0
- package/dist/src/mcp/tools/fill-workflow.d.ts +7 -0
- package/dist/src/mcp/tools/fill-workflow.js +24 -0
- package/dist/src/mcp/tools/fill-workflow.js.map +1 -0
- package/dist/src/mcp/tools/glossary.d.ts +8 -0
- package/dist/src/mcp/tools/glossary.js +54 -0
- package/dist/src/mcp/tools/glossary.js.map +1 -0
- package/dist/src/mcp/tools/list-forms.d.ts +6 -0
- package/dist/src/mcp/tools/list-forms.js +15 -0
- package/dist/src/mcp/tools/list-forms.js.map +1 -0
- package/dist/src/mcp/tools/list-workflows.d.ts +6 -0
- package/dist/src/mcp/tools/list-workflows.js +16 -0
- package/dist/src/mcp/tools/list-workflows.js.map +1 -0
- package/dist/src/mcp/tools/plan-life-event.d.ts +59 -0
- package/dist/src/mcp/tools/plan-life-event.js +41 -0
- package/dist/src/mcp/tools/plan-life-event.js.map +1 -0
- package/dist/src/mcp/tools/review-form.d.ts +40 -0
- package/dist/src/mcp/tools/review-form.js +26 -0
- package/dist/src/mcp/tools/review-form.js.map +1 -0
- package/dist/src/mcp/tools/review-workflow.d.ts +7 -0
- package/dist/src/mcp/tools/review-workflow.js +27 -0
- package/dist/src/mcp/tools/review-workflow.js.map +1 -0
- package/dist/src/mcp/tools/screen-eligibility.d.ts +53 -0
- package/dist/src/mcp/tools/screen-eligibility.js +44 -0
- package/dist/src/mcp/tools/screen-eligibility.js.map +1 -0
- package/dist/src/mcp/tools/start-workflow.d.ts +6 -0
- package/dist/src/mcp/tools/start-workflow.js +17 -0
- package/dist/src/mcp/tools/start-workflow.js.map +1 -0
- package/dist/src/mcp/tools/validate-form.d.ts +48 -0
- package/dist/src/mcp/tools/validate-form.js +30 -0
- package/dist/src/mcp/tools/validate-form.js.map +1 -0
- package/dist/src/mcp/tools/validate-workflow.d.ts +7 -0
- package/dist/src/mcp/tools/validate-workflow.js +24 -0
- package/dist/src/mcp/tools/validate-workflow.js.map +1 -0
- package/dist/src/pdf/batch.d.ts +8 -0
- package/dist/src/pdf/batch.js +15 -0
- package/dist/src/pdf/batch.js.map +1 -0
- package/dist/src/pdf/merge.d.ts +10 -0
- package/dist/src/pdf/merge.js +62 -0
- package/dist/src/pdf/merge.js.map +1 -0
- package/dist/src/pdf/ocr.d.ts +22 -0
- package/dist/src/pdf/ocr.js +52 -0
- package/dist/src/pdf/ocr.js.map +1 -0
- package/dist/src/pdf/reader.d.ts +2 -0
- package/dist/src/pdf/reader.js +354 -0
- package/dist/src/pdf/reader.js.map +1 -0
- package/dist/src/pdf/shared.d.ts +89 -0
- package/dist/src/pdf/shared.js +137 -0
- package/dist/src/pdf/shared.js.map +1 -0
- package/dist/src/pdf/writer.d.ts +7 -0
- package/dist/src/pdf/writer.js +311 -0
- package/dist/src/pdf/writer.js.map +1 -0
- package/dist/src/plugins/loader.d.ts +15 -0
- package/dist/src/plugins/loader.js +86 -0
- package/dist/src/plugins/loader.js.map +1 -0
- package/dist/src/plugins/sandbox.d.ts +14 -0
- package/dist/src/plugins/sandbox.js +88 -0
- package/dist/src/plugins/sandbox.js.map +1 -0
- package/dist/src/plugins/types.d.ts +17 -0
- package/dist/src/plugins/types.js +13 -0
- package/dist/src/plugins/types.js.map +1 -0
- package/dist/src/schemas/2025/f1040.d.ts +127 -0
- package/dist/src/schemas/2025/f1040.js +104 -0
- package/dist/src/schemas/2025/f1040.js.map +1 -0
- package/dist/src/schemas/2025/f1099-int.d.ts +53 -0
- package/dist/src/schemas/2025/f1099-int.js +51 -0
- package/dist/src/schemas/2025/f1099-int.js.map +1 -0
- package/dist/src/schemas/2025/f1099-nec.d.ts +47 -0
- package/dist/src/schemas/2025/f1099-nec.js +45 -0
- package/dist/src/schemas/2025/f1099-nec.js.map +1 -0
- package/dist/src/schemas/2025/form-8949.d.ts +46 -0
- package/dist/src/schemas/2025/form-8949.js +71 -0
- package/dist/src/schemas/2025/form-8949.js.map +1 -0
- package/dist/src/schemas/2025/index.d.ts +1004 -0
- package/dist/src/schemas/2025/index.js +60 -0
- package/dist/src/schemas/2025/index.js.map +1 -0
- package/dist/src/schemas/2025/schedule-1.d.ts +44 -0
- package/dist/src/schemas/2025/schedule-1.js +56 -0
- package/dist/src/schemas/2025/schedule-1.js.map +1 -0
- package/dist/src/schemas/2025/schedule-b.d.ts +32 -0
- package/dist/src/schemas/2025/schedule-b.js +53 -0
- package/dist/src/schemas/2025/schedule-b.js.map +1 -0
- package/dist/src/schemas/2025/schedule-c.d.ts +58 -0
- package/dist/src/schemas/2025/schedule-c.js +46 -0
- package/dist/src/schemas/2025/schedule-c.js.map +1 -0
- package/dist/src/schemas/2025/schedule-d.d.ts +36 -0
- package/dist/src/schemas/2025/schedule-d.js +52 -0
- package/dist/src/schemas/2025/schedule-d.js.map +1 -0
- package/dist/src/schemas/2025/shared.d.ts +98 -0
- package/dist/src/schemas/2025/shared.js +161 -0
- package/dist/src/schemas/2025/shared.js.map +1 -0
- package/dist/src/schemas/2025/w2.d.ts +57 -0
- package/dist/src/schemas/2025/w2.js +62 -0
- package/dist/src/schemas/2025/w2.js.map +1 -0
- package/dist/src/storage/drafts.d.ts +25 -0
- package/dist/src/storage/drafts.js +117 -0
- package/dist/src/storage/drafts.js.map +1 -0
- package/dist/src/storage/paths.d.ts +15 -0
- package/dist/src/storage/paths.js +33 -0
- package/dist/src/storage/paths.js.map +1 -0
- package/dist/src/storage/profile.d.ts +17 -0
- package/dist/src/storage/profile.js +59 -0
- package/dist/src/storage/profile.js.map +1 -0
- package/dist/src/storage/vault.d.ts +38 -0
- package/dist/src/storage/vault.js +187 -0
- package/dist/src/storage/vault.js.map +1 -0
- package/dist/src/testing/synthetic.d.ts +13 -0
- package/dist/src/testing/synthetic.js +164 -0
- package/dist/src/testing/synthetic.js.map +1 -0
- package/dist/src/types.d.ts +362 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/workflows/deadlines.d.ts +13 -0
- package/dist/src/workflows/deadlines.js +88 -0
- package/dist/src/workflows/deadlines.js.map +1 -0
- package/dist/src/workflows/domains/benefits.d.ts +409 -0
- package/dist/src/workflows/domains/benefits.js +744 -0
- package/dist/src/workflows/domains/benefits.js.map +1 -0
- package/dist/src/workflows/domains/business.d.ts +65 -0
- package/dist/src/workflows/domains/business.js +76 -0
- package/dist/src/workflows/domains/business.js.map +1 -0
- package/dist/src/workflows/domains/education.d.ts +251 -0
- package/dist/src/workflows/domains/education.js +504 -0
- package/dist/src/workflows/domains/education.js.map +1 -0
- package/dist/src/workflows/domains/estate.d.ts +217 -0
- package/dist/src/workflows/domains/estate.js +407 -0
- package/dist/src/workflows/domains/estate.js.map +1 -0
- package/dist/src/workflows/domains/healthcare-ext.d.ts +88 -0
- package/dist/src/workflows/domains/healthcare-ext.js +150 -0
- package/dist/src/workflows/domains/healthcare-ext.js.map +1 -0
- package/dist/src/workflows/domains/healthcare.d.ts +92 -0
- package/dist/src/workflows/domains/healthcare.js +126 -0
- package/dist/src/workflows/domains/healthcare.js.map +1 -0
- package/dist/src/workflows/domains/identity-domain.d.ts +291 -0
- package/dist/src/workflows/domains/identity-domain.js +541 -0
- package/dist/src/workflows/domains/identity-domain.js.map +1 -0
- package/dist/src/workflows/domains/immigration-ext.d.ts +282 -0
- package/dist/src/workflows/domains/immigration-ext.js +590 -0
- package/dist/src/workflows/domains/immigration-ext.js.map +1 -0
- package/dist/src/workflows/domains/immigration.d.ts +121 -0
- package/dist/src/workflows/domains/immigration.js +152 -0
- package/dist/src/workflows/domains/immigration.js.map +1 -0
- package/dist/src/workflows/domains/legal.d.ts +235 -0
- package/dist/src/workflows/domains/legal.js +380 -0
- package/dist/src/workflows/domains/legal.js.map +1 -0
- package/dist/src/workflows/domains/permits.d.ts +65 -0
- package/dist/src/workflows/domains/permits.js +74 -0
- package/dist/src/workflows/domains/permits.js.map +1 -0
- package/dist/src/workflows/domains/retirement.d.ts +59 -0
- package/dist/src/workflows/domains/retirement.js +155 -0
- package/dist/src/workflows/domains/retirement.js.map +1 -0
- package/dist/src/workflows/domains/tax.d.ts +133 -0
- package/dist/src/workflows/domains/tax.js +187 -0
- package/dist/src/workflows/domains/tax.js.map +1 -0
- package/dist/src/workflows/domains/unemployment.d.ts +105 -0
- package/dist/src/workflows/domains/unemployment.js +122 -0
- package/dist/src/workflows/domains/unemployment.js.map +1 -0
- package/dist/src/workflows/domains/veterans.d.ts +189 -0
- package/dist/src/workflows/domains/veterans.js +380 -0
- package/dist/src/workflows/domains/veterans.js.map +1 -0
- package/dist/src/workflows/fees.d.ts +15 -0
- package/dist/src/workflows/fees.js +93 -0
- package/dist/src/workflows/fees.js.map +1 -0
- package/dist/src/workflows/helpers.d.ts +8 -0
- package/dist/src/workflows/helpers.js +66 -0
- package/dist/src/workflows/helpers.js.map +1 -0
- package/dist/src/workflows/io.d.ts +3 -0
- package/dist/src/workflows/io.js +38 -0
- package/dist/src/workflows/io.js.map +1 -0
- package/dist/src/workflows/registry.d.ts +51355 -0
- package/dist/src/workflows/registry.js +140 -0
- package/dist/src/workflows/registry.js.map +1 -0
- package/dist/src/workflows/schemas/benefits.d.ts +78 -0
- package/dist/src/workflows/schemas/benefits.js +91 -0
- package/dist/src/workflows/schemas/benefits.js.map +1 -0
- package/dist/src/workflows/schemas/common.d.ts +27 -0
- package/dist/src/workflows/schemas/common.js +28 -0
- package/dist/src/workflows/schemas/common.js.map +1 -0
- package/dist/src/workflows/schemas/education.d.ts +70 -0
- package/dist/src/workflows/schemas/education.js +85 -0
- package/dist/src/workflows/schemas/education.js.map +1 -0
- package/dist/src/workflows/schemas/estate.d.ts +64 -0
- package/dist/src/workflows/schemas/estate.js +85 -0
- package/dist/src/workflows/schemas/estate.js.map +1 -0
- package/dist/src/workflows/schemas/healthcare-ext.d.ts +15 -0
- package/dist/src/workflows/schemas/healthcare-ext.js +17 -0
- package/dist/src/workflows/schemas/healthcare-ext.js.map +1 -0
- package/dist/src/workflows/schemas/healthcare.d.ts +33 -0
- package/dist/src/workflows/schemas/healthcare.js +20 -0
- package/dist/src/workflows/schemas/healthcare.js.map +1 -0
- package/dist/src/workflows/schemas/identity-domain.d.ts +64 -0
- package/dist/src/workflows/schemas/identity-domain.js +87 -0
- package/dist/src/workflows/schemas/identity-domain.js.map +1 -0
- package/dist/src/workflows/schemas/immigration-ext.d.ts +63 -0
- package/dist/src/workflows/schemas/immigration-ext.js +58 -0
- package/dist/src/workflows/schemas/immigration-ext.js.map +1 -0
- package/dist/src/workflows/schemas/immigration.d.ts +48 -0
- package/dist/src/workflows/schemas/immigration.js +27 -0
- package/dist/src/workflows/schemas/immigration.js.map +1 -0
- package/dist/src/workflows/schemas/legal.d.ts +45 -0
- package/dist/src/workflows/schemas/legal.js +45 -0
- package/dist/src/workflows/schemas/legal.js.map +1 -0
- package/dist/src/workflows/schemas/planning.d.ts +23 -0
- package/dist/src/workflows/schemas/planning.js +15 -0
- package/dist/src/workflows/schemas/planning.js.map +1 -0
- package/dist/src/workflows/schemas/retirement.d.ts +14 -0
- package/dist/src/workflows/schemas/retirement.js +22 -0
- package/dist/src/workflows/schemas/retirement.js.map +1 -0
- package/dist/src/workflows/schemas/tax.d.ts +58 -0
- package/dist/src/workflows/schemas/tax.js +51 -0
- package/dist/src/workflows/schemas/tax.js.map +1 -0
- package/dist/src/workflows/schemas/unemployment.d.ts +33 -0
- package/dist/src/workflows/schemas/unemployment.js +19 -0
- package/dist/src/workflows/schemas/unemployment.js.map +1 -0
- package/dist/src/workflows/schemas/veterans.d.ts +47 -0
- package/dist/src/workflows/schemas/veterans.js +51 -0
- package/dist/src/workflows/schemas/veterans.js.map +1 -0
- package/dist/src/workflows/types.d.ts +9 -0
- package/dist/src/workflows/types.js +2 -0
- package/dist/src/workflows/types.js.map +1 -0
- package/dist/xmcp.config.d.ts +3 -0
- package/dist/xmcp.config.js +29 -0
- package/dist/xmcp.config.js.map +1 -0
- package/llms.txt +48 -0
- package/package.json +82 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { WorkflowBundle } from "../../types.js";
|
|
2
|
+
import type { MedicareEnrollmentInput } from "../schemas/healthcare-ext.js";
|
|
3
|
+
declare function buildMedicareEnrollmentBundle(input: MedicareEnrollmentInput): WorkflowBundle;
|
|
4
|
+
export declare const healthcareExtWorkflows: {
|
|
5
|
+
readonly "healthcare/medicare-enrollment": {
|
|
6
|
+
summary: {
|
|
7
|
+
id: string;
|
|
8
|
+
domain: "healthcare";
|
|
9
|
+
title: string;
|
|
10
|
+
summary: string;
|
|
11
|
+
status: "active";
|
|
12
|
+
audience: "individual";
|
|
13
|
+
tags: string[];
|
|
14
|
+
};
|
|
15
|
+
inputSchema: import("zod").ZodObject<{
|
|
16
|
+
applicantName: import("zod").ZodString;
|
|
17
|
+
dob: import("zod").ZodString;
|
|
18
|
+
age: import("zod").ZodCoercedNumber<unknown>;
|
|
19
|
+
hasPartA: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
20
|
+
hasPartB: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
21
|
+
currentCoverage: import("zod").ZodDefault<import("zod").ZodString>;
|
|
22
|
+
annualIncome: import("zod").ZodCoercedNumber<unknown>;
|
|
23
|
+
filingStatus: import("zod").ZodEnum<{
|
|
24
|
+
single: "single";
|
|
25
|
+
married_filing_jointly: "married_filing_jointly";
|
|
26
|
+
}>;
|
|
27
|
+
}, import("zod/v4/core").$strict>;
|
|
28
|
+
starterData: {
|
|
29
|
+
applicantName: string;
|
|
30
|
+
dob: string;
|
|
31
|
+
age: number;
|
|
32
|
+
hasPartA: false;
|
|
33
|
+
hasPartB: false;
|
|
34
|
+
currentCoverage: string;
|
|
35
|
+
annualIncome: number;
|
|
36
|
+
filingStatus: "single";
|
|
37
|
+
};
|
|
38
|
+
sections: ({
|
|
39
|
+
id: string;
|
|
40
|
+
title: string;
|
|
41
|
+
fields: ({
|
|
42
|
+
key: string;
|
|
43
|
+
label: string;
|
|
44
|
+
type: "text";
|
|
45
|
+
} | {
|
|
46
|
+
key: string;
|
|
47
|
+
label: string;
|
|
48
|
+
type: "date";
|
|
49
|
+
} | {
|
|
50
|
+
key: string;
|
|
51
|
+
label: string;
|
|
52
|
+
type: "number";
|
|
53
|
+
} | {
|
|
54
|
+
key: string;
|
|
55
|
+
label: string;
|
|
56
|
+
type: "confirm";
|
|
57
|
+
})[];
|
|
58
|
+
} | {
|
|
59
|
+
id: string;
|
|
60
|
+
title: string;
|
|
61
|
+
fields: {
|
|
62
|
+
key: string;
|
|
63
|
+
label: string;
|
|
64
|
+
type: "text";
|
|
65
|
+
helpText: string;
|
|
66
|
+
}[];
|
|
67
|
+
} | {
|
|
68
|
+
id: string;
|
|
69
|
+
title: string;
|
|
70
|
+
fields: ({
|
|
71
|
+
key: string;
|
|
72
|
+
label: string;
|
|
73
|
+
type: "currency";
|
|
74
|
+
options?: never;
|
|
75
|
+
} | {
|
|
76
|
+
key: string;
|
|
77
|
+
label: string;
|
|
78
|
+
type: "select";
|
|
79
|
+
options: {
|
|
80
|
+
label: string;
|
|
81
|
+
value: string;
|
|
82
|
+
}[];
|
|
83
|
+
})[];
|
|
84
|
+
})[];
|
|
85
|
+
buildBundle: typeof buildMedicareEnrollmentBundle;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { buildEvidenceItem, buildGenericSummary, currency, genericArtifacts, makeCheck, makeFlag, } from "../helpers.js";
|
|
2
|
+
import { medicareEnrollmentInputSchema } from "../schemas/healthcare-ext.js";
|
|
3
|
+
const IRMAA_BRACKETS = [
|
|
4
|
+
{ singleThreshold: 103_000, mfjThreshold: 206_000, surcharge: 0 },
|
|
5
|
+
{ singleThreshold: 129_000, mfjThreshold: 258_000, surcharge: 70.90 },
|
|
6
|
+
{ singleThreshold: 161_000, mfjThreshold: 322_000, surcharge: 176.40 },
|
|
7
|
+
{ singleThreshold: 193_000, mfjThreshold: 386_000, surcharge: 281.90 },
|
|
8
|
+
{ singleThreshold: 500_000, mfjThreshold: 750_000, surcharge: 387.40 },
|
|
9
|
+
// Above $500k single / $750k MFJ
|
|
10
|
+
{ singleThreshold: Infinity, mfjThreshold: Infinity, surcharge: 419.30 },
|
|
11
|
+
];
|
|
12
|
+
const PART_B_BASE_PREMIUM_2025 = 185;
|
|
13
|
+
function calculateIrmaa(income, filingStatus) {
|
|
14
|
+
for (const bracket of IRMAA_BRACKETS) {
|
|
15
|
+
const threshold = filingStatus === "single" ? bracket.singleThreshold : bracket.mfjThreshold;
|
|
16
|
+
if (income <= threshold) {
|
|
17
|
+
return bracket.surcharge;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Above highest bracket
|
|
21
|
+
return IRMAA_BRACKETS[IRMAA_BRACKETS.length - 1].surcharge;
|
|
22
|
+
}
|
|
23
|
+
function buildMedicareEnrollmentBundle(input) {
|
|
24
|
+
const eligible = input.age >= 65;
|
|
25
|
+
const irmaaSurcharge = calculateIrmaa(input.annualIncome, input.filingStatus);
|
|
26
|
+
const monthlyPremium = PART_B_BASE_PREMIUM_2025 + irmaaSurcharge;
|
|
27
|
+
// Late enrollment penalty: 10% per 12-month period without coverage after initial enrollment
|
|
28
|
+
// Only applies if age > 65 and no Part B and no current creditable coverage
|
|
29
|
+
const hasCredibleCoverage = input.currentCoverage !== "none";
|
|
30
|
+
const yearsLate = eligible && !input.hasPartB && !hasCredibleCoverage
|
|
31
|
+
? Math.max(0, input.age - 65)
|
|
32
|
+
: 0;
|
|
33
|
+
const lateEnrollmentPenalty = yearsLate * 0.10 * PART_B_BASE_PREMIUM_2025;
|
|
34
|
+
const totalMonthlyWithPenalty = monthlyPremium + lateEnrollmentPenalty;
|
|
35
|
+
const evidence = [
|
|
36
|
+
buildEvidenceItem("ss-statement", "Social Security statement", true, eligible),
|
|
37
|
+
buildEvidenceItem("current-insurance", "Current insurance information", true, hasCredibleCoverage),
|
|
38
|
+
];
|
|
39
|
+
const flags = [];
|
|
40
|
+
if (yearsLate > 0) {
|
|
41
|
+
flags.push(makeFlag("lateEnrollment", "warning", `Late enrollment penalty: ${currency(lateEnrollmentPenalty)}/month (${yearsLate} year(s) late at 10% penalty per year). This penalty is permanent.`));
|
|
42
|
+
}
|
|
43
|
+
if (irmaaSurcharge > 0) {
|
|
44
|
+
flags.push(makeFlag("irmaa", "review", `IRMAA surcharge of ${currency(irmaaSurcharge)}/month applies based on income of ${currency(input.annualIncome)}.`));
|
|
45
|
+
}
|
|
46
|
+
if (!eligible) {
|
|
47
|
+
flags.push(makeFlag("age", "review", `Age ${input.age} — not yet eligible for Medicare (65+). Consider marketplace or employer coverage.`));
|
|
48
|
+
}
|
|
49
|
+
const checks = [
|
|
50
|
+
makeCheck("age-eligible", "Age 65 or older", eligible, "warning", "Medicare eligibility begins at age 65."),
|
|
51
|
+
makeCheck("part-b-enrolled", "Part B enrollment", input.hasPartB, "warning", "Part B covers outpatient care. Late enrollment incurs permanent penalties."),
|
|
52
|
+
];
|
|
53
|
+
return {
|
|
54
|
+
workflowId: "healthcare/medicare-enrollment",
|
|
55
|
+
domain: "healthcare",
|
|
56
|
+
title: "Medicare enrollment planner",
|
|
57
|
+
summary: "Medicare eligibility assessment with IRMAA calculation and late enrollment penalty estimation. PigeonGov does not enroll in Medicare.",
|
|
58
|
+
applicant: undefined,
|
|
59
|
+
household: [],
|
|
60
|
+
evidence,
|
|
61
|
+
answers: input,
|
|
62
|
+
derived: {
|
|
63
|
+
eligible,
|
|
64
|
+
partBBasePremium: PART_B_BASE_PREMIUM_2025,
|
|
65
|
+
irmaaSurcharge,
|
|
66
|
+
monthlyPremium,
|
|
67
|
+
yearsLate,
|
|
68
|
+
lateEnrollmentPenalty,
|
|
69
|
+
totalMonthlyWithPenalty,
|
|
70
|
+
hasCredibleCoverage,
|
|
71
|
+
},
|
|
72
|
+
validation: { checks, flaggedFields: flags },
|
|
73
|
+
review: buildGenericSummary("Medicare enrollment", eligible ? `eligible — ${currency(totalMonthlyWithPenalty)}/month total` : "not yet eligible", evidence, flags, [
|
|
74
|
+
`Applicant: ${input.applicantName}. Age: ${input.age}. DOB: ${input.dob}.`,
|
|
75
|
+
`Eligibility: ${eligible ? "eligible (65+)" : "not yet eligible"}.`,
|
|
76
|
+
`Part B base premium (2025): ${currency(PART_B_BASE_PREMIUM_2025)}/month.`,
|
|
77
|
+
irmaaSurcharge > 0 ? `IRMAA surcharge: ${currency(irmaaSurcharge)}/month.` : "No IRMAA surcharge.",
|
|
78
|
+
yearsLate > 0 ? `Late enrollment penalty: ${currency(lateEnrollmentPenalty)}/month (${yearsLate} year(s) × 10%).` : "",
|
|
79
|
+
`Total estimated monthly premium: ${currency(totalMonthlyWithPenalty)}.`,
|
|
80
|
+
`Part A: ${input.hasPartA ? "enrolled" : "not enrolled"}. Part B: ${input.hasPartB ? "enrolled" : "not enrolled"}.`,
|
|
81
|
+
].filter(Boolean)),
|
|
82
|
+
outputArtifacts: genericArtifacts("healthcare-medicare-enrollment", evidence),
|
|
83
|
+
provenance: ["workflow-registry"],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
// Export
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
export const healthcareExtWorkflows = {
|
|
90
|
+
"healthcare/medicare-enrollment": {
|
|
91
|
+
summary: {
|
|
92
|
+
id: "healthcare/medicare-enrollment",
|
|
93
|
+
domain: "healthcare",
|
|
94
|
+
title: "Medicare enrollment planner",
|
|
95
|
+
summary: "Assess Medicare eligibility, calculate IRMAA surcharges, and estimate late enrollment penalties.",
|
|
96
|
+
status: "active",
|
|
97
|
+
audience: "individual",
|
|
98
|
+
tags: ["medicare", "healthcare", "irmaa", "enrollment", "retirement"],
|
|
99
|
+
},
|
|
100
|
+
inputSchema: medicareEnrollmentInputSchema,
|
|
101
|
+
starterData: {
|
|
102
|
+
applicantName: "",
|
|
103
|
+
dob: "",
|
|
104
|
+
age: 0,
|
|
105
|
+
hasPartA: false,
|
|
106
|
+
hasPartB: false,
|
|
107
|
+
currentCoverage: "none",
|
|
108
|
+
annualIncome: 0,
|
|
109
|
+
filingStatus: "single",
|
|
110
|
+
},
|
|
111
|
+
sections: [
|
|
112
|
+
{
|
|
113
|
+
id: "eligibility",
|
|
114
|
+
title: "Eligibility",
|
|
115
|
+
fields: [
|
|
116
|
+
{ key: "applicantName", label: "Applicant name", type: "text" },
|
|
117
|
+
{ key: "dob", label: "Date of birth", type: "date" },
|
|
118
|
+
{ key: "age", label: "Current age", type: "number" },
|
|
119
|
+
{ key: "hasPartA", label: "Currently enrolled in Part A", type: "confirm" },
|
|
120
|
+
{ key: "hasPartB", label: "Currently enrolled in Part B", type: "confirm" },
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: "current-coverage",
|
|
125
|
+
title: "Current Coverage",
|
|
126
|
+
fields: [
|
|
127
|
+
{ key: "currentCoverage", label: "Current health coverage", type: "text", helpText: "Enter 'none' if uninsured" },
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: "income",
|
|
132
|
+
title: "Income",
|
|
133
|
+
fields: [
|
|
134
|
+
{ key: "annualIncome", label: "Annual income (MAGI)", type: "currency" },
|
|
135
|
+
{
|
|
136
|
+
key: "filingStatus",
|
|
137
|
+
label: "Filing status",
|
|
138
|
+
type: "select",
|
|
139
|
+
options: [
|
|
140
|
+
{ label: "Single", value: "single" },
|
|
141
|
+
{ label: "Married filing jointly", value: "married_filing_jointly" },
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
buildBundle: buildMedicareEnrollmentBundle,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=healthcare-ext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthcare-ext.js","sourceRoot":"","sources":["../../../../src/workflows/domains/healthcare-ext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { WorkflowBundle } from "../../types.js";
|
|
2
|
+
import type { HealthcareWorkflowInput } from "../schemas/healthcare.js";
|
|
3
|
+
export declare const healthcareWorkflows: {
|
|
4
|
+
readonly "healthcare/aca-enrollment": {
|
|
5
|
+
summary: {
|
|
6
|
+
id: string;
|
|
7
|
+
domain: "healthcare";
|
|
8
|
+
title: string;
|
|
9
|
+
summary: string;
|
|
10
|
+
status: "active";
|
|
11
|
+
audience: "household";
|
|
12
|
+
tags: string[];
|
|
13
|
+
};
|
|
14
|
+
inputSchema: import("zod").ZodObject<{
|
|
15
|
+
applicant: import("zod").ZodObject<{
|
|
16
|
+
firstName: import("zod").ZodString;
|
|
17
|
+
lastName: import("zod").ZodString;
|
|
18
|
+
ssn: import("zod").ZodDefault<import("zod").ZodString>;
|
|
19
|
+
address: import("zod").ZodObject<{
|
|
20
|
+
street1: import("zod").ZodString;
|
|
21
|
+
street2: import("zod").ZodOptional<import("zod").ZodString>;
|
|
22
|
+
city: import("zod").ZodString;
|
|
23
|
+
state: import("zod").ZodString;
|
|
24
|
+
zipCode: import("zod").ZodString;
|
|
25
|
+
}, import("zod/v4/core").$strict>;
|
|
26
|
+
}, import("zod/v4/core").$strict>;
|
|
27
|
+
household: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
28
|
+
name: import("zod").ZodString;
|
|
29
|
+
relationship: import("zod").ZodString;
|
|
30
|
+
age: import("zod").ZodOptional<import("zod").ZodCoercedNumber<unknown>>;
|
|
31
|
+
notes: import("zod").ZodOptional<import("zod").ZodString>;
|
|
32
|
+
}, import("zod/v4/core").$strict>>>;
|
|
33
|
+
stateOfResidence: import("zod").ZodString;
|
|
34
|
+
annualHouseholdIncome: import("zod").ZodCoercedNumber<unknown>;
|
|
35
|
+
currentlyInsured: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
36
|
+
qualifyingLifeEvent: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
37
|
+
hasEmployerCoverageOffer: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
38
|
+
needsDependentCoverage: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
39
|
+
immigrationDocumentsAvailable: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
40
|
+
incomeProofAvailable: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
41
|
+
residenceProofAvailable: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
42
|
+
preferredCoverageMonth: import("zod").ZodString;
|
|
43
|
+
notes: import("zod").ZodOptional<import("zod").ZodString>;
|
|
44
|
+
}, import("zod/v4/core").$strict>;
|
|
45
|
+
starterData: {
|
|
46
|
+
applicant: {
|
|
47
|
+
firstName: string;
|
|
48
|
+
lastName: string;
|
|
49
|
+
ssn: string;
|
|
50
|
+
address: {
|
|
51
|
+
street1: string;
|
|
52
|
+
city: string;
|
|
53
|
+
state: string;
|
|
54
|
+
zipCode: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
household: never[];
|
|
58
|
+
stateOfResidence: string;
|
|
59
|
+
annualHouseholdIncome: number;
|
|
60
|
+
currentlyInsured: false;
|
|
61
|
+
qualifyingLifeEvent: false;
|
|
62
|
+
hasEmployerCoverageOffer: false;
|
|
63
|
+
needsDependentCoverage: false;
|
|
64
|
+
immigrationDocumentsAvailable: true;
|
|
65
|
+
incomeProofAvailable: false;
|
|
66
|
+
residenceProofAvailable: false;
|
|
67
|
+
preferredCoverageMonth: string;
|
|
68
|
+
};
|
|
69
|
+
sections: ({
|
|
70
|
+
id: string;
|
|
71
|
+
title: string;
|
|
72
|
+
fields: ({
|
|
73
|
+
key: string;
|
|
74
|
+
label: string;
|
|
75
|
+
type: "text";
|
|
76
|
+
} | {
|
|
77
|
+
key: string;
|
|
78
|
+
label: string;
|
|
79
|
+
type: "currency";
|
|
80
|
+
})[];
|
|
81
|
+
} | {
|
|
82
|
+
id: string;
|
|
83
|
+
title: string;
|
|
84
|
+
fields: {
|
|
85
|
+
key: string;
|
|
86
|
+
label: string;
|
|
87
|
+
type: "confirm";
|
|
88
|
+
}[];
|
|
89
|
+
})[];
|
|
90
|
+
buildBundle(input: HealthcareWorkflowInput): WorkflowBundle;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { buildEvidenceItem, buildGenericSummary, currency, genericArtifacts, makeCheck, makeFlag } from "../helpers.js";
|
|
2
|
+
import { healthcareInputSchema } from "../schemas/healthcare.js";
|
|
3
|
+
export const healthcareWorkflows = {
|
|
4
|
+
"healthcare/aca-enrollment": {
|
|
5
|
+
summary: {
|
|
6
|
+
id: "healthcare/aca-enrollment",
|
|
7
|
+
domain: "healthcare",
|
|
8
|
+
title: "Healthcare enrollment planner",
|
|
9
|
+
summary: "Organize household, income, and coverage evidence for marketplace enrollment review.",
|
|
10
|
+
status: "active",
|
|
11
|
+
audience: "household",
|
|
12
|
+
tags: ["healthcare", "aca", "marketplace", "household", "coverage"],
|
|
13
|
+
},
|
|
14
|
+
inputSchema: healthcareInputSchema,
|
|
15
|
+
starterData: {
|
|
16
|
+
applicant: {
|
|
17
|
+
firstName: "",
|
|
18
|
+
lastName: "",
|
|
19
|
+
ssn: "000-00-0000",
|
|
20
|
+
address: {
|
|
21
|
+
street1: "",
|
|
22
|
+
city: "",
|
|
23
|
+
state: "CA",
|
|
24
|
+
zipCode: "",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
household: [],
|
|
28
|
+
stateOfResidence: "CA",
|
|
29
|
+
annualHouseholdIncome: 0,
|
|
30
|
+
currentlyInsured: false,
|
|
31
|
+
qualifyingLifeEvent: false,
|
|
32
|
+
hasEmployerCoverageOffer: false,
|
|
33
|
+
needsDependentCoverage: false,
|
|
34
|
+
immigrationDocumentsAvailable: true,
|
|
35
|
+
incomeProofAvailable: false,
|
|
36
|
+
residenceProofAvailable: false,
|
|
37
|
+
preferredCoverageMonth: "January",
|
|
38
|
+
},
|
|
39
|
+
sections: [
|
|
40
|
+
{
|
|
41
|
+
id: "household",
|
|
42
|
+
title: "Household",
|
|
43
|
+
fields: [
|
|
44
|
+
{ key: "applicant.firstName", label: "Applicant first name", type: "text" },
|
|
45
|
+
{ key: "stateOfResidence", label: "State of residence", type: "text" },
|
|
46
|
+
{
|
|
47
|
+
key: "annualHouseholdIncome",
|
|
48
|
+
label: "Annual household income",
|
|
49
|
+
type: "currency",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
key: "preferredCoverageMonth",
|
|
53
|
+
label: "Preferred coverage month",
|
|
54
|
+
type: "text",
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "eligibility",
|
|
60
|
+
title: "Eligibility",
|
|
61
|
+
fields: [
|
|
62
|
+
{ key: "currentlyInsured", label: "Currently insured", type: "confirm" },
|
|
63
|
+
{ key: "qualifyingLifeEvent", label: "Qualifying life event", type: "confirm" },
|
|
64
|
+
{
|
|
65
|
+
key: "hasEmployerCoverageOffer",
|
|
66
|
+
label: "Employer coverage offered",
|
|
67
|
+
type: "confirm",
|
|
68
|
+
},
|
|
69
|
+
{ key: "needsDependentCoverage", label: "Needs dependent coverage", type: "confirm" },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
buildBundle(input) {
|
|
74
|
+
const householdSize = input.household.length + 1;
|
|
75
|
+
const monthlyIncome = input.annualHouseholdIncome / 12;
|
|
76
|
+
const evidence = [
|
|
77
|
+
buildEvidenceItem("income-proof", "Income proof", true, input.incomeProofAvailable),
|
|
78
|
+
buildEvidenceItem("residence-proof", "Residence proof", true, input.residenceProofAvailable),
|
|
79
|
+
buildEvidenceItem("immigration-docs", "Immigration or citizenship documents", true, input.immigrationDocumentsAvailable),
|
|
80
|
+
buildEvidenceItem("employer-coverage", "Employer coverage notice", input.hasEmployerCoverageOffer, !input.hasEmployerCoverageOffer, input.hasEmployerCoverageOffer
|
|
81
|
+
? "Human review recommended to compare affordability and minimum value."
|
|
82
|
+
: undefined),
|
|
83
|
+
];
|
|
84
|
+
const flags = [];
|
|
85
|
+
if (!input.qualifyingLifeEvent && input.currentlyInsured) {
|
|
86
|
+
flags.push(makeFlag("qualifyingLifeEvent", "review", "Outside open enrollment, a qualifying life event is usually needed to change coverage."));
|
|
87
|
+
}
|
|
88
|
+
if (input.hasEmployerCoverageOffer) {
|
|
89
|
+
flags.push(makeFlag("hasEmployerCoverageOffer", "review", "Employer-sponsored coverage may affect marketplace subsidies and needs a human check."));
|
|
90
|
+
}
|
|
91
|
+
const checks = [
|
|
92
|
+
makeCheck("income-proof", "Income proof available", input.incomeProofAvailable, "warning", "Upload pay stubs or other income proof before submission review."),
|
|
93
|
+
makeCheck("residence-proof", "Residence proof available", input.residenceProofAvailable, "warning", "Residence proof is often needed to complete enrollment review."),
|
|
94
|
+
makeCheck("coverage-month", "Coverage month selected", input.preferredCoverageMonth.trim().length > 0, "error", "Choose a target coverage month."),
|
|
95
|
+
];
|
|
96
|
+
const missingEvidence = evidence.filter((item) => item.status === "missing").length;
|
|
97
|
+
return {
|
|
98
|
+
workflowId: "healthcare/aca-enrollment",
|
|
99
|
+
domain: "healthcare",
|
|
100
|
+
title: "Healthcare enrollment planner",
|
|
101
|
+
summary: "Household-centric enrollment planner for marketplace review. PigeonGov does not file coverage applications for you.",
|
|
102
|
+
applicant: input.applicant,
|
|
103
|
+
household: input.household,
|
|
104
|
+
evidence,
|
|
105
|
+
answers: input,
|
|
106
|
+
derived: {
|
|
107
|
+
householdSize,
|
|
108
|
+
monthlyIncome,
|
|
109
|
+
coverageTrack: input.qualifyingLifeEvent ? "special-enrollment-review" : "open-enrollment-review",
|
|
110
|
+
},
|
|
111
|
+
validation: {
|
|
112
|
+
checks,
|
|
113
|
+
flaggedFields: flags,
|
|
114
|
+
},
|
|
115
|
+
review: buildGenericSummary("Enrollment readiness", missingEvidence === 0 ? "ready for review" : "missing documentation", evidence, flags, [
|
|
116
|
+
`Household size: ${householdSize}.`,
|
|
117
|
+
`Annual household income: ${currency(input.annualHouseholdIncome)}.`,
|
|
118
|
+
`Target effective month: ${input.preferredCoverageMonth}.`,
|
|
119
|
+
]),
|
|
120
|
+
outputArtifacts: genericArtifacts("healthcare-aca-enrollment", evidence),
|
|
121
|
+
provenance: ["workflow-registry", "healthcare-enrollment-model"],
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=healthcare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthcare.js","sourceRoot":"","sources":["../../../../src/workflows/domains/healthcare.ts"],"names":[],"mappings":"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"}
|