fix: preserve schema 15 compatibility for v0.1.8
This commit is contained in:
@@ -5,7 +5,6 @@ from typing import Literal
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import Literal
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from mcp.server.fastmcp import FastMCP
|
||||
@@ -119,9 +118,9 @@ def update_ledger_account(account_id: str, name: str | None = None, type: Litera
|
||||
return contracts.update_ledger_account(account_id, name=name, type=type, institution=institution, currency=currency, active=active, memo=memo, account_number_masked=account_number_masked, holder_name=holder_name, last_balance=last_balance, last_synced_at=last_synced_at, statement_status=statement_status, liquidity_bucket=liquidity_bucket, last_balance_basis_date=last_balance_basis_date)
|
||||
|
||||
@mcp.tool()
|
||||
def register_account_valuation(account_id: str, basis_date: str, amount: int, currency: str = "KRW", valuation_kind: str = "balance", source_type: str = "manual", source_ref: str = "", verification_status: str = "unverified", memo: str = "", idempotency_key: str = "", as_of_at: str | None = None, timezone: str | None = None, cost_basis: int | None = None, net_contributed: int | None = None, reported_principal_kind: str | None = None, reported_principal_label: str | None = None, profit: int | None = None, return_rate: float | None = None, return_basis: str | None = None, principal: int | None = None, interest: int | None = None, fee: int | None = None, representative_liability_definition: str | None = None) -> dict:
|
||||
"""Register an append-only account valuation evidence row."""
|
||||
return contracts.register_account_valuation(account_id, basis_date, amount, currency, valuation_kind, source_type, source_ref, verification_status, memo, idempotency_key, as_of_at, timezone, cost_basis, net_contributed, reported_principal_kind, reported_principal_label, profit, return_rate, return_basis, principal, interest, fee, representative_liability_definition)
|
||||
def register_account_valuation(account_id: str, basis_date: str, amount: int, currency: str = "KRW", valuation_kind: str = "balance", source_type: str = "manual", source_ref: str = "", verification_status: str = "unverified", memo: str = "", idempotency_key: str = "", as_of_at: str | None = None, timezone: str | None = None, cost_basis: int | None = None, net_contributed: int | None = None, reported_principal_kind: str | None = None, reported_principal_label: str | None = None, profit: int | None = None, return_rate: float | None = None, return_basis: str | None = None, principal: int | None = None, interest: int | None = None, fee: int | None = None, representative_liability_definition: str | None = None, monthly_settlement_id: str | None = None, liquidity_bucket: str | None = None, selection_policy: str = "manual", valuation_source: str = "manual", source_note: str = "") -> dict:
|
||||
"""Register legacy valuation evidence, or an unverified canonical snapshot when monthly_settlement_id is supplied."""
|
||||
return contracts.register_account_valuation(account_id, basis_date, amount, currency, valuation_kind, source_type, source_ref, verification_status, memo, idempotency_key, as_of_at, timezone, cost_basis, net_contributed, reported_principal_kind, reported_principal_label, profit, return_rate, return_basis, principal, interest, fee, representative_liability_definition, monthly_settlement_id=monthly_settlement_id, liquidity_bucket=liquidity_bucket, selection_policy=selection_policy, valuation_source=valuation_source, source_note=source_note)
|
||||
|
||||
@mcp.tool()
|
||||
def list_account_valuations(account_id: str, include_rejected: bool = True) -> dict:
|
||||
@@ -143,6 +142,26 @@ def get_asset_liquidity_report() -> dict:
|
||||
"""Return asset liquidity, debt, and net worth from shared account/manual valuation sources."""
|
||||
return contracts.get_asset_liquidity_report()
|
||||
|
||||
@mcp.tool()
|
||||
def list_manual_assets(active_only: bool = True) -> dict:
|
||||
"""List manual non-transaction assets/liabilities used for net-worth valuation."""
|
||||
return contracts.list_manual_assets(active_only=active_only)
|
||||
|
||||
@mcp.tool()
|
||||
def create_manual_asset(name: str, valuation_amount: int, valuation_date: str, liquidity_bucket: str, source_note: str, memo: str = "", currency: str = "KRW", active: bool = True) -> dict:
|
||||
"""Create a manual non-transaction asset/liability valuation row."""
|
||||
return contracts.create_manual_asset(name, valuation_amount, valuation_date, liquidity_bucket, source_note=source_note, memo=memo, currency=currency, active=active)
|
||||
|
||||
@mcp.tool()
|
||||
def update_manual_asset(asset_id: str, name: str | None = None, valuation_amount: int | None = None, valuation_date: str | None = None, liquidity_bucket: str | None = None, source_note: str | None = None, memo: str | None = None, currency: str | None = None, active: bool | None = None) -> dict:
|
||||
"""Update selected fields on a manual asset/liability valuation row."""
|
||||
return contracts.update_manual_asset(asset_id, name=name, valuation_amount=valuation_amount, valuation_date=valuation_date, liquidity_bucket=liquidity_bucket, source_note=source_note, memo=memo, currency=currency, active=active)
|
||||
|
||||
@mcp.tool()
|
||||
def deactivate_manual_asset(asset_id: str, hard_delete: bool = False) -> dict:
|
||||
"""Deactivate a manual asset/liability by default; hard delete only for exceptional cleanup."""
|
||||
return contracts.deactivate_manual_asset(asset_id, hard_delete=hard_delete)
|
||||
|
||||
@mcp.tool()
|
||||
def preview_asset_snapshot_close(basis_date: str = "", selection_policy: str = "exact") -> dict:
|
||||
"""Preview a month-end asset snapshot close without mutating the database."""
|
||||
@@ -477,3 +496,15 @@ def set_settlement_cashflow_policy(draft_id: str, expected_version: int, updated
|
||||
def get_monthly_settlement_snapshot(month: str = "", run_id: str = "") -> dict:
|
||||
"""Read a saved monthly settlement snapshot, optionally selecting an exact run."""
|
||||
return contracts.get_monthly_settlement_snapshot(month, run_id)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def list_monthly_settlement_history(month: str = "") -> dict:
|
||||
"""List immutable monthly settlement close and correction runs."""
|
||||
return contracts.list_monthly_settlement_history(month)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def get_monthly_settlement_history_record(run_id: str) -> dict:
|
||||
"""Read one immutable monthly settlement history record by run ID."""
|
||||
return contracts.get_monthly_settlement_history_record(run_id)
|
||||
|
||||
@@ -12,6 +12,8 @@ from ...service import (
|
||||
set_settlement_draft_item as set_settlement_draft_item,
|
||||
set_settlement_cashflow_policy as set_settlement_cashflow_policy,
|
||||
get_monthly_settlement_snapshot as get_monthly_settlement_snapshot,
|
||||
list_monthly_settlement_history as list_monthly_settlement_history,
|
||||
get_monthly_settlement_history_record as get_monthly_settlement_history_record,
|
||||
update_settlement_draft as update_settlement_draft,
|
||||
annotations as annotations,
|
||||
apply_categorization_rules as apply_categorization_rules,
|
||||
@@ -22,6 +24,8 @@ from ...service import (
|
||||
create_ledger_budget as create_ledger_budget,
|
||||
create_ledger_category as create_ledger_category,
|
||||
create_ledger_transaction as create_ledger_transaction,
|
||||
create_manual_asset as create_manual_asset,
|
||||
deactivate_manual_asset as deactivate_manual_asset,
|
||||
delete_category_rule as delete_category_rule,
|
||||
delete_ledger_category as delete_ledger_category,
|
||||
delete_ledger_transaction as delete_ledger_transaction,
|
||||
@@ -64,6 +68,7 @@ from ...service import (
|
||||
list_ledger_categories as list_ledger_categories,
|
||||
list_ledger_import_batches as list_ledger_import_batches,
|
||||
list_ledger_transactions as list_ledger_transactions,
|
||||
list_manual_assets as list_manual_assets,
|
||||
list_uncategorized_transactions as list_uncategorized_transactions,
|
||||
preview_asset_snapshot_close as preview_asset_snapshot_close,
|
||||
preview_categorization as preview_categorization,
|
||||
@@ -80,6 +85,7 @@ from ...service import (
|
||||
update_category_rule as update_category_rule,
|
||||
update_ledger_account as update_ledger_account,
|
||||
update_ledger_transaction as update_ledger_transaction,
|
||||
update_manual_asset as update_manual_asset,
|
||||
)
|
||||
|
||||
TOOL_CONTRACTS = {
|
||||
@@ -90,6 +96,7 @@ TOOL_CONTRACTS = {
|
||||
"set_settlement_draft_item", "review_settlement_draft",
|
||||
"approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
"list_monthly_settlement_history", "get_monthly_settlement_history_record",
|
||||
)
|
||||
}
|
||||
|
||||
@@ -99,6 +106,7 @@ __all__ = [
|
||||
"refresh_settlement_draft_targets", "review_settlement_draft",
|
||||
"set_settlement_draft_item", "update_settlement_draft",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
"list_monthly_settlement_history", "get_monthly_settlement_history_record",
|
||||
"annotations",
|
||||
"apply_categorization_rules",
|
||||
"close_asset_snapshot",
|
||||
@@ -108,6 +116,8 @@ __all__ = [
|
||||
"create_ledger_budget",
|
||||
"create_ledger_category",
|
||||
"create_ledger_transaction",
|
||||
"create_manual_asset",
|
||||
"deactivate_manual_asset",
|
||||
"delete_category_rule",
|
||||
"delete_ledger_category",
|
||||
"delete_ledger_transaction",
|
||||
@@ -150,6 +160,7 @@ __all__ = [
|
||||
"list_ledger_categories",
|
||||
"list_ledger_import_batches",
|
||||
"list_ledger_transactions",
|
||||
"list_manual_assets",
|
||||
"list_uncategorized_transactions",
|
||||
"preview_asset_snapshot_close",
|
||||
"preview_categorization",
|
||||
@@ -166,4 +177,5 @@ __all__ = [
|
||||
"update_category_rule",
|
||||
"update_ledger_account",
|
||||
"update_ledger_transaction",
|
||||
"update_manual_asset",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user