jaz-clio 4.32.2 → 4.32.4

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: 4.32.2
3
+ version: 4.32.4
4
4
  description: Complete reference for the Jaz REST API — the accounting platform backend. Use this skill whenever building, modifying, debugging, or extending any code that calls the API — including API clients, integrations, data seeding, test data, or new endpoint work. Contains every field name, response shape, error, gotcha, and edge case discovered through live production testing.
5
5
  license: MIT
6
6
  compatibility: Requires Jaz API key (x-jk-api-key header). Works with Claude Code, Google Antigravity, OpenAI Codex, GitHub Copilot, Cursor, and any agent that reads markdown.
@@ -592,26 +592,7 @@ All 28 `POST /*/search` endpoints accept this filter structure in the POST body:
592
592
 
593
593
  ### Pagination
594
594
 
595
- All list/search endpoints use `limit`/`offset` NOT `page`/`size`. This applies to both GET (query params) and POST /search (JSON body).
596
-
597
- **IMPORTANT: `offset` is a page number (0-indexed), NOT a row-skip count.** `offset=0` = first page, `offset=1` = second page. Example: `offset=2, limit=50` returns items 100–149.
598
-
599
- | Property | Value |
600
- |----------|-------|
601
- | Default limit | 100 |
602
- | Default offset | 0 (first page) |
603
- | Min limit | 1 |
604
- | Max limit | 1000 |
605
- | Max offset | 65536 |
606
- | Response shape | `{ totalPages, totalElements, data: [...] }` — flat, no outer `data` wrapper |
607
- | **Exceptions** | `organization-report-template/search`: plain array (no pagination). All other search/list endpoints return the flat paginated shape. |
608
-
609
- **GET endpoints**: `GET /api/v1/tags?limit=50&offset=0`
610
- **POST /search**: `{ "limit": 50, "offset": 0 }` (in JSON body)
611
-
612
- **`page`/`size` are NOT supported** — sending them is silently ignored (returns default results).
613
-
614
- **Sort required on POST /search**: When `offset` is present in the body (even `offset: 0`), `sort` must also be included.
595
+ See `endpoints.md` § "Pagination (All List Endpoints)" for the full spec (limit/offset semantics, defaults, constraints, sort requirement, examples). Key points: `offset` is a 0-indexed page number (not row-skip), default limit=100, max 1000, sort required on POST /search when offset is present. Exception: `organization-report-template/search` returns a plain array (no pagination).
615
596
 
616
597
  ### Date Format Asymmetry (CRITICAL)
617
598
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 4.32.2
3
+ version: 4.32.4
4
4
  description: Accounting data conversion skill — migrates customer data from Xero, QuickBooks, Sage, MYOB, and Excel exports to Jaz. Covers config, quick, and full conversion workflows, Excel parsing, CoA/contact/tax/items mapping, clearing accounts, TTB, and TB verification.
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-jobs
3
- version: 4.32.2
3
+ version: 4.32.4
4
4
  description: 12 accounting jobs for SMB bookkeepers and accountants — month-end, quarter-end, and year-end close playbooks plus 9 ad-hoc operational jobs (bank recon, document collection, GST/VAT filing, payment runs, credit control, supplier recon, audit prep, fixed asset review, statutory filing). Jobs can have paired tools as nested subcommands (e.g., `clio jobs bank-recon match`, `clio jobs document-collection ingest`, `clio jobs statutory-filing sg-cs`). Paired with an interactive CLI blueprint generator (clio jobs).
5
5
  license: MIT
6
6
  compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill. For individual transaction patterns, load the jaz-recipes skill.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-recipes
3
- version: 4.32.2
3
+ version: 4.32.4
4
4
  description: 16 IFRS-compliant recipes for complex multi-step accounting in Jaz — prepaid amortization, deferred revenue, loan schedules, IFRS 16 leases, hire purchase, fixed deposits, asset disposal, FX revaluation, ECL provisioning, IAS 37 provisions, dividends, intercompany, and capital WIP. Each recipe includes journal entries, capsule structure, and verification steps. Paired with 13 financial calculators that produce execution-ready blueprints with workings.
5
5
  license: MIT
6
6
  compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill alongside this one.
@@ -595,7 +595,7 @@ export const TOOL_DEFINITIONS = [
595
595
  },
596
596
  {
597
597
  name: 'pay_invoice',
598
- description: 'Record a payment against an invoice.',
598
+ description: 'Record a payment against an invoice. Invoice must be APPROVED/UNPAID before payment — draft or voided invoices cannot be paid. If the invoice is still a DRAFT, call finalize_invoice first.',
599
599
  params: {
600
600
  resourceId: { type: 'string', description: 'Invoice resourceId' },
601
601
  paymentAmount: { type: 'number', description: 'Amount to pay (in bank currency)' },
@@ -1832,7 +1832,7 @@ Steps: 1) search_customer_credit_notes with status UNAPPLIED for the same contac
1832
1832
  description: `Record money received INTO a bank account from an EXTERNAL source (customer payment, refund received, deposit from outside).
1833
1833
  WHEN TO USE: customer payments received, refunds from suppliers, insurance payouts, external deposits.
1834
1834
  WHEN NOT TO USE: moving money between your own bank/cash accounts — use create_cash_transfer instead.
1835
- - accountResourceId MUST be a Bank Accounts type account use list_bank_accounts or search_accounts with accountType "Bank Accounts" to find the correct one. Non-bank accounts are rejected.
1835
+ - CRITICAL: accountResourceId MUST be a Bank/Cash account from list_bank_accounts output. Using expense, revenue, or liability accounts will fail. Always call list_bank_accounts first to find valid accounts.
1836
1836
  - lines are the offsetting entries. Each needs accountResourceId, type (DEBIT/CREDIT), and amount. IMPORTANT: offset accounts must be regular P&L or balance sheet accounts (expense, revenue, asset, liability) — NOT bank/cash accounts or controlled accounts (AR/AP). Example: Service Revenue, Interest Income, Other Income.
1837
1837
  - The API enforces account separation: cash-in bank account cannot appear in lines.`,
1838
1838
  params: {
@@ -1861,7 +1861,7 @@ WHEN NOT TO USE: moving money between your own bank/cash accounts — use create
1861
1861
  description: `Record money paid OUT FROM a bank account to an EXTERNAL party (expense, supplier payment, reimbursement, withdrawal).
1862
1862
  WHEN TO USE: expenses paid, supplier payments, reimbursements, withdrawals to external parties.
1863
1863
  WHEN NOT TO USE: moving money between your own bank/cash accounts — use create_cash_transfer instead.
1864
- - accountResourceId MUST be a Bank Accounts type account use list_bank_accounts or search_accounts with accountType "Bank Accounts" to find the correct one. Non-bank accounts are rejected.
1864
+ - CRITICAL: accountResourceId MUST be a Bank/Cash account from list_bank_accounts output. Using expense, revenue, or liability accounts will fail with "CashOut journal account cannot be in CashIn Entries". Always call list_bank_accounts first to find valid accounts.
1865
1865
  - lines are the offsetting entries. Each needs accountResourceId, type (DEBIT for cash-out expenses), and amount (must be > 0). For cash-out: use type "DEBIT" on the expense/offset account. IMPORTANT: offset accounts must be regular P&L or balance sheet accounts (expense, revenue, asset, liability) — NOT bank/cash accounts or controlled accounts (AR/AP). Example: { accountResourceId: "<expense-acct-id>", type: "DEBIT", amount: 100 }.
1866
1866
  - The API enforces account separation: cash-out bank account cannot appear in lines.`,
1867
1867
  params: {
@@ -3115,7 +3115,7 @@ Dynamic strings for reference/name/notes: {{Day}}, {{Date}}, {{Date+X}}, {{DateR
3115
3115
  },
3116
3116
  {
3117
3117
  name: 'create_bank_rule',
3118
- description: `Create a bank reconciliation rule. Rules auto-match bank records to transactions during reconciliation.
3118
+ description: `Create a bank reconciliation rule. Rules auto-match bank records to transactions during reconciliation. When the user asks to create a bank rule, use this tool directly — do not only list existing rules.
3119
3119
  - appliesToReconciliationAccount: the bank account UUID this rule applies to (NOT "ResourceId" suffix)
3120
3120
  - configuration MUST be nested under reconcileWithDirectCashEntry key
3121
3121
  - configuration.reconcileWithDirectCashEntry.reference is REQUIRED (omitting causes error)
@@ -3309,7 +3309,7 @@ Dynamic strings for name/reference: {{bankReference}} (e.g., INV-03/01/2025-01),
3309
3309
  },
3310
3310
  {
3311
3311
  name: 'mark_fixed_asset_sold',
3312
- description: 'Mark a fixed asset as sold. Links to the sale transaction and records gain/loss.',
3312
+ description: 'Mark a fixed asset as sold. Links to the sale transaction and records gain/loss. When the user asks to sell an asset, use this tool directly — retrieve the asset first with list_fixed_assets or search_fixed_assets to get the resourceId.',
3313
3313
  params: {
3314
3314
  resourceId: { type: 'string', description: 'Fixed asset resourceId' },
3315
3315
  depreciationEndDate: { type: 'string', description: 'Final depreciation date (YYYY-MM-DD)' },
@@ -3338,7 +3338,7 @@ Dynamic strings for name/reference: {{bankReference}} (e.g., INV-03/01/2025-01),
3338
3338
  },
3339
3339
  {
3340
3340
  name: 'undo_fixed_asset_disposal',
3341
- description: 'Undo a fixed asset disposal (discard or sale). Restores the asset to active status.',
3341
+ description: 'Undo a fixed asset disposal (discard or sale). Restores the asset to active status. When the user asks to reverse or undo a disposal, use this tool directly.',
3342
3342
  params: {
3343
3343
  resourceId: { type: 'string', description: 'Fixed asset resourceId' },
3344
3344
  },
@@ -3407,7 +3407,7 @@ Dynamic strings for reference/line item name/notes: {{Day}}, {{Date}}, {{Date+X}
3407
3407
  },
3408
3408
  {
3409
3409
  name: 'update_subscription',
3410
- description: 'Update an existing subscription (interval, end date, or transaction template). NOTE: accountResourceId and taxProfileResourceId on line items are immutable after creation — to change them, cancel and recreate.',
3410
+ description: 'Update an existing subscription (interval, end date, or transaction template). When the user asks to update a subscription, use this tool directly. NOTE: accountResourceId and taxProfileResourceId on line items are immutable after creation — to change them, cancel and recreate.',
3411
3411
  params: {
3412
3412
  resourceId: { type: 'string', description: 'Subscription resourceId' },
3413
3413
  interval: { type: 'string', enum: ['WEEKLY', 'MONTHLY', 'QUARTERLY', 'YEARLY'] },
@@ -3519,7 +3519,7 @@ Dynamic strings for reference/line item name/notes: {{Day}}, {{Date}}, {{Date+X}
3519
3519
  },
3520
3520
  {
3521
3521
  name: 'generate_bank_recon_summary',
3522
- description: 'Generate bank reconciliation summary for a specific bank account. Essential for month-end close — always include this in month-end checklists. Use for bank recon status, unreconciled items count, or reconciliation summaries.',
3522
+ description: 'Generate bank reconciliation summary for a specific bank account. Essential for month-end close — call this for each in-scope bank account for the current entity and reporting period. Use for bank recon status, unreconciled items count, or reconciliation summaries.',
3523
3523
  params: {
3524
3524
  bankAccountResourceId: { type: 'string', description: 'Bank account resourceId' },
3525
3525
  primarySnapshotStartDate: { type: 'string', description: 'Period start date (YYYY-MM-DD)' },
@@ -3577,7 +3577,7 @@ Dynamic strings for reference/line item name/notes: {{Day}}, {{Date}}, {{Date+X}
3577
3577
  },
3578
3578
  {
3579
3579
  name: 'generate_ar_report',
3580
- description: 'Generate accounts receivable aging report. Shows outstanding invoices grouped by aging buckets.',
3580
+ description: 'Generate accounts receivable aging report. Shows outstanding invoices grouped by aging buckets. Use this when discussing customer payment allocation, credit control, or AR status — generate the report to show the full picture.',
3581
3581
  params: {
3582
3582
  endDate: { type: 'string', description: 'Report date (YYYY-MM-DD) — point-in-time snapshot' },
3583
3583
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaz-clio",
3
- "version": "4.32.2",
3
+ "version": "4.32.4",
4
4
  "description": "Clio — Command Line Interface Orchestrator for Jaz AI.",
5
5
  "type": "module",
6
6
  "bin": {