jaz-clio 5.21.0 → 5.23.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-356-blue?style=for-the-badge" alt="356 tools">
6
+ <img src="https://img.shields.io/badge/tools-357-blue?style=for-the-badge" alt="357 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
- 356 tools. 65 command groups. 13 calculators. 12 job playbooks. 158 API rules. 16 IFRS recipes.
10
+ 357 tools. 66 command groups. 13 calculators. 12 job playbooks. 158 API rules. 16 IFRS recipes.
11
11
 
12
12
  ```bash
13
13
  npm install -g jaz-clio
@@ -18,8 +18,8 @@ Requires **Node.js 18+** ([nodejs.org](https://nodejs.org)). Also fully compatib
18
18
  ## Contents
19
19
 
20
20
  - [Three Ways In](#three-ways-in) · CLI, MCP, Skills
21
- - [CLI](#cli) · 65 command groups
22
- - [MCP Server](#mcp-server) · 356 tools for AI agents
21
+ - [CLI](#cli) · 66 command groups
22
+ - [MCP Server](#mcp-server) · 357 tools for AI agents
23
23
  - [Skills](#skills) · Teach any AI the Jaz API
24
24
  - [Setup](#setup) · Auth, multi-org, automation
25
25
  - [Semantic help-center search](#help-center-semantic-search-optional) · Optional OpenAI-backed retrieval
@@ -48,13 +48,13 @@ clio invoices search --query 'status:unpaid AND $500+' # Structured per-entity
48
48
  clio invoices search --query 'status:unpaid' --view lean # Compact summary rows (id + key fields), then drill in with get
49
49
  ```
50
50
 
51
- 65 command groups. 16 report types. 13 calculators. 12 job playbooks. Every command supports `--json`. Run `clio --help` for the full list.
51
+ 66 command groups. 16 report types. 13 calculators. 12 job playbooks. Every command supports `--json`. Run `clio --help` for the full list.
52
52
 
53
53
  ---
54
54
 
55
55
  ## MCP Server
56
56
 
57
- 356 tools, available to any AI agent that speaks MCP. Runs locally: no cloud, no ports.
57
+ 357 tools, available to any AI agent that speaks MCP. Runs locally: no cloud, no ports.
58
58
 
59
59
  > **No install at all?** Claude.ai, ChatGPT, Cowork, and Microsoft Copilot Studio can use Jaz via the **hosted connector**: add `https://mcp.jaz.ai/mcp` as a custom connector (Claude/ChatGPT) or MCP tool (Copilot Studio) and sign in (OAuth, no key). The local setup below is for terminal use, scripting, and editors that run MCP servers as local processes.
60
60
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 5.21.0
3
+ version: 5.23.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, 158 production gotchas, error
@@ -519,7 +519,7 @@ Supports `--json` for structured output. 186 articles across 20 sections. Automa
519
519
 
520
520
  ## Dashboard Deep Links (navigation tools)
521
521
 
522
- When the user wants to OPEN, SEE, or SHARE something in the Jaz dashboard ("open this invoice", "take me to the P&L"), hand them a real URL via two agent (MCP) tools — deliberately no CLI command: `find_dashboard_destinations` discovers the destination key (filter by `query`/`resource`/`kind`; keys are named by product area, not task wording — on zero matches retry broader: "billing", not "card"), and `get_dashboard_url` turns a key into `{ url, kind, label }`. Screens are dotted route paths (`reports.profit-and-loss`); record modals are `<resource>.modal.<type>` (`sales.modal.view-sale`). Record-specific modals (view/edit/duplicate one record) REQUIRE `resourceId` — the same Jaz resourceId from the search/get that found the record; screens and create/"new" modals take none (a resourceId on a screen is rejected). NEVER write a dashboard URL by hand and NEVER guess a destination key — routes are not guessable, and a wrong link is worse than no link; if `get_dashboard_url` errors, follow its hint (near-matches + discovery pointer) and say the link could not be built rather than improvising one. The org query param is appended automatically when the surface knows the acting org; API-key surfaces open in the user's current org on the app.jaz.ai host. Examples: "open invoice INV-042" → `search_invoices` → `get_dashboard_url("sales.modal.view-sale", resourceId)`; "take me to the P&L" → `get_dashboard_url("reports.profit-and-loss")`; "where do I manage users?" → `find_dashboard_destinations("user")` → `get_dashboard_url("settings.modal.user_management")`.
522
+ When the user wants to OPEN, SEE, or SHARE something in the Jaz dashboard ("open this invoice", "take me to the P&L"), hand them a real URL via ONE agent (MCP) tool — deliberately no CLI command: `navigate`. Called with no `destination` it discovers destination keys (filter by `query`/`resource`/`kind`; keys are named by product area, not task wording — on zero matches retry broader: "billing", not "card"); called with a `destination` it turns the key into `{ url, kind, label }`. Screens are dotted route paths (`reports.profit-and-loss`); record modals are `<resource>.modal.<type>` (`sales.modal.view-sale`). Record-specific modals (view/edit/duplicate one record) REQUIRE `resourceId` — the same Jaz resourceId from the search/get that found the record; screens and create/"new" modals take none (a resourceId on a screen is rejected). NEVER write a dashboard URL by hand and NEVER guess a destination key — routes are not guessable, and a wrong link is worse than no link; if `navigate` errors, follow its hint (near-matches + discovery pointer) and say the link could not be built rather than improvising one. The org query param is appended automatically when the surface knows the acting org; API-key surfaces open in the user's current org on the app.jaz.ai host. Examples: "open invoice INV-042" → `search_invoices` → `navigate("sales.modal.view-sale", resourceId)`; "take me to the P&L" → `navigate("reports.profit-and-loss")`; "where do I manage users?" → `navigate(query: "user")` → `navigate("settings.modal.user_management")`. (The pre-merge tool names `find_dashboard_destinations` / `get_dashboard_url` still resolve as aliases.)
523
523
 
524
524
  ## Recommended Client Patterns
525
525
 
@@ -2355,4 +2355,53 @@ Note: `previewRows` keys are column **headers** (not paths). `filter` and `query
2355
2355
 
2356
2356
  ---
2357
2357
 
2358
- *Last updated: 2026-04-09 — Added: Contacts bulk-upsert (22), Background Jobs search (23), Export Records (24). Previous: 2026-03-13 — Payment record CRUD, nano-classifier, scheduler GET/PUT/DELETE.*
2358
+ ## 25. Jots (Judgment Journal)
2359
+
2360
+ ### POST /api/v1/jots
2361
+
2362
+ Batch-record judgment entries (1-100 per call). Per-entry independent: acks come back in input order, and a bad entry never fails the batch, it acks with `error` + `errorCode` while siblings persist. Rate valve: 600 writes per organization per minute.
2363
+
2364
+ ```json
2365
+ // Request
2366
+ {
2367
+ "entries": [
2368
+ {
2369
+ "kind": "CLASSIFICATION",
2370
+ "tier": "MEDIUM",
2371
+ "call": "Posted to 6420 Travel: recurring vendor pattern",
2372
+ "why": "Same vendor posted to 6420 in 11 prior bills",
2373
+ "refs": [{ "raw": "BILL:41f626a3-...:CREATE" }],
2374
+ "idempotencyKey": "close-2026-06-bill-41f626a3"
2375
+ }
2376
+ ]
2377
+ }
2378
+
2379
+ // Response
2380
+ { "data": { "records": [{ "resourceId": "...", "replayed": false, "duplicateCount": 0 }] } }
2381
+ ```
2382
+
2383
+ `kind`: CLASSIFICATION, MATCH, SCOPE, ASSUMPTION, RISK, METHOD, RECOVERY, DEVIATION. `tier`: LOW, MEDIUM, HIGH, CRITICAL. `refs` entries are OBJECTS: the string grammar `TYPE:resourceId[#field][:RELATION]` travels in `raw` (an unparseable ref is stored with `parsed: false`, never bounced). Optional fields: `ruledOut`, `frame`, `confidence`, `citedRule`, `workflowLabel`, `agentLabel`. `idempotencyKey` makes retries safe: a replay returns the existing entry with `replayed: true`.
2384
+
2385
+ ### POST /api/v1/jots/search
2386
+
2387
+ Plain-value filter (no expression envelopes): `ref` (TYPE:resourceId containment), `kind`, `tier`, `dispositionVerb`, `freetext` (case-insensitive substring over call and why), `createdFrom` / `createdTo` (epoch ms, inclusive). Sort is pinned server-side (CRITICAL and withheld-write entries first, then newest); no client sort. `includeStats: true` adds per-credential disposition counts alongside the page.
2388
+
2389
+ ```json
2390
+ // Request
2391
+ { "limit": 100, "offset": 0, "filter": { "kind": "CLASSIFICATION" }, "includeStats": true }
2392
+ ```
2393
+
2394
+ ### POST /api/v1/jots/:resourceId/disposition
2395
+
2396
+ Append one review verb to a jot (append-only: annotates, never mutates).
2397
+
2398
+ ```json
2399
+ // Request
2400
+ { "verb": "FLAG", "note": "Re-check the account mapping next close" }
2401
+ ```
2402
+
2403
+ `verb`: FLAG, REJECT, ENDORSE. The response may carry a `rollbackHandoff` pointer; execution lives in the rollback module.
2404
+
2405
+ ---
2406
+
2407
+ *Last updated: 2026-07-11 (added Jots judgment journal, section 25). Previous: 2026-04-09 — Added: Contacts bulk-upsert (22), Background Jobs search (23), Export Records (24). 2026-03-13 — Payment record CRUD, nano-classifier, scheduler GET/PUT/DELETE.*
@@ -754,6 +754,16 @@ Universal async tracking layer. Any operation returning a `jobId` can be polled
754
754
 
755
755
  `outputFormat: "XLSX"` is required. Pass `query` OR `filter`, never both (server enforces). Entity types: INVOICE, BILL, CUSTOMER_CREDIT_NOTE, SUPPLIER_CREDIT_NOTE, SALE_PAYMENT, PURCHASE_PAYMENT, BATCH_PAYMENT, CONTACT, ITEM, CAPSULE, SCHEDULED_TRANSACTION, JOURNAL, BANK_RECORD, CASHFLOW_TRANSACTION, FIXED_ASSET, CHART_OF_ACCOUNT, TAX_PROFILE.
756
756
 
757
+ ### Jots (Judgment Journal)
758
+
759
+ | Method | Path | Description |
760
+ |--------|------|-------------|
761
+ | POST | `/jots` | Batch-record judgment entries (1-100, per-entry acks; a bad entry never fails the batch) |
762
+ | POST | `/jots/search` | Search judgment entries. Server-pinned sort: critical and withheld-write first, then newest. `includeStats` adds per-credential disposition counts |
763
+ | POST | `/jots/:resourceId/disposition` | Append a review disposition (FLAG / REJECT / ENDORSE), append-only |
764
+
765
+ See endpoints.md section 25 for request/response shapes and the `refs` grammar (`TYPE:resourceId[#field][:RELATION]` in `raw`).
766
+
757
767
  ---
758
768
 
759
- *Last updated: 2026-04-29 — Added 3 drafts lifecycle endpoints (validate, convert-to-active, submit-for-approval) — bulk-friendly, mixed-type batches up to 500. Previous same day: 8 reconciliation action endpoints; 8 bulk-upsert endpoints. 2026-04-09 — Background Jobs, Export Records, contacts bulk-upsert.*
769
+ *Last updated: 2026-07-11 (added Jots judgment journal: 3 endpoints). Previous: 2026-04-29 — Added 3 drafts lifecycle endpoints (validate, convert-to-active, submit-for-approval) — bulk-friendly, mixed-type batches up to 500. Same day: 8 reconciliation action endpoints; 8 bulk-upsert endpoints. 2026-04-09 — Background Jobs, Export Records, contacts bulk-upsert.*
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 5.21.0
3
+ version: 5.23.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,
@@ -8,7 +8,7 @@ description: >-
8
8
  command groups, auth precedence, output formats, entity resolution, and common
9
9
  workflow patterns. Also use when the user asks how to use clio, what commands
10
10
  are available, or how to automate accounting tasks from the command line.
11
- Covers all 65 command groups and 356 tools, including employee-expense claims.
11
+ Covers all 66 command groups and 357 tools, including employee-expense claims.
12
12
  license: MIT
13
13
  compatibility: Requires Node.js >= 18.0.0. Install via npm install -g jaz-clio.
14
14
  ---
@@ -17,7 +17,7 @@ compatibility: Requires Node.js >= 18.0.0. Install via npm install -g jaz-clio.
17
17
 
18
18
  > **Audience note:** for power users and CI/automation. Load this skill only when you're scripting from a terminal, building shell pipelines, or debugging from `clio --json` output. For day-to-day accounting inside Claude Desktop / Cowork, the MCP tools cover the common flows without dropping to the CLI.
19
19
 
20
- You are working with **Clio** (`jaz-clio`) — the CLI for the Jaz accounting platform. 65 command groups, 13 calculators, 12 job blueprints, 356 tools. Also fully compatible with Juan Accounting (same API, same endpoints).
20
+ You are working with **Clio** (`jaz-clio`) — the CLI for the Jaz accounting platform. 66 command groups, 13 calculators, 12 job blueprints, 357 tools. Also fully compatible with Juan Accounting (same API, same endpoints).
21
21
 
22
22
  ## When to Use This Skill
23
23
 
@@ -268,6 +268,8 @@ Sending `lineItems[]` to the FLAT endpoint silently ignores them and creates a $
268
268
 
269
269
  **AI & Automation**: `magic` (create, status, search, split), `quick-fix`, `capsules`, `capsule-transaction` (alias: `ct`, 13 recipe types)
270
270
 
271
+ **Judgment journal**: `jots` (create, recall, dispose)
272
+
271
273
  **Calculators**: `calc` (loan, lease, depreciation, prepaid-expense, deferred-revenue, fx-reval, ecl, provision, fixed-deposit, asset-disposal, accrued-expense, leave-accrual, dividend)
272
274
 
273
275
  **Jobs**: `jobs` (month-end, quarter-end, year-end, bank-recon, gst-vat, payment-run, credit-control, supplier-recon, audit-prep, fa-review, document-collection, statutory-filing) + tools (match, outstanding, ingest, sg-cs, sg-ca)
@@ -288,7 +290,7 @@ Everything else requires authentication (API key).
288
290
 
289
291
  ## Dashboard Deep Links (no CLI command — by design)
290
292
 
291
- The navigation tools (`get_dashboard_url`, `find_dashboard_destinations`) build dashboard URLs for the user ("open this invoice", "take me to the P&L"). They are agent/MCP tools only — read-only tools get no CLI twin (one canonical surface per operation). Never hand-construct a dashboard URL in a script; if you need a link, call the MCP tool. Full usage rules live in the jaz-api skill under "Dashboard Deep Links".
293
+ The navigation tool (`navigate` — no destination to discover keys, a destination to build the deep link) builds dashboard URLs for the user ("open this invoice", "take me to the P&L"). It is an agent/MCP tool only — read-only tools get no CLI twin (one canonical surface per operation). Never hand-construct a dashboard URL in a script; if you need a link, call the MCP tool. Full usage rules live in the jaz-api skill under "Dashboard Deep Links".
292
294
 
293
295
  ## Error Handling
294
296
 
@@ -512,6 +512,19 @@ Blueprints are offline (no auth). Tools require auth.
512
512
 
513
513
  ---
514
514
 
515
+ ## Judgment Journal
516
+
517
+ ### `clio jots` · Judgment journal
518
+ | Subcommand | Key flags |
519
+ |------------|-----------|
520
+ | `create` | `--kind` (CLASSIFICATION, MATCH, SCOPE, ASSUMPTION, RISK, METHOD, RECOVERY, DEVIATION), `--tier` (LOW, MEDIUM, HIGH, CRITICAL), `--call`, `--why`, `--ruled-out`, `--ref` (repeatable, grammar `TYPE:resourceId[#field][:RELATION]`), `--frame`, `--confidence`, `--cited-rule`, `--workflow-label`, `--agent-label`, `--idempotency-key`, `--input` (batch JSON), `--json` |
521
+ | `recall` | `--ref`, `--kind`, `--tier`, `--disposition-verb` (FLAG, REJECT, ENDORSE), `--freetext`, `--created-from`, `--created-to`, `--stats`, `--limit`, `--offset`, `--all`, `--max-rows`, `--format`, `--json` |
522
+ | `dispose <resourceId>` | `--verb` (FLAG, REJECT, ENDORSE), `--note`, `--json` |
523
+
524
+ Batch create via `--input` file or stdin (`{ "entries": [...] }`, 1-100 per call, per-entry acks). `recall` sort is pinned server-side: critical and withheld-write entries first, then newest. `--stats` adds per-credential disposition counts (in the JSON/YAML envelope for machine formats). An all-error batch exits 1.
525
+
526
+ ---
527
+
515
528
  ## Organization
516
529
 
517
530
  ### `clio org` — Organization info
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 5.21.0
3
+ version: 5.23.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-pseudo-sql
3
- version: 5.21.0
3
+ version: 5.23.0
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.21.0
3
+ version: 5.23.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: 5.21.0
3
+ version: 5.23.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
@@ -6,7 +6,7 @@ Source of truth lives in the installed skills (`.claude/skills/jaz-*/SKILL.md` o
6
6
 
7
7
  ## Discovery
8
8
 
9
- The Jaz MCP server exposes 356 tools across 41 namespaces via 3 meta-tools. **Use the meta-tool flow — never enumerate tools blindly.**
9
+ The Jaz MCP server exposes 357 tools across 42 namespaces via 3 meta-tools. **Use the meta-tool flow — never enumerate tools blindly.**
10
10
 
11
11
  1. `search_tools(query)` → top-N tool names + namespaces.
12
12
  2. `describe_tools(names)` → full parameter schemas.