skill-bill 0.1.0 → 0.2.1
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/SKILL.md +128 -0
- package/dist/.gen-inputs.json +30 -0
- package/dist/account/accounts.d.ts +98 -0
- package/dist/account/accounts.d.ts.map +1 -0
- package/dist/account/accounts.js +184 -0
- package/dist/account/accounts.js.map +1 -0
- package/dist/account/commands.d.ts +18 -0
- package/dist/account/commands.d.ts.map +1 -0
- package/dist/account/commands.js +21 -0
- package/dist/account/commands.js.map +1 -0
- package/dist/account/declaration.d.ts +9 -0
- package/dist/account/declaration.d.ts.map +1 -0
- package/dist/account/declaration.js +70 -0
- package/dist/account/declaration.js.map +1 -0
- package/dist/account/index.d.ts +15 -0
- package/dist/account/index.d.ts.map +1 -0
- package/dist/account/index.js +15 -0
- package/dist/account/index.js.map +1 -0
- package/dist/account/pageParts.d.ts +127 -0
- package/dist/account/pageParts.d.ts.map +1 -0
- package/dist/account/pageParts.js +222 -0
- package/dist/account/pageParts.js.map +1 -0
- package/dist/account/params.d.ts +52 -0
- package/dist/account/params.d.ts.map +1 -0
- package/dist/account/params.js +153 -0
- package/dist/account/params.js.map +1 -0
- package/dist/account/query.d.ts +11 -0
- package/dist/account/query.d.ts.map +1 -0
- package/dist/account/query.js +10 -0
- package/dist/account/query.js.map +1 -0
- package/dist/account/read.d.ts +8 -0
- package/dist/account/read.d.ts.map +1 -0
- package/dist/account/read.js +56 -0
- package/dist/account/read.js.map +1 -0
- package/dist/account/scene-add.d.ts +3 -0
- package/dist/account/scene-add.d.ts.map +1 -0
- package/dist/account/scene-add.js +54 -0
- package/dist/account/scene-add.js.map +1 -0
- package/dist/account/scene-transfer.d.ts +3 -0
- package/dist/account/scene-transfer.d.ts.map +1 -0
- package/dist/account/scene-transfer.js +73 -0
- package/dist/account/scene-transfer.js.map +1 -0
- package/dist/account/scene-update.d.ts +3 -0
- package/dist/account/scene-update.d.ts.map +1 -0
- package/dist/account/scene-update.js +56 -0
- package/dist/account/scene-update.js.map +1 -0
- package/dist/account/scene.d.ts +73 -0
- package/dist/account/scene.d.ts.map +1 -0
- package/dist/account/scene.js +34 -0
- package/dist/account/scene.js.map +1 -0
- package/dist/account/template-form.d.ts +52 -0
- package/dist/account/template-form.d.ts.map +1 -0
- package/dist/account/template-form.js +125 -0
- package/dist/account/template-form.js.map +1 -0
- package/dist/account/template-summary.d.ts +38 -0
- package/dist/account/template-summary.d.ts.map +1 -0
- package/dist/account/template-summary.js +179 -0
- package/dist/account/template-summary.js.map +1 -0
- package/dist/account/template-update.d.ts +35 -0
- package/dist/account/template-update.d.ts.map +1 -0
- package/dist/account/template-update.js +193 -0
- package/dist/account/template-update.js.map +1 -0
- package/dist/account/write.d.ts +14 -0
- package/dist/account/write.d.ts.map +1 -0
- package/dist/account/write.js +166 -0
- package/dist/account/write.js.map +1 -0
- package/dist/analysis/agg.d.ts +135 -0
- package/dist/analysis/agg.d.ts.map +1 -0
- package/dist/analysis/agg.js +196 -0
- package/dist/analysis/agg.js.map +1 -0
- package/dist/analysis/cards.d.ts +40 -0
- package/dist/analysis/cards.d.ts.map +1 -0
- package/dist/analysis/cards.js +97 -0
- package/dist/analysis/cards.js.map +1 -0
- package/dist/analysis/commands.d.ts +17 -0
- package/dist/analysis/commands.d.ts.map +1 -0
- package/dist/analysis/commands.js +28 -0
- package/dist/analysis/commands.js.map +1 -0
- package/dist/analysis/declaration.d.ts +9 -0
- package/dist/analysis/declaration.d.ts.map +1 -0
- package/dist/analysis/declaration.js +368 -0
- package/dist/analysis/declaration.js.map +1 -0
- package/dist/analysis/index.d.ts +14 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +14 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/pageParts.d.ts +103 -0
- package/dist/analysis/pageParts.d.ts.map +1 -0
- package/dist/analysis/pageParts.js +158 -0
- package/dist/analysis/pageParts.js.map +1 -0
- package/dist/{policy/analysis.d.ts → analysis/params.d.ts} +1 -1
- package/dist/analysis/params.d.ts.map +1 -0
- package/dist/{policy/analysis.js → analysis/params.js} +10 -4
- package/dist/analysis/params.js.map +1 -0
- package/dist/analysis/read.d.ts +26 -0
- package/dist/analysis/read.d.ts.map +1 -0
- package/dist/analysis/read.js +84 -0
- package/dist/analysis/read.js.map +1 -0
- package/dist/analysis/scene-account.d.ts +3 -0
- package/dist/analysis/scene-account.d.ts.map +1 -0
- package/dist/analysis/scene-account.js +88 -0
- package/dist/analysis/scene-account.js.map +1 -0
- package/dist/analysis/scene-activity.d.ts +3 -0
- package/dist/analysis/scene-activity.d.ts.map +1 -0
- package/dist/analysis/scene-activity.js +108 -0
- package/dist/analysis/scene-activity.js.map +1 -0
- package/dist/analysis/scene-anomaly.d.ts +3 -0
- package/dist/analysis/scene-anomaly.d.ts.map +1 -0
- package/dist/analysis/scene-anomaly.js +173 -0
- package/dist/analysis/scene-anomaly.js.map +1 -0
- package/dist/analysis/scene-cat-compare.d.ts +3 -0
- package/dist/analysis/scene-cat-compare.d.ts.map +1 -0
- package/dist/analysis/scene-cat-compare.js +128 -0
- package/dist/analysis/scene-cat-compare.js.map +1 -0
- package/dist/analysis/scene-cat-trend.d.ts +3 -0
- package/dist/analysis/scene-cat-trend.d.ts.map +1 -0
- package/dist/analysis/scene-cat-trend.js +121 -0
- package/dist/analysis/scene-cat-trend.js.map +1 -0
- package/dist/analysis/scene-category.d.ts +3 -0
- package/dist/analysis/scene-category.d.ts.map +1 -0
- package/dist/analysis/scene-category.js +104 -0
- package/dist/analysis/scene-category.js.map +1 -0
- package/dist/analysis/scene-debt.d.ts +3 -0
- package/dist/analysis/scene-debt.d.ts.map +1 -0
- package/dist/analysis/scene-debt.js +111 -0
- package/dist/analysis/scene-debt.js.map +1 -0
- package/dist/analysis/scene-distribution.d.ts +3 -0
- package/dist/analysis/scene-distribution.d.ts.map +1 -0
- package/dist/analysis/scene-distribution.js +144 -0
- package/dist/analysis/scene-distribution.js.map +1 -0
- package/dist/analysis/scene-insight.d.ts +3 -0
- package/dist/analysis/scene-insight.d.ts.map +1 -0
- package/dist/analysis/scene-insight.js +151 -0
- package/dist/analysis/scene-insight.js.map +1 -0
- package/dist/analysis/scene-installment.d.ts +3 -0
- package/dist/analysis/scene-installment.d.ts.map +1 -0
- package/dist/analysis/scene-installment.js +168 -0
- package/dist/analysis/scene-installment.js.map +1 -0
- package/dist/analysis/scene-ledger.d.ts +3 -0
- package/dist/analysis/scene-ledger.d.ts.map +1 -0
- package/dist/analysis/scene-ledger.js +80 -0
- package/dist/analysis/scene-ledger.js.map +1 -0
- package/dist/analysis/scene-monthly.d.ts +3 -0
- package/dist/analysis/scene-monthly.d.ts.map +1 -0
- package/dist/analysis/scene-monthly.js +79 -0
- package/dist/analysis/scene-monthly.js.map +1 -0
- package/dist/analysis/scene-overview.d.ts +3 -0
- package/dist/analysis/scene-overview.d.ts.map +1 -0
- package/dist/analysis/scene-overview.js +82 -0
- package/dist/analysis/scene-overview.js.map +1 -0
- package/dist/analysis/scene-period-compare.d.ts +3 -0
- package/dist/analysis/scene-period-compare.d.ts.map +1 -0
- package/dist/analysis/scene-period-compare.js +127 -0
- package/dist/analysis/scene-period-compare.js.map +1 -0
- package/dist/analysis/scene-range-compare.d.ts +3 -0
- package/dist/analysis/scene-range-compare.d.ts.map +1 -0
- package/dist/analysis/scene-range-compare.js +144 -0
- package/dist/analysis/scene-range-compare.js.map +1 -0
- package/dist/analysis/scene-refund.d.ts +3 -0
- package/dist/analysis/scene-refund.d.ts.map +1 -0
- package/dist/analysis/scene-refund.js +78 -0
- package/dist/analysis/scene-refund.js.map +1 -0
- package/dist/analysis/scene-reimburse.d.ts +3 -0
- package/dist/analysis/scene-reimburse.d.ts.map +1 -0
- package/dist/analysis/scene-reimburse.js +88 -0
- package/dist/analysis/scene-reimburse.js.map +1 -0
- package/dist/analysis/scene-stats.d.ts +3 -0
- package/dist/analysis/scene-stats.d.ts.map +1 -0
- package/dist/analysis/scene-stats.js +80 -0
- package/dist/analysis/scene-stats.js.map +1 -0
- package/dist/analysis/scene-structure.d.ts +3 -0
- package/dist/analysis/scene-structure.d.ts.map +1 -0
- package/dist/analysis/scene-structure.js +93 -0
- package/dist/analysis/scene-structure.js.map +1 -0
- package/dist/analysis/scene-top-freq.d.ts +3 -0
- package/dist/analysis/scene-top-freq.d.ts.map +1 -0
- package/dist/analysis/scene-top-freq.js +91 -0
- package/dist/analysis/scene-top-freq.js.map +1 -0
- package/dist/analysis/scene-top.d.ts +3 -0
- package/dist/analysis/scene-top.d.ts.map +1 -0
- package/dist/analysis/scene-top.js +69 -0
- package/dist/analysis/scene-top.js.map +1 -0
- package/dist/analysis/scene-trend.d.ts +3 -0
- package/dist/analysis/scene-trend.d.ts.map +1 -0
- package/dist/analysis/scene-trend.js +131 -0
- package/dist/analysis/scene-trend.js.map +1 -0
- package/dist/analysis/scene-week.d.ts +3 -0
- package/dist/analysis/scene-week.d.ts.map +1 -0
- package/dist/analysis/scene-week.js +128 -0
- package/dist/analysis/scene-week.js.map +1 -0
- package/dist/analysis/scene-yearly.d.ts +3 -0
- package/dist/analysis/scene-yearly.d.ts.map +1 -0
- package/dist/analysis/scene-yearly.js +103 -0
- package/dist/analysis/scene-yearly.js.map +1 -0
- package/dist/analysis/scene-yoy.d.ts +3 -0
- package/dist/analysis/scene-yoy.d.ts.map +1 -0
- package/dist/analysis/scene-yoy.js +95 -0
- package/dist/analysis/scene-yoy.js.map +1 -0
- package/dist/analysis/scene.d.ts +240 -0
- package/dist/analysis/scene.d.ts.map +1 -0
- package/dist/analysis/scene.js +47 -0
- package/dist/analysis/scene.js.map +1 -0
- package/dist/analysis/template-bars.d.ts +3 -0
- package/dist/analysis/template-bars.d.ts.map +1 -0
- package/dist/analysis/template-bars.js +64 -0
- package/dist/analysis/template-bars.js.map +1 -0
- package/dist/analysis/template-charts.d.ts +3 -0
- package/dist/analysis/template-charts.d.ts.map +1 -0
- package/dist/analysis/template-charts.js +55 -0
- package/dist/analysis/template-charts.js.map +1 -0
- package/dist/analysis/template-compare.d.ts +3 -0
- package/dist/analysis/template-compare.d.ts.map +1 -0
- package/dist/analysis/template-compare.js +54 -0
- package/dist/analysis/template-compare.js.map +1 -0
- package/dist/analysis/template-insight.d.ts +3 -0
- package/dist/analysis/template-insight.d.ts.map +1 -0
- package/dist/analysis/template-insight.js +56 -0
- package/dist/analysis/template-insight.js.map +1 -0
- package/dist/analysis/template-tables.d.ts +3 -0
- package/dist/analysis/template-tables.d.ts.map +1 -0
- package/dist/analysis/template-tables.js +49 -0
- package/dist/analysis/template-tables.js.map +1 -0
- package/dist/analysis/views.d.ts +35 -0
- package/dist/analysis/views.d.ts.map +1 -0
- package/dist/{render → analysis}/views.js +2 -55
- package/dist/analysis/views.js.map +1 -0
- package/dist/cli/cmd_read.js +158 -415
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/config.d.ts +16 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +81 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/health.d.ts +7 -0
- package/dist/cli/health.d.ts.map +1 -0
- package/dist/cli/health.js +32 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/registry.d.ts +15 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +30 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/config.d.ts +41 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/fetch/db.d.ts +9 -0
- package/dist/fetch/db.d.ts.map +1 -1
- package/dist/fetch/db.js +19 -2
- package/dist/fetch/db.js.map +1 -1
- package/dist/fetch/index.d.ts +2 -2
- package/dist/fetch/index.d.ts.map +1 -1
- package/dist/fetch/index.js +2 -2
- package/dist/fetch/index.js.map +1 -1
- package/dist/fetch/paths.d.ts +16 -4
- package/dist/fetch/paths.d.ts.map +1 -1
- package/dist/fetch/paths.js +54 -24
- package/dist/fetch/paths.js.map +1 -1
- package/dist/goal/commands.d.ts +18 -0
- package/dist/goal/commands.d.ts.map +1 -0
- package/dist/goal/commands.js +21 -0
- package/dist/goal/commands.js.map +1 -0
- package/dist/goal/declaration.d.ts +9 -0
- package/dist/goal/declaration.d.ts.map +1 -0
- package/dist/goal/declaration.js +71 -0
- package/dist/goal/declaration.js.map +1 -0
- package/dist/goal/goalData.d.ts +126 -0
- package/dist/goal/goalData.d.ts.map +1 -0
- package/dist/goal/goalData.js +228 -0
- package/dist/goal/goalData.js.map +1 -0
- package/dist/goal/index.d.ts +19 -0
- package/dist/goal/index.d.ts.map +1 -0
- package/dist/goal/index.js +19 -0
- package/dist/goal/index.js.map +1 -0
- package/dist/goal/pageParts.d.ts +140 -0
- package/dist/goal/pageParts.d.ts.map +1 -0
- package/dist/goal/pageParts.js +233 -0
- package/dist/goal/pageParts.js.map +1 -0
- package/dist/goal/params.d.ts +63 -0
- package/dist/goal/params.d.ts.map +1 -0
- package/dist/goal/params.js +164 -0
- package/dist/goal/params.js.map +1 -0
- package/dist/goal/query.d.ts +12 -0
- package/dist/goal/query.d.ts.map +1 -0
- package/dist/goal/query.js +10 -0
- package/dist/goal/query.js.map +1 -0
- package/dist/goal/read.d.ts +5 -0
- package/dist/goal/read.d.ts.map +1 -0
- package/dist/goal/read.js +79 -0
- package/dist/goal/read.js.map +1 -0
- package/dist/goal/scene-budget.d.ts +3 -0
- package/dist/goal/scene-budget.d.ts.map +1 -0
- package/dist/goal/scene-budget.js +125 -0
- package/dist/goal/scene-budget.js.map +1 -0
- package/dist/goal/scene-saving.d.ts +3 -0
- package/dist/goal/scene-saving.d.ts.map +1 -0
- package/dist/goal/scene-saving.js +116 -0
- package/dist/goal/scene-saving.js.map +1 -0
- package/dist/goal/scene-set-budget.d.ts +3 -0
- package/dist/goal/scene-set-budget.d.ts.map +1 -0
- package/dist/goal/scene-set-budget.js +94 -0
- package/dist/goal/scene-set-budget.js.map +1 -0
- package/dist/goal/scene-set-saving.d.ts +3 -0
- package/dist/goal/scene-set-saving.d.ts.map +1 -0
- package/dist/goal/scene-set-saving.js +66 -0
- package/dist/goal/scene-set-saving.js.map +1 -0
- package/dist/goal/scene.d.ts +142 -0
- package/dist/goal/scene.d.ts.map +1 -0
- package/dist/goal/scene.js +51 -0
- package/dist/goal/scene.js.map +1 -0
- package/dist/goal/template-form.d.ts +32 -0
- package/dist/goal/template-form.d.ts.map +1 -0
- package/dist/goal/template-form.js +124 -0
- package/dist/goal/template-form.js.map +1 -0
- package/dist/goal/template-progress.d.ts +47 -0
- package/dist/goal/template-progress.d.ts.map +1 -0
- package/dist/goal/template-progress.js +79 -0
- package/dist/goal/template-progress.js.map +1 -0
- package/dist/goal/write.d.ts +6 -0
- package/dist/goal/write.d.ts.map +1 -0
- package/dist/goal/write.js +131 -0
- package/dist/goal/write.js.map +1 -0
- package/dist/health.d.ts +41 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +456 -0
- package/dist/health.js.map +1 -0
- package/dist/help/declaration.d.ts +9 -0
- package/dist/help/declaration.d.ts.map +1 -0
- package/dist/help/declaration.js +28 -0
- package/dist/help/declaration.js.map +1 -0
- package/dist/help/helpFile.d.ts +88 -0
- package/dist/help/helpFile.d.ts.map +1 -0
- package/dist/help/helpFile.js +119 -0
- package/dist/help/helpFile.js.map +1 -0
- package/dist/help/helpPaths.d.ts +11 -0
- package/dist/help/helpPaths.d.ts.map +1 -0
- package/dist/help/helpPaths.js +36 -0
- package/dist/help/helpPaths.js.map +1 -0
- package/dist/help/index.d.ts +2 -0
- package/dist/help/index.d.ts.map +1 -1
- package/dist/help/index.js +2 -0
- package/dist/help/index.js.map +1 -1
- package/dist/help/items.d.ts +17 -0
- package/dist/help/items.d.ts.map +1 -0
- package/dist/help/items.js +5 -0
- package/dist/help/items.js.map +1 -0
- package/dist/help/lookup.d.ts +1 -1
- package/dist/help/lookup.d.ts.map +1 -1
- package/dist/help/lookup.js +5 -4
- package/dist/help/lookup.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/link/declaration.d.ts +9 -0
- package/dist/link/declaration.d.ts.map +1 -0
- package/dist/link/declaration.js +40 -0
- package/dist/link/declaration.js.map +1 -0
- package/dist/output.d.ts +21 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +48 -0
- package/dist/output.js.map +1 -0
- package/dist/query/commands.d.ts +17 -0
- package/dist/query/commands.d.ts.map +1 -0
- package/dist/query/commands.js +36 -0
- package/dist/query/commands.js.map +1 -0
- package/dist/query/declaration.d.ts +9 -0
- package/dist/query/declaration.d.ts.map +1 -0
- package/dist/query/declaration.js +251 -0
- package/dist/query/declaration.js.map +1 -0
- package/dist/query/detail.d.ts +28 -0
- package/dist/query/detail.d.ts.map +1 -0
- package/dist/query/detail.js +143 -0
- package/dist/query/detail.js.map +1 -0
- package/dist/query/index.d.ts +19 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +12 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/items.d.ts +22 -0
- package/dist/query/items.d.ts.map +1 -0
- package/dist/query/items.js +7 -0
- package/dist/query/items.js.map +1 -0
- package/dist/query/list.d.ts +100 -0
- package/dist/query/list.d.ts.map +1 -0
- package/dist/query/list.js +247 -0
- package/dist/query/list.js.map +1 -0
- package/dist/query/pageParts.d.ts +6 -0
- package/dist/query/pageParts.d.ts.map +1 -0
- package/dist/query/pageParts.js +18 -0
- package/dist/query/pageParts.js.map +1 -0
- package/dist/query/read.d.ts +17 -0
- package/dist/query/read.d.ts.map +1 -0
- package/dist/query/read.js +324 -0
- package/dist/query/read.js.map +1 -0
- package/dist/render/envelope.d.ts.map +1 -1
- package/dist/render/envelope.js +21 -16
- package/dist/render/envelope.js.map +1 -1
- package/dist/render/errors.d.ts +1 -1
- package/dist/render/errors.d.ts.map +1 -1
- package/dist/render/errors.js.map +1 -1
- package/dist/render/html.d.ts +0 -1
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +2 -4
- package/dist/render/html.js.map +1 -1
- package/dist/render/index.d.ts +6 -3
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +9 -2
- package/dist/render/index.js.map +1 -1
- package/dist/render/templates.js +1 -1
- package/dist/render/templates.js.map +1 -1
- package/dist/setup/backups.d.ts +52 -0
- package/dist/setup/backups.d.ts.map +1 -0
- package/dist/setup/backups.js +172 -0
- package/dist/setup/backups.js.map +1 -0
- package/dist/setup/blocked.d.ts +12 -0
- package/dist/setup/blocked.d.ts.map +1 -0
- package/dist/setup/blocked.js +65 -0
- package/dist/setup/blocked.js.map +1 -0
- package/dist/setup/commands.d.ts +10 -0
- package/dist/setup/commands.d.ts.map +1 -0
- package/dist/setup/commands.js +12 -0
- package/dist/setup/commands.js.map +1 -0
- package/dist/setup/declaration.d.ts +9 -0
- package/dist/setup/declaration.d.ts.map +1 -0
- package/dist/setup/declaration.js +92 -0
- package/dist/setup/declaration.js.map +1 -0
- package/dist/setup/import.d.ts +8 -0
- package/dist/setup/import.d.ts.map +1 -0
- package/dist/setup/import.js +111 -0
- package/dist/setup/import.js.map +1 -0
- package/dist/setup/importer.d.ts +79 -0
- package/dist/setup/importer.d.ts.map +1 -0
- package/dist/setup/importer.js +231 -0
- package/dist/setup/importer.js.map +1 -0
- package/dist/setup/index.d.ts +8 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +8 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/pageParts.d.ts +93 -0
- package/dist/setup/pageParts.d.ts.map +1 -0
- package/dist/setup/pageParts.js +197 -0
- package/dist/setup/pageParts.js.map +1 -0
- package/dist/setup/params.d.ts +43 -0
- package/dist/setup/params.d.ts.map +1 -0
- package/dist/setup/params.js +94 -0
- package/dist/setup/params.js.map +1 -0
- package/dist/setup/restore.d.ts +5 -0
- package/dist/setup/restore.d.ts.map +1 -0
- package/dist/setup/restore.js +129 -0
- package/dist/setup/restore.js.map +1 -0
- package/dist/setup/run.d.ts +5 -0
- package/dist/setup/run.d.ts.map +1 -0
- package/dist/setup/run.js +188 -0
- package/dist/setup/run.js.map +1 -0
- package/dist/setup/scene-backup-create.d.ts +3 -0
- package/dist/setup/scene-backup-create.d.ts.map +1 -0
- package/dist/setup/scene-backup-create.js +26 -0
- package/dist/setup/scene-backup-create.js.map +1 -0
- package/dist/setup/scene-backup-list.d.ts +3 -0
- package/dist/setup/scene-backup-list.d.ts.map +1 -0
- package/dist/setup/scene-backup-list.js +24 -0
- package/dist/setup/scene-backup-list.js.map +1 -0
- package/dist/setup/scene-import.d.ts +3 -0
- package/dist/setup/scene-import.d.ts.map +1 -0
- package/dist/setup/scene-import.js +36 -0
- package/dist/setup/scene-import.js.map +1 -0
- package/dist/setup/scene-init-status.d.ts +14 -0
- package/dist/setup/scene-init-status.d.ts.map +1 -0
- package/dist/setup/scene-init-status.js +16 -0
- package/dist/setup/scene-init-status.js.map +1 -0
- package/dist/setup/scene-init.d.ts +3 -0
- package/dist/setup/scene-init.d.ts.map +1 -0
- package/dist/setup/scene-init.js +25 -0
- package/dist/setup/scene-init.js.map +1 -0
- package/dist/setup/scene-restore.d.ts +3 -0
- package/dist/setup/scene-restore.d.ts.map +1 -0
- package/dist/setup/scene-restore.js +33 -0
- package/dist/setup/scene-restore.js.map +1 -0
- package/dist/setup/scene.d.ts +26 -0
- package/dist/setup/scene.d.ts.map +1 -0
- package/dist/setup/scene.js +42 -0
- package/dist/setup/scene.js.map +1 -0
- package/dist/setup/status.d.ts +47 -0
- package/dist/setup/status.d.ts.map +1 -0
- package/dist/setup/status.js +68 -0
- package/dist/setup/status.js.map +1 -0
- package/dist/setup/steps.d.ts +66 -0
- package/dist/setup/steps.d.ts.map +1 -0
- package/dist/setup/steps.js +123 -0
- package/dist/setup/steps.js.map +1 -0
- package/dist/setup/template-list.d.ts +29 -0
- package/dist/setup/template-list.d.ts.map +1 -0
- package/dist/setup/template-list.js +187 -0
- package/dist/setup/template-list.js.map +1 -0
- package/dist/setup/template-receipt.d.ts +18 -0
- package/dist/setup/template-receipt.d.ts.map +1 -0
- package/dist/setup/template-receipt.js +93 -0
- package/dist/setup/template-receipt.js.map +1 -0
- package/dist/setup/template-wizard.d.ts +64 -0
- package/dist/setup/template-wizard.d.ts.map +1 -0
- package/dist/setup/template-wizard.js +233 -0
- package/dist/setup/template-wizard.js.map +1 -0
- package/dist/{policy → shared}/category.d.ts +0 -6
- package/dist/shared/category.d.ts.map +1 -0
- package/dist/{policy → shared}/category.js +16 -54
- package/dist/shared/category.js.map +1 -0
- package/dist/shared/commandSpec.d.ts +75 -0
- package/dist/shared/commandSpec.d.ts.map +1 -0
- package/dist/shared/commandSpec.js +2 -0
- package/dist/shared/commandSpec.js.map +1 -0
- package/dist/shared/copyArea.d.ts +51 -0
- package/dist/shared/copyArea.d.ts.map +1 -0
- package/dist/shared/copyArea.js +124 -0
- package/dist/shared/copyArea.js.map +1 -0
- package/dist/shared/dateRange.d.ts +31 -0
- package/dist/shared/dateRange.d.ts.map +1 -0
- package/dist/shared/dateRange.js +121 -0
- package/dist/shared/dateRange.js.map +1 -0
- package/dist/shared/docPage.d.ts +21 -0
- package/dist/shared/docPage.d.ts.map +1 -0
- package/dist/shared/docPage.js +120 -0
- package/dist/shared/docPage.js.map +1 -0
- package/dist/shared/kpi.d.ts +21 -0
- package/dist/shared/kpi.d.ts.map +1 -0
- package/dist/shared/kpi.js +20 -0
- package/dist/shared/kpi.js.map +1 -0
- package/dist/shared/pageIdentity.d.ts +39 -0
- package/dist/shared/pageIdentity.d.ts.map +1 -0
- package/dist/shared/pageIdentity.js +45 -0
- package/dist/shared/pageIdentity.js.map +1 -0
- package/dist/shared/pageSections.d.ts +23 -0
- package/dist/shared/pageSections.d.ts.map +1 -0
- package/dist/shared/pageSections.js +52 -0
- package/dist/shared/pageSections.js.map +1 -0
- package/dist/shared/pageShell.d.ts +24 -0
- package/dist/shared/pageShell.d.ts.map +1 -0
- package/dist/shared/pageShell.js +37 -0
- package/dist/shared/pageShell.js.map +1 -0
- package/dist/shared/params.d.ts +11 -0
- package/dist/shared/params.d.ts.map +1 -0
- package/dist/shared/params.js +60 -0
- package/dist/shared/params.js.map +1 -0
- package/dist/shared/sourceLine.d.ts +19 -0
- package/dist/shared/sourceLine.d.ts.map +1 -0
- package/dist/shared/sourceLine.js +52 -0
- package/dist/shared/sourceLine.js.map +1 -0
- package/dist/shared/writeParts.d.ts +64 -0
- package/dist/shared/writeParts.d.ts.map +1 -0
- package/dist/shared/writeParts.js +39 -0
- package/dist/shared/writeParts.js.map +1 -0
- package/dist/triggers/routeSpec.d.ts +109 -0
- package/dist/triggers/routeSpec.d.ts.map +1 -0
- package/dist/triggers/routeSpec.js +19 -0
- package/dist/triggers/routeSpec.js.map +1 -0
- package/dist/triggers/wake-assets.d.ts +15 -0
- package/dist/triggers/wake-assets.d.ts.map +1 -0
- package/dist/triggers/wake-assets.js +67 -0
- package/dist/triggers/wake-assets.js.map +1 -0
- package/dist/triggers/wakeTable.d.ts +18 -0
- package/dist/triggers/wakeTable.d.ts.map +1 -0
- package/dist/triggers/wakeTable.js +135 -0
- package/dist/triggers/wakeTable.js.map +1 -0
- package/dist/write/blockedFold.d.ts +10 -0
- package/dist/write/blockedFold.d.ts.map +1 -0
- package/dist/write/blockedFold.js +31 -0
- package/dist/write/blockedFold.js.map +1 -0
- package/dist/write/blockedSlots.d.ts +39 -0
- package/dist/write/blockedSlots.d.ts.map +1 -0
- package/dist/write/blockedSlots.js +108 -0
- package/dist/write/blockedSlots.js.map +1 -0
- package/dist/write/candidatePick.d.ts +50 -0
- package/dist/write/candidatePick.d.ts.map +1 -0
- package/dist/write/candidatePick.js +116 -0
- package/dist/write/candidatePick.js.map +1 -0
- package/dist/write/collect.d.ts +20 -0
- package/dist/write/collect.d.ts.map +1 -0
- package/dist/write/collect.js +15 -0
- package/dist/write/collect.js.map +1 -0
- package/dist/write/collectBody.d.ts +29 -0
- package/dist/write/collectBody.d.ts.map +1 -0
- package/dist/write/collectBody.js +196 -0
- package/dist/write/collectBody.js.map +1 -0
- package/dist/write/collectFrame.d.ts +17 -0
- package/dist/write/collectFrame.d.ts.map +1 -0
- package/dist/write/collectFrame.js +36 -0
- package/dist/write/collectFrame.js.map +1 -0
- package/dist/write/commands.d.ts +10 -0
- package/dist/write/commands.d.ts.map +1 -0
- package/dist/write/commands.js +20 -0
- package/dist/write/commands.js.map +1 -0
- package/dist/write/declaration.d.ts +9 -0
- package/dist/write/declaration.d.ts.map +1 -0
- package/dist/write/declaration.js +239 -0
- package/dist/write/declaration.js.map +1 -0
- package/dist/write/diffTable.d.ts +26 -0
- package/dist/write/diffTable.d.ts.map +1 -0
- package/dist/write/diffTable.js +77 -0
- package/dist/write/diffTable.js.map +1 -0
- package/dist/write/duplicateNote.d.ts +40 -0
- package/dist/write/duplicateNote.d.ts.map +1 -0
- package/dist/write/duplicateNote.js +96 -0
- package/dist/write/duplicateNote.js.map +1 -0
- package/dist/write/emptyNote.d.ts +15 -0
- package/dist/write/emptyNote.d.ts.map +1 -0
- package/dist/write/emptyNote.js +27 -0
- package/dist/write/emptyNote.js.map +1 -0
- package/dist/write/errorReceipt.d.ts +21 -0
- package/dist/write/errorReceipt.d.ts.map +1 -0
- package/dist/write/errorReceipt.js +37 -0
- package/dist/write/errorReceipt.js.map +1 -0
- package/dist/write/flowSteps.d.ts +25 -0
- package/dist/write/flowSteps.d.ts.map +1 -0
- package/dist/write/flowSteps.js +49 -0
- package/dist/write/flowSteps.js.map +1 -0
- package/dist/write/index.d.ts +18 -0
- package/dist/write/index.d.ts.map +1 -0
- package/dist/write/index.js +13 -0
- package/dist/write/index.js.map +1 -0
- package/dist/write/installmentPreview.d.ts +23 -0
- package/dist/write/installmentPreview.d.ts.map +1 -0
- package/dist/write/installmentPreview.js +144 -0
- package/dist/write/installmentPreview.js.map +1 -0
- package/dist/write/outsideScan.d.ts +34 -0
- package/dist/write/outsideScan.d.ts.map +1 -0
- package/dist/write/outsideScan.js +116 -0
- package/dist/write/outsideScan.js.map +1 -0
- package/dist/write/pageParts.d.ts +69 -0
- package/dist/write/pageParts.d.ts.map +1 -0
- package/dist/write/pageParts.js +80 -0
- package/dist/write/pageParts.js.map +1 -0
- package/dist/write/photoEscape.d.ts +53 -0
- package/dist/write/photoEscape.d.ts.map +1 -0
- package/dist/write/photoEscape.js +139 -0
- package/dist/write/photoEscape.js.map +1 -0
- package/dist/write/prefillNote.d.ts +21 -0
- package/dist/write/prefillNote.d.ts.map +1 -0
- package/dist/write/prefillNote.js +79 -0
- package/dist/write/prefillNote.js.map +1 -0
- package/dist/write/receipt.d.ts +18 -0
- package/dist/write/receipt.d.ts.map +1 -0
- package/dist/write/receipt.js +11 -0
- package/dist/write/receipt.js.map +1 -0
- package/dist/write/receiptBody.d.ts +10 -0
- package/dist/write/receiptBody.d.ts.map +1 -0
- package/dist/write/receiptBody.js +111 -0
- package/dist/write/receiptBody.js.map +1 -0
- package/dist/write/receiptOut.d.ts +14 -0
- package/dist/write/receiptOut.d.ts.map +1 -0
- package/dist/write/receiptOut.js +13 -0
- package/dist/write/receiptOut.js.map +1 -0
- package/dist/write/receiptParts.d.ts +12 -0
- package/dist/write/receiptParts.d.ts.map +1 -0
- package/dist/write/receiptParts.js +38 -0
- package/dist/write/receiptParts.js.map +1 -0
- package/dist/write/recentPicks.d.ts +34 -0
- package/dist/write/recentPicks.d.ts.map +1 -0
- package/dist/write/recentPicks.js +65 -0
- package/dist/write/recentPicks.js.map +1 -0
- package/dist/write/record.d.ts +13 -0
- package/dist/write/record.d.ts.map +1 -0
- package/dist/{policy → write}/record.js +12 -28
- package/dist/write/record.js.map +1 -0
- package/dist/write/recordPicker.d.ts +32 -0
- package/dist/write/recordPicker.d.ts.map +1 -0
- package/dist/write/recordPicker.js +201 -0
- package/dist/write/recordPicker.js.map +1 -0
- package/dist/write/rowEditorTable.d.ts +31 -0
- package/dist/write/rowEditorTable.d.ts.map +1 -0
- package/dist/write/rowEditorTable.js +103 -0
- package/dist/write/rowEditorTable.js.map +1 -0
- package/dist/write/scene-batch.d.ts +3 -0
- package/dist/write/scene-batch.d.ts.map +1 -0
- package/dist/write/scene-batch.js +37 -0
- package/dist/write/scene-batch.js.map +1 -0
- package/dist/write/scene-borrow.d.ts +3 -0
- package/dist/write/scene-borrow.d.ts.map +1 -0
- package/dist/write/scene-borrow.js +166 -0
- package/dist/write/scene-borrow.js.map +1 -0
- package/dist/write/scene-collect.d.ts +3 -0
- package/dist/write/scene-collect.d.ts.map +1 -0
- package/dist/write/scene-collect.js +155 -0
- package/dist/write/scene-collect.js.map +1 -0
- package/dist/write/scene-expense.d.ts +3 -0
- package/dist/write/scene-expense.d.ts.map +1 -0
- package/dist/write/scene-expense.js +50 -0
- package/dist/write/scene-expense.js.map +1 -0
- package/dist/write/scene-income.d.ts +3 -0
- package/dist/write/scene-income.d.ts.map +1 -0
- package/dist/write/scene-income.js +51 -0
- package/dist/write/scene-income.js.map +1 -0
- package/dist/write/scene-installment.d.ts +3 -0
- package/dist/write/scene-installment.d.ts.map +1 -0
- package/dist/write/scene-installment.js +52 -0
- package/dist/write/scene-installment.js.map +1 -0
- package/dist/write/scene-lend.d.ts +3 -0
- package/dist/write/scene-lend.d.ts.map +1 -0
- package/dist/write/scene-lend.js +165 -0
- package/dist/write/scene-lend.js.map +1 -0
- package/dist/write/scene-photo.d.ts +3 -0
- package/dist/write/scene-photo.d.ts.map +1 -0
- package/dist/write/scene-photo.js +108 -0
- package/dist/write/scene-photo.js.map +1 -0
- package/dist/write/scene-plain.d.ts +3 -0
- package/dist/write/scene-plain.d.ts.map +1 -0
- package/dist/write/scene-plain.js +52 -0
- package/dist/write/scene-plain.js.map +1 -0
- package/dist/write/scene-refund.d.ts +3 -0
- package/dist/write/scene-refund.d.ts.map +1 -0
- package/dist/write/scene-refund.js +139 -0
- package/dist/write/scene-refund.js.map +1 -0
- package/dist/write/scene-reimburse-done.d.ts +3 -0
- package/dist/write/scene-reimburse-done.d.ts.map +1 -0
- package/dist/write/scene-reimburse-done.js +151 -0
- package/dist/write/scene-reimburse-done.js.map +1 -0
- package/dist/write/scene-reimburse.d.ts +3 -0
- package/dist/write/scene-reimburse.d.ts.map +1 -0
- package/dist/write/scene-reimburse.js +65 -0
- package/dist/write/scene-reimburse.js.map +1 -0
- package/dist/write/scene-repay.d.ts +3 -0
- package/dist/write/scene-repay.d.ts.map +1 -0
- package/dist/write/scene-repay.js +155 -0
- package/dist/write/scene-repay.js.map +1 -0
- package/dist/write/scene-restore.d.ts +3 -0
- package/dist/write/scene-restore.d.ts.map +1 -0
- package/dist/write/scene-restore.js +59 -0
- package/dist/write/scene-restore.js.map +1 -0
- package/dist/write/scene-undo.d.ts +3 -0
- package/dist/write/scene-undo.d.ts.map +1 -0
- package/dist/write/scene-undo.js +57 -0
- package/dist/write/scene-undo.js.map +1 -0
- package/dist/write/scene-update.d.ts +3 -0
- package/dist/write/scene-update.d.ts.map +1 -0
- package/dist/write/scene-update.js +57 -0
- package/dist/write/scene-update.js.map +1 -0
- package/dist/write/scene.d.ts +86 -0
- package/dist/write/scene.d.ts.map +1 -0
- package/dist/write/scene.js +44 -0
- package/dist/write/scene.js.map +1 -0
- package/dist/write/slots.d.ts +16 -0
- package/dist/write/slots.d.ts.map +1 -0
- package/dist/write/slots.js +73 -0
- package/dist/write/slots.js.map +1 -0
- package/dist/write/sourceNote.d.ts +5 -0
- package/dist/write/sourceNote.d.ts.map +1 -0
- package/dist/write/sourceNote.js +37 -0
- package/dist/write/sourceNote.js.map +1 -0
- package/dist/write/summaryRow.d.ts +44 -0
- package/dist/write/summaryRow.d.ts.map +1 -0
- package/dist/write/summaryRow.js +86 -0
- package/dist/write/summaryRow.js.map +1 -0
- package/dist/write/template-batch.d.ts +37 -0
- package/dist/write/template-batch.d.ts.map +1 -0
- package/dist/write/template-batch.js +212 -0
- package/dist/write/template-batch.js.map +1 -0
- package/dist/write/template-expense.d.ts +90 -0
- package/dist/write/template-expense.d.ts.map +1 -0
- package/dist/write/template-expense.js +214 -0
- package/dist/write/template-expense.js.map +1 -0
- package/dist/write/template-flow.d.ts +130 -0
- package/dist/write/template-flow.d.ts.map +1 -0
- package/dist/write/template-flow.js +225 -0
- package/dist/write/template-flow.js.map +1 -0
- package/dist/write/template-installment.d.ts +69 -0
- package/dist/write/template-installment.d.ts.map +1 -0
- package/dist/write/template-installment.js +240 -0
- package/dist/write/template-installment.js.map +1 -0
- package/dist/write/template-update.d.ts +83 -0
- package/dist/write/template-update.d.ts.map +1 -0
- package/dist/write/template-update.js +263 -0
- package/dist/write/template-update.js.map +1 -0
- package/dist/write/typeBadge.d.ts +28 -0
- package/dist/write/typeBadge.d.ts.map +1 -0
- package/dist/write/typeBadge.js +76 -0
- package/dist/write/typeBadge.js.map +1 -0
- package/dist/write/userWording.d.ts +32 -0
- package/dist/write/userWording.d.ts.map +1 -0
- package/dist/write/userWording.js +121 -0
- package/dist/write/userWording.js.map +1 -0
- package/dist/write/write.d.ts +9 -0
- package/dist/write/write.d.ts.map +1 -0
- package/dist/write/write.js +186 -0
- package/dist/write/write.js.map +1 -0
- package/dist/write/writeWire.d.ts +16 -0
- package/dist/write/writeWire.d.ts.map +1 -0
- package/dist/write/writeWire.js +109 -0
- package/dist/write/writeWire.js.map +1 -0
- package/package.json +11 -5
- package/dist/policy/accounts.d.ts +0 -13
- package/dist/policy/accounts.d.ts.map +0 -1
- package/dist/policy/accounts.js +0 -31
- package/dist/policy/accounts.js.map +0 -1
- package/dist/policy/analysis.d.ts.map +0 -1
- package/dist/policy/analysis.js.map +0 -1
- package/dist/policy/category.d.ts.map +0 -1
- package/dist/policy/category.js.map +0 -1
- package/dist/policy/goals.d.ts +0 -15
- package/dist/policy/goals.d.ts.map +0 -1
- package/dist/policy/goals.js +0 -33
- package/dist/policy/goals.js.map +0 -1
- package/dist/policy/index.d.ts +0 -13
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/index.js +0 -7
- package/dist/policy/index.js.map +0 -1
- package/dist/policy/record.d.ts +0 -15
- package/dist/policy/record.d.ts.map +0 -1
- package/dist/policy/record.js.map +0 -1
- package/dist/policy/wakewords.d.ts +0 -14
- package/dist/policy/wakewords.d.ts.map +0 -1
- package/dist/policy/wakewords.js +0 -121
- package/dist/policy/wakewords.js.map +0 -1
- package/dist/render/views.d.ts +0 -86
- package/dist/render/views.d.ts.map +0 -1
- package/dist/render/views.js.map +0 -1
package/SKILL.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-bill
|
|
3
|
+
description: "「饼干记账HELP」→bill.help.lookup 缺省落一份老技能同款 HELP 文件(7 域/74 场景,与卡路里同一套共享 help 模板);唯一出口 bill-cmd-read。触发词:饼干记账 HELP、饼干记账帮助、查帮助、能做什么、记支出、记收入、拍账单、批量录入、记退款、记报销、报销到账、记借出、记借入、记收回、记偿还、记分期、记一笔、改记录、撤销、恢复、查今天、查昨天、查某天、查最近、查账单、查周、查月、查区间、查分类、查账户、查账本、搜备注、查标签、查欠款、查待报销、查分期、查账单详情、看月度、看年度、看总览、看周报、看分类、看账户、看账本、看结构、做统计、看对比、看双区间、看同比、看分类对比、看趋势、看分类趋势、看大额、看高频、看分布、看活跃、看洞察、看异常、看借贷、看报销、看分期、看退款、设定预算、设定目标、看预算、看目标、新增账户、改账户、账户转账、看账户汇总、买东西、吃饭、初始化、初始化状态、备份、恢复备份、导入"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 饼干记账(bill)SKILL
|
|
7
|
+
|
|
8
|
+
本地记账:记支出/收入、查今天/区间/分类/标签、看月度/对比/趋势、预算目标、账户转账、买东西/吃饭联动、初始化备份导入。唯一出口 `bill-cmd-read <bill.key>`,argv+JSON(stdout)+exit,非 0 走 stderr。写走 receipt(直通即真相)。
|
|
9
|
+
|
|
10
|
+
## 快速开始
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
bill-cmd-read bill.help.lookup # 说「饼干记账help」就这一条:落一份 HELP 文件
|
|
14
|
+
bill-cmd-read bill.record.today --params '{"date":"2026-09-06"}'
|
|
15
|
+
bill-cmd-read bill.record.add --params '{"category":"餐饮/外卖/午餐","amount":-35,"note":"午饭"}'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 口径
|
|
19
|
+
|
|
20
|
+
- 分类:支出 L1 10 个 + 收入 L1 6 个(餐饮/居家/穿着/出行/玩乐/学习/健康/社交/宠物/其他)+ 借贷/分期/转账隔离;amount 符号即分类依据(支出负/收入正),不单设 type 列;至多 L1/L2/L3 三级,旧数据无 / 视为 L1。
|
|
21
|
+
- 时间:YYYY-MM-DD HH:mm:ss(日期缺时分补 12:00:00);查区间须 start/end 同给;搜备注空查询不返全量;#tag 精确匹配(#旅行计划不命中 #旅行)。
|
|
22
|
+
- 软删:撤销=deleted_at 置 now,恢复=置 NULL(G7 契约);转账=双笔 #转账(转出支出 + 转入收入,账本 转账,不入收支统计,余额含转账)。
|
|
23
|
+
- 预算覆盖:同月同分类已存在默认拒绝(conflict),确认后加 --force 重跑;导入列映射 dry-run 先行;拍账单图片识别以外置为准。
|
|
24
|
+
- 坏输入与缺失一律阻断(exit 2/4),不返空数组冒充正常;账单为 record.add 子功能(receipt 回执带复制 prompt)。
|
|
25
|
+
|
|
26
|
+
## 联动速查(构建期注入,勿手改)
|
|
27
|
+
|
|
28
|
+
<!-- HELP-AUTO-START -->
|
|
29
|
+
| 唤醒词 | key | shape | 例 |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| 饼干记账 HELP | bill.help.lookup | list | `bill-cmd-read bill.help.lookup` |
|
|
32
|
+
| 饼干记账帮助 | bill.help.lookup | list | `bill-cmd-read bill.help.lookup` |
|
|
33
|
+
| 查帮助 | bill.help.lookup | list | `bill-cmd-read bill.help.lookup` |
|
|
34
|
+
| 能做什么 | bill.help.lookup | list | `bill-cmd-read bill.help.lookup` |
|
|
35
|
+
| 记支出 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"expense","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
36
|
+
| 记收入 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"income","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
37
|
+
| 拍账单 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"photo","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
38
|
+
| 批量录入 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"batch","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
39
|
+
| 记退款 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"refund","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
40
|
+
| 记报销 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"reimburse","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
41
|
+
| 报销到账 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"reimburse-done","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
42
|
+
| 记借出 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"lend","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
43
|
+
| 记借入 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"borrow","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
44
|
+
| 记收回 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"collect","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
45
|
+
| 记偿还 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"repay","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
46
|
+
| 记分期 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"kind":"installment","category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
47
|
+
| 记一笔 | bill.record.add | receipt | `bill-cmd-read bill.record.add --params '{"category":"餐饮","amount":-35,"note":"午饭"}'` |
|
|
48
|
+
| 改记录 | bill.record.update | receipt | `bill-cmd-read bill.record.update --params '{"id":1}'` |
|
|
49
|
+
| 撤销 | bill.record.update | receipt | `bill-cmd-read bill.record.update --params '{"op":"undo","id":1}'` |
|
|
50
|
+
| 恢复 | bill.record.update | receipt | `bill-cmd-read bill.record.update --params '{"op":"restore","id":1}'` |
|
|
51
|
+
| 查今天 | bill.record.today | list | `bill-cmd-read bill.record.today` |
|
|
52
|
+
| 查昨天 | bill.record.today | list | `bill-cmd-read bill.record.today --params '{"date":"yesterday"}'` |
|
|
53
|
+
| 查某天 | bill.record.today | list | `bill-cmd-read bill.record.today --params '{"date":"2026-09-06"}'` |
|
|
54
|
+
| 查最近 | bill.record.today | list | `bill-cmd-read bill.record.today --params '{"recent":true}'` |
|
|
55
|
+
| 查账单 | bill.record.today | list | `bill-cmd-read bill.record.today` |
|
|
56
|
+
| 查周 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"range":"week"}'` |
|
|
57
|
+
| 查月 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"range":"month"}'` |
|
|
58
|
+
| 查区间 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"start":"2026-09-01","end":"2026-09-01"}'` |
|
|
59
|
+
| 查分类 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"category":"餐饮"}'` |
|
|
60
|
+
| 查账户 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"account":"支付宝"}'` |
|
|
61
|
+
| 查账本 | bill.record.range | list | `bill-cmd-read bill.record.range --params '{"ledger":"生活"}'` |
|
|
62
|
+
| 搜备注 | bill.record.search | list | `bill-cmd-read bill.record.search --params '{"q":"午饭"}'` |
|
|
63
|
+
| 查标签 | bill.record.search | list | `bill-cmd-read bill.record.search --params '{"kind":"tag","tag":"旅行"}'` |
|
|
64
|
+
| 查欠款 | bill.record.search | list | `bill-cmd-read bill.record.search --params '{"kind":"debt"}'` |
|
|
65
|
+
| 查待报销 | bill.record.search | list | `bill-cmd-read bill.record.search --params '{"kind":"reimburse"}'` |
|
|
66
|
+
| 查分期 | bill.record.search | list | `bill-cmd-read bill.record.search --params '{"kind":"installment"}'` |
|
|
67
|
+
| 查账单详情 | bill.record.detail | detail | `bill-cmd-read bill.record.detail --params '{"id":1}'` |
|
|
68
|
+
| 看月度 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"monthly"}'` |
|
|
69
|
+
| 看年度 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"yearly"}'` |
|
|
70
|
+
| 看总览 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"overview"}'` |
|
|
71
|
+
| 看周报 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"week"}'` |
|
|
72
|
+
| 看分类 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"category"}'` |
|
|
73
|
+
| 看账户 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"account"}'` |
|
|
74
|
+
| 看账本 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"ledger"}'` |
|
|
75
|
+
| 看结构 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"structure"}'` |
|
|
76
|
+
| 做统计 | bill.analysis.overview | stat | `bill-cmd-read bill.analysis.overview --params '{"kind":"stats"}'` |
|
|
77
|
+
| 看对比 | bill.analysis.compare | analysis | `bill-cmd-read bill.analysis.compare --params '{"kind":"period"}'` |
|
|
78
|
+
| 看双区间 | bill.analysis.compare | analysis | `bill-cmd-read bill.analysis.compare --params '{"kind":"range"}'` |
|
|
79
|
+
| 看同比 | bill.analysis.compare | analysis | `bill-cmd-read bill.analysis.compare --params '{"kind":"yoy"}'` |
|
|
80
|
+
| 看分类对比 | bill.analysis.compare | analysis | `bill-cmd-read bill.analysis.compare --params '{"kind":"category"}'` |
|
|
81
|
+
| 看趋势 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"trend"}'` |
|
|
82
|
+
| 看分类趋势 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"category"}'` |
|
|
83
|
+
| 看大额 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"top"}'` |
|
|
84
|
+
| 看高频 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"frequent"}'` |
|
|
85
|
+
| 看分布 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"distribution"}'` |
|
|
86
|
+
| 看活跃 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"activity"}'` |
|
|
87
|
+
| 看洞察 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"insight"}'` |
|
|
88
|
+
| 看异常 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"anomaly"}'` |
|
|
89
|
+
| 看借贷 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"debt"}'` |
|
|
90
|
+
| 看报销 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"reimburse"}'` |
|
|
91
|
+
| 看分期 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"installment"}'` |
|
|
92
|
+
| 看退款 | bill.analysis.trend | analysis | `bill-cmd-read bill.analysis.trend --params '{"kind":"refund"}'` |
|
|
93
|
+
| 设定预算 | bill.goal.write | receipt | `bill-cmd-read bill.goal.write --params '{"op":"set-budget","amount":35}'` |
|
|
94
|
+
| 设定目标 | bill.goal.write | receipt | `bill-cmd-read bill.goal.write --params '{"op":"set-saving","name":"招行卡","amount":35}'` |
|
|
95
|
+
| 看预算 | bill.goal.query | list | `bill-cmd-read bill.goal.query --params '{"op":"budget"}'` |
|
|
96
|
+
| 看目标 | bill.goal.query | list | `bill-cmd-read bill.goal.query --params '{"op":"saving"}'` |
|
|
97
|
+
| 新增账户 | bill.account.write | receipt | `bill-cmd-read bill.account.write --params '{"op":"add","name":"招行卡"}'` |
|
|
98
|
+
| 改账户 | bill.account.write | receipt | `bill-cmd-read bill.account.write --params '{"op":"update","name":"招行卡"}'` |
|
|
99
|
+
| 账户转账 | bill.account.write | receipt | `bill-cmd-read bill.account.write --params '{"op":"transfer","amount":35,"from":"支付宝","to":"招行卡"}'` |
|
|
100
|
+
| 看账户汇总 | bill.account.query | list | `bill-cmd-read bill.account.query` |
|
|
101
|
+
| 买东西 | bill.link.submit | receipt | `bill-cmd-read bill.link.submit --params '{"scene":"purchase"}'` |
|
|
102
|
+
| 吃饭 | bill.link.submit | receipt | `bill-cmd-read bill.link.submit --params '{"scene":"meal"}'` |
|
|
103
|
+
| 初始化 | bill.setup.run | receipt | `bill-cmd-read bill.setup.run --params '{"op":"init"}'` |
|
|
104
|
+
| 初始化状态 | bill.setup.run | receipt | `bill-cmd-read bill.setup.run --params '{"op":"init-status"}'` |
|
|
105
|
+
| 备份 | bill.setup.run | receipt | `bill-cmd-read bill.setup.run --params '{"op":"backup-create"}'` |
|
|
106
|
+
| 恢复备份 | bill.setup.run | receipt | `bill-cmd-read bill.setup.run --params '{"op":"restore"}'` |
|
|
107
|
+
| 导入 | bill.setup.run | receipt | `bill-cmd-read bill.setup.run --params '{"op":"import","file":"bills.csv"}'` |
|
|
108
|
+
|
|
109
|
+
相关场景:bill.account.query、bill.account.write、bill.analysis.compare、bill.analysis.overview、bill.analysis.trend、bill.goal.query、bill.goal.write、bill.help.lookup、bill.link.submit、bill.record.add、bill.record.detail、bill.record.range、bill.record.search、bill.record.today、bill.record.update、bill.setup.run(16 联动,key 字符串后续票落表时冻结)。
|
|
110
|
+
<!-- HELP-AUTO-END -->
|
|
111
|
+
|
|
112
|
+
## HELP 交付(说「饼干记账help」或「查帮助」走这里)
|
|
113
|
+
|
|
114
|
+
- **缺省就是交付物**:`bill-cmd-read bill.help.lookup` **原样调用**即落一份能打开的 HELP 文件——`<库目录>/<产物目录>/<HELP 主体名>_<YYYYMMDD_HHMMSS>[_N].html`——`<库目录>`=配置文件 `~/.ilife/bill.yaml` 的 `db.dir`,空串=数据目录 `~/.ilife/data/`;`<产物目录>`=同文件的 `html.dir`(默认 `biscuit_accountant_html`);`<HELP 主体名>`=同文件的 `html.helpStem`(默认 `饼干记账_HELP`);7 域/74 场景,与卡路里同一套共享 help 模板。stdout 的 `delivery.path` 是**绝对路径**,`delivery.bytes` 是文件字节数;回话就把这个路径给用户(回执即真相)。
|
|
115
|
+
**完成标准**:`delivery.path` 指向的文件真的存在,且大小=`delivery.bytes`。
|
|
116
|
+
- **要全量速查表才加参数**:`--params '{"mode":"lookup"}'` 出 77 条唤醒词速查表,落同目录 `饼干记账_速查表_<时间戳>.html`(与 HELP 文件分名,两份产物不撞车);这一支同样吃下面的复用窗口。
|
|
117
|
+
- **反复读不再涨目录(#245)**:同一主体**一天内只留一份**——24 小时内再读就**复用已有那份**(不新建、不改写;回执给的就是它)。要别的窗口给 `--params '{"reuseHours":3}'`(小时);要**每次都要一份最新的**给 `{"reuseHours":0}`。窗口内若已有一份、而你刚改过 HELP 内容,那份旧产物**不会被自动刷新**(窗口语义如此)——真要新的就带 `reuseHours:0`。
|
|
118
|
+
- **要现找才加参数**:`--params '{"q":"查今天"}'` 回命中条目(只出 JSON,不落盘;要落盘就给 `--html`)。`q` 与 `mode` 互斥、`mode` 只认 `lookup`,违反即 exit 2。
|
|
119
|
+
- **`--html <路径>`=显式落点**:逐字使用、覆盖写、缺父目录自动建(不参与同秒 `_N` 递补);其它 15 条命令的 `--html` 语义不变(仍写收据页)。
|
|
120
|
+
- **边界**:面板/侧栏的 HELP 入口不在本技能范围(属插件的桥/面板那条线);不写固定名镜像(用户 Q10=A)。
|
|
121
|
+
- 触发词总表见上「联动速查」构建期注入块(`<!-- HELP-AUTO-START/END -->`,由 `scripts/build-help.mjs` 重写,勿手改)。
|
|
122
|
+
|
|
123
|
+
## 环境与出 scope
|
|
124
|
+
|
|
125
|
+
- 路径类取值一律读配置文件 `~/.ilife/bill.yaml`(**配置文件是唯一真相,环境变量不参与配置**):库目录=`db.dir`(空串=数据目录 `~/.ilife/data/`,首次读时自动建)、库文件名=`db.name`(默认 `biscuit_accountant.db`)、第二份库=`db.goals`(默认 `goals.json`)、产物目录=`html.dir`(默认 `biscuit_accountant_html`)、HELP 与速查表的主体名=`html.helpStem`/`html.quickRefStem`、备份目录=`backup.dir`(空串=库目录下 `backups`)、备份文件名主体=`backup.stem`(默认 `biscuit_`);`ILIFE_CONFIG_DIR` 设定且非空即整体接管配置目录。取值面与环境项见 docs/env.md。
|
|
126
|
+
- 预检只留 node 版本一道门(`engines>=22.13`):**没有一个环境变量是必设的**——库目录与产物落点全在配置文件里定(见上行),缺项一律按默认落点走;测试要隔离就把配置目录指到临时目录(`ILIFE_CONFIG_DIR` 设定且非空即整体接管)。
|
|
127
|
+
- --html 套模板输出完整收据页(section 片段经 CONTENT 注入对应模板,非片段直写;超体积阻断);`bill.help.lookup` 的 `--html` 改写到该键的产物(HELP 全页/速查页),语义见上「HELP 交付」节。
|
|
128
|
+
- 出 scope:定时任务(老家零定时代码)、面板(二期单 MAP)、本技能外联动登记(combos.yaml 一律不碰,走后续票;link 跨技能仅复制 prompt);真实数据禁迁,测试 tmp 隔离;Python 老家只读对照。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"note": "饼干记账生成器输入的内容印记:每条记 {src, dist} 配对,由 `pnpm build` 调 `--stamp` 写入;`pnpm gen`/`gen:check` 按它判陈旧、按现场配对门判脱钩。",
|
|
4
|
+
"files": {
|
|
5
|
+
"account/commands.ts": {
|
|
6
|
+
"src": "bd1f44272e1703fd6385c629d951926109b74973f0dd2334e23a9812f4c41d20",
|
|
7
|
+
"dist": "6ddbc11be65a129fbd625a7244cafed5176d7ffca7640c1302f76dee12f01a89"
|
|
8
|
+
},
|
|
9
|
+
"analysis/commands.ts": {
|
|
10
|
+
"src": "cfcf004609c43f8044c3be307de46bb4f9f011e6b1ea577cce134898f78acba5",
|
|
11
|
+
"dist": "92c3027b7f9d9a2bb016e3f84c901b754a0b7747da672594a8f279013d8542ae"
|
|
12
|
+
},
|
|
13
|
+
"goal/commands.ts": {
|
|
14
|
+
"src": "17bb443a199ceee8f532397901fb51947a12a603acac6ead382e2d8a0fb98c14",
|
|
15
|
+
"dist": "232787fdf0bc69435583c213007037374548bb066ba2e31c9a00da02ce5f6de7"
|
|
16
|
+
},
|
|
17
|
+
"query/commands.ts": {
|
|
18
|
+
"src": "3045ae4a1b38549e5e5ff633be745d7b4439696cd9e9b80ce2610d1c908a48c8",
|
|
19
|
+
"dist": "d70a4bae0898dd38d7a5effa4d8e48bdf6d4c36c5cfea11ce0ed7821a0c81e31"
|
|
20
|
+
},
|
|
21
|
+
"setup/commands.ts": {
|
|
22
|
+
"src": "f525b3434493d653100032d504664769dd91073c212b756897394ea3464bf920",
|
|
23
|
+
"dist": "7f9734f5d42ebd05d867d40ad01fe2e92903111b6cae3dec4ea3acaf11be3bb4"
|
|
24
|
+
},
|
|
25
|
+
"write/commands.ts": {
|
|
26
|
+
"src": "a82ff064c65694201ee6aa02601d9e1f36c67544ca72c4766e3ab0715d6975ed",
|
|
27
|
+
"dist": "0c8f715ac976d1282be9de682a8ff49e945d829247095eae194fcc9f8c51f652"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { BillDb, BillGoals } from '../fetch/index.js';
|
|
2
|
+
/** 账户表的一行(`goals.json.accounts[]` 的元素)。 */
|
|
3
|
+
export interface AccountRow {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly type: string;
|
|
6
|
+
readonly disabled: boolean;
|
|
7
|
+
readonly created_at: string;
|
|
8
|
+
}
|
|
9
|
+
/** 汇总页的一张账户卡(老侧 `cmd_summary` 的 `cards[]` 逐键)。 */
|
|
10
|
+
export interface AccountCard {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly type: string;
|
|
13
|
+
readonly disabled: boolean;
|
|
14
|
+
/** 只在流水里有、账户表里没有这个账户(老侧 `registered`)。 */
|
|
15
|
+
readonly registered: boolean;
|
|
16
|
+
readonly income: number;
|
|
17
|
+
readonly expense: number;
|
|
18
|
+
readonly transfer_in: number;
|
|
19
|
+
readonly transfer_out: number;
|
|
20
|
+
readonly balance: number;
|
|
21
|
+
readonly count: number;
|
|
22
|
+
readonly last_time: string;
|
|
23
|
+
}
|
|
24
|
+
/** 汇总页的合计(老侧 `totals` 逐键;停用账户不计进前六格)。 */
|
|
25
|
+
export interface AccountTotals {
|
|
26
|
+
readonly income: number;
|
|
27
|
+
readonly expense: number;
|
|
28
|
+
readonly transfer_in: number;
|
|
29
|
+
readonly transfer_out: number;
|
|
30
|
+
readonly balance: number;
|
|
31
|
+
readonly count: number;
|
|
32
|
+
readonly net: number;
|
|
33
|
+
readonly transfer_count: number;
|
|
34
|
+
readonly transfer_total: number;
|
|
35
|
+
readonly disabled_balance: number;
|
|
36
|
+
readonly disabled_accounts: readonly string[];
|
|
37
|
+
readonly disabled_count: number;
|
|
38
|
+
}
|
|
39
|
+
/** 最近流水的一行(老侧 `flows[]` 逐键)。 */
|
|
40
|
+
export interface AccountFlow {
|
|
41
|
+
readonly id: number;
|
|
42
|
+
readonly time: string;
|
|
43
|
+
readonly category: string;
|
|
44
|
+
readonly amount: number;
|
|
45
|
+
readonly account: string;
|
|
46
|
+
readonly note: string;
|
|
47
|
+
}
|
|
48
|
+
/** 汇总(出口载荷与汇总页同一份事实)。 */
|
|
49
|
+
export interface AccountSummary {
|
|
50
|
+
readonly accounts: readonly AccountCard[];
|
|
51
|
+
readonly totals: AccountTotals;
|
|
52
|
+
readonly flows: readonly AccountFlow[];
|
|
53
|
+
readonly flow_count: number;
|
|
54
|
+
/** 这一页一共看了多少条流水(来源脚注的条数那一格;`flows` 只列最近几笔)。 */
|
|
55
|
+
readonly records: number;
|
|
56
|
+
/** 全库最早与最近一笔的日期(来源脚注的窗口起止;一条都没有=空串,由调用方写「不限」)。 */
|
|
57
|
+
readonly first_time: string;
|
|
58
|
+
readonly last_time: string;
|
|
59
|
+
}
|
|
60
|
+
/** 最近流水摘要取几笔(老侧 `cli.py:306` 的 `[:12]` 同数)。 */
|
|
61
|
+
export declare const FLOW_LIMIT = 12;
|
|
62
|
+
/** 账户表:把 `goals.accounts` 的原始行归一成本域认识的形状(认不得的键丢掉,缺的给安全缺省)。 */
|
|
63
|
+
export declare function accountsOf(goals: BillGoals): AccountRow[];
|
|
64
|
+
/** 按名字找一行(找不到给 `null`,不抛——调用方决定那是阻断还是错误)。 */
|
|
65
|
+
export declare function findAccount(rows: readonly AccountRow[], name: string): AccountRow | null;
|
|
66
|
+
/** 新增账户(**冲突即抛**,不是缺项:老侧 `cli.py:97-99` 同口径)。`goals.accounts` 就地追加。 */
|
|
67
|
+
export declare function appendAccount(goals: BillGoals, input: {
|
|
68
|
+
readonly name: string;
|
|
69
|
+
readonly type: string;
|
|
70
|
+
readonly createdAt: string;
|
|
71
|
+
}): AccountRow;
|
|
72
|
+
/** 改账户(改名/停用/启用)。**改名连带 `bills.account` 逐行改名**(含软删行)。
|
|
73
|
+
* 返回改了几笔历史流水(没改名=0)与被改的那一行(调用方拿它做改前改后的对照)。 */
|
|
74
|
+
export declare function applyAccountUpdate(db: BillDb, goals: BillGoals, input: {
|
|
75
|
+
readonly name: string;
|
|
76
|
+
readonly newName: string;
|
|
77
|
+
readonly disable: boolean;
|
|
78
|
+
readonly enable: boolean;
|
|
79
|
+
}): {
|
|
80
|
+
readonly before: AccountRow;
|
|
81
|
+
readonly after: AccountRow;
|
|
82
|
+
readonly renamedRows: number;
|
|
83
|
+
};
|
|
84
|
+
/** 转账:落**两笔**(转出账户一笔负数支出 + 转入账户一笔正数收入),分类 `转账/转出`|`转账/转入`、
|
|
85
|
+
* 账本 `转账`、备注带 `#转账`。老侧 `cli.py:217-223` 逐字同形(备注文案照老侧:
|
|
86
|
+
* `#转账 转出至X`/`#转账 转入自Y`)。返回两行的编号(回执页要报)。 */
|
|
87
|
+
export declare function writeTransfer(db: BillDb, input: {
|
|
88
|
+
readonly amount: number;
|
|
89
|
+
readonly from: string;
|
|
90
|
+
readonly to: string;
|
|
91
|
+
readonly time: string;
|
|
92
|
+
}): {
|
|
93
|
+
readonly outId: number;
|
|
94
|
+
readonly inId: number;
|
|
95
|
+
};
|
|
96
|
+
/** 汇总:账户卡(含未登记账户)+ 合计 + 最近十二笔流水。老侧 `cmd_summary` 逐键同形。 */
|
|
97
|
+
export declare function accountSummary(db: BillDb, goals: BillGoals): AccountSummary;
|
|
98
|
+
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/account/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/** 账户域·账户表与汇总取数(**唯一定义地**):账户表(`goals.json` 的 `accounts` 键)的读与写、
|
|
2
|
+
* 余额与流水汇总、转账的两笔分录。
|
|
3
|
+
*
|
|
4
|
+
* 谁在用(两个调用点,指名):
|
|
5
|
+
* ① `src/account/write.ts`——写命令处理体:查账户、落账户表、改名时级联流水、转账落两笔;
|
|
6
|
+
* ② `src/account/read.ts`——读命令处理体:取 `accountSummary` 当汇总页与出口载荷的唯一事实。
|
|
7
|
+
*
|
|
8
|
+
* 老侧对应件:`scripts/account/cli.py`(`_accounts`/`cmd_add`/`cmd_update`/`cmd_transfer`/`cmd_summary`)。
|
|
9
|
+
* 口径逐条照搬老侧(**默认真相**),只把「住哪」摆正:
|
|
10
|
+
* - **账户表载体**=`goals.json` 顶层 `accounts` 键(与目标域键隔离,原子写保留其他键);
|
|
11
|
+
* - **余额**=收入 − 支出 + 转入 − 转出(**转账要算进余额**:两个账户正确增减),
|
|
12
|
+
* `cards[].balance` 与 `totals.balance` 同一口径;
|
|
13
|
+
* - **账户全集**=账户表登记顺序在前 + 只有流水没有登记的账户(按名排序)在后,`registered=false`;
|
|
14
|
+
* - **停用账户**=不出现在 `totals` 的前六格里(活跃口径),单列 `disabled_balance`/`disabled_accounts`;
|
|
15
|
+
* - **不入收支统计**由 `../shared/kpi.js` 的 `isTransfer` 一处判(本件不另写一份 `转账/` 前缀判据);
|
|
16
|
+
* - **改名级联**:账户表改名时连带 `bills.account` 逐行改名(含软删记录——恢复后名称一致),
|
|
17
|
+
* 这是老侧 `cli.py:166-179` 的行为,也是老确认页那句「改名会同步更新该账户的历史记录」的兑现。
|
|
18
|
+
*/
|
|
19
|
+
import { addBill, fetchAll } from '../fetch/index.js';
|
|
20
|
+
import { BillPolicyError } from '../fetch/errors.js';
|
|
21
|
+
import { isTransfer } from '../shared/kpi.js';
|
|
22
|
+
import { ACCOUNT_NAME_MAX, TRANSFER_IN_CATEGORY, TRANSFER_LEDGER, TRANSFER_OUT_CATEGORY } from './params.js';
|
|
23
|
+
/** 最近流水摘要取几笔(老侧 `cli.py:306` 的 `[:12]` 同数)。 */
|
|
24
|
+
export const FLOW_LIMIT = 12;
|
|
25
|
+
/** 两位小数(汇总的每一格都过它:老侧每处 `round(x, 2)` 同一口径)。 */
|
|
26
|
+
function round2(n) {
|
|
27
|
+
return Math.round(n * 100) / 100;
|
|
28
|
+
}
|
|
29
|
+
/** 账户表:把 `goals.accounts` 的原始行归一成本域认识的形状(认不得的键丢掉,缺的给安全缺省)。 */
|
|
30
|
+
export function accountsOf(goals) {
|
|
31
|
+
return goals.accounts.map((raw) => ({
|
|
32
|
+
name: String(raw['name'] ?? ''),
|
|
33
|
+
type: String(raw['type'] ?? ''),
|
|
34
|
+
disabled: raw['disabled'] === true,
|
|
35
|
+
created_at: String(raw['created_at'] ?? ''),
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
/** 按名字找一行(找不到给 `null`,不抛——调用方决定那是阻断还是错误)。 */
|
|
39
|
+
export function findAccount(rows, name) {
|
|
40
|
+
return rows.find((a) => a.name === name) ?? null;
|
|
41
|
+
}
|
|
42
|
+
/** 新增账户(**冲突即抛**,不是缺项:老侧 `cli.py:97-99` 同口径)。`goals.accounts` 就地追加。 */
|
|
43
|
+
export function appendAccount(goals, input) {
|
|
44
|
+
if (input.name === '' || input.name.length > ACCOUNT_NAME_MAX) {
|
|
45
|
+
throw new BillPolicyError('POLICY_BAD_INPUT', '账户名不在 1–' + String(ACCOUNT_NAME_MAX) + ' 字之间');
|
|
46
|
+
}
|
|
47
|
+
if (findAccount(accountsOf(goals), input.name) !== null) {
|
|
48
|
+
throw new BillPolicyError('POLICY_CONFLICT', '账户「' + input.name + '」已经在账户表里了(要改它就说「改账户」)');
|
|
49
|
+
}
|
|
50
|
+
goals.accounts.push({ name: input.name, type: input.type, disabled: false, created_at: input.createdAt });
|
|
51
|
+
return { name: input.name, type: input.type, disabled: false, created_at: input.createdAt };
|
|
52
|
+
}
|
|
53
|
+
/** 改账户(改名/停用/启用)。**改名连带 `bills.account` 逐行改名**(含软删行)。
|
|
54
|
+
* 返回改了几笔历史流水(没改名=0)与被改的那一行(调用方拿它做改前改后的对照)。 */
|
|
55
|
+
export function applyAccountUpdate(db, goals, input) {
|
|
56
|
+
const rows = accountsOf(goals);
|
|
57
|
+
const before = findAccount(rows, input.name);
|
|
58
|
+
if (before === null) {
|
|
59
|
+
throw new BillPolicyError('POLICY_MISSING_SLOT', '账户表里没有「' + input.name + '」这个账户');
|
|
60
|
+
}
|
|
61
|
+
if (input.newName !== '' && input.newName !== input.name) {
|
|
62
|
+
if (input.newName.length > ACCOUNT_NAME_MAX) {
|
|
63
|
+
throw new BillPolicyError('POLICY_BAD_INPUT', '新账户名太长(最多 ' + String(ACCOUNT_NAME_MAX) + ' 个字)');
|
|
64
|
+
}
|
|
65
|
+
if (findAccount(rows, input.newName) !== null) {
|
|
66
|
+
throw new BillPolicyError('POLICY_CONFLICT', '账户「' + input.newName + '」已经存在,不能改成重名');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
let renamedRows = 0;
|
|
70
|
+
const target = goals.accounts.find((a) => String(a['name'] ?? '') === input.name);
|
|
71
|
+
if (target === undefined) {
|
|
72
|
+
throw new BillPolicyError('POLICY_MISSING_SLOT', '账户表里没有「' + input.name + '」这个账户');
|
|
73
|
+
}
|
|
74
|
+
if (input.newName !== '' && input.newName !== input.name) {
|
|
75
|
+
target['name'] = input.newName;
|
|
76
|
+
try {
|
|
77
|
+
db.db.prepare('UPDATE bills SET account = ? WHERE account = ?').run(input.newName, input.name);
|
|
78
|
+
renamedRows = Number(db.db.prepare('SELECT changes() AS n').get()?.n ?? 0);
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
throw new BillPolicyError('POLICY_BAD_INPUT', '历史流水改名失败:' + String(e.message));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (input.disable)
|
|
85
|
+
target['disabled'] = true;
|
|
86
|
+
if (input.enable)
|
|
87
|
+
target['disabled'] = false;
|
|
88
|
+
const after = {
|
|
89
|
+
name: String(target['name'] ?? input.name),
|
|
90
|
+
type: String(target['type'] ?? ''),
|
|
91
|
+
disabled: target['disabled'] === true,
|
|
92
|
+
created_at: String(target['created_at'] ?? ''),
|
|
93
|
+
};
|
|
94
|
+
return { before, after, renamedRows };
|
|
95
|
+
}
|
|
96
|
+
/** 转账:落**两笔**(转出账户一笔负数支出 + 转入账户一笔正数收入),分类 `转账/转出`|`转账/转入`、
|
|
97
|
+
* 账本 `转账`、备注带 `#转账`。老侧 `cli.py:217-223` 逐字同形(备注文案照老侧:
|
|
98
|
+
* `#转账 转出至X`/`#转账 转入自Y`)。返回两行的编号(回执页要报)。 */
|
|
99
|
+
export function writeTransfer(db, input) {
|
|
100
|
+
const out = addBill(db, {
|
|
101
|
+
category: TRANSFER_OUT_CATEGORY, amount: -input.amount, time: input.time,
|
|
102
|
+
account: input.from, ledger: TRANSFER_LEDGER, currency: '人民币', note: '#转账 转出至' + input.to,
|
|
103
|
+
});
|
|
104
|
+
const into = addBill(db, {
|
|
105
|
+
category: TRANSFER_IN_CATEGORY, amount: input.amount, time: input.time,
|
|
106
|
+
account: input.to, ledger: TRANSFER_LEDGER, currency: '人民币', note: '#转账 转入自' + input.from,
|
|
107
|
+
});
|
|
108
|
+
return { outId: out.id, inId: into.id };
|
|
109
|
+
}
|
|
110
|
+
/** 汇总:账户卡(含未登记账户)+ 合计 + 最近十二笔流水。老侧 `cmd_summary` 逐键同形。 */
|
|
111
|
+
export function accountSummary(db, goals) {
|
|
112
|
+
const records = fetchAll(db);
|
|
113
|
+
const registered = accountsOf(goals);
|
|
114
|
+
const names = [];
|
|
115
|
+
const seen = new Set();
|
|
116
|
+
for (const a of registered) {
|
|
117
|
+
names.push(a.name);
|
|
118
|
+
seen.add(a.name);
|
|
119
|
+
}
|
|
120
|
+
const onlyBills = [...new Set(records.map((r) => r.account.trim()).filter((n) => n !== ''))].sort();
|
|
121
|
+
for (const n of onlyBills) {
|
|
122
|
+
if (!seen.has(n)) {
|
|
123
|
+
names.push(n);
|
|
124
|
+
seen.add(n);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const cards = [];
|
|
128
|
+
const totalsAcc = { income: 0, expense: 0, transfer_in: 0, transfer_out: 0, balance: 0, count: 0 };
|
|
129
|
+
for (const n of names) {
|
|
130
|
+
const rs = records.filter((r) => r.account === n);
|
|
131
|
+
const mine = (pick) => round2(rs.filter(pick).reduce((s, r) => s + Math.abs(r.amount), 0));
|
|
132
|
+
const income = mine((r) => r.amount > 0 && !isTransfer(r));
|
|
133
|
+
const expense = mine((r) => r.amount < 0 && !isTransfer(r));
|
|
134
|
+
const transferIn = mine((r) => r.amount > 0 && isTransfer(r));
|
|
135
|
+
const transferOut = mine((r) => r.amount < 0 && isTransfer(r));
|
|
136
|
+
const meta = findAccount(registered, n);
|
|
137
|
+
const card = {
|
|
138
|
+
name: n,
|
|
139
|
+
type: meta?.type ?? '',
|
|
140
|
+
disabled: meta?.disabled ?? false,
|
|
141
|
+
registered: meta !== null,
|
|
142
|
+
income, expense, transfer_in: transferIn, transfer_out: transferOut,
|
|
143
|
+
balance: round2(income - expense + transferIn - transferOut),
|
|
144
|
+
count: rs.length,
|
|
145
|
+
last_time: rs.reduce((max, r) => (r.time > max ? r.time : max), ''),
|
|
146
|
+
};
|
|
147
|
+
cards.push(card);
|
|
148
|
+
if (!card.disabled) {
|
|
149
|
+
totalsAcc.income += income;
|
|
150
|
+
totalsAcc.expense += expense;
|
|
151
|
+
totalsAcc.transfer_in += transferIn;
|
|
152
|
+
totalsAcc.transfer_out += transferOut;
|
|
153
|
+
totalsAcc.balance += card.balance;
|
|
154
|
+
totalsAcc.count += rs.length;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const disabledCards = cards.filter((c) => c.disabled);
|
|
158
|
+
const transfers = records.filter(isTransfer);
|
|
159
|
+
const totals = {
|
|
160
|
+
income: round2(totalsAcc.income),
|
|
161
|
+
expense: round2(totalsAcc.expense),
|
|
162
|
+
transfer_in: round2(totalsAcc.transfer_in),
|
|
163
|
+
transfer_out: round2(totalsAcc.transfer_out),
|
|
164
|
+
balance: round2(totalsAcc.balance),
|
|
165
|
+
count: totalsAcc.count,
|
|
166
|
+
net: round2(totalsAcc.income - totalsAcc.expense),
|
|
167
|
+
transfer_count: transfers.length,
|
|
168
|
+
transfer_total: round2(transfers.reduce((s, r) => s + Math.abs(r.amount), 0)),
|
|
169
|
+
disabled_balance: round2(disabledCards.reduce((s, c) => s + c.balance, 0)),
|
|
170
|
+
disabled_accounts: disabledCards.map((c) => c.name),
|
|
171
|
+
disabled_count: disabledCards.length,
|
|
172
|
+
};
|
|
173
|
+
const flows = [...records]
|
|
174
|
+
.sort((a, b) => b.time.localeCompare(a.time) || b.id - a.id)
|
|
175
|
+
.slice(0, FLOW_LIMIT)
|
|
176
|
+
.map((r) => ({ id: r.id, time: r.time, category: r.category, amount: r.amount, account: r.account, note: r.note }));
|
|
177
|
+
const times = records.map((r) => r.time).filter((t) => t.trim() !== '').sort();
|
|
178
|
+
return {
|
|
179
|
+
accounts: cards, totals, flows, flow_count: flows.length, records: records.length,
|
|
180
|
+
first_time: times.length === 0 ? '' : String(times[0]).slice(0, 10),
|
|
181
|
+
last_time: times.length === 0 ? '' : String(times[times.length - 1]).slice(0, 10),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/account/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { viewAccountSummary } from './read.js';
|
|
2
|
+
import { writeAccount } from './write.js';
|
|
3
|
+
export declare const ACCOUNT_COMMANDS: ({
|
|
4
|
+
kind: "write";
|
|
5
|
+
key: string;
|
|
6
|
+
shape: "receipt";
|
|
7
|
+
title: string;
|
|
8
|
+
example: string;
|
|
9
|
+
run: typeof writeAccount;
|
|
10
|
+
} | {
|
|
11
|
+
kind: "read";
|
|
12
|
+
key: string;
|
|
13
|
+
shape: "list";
|
|
14
|
+
title: string;
|
|
15
|
+
example: string;
|
|
16
|
+
run: typeof viewAccountSummary;
|
|
17
|
+
})[];
|
|
18
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/account/commands.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;IAiBK,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { viewAccountSummary } from './read.js';
|
|
2
|
+
import { writeAccount } from './write.js';
|
|
3
|
+
export const ACCOUNT_COMMANDS = [
|
|
4
|
+
{
|
|
5
|
+
kind: 'write',
|
|
6
|
+
key: 'bill.account.write',
|
|
7
|
+
shape: 'receipt',
|
|
8
|
+
title: '账户管理',
|
|
9
|
+
example: 'bill-cmd-read bill.account.write --params \'{"op":"add"}\'',
|
|
10
|
+
run: writeAccount,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
kind: 'read',
|
|
14
|
+
key: 'bill.account.query',
|
|
15
|
+
shape: 'list',
|
|
16
|
+
title: '账户汇总',
|
|
17
|
+
example: 'bill-cmd-read bill.account.query',
|
|
18
|
+
run: viewAccountSummary,
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/account/commands.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,4DAA4D;QACrE,GAAG,EAAE,YAAY;KAClB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,kCAAkC;QAC3C,GAAG,EAAE,kBAAkB;KACxB;CAC+B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** #721 · 账户域的**域声明**(手写、唯一事实源)。
|
|
2
|
+
*
|
|
3
|
+
* 一条唤醒词的字面量只准住在这里(判据=`test/t721-判据与摘要锁.test.mjs` 扫非声明件);
|
|
4
|
+
* 场景的 `wake_word` 是投影、不写——词条拥有它;二级组按场景 id 指回词条名下的场景。
|
|
5
|
+
* 合并方:`src/triggers/wakeTable.ts`(词表+路由+派生)与 `src/triggers/wake-assets.ts`(HELP 目录)。
|
|
6
|
+
*/
|
|
7
|
+
import type { DomainDeclaration } from '../triggers/routeSpec.js';
|
|
8
|
+
export declare const ACCOUNT_DECLARATION: DomainDeclaration;
|
|
9
|
+
//# sourceMappingURL=declaration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../src/account/declaration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,mBAAmB,EAAE,iBAoEjC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export const ACCOUNT_DECLARATION = {
|
|
2
|
+
id: 'account',
|
|
3
|
+
label: '账户',
|
|
4
|
+
icon: '💳',
|
|
5
|
+
order: 5,
|
|
6
|
+
entries: [
|
|
7
|
+
{
|
|
8
|
+
phrase: '新增账户',
|
|
9
|
+
key: 'bill.account.write',
|
|
10
|
+
preset: { op: 'add' },
|
|
11
|
+
needs: ['name'],
|
|
12
|
+
scenes: [
|
|
13
|
+
{
|
|
14
|
+
id: 'account_add',
|
|
15
|
+
title: '新增账户',
|
|
16
|
+
status: '',
|
|
17
|
+
prompt_template: '请加载「饼干记账」技能,帮我新增账户(唤醒词:新增账户):\n\n 账户名: ____ (如:招行卡 / 花呗)\n 类 型: ____ (选填,如:银行卡 / 支付 / 信用)\n',
|
|
18
|
+
types: ['采集'],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
phrase: '改账户',
|
|
24
|
+
key: 'bill.account.write',
|
|
25
|
+
preset: { op: 'update' },
|
|
26
|
+
needs: ['name'],
|
|
27
|
+
scenes: [
|
|
28
|
+
{
|
|
29
|
+
id: 'account_update',
|
|
30
|
+
title: '修改账户',
|
|
31
|
+
status: '',
|
|
32
|
+
prompt_template: '请加载「饼干记账」技能,帮我修改账户(唤醒词:改账户):\n\n 账 户: ____ (如:招行卡)\n 改成什么: ____ (如:改名「招行工资卡」 / 停用)\n',
|
|
33
|
+
types: ['选择'],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
phrase: '账户转账',
|
|
39
|
+
key: 'bill.account.write',
|
|
40
|
+
preset: { op: 'transfer' },
|
|
41
|
+
needs: ['amount', 'from', 'to'],
|
|
42
|
+
scenes: [
|
|
43
|
+
{
|
|
44
|
+
id: 'account_transfer',
|
|
45
|
+
title: '账户间转账',
|
|
46
|
+
status: '',
|
|
47
|
+
prompt_template: '请加载「饼干记账」技能,帮我做账户间转账(唤醒词:账户转账):\n\n 金 额: ____\n 从账户: ____ (如:支付宝)\n 到账户: ____ (如:招行卡)\n 时 间: ____ (选填,默认现在)\n',
|
|
48
|
+
types: ['采集'],
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
phrase: '看账户汇总',
|
|
54
|
+
key: 'bill.account.query',
|
|
55
|
+
scenes: [
|
|
56
|
+
{
|
|
57
|
+
id: 'account_summary',
|
|
58
|
+
title: '查看账户汇总',
|
|
59
|
+
status: '',
|
|
60
|
+
prompt_template: '请加载「饼干记账」技能,帮我看账户汇总(唤醒词:看账户汇总):\n',
|
|
61
|
+
types: ['查看'],
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
subgroups: [
|
|
67
|
+
{ id: 'account_1', label: '账户管理', scenes: ['account_add', 'account_update', 'account_transfer', 'account_summary'] },
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../src/account/declaration.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,CAAC;IACR,OAAO,EAAE;QACP;YACE,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;YACrB,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,aAAa;oBACjB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,gGAAgG;oBACjH,KAAK,EAAE,CAAC,IAAI,CAAC;iBACd;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,gBAAgB;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,yFAAyF;oBAC1G,KAAK,EAAE,CAAC,IAAI,CAAC;iBACd;aACF;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YAC1B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;YAC/B,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,kBAAkB;oBACtB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,qHAAqH;oBACtI,KAAK,EAAE,CAAC,IAAI,CAAC;iBACd;aACF;SACF;QACD;YACE,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,iBAAiB;oBACrB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,mCAAmC;oBACpD,KAAK,EAAE,CAAC,IAAI,CAAC;iBACd;aACF;SACF;KACF;IACD,SAAS,EAAE;QACT,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAAE;KACrH;CACF,CAAC"}
|