jaz-clio 4.17.1 → 4.17.2

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.17.1
3
+ version: 4.17.2
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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 4.17.1
3
+ version: 4.17.2
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.17.1
3
+ version: 4.17.2
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.17.1
3
+ version: 4.17.2
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.
@@ -129,7 +129,8 @@ export function shouldShowPicker() {
129
129
  export async function showCommandPicker(program) {
130
130
  const leaves = collectLeaves(program.commands, '', '');
131
131
  const choices = buildChoices(leaves);
132
- process.stderr.write(chalk.dim(` ${choices.length} commands type to filter, ↑↓ navigate, Enter select, Esc quit\n\n`));
132
+ const version = program.version() ?? '';
133
+ process.stderr.write(chalk.dim(` Clio v${version} — ${choices.length} commands — type to filter, ↑↓ navigate, Enter select, Esc quit\n\n`));
133
134
  const result = await prompts({
134
135
  type: 'autocomplete',
135
136
  name: 'command',
package/dist/index.js CHANGED
@@ -53,7 +53,7 @@ const notifier = updateNotifier({ pkg, updateCheckInterval: 24 * 60 * 60 * 1000
53
53
  const program = new Command();
54
54
  program
55
55
  .name('clio')
56
- .description('Clio — Command Line Interface Orchestrator for Jaz AI')
56
+ .description(`Clio v${pkg.version} — Command Line Interface Orchestrator for Jaz AI`)
57
57
  .version(pkg.version)
58
58
  .enablePositionalOptions();
59
59
  // Set --org before any command runs
@@ -157,6 +157,35 @@ addOrgOption(program);
157
157
  if (shouldShowPicker()) {
158
158
  attachSubcommandPickers(program);
159
159
  }
160
+ // ── Auto-update prompt (TTY only, before picker) ─────────────────
161
+ // If update-notifier found a newer version (cached from last run's
162
+ // background check), offer to install it right here — one keypress.
163
+ if (shouldShowPicker() && notifier.update) {
164
+ const { default: chalk } = await import('chalk');
165
+ const { default: promptsPkg } = await import('prompts');
166
+ const { execFileSync } = await import('child_process');
167
+ const { current, latest } = notifier.update;
168
+ process.stderr.write(chalk.yellow(` Update available: v${current} → v${latest}\n`));
169
+ const { confirm } = await promptsPkg({
170
+ type: 'confirm',
171
+ name: 'confirm',
172
+ message: 'Install now?',
173
+ initial: true,
174
+ });
175
+ if (confirm) {
176
+ process.stderr.write(chalk.dim(` Updating jaz-clio...\n`));
177
+ try {
178
+ execFileSync('npm', ['update', '-g', 'jaz-clio'], { stdio: 'inherit' });
179
+ process.stderr.write(chalk.green(` Updated to v${latest}\n\n`));
180
+ }
181
+ catch {
182
+ process.stderr.write(chalk.red(` Update failed — run manually: npm update -g jaz-clio\n\n`));
183
+ }
184
+ }
185
+ else {
186
+ process.stderr.write('\n');
187
+ }
188
+ }
160
189
  // Bare `clio` (no args) → interactive command picker
161
190
  if (shouldShowPicker() && process.argv.length === 2) {
162
191
  const selected = await showCommandPicker(program);
@@ -167,10 +196,11 @@ if (shouldShowPicker() && process.argv.length === 2) {
167
196
  else {
168
197
  await program.parseAsync();
169
198
  }
170
- // ── Print update notification (stderr, after output) ─────────────
171
- // Suppressed when: not a TTY (agents/pipes), CI detected, --json passed.
199
+ // ── Passive update notification (non-interactive fallback) ───────
200
+ // For non-TTY (agents/pipes) or when running specific commands,
201
+ // still show the banner to stderr after output.
172
202
  const hasJson = process.argv.includes('--json');
173
- if (!hasJson) {
203
+ if (!hasJson && !shouldShowPicker()) {
174
204
  notifier.notify({
175
205
  isGlobal: true,
176
206
  message: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaz-clio",
3
- "version": "4.17.1",
3
+ "version": "4.17.2",
4
4
  "description": "Clio — Command Line Interface Orchestrator for Jaz AI.",
5
5
  "type": "module",
6
6
  "bin": {