jaz-clio 5.32.0 → 5.32.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill whenever you call, debug, or review code that touches the Jaz
6
6
  REST API. Covers field names, response shapes, 158 production gotchas, error
@@ -539,7 +539,7 @@ When the user wants to OPEN, SEE, or SHARE something in the Jaz dashboard ("open
539
539
  - **`reconcile_magic_match`** — bulk-accept MAGIC_MATCH suggestions (max 500 entries). Returns `{reconciled[], failed[]}` — a 200 with non-empty `failed[]` is a PARTIAL success (per-entry `errorCode`); loop on failed only. Entry-level idempotency-keyed server-side (re-submit returns done entries in `reconciled[]`).
540
540
  - **`reconcile_learned_prediction`** — accept an ML prediction. `predictedPayload` + `predictedPayloadSchemaVersion` come VERBATIM from a `view_auto_reconciliation` (MAGIC_RECONCILE_WITH_CASH_IN_OUT) suggestion — never hand-construct. `retryToken` forces a fresh journal on edit-retry; omit for idempotent replay. On failure (stale payload), fall back to `reconcile_with_payments` — don't retry the blob.
541
541
 
542
- 159. **`view_auto_reconciliation` returns execution-ready `suggestions[]` — the suggestion→commit seam.** Each suggestion carries `recommendedTool` (the commit tool to call), `execute` (ready-to-pass args — merge `bankAccountResourceId` for `reconcile_magic_match`), `confidenceTier` (high/medium/low, code-derived), and `autoCommitEligible` (true ⇒ high confidence + executable plan + under any `autoCommitMaxAmount` cap). **Decision gate:** `autoCommitEligible===true` → auto-commit via `recommendedTool`+`execute`; everything else → surface for confirmation. **Amount threshold is a HARD VETO over confidence** (pass `autoCommitMaxAmount`). Field mapping under the hood: `cftBtResourceId`→`cashflowTransactionResourceId` (single → `reconcile_with_payments`), `cftBtResourceIds[]`/`isBatch`→`matchedBusinessTransactions` (batch → `reconcile_magic_match`), `recommendationType`→tool, `confidenceScore`→tier. Pass `includeRaw:true` for the unmapped payload. On 500 (high-volume OOM) it returns `{degraded:true}` — scope by period or use the `clio jobs bank-recon match` cascade. NOT idempotent applies to every commit — see Rules 125 + 158.
542
+ 159. **`view_auto_reconciliation` returns execution-ready `suggestions[]` — the suggestion→commit seam.** **`bankStatementEntryResourceIds` is REQUIRED — the endpoint is per-entry and has no account-wide mode; source ids from `search_bank_records` (status `UNRECONCILED`).** Each suggestion carries `recommendedTool` (the commit tool to call), `execute` (ready-to-pass args — merge `bankAccountResourceId` for `reconcile_magic_match`), `confidenceTier` (high/medium/low, code-derived), and `autoCommitEligible` (true ⇒ high confidence + executable plan + under any `autoCommitMaxAmount` cap). **Decision gate:** `autoCommitEligible===true` → auto-commit via `recommendedTool`+`execute`; everything else → surface for confirmation. **Amount threshold is a HARD VETO over confidence** (pass `autoCommitMaxAmount`). Field mapping under the hood: `cftBtResourceId`→`cashflowTransactionResourceId` (single → `reconcile_with_payments`), `cftBtResourceIds[]`/`isBatch`→`matchedBusinessTransactions` (batch → `reconcile_magic_match`), `recommendationType`→tool, `confidenceScore`→tier. Pass `includeRaw:true` for the unmapped payload. Cost tracks the entries you pass — batch large backlogs. On 500 it returns `{degraded:true}` — use the `clio jobs bank-recon match` cascade. NOT idempotent applies to every commit — see Rules 125 + 158.
543
543
 
544
544
  ## See Also
545
545
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill when running Clio CLI commands, building shell scripts with
6
6
  Clio, debugging auth issues, understanding --json output, paginating results,
@@ -300,7 +300,7 @@ EmploymentType: `FULL_TIME` · `PART_TIME` · `CONTRACTOR` · `INTERN` · `TEMPO
300
300
  | `records <accountId>` | `--from`, `--to`, `--status`, `--description`, `--limit`, `--offset`, `--all` |
301
301
  | `add-records <accountId>` | `--input` (JSON array of bank records) |
302
302
  | `import <accountId> <file>` | Supports CSV, OFX, XLS, XLSX |
303
- | `auto-recon <accountId>` | Trigger auto-reconciliation |
303
+ | `auto-recon` | READ-ONLY reconciliation suggestions. `--type <workflow>` and `--entries <id,...>` are both REQUIRED (per-entry; no account-wide mode). `--account` optional. |
304
304
 
305
305
  ### `clio bank-rules` — Bank reconciliation rules
306
306
  | Subcommand | Key flags |
@@ -50,8 +50,9 @@ BANK_ID="<bank-account-resourceId>"
50
50
  # Import statement file (CSV, OFX, XLS, or XLSX)
51
51
  clio bank import "$BANK_ID" ./march-2026-statement.csv
52
52
 
53
- # Trigger auto-reconciliation
54
- clio bank auto-recon "$BANK_ID"
53
+ # Reconciliation suggestions (READ-ONLY, per-entry — --type and --entries are required)
54
+ ENTRY_IDS=$(clio bank records "$BANK_ID" --status UNRECONCILED --limit 20 --json | jq -r '[.data[].resourceId] | join(",")')
55
+ clio bank auto-recon --account "$BANK_ID" --type MAGIC_MATCH --entries "$ENTRY_IDS"
55
56
 
56
57
  # Review unreconciled records
57
58
  clio bank records "$BANK_ID" --status UNRECONCILED --from 2026-03-01 --to 2026-03-31 --json
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill when migrating accounting data into Jaz — importing from Xero,
6
6
  QuickBooks, Sage, MYOB, or Excel exports. Covers the full conversion pipeline:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-kit
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill when an accountant, bookkeeper, or owner is running real books
6
6
  in Jaz across one or more organizations from the terminal — setting up a
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-pseudo-sql
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill when answering ad-hoc data questions that aren't covered by
6
6
  download_export (canonical reports — anomaly, audit, aging, P&L, BS, GL,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-jobs
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill for recurring accounting workflows — month/quarter/year-end
6
6
  close, bank reconciliation, GST/VAT filing, payment runs, credit control,
@@ -55,7 +55,7 @@ Period-close jobs build on each other. Quarter = month + extras. Year = quarter
55
55
 
56
56
  | Job | CLI (local convenience) | Description |
57
57
  |-----|-------------------------|-------------|
58
- | **Bank Recon** | `clio jobs bank-recon` | Clear unreconciled items: match, categorize, resolve. **Match to EXISTING open bills/invoices/payments (`reconcile_with_payments`) is the primary path — create-new only when nothing matches.** Drive end-to-end via the `view_auto_reconciliation` decision gate (auto-commit high-confidence, checkpoint the rest — see `references/bank-recon.md` Step 4a). Cascade matcher: `clio jobs bank-recon match`. |
58
+ | **Bank Recon** | `clio jobs bank-recon` | Clear unreconciled items: match, categorize, resolve. **Match to EXISTING open bills/invoices/payments (`reconcile_with_payments`) is the primary path — create-new only when nothing matches.** Drive end-to-end via the `view_auto_reconciliation` decision gate — per-entry, so fetch ids with `search_bank_records` first (auto-commit high-confidence, checkpoint the rest — see `references/bank-recon.md` Step 4a). Cascade matcher: `clio jobs bank-recon match`. |
59
59
  | **Document Collection** | `clio jobs document-collection` | Scan and classify client documents from local directories and cloud links (Dropbox, Drive, OneDrive). Outputs file paths for upload via Jaz Magic. Ingest helper: `clio jobs document-collection ingest`. |
60
60
  | **GST/VAT Filing** | `clio jobs gst-vat --period YYYY-QN` | Tax ledger review, discrepancy check, filing summary. |
61
61
  | **Payment Run** | `clio jobs payment-run` | Select outstanding bills by due date, process payments. |
@@ -9,7 +9,7 @@
9
9
  - **`search_accounts(filter: {accountType: {eq: 'Bank Accounts'}})`** — step 1 alternative: same data via standard CoA-search envelope if downstream wants pagination.
10
10
  - **`search_bank_records(accountResourceId: <id>, status: 'UNRECONCILED', valueDateRange: {from, to}, limit: 200, sort: 'valueDate:asc')`** — step 2: per-account work queue.
11
11
  - **`search_bank_records(accountResourceId: <id>, status: 'POSSIBLE_DUPLICATE')`** — step 3: handle dups FIRST or you'll double-create reconciling them.
12
- - **`view_auto_reconciliation(bankAccountResourceId: <id>, recommendationType: 'MAGIC_MATCH' | 'MAGIC_RECONCILE_WITH_CASH_TRANSFER' | 'MAGIC_RECONCILE_WITH_BANK_RULE' | 'MAGIC_QUICK_RECONCILE' | 'MAGIC_RECONCILE_WITH_CASH_IN_OUT', autoCommitMaxAmount?: <number>)`** — step 4: READ-ONLY auto-match suggestions. Returns **execution-ready `suggestions[]`** — each carries `recommendedTool`, `execute` (ready-to-pass args), `confidenceTier`, and `autoCommitEligible`. This is the entry point for the auto-match decision gate (step 4a). `MAGIC_RECONCILE_WITH_CASH_IN_OUT` returns Learned-Predictions. Does NOT write. NOTE: 500 quirk on high-volume accounts degrades to `{degraded:true}`; scope by period or fall back to the cascade matcher (see error table).
12
+ - **`view_auto_reconciliation(bankStatementEntryResourceIds: [<id>, ...], recommendationType: 'MAGIC_MATCH' | 'MAGIC_RECONCILE_WITH_CASH_TRANSFER' | 'MAGIC_RECONCILE_WITH_BANK_RULE' | 'MAGIC_QUICK_RECONCILE' | 'MAGIC_RECONCILE_WITH_CASH_IN_OUT', bankAccountResourceId?: <id>, autoCommitMaxAmount?: <number>)`** — step 4: READ-ONLY auto-match suggestions. **`bankStatementEntryResourceIds` is REQUIRED — this endpoint is per-entry and there is no account-wide mode.** Source the ids from `search_bank_records` with status `UNRECONCILED`. Pass `bankAccountResourceId` too: it is merged into each suggestion's `execute` args for `reconcile_magic_match`. Returns **execution-ready `suggestions[]`** — each carries `recommendedTool`, `execute` (ready-to-pass args), `confidenceTier`, and `autoCommitEligible`. This is the entry point for the auto-match decision gate (step 4a). `MAGIC_RECONCILE_WITH_CASH_IN_OUT` returns Learned-Predictions. Does NOT write. NOTE: cost tracks the entries you pass — batch large backlogs. On a 500 it degrades to `{degraded:true}`; fall back to the cascade matcher (see error table).
13
13
  - **`search_cashflow_transactions(filter: {organizationAccountResourceId: <bank-id>, totalAmount: {eq: <amt>}, valueDate: {between: [<-3d>, <+3d>]}})`** — step 5 manual match: search book-side transactions for the same amount within ±3 day window.
14
14
 
15
15
  ### Platform tools — execute reconciliation (NOT idempotent — see error table)
@@ -119,7 +119,7 @@ Returns matches with confidence scores: `exact` (Phase 1 hash), `fuzzy-high` (Ph
119
119
 
120
120
  ## Step 4a — Auto-match decision gate (the end-to-end driver)
121
121
 
122
- Call `view_auto_reconciliation`. It returns execution-ready `suggestions[]`. On high-volume accounts the engine can 500 (OOM) and the tool returns `{degraded:true}` — recover via the `clio jobs bank-recon match` cascade matcher (Step 4, above), which doesn't hit this endpoint. Walk the suggestions:
122
+ Call `search_bank_records` (status `UNRECONCILED`) to get the entry ids, then `view_auto_reconciliation` with `bankStatementEntryResourceIds`. It returns execution-ready `suggestions[]`. On high-volume accounts the engine can 500 (OOM) and the tool returns `{degraded:true}` — recover via the `clio jobs bank-recon match` cascade matcher (Step 4, above), which doesn't hit this endpoint. Walk the suggestions:
123
123
 
124
124
  - **`autoCommitEligible === true`** (high confidence, has an `execute` plan, under any amount cap) → **auto-commit**: call the suggestion's `recommendedTool` with its `execute` args. For many high-confidence matches, prefer ONE `reconcile_magic_match` call (server idempotency-keyed) over looping `reconcile_with_payments` (non-idempotent).
125
125
  - **everything else** (medium/low tier, `recommendedTool` undefined, CREATE-NEW, or amount over threshold) → **checkpoint**: surface to the user for confirmation. **The amount threshold is a HARD VETO over confidence** — a high-confidence but large match still checkpoints (pass `autoCommitMaxAmount` to enforce in code).
@@ -20,7 +20,7 @@
20
20
  - **`plan_recipe(recipe: 'ecl', ...)`** — step 13: top-up bad-debt provision based on `generate_aged_ar` buckets.
21
21
 
22
22
  ### Platform tools — reconciliation execution
23
- - **`view_auto_reconciliation(bankAccountResourceId: <id>)`** — step 3: READ-ONLY suggestions (does NOT write).
23
+ - **`view_auto_reconciliation(bankStatementEntryResourceIds: [<id>, ...])`** — step 3: READ-ONLY suggestions (does NOT write). Per-entry only; source ids from `search_bank_records` (status `UNRECONCILED`).
24
24
  - **`apply_bank_rule(...)`** — step 3: rule-driven recon.
25
25
  - **`quick_reconcile(...)` / `reconcile_direct_cash_entry(...)` / `reconcile_cash_journal(...)` / `reconcile_manual_journal(...)` / `reconcile_cash_transfer(...)` / `reconcile_invoice_receipt(...)` / `reconcile_bill_receipt(...)`** — step 3: per matched pair from the cascade.
26
26
 
@@ -76,7 +76,7 @@ For each bank account:
76
76
  1. If you don't already have the account's resourceId: `list_bank_accounts()`, match by `name + currency`, confirm with the user.
77
77
  2. `search_bank_records(accountResourceId: <bank account resourceId>, status: 'UNRECONCILED', valueDateRange: {from: '2025-01-01', to: '2025-01-31'}, limit: 200, sort: 'valueDate:asc')`.
78
78
  3. If results: drive the 5-phase cascade matcher (Step 4 in `bank-recon.md`; local CLI: `clio jobs bank-recon match --input <records> --tolerance 0.01 --date-window 14 --json`). For each match, invoke the matching `reconcile_*` tool.
79
- 4. `view_auto_reconciliation(bankAccountResourceId: <id>, recommendationType: 'MAGIC_MATCH')` — READ-ONLY suggestions for residuals; commit via `quick_reconcile` / `apply_bank_rule` / per-entry `reconcile_*`.
79
+ 4. `view_auto_reconciliation(bankStatementEntryResourceIds: [<id>, ...], recommendationType: 'MAGIC_MATCH')` — READ-ONLY suggestions for residuals (per-entry; get ids from `search_bank_records`, status `UNRECONCILED`); commit via `quick_reconcile` / `apply_bank_rule` / per-entry `reconcile_*`.
80
80
  5. `generate_bank_recon_summary(period_end: '2025-01-31', accountResourceId: <id>)`. Confirm `unreconciledCount == 0` OR document the residuals for the period and surface to the user.
81
81
 
82
82
  Full detail in `bank-recon.md`. NOT idempotent — see error table.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-recipes
3
- version: 5.32.0
3
+ version: 5.32.1
4
4
  description: >-
5
5
  Use this skill when modeling complex multi-step accounting transactions —
6
6
  anything that spans multiple periods, involves changing amounts, or requires
package/cli.mjs CHANGED
@@ -820,7 +820,7 @@ Required: name, appliesToReconciliationAccount (bank account UUID, no "ResourceI
820
820
 
821
821
  configuration MUST nest under reconcileWithDirectCashEntry: reference (REQUIRED), amountAllocationType ("PERCENTAGE" | "FIXED" \u2014 don't send "FIXED_AND_PERCENTAGE"), percentageAllocation[] / fixedAllocation[] of { organizationAccountResourceId, amount }. Advanced: column-value mapping \u2014 amountSourceColumnKey + the *Map fields drive amount/account/tax/classifier/contact/tags from a bank column (amount XOR amountSourceColumnKey).
822
822
 
823
- Optional fields, the minimum payload, and the mapping shape: jaz-api skill (bank rules). Dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}.`,params:{name:{type:"string",description:"Rule name \u2014 supports dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}"},appliesToReconciliationAccount:{type:"string",description:"Bank account UUID this rule applies to"},configuration:{type:"object",description:"MUST nest under reconcileWithDirectCashEntry key. reference is REQUIRED. See tool description for full structure."}},required:["name","appliesToReconciliationAccount","configuration"],group:"bank_rules",readOnly:!1,searchHint:"create automatic bank reconciliation rule",execute:async(t,e)=>az(t.client,e)},{name:"update_bank_rule",description:"Update an existing bank reconciliation rule. FULL REPLACEMENT \u2014 the API replaces the entire rule on update. You MUST provide the complete configuration, appliesToReconciliationAccount, and name every time. Use get_bank_rule first to read the current state, merge your changes, then call this tool with the full payload. Dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}.",params:{resourceId:{type:"string",description:"Bank rule resourceId"},name:{type:"string",description:"Rule name \u2014 supports dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}"},appliesToReconciliationAccount:{type:"string",description:"Bank account UUID this rule applies to (required for update \u2014 full replacement)"},configuration:{type:"object",description:"Full configuration object \u2014 must nest under reconcileWithDirectCashEntry key (same structure as create). reference is REQUIRED."}},required:["resourceId","name","appliesToReconciliationAccount","configuration"],group:"bank_rules",readOnly:!1,searchHint:"update bank rule conditions actions matching",execute:async(t,e)=>cz(t.client,e.resourceId,{resourceId:e.resourceId,name:e.name,appliesToReconciliationAccount:e.appliesToReconciliationAccount,configuration:e.configuration})},ki("delete_bank_rule","Delete a bank reconciliation rule.","bank_rules",(t,e)=>lz(t,e),"permanently delete a bank reconciliation rule"),{name:"view_auto_reconciliation",description:'Generate auto-reconciliation suggestions for specific bank statement entries (no account-wide mode). READ-ONLY \u2014 does NOT write. Returns execution-ready `suggestions[]`: each carries `recommendedTool` (the commit tool to call), `execute` (ready-to-pass args \u2014 merge bankAccountResourceId for reconcile_magic_match), `confidenceTier` (high/medium/low), and `autoCommitEligible` (true \u21D2 safe to commit without review). Drive the flow: for each suggestion, if `autoCommitEligible` call its `recommendedTool` with `execute`; otherwise surface for confirmation \u2014 pass `includeReviewDetails:true` to also get `review[]` (the not-auto lines enriched with the bank line + the matched bill/invoice) for a side-by-side "does this match?" card. Pass `includeRaw:true` to also get the unmapped payload. Cost tracks entries passed \u2014 batch large backlogs. On a 500 the tool returns `{degraded:true}`; recover via the `clio jobs bank-recon match` cascade matcher.',params:{bankAccountResourceId:{type:"string",description:"Bank account resourceId"},bankStatementEntryResourceIds:{type:"array",items:{type:"string"},description:"Entries to suggest for. Source from search_bank_statement_entries (unreconciled)."},recommendationType:{type:"string",enum:[...jM],description:"Type of recommendation to generate"},autoCommitMaxAmount:{type:"number",description:"Optional hard cap \u2014 a suggestion whose amount exceeds this is never autoCommitEligible (forces checkpoint)."},includeRaw:{type:"boolean",description:"Also return the raw unmapped generateMagicRecommendations payload (default false)."},includeReviewDetails:{type:"boolean",description:'Also return `review[]`: the lines needing human review (have a plan but NOT auto-committable), each enriched with the bank line (date, amount, counterparty) and the matched bill/invoice (reference + amount) \u2014 for an interactive side-by-side "does this match?" card. Default false (an extra bank-records + per-line lookup).'}},required:["recommendationType","bankStatementEntryResourceIds"],group:"bank",readOnly:!0,searchHint:"view automatic bank reconciliation matches suggestions execution ready",isConcurrencySafe:!0,execute:async(t,e)=>{let r=e.bankAccountResourceId,n;try{n=await t.client.post("/api/v1/search-magic-reconciliation",{bankAccountResourceId:r,recommendationType:e.recommendationType,bankStatementEntryResourceIds:e.bankStatementEntryResourceIds})}catch(s){let a=s.status??s.response?.status;if(a===404)return{notSupported:!0,reason:"Endpoint /search-magic-reconciliation not available"};if(a===500)return{degraded:!0,reason:"Suggestion engine returned 500 (likely high-volume OOM). Recover via the `clio jobs bank-recon match` cascade matcher, which does not hit this endpoint."};throw s}let i=Ynt(n,{bankAccountResourceId:r,autoCommitMaxAmount:e.autoCommitMaxAmount}),o=e.includeReviewDetails===!0?await Hnt(t.client,r,i):void 0;return{suggestions:i,...o?{review:o}:{},...e.includeRaw===!0?{raw:n}:{}}}},pr("list_fixed_assets","List fixed assets. Returns name, reference, type, category, status, purchase amount, net book value.","fixed_assets",(t,e,r)=>uz(t,{limit:r,offset:e}),"list fixed assets with depreciation status"),_i("get_fixed_asset","Get full fixed asset details including depreciation schedule, accounts, disposal info.","fixed_assets",(t,e)=>dz(t,e),"get fixed asset details depreciation schedule"),Vt({name:"search_fixed_assets",description:"Search fixed assets.",group:"fixed_assets",fields:VD,defaults:WD,fetcher:fz,searchHint:"find fixed assets FA register PPE by name status category tag type date amount range"}),{name:"create_fixed_asset",description:`Register a fixed asset linked to an existing purchase transaction (bill or journal).
823
+ Optional fields, the minimum payload, and the mapping shape: jaz-api skill (bank rules). Dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}.`,params:{name:{type:"string",description:"Rule name \u2014 supports dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}"},appliesToReconciliationAccount:{type:"string",description:"Bank account UUID this rule applies to"},configuration:{type:"object",description:"MUST nest under reconcileWithDirectCashEntry key. reference is REQUIRED. See tool description for full structure."}},required:["name","appliesToReconciliationAccount","configuration"],group:"bank_rules",readOnly:!1,searchHint:"create automatic bank reconciliation rule",execute:async(t,e)=>az(t.client,e)},{name:"update_bank_rule",description:"Update an existing bank reconciliation rule. FULL REPLACEMENT \u2014 the API replaces the entire rule on update. You MUST provide the complete configuration, appliesToReconciliationAccount, and name every time. Use get_bank_rule first to read the current state, merge your changes, then call this tool with the full payload. Dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}.",params:{resourceId:{type:"string",description:"Bank rule resourceId"},name:{type:"string",description:"Rule name \u2014 supports dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}"},appliesToReconciliationAccount:{type:"string",description:"Bank account UUID this rule applies to (required for update \u2014 full replacement)"},configuration:{type:"object",description:"Full configuration object \u2014 must nest under reconcileWithDirectCashEntry key (same structure as create). reference is REQUIRED."}},required:["resourceId","name","appliesToReconciliationAccount","configuration"],group:"bank_rules",readOnly:!1,searchHint:"update bank rule conditions actions matching",execute:async(t,e)=>cz(t.client,e.resourceId,{resourceId:e.resourceId,name:e.name,appliesToReconciliationAccount:e.appliesToReconciliationAccount,configuration:e.configuration})},ki("delete_bank_rule","Delete a bank reconciliation rule.","bank_rules",(t,e)=>lz(t,e),"permanently delete a bank reconciliation rule"),{name:"view_auto_reconciliation",description:'Generate auto-reconciliation suggestions for specific bank statement entries (no account-wide mode). READ-ONLY \u2014 does NOT write. Returns execution-ready `suggestions[]`: each carries `recommendedTool` (the commit tool to call), `execute` (ready-to-pass args \u2014 merge bankAccountResourceId for reconcile_magic_match), `confidenceTier` (high/medium/low), and `autoCommitEligible` (true \u21D2 safe to commit without review). Drive the flow: for each suggestion, if `autoCommitEligible` call its `recommendedTool` with `execute`; otherwise surface for confirmation \u2014 pass `includeReviewDetails:true` to also get `review[]` (the not-auto lines enriched with the bank line + the matched bill/invoice) for a side-by-side "does this match?" card. Pass `includeRaw:true` to also get the unmapped payload. Cost tracks entries passed \u2014 batch large backlogs. On a 500 the tool returns `{degraded:true}`; recover via the `clio jobs bank-recon match` cascade matcher.',params:{bankAccountResourceId:{type:"string",description:"Bank account resourceId"},bankStatementEntryResourceIds:{type:"array",items:{type:"string"},description:"Entries to suggest for. Source from search_bank_records (status UNRECONCILED)."},recommendationType:{type:"string",enum:[...jM],description:"Type of recommendation to generate"},autoCommitMaxAmount:{type:"number",description:"Optional hard cap \u2014 a suggestion whose amount exceeds this is never autoCommitEligible (forces checkpoint)."},includeRaw:{type:"boolean",description:"Also return the raw unmapped generateMagicRecommendations payload (default false)."},includeReviewDetails:{type:"boolean",description:'Also return `review[]`: the lines needing human review (have a plan but NOT auto-committable), each enriched with the bank line (date, amount, counterparty) and the matched bill/invoice (reference + amount) \u2014 for an interactive side-by-side "does this match?" card. Default false (an extra bank-records + per-line lookup).'}},required:["recommendationType","bankStatementEntryResourceIds"],group:"bank",readOnly:!0,searchHint:"view automatic bank reconciliation matches suggestions execution ready",isConcurrencySafe:!0,execute:async(t,e)=>{let r=e.bankAccountResourceId,n;try{n=await t.client.post("/api/v1/search-magic-reconciliation",{bankAccountResourceId:r,recommendationType:e.recommendationType,bankStatementEntryResourceIds:e.bankStatementEntryResourceIds})}catch(s){let a=s.status??s.response?.status;if(a===404)return{notSupported:!0,reason:"Endpoint /search-magic-reconciliation not available"};if(a===500)return{degraded:!0,reason:"Suggestion engine returned 500 (likely high-volume OOM). Recover via the `clio jobs bank-recon match` cascade matcher, which does not hit this endpoint."};throw s}let i=Ynt(n,{bankAccountResourceId:r,autoCommitMaxAmount:e.autoCommitMaxAmount}),o=e.includeReviewDetails===!0?await Hnt(t.client,r,i):void 0;return{suggestions:i,...o?{review:o}:{},...e.includeRaw===!0?{raw:n}:{}}}},pr("list_fixed_assets","List fixed assets. Returns name, reference, type, category, status, purchase amount, net book value.","fixed_assets",(t,e,r)=>uz(t,{limit:r,offset:e}),"list fixed assets with depreciation status"),_i("get_fixed_asset","Get full fixed asset details including depreciation schedule, accounts, disposal info.","fixed_assets",(t,e)=>dz(t,e),"get fixed asset details depreciation schedule"),Vt({name:"search_fixed_assets",description:"Search fixed assets.",group:"fixed_assets",fields:VD,defaults:WD,fetcher:fz,searchHint:"find fixed assets FA register PPE by name status category tag type date amount range"}),{name:"create_fixed_asset",description:`Register a fixed asset linked to an existing purchase transaction (bill or journal).
824
824
  - saveAsDraft defaults to true. Set to false to activate \u2014 requires ALL fields below.
825
825
  - ACTIVE assets require: purchaseBusinessTransactionType + purchaseBusinessTransactionResourceId
826
826
  (links to the bill/journal that recorded the purchase).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaz-clio",
3
- "version": "5.32.0",
3
+ "version": "5.32.1",
4
4
  "description": "Clio: Command Line Interface Operator for Jaz AI.",
5
5
  "type": "module",
6
6
  "bin": {