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.
- package/assets/skills/api/SKILL.md +2 -2
- package/assets/skills/cli/SKILL.md +1 -1
- package/assets/skills/cli/references/command-catalog.md +1 -1
- package/assets/skills/cli/references/common-workflows.md +3 -2
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/jaz-kit/SKILL.md +1 -1
- package/assets/skills/jaz-pseudo-sql/SKILL.md +1 -1
- package/assets/skills/jobs/SKILL.md +2 -2
- package/assets/skills/jobs/references/bank-recon.md +2 -2
- package/assets/skills/jobs/references/month-end-close.md +2 -2
- package/assets/skills/transaction-recipes/SKILL.md +1 -1
- package/cli.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jaz-api
|
|
3
|
-
version: 5.32.
|
|
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
|
|
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
|
|
|
@@ -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 <
|
|
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
|
-
#
|
|
54
|
-
clio bank
|
|
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-jobs
|
|
3
|
-
version: 5.32.
|
|
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(
|
|
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(
|
|
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(
|
|
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.
|
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
|
|
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).
|