jaz-clio 4.58.5 → 5.0.0

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/README.md CHANGED
@@ -3,11 +3,11 @@
3
3
  <p align="center">
4
4
  <a href="https://www.npmjs.com/package/jaz-clio"><img src="https://img.shields.io/npm/v/jaz-clio?style=for-the-badge&logo=npm" alt="npm"></a>
5
5
  <a href="https://www.npmjs.com/package/jaz-clio"><img src="https://img.shields.io/npm/dm/jaz-clio?style=for-the-badge&label=downloads" alt="npm downloads"></a>
6
- <img src="https://img.shields.io/badge/tools-266-blue?style=for-the-badge" alt="266 Tools">
6
+ <img src="https://img.shields.io/badge/tools-265-blue?style=for-the-badge" alt="265 Tools">
7
7
  <a href="https://github.com/teamtinvio/jaz-ai/blob/main/LICENSE"><img src="https://img.shields.io/github/license/teamtinvio/jaz-ai?style=for-the-badge&color=green" alt="License"></a>
8
8
  </p>
9
9
 
10
- 266 tools. 13 financial calculators. 12 job playbooks. 130 API rules. 16 IFRS recipes.
10
+ 265 tools. 13 financial calculators. 12 job playbooks. 130 API rules. 16 IFRS recipes.
11
11
 
12
12
  ```bash
13
13
  npm install -g jaz-clio
@@ -19,7 +19,7 @@ Requires **Node.js 18+** ([nodejs.org](https://nodejs.org)). Also fully compatib
19
19
 
20
20
  - [Three Ways In](#three-ways-in) — CLI, MCP, Skills
21
21
  - [CLI](#cli) — 53 command groups
22
- - [MCP Server](#mcp-server) — 266 tools for AI agents
22
+ - [MCP Server](#mcp-server) — 265 tools for AI agents
23
23
  - [Skills](#skills) — Teach any AI the Jaz API
24
24
  - [Setup](#setup) — Auth, multi-org, automation
25
25
 
@@ -51,7 +51,7 @@ clio search "overdue" # Find it across all entities
51
51
 
52
52
  ## MCP Server
53
53
 
54
- 266 CLI tools, available to any AI agent that speaks MCP. Runs locally — no cloud, no ports.
54
+ 265 CLI tools, available to any AI agent that speaks MCP. Runs locally — no cloud, no ports.
55
55
 
56
56
  **Claude Code:**
57
57
  ```bash
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 4.58.5
3
+ version: 5.0.0
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, 117 production gotchas, error
@@ -413,7 +413,7 @@ Bills, invoices, and credit notes share identical mandatory field specs. Adding
413
413
 
414
414
  132. **Manual-journal recon: caller provides ONLY the offset side(s)** — `reconcile_manual_journal` AUTO-ADDS the bank-side leg from the bank statement entry. If the caller sends both debit AND credit legs covering the bank side, the API doubles-up after auto-add → 422 "sum of debit and credit amounts are not equal in a journal". Send only the offset journal entries (the non-bank side); the API balances them against the bank entry.
415
415
 
416
- 133. **`reconcile_invoice_receipt` and `reconcile_bill_receipt` require statement-imported BSE** — the `bankStatementEntryResourceId` MUST come from a `bank import` (CSV/OFX/XLSX upload, BT type = `BANK_STATEMENT_ENTRY`). Entries from `bank add-records` produce BT type `BANK_RECORD` and are rejected with cryptic 422 "Invalid business transaction type". To bridge: import a CSV first OR file an API issue to widen acceptance.
416
+ 133. **`reconcile_invoice_receipt` and `reconcile_bill_receipt` gate on `paymentDirection`, not BSE entry type** — error code `INVALID_BUSINESS_TRANSACTION_TYPE_ERROR` ("Invalid business transaction type", 422) is misleadingly named. The actual gate is the BSE's `paymentDirection`. **`invoice_receipt` requires `PAYIN`** (AR money in positive amount in `bank add-records`, producing `credit_amount > 0`). **`bill_receipt` requires `PAYOUT`** (AP — money out — NEGATIVE amount, producing `debit_amount > 0`). `bank add-records` produces both directions based on amount sign. Statement-imported BSEs (`bank import`) also work direction is set from the CSV. No need for the async magic-OCR `bank import` path; sync `bank add-records` with the correct sign is sufficient.
417
417
 
418
418
  134. **Bulk-upsert FLAT vs NESTED variants** — for invoices and bills, there are TWO bulk-upsert endpoints. **FLAT** (`bulk_upsert_invoices` / `bulk_upsert_bills`) — one line per row, set at row level via `itemDescription` + `totalAmount` + `invoiceAccountResourceId` (or `billAccountResourceId`). **NESTED** (`bulk_upsert_invoice_line_items` / `bulk_upsert_bill_line_items`) — multi-line per row via nested `lineItems[]`, each with `itemDescription` + `quantity` + `unitPrice` + `accountResourceId`. Use FLAT when one line per transaction is fine (CSV import, simple bills); use NESTED when each transaction needs multiple lines. Sending `lineItems[]` to the FLAT endpoint silently ignores them and creates a $0 invoice.
419
419
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 4.58.5
3
+ version: 5.0.0
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,
@@ -25,20 +25,20 @@
25
25
 
26
26
  10. **The `customer` and `supplier` fields on contacts are booleans.** `{ "customer": true, "supplier": false }` -- not strings. A contact can be both customer and supplier simultaneously.
27
27
 
28
- 11. **Search returns results grouped by entity type, not a flat array.** `clio search "Acme" --json` returns `{ contacts: [...], sales: [...], purchases: [...], ... }`. Each key may be empty. Always access the specific entity key you need.
28
+ 11. **`clio schema` is for tool introspection, not data.** `clio schema --json` lists command groups and tool counts. `clio schema invoices --json` shows tool definitions. `clio schema invoices create --json` shows parameter schema. None of these hit the API.
29
29
 
30
- 12. **`clio schema` is for tool introspection, not data.** `clio schema --json` lists command groups and tool counts. `clio schema invoices --json` shows tool definitions. `clio schema invoices create --json` shows parameter schema. None of these hit the API.
30
+ 12. **Job blueprints output plain text by default.** `clio jobs month-end` prints a checklist. Add `--json` for structured output. Some job tools (`match`, `outstanding`, `sg-cs`) require auth; blueprint generators are offline.
31
31
 
32
- 13. **Job blueprints output plain text by default.** `clio jobs month-end` prints a checklist. Add `--json` for structured output. Some job tools (`match`, `outstanding`, `sg-cs`) require auth; blueprint generators are offline.
32
+ 13. **Capsule-transaction recipes: always `--plan` first.** `clio ct loan --plan` shows what accounts and transactions will be created, offline. Only run without `--plan` when you know the account mapping is correct. Recipes create real finalized transactions.
33
33
 
34
- 14. **Capsule-transaction recipes: always `--plan` first.** `clio ct loan --plan` shows what accounts and transactions will be created, offline. Only run without `--plan` when you know the account mapping is correct. Recipes create real finalized transactions.
34
+ 14. **The `--input` flag reads JSON from a file.** For complex payloads (multi-line-item invoices, detailed journals), write JSON to a temp file and pass `--input payload.json` instead of long `--lines` flags with shell escaping issues. When `--input` is provided, all other body flags are ignored.
35
35
 
36
- 15. **The `--input` flag reads JSON from a file.** For complex payloads (multi-line-item invoices, detailed journals), write JSON to a temp file and pass `--input payload.json` instead of long `--lines` flags with shell escaping issues. When `--input` is provided, all other body flags are ignored.
36
+ 15. **`bills draft list` (also `invoices/customer-credit-notes/supplier-credit-notes draft list`) fans out one attachment lookup per draft** (5 in flight). On accounts with hundreds of drafts this hangs >30s by default. Pass `--max-rows 10` for spot checks. Long-term: a `--with-attachments` flag is on the roadmap.
37
37
 
38
- 16. **`bills draft list` (also `invoices/customer-credit-notes/supplier-credit-notes draft list`) fans out one attachment lookup per draft** (5 in flight). On accounts with hundreds of drafts this hangs >30s by default. Pass `--max-rows 10` for spot checks. Long-term: a `--with-attachments` flag is on the roadmap.
38
+ 16. **Bulk-upsert is TWO endpoints per entity for invoices/bills.** `clio invoices bulk-upsert` is FLAT (one line per row via `itemDescription` + `totalAmount` + `invoiceAccountResourceId` at row level). `clio invoices bulk-upsert-line-items` is NESTED (multi-line via `lineItems[]`). Sending `lineItems[]` to FLAT is silently ignored $0 invoices. Match your data shape to the variant.
39
39
 
40
- 17. **Bulk-upsert is TWO endpoints per entity for invoices/bills.** `clio invoices bulk-upsert` is FLAT (one line per row via `itemDescription` + `totalAmount` + `invoiceAccountResourceId` at row level). `clio invoices bulk-upsert-line-items` is NESTED (multi-line via `lineItems[]`). Sending `lineItems[]` to FLAT is silently ignored $0 invoices. Match your data shape to the variant.
40
+ 17. **Reconciliation `lineItems[]` use `name` + `organizationAccountResourceId`.** The `reconciliations invoice-receipt` and `reconciliations bill-receipt` payloads use a DIFFERENT line-item field naming than `bulk-upsert-line-items`. Recon-create uses `name` (description) + `organizationAccountResourceId` (revenue/expense account). Bulk uses `itemDescription` + `accountResourceId`. Don't copy-paste line-items between the two.
41
41
 
42
- 18. **Reconciliation `lineItems[]` use `name` + `organizationAccountResourceId`.** The `reconciliations invoice-receipt` and `reconciliations bill-receipt` payloads use a DIFFERENT line-item field naming than `bulk-upsert-line-items`. Recon-create uses `name` (description) + `organizationAccountResourceId` (revenue/expense account). Bulk uses `itemDescription` + `accountResourceId`. Don't copy-paste line-items between the two.
42
+ 18. **`reconciliations invoice-receipt` / `bill-receipt` gate on `paymentDirection`, not BSE type.** The 422 error code "Invalid business transaction type" is misleadingly named — the actual API check is on the BSE's `paymentDirection`. **`invoice-receipt` requires `PAYIN`** (positive amount via `clio bank add-records` `credit_amount > 0`). **`bill-receipt` requires `PAYOUT`** (NEGATIVE amount `debit_amount > 0`). Statement-imported BSEs (`clio bank import`) also work — direction is set from the CSV. For programmatic seeding, `clio bank add-records` with the correct sign is sync, fast, and reliable; no need for the async magic-OCR `bank import` path.
43
43
 
44
- 19. **`reconciliations invoice-receipt` / `bill-receipt` require statement-imported BSE.** The bank statement entry must come from `clio bank import` (CSV/OFX/XLSX upload produces `BANK_STATEMENT_ENTRY` type). Entries from `clio bank add-records` produce `BANK_RECORD` type and get rejected with cryptic 422 "Invalid business transaction type". For programmatic seeding use `bank import` with a tiny CSV.
44
+ 19. **No universal/cross-entity search.** The previous `clio search <q>` (Typesense-backed grouped search) was removed it was FE-typeahead infrastructure. For agent/programmatic search use the structured `--query` syntax on per-entity search commands (`clio invoices search --query "..."`, `clio bills search --query "..."`, etc.). See `references/search-syntax.md` (in api skill) for the full DSL: AND/OR/NOT, parentheses, amount ranges (`$500+`, `$100-500`), date ranges (`date:-30d`, `date:jan-mar 2025`), wildcards, and entity-specific fields.
@@ -366,10 +366,6 @@ Also: `clio reports pdf` — generate PDF from a message/document.
366
366
  | `status <workflowIds>` | Comma-separated workflow IDs |
367
367
  | `search` | `--type`, `--status`, `--from`, `--to`, `--limit`, `--offset` |
368
368
 
369
- ### `clio search <query>` — Universal cross-entity search
370
- Searches contacts, invoices, bills, credit notes, items. Returns grouped results.
371
- Flags: `--limit`, `--json`
372
-
373
369
  ### `clio quick-fix <entity>` — Bulk-update transactions
374
370
  Entities: `invoices`, `bills`, `customer-credit-notes`, `supplier-credit-notes`, `journals`, `cash-entries`, `sale-schedules`, `purchase-schedules`, `subscription-schedules`, `journal-schedules`
375
371
 
@@ -172,10 +172,10 @@ clio ct depreciation \
172
172
  Find transactions matching criteria and bulk-update them.
173
173
 
174
174
  ```bash
175
- # Universal search across all entities
176
- clio search "Acme" --json
175
+ # Search invoices via structured --query syntax (see api skill: references/search-syntax.md)
176
+ clio invoices search --query "customer:acme AND status:unpaid AND \$500+" --json
177
177
 
178
- # Search invoices with specific filters
178
+ # Or with discrete flags
179
179
  clio invoices search --contact "Acme Corp" --status DRAFT --from 2026-01-01 --json
180
180
 
181
181
  # Extract IDs of matching drafts
@@ -66,37 +66,6 @@ clio invoices get "$ID" --json # Now you have the full record
66
66
 
67
67
  ---
68
68
 
69
- ## Search Command (Multi-Entity)
70
-
71
- Universal search returns results grouped by entity type.
72
-
73
- ```bash
74
- clio search "Acme" --json
75
- ```
76
-
77
- ```json
78
- {
79
- "contacts": [],
80
- "sales": [],
81
- "purchases": [],
82
- "journals": [],
83
- "credit_notes": [],
84
- "sale_items": [],
85
- "purchase_items": [],
86
- "sale_credit_note_items": [],
87
- "purchase_credit_note_items": [],
88
- "supplier_notes": []
89
- }
90
- ```
91
-
92
- **jq examples:**
93
- ```bash
94
- clio search "Acme" --json | jq '.contacts[] | {name, resourceId}'
95
- clio search "laptop" --json | jq 'to_entries | map({key, count: (.value | length)})'
96
- ```
97
-
98
- ---
99
-
100
69
  ## Calc Commands (Calculator Output)
101
70
 
102
71
  Offline calculators return structured results with an amortization schedule.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 4.58.5
3
+ version: 5.0.0
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-jobs
3
- version: 4.58.5
3
+ version: 5.0.0
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,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-recipes
3
- version: 4.58.5
3
+ version: 5.0.0
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