jaz-clio 5.48.3 → 5.49.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 5.48.3
3
+ version: 5.49.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, 159 production gotchas, error
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 5.48.3
3
+ version: 5.49.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,
@@ -23,7 +23,7 @@
23
23
  | Error | Cause | Fix |
24
24
  |-------|-------|-----|
25
25
  | `Multiple contacts match 'Acme'` | Fuzzy match found 2+ candidates above threshold | Use exact billingName or UUID |
26
- | `Contact not found: 'xyz'` | No match in org's contact list | Run `clio contacts search xyz` to check spelling |
26
+ | `Contact not found: 'xyz'` | No match in org's contact list | Run `clio contacts search --name xyz` to check spelling |
27
27
  | `Account not found: 'xyz'` | No matching account name or code | Run `clio accounts list --json` to see available accounts |
28
28
  | `Bank account not found` | Name doesn't match any bank-type account | Run `clio bank accounts --json` for exact names |
29
29
  | `Tax profile not found` | No match on tax profile name or code | Run `clio tax-profiles list --json` for available profiles |
@@ -98,7 +98,7 @@ echo $JAZ_ORG # Check for pinned org
98
98
 
99
99
  **Entity not found?** Search before creating:
100
100
  ```bash
101
- clio contacts search "partial name" --json | jq '.data[] | {name, resourceId}'
101
+ clio contacts search --name "partial name" --json | jq '.data[] | {name, resourceId}'
102
102
  clio accounts list --json | jq '.data[] | {name, code: .accountCode, id: .resourceId}'
103
103
  ```
104
104
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 5.48.3
3
+ version: 5.49.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-kit
3
- version: 5.48.3
3
+ version: 5.49.0
4
4
  description: >-
5
5
  Use this skill when an accountant, bookkeeper, or owner is running real books
6
6
  in Jaz across one or more organizations from the terminal — setting up a
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-pseudo-sql
3
- version: 5.48.3
3
+ version: 5.49.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.48.3
3
+ version: 5.49.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.48.3
3
+ version: 5.49.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
package/cli.mjs CHANGED
@@ -439,7 +439,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
439
439
  `)?`"${t.replace(/"/g,'""')}"`:t}function QMe(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function PHt(t,e){let r=e.map(i=>HP(i.header)).join(","),n=t.map(i=>e.map(o=>{let s=UHt(i,o.key);if(s==null||s==="")return"";let a=o.format?MHt(o.format(s)):QMe(s);return HP(a)}).join(","));return[r,...n].join(`
440
440
  `)}function UHt(t,e){let r=e.split("."),n=t;for(let i of r){if(n==null||typeof n!="object")return;n=n[i]}return n}function et(t,e,r,n){let i=Vp(r),o=t.totalElements??t.data.length;switch(i){case"json":console.log(GX({...t,totalElements:o},r));break;case"csv":console.log(PHt(t.data,e));break;case"yaml":console.log((0,HX.stringify)({totalElements:o,totalPages:t.totalPages,truncated:t.truncated,...t.stats?{stats:t.stats}:{},data:t.data}).trimEnd());break;case"table":{console.log(R(`${n} (${t.data.length} of ${o}):
441
441
  `));let{items:s,overflow:a}=zX(t.data);if(s.length===0){console.log(" No results found.");return}console.log(hg(s,e)),a>0&&console.log(H(`
442
- ... and ${a.toLocaleString()} more (use --format json for full output)`));break}}}function hS(t,e){switch(Vp(e)){case"json":console.log(JSON.stringify(t,null,2));break;case"csv":{let n=Object.keys(t);console.log(n.map(HP).join(",")),console.log(n.map(i=>HP(QMe(t[i]))).join(","));break}case"yaml":console.log((0,HX.stringify)(t).trimEnd());break;case"table":console.log(OMe(t));break}}var HX,mg,ur=X(()=>{"use strict";Fe();HX=nn(BMe(),1);YX();an();FMe();mg=class extends Error{constructor(e){super(e),this.name="CliValidationError"}}});var PMe={};_o(PMe,{displaySlice:()=>zX,paginatedFetch:()=>ot,paginatedJson:()=>GX});async function ot(t,e,r){let n=r.defaultLimit??100;if(t.all&&t.offset!==void 0)throw new Error("--all and --offset cannot be used together");if(t.all){let d=(t.format?.toLowerCase()??(t.json?"json":"table"))==="table"?q1e(r.label):void 0,f=t.maxRows??MMe,p=await Qp((y,C)=>e({limit:C,offset:y}),{pageSize:t.limit??200,maxItems:f,onProgress:d?(y,C)=>d.update(y,C):void 0});d?.clear();let{truncated:h}=p,{data:m}=p;m.length>f&&(m=m.slice(0,f),h=!0),h&&!Ql(t)&&console.error(Be(`Warning: dataset has ${p.totalElements.toLocaleString()} items \u2014 showing ${m.length.toLocaleString()} (max-rows: ${f.toLocaleString()})`));let A=t.limit??n,g=Math.ceil(p.totalElements/A);return{data:m,totalElements:p.totalElements,totalPages:g,truncated:h}}let i=t.limit??n,o=await e({limit:i,offset:t.offset??0}),s=o.data??[],a=(o.totalElements??0)>s.length;return{data:s,totalElements:o.totalElements??0,totalPages:o.totalPages??0,truncated:a}}function zX(t,e=$Ht){return t.length<=e?{items:t,overflow:0}:{items:t.slice(0,e),overflow:t.length-e}}function GX(t,e){let{totalElements:r,totalPages:n,truncated:i,data:o,stats:s}=t,a=s?{stats:s}:{};if(i){let c=e.maxRows??MMe;return JSON.stringify({totalElements:r,totalPages:n,truncated:i,_meta:{fetchedRows:o.length,maxRows:c},...a,data:o},null,2)}return JSON.stringify({totalElements:r,totalPages:n,truncated:i,...a,data:o},null,2)}var MMe,$Ht,an=X(()=>{"use strict";Fe();QM();j1e();ur();MMe=1e3,$Ht=500});async function qHt(){if(!JX){let[t,e,r,n]=await Promise.all([Promise.resolve().then(()=>(mt(),YMe)),Promise.resolve().then(()=>(an(),PMe)),Promise.resolve().then(()=>(ur(),LMe)),Promise.resolve().then(()=>(_t(),z0e))]);JX=t.apiAction,UMe=e.paginatedFetch,$Me=r.outputList,VX=n.parsePositiveInt,qMe=n.parseNonNegativeInt}}function ze(t){let e=t.commandName??"search",r=t.positionalArg?` <${t.positionalArg}>`:"",n=t.parent.command(`${e}${r}`).description(`Search ${t.label.replace("Searching ","")}`),i=new Map,o=z7(t.fields);for(let[a,c,u,d]of o){let f=new $t(a,c),p=t.fields[d];u&&p?.op!=="multi"&&f.choices(u),n.addOption(f);let h=jHt(a);h!==d&&i.set(h,d)}if(t.defaults.supportsQuery&&n.option("--query <expression>",'Jaz search expression (e.g. "status:unpaid AND $500+", "customer:acme AND date:-30d"). Merged with --filter; --filter fields win on conflict.'),n.option("--filter <json>","Raw API filter JSON (merged with flags; flags win on conflict)").addOption(new $t("--sort <field>","Sort field name")).addOption(new $t("--order <direction>","Sort direction").choices(["ASC","DESC"])).option("--limit <n>",`Max results (default ${t.defaults.defaultLimit})`).option("--offset <n>","Page number offset (0-indexed)").option("--all","Fetch all pages").option("--max-rows <n>","Max rows for --all (default 1000)").option("--format <type>","Output format: table, json, csv, yaml").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON"),t.defaults.supportsView&&n.addOption(new $t("--view <tier>","Payload tier: 'lean' = summary rows; 'full' (default) = complete records").choices(["lean","full"])),t.pathParam&&t.pathParam!==t.positionalArg){let a=t.pathParam.replace(/([A-Z])/g,"-$1").toLowerCase();n.requiredOption(`--${a} <id>`,t.pathParamDescription??`${t.pathParam} (required)`)}let s=async(...a)=>{let c=t.positionalArg?a[0]:void 0,u=t.positionalArg?a[1]:a[0];c&&t.positionalArg&&(u[t.positionalArg]=c),await qHt(),await JX(async d=>{t.preProcess&&await t.preProcess(d,u),typeof u.limit=="string"&&(u.limit=VX(u.limit)),typeof u.offset=="string"&&(u.offset=qMe(u.offset)),typeof u.maxRows=="string"&&(u.maxRows=VX(u.maxRows));let f={...u};for(let[v,x]of i)f[v]!==void 0&&(f[x]=f[v]);let p;if(typeof u.filter=="string")try{p=JSON.parse(u.filter)}catch{throw new Error(`Invalid --filter JSON: ${u.filter}`)}let h=t.baseFilter?p?{...t.baseFilter,...p}:t.baseFilter:p,m=RD(f,t.fields,h),A;if(c&&t.positionalFilter){let v=t.positionalFilter(c);A=m?{...v,...m}:v}else A=m;let g={sortBy:[u.sort??t.defaults.sortBy],order:u.order??t.defaults.sortOrder},y=t.defaults.supportsQuery?u.query:void 0,C=t.defaults.supportsView?u.view:void 0,E=t.pathParam?({limit:v,offset:x})=>t.fetcher(d,u[t.pathParam],{filter:A,sort:g,limit:v,offset:x,query:y,view:C}):({limit:v,offset:x})=>t.fetcher(d,{filter:A,sort:g,limit:v,offset:x,query:y,view:C}),I=await UMe(u,E,{label:t.label,defaultLimit:t.defaults.defaultLimit});$Me(I,t.columns,u,t.label.replace("Searching ",""))})(u)};return n.action(s),n}function jHt(t){return t.replace(/^--/,"").split(/[\s<]/)[0].replace(/-([a-z])/g,(r,n)=>n.toUpperCase())}var JX,UMe,$Me,VX,qMe,jMe=X(()=>{"use strict";xs();G7();FM()});var NC,OC,mS,AS,HMe=X(()=>{"use strict";sa();NC={reference:{path:"reference",op:"contains",type:"string",description:"Invoice reference number"},status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:pFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact/customer name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},approvalStatus:{path:"approvalStatus",op:"multi",type:"string",description:"Approval status",enum:kM},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},dueDateFrom:{path:"dueDate",op:"gte",type:"string",description:"Due date from (YYYY-MM-DD)"},dueDateTo:{path:"dueDate",op:"lte",type:"string",description:"Due date to (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},OC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},mS=NC,AS=OC});var zMe,gS,yS,FC,ES,Wp,Zp,GMe=X(()=>{"use strict";sa();zMe={reference:{path:"reference",op:"contains",type:"string",description:"Order reference number"},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact (customer/supplier) name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},dueDateFrom:{path:"dueDate",op:"gte",type:"string",description:"Due date from (YYYY-MM-DD)"},dueDateTo:{path:"dueDate",op:"lte",type:"string",description:"Due date to (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},gS={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:xFe},...zMe},yS={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:TFe},...zMe},FC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},ES=FC,Wp={name:{path:"name",op:"contains",type:"string",description:"Line item text/description"},reference:{path:"reference",op:"contains",type:"string",description:"Parent order reference"},orderId:{path:"btResourceId",op:"eq",type:"string",description:"Parent order resourceId"},contactName:{path:"contactName",op:"contains",type:"string",description:"Contact (customer/supplier) name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},status:{path:"status",op:"eq",type:"string",description:"Line item status"},account:{path:"organizationAccountName",op:"contains",type:"string",description:"Chart-of-account name on the line"},taxProfile:{path:"taxProfileName",op:"contains",type:"string",description:"Tax profile name on the line"},isOpen:{path:"isOpen",op:"boolean",type:"boolean",description:"Only open (unfulfilled) lines"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"totalItemAmount",op:"gte",type:"number",description:"Minimum line amount"},maxAmount:{path:"totalItemAmount",op:"lte",type:"number",description:"Maximum line amount"}},Zp={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0}});var Xp,QC,bS,JMe=X(()=>{"use strict";sa();Xp={reference:{path:"reference",op:"contains",type:"string",description:"Credit note reference"},status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:hFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code"},approvalStatus:{path:"approvalStatus",op:"multi",type:"string",description:"Approval status",enum:kM},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"}},QC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},bS=QC});var CS,IS,VMe=X(()=>{"use strict";sa();CS={reference:{path:"reference",op:"contains",type:"string",description:"Journal reference"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:mFe},type:{path:"type",op:"multi",type:"string",description:"Journal type",enum:AFe},templateType:{path:"templateType",op:"multi",type:"string",description:"Template type",enum:gFe},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},internalNotes:{path:"internalNotes",op:"contains",type:"string",description:"Search internal notes"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"}},IS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var vS,wS,WMe=X(()=>{"use strict";sa();vS={name:{path:"name",op:"contains",type:"string",description:"Contact name"},email:{path:"email",op:"contains",type:"string",description:"Email address"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:BM},isCustomer:{path:"customer",op:"boolean",type:"boolean",description:"Filter to customers only",cliFlag:"--customer"},isSupplier:{path:"supplier",op:"boolean",type:"boolean",description:"Filter to suppliers only",cliFlag:"--supplier"},taxId:{path:"taxId",op:"contains",type:"string",description:"Tax ID"}},wS={sortBy:"name",sortOrder:"ASC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var rf,nf,WX,_S,DS,ZMe=X(()=>{"use strict";sa();rf={type:{path:"businessTransactionType",op:"multi",type:"string",description:"Transaction type",enum:NM},direction:{path:"direction",op:"eq",type:"string",description:"Direction (PAYIN or PAYOUT)",enum:j7},status:{path:"businessTransactionStatus",op:"multi",type:"string",description:"Status",enum:vFe},reference:{path:"businessTransactionReference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},accountId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"Bank account resourceId",cliFlag:"--account <id>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},businessTransactionType:{path:"businessTransactionType",op:"multi",type:"string",description:"(alias for type)"}},nf={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0},WX={magicSort:{type:"object",description:"Rank by match quality to a bank entry: {bankStatementEntryResourceId, magicSort:true}."},transactionType:{type:"string",enum:[...IFe],description:"Scope. Default ALL_CASHFLOWS."}},_S={type:{path:"businessTransactionType",op:"multi",type:"string",description:"Transaction type (SALE, PURCHASE, etc.)",enum:NM},direction:{path:"direction",op:"eq",type:"string",description:"Direction",enum:j7},reference:{path:"businessTransactionReference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},accountId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"Account resourceId",cliFlag:"--account <id>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},businessTransactionType:{path:"businessTransactionType",op:"multi",type:"string",description:"(alias for type)",enum:NM},fromDate:{path:"valueDate",op:"gte",type:"string",description:"(alias for startDate)"},toDate:{path:"valueDate",op:"lte",type:"string",description:"(alias for endDate)"},accountResourceId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"(alias for accountId)"}},DS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20}});var SS,RS,XMe=X(()=>{"use strict";sa();SS={status:{path:"status",op:"multi",type:"string",description:"Status",enum:CFe},description:{path:"description",op:"contains",type:"string",description:"Description"},payer:{path:"extContactName",op:"contains",type:"string",description:"Payer/payee name"},reference:{path:"extReference",op:"contains",type:"string",description:"Bank reference",cliFlag:"--ref <reference>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"netAmount",op:"gte",type:"number",description:"Minimum net amount"},maxAmount:{path:"netAmount",op:"lte",type:"number",description:"Maximum net amount"}},RS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0}});var xS,TS,KMe=X(()=>{"use strict";sa();xS={status:{path:"status",op:"multi",type:"string",description:"Status",enum:yFe},itemCategory:{path:"itemCategory",op:"eq",type:"string",description:"Category",enum:bFe},appliesToSale:{path:"appliesToSale",op:"boolean",type:"boolean",description:"Filter to sale items only",cliFlag:"--sale"},appliesToPurchase:{path:"appliesToPurchase",op:"boolean",type:"boolean",description:"Filter to purchase items only",cliFlag:"--purchase"}},TS={sortBy:"internalName",sortOrder:"ASC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var BS,kS,ePe=X(()=>{"use strict";sa();BS={name:{path:"name",op:"contains",type:"string",description:"Asset name"},reference:{path:"reference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:wFe},category:{path:"category",op:"eq",type:"string",description:"Category",enum:_Fe},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},typeName:{path:"typeName",op:"contains",type:"string",description:"Asset type name"},startDate:{path:"purchaseDate",op:"gte",type:"string",description:"Purchase date from (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"purchaseDate",op:"lte",type:"string",description:"Purchase date to (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"purchaseAmount",op:"gte",type:"number",description:"Minimum purchase amount"},maxAmount:{path:"purchaseAmount",op:"lte",type:"number",description:"Maximum purchase amount"}},kS={sortBy:"name",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});var NS,OS,tPe=X(()=>{"use strict";sa();NS={type:{path:"businessTransactionType",op:"eq",type:"string",description:"Transaction type (SALE, PURCHASE, JOURNAL_MANUAL)"},status:{path:"status",op:"multi",type:"string",description:"Scheduler status",enum:DFe},subscriptionStatus:{path:"subscriptionStatus",op:"multi",type:"string",description:"Subscription status",enum:SFe},schedulerType:{path:"schedulerType",op:"eq",type:"string",description:"Scheduler type"},interval:{path:"interval",op:"eq",type:"string",description:"Interval",enum:RFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code"}},OS={sortBy:"nextScheduleDate",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});var FS,QS,rPe=X(()=>{"use strict";sa();FS={id:{path:"resourceId",op:"eq",type:"string",description:"Job ID (the jobId returned from bulk operations)",cliFlag:"--id"},status:{path:"status",op:"multi",type:"string",description:"Job status",enum:FFe},type:{path:"jobType",op:"eq",type:"string",description:"Job type (e.g. UPSERT_CONTACTS, UPSERT_ITEMS, PROCESS_BANK_STATEMENT_FILES)",cliFlag:"--type"},fileName:{path:"fileName",op:"contains",type:"string",description:"File name (file-based jobs only)",cliFlag:"--file-name"},from:{path:"createdAt",op:"gte",type:"string",description:"On/after (ISO date)",cliFlag:"--from"},to:{path:"createdAt",op:"lte",type:"string",description:"On/before (ISO date)",cliFlag:"--to"}},QS={sortBy:"createdAt",sortOrder:"DESC",defaultLimit:20}});var ZX,XX,nPe=X(()=>{"use strict";ZX={name:{path:"name",op:"contains",type:"string",description:"Purchase item name"},reference:{path:"reference",op:"contains",type:"string",description:"Reference name"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (ISO 4217)"}},XX={sortBy:"name",sortOrder:"ASC",defaultLimit:20}});var LS,MS,KX,eK,iPe=X(()=>{"use strict";LS={catalogName:{path:"catalogName",op:"contains",type:"string",description:"Catalog name"},description:{path:"description",op:"contains",type:"string",description:"Catalog item description"},status:{path:"status",op:"multi",type:"string",description:"Record status (e.g. ACTIVE, INACTIVE)"},contactGroupResourceId:{path:"contactGroupResourceId",op:"eq",type:"string",description:"Contact group resourceId"}},MS={sortBy:"catalogName",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0},KX={reportType:{path:"reportType",op:"eq",type:"string",description:"Report type"},reportCategory:{path:"reportCategory",op:"eq",type:"string",description:"Report category"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Only default templates",cliFlag:"--default"}},eK={sortBy:"reportType",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});async function zP(t,e){return t.search("/api/v1/claims/search",e)}async function GP(t,e){return t.get(`/api/v1/claims/${e}`)}async function JP(t,e){return t.post("/api/v1/claims",e)}async function VP(t,e,r){return t.put(`/api/v1/claims/${e}`,r)}async function WP(t,e){return t.delete(`/api/v1/claims/${e}`)}async function ZP(t,e,r){return t.delete(`/api/v1/claims/${e}/attachments/${r}`)}async function XP(t,e){return t.post(`/api/v1/claims/${e}/submit`,{})}async function KP(t,e){return t.post(`/api/v1/claims/${e}/approve`,{})}async function e2(t,e,r){return t.post(`/api/v1/claims/${e}/reject`,{rejectionReason:r})}async function t2(t,e,r){return t.post(`/api/v1/claims/${e}/cancel`,{cancellationReason:r})}async function r2(t,e){return t.post(`/api/v1/claims/${e}/unpost`,{})}function PS(t){Ot(t,"resourceIds",500,"claims")}async function n2(t,e){return PS(e),t.post("/api/v1/claims/bulk/submit",{resourceIds:e})}async function i2(t,e){return PS(e),t.post("/api/v1/claims/bulk/approve",{resourceIds:e})}async function o2(t,e){return PS(e),t.post("/api/v1/claims/bulk/delete",{resourceIds:e})}async function s2(t,e,r){return PS(e),t.post("/api/v1/claims/bulk/reject",{resourceIds:e,rejectionReason:r})}async function a2(t,e,r){return PS(e),t.post("/api/v1/claims/bulk/cancel",{resourceIds:e,cancellationReason:r})}async function c2(t){let e=await t.get("/api/v1/claims/tracking-tags");return Array.isArray(e)?e:e?.data??[]}async function l2(t){let e=await t.get("/api/v1/claims/custom-field-values");return Array.isArray(e)?e:e?.data??[]}var oPe,u2=X(()=>{"use strict";yn();oPe=["DRAFT","SUBMITTED","APPROVED","CONVERTED","REJECTED","CANCELLED"]});var US,$S,YHt,HHt,qS,jS,YS,HS,zS,GS,JS,VS,sPe=X(()=>{"use strict";a_();u_();u2();US={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:oPe},employeeResourceId:{path:"employeeResourceId",op:"eq",type:"string",description:"Employee resourceId"},contactResourceId:{path:"contactResourceId",op:"eq",type:"string",description:"Vendor contact resourceId"},claimProfileResourceId:{path:"claimProfileResourceId",op:"eq",type:"string",description:"Claim profile resourceId"},approverUserResourceId:{path:"approverUserResourceId",op:"eq",type:"string",description:"Approver user resourceId"},reference:{path:"reference",op:"contains",type:"string",description:"Claim reference"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (ISO 4217)"},startDate:{path:"valueDate",op:"gte",type:"string",description:"Value date on/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"Value date on/before (YYYY-MM-DD)",cliFlag:"--to <date>"},createdFrom:{path:"createdAt",op:"gte",type:"string",description:"Created on/after (YYYY-MM-DD)"},createdTo:{path:"createdAt",op:"lte",type:"string",description:"Created on/before (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},$S={sortBy:"createdAt",sortOrder:"DESC",defaultLimit:20},YHt=["RECORDED","COMPLETED","CANCELLED","IN_PROGRESS","ACTION_NEEDED"],HHt=["DIRECT_ENTRY","DISBURSEMENT","REIMBURSEMENT_PAYOUT","ADVANCE"],qS={employeeResourceId:{path:"employeeResourceId",op:"eq",type:"string",description:"Employee resourceId"},employeeName:{path:"employeeName",op:"contains",type:"string",description:"Employee name"},reference:{path:"reference",op:"contains",type:"string",description:"Payout reference"},payoutStatus:{path:"payoutStatus",op:"multi",type:"string",description:"Payout status (comma-separated)",enum:YHt},payoutType:{path:"payoutType",op:"multi",type:"string",description:"Payout type (comma-separated): DIRECT_ENTRY (books-only DCE), DISBURSEMENT (gateway direct-debit-backed), REIMBURSEMENT_PAYOUT, ADVANCE",enum:HHt}},jS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20},YS={name:{path:"name",op:"contains",type:"string",description:"Claim type name"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default claim type"},expenseAccountResourceId:{path:"expenseAccountResourceId",op:"eq",type:"string",description:"Default expense account resourceId"},taxProfileResourceId:{path:"taxProfileResourceId",op:"eq",type:"string",description:"Default tax profile resourceId"}},HS={sortBy:"name",sortOrder:"ASC",defaultLimit:100},zS={name:{path:"name",op:"contains",type:"string",description:"Claim profile name"},approverUserResourceId:{path:"approverUserResourceId",op:"eq",type:"string",description:"Default approver user resourceId"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default profile"},minClaimAmount:{path:"minClaimAmount",op:"gte",type:"number",description:"Minimum claim total (>=)"},maxClaimAmount:{path:"maxClaimAmount",op:"lte",type:"number",description:"Maximum claim total (<=)"},maxPerPeriodAmount:{path:"maxPerPeriodAmount",op:"lte",type:"number",description:"Per-period spend cap (<=)"},perPeriod:{path:"perPeriod",op:"eq",type:"string",description:"Per-period window",enum:o_},employeeBalanceAccountResourceId:{path:"employeeBalanceAccountResourceId",op:"eq",type:"string",description:"Employee balance (liability) account resourceId"}},GS={sortBy:"name",sortOrder:"ASC",defaultLimit:100},JS={name:{path:"name",op:"contains",type:"string",description:"Posting rule name"},outerAxis:{path:"outerAxis",op:"eq",type:"string",description:"Outer grouping axis",enum:c_},innerAxis:{path:"innerAxis",op:"eq",type:"string",description:"Inner line-aggregation axis",enum:l_},defaultBankAccountResourceId:{path:"defaultBankAccountResourceId",op:"eq",type:"string",description:"Default reimbursement bank account resourceId"},defaultIncludeReimbursementPayout:{path:"defaultIncludeReimbursementPayout",op:"boolean",type:"boolean",description:"Creates reimbursement DCE by default"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default rule"}},VS={sortBy:"name",sortOrder:"ASC",defaultLimit:100}});var WS,ZS,XS,KS,aPe=X(()=>{"use strict";d_();WS={name:{path:"name",op:"contains",type:"string",description:"Employee name"},email:{path:"email",op:"contains",type:"string",description:"Work email"},phone:{path:"phone",op:"contains",type:"string",description:"Phone"},userResourceId:{path:"userResourceId",op:"eq",type:"string",description:"Bound login user resourceId"},managerEmployeeResourceId:{path:"managerEmployeeResourceId",op:"eq",type:"string",description:"Manager employee resourceId"},claimProfileResourceId:{path:"claimProfileResourceId",op:"eq",type:"string",description:"Claim profile resourceId"},currency:{path:"currency",op:"eq",type:"string",description:"Balance currency (ISO 4217)"},active:{path:"active",op:"boolean",type:"boolean",description:"Active employees only"},createdFrom:{path:"createdAt",op:"gte",type:"string",description:"Created on/after (YYYY-MM-DD)"},createdTo:{path:"createdAt",op:"lte",type:"string",description:"Created on/before (YYYY-MM-DD)"}},ZS={sortBy:"name",sortOrder:"ASC",defaultLimit:50},XS={name:{path:"name",op:"contains",type:"string",description:"Employee name"},email:{path:"email",op:"contains",type:"string",description:"Work email"},phone:{path:"phone",op:"contains",type:"string",description:"Phone"},currency:{path:"currency",op:"eq",type:"string",description:"Balance currency (ISO 4217)"},employmentType:{path:"employmentType",op:"eq",type:"string",description:"Employment type",enum:DA},active:{path:"active",op:"boolean",type:"boolean",description:"Active employees only"}},KS={sortBy:"name",sortOrder:"ASC",defaultLimit:50}});var eR,tR,rR,nR,iR,oR,sR,aR,cR,lR,uR,dR,fR,pR,tK,hR,mR,AR,gR,cPe=X(()=>{"use strict";sa();eR={name:{path:"name",op:"contains",type:"string",description:"Account name"},code:{path:"code",op:"contains",type:"string",description:"Account code"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:EFe},accountClass:{path:"accountClass",op:"eq",type:"string",description:"Account class",enum:BFe},accountType:{path:"accountType",op:"eq",type:"string",description:"Account type",enum:OM},controlFlag:{path:"controlFlag",op:"boolean",type:"boolean",description:"Control flag (system accounts)"}},tR={sortBy:"code",sortOrder:"ASC",defaultLimit:100,supportsQuery:!1},rR={query:{path:"tagName",op:"contains",type:"string",description:"Tag name"}},nR={sortBy:"tagName",sortOrder:"ASC",defaultLimit:100},iR={name:{path:"name",op:"contains",type:"string",description:"Tax profile name",cliFlag:"--name <name>"},taxTypeCode:{path:"taxTypeCode",op:"contains",type:"string",description:"Tax type code"},appliesToSale:{path:"appliesToSale",op:"boolean",type:"boolean",description:"Filter to sale profiles"},appliesToPurchase:{path:"appliesToPurchase",op:"boolean",type:"boolean",description:"Filter to purchase profiles"},appliesToSaleCreditNote:{path:"appliesToSaleCreditNote",op:"boolean",type:"boolean",description:"Filter to sale CN profiles"},appliesToPurchaseCreditNote:{path:"appliesToPurchaseCreditNote",op:"boolean",type:"boolean",description:"Filter to purchase CN profiles"}},oR={sortBy:"name",sortOrder:"ASC",defaultLimit:100,supportsQuery:!0},sR={title:{path:"title",op:"contains",type:"string",description:"Capsule title"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:OFe}},aR={sortBy:"title",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0},cR={query:{path:"customFieldName",op:"contains",type:"string",description:"Custom field name",cliFlag:"--name <name>"},datatypeCode:{path:"datatypeCode",op:"eq",type:"string",description:"Data type",enum:kFe,cliFlag:"--type <type>"},customFieldName:{path:"customFieldName",op:"contains",type:"string",description:"(alias for query)"}},lR={sortBy:"customFieldName",sortOrder:"ASC",defaultLimit:100},uR={query:{path:"name",op:"contains",type:"string",description:"Group name"}},dR={sortBy:"name",sortOrder:"ASC",defaultLimit:100},fR={firstName:{path:"user.firstName",op:"contains",type:"string",description:"User first name"},lastName:{path:"user.lastName",op:"contains",type:"string",description:"User last name"},email:{path:"user.email",op:"contains",type:"string",description:"Email"},userType:{path:"userType",op:"eq",type:"string",description:"Access tier",enum:NFe},status:{path:"status",op:"multi",type:"string",description:"Status",enum:BM}},pR={sortBy:"user.FirstName",sortOrder:"ASC",defaultLimit:50},tK=t=>({or:{user:{firstName:{contains:t}},or:{user:{lastName:{contains:t}}}}}),hR={query:{path:"name",op:"contains",type:"string",description:"Rule name"},account:{path:"appliesToReconciliationAccount",op:"eq",type:"string",description:"Bank account resourceId",cliFlag:"--account <id>"}},mR={sortBy:"name",sortOrder:"ASC",defaultLimit:100},AR={query:{path:"type",op:"contains",type:"string",description:"Classifier type"}},gR={sortBy:"type",sortOrder:"ASC",defaultLimit:100}});var fr=X(()=>{"use strict";sa();FM();G7();jMe();HMe();GMe();JMe();VMe();WMe();ZMe();XMe();KMe();ePe();tPe();rPe();nPe();iPe();sPe();aPe();cPe()});async function lPe(t,e){return t.list("/api/v1/modules",e)}async function uPe(t,e){return t.get(`/api/v1/modules/${encodeURIComponent(e)}`)}var dPe=X(()=>{"use strict"});async function fPe(t,e){return t.list("/api/v1/purchase-items",e)}async function pPe(t,e){return t.get(`/api/v1/purchase-items/${encodeURIComponent(e)}`)}async function hPe(t,e){return t.search("/api/v1/purchase-items/search",e)}var mPe=X(()=>{"use strict"});async function d2(t,e){return t.list("/api/v1/invoices",e)}async function Lo(t,e){let r=await t.get(`/api/v1/invoices/${e}`);return"data"in r&&typeof r.data=="object"?r:{data:r}}async function LC(t,e){return t.search("/api/v1/invoices/search",e)}async function Ag(t,e){return t.post("/api/v1/invoices",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function f2(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Lo(t,e));return t.put(`/api/v1/invoices/${e}`,i)}async function p2(t,e,r){return t.delete(`/api/v1/invoices/${e}`,r)}async function yR(t,e,r){return t.post(`/api/v1/invoices/${e}/payments`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function ER(t,e){return t.post("/api/v1/scheduled/invoices",{...e,invoice:{...e.invoice,currency:_r(e.invoice?.currency)}})}async function h2(t,e,r){return t.post(`/api/v1/invoices/${e}/credits`,{credits:r})}async function bR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Lo(t,e));return t.put(`/api/v1/invoices/${e}`,n)}async function m2(t,e){return t.get(`/api/v1/invoices/${e}/download`)}async function A2(t,e){let r=await t.get(`/api/v1/invoices/${e}/payments`);return{data:Array.isArray(r)?r:r.data??[]}}async function g2(t,e){let r=await t.get(`/api/v1/invoices/${e}/credits`);return{data:Array.isArray(r)?r:r.data??[]}}async function y2(t,e,r){await t.delete(`/api/v1/invoices/${e}/credits/${r}`)}async function E2(t,e){return po(t,"/api/v1/invoices/bulk-upsert","invoices",e)}async function b2(t,e){return po(t,"/api/v1/invoices/line-items/bulk-upsert","invoices",ip(e))}var gg=X(()=>{"use strict";zw();vA();yn();pn()});async function APe(t,e,r){return t.list(`/api/v1/${Ll[e]}`,r)}async function of(t,e,r){return t.get(`/api/v1/${Ll[e]}/${r}`)}async function C2(t,e,r){return t.search(`/api/v1/${Ll[e]}/search`,r)}async function I2(t,e,r){return t.search(`/api/v1/${Ll[e]}/line-items/search`,r)}async function CR(t,e){return t.post("/api/v1/sale-quotes",{...e,saveAsDraft:e.saveAsDraft??!0})}async function IR(t,e){return t.post("/api/v1/sale-orders",e)}async function v2(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/convert-to-invoice`,n)}async function w2(t,e,r,n){return t.put(`/api/v1/${Ll[e]}/${r}`,n)}async function _2(t,e,r){await t.delete(`/api/v1/${Ll[e]}/${r}`)}async function D2(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/void`,n?{internalNotes:n}:{})}async function S2(t,e){return t.post(`/api/v1/sale-quotes/${e}/accept`,{})}async function R2(t,e){return t.post(`/api/v1/sale-orders/${e}/confirm`,{})}async function gPe(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/fast-fix`,{attributes:n})}async function yPe(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/bulk-void`,{resourceIds:r,...n?{internalNotes:n}:{}})}async function EPe(t,e){return t.post("/api/v1/sale-quotes/bulk-accept",{resourceIds:e})}async function bPe(t,e){return t.post("/api/v1/sale-orders/bulk-confirm",{resourceIds:e})}async function CPe(t,e,r){return t.post(`/api/v1/${Ll[e]}/bulk-delete`,{resourceIds:r})}async function IPe(t,e){return t.post("/api/v1/sale-orders/line-items/bulk-upsert",{saleOrders:e})}var Ll,rK=X(()=>{"use strict";Ll={SALE_QUOTE:"sale-quotes",SALE_ORDER:"sale-orders"}});async function vPe(t,e,r){return t.list(`/api/v1/${Ml[e]}`,r)}async function sf(t,e,r){return t.get(`/api/v1/${Ml[e]}/${r}`)}async function x2(t,e,r){return t.search(`/api/v1/${Ml[e]}/search`,r)}async function T2(t,e,r){return t.search(`/api/v1/${Ml[e]}/line-items/search`,r)}async function vR(t,e){return t.post("/api/v1/purchase-requests",{...e,saveAsDraft:e.saveAsDraft??!0})}async function wR(t,e){return t.post("/api/v1/purchase-orders",{...e,saveAsDraft:e.saveAsDraft??!0})}async function B2(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/convert-to-bill`,n)}async function k2(t,e,r,n){return t.put(`/api/v1/${Ml[e]}/${r}`,n)}async function N2(t,e,r){await t.delete(`/api/v1/${Ml[e]}/${r}`)}async function O2(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/void`,n?{internalNotes:n}:{})}async function F2(t,e){return t.post(`/api/v1/purchase-requests/${e}/accept`,{})}async function Q2(t,e){return t.post(`/api/v1/purchase-orders/${e}/confirm`,{})}async function wPe(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/fast-fix`,{attributes:n})}async function _Pe(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/bulk-void`,{resourceIds:r,...n?{internalNotes:n}:{}})}async function DPe(t,e){return t.post("/api/v1/purchase-requests/bulk-accept",{resourceIds:e})}async function SPe(t,e){return t.post("/api/v1/purchase-orders/bulk-confirm",{resourceIds:e})}async function RPe(t,e,r){return t.post(`/api/v1/${Ml[e]}/bulk-delete`,{resourceIds:r})}async function xPe(t,e){return t.post("/api/v1/purchase-orders/line-items/bulk-upsert",{purchaseOrders:e})}var Ml,nK=X(()=>{"use strict";Ml={PURCHASE_REQUEST:"purchase-requests",PURCHASE_ORDER:"purchase-orders"}});async function L2(t,e){return t.list("/api/v1/journals",e)}async function _R(t,e){return t.search("/api/v1/journals/search",e)}async function yg(t,e){return t.post("/api/v1/journals",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function M2(t,e,r){return t.delete(`/api/v1/journals/${e}`,r)}async function Pl(t,e){return t.get(`/api/v1/journals/${e}`)}async function MC(t,e,r){return t.put(`/api/v1/journals/${e}`,{...r,currency:_r(r.currency),taxCurrency:_r(r.taxCurrency)})}async function TPe(t,e,r){return t.put(`/api/v1/journals/${e}`,{...r,resourceId:e,saveAsDraft:!1})}async function DR(t,e){return t.post("/api/v1/scheduled/journals",e)}async function P2(t,e){return po(t,"/api/v1/journals/bulk-upsert","journals",e)}async function BPe(t,e){return os(e,"resourceId","Pass the journal resourceId."),t.get(`/api/v1/journals/${encodeURIComponent(e)}/download`)}var Eg=X(()=>{"use strict";yn();pn()});async function U2(t,e){return t.post("/api/v1/generate-reports/trial-balance",e)}async function $2(t,e){return t.post("/api/v1/generate-reports/balance-sheet",e)}async function q2(t,e){return t.post("/api/v1/generate-reports/profit-and-loss",e)}async function j2(t,e){return t.post("/api/v1/generate-reports/cashflow",e)}async function Y2(t,e){return t.post("/api/v1/generate-reports/ar-summary-report",e)}async function H2(t,e){return t.post("/api/v1/generate-reports/ap-summary-report",e)}function PC(t,e){let{root:r,rows:n}=zHt[e],i=t.data?.[r]??{},o=Array.isArray(i[n])?i[n]:[],s={current:0,lessThanOneMonth:0,oneMonth:0,twoMonths:0,threeMonths:0,older:0,total:0};for(let u of o)s.current+=u.currentIso??0,s.lessThanOneMonth+=u.lessThanOneMonthIso??0,s.oneMonth+=u.oneMonthIso??0,s.twoMonths+=u.twoMonthsIso??0,s.threeMonths+=u.threeMonthsIso??0,s.older+=u.olderIso??0,s.total+=u.balanceIso??0;let a=u=>Math.round(u*100)/100,c=i.startDate;return{reportType:e==="receivables"?"AGED_RECEIVABLES":"AGED_PAYABLES",organizationName:i.organizationName,asAt:typeof c=="number"?new Date(c).toISOString().slice(0,10):void 0,currencyCode:i.currencyCode,currencySymbol:i.currencySymbol,buckets:{current:a(s.current),lessThanOneMonth:a(s.lessThanOneMonth),oneMonth:a(s.oneMonth),twoMonths:a(s.twoMonths),threeMonths:a(s.threeMonths),older:a(s.older)},totalOutstanding:a(s.total),contactCount:o.length}}async function z2(t,e){return t.post("/api/v1/generate-reports/cash-balance",e)}async function G2(t,e){return t.post("/api/v1/generate-reports/general-ledger",e)}async function J2(t,e){return t.post("/api/v1/generate-reports/vat-ledger",e)}async function V2(t,e){return t.post("/api/v1/generate-reports/equity-movement",e)}async function W2(t,e){return t.post("/api/v1/generate-reports/bank-balance-summary",e)}async function Z2(t,e){return t.post("/api/v1/generate-reports/bank-reconciliation-summary",e)}async function X2(t,e){return t.post("/api/v1/generate-reports/bank-reconciliation-details",e)}async function K2(t,e){return t.post("/api/v1/generate-reports/fixed-assets-summary",e)}async function eU(t,e){return t.post("/api/v1/generate-reports/fixed-assets-recon-summary",e)}async function tU(t,e){return t.post("/api/v1/generate-reports/ar-report",e)}async function rU(t){return t.get("/api/v1/ledger/highlights")}var zHt,iK=X(()=>{"use strict";zHt={receivables:{root:"generateAgedReceivablesReportGroupByContact",rows:"customerSummary"},payables:{root:"generateAgedPayablesReportGroupByContact",rows:"supplierSummary"}}});async function nU(t,e){return t.list("/api/v1/catalogs",e)}async function iU(t,e){return t.get(`/api/v1/catalogs/${encodeURIComponent(e)}`)}async function oU(t,e){return t.search("/api/v1/catalogs/search",e)}async function sU(t,e){return t.post("/api/v1/catalogs",e)}async function aU(t,e,r){return t.put(`/api/v1/catalogs/${encodeURIComponent(e)}`,r)}async function cU(t,e){await t.delete(`/api/v1/catalogs/${encodeURIComponent(e)}`)}var oK=X(()=>{"use strict"});async function kPe(t,e){return t.list("/api/v1/organization-report-template",e)}async function NPe(t,e){return t.get(`/api/v1/organization-report-template/${encodeURIComponent(e)}`)}async function OPe(t,e){return t.search("/api/v1/organization-report-template/search",e)}var FPe=X(()=>{"use strict"});async function lU(t,e){return t.list("/api/v1/customer-credit-notes",e)}async function Ya(t,e){return t.get(`/api/v1/customer-credit-notes/${e}`)}async function SR(t,e){return t.search("/api/v1/customer-credit-notes/search",e)}async function RR(t,e){return t.post("/api/v1/customer-credit-notes",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function uU(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Ya(t,e));return t.put(`/api/v1/customer-credit-notes/${e}`,i)}async function xR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Ya(t,e));return t.put(`/api/v1/customer-credit-notes/${e}`,n)}async function dU(t,e,r){return t.delete(`/api/v1/customer-credit-notes/${e}`,r)}async function TR(t,e,r){return t.post(`/api/v1/customer-credit-notes/${e}/refunds`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function fU(t,e){return t.get(`/api/v1/customer-credit-notes/${e}/refunds`)}async function pU(t,e){return t.get(`/api/v1/customer-credit-notes/${e}/download`)}async function hU(t,e){return po(t,"/api/v1/customer-credit-notes/bulk-upsert","customerCreditNotes",ip(e))}var mU=X(()=>{"use strict";zw();vA();yn();pn()});async function AU(t,e){return t.list("/api/v1/supplier-credit-notes",e)}async function Ha(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}`)}async function BR(t,e){return t.search("/api/v1/supplier-credit-notes/search",e)}async function kR(t,e){return t.post("/api/v1/supplier-credit-notes",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function gU(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Ha(t,e));return t.put(`/api/v1/supplier-credit-notes/${e}`,i)}async function NR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Ha(t,e));return t.put(`/api/v1/supplier-credit-notes/${e}`,n)}async function yU(t,e,r){return t.delete(`/api/v1/supplier-credit-notes/${e}`,r)}async function EU(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}/download`)}async function OR(t,e,r){return t.post(`/api/v1/supplier-credit-notes/${e}/refunds`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function bU(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}/refunds`)}async function CU(t,e){return po(t,"/api/v1/supplier-credit-notes/bulk-upsert","supplierCreditNotes",ip(e))}var IU=X(()=>{"use strict";zw();vA();yn();pn()});async function FR(t){return t.get("/api/v1/organization/currencies")}async function vU(t,e){return t.post("/api/v1/organization/currencies",{currencies:e})}async function wU(t,e,r){return t.list(`/api/v1/organization/currencies/${e}/rates`,r)}function QPe(t){F9(t.rate,"rate");let e=O9(t.rateDirection);return{...t,rateDirection:e}}async function _U(t,e,r){return t.post(`/api/v1/organization/currencies/${e}/rates`,QPe(r))}async function DU(t,e,r,n){return t.put(`/api/v1/organization/currencies/${e}/rates/${r}`,QPe(n))}async function SU(t,e){return t.post("/api/v1/organization/currencies/rates/bulk-upsert",{rates:e})}var RU=X(()=>{"use strict";pn()});var LPe=b((sK,aK)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof aK=="object"&&typeof sK<"u"?aK.exports=e():t.Papa=e()})(sK,function t(){"use strict";var e=(function(){return typeof self<"u"?self:typeof window<"u"?window:typeof e<"u"?e:{}})();function r(){var D=e.URL||e.webkitURL||null,B=t.toString();return a.BLOB_URL||(a.BLOB_URL=D.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",B,")();"],{type:"text/javascript"})))}var n=!e.document&&!!e.postMessage,i=e.IS_PAPA_WORKER||!1,o={},s=0,a={};if(a.parse=u,a.unparse=d,a.RECORD_SEP="",a.UNIT_SEP="",a.BYTE_ORDER_MARK="\uFEFF",a.BAD_DELIMITERS=["\r",`
442
+ ... and ${a.toLocaleString()} more (use --format json for full output)`));break}}}function hS(t,e){switch(Vp(e)){case"json":console.log(JSON.stringify(t,null,2));break;case"csv":{let n=Object.keys(t);console.log(n.map(HP).join(",")),console.log(n.map(i=>HP(QMe(t[i]))).join(","));break}case"yaml":console.log((0,HX.stringify)(t).trimEnd());break;case"table":console.log(OMe(t));break}}var HX,mg,ur=X(()=>{"use strict";Fe();HX=nn(BMe(),1);YX();an();FMe();mg=class extends Error{constructor(e){super(e),this.name="CliValidationError"}}});var PMe={};_o(PMe,{displaySlice:()=>zX,paginatedFetch:()=>ot,paginatedJson:()=>GX});async function ot(t,e,r){let n=r.defaultLimit??100;if(t.all&&t.offset!==void 0)throw new Error("--all and --offset cannot be used together");if(t.all){let d=(t.format?.toLowerCase()??(t.json?"json":"table"))==="table"?q1e(r.label):void 0,f=t.maxRows??MMe,p=await Qp((y,C)=>e({limit:C,offset:y}),{pageSize:t.limit??200,maxItems:f,onProgress:d?(y,C)=>d.update(y,C):void 0});d?.clear();let{truncated:h}=p,{data:m}=p;m.length>f&&(m=m.slice(0,f),h=!0),h&&!Ql(t)&&console.error(Be(`Warning: dataset has ${p.totalElements.toLocaleString()} items \u2014 showing ${m.length.toLocaleString()} (max-rows: ${f.toLocaleString()})`));let A=t.limit??n,g=Math.ceil(p.totalElements/A);return{data:m,totalElements:p.totalElements,totalPages:g,truncated:h}}let i=t.limit??n,o=await e({limit:i,offset:t.offset??0}),s=o.data??[],a=(o.totalElements??0)>s.length;return{data:s,totalElements:o.totalElements??0,totalPages:o.totalPages??0,truncated:a}}function zX(t,e=$Ht){return t.length<=e?{items:t,overflow:0}:{items:t.slice(0,e),overflow:t.length-e}}function GX(t,e){let{totalElements:r,totalPages:n,truncated:i,data:o,stats:s}=t,a=s?{stats:s}:{};if(i){let c=e.maxRows??MMe;return JSON.stringify({totalElements:r,totalPages:n,truncated:i,_meta:{fetchedRows:o.length,maxRows:c},...a,data:o},null,2)}return JSON.stringify({totalElements:r,totalPages:n,truncated:i,...a,data:o},null,2)}var MMe,$Ht,an=X(()=>{"use strict";Fe();QM();j1e();ur();MMe=1e3,$Ht=500});async function qHt(){if(!JX){let[t,e,r,n]=await Promise.all([Promise.resolve().then(()=>(mt(),YMe)),Promise.resolve().then(()=>(an(),PMe)),Promise.resolve().then(()=>(ur(),LMe)),Promise.resolve().then(()=>(_t(),z0e))]);JX=t.apiAction,UMe=e.paginatedFetch,$Me=r.outputList,VX=n.parsePositiveInt,qMe=n.parseNonNegativeInt}}function ze(t){let e=t.commandName??"search",r=t.positionalArg?` <${t.positionalArg}>`:"",n=t.parent.command(`${e}${r}`).description(`Search ${t.label.replace("Searching ","")}`);n.allowExcessArguments(!1);let i=new Map,o=z7(t.fields);for(let[a,c,u,d]of o){let f=new $t(a,c),p=t.fields[d];u&&p?.op!=="multi"&&f.choices(u),n.addOption(f);let h=jHt(a);h!==d&&i.set(h,d)}if(t.defaults.supportsQuery&&n.option("--query <expression>",'Jaz search expression (e.g. "status:unpaid AND $500+", "customer:acme AND date:-30d"). Merged with --filter; --filter fields win on conflict.'),n.option("--filter <json>","Raw API filter JSON (merged with flags; flags win on conflict)").addOption(new $t("--sort <field>","Sort field name")).addOption(new $t("--order <direction>","Sort direction").choices(["ASC","DESC"])).option("--limit <n>",`Max results (default ${t.defaults.defaultLimit})`).option("--offset <n>","Page number offset (0-indexed)").option("--all","Fetch all pages").option("--max-rows <n>","Max rows for --all (default 1000)").option("--format <type>","Output format: table, json, csv, yaml").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON"),t.defaults.supportsView&&n.addOption(new $t("--view <tier>","Payload tier: 'lean' = summary rows; 'full' (default) = complete records").choices(["lean","full"])),t.pathParam&&t.pathParam!==t.positionalArg){let a=t.pathParam.replace(/([A-Z])/g,"-$1").toLowerCase();n.requiredOption(`--${a} <id>`,t.pathParamDescription??`${t.pathParam} (required)`)}let s=async(...a)=>{let c=t.positionalArg?a[0]:void 0,u=t.positionalArg?a[1]:a[0];c&&t.positionalArg&&(u[t.positionalArg]=c),await qHt(),await JX(async d=>{t.preProcess&&await t.preProcess(d,u),typeof u.limit=="string"&&(u.limit=VX(u.limit)),typeof u.offset=="string"&&(u.offset=qMe(u.offset)),typeof u.maxRows=="string"&&(u.maxRows=VX(u.maxRows));let f={...u};for(let[v,x]of i)f[v]!==void 0&&(f[x]=f[v]);let p;if(typeof u.filter=="string")try{p=JSON.parse(u.filter)}catch{throw new Error(`Invalid --filter JSON: ${u.filter}`)}let h=t.baseFilter?p?{...t.baseFilter,...p}:t.baseFilter:p,m=RD(f,t.fields,h),A;if(c&&t.positionalFilter){let v=t.positionalFilter(c);A=m?{...v,...m}:v}else A=m;let g={sortBy:[u.sort??t.defaults.sortBy],order:u.order??t.defaults.sortOrder},y=t.defaults.supportsQuery?u.query:void 0,C=t.defaults.supportsView?u.view:void 0,E=t.pathParam?({limit:v,offset:x})=>t.fetcher(d,u[t.pathParam],{filter:A,sort:g,limit:v,offset:x,query:y,view:C}):({limit:v,offset:x})=>t.fetcher(d,{filter:A,sort:g,limit:v,offset:x,query:y,view:C}),I=await UMe(u,E,{label:t.label,defaultLimit:t.defaults.defaultLimit});$Me(I,t.columns,u,t.label.replace("Searching ",""))})(u)};return n.action(s),n}function jHt(t){return t.replace(/^--/,"").split(/[\s<]/)[0].replace(/-([a-z])/g,(r,n)=>n.toUpperCase())}var JX,UMe,$Me,VX,qMe,jMe=X(()=>{"use strict";xs();G7();FM()});var NC,OC,mS,AS,HMe=X(()=>{"use strict";sa();NC={reference:{path:"reference",op:"contains",type:"string",description:"Invoice reference number"},status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:pFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact/customer name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},approvalStatus:{path:"approvalStatus",op:"multi",type:"string",description:"Approval status",enum:kM},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},dueDateFrom:{path:"dueDate",op:"gte",type:"string",description:"Due date from (YYYY-MM-DD)"},dueDateTo:{path:"dueDate",op:"lte",type:"string",description:"Due date to (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},OC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},mS=NC,AS=OC});var zMe,gS,yS,FC,ES,Wp,Zp,GMe=X(()=>{"use strict";sa();zMe={reference:{path:"reference",op:"contains",type:"string",description:"Order reference number"},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact (customer/supplier) name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},dueDateFrom:{path:"dueDate",op:"gte",type:"string",description:"Due date from (YYYY-MM-DD)"},dueDateTo:{path:"dueDate",op:"lte",type:"string",description:"Due date to (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},gS={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:xFe},...zMe},yS={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:TFe},...zMe},FC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},ES=FC,Wp={name:{path:"name",op:"contains",type:"string",description:"Line item text/description"},reference:{path:"reference",op:"contains",type:"string",description:"Parent order reference"},orderId:{path:"btResourceId",op:"eq",type:"string",description:"Parent order resourceId"},contactName:{path:"contactName",op:"contains",type:"string",description:"Contact (customer/supplier) name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (e.g., SGD, USD)"},status:{path:"status",op:"eq",type:"string",description:"Line item status"},account:{path:"organizationAccountName",op:"contains",type:"string",description:"Chart-of-account name on the line"},taxProfile:{path:"taxProfileName",op:"contains",type:"string",description:"Tax profile name on the line"},isOpen:{path:"isOpen",op:"boolean",type:"boolean",description:"Only open (unfulfilled) lines"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On/before (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"totalItemAmount",op:"gte",type:"number",description:"Minimum line amount"},maxAmount:{path:"totalItemAmount",op:"lte",type:"number",description:"Maximum line amount"}},Zp={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0}});var Xp,QC,bS,JMe=X(()=>{"use strict";sa();Xp={reference:{path:"reference",op:"contains",type:"string",description:"Credit note reference"},status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:hFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},contactId:{path:"contactResourceId",op:"eq",type:"string",description:"Contact resourceId"},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code"},approvalStatus:{path:"approvalStatus",op:"multi",type:"string",description:"Approval status",enum:kM},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"}},QC={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0},bS=QC});var CS,IS,VMe=X(()=>{"use strict";sa();CS={reference:{path:"reference",op:"contains",type:"string",description:"Journal reference"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:mFe},type:{path:"type",op:"multi",type:"string",description:"Journal type",enum:AFe},templateType:{path:"templateType",op:"multi",type:"string",description:"Template type",enum:gFe},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},internalNotes:{path:"internalNotes",op:"contains",type:"string",description:"Search internal notes"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"}},IS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var vS,wS,WMe=X(()=>{"use strict";sa();vS={name:{path:"name",op:"contains",type:"string",description:"Contact name"},email:{path:"email",op:"contains",type:"string",description:"Email address"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:BM},isCustomer:{path:"customer",op:"boolean",type:"boolean",description:"Filter to customers only",cliFlag:"--customer"},isSupplier:{path:"supplier",op:"boolean",type:"boolean",description:"Filter to suppliers only",cliFlag:"--supplier"},taxId:{path:"taxId",op:"contains",type:"string",description:"Tax ID"}},wS={sortBy:"name",sortOrder:"ASC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var rf,nf,WX,_S,DS,ZMe=X(()=>{"use strict";sa();rf={type:{path:"businessTransactionType",op:"multi",type:"string",description:"Transaction type",enum:NM},direction:{path:"direction",op:"eq",type:"string",description:"Direction (PAYIN or PAYOUT)",enum:j7},status:{path:"businessTransactionStatus",op:"multi",type:"string",description:"Status",enum:vFe},reference:{path:"businessTransactionReference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},accountId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"Bank account resourceId",cliFlag:"--account <id>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},businessTransactionType:{path:"businessTransactionType",op:"multi",type:"string",description:"(alias for type)"}},nf={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0},WX={magicSort:{type:"object",description:"Rank by match quality to a bank entry: {bankStatementEntryResourceId, magicSort:true}."},transactionType:{type:"string",enum:[...IFe],description:"Scope. Default ALL_CASHFLOWS."}},_S={type:{path:"businessTransactionType",op:"multi",type:"string",description:"Transaction type (SALE, PURCHASE, etc.)",enum:NM},direction:{path:"direction",op:"eq",type:"string",description:"Direction",enum:j7},reference:{path:"businessTransactionReference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},accountId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"Account resourceId",cliFlag:"--account <id>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},businessTransactionType:{path:"businessTransactionType",op:"multi",type:"string",description:"(alias for type)",enum:NM},fromDate:{path:"valueDate",op:"gte",type:"string",description:"(alias for startDate)"},toDate:{path:"valueDate",op:"lte",type:"string",description:"(alias for endDate)"},accountResourceId:{path:"organizationAccountResourceId",op:"eq",type:"string",description:"(alias for accountId)"}},DS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20}});var SS,RS,XMe=X(()=>{"use strict";sa();SS={status:{path:"status",op:"multi",type:"string",description:"Status",enum:CFe},description:{path:"description",op:"contains",type:"string",description:"Description"},payer:{path:"extContactName",op:"contains",type:"string",description:"Payer/payee name"},reference:{path:"extReference",op:"contains",type:"string",description:"Bank reference",cliFlag:"--ref <reference>"},startDate:{path:"valueDate",op:"gte",type:"string",description:"On or after this date (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"On or before this date (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"netAmount",op:"gte",type:"number",description:"Minimum net amount"},maxAmount:{path:"netAmount",op:"lte",type:"number",description:"Maximum net amount"}},RS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20,supportsQuery:!0}});var xS,TS,KMe=X(()=>{"use strict";sa();xS={status:{path:"status",op:"multi",type:"string",description:"Status",enum:yFe},itemCategory:{path:"itemCategory",op:"eq",type:"string",description:"Category",enum:bFe},appliesToSale:{path:"appliesToSale",op:"boolean",type:"boolean",description:"Filter to sale items only",cliFlag:"--sale"},appliesToPurchase:{path:"appliesToPurchase",op:"boolean",type:"boolean",description:"Filter to purchase items only",cliFlag:"--purchase"}},TS={sortBy:"internalName",sortOrder:"ASC",defaultLimit:20,leanDefaultLimit:50,supportsQuery:!0,supportsView:!0}});var BS,kS,ePe=X(()=>{"use strict";sa();BS={name:{path:"name",op:"contains",type:"string",description:"Asset name"},reference:{path:"reference",op:"contains",type:"string",description:"Reference",cliFlag:"--ref <reference>"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:wFe},category:{path:"category",op:"eq",type:"string",description:"Category",enum:_Fe},tag:{path:"tags",op:"eq",type:"string",description:"Tag name",cliFlag:"--tag <name>"},typeName:{path:"typeName",op:"contains",type:"string",description:"Asset type name"},startDate:{path:"purchaseDate",op:"gte",type:"string",description:"Purchase date from (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"purchaseDate",op:"lte",type:"string",description:"Purchase date to (YYYY-MM-DD)",cliFlag:"--to <date>"},minAmount:{path:"purchaseAmount",op:"gte",type:"number",description:"Minimum purchase amount"},maxAmount:{path:"purchaseAmount",op:"lte",type:"number",description:"Maximum purchase amount"}},kS={sortBy:"name",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});var NS,OS,tPe=X(()=>{"use strict";sa();NS={type:{path:"businessTransactionType",op:"eq",type:"string",description:"Transaction type (SALE, PURCHASE, JOURNAL_MANUAL)"},status:{path:"status",op:"multi",type:"string",description:"Scheduler status",enum:DFe},subscriptionStatus:{path:"subscriptionStatus",op:"multi",type:"string",description:"Subscription status",enum:SFe},schedulerType:{path:"schedulerType",op:"eq",type:"string",description:"Scheduler type"},interval:{path:"interval",op:"eq",type:"string",description:"Interval",enum:RFe},contactName:{path:"contact.name",op:"contains",type:"string",description:"Contact name"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code"}},OS={sortBy:"nextScheduleDate",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});var FS,QS,rPe=X(()=>{"use strict";sa();FS={id:{path:"resourceId",op:"eq",type:"string",description:"Job ID (the jobId returned from bulk operations)",cliFlag:"--id"},status:{path:"status",op:"multi",type:"string",description:"Job status",enum:FFe},type:{path:"jobType",op:"eq",type:"string",description:"Job type (e.g. UPSERT_CONTACTS, UPSERT_ITEMS, PROCESS_BANK_STATEMENT_FILES)",cliFlag:"--type"},fileName:{path:"fileName",op:"contains",type:"string",description:"File name (file-based jobs only)",cliFlag:"--file-name"},from:{path:"createdAt",op:"gte",type:"string",description:"On/after (ISO date)",cliFlag:"--from"},to:{path:"createdAt",op:"lte",type:"string",description:"On/before (ISO date)",cliFlag:"--to"}},QS={sortBy:"createdAt",sortOrder:"DESC",defaultLimit:20}});var ZX,XX,nPe=X(()=>{"use strict";ZX={name:{path:"name",op:"contains",type:"string",description:"Purchase item name"},reference:{path:"reference",op:"contains",type:"string",description:"Reference name"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (ISO 4217)"}},XX={sortBy:"name",sortOrder:"ASC",defaultLimit:20}});var LS,MS,KX,eK,iPe=X(()=>{"use strict";LS={catalogName:{path:"catalogName",op:"contains",type:"string",description:"Catalog name"},description:{path:"description",op:"contains",type:"string",description:"Catalog item description"},status:{path:"status",op:"multi",type:"string",description:"Record status (e.g. ACTIVE, INACTIVE)"},contactGroupResourceId:{path:"contactGroupResourceId",op:"eq",type:"string",description:"Contact group resourceId"}},MS={sortBy:"catalogName",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0},KX={reportType:{path:"reportType",op:"eq",type:"string",description:"Report type"},reportCategory:{path:"reportCategory",op:"eq",type:"string",description:"Report category"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Only default templates",cliFlag:"--default"}},eK={sortBy:"reportType",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0}});async function zP(t,e){return t.search("/api/v1/claims/search",e)}async function GP(t,e){return t.get(`/api/v1/claims/${e}`)}async function JP(t,e){return t.post("/api/v1/claims",e)}async function VP(t,e,r){return t.put(`/api/v1/claims/${e}`,r)}async function WP(t,e){return t.delete(`/api/v1/claims/${e}`)}async function ZP(t,e,r){return t.delete(`/api/v1/claims/${e}/attachments/${r}`)}async function XP(t,e){return t.post(`/api/v1/claims/${e}/submit`,{})}async function KP(t,e){return t.post(`/api/v1/claims/${e}/approve`,{})}async function e2(t,e,r){return t.post(`/api/v1/claims/${e}/reject`,{rejectionReason:r})}async function t2(t,e,r){return t.post(`/api/v1/claims/${e}/cancel`,{cancellationReason:r})}async function r2(t,e){return t.post(`/api/v1/claims/${e}/unpost`,{})}function PS(t){Ot(t,"resourceIds",500,"claims")}async function n2(t,e){return PS(e),t.post("/api/v1/claims/bulk/submit",{resourceIds:e})}async function i2(t,e){return PS(e),t.post("/api/v1/claims/bulk/approve",{resourceIds:e})}async function o2(t,e){return PS(e),t.post("/api/v1/claims/bulk/delete",{resourceIds:e})}async function s2(t,e,r){return PS(e),t.post("/api/v1/claims/bulk/reject",{resourceIds:e,rejectionReason:r})}async function a2(t,e,r){return PS(e),t.post("/api/v1/claims/bulk/cancel",{resourceIds:e,cancellationReason:r})}async function c2(t){let e=await t.get("/api/v1/claims/tracking-tags");return Array.isArray(e)?e:e?.data??[]}async function l2(t){let e=await t.get("/api/v1/claims/custom-field-values");return Array.isArray(e)?e:e?.data??[]}var oPe,u2=X(()=>{"use strict";yn();oPe=["DRAFT","SUBMITTED","APPROVED","CONVERTED","REJECTED","CANCELLED"]});var US,$S,YHt,HHt,qS,jS,YS,HS,zS,GS,JS,VS,sPe=X(()=>{"use strict";a_();u_();u2();US={status:{path:"status",op:"multi",type:"string",description:"Status (comma-separated for OR)",enum:oPe},employeeResourceId:{path:"employeeResourceId",op:"eq",type:"string",description:"Employee resourceId"},contactResourceId:{path:"contactResourceId",op:"eq",type:"string",description:"Vendor contact resourceId"},claimProfileResourceId:{path:"claimProfileResourceId",op:"eq",type:"string",description:"Claim profile resourceId"},approverUserResourceId:{path:"approverUserResourceId",op:"eq",type:"string",description:"Approver user resourceId"},reference:{path:"reference",op:"contains",type:"string",description:"Claim reference"},currencyCode:{path:"currencyCode",op:"eq",type:"string",description:"Currency code (ISO 4217)"},startDate:{path:"valueDate",op:"gte",type:"string",description:"Value date on/after (YYYY-MM-DD)",cliFlag:"--from <date>"},endDate:{path:"valueDate",op:"lte",type:"string",description:"Value date on/before (YYYY-MM-DD)",cliFlag:"--to <date>"},createdFrom:{path:"createdAt",op:"gte",type:"string",description:"Created on/after (YYYY-MM-DD)"},createdTo:{path:"createdAt",op:"lte",type:"string",description:"Created on/before (YYYY-MM-DD)"},minAmount:{path:"totalAmount",op:"gte",type:"number",description:"Minimum total amount"},maxAmount:{path:"totalAmount",op:"lte",type:"number",description:"Maximum total amount"}},$S={sortBy:"createdAt",sortOrder:"DESC",defaultLimit:20},YHt=["RECORDED","COMPLETED","CANCELLED","IN_PROGRESS","ACTION_NEEDED"],HHt=["DIRECT_ENTRY","DISBURSEMENT","REIMBURSEMENT_PAYOUT","ADVANCE"],qS={employeeResourceId:{path:"employeeResourceId",op:"eq",type:"string",description:"Employee resourceId"},employeeName:{path:"employeeName",op:"contains",type:"string",description:"Employee name"},reference:{path:"reference",op:"contains",type:"string",description:"Payout reference"},payoutStatus:{path:"payoutStatus",op:"multi",type:"string",description:"Payout status (comma-separated)",enum:YHt},payoutType:{path:"payoutType",op:"multi",type:"string",description:"Payout type (comma-separated): DIRECT_ENTRY (books-only DCE), DISBURSEMENT (gateway direct-debit-backed), REIMBURSEMENT_PAYOUT, ADVANCE",enum:HHt}},jS={sortBy:"valueDate",sortOrder:"DESC",defaultLimit:20},YS={name:{path:"name",op:"contains",type:"string",description:"Claim type name"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default claim type"},expenseAccountResourceId:{path:"expenseAccountResourceId",op:"eq",type:"string",description:"Default expense account resourceId"},taxProfileResourceId:{path:"taxProfileResourceId",op:"eq",type:"string",description:"Default tax profile resourceId"}},HS={sortBy:"name",sortOrder:"ASC",defaultLimit:100},zS={name:{path:"name",op:"contains",type:"string",description:"Claim profile name"},approverUserResourceId:{path:"approverUserResourceId",op:"eq",type:"string",description:"Default approver user resourceId"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default profile"},minClaimAmount:{path:"minClaimAmount",op:"gte",type:"number",description:"Minimum claim total (>=)"},maxClaimAmount:{path:"maxClaimAmount",op:"lte",type:"number",description:"Maximum claim total (<=)"},maxPerPeriodAmount:{path:"maxPerPeriodAmount",op:"lte",type:"number",description:"Per-period spend cap (<=)"},perPeriod:{path:"perPeriod",op:"eq",type:"string",description:"Per-period window",enum:o_},employeeBalanceAccountResourceId:{path:"employeeBalanceAccountResourceId",op:"eq",type:"string",description:"Employee balance (liability) account resourceId"}},GS={sortBy:"name",sortOrder:"ASC",defaultLimit:100},JS={name:{path:"name",op:"contains",type:"string",description:"Posting rule name"},outerAxis:{path:"outerAxis",op:"eq",type:"string",description:"Outer grouping axis",enum:c_},innerAxis:{path:"innerAxis",op:"eq",type:"string",description:"Inner line-aggregation axis",enum:l_},defaultBankAccountResourceId:{path:"defaultBankAccountResourceId",op:"eq",type:"string",description:"Default reimbursement bank account resourceId"},defaultIncludeReimbursementPayout:{path:"defaultIncludeReimbursementPayout",op:"boolean",type:"boolean",description:"Creates reimbursement DCE by default"},isDefault:{path:"isDefault",op:"boolean",type:"boolean",description:"Org default rule"}},VS={sortBy:"name",sortOrder:"ASC",defaultLimit:100}});var WS,ZS,XS,KS,aPe=X(()=>{"use strict";d_();WS={name:{path:"name",op:"contains",type:"string",description:"Employee name"},email:{path:"email",op:"contains",type:"string",description:"Work email"},phone:{path:"phone",op:"contains",type:"string",description:"Phone"},userResourceId:{path:"userResourceId",op:"eq",type:"string",description:"Bound login user resourceId"},managerEmployeeResourceId:{path:"managerEmployeeResourceId",op:"eq",type:"string",description:"Manager employee resourceId"},claimProfileResourceId:{path:"claimProfileResourceId",op:"eq",type:"string",description:"Claim profile resourceId"},currency:{path:"currency",op:"eq",type:"string",description:"Balance currency (ISO 4217)"},active:{path:"active",op:"boolean",type:"boolean",description:"Active employees only"},createdFrom:{path:"createdAt",op:"gte",type:"string",description:"Created on/after (YYYY-MM-DD)"},createdTo:{path:"createdAt",op:"lte",type:"string",description:"Created on/before (YYYY-MM-DD)"}},ZS={sortBy:"name",sortOrder:"ASC",defaultLimit:50},XS={name:{path:"name",op:"contains",type:"string",description:"Employee name"},email:{path:"email",op:"contains",type:"string",description:"Work email"},phone:{path:"phone",op:"contains",type:"string",description:"Phone"},currency:{path:"currency",op:"eq",type:"string",description:"Balance currency (ISO 4217)"},employmentType:{path:"employmentType",op:"eq",type:"string",description:"Employment type",enum:DA},active:{path:"active",op:"boolean",type:"boolean",description:"Active employees only"}},KS={sortBy:"name",sortOrder:"ASC",defaultLimit:50}});var eR,tR,rR,nR,iR,oR,sR,aR,cR,lR,uR,dR,fR,pR,tK,hR,mR,AR,gR,cPe=X(()=>{"use strict";sa();eR={name:{path:"name",op:"contains",type:"string",description:"Account name"},code:{path:"code",op:"contains",type:"string",description:"Account code"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:EFe},accountClass:{path:"accountClass",op:"eq",type:"string",description:"Account class",enum:BFe},accountType:{path:"accountType",op:"eq",type:"string",description:"Account type",enum:OM},controlFlag:{path:"controlFlag",op:"boolean",type:"boolean",description:"Control flag (system accounts)"}},tR={sortBy:"code",sortOrder:"ASC",defaultLimit:100,supportsQuery:!1},rR={query:{path:"tagName",op:"contains",type:"string",description:"Tag name"}},nR={sortBy:"tagName",sortOrder:"ASC",defaultLimit:100},iR={name:{path:"name",op:"contains",type:"string",description:"Tax profile name",cliFlag:"--name <name>"},taxTypeCode:{path:"taxTypeCode",op:"contains",type:"string",description:"Tax type code"},appliesToSale:{path:"appliesToSale",op:"boolean",type:"boolean",description:"Filter to sale profiles"},appliesToPurchase:{path:"appliesToPurchase",op:"boolean",type:"boolean",description:"Filter to purchase profiles"},appliesToSaleCreditNote:{path:"appliesToSaleCreditNote",op:"boolean",type:"boolean",description:"Filter to sale CN profiles"},appliesToPurchaseCreditNote:{path:"appliesToPurchaseCreditNote",op:"boolean",type:"boolean",description:"Filter to purchase CN profiles"}},oR={sortBy:"name",sortOrder:"ASC",defaultLimit:100,supportsQuery:!0},sR={title:{path:"title",op:"contains",type:"string",description:"Capsule title"},status:{path:"status",op:"multi",type:"string",description:"Status",enum:OFe}},aR={sortBy:"title",sortOrder:"ASC",defaultLimit:20,supportsQuery:!0},cR={query:{path:"customFieldName",op:"contains",type:"string",description:"Custom field name",cliFlag:"--name <name>"},datatypeCode:{path:"datatypeCode",op:"eq",type:"string",description:"Data type",enum:kFe,cliFlag:"--type <type>"},customFieldName:{path:"customFieldName",op:"contains",type:"string",description:"(alias for query)"}},lR={sortBy:"customFieldName",sortOrder:"ASC",defaultLimit:100},uR={query:{path:"name",op:"contains",type:"string",description:"Group name"}},dR={sortBy:"name",sortOrder:"ASC",defaultLimit:100},fR={firstName:{path:"user.firstName",op:"contains",type:"string",description:"User first name"},lastName:{path:"user.lastName",op:"contains",type:"string",description:"User last name"},email:{path:"user.email",op:"contains",type:"string",description:"Email"},userType:{path:"userType",op:"eq",type:"string",description:"Access tier",enum:NFe},status:{path:"status",op:"multi",type:"string",description:"Status",enum:BM}},pR={sortBy:"user.FirstName",sortOrder:"ASC",defaultLimit:50},tK=t=>({or:{user:{firstName:{contains:t}},or:{user:{lastName:{contains:t}}}}}),hR={query:{path:"name",op:"contains",type:"string",description:"Rule name"},account:{path:"appliesToReconciliationAccount",op:"eq",type:"string",description:"Bank account resourceId",cliFlag:"--account <id>"}},mR={sortBy:"name",sortOrder:"ASC",defaultLimit:100},AR={query:{path:"type",op:"contains",type:"string",description:"Classifier type"}},gR={sortBy:"type",sortOrder:"ASC",defaultLimit:100}});var fr=X(()=>{"use strict";sa();FM();G7();jMe();HMe();GMe();JMe();VMe();WMe();ZMe();XMe();KMe();ePe();tPe();rPe();nPe();iPe();sPe();aPe();cPe()});async function lPe(t,e){return t.list("/api/v1/modules",e)}async function uPe(t,e){return t.get(`/api/v1/modules/${encodeURIComponent(e)}`)}var dPe=X(()=>{"use strict"});async function fPe(t,e){return t.list("/api/v1/purchase-items",e)}async function pPe(t,e){return t.get(`/api/v1/purchase-items/${encodeURIComponent(e)}`)}async function hPe(t,e){return t.search("/api/v1/purchase-items/search",e)}var mPe=X(()=>{"use strict"});async function d2(t,e){return t.list("/api/v1/invoices",e)}async function Lo(t,e){let r=await t.get(`/api/v1/invoices/${e}`);return"data"in r&&typeof r.data=="object"?r:{data:r}}async function LC(t,e){return t.search("/api/v1/invoices/search",e)}async function Ag(t,e){return t.post("/api/v1/invoices",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function f2(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Lo(t,e));return t.put(`/api/v1/invoices/${e}`,i)}async function p2(t,e,r){return t.delete(`/api/v1/invoices/${e}`,r)}async function yR(t,e,r){return t.post(`/api/v1/invoices/${e}/payments`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function ER(t,e){return t.post("/api/v1/scheduled/invoices",{...e,invoice:{...e.invoice,currency:_r(e.invoice?.currency)}})}async function h2(t,e,r){return t.post(`/api/v1/invoices/${e}/credits`,{credits:r})}async function bR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Lo(t,e));return t.put(`/api/v1/invoices/${e}`,n)}async function m2(t,e){return t.get(`/api/v1/invoices/${e}/download`)}async function A2(t,e){let r=await t.get(`/api/v1/invoices/${e}/payments`);return{data:Array.isArray(r)?r:r.data??[]}}async function g2(t,e){let r=await t.get(`/api/v1/invoices/${e}/credits`);return{data:Array.isArray(r)?r:r.data??[]}}async function y2(t,e,r){await t.delete(`/api/v1/invoices/${e}/credits/${r}`)}async function E2(t,e){return po(t,"/api/v1/invoices/bulk-upsert","invoices",e)}async function b2(t,e){return po(t,"/api/v1/invoices/line-items/bulk-upsert","invoices",ip(e))}var gg=X(()=>{"use strict";zw();vA();yn();pn()});async function APe(t,e,r){return t.list(`/api/v1/${Ll[e]}`,r)}async function of(t,e,r){return t.get(`/api/v1/${Ll[e]}/${r}`)}async function C2(t,e,r){return t.search(`/api/v1/${Ll[e]}/search`,r)}async function I2(t,e,r){return t.search(`/api/v1/${Ll[e]}/line-items/search`,r)}async function CR(t,e){return t.post("/api/v1/sale-quotes",{...e,saveAsDraft:e.saveAsDraft??!0})}async function IR(t,e){return t.post("/api/v1/sale-orders",e)}async function v2(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/convert-to-invoice`,n)}async function w2(t,e,r,n){return t.put(`/api/v1/${Ll[e]}/${r}`,n)}async function _2(t,e,r){await t.delete(`/api/v1/${Ll[e]}/${r}`)}async function D2(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/void`,n?{internalNotes:n}:{})}async function S2(t,e){return t.post(`/api/v1/sale-quotes/${e}/accept`,{})}async function R2(t,e){return t.post(`/api/v1/sale-orders/${e}/confirm`,{})}async function gPe(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/${r}/fast-fix`,{attributes:n})}async function yPe(t,e,r,n){return t.post(`/api/v1/${Ll[e]}/bulk-void`,{resourceIds:r,...n?{internalNotes:n}:{}})}async function EPe(t,e){return t.post("/api/v1/sale-quotes/bulk-accept",{resourceIds:e})}async function bPe(t,e){return t.post("/api/v1/sale-orders/bulk-confirm",{resourceIds:e})}async function CPe(t,e,r){return t.post(`/api/v1/${Ll[e]}/bulk-delete`,{resourceIds:r})}async function IPe(t,e){return t.post("/api/v1/sale-orders/line-items/bulk-upsert",{saleOrders:e})}var Ll,rK=X(()=>{"use strict";Ll={SALE_QUOTE:"sale-quotes",SALE_ORDER:"sale-orders"}});async function vPe(t,e,r){return t.list(`/api/v1/${Ml[e]}`,r)}async function sf(t,e,r){return t.get(`/api/v1/${Ml[e]}/${r}`)}async function x2(t,e,r){return t.search(`/api/v1/${Ml[e]}/search`,r)}async function T2(t,e,r){return t.search(`/api/v1/${Ml[e]}/line-items/search`,r)}async function vR(t,e){return t.post("/api/v1/purchase-requests",{...e,saveAsDraft:e.saveAsDraft??!0})}async function wR(t,e){return t.post("/api/v1/purchase-orders",{...e,saveAsDraft:e.saveAsDraft??!0})}async function B2(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/convert-to-bill`,n)}async function k2(t,e,r,n){return t.put(`/api/v1/${Ml[e]}/${r}`,n)}async function N2(t,e,r){await t.delete(`/api/v1/${Ml[e]}/${r}`)}async function O2(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/void`,n?{internalNotes:n}:{})}async function F2(t,e){return t.post(`/api/v1/purchase-requests/${e}/accept`,{})}async function Q2(t,e){return t.post(`/api/v1/purchase-orders/${e}/confirm`,{})}async function wPe(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/${r}/fast-fix`,{attributes:n})}async function _Pe(t,e,r,n){return t.post(`/api/v1/${Ml[e]}/bulk-void`,{resourceIds:r,...n?{internalNotes:n}:{}})}async function DPe(t,e){return t.post("/api/v1/purchase-requests/bulk-accept",{resourceIds:e})}async function SPe(t,e){return t.post("/api/v1/purchase-orders/bulk-confirm",{resourceIds:e})}async function RPe(t,e,r){return t.post(`/api/v1/${Ml[e]}/bulk-delete`,{resourceIds:r})}async function xPe(t,e){return t.post("/api/v1/purchase-orders/line-items/bulk-upsert",{purchaseOrders:e})}var Ml,nK=X(()=>{"use strict";Ml={PURCHASE_REQUEST:"purchase-requests",PURCHASE_ORDER:"purchase-orders"}});async function L2(t,e){return t.list("/api/v1/journals",e)}async function _R(t,e){return t.search("/api/v1/journals/search",e)}async function yg(t,e){return t.post("/api/v1/journals",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function M2(t,e,r){return t.delete(`/api/v1/journals/${e}`,r)}async function Pl(t,e){return t.get(`/api/v1/journals/${e}`)}async function MC(t,e,r){return t.put(`/api/v1/journals/${e}`,{...r,currency:_r(r.currency),taxCurrency:_r(r.taxCurrency)})}async function TPe(t,e,r){return t.put(`/api/v1/journals/${e}`,{...r,resourceId:e,saveAsDraft:!1})}async function DR(t,e){return t.post("/api/v1/scheduled/journals",e)}async function P2(t,e){return po(t,"/api/v1/journals/bulk-upsert","journals",e)}async function BPe(t,e){return os(e,"resourceId","Pass the journal resourceId."),t.get(`/api/v1/journals/${encodeURIComponent(e)}/download`)}var Eg=X(()=>{"use strict";yn();pn()});async function U2(t,e){return t.post("/api/v1/generate-reports/trial-balance",e)}async function $2(t,e){return t.post("/api/v1/generate-reports/balance-sheet",e)}async function q2(t,e){return t.post("/api/v1/generate-reports/profit-and-loss",e)}async function j2(t,e){return t.post("/api/v1/generate-reports/cashflow",e)}async function Y2(t,e){return t.post("/api/v1/generate-reports/ar-summary-report",e)}async function H2(t,e){return t.post("/api/v1/generate-reports/ap-summary-report",e)}function PC(t,e){let{root:r,rows:n}=zHt[e],i=t.data?.[r]??{},o=Array.isArray(i[n])?i[n]:[],s={current:0,lessThanOneMonth:0,oneMonth:0,twoMonths:0,threeMonths:0,older:0,total:0};for(let u of o)s.current+=u.currentIso??0,s.lessThanOneMonth+=u.lessThanOneMonthIso??0,s.oneMonth+=u.oneMonthIso??0,s.twoMonths+=u.twoMonthsIso??0,s.threeMonths+=u.threeMonthsIso??0,s.older+=u.olderIso??0,s.total+=u.balanceIso??0;let a=u=>Math.round(u*100)/100,c=i.startDate;return{reportType:e==="receivables"?"AGED_RECEIVABLES":"AGED_PAYABLES",organizationName:i.organizationName,asAt:typeof c=="number"?new Date(c).toISOString().slice(0,10):void 0,currencyCode:i.currencyCode,currencySymbol:i.currencySymbol,buckets:{current:a(s.current),lessThanOneMonth:a(s.lessThanOneMonth),oneMonth:a(s.oneMonth),twoMonths:a(s.twoMonths),threeMonths:a(s.threeMonths),older:a(s.older)},totalOutstanding:a(s.total),contactCount:o.length}}async function z2(t,e){return t.post("/api/v1/generate-reports/cash-balance",e)}async function G2(t,e){return t.post("/api/v1/generate-reports/general-ledger",e)}async function J2(t,e){return t.post("/api/v1/generate-reports/vat-ledger",e)}async function V2(t,e){return t.post("/api/v1/generate-reports/equity-movement",e)}async function W2(t,e){return t.post("/api/v1/generate-reports/bank-balance-summary",e)}async function Z2(t,e){return t.post("/api/v1/generate-reports/bank-reconciliation-summary",e)}async function X2(t,e){return t.post("/api/v1/generate-reports/bank-reconciliation-details",e)}async function K2(t,e){return t.post("/api/v1/generate-reports/fixed-assets-summary",e)}async function eU(t,e){return t.post("/api/v1/generate-reports/fixed-assets-recon-summary",e)}async function tU(t,e){return t.post("/api/v1/generate-reports/ar-report",e)}async function rU(t){return t.get("/api/v1/ledger/highlights")}var zHt,iK=X(()=>{"use strict";zHt={receivables:{root:"generateAgedReceivablesReportGroupByContact",rows:"customerSummary"},payables:{root:"generateAgedPayablesReportGroupByContact",rows:"supplierSummary"}}});async function nU(t,e){return t.list("/api/v1/catalogs",e)}async function iU(t,e){return t.get(`/api/v1/catalogs/${encodeURIComponent(e)}`)}async function oU(t,e){return t.search("/api/v1/catalogs/search",e)}async function sU(t,e){return t.post("/api/v1/catalogs",e)}async function aU(t,e,r){return t.put(`/api/v1/catalogs/${encodeURIComponent(e)}`,r)}async function cU(t,e){await t.delete(`/api/v1/catalogs/${encodeURIComponent(e)}`)}var oK=X(()=>{"use strict"});async function kPe(t,e){return t.list("/api/v1/organization-report-template",e)}async function NPe(t,e){return t.get(`/api/v1/organization-report-template/${encodeURIComponent(e)}`)}async function OPe(t,e){return t.search("/api/v1/organization-report-template/search",e)}var FPe=X(()=>{"use strict"});async function lU(t,e){return t.list("/api/v1/customer-credit-notes",e)}async function Ya(t,e){return t.get(`/api/v1/customer-credit-notes/${e}`)}async function SR(t,e){return t.search("/api/v1/customer-credit-notes/search",e)}async function RR(t,e){return t.post("/api/v1/customer-credit-notes",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function uU(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Ya(t,e));return t.put(`/api/v1/customer-credit-notes/${e}`,i)}async function xR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Ya(t,e));return t.put(`/api/v1/customer-credit-notes/${e}`,n)}async function dU(t,e,r){return t.delete(`/api/v1/customer-credit-notes/${e}`,r)}async function TR(t,e,r){return t.post(`/api/v1/customer-credit-notes/${e}/refunds`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function fU(t,e){return t.get(`/api/v1/customer-credit-notes/${e}/refunds`)}async function pU(t,e){return t.get(`/api/v1/customer-credit-notes/${e}/download`)}async function hU(t,e){return po(t,"/api/v1/customer-credit-notes/bulk-upsert","customerCreditNotes",ip(e))}var mU=X(()=>{"use strict";zw();vA();yn();pn()});async function AU(t,e){return t.list("/api/v1/supplier-credit-notes",e)}async function Ha(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}`)}async function BR(t,e){return t.search("/api/v1/supplier-credit-notes/search",e)}async function kR(t,e){return t.post("/api/v1/supplier-credit-notes",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency),saveAsDraft:e.saveAsDraft??!0})}async function gU(t,e,r){let n=r.lineItems?{...r,lineItems:r.lineItems.map(cp)}:r,i=await yc(n,()=>Ha(t,e));return t.put(`/api/v1/supplier-credit-notes/${e}`,i)}async function NR(t,e,r){let n=await yc({...r,resourceId:e,saveAsDraft:!1},()=>Ha(t,e));return t.put(`/api/v1/supplier-credit-notes/${e}`,n)}async function yU(t,e,r){return t.delete(`/api/v1/supplier-credit-notes/${e}`,r)}async function EU(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}/download`)}async function OR(t,e,r){return t.post(`/api/v1/supplier-credit-notes/${e}/refunds`,{...r,currency:_r(r.currency),saveAsDraft:r.saveAsDraft??!0})}async function bU(t,e){return t.get(`/api/v1/supplier-credit-notes/${e}/refunds`)}async function CU(t,e){return po(t,"/api/v1/supplier-credit-notes/bulk-upsert","supplierCreditNotes",ip(e))}var IU=X(()=>{"use strict";zw();vA();yn();pn()});async function FR(t){return t.get("/api/v1/organization/currencies")}async function vU(t,e){return t.post("/api/v1/organization/currencies",{currencies:e})}async function wU(t,e,r){return t.list(`/api/v1/organization/currencies/${e}/rates`,r)}function QPe(t){F9(t.rate,"rate");let e=O9(t.rateDirection);return{...t,rateDirection:e}}async function _U(t,e,r){return t.post(`/api/v1/organization/currencies/${e}/rates`,QPe(r))}async function DU(t,e,r,n){return t.put(`/api/v1/organization/currencies/${e}/rates/${r}`,QPe(n))}async function SU(t,e){return t.post("/api/v1/organization/currencies/rates/bulk-upsert",{rates:e})}var RU=X(()=>{"use strict";pn()});var LPe=b((sK,aK)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof aK=="object"&&typeof sK<"u"?aK.exports=e():t.Papa=e()})(sK,function t(){"use strict";var e=(function(){return typeof self<"u"?self:typeof window<"u"?window:typeof e<"u"?e:{}})();function r(){var D=e.URL||e.webkitURL||null,B=t.toString();return a.BLOB_URL||(a.BLOB_URL=D.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",B,")();"],{type:"text/javascript"})))}var n=!e.document&&!!e.postMessage,i=e.IS_PAPA_WORKER||!1,o={},s=0,a={};if(a.parse=u,a.unparse=d,a.RECORD_SEP="",a.UNIT_SEP="",a.BYTE_ORDER_MARK="\uFEFF",a.BAD_DELIMITERS=["\r",`
443
443
  `,'"',a.BYTE_ORDER_MARK],a.WORKERS_SUPPORTED=!n&&!!e.Worker,a.NODE_STREAM_INPUT=1,a.LocalChunkSize=1024*1024*10,a.RemoteChunkSize=1024*1024*5,a.DefaultDelimiter=",",a.Parser=E,a.ParserHandle=y,a.NetworkStreamer=p,a.FileStreamer=h,a.StringStreamer=m,a.ReadableStreamStreamer=A,typeof PAPA_BROWSER_CONTEXT>"u"&&(a.DuplexStreamStreamer=g),e.jQuery){var c=e.jQuery;c.fn.parse=function(D){var B=D.config||{},Q=[];return this.each(function(J){var W=c(this).prop("tagName").toUpperCase()==="INPUT"&&c(this).attr("type").toLowerCase()==="file"&&e.FileReader;if(!W||!this.files||this.files.length===0)return!0;for(var oe=0;oe<this.files.length;oe++)Q.push({file:this.files[oe],inputElem:this,instanceConfig:c.extend({},B)})}),V(),this;function V(){if(Q.length===0){q(D.complete)&&D.complete();return}var J=Q[0];if(q(D.before)){var W=D.before(J.file,J.inputElem);if(typeof W=="object")if(W.action==="abort"){k("AbortError",J.file,J.inputElem,W.reason);return}else if(W.action==="skip"){U();return}else typeof W.config=="object"&&(J.instanceConfig=c.extend(J.instanceConfig,W.config));else if(W==="skip"){U();return}}var oe=J.instanceConfig.complete;J.instanceConfig.complete=function(me){q(oe)&&oe(me,J.file,J.inputElem),U()},a.parse(J.file,J.instanceConfig)}function k(J,W,oe,me){q(D.error)&&D.error({name:J},W,oe,me)}function U(){Q.splice(0,1),V()}}}i&&(e.onmessage=O);function u(D,B){B=B||{};var Q=B.dynamicTyping||!1;if(q(Q)&&(B.dynamicTypingFunction=Q,Q={}),B.dynamicTyping=Q,B.transform=q(B.transform)?B.transform:!1,B.worker&&a.WORKERS_SUPPORTED){var V=I();V.userStep=B.step,V.userChunk=B.chunk,V.userComplete=B.complete,V.userError=B.error,B.step=q(B.step),B.chunk=q(B.chunk),B.complete=q(B.complete),B.error=q(B.error),delete B.worker,V.postMessage({input:D,config:B,workerId:V.id});return}var k=null;if(D===a.NODE_STREAM_INPUT&&typeof PAPA_BROWSER_CONTEXT>"u")return k=new g(B),k.getStream();return typeof D=="string"?(D=U(D),B.download?k=new p(B):k=new m(B)):D.readable===!0&&q(D.read)&&q(D.on)?k=new A(B):(e.File&&D instanceof File||D instanceof Object)&&(k=new h(B)),k.stream(D);function U(J){return J.charCodeAt(0)===65279?J.slice(1):J}}function d(D,B){var Q=!1,V=!0,k=",",U=`\r
444
444
  `,J='"',W=J+J,oe=!1,me=null,Re=!1;ft();var Ie=new RegExp(C(J),"g");if(typeof D=="string"&&(D=JSON.parse(D)),Array.isArray(D)){if(!D.length||Array.isArray(D[0]))return xe(null,D,oe);if(typeof D[0]=="object")return xe(me||Object.keys(D[0]),D,oe)}else if(typeof D=="object")return typeof D.data=="string"&&(D.data=JSON.parse(D.data)),Array.isArray(D.data)&&(D.fields||(D.fields=D.meta&&D.meta.fields||me),D.fields||(D.fields=Array.isArray(D.data[0])?D.fields:typeof D.data[0]=="object"?Object.keys(D.data[0]):[]),!Array.isArray(D.data[0])&&typeof D.data[0]!="object"&&(D.data=[D.data])),xe(D.fields||[],D.data||[],oe);throw new Error("Unable to serialize unrecognized input");function ft(){if(typeof B=="object"){if(typeof B.delimiter=="string"&&!a.BAD_DELIMITERS.filter(function(le){return B.delimiter.indexOf(le)!==-1}).length&&(k=B.delimiter),(typeof B.quotes=="boolean"||typeof B.quotes=="function"||Array.isArray(B.quotes))&&(Q=B.quotes),(typeof B.skipEmptyLines=="boolean"||typeof B.skipEmptyLines=="string")&&(oe=B.skipEmptyLines),typeof B.newline=="string"&&(U=B.newline),typeof B.quoteChar=="string"&&(J=B.quoteChar),typeof B.header=="boolean"&&(V=B.header),Array.isArray(B.columns)){if(B.columns.length===0)throw new Error("Option columns is empty");me=B.columns}B.escapeChar!==void 0&&(W=B.escapeChar+J),B.escapeFormulae instanceof RegExp?Re=B.escapeFormulae:typeof B.escapeFormulae=="boolean"&&B.escapeFormulae&&(Re=/^[=+\-@\t\r].*$/)}}function xe(le,Ce,Ne){var Ye="";typeof le=="string"&&(le=JSON.parse(le)),typeof Ce=="string"&&(Ce=JSON.parse(Ce));var Qt=Array.isArray(le)&&le.length>0,xt=!Array.isArray(Ce[0]);if(Qt&&V){for(var or=0;or<le.length;or++)or>0&&(Ye+=k),Ye+=Me(le[or],or);Ce.length>0&&(Ye+=U)}for(var Je=0;Je<Ce.length;Je++){var $e=Qt?le.length:Ce[Je].length,yt=!1,Pe=Qt?Object.keys(Ce[Je]).length===0:Ce[Je].length===0;if(Ne&&!Qt&&(yt=Ne==="greedy"?Ce[Je].join("").trim()==="":Ce[Je].length===1&&Ce[Je][0].length===0),Ne==="greedy"&&Qt){for(var Xe=[],tt=0;tt<$e;tt++){var Ke=xt?le[tt]:tt;Xe.push(Ce[Je][Ke])}yt=Xe.join("").trim()===""}if(!yt){for(var ae=0;ae<$e;ae++){ae>0&&!Pe&&(Ye+=k);var K=Qt&&xt?le[ae]:ae;Ye+=Me(Ce[Je][K],ae)}Je<Ce.length-1&&(!Ne||$e>0&&!Pe)&&(Ye+=U)}}return Ye}function Me(le,Ce){if(typeof le>"u"||le===null)return"";if(le.constructor===Date)return JSON.stringify(le).slice(1,25);var Ne=!1;Re&&typeof le=="string"&&Re.test(le)&&(le="'"+le,Ne=!0);var Ye=le.toString().replace(Ie,W);return Ne=Ne||Q===!0||typeof Q=="function"&&Q(le,Ce)||Array.isArray(Q)&&Q[Ce]||fe(Ye,a.BAD_DELIMITERS)||Ye.indexOf(k)>-1||Ye.charAt(0)===" "||Ye.charAt(Ye.length-1)===" ",Ne?J+Ye+J:Ye}function fe(le,Ce){for(var Ne=0;Ne<Ce.length;Ne++)if(le.indexOf(Ce[Ne])>-1)return!0;return!1}}function f(D){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},B.call(this,D),this.parseChunk=function(Q,V){let k=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&k>0){let Re=this._config.newline;if(!Re){let ft=this._config.quoteChar||'"';Re=this._handle.guessLineEndings(Q,ft)}Q=[...Q.split(Re).slice(k)].join(Re)}if(this.isFirstChunk&&q(this._config.beforeFirstChunk)){var U=this._config.beforeFirstChunk(Q);U!==void 0&&(Q=U)}this.isFirstChunk=!1,this._halted=!1;var J=this._partialLine+Q;this._partialLine="";var W=this._handle.parse(J,this._baseIndex,!this._finished);if(this._handle.paused()||this._handle.aborted()){this._halted=!0;return}var oe=W.meta.cursor;this._finished||(this._partialLine=J.substring(oe-this._baseIndex),this._baseIndex=oe),W&&W.data&&(this._rowCount+=W.data.length);var me=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(i)e.postMessage({results:W,workerId:a.WORKER_ID,finished:me});else if(q(this._config.chunk)&&!V){if(this._config.chunk(W,this._handle),this._handle.paused()||this._handle.aborted()){this._halted=!0;return}W=void 0,this._completeResults=void 0}return!this._config.step&&!this._config.chunk&&(this._completeResults.data=this._completeResults.data.concat(W.data),this._completeResults.errors=this._completeResults.errors.concat(W.errors),this._completeResults.meta=W.meta),!this._completed&&me&&q(this._config.complete)&&(!W||!W.meta.aborted)&&(this._config.complete(this._completeResults,this._input),this._completed=!0),!me&&(!W||!W.meta.paused)&&this._nextChunk(),W},this._sendError=function(Q){q(this._config.error)?this._config.error(Q):i&&this._config.error&&e.postMessage({workerId:a.WORKER_ID,error:Q,finished:!1})};function B(Q){var V=N(Q);V.chunkSize=parseInt(V.chunkSize),!Q.step&&!Q.chunk&&(V.chunkSize=null),this._handle=new y(V),this._handle.streamer=this,this._config=V}}function p(D){D=D||{},D.chunkSize||(D.chunkSize=a.RemoteChunkSize),f.call(this,D);var B;n?this._nextChunk=function(){this._readChunk(),this._chunkLoaded()}:this._nextChunk=function(){this._readChunk()},this.stream=function(V){this._input=V,this._nextChunk()},this._readChunk=function(){if(this._finished){this._chunkLoaded();return}if(B=new XMLHttpRequest,this._config.withCredentials&&(B.withCredentials=this._config.withCredentials),n||(B.onload=z(this._chunkLoaded,this),B.onerror=z(this._chunkError,this)),B.open(this._config.downloadRequestBody?"POST":"GET",this._input,!n),this._config.downloadRequestHeaders){var V=this._config.downloadRequestHeaders;for(var k in V)B.setRequestHeader(k,V[k])}if(this._config.chunkSize){var U=this._start+this._config.chunkSize-1;B.setRequestHeader("Range","bytes="+this._start+"-"+U)}try{B.send(this._config.downloadRequestBody)}catch(J){this._chunkError(J.message)}n&&B.status===0&&this._chunkError()},this._chunkLoaded=function(){if(B.readyState===4){if(B.status<200||B.status>=400){this._chunkError();return}this._start+=this._config.chunkSize?this._config.chunkSize:B.responseText.length,this._finished=!this._config.chunkSize||this._start>=Q(B),this.parseChunk(B.responseText)}},this._chunkError=function(V){var k=B.statusText||V;this._sendError(new Error(k))};function Q(V){var k=V.getResponseHeader("Content-Range");return k===null?-1:parseInt(k.substring(k.lastIndexOf("/")+1))}}p.prototype=Object.create(f.prototype),p.prototype.constructor=p;function h(D){D=D||{},D.chunkSize||(D.chunkSize=a.LocalChunkSize),f.call(this,D);var B,Q,V=typeof FileReader<"u";this.stream=function(k){this._input=k,Q=k.slice||k.webkitSlice||k.mozSlice,V?(B=new FileReader,B.onload=z(this._chunkLoaded,this),B.onerror=z(this._chunkError,this)):B=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){!this._finished&&(!this._config.preview||this._rowCount<this._config.preview)&&this._readChunk()},this._readChunk=function(){var k=this._input;if(this._config.chunkSize){var U=Math.min(this._start+this._config.chunkSize,this._input.size);k=Q.call(k,this._start,U)}var J=B.readAsText(k,this._config.encoding);V||this._chunkLoaded({target:{result:J}})},this._chunkLoaded=function(k){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(k.target.result)},this._chunkError=function(){this._sendError(B.error)}}h.prototype=Object.create(f.prototype),h.prototype.constructor=h;function m(D){D=D||{},f.call(this,D);var B;this.stream=function(Q){return B=Q,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var Q=this._config.chunkSize,V;return Q?(V=B.substring(0,Q),B=B.substring(Q)):(V=B,B=""),this._finished=!B,this.parseChunk(V)}}}m.prototype=Object.create(m.prototype),m.prototype.constructor=m;function A(D){D=D||{},f.call(this,D);var B=[],Q=!0,V=!1;this.pause=function(){f.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){f.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(k){this._input=k,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){V&&B.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),B.length?this.parseChunk(B.shift()):Q=!0},this._streamData=z(function(k){try{B.push(typeof k=="string"?k:k.toString(this._config.encoding)),Q&&(Q=!1,this._checkIsFinished(),this.parseChunk(B.shift()))}catch(U){this._streamError(U)}},this),this._streamError=z(function(k){this._streamCleanUp(),this._sendError(k)},this),this._streamEnd=z(function(){this._streamCleanUp(),V=!0,this._streamData("")},this),this._streamCleanUp=z(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}A.prototype=Object.create(f.prototype),A.prototype.constructor=A;function g(D){var B=P("stream").Duplex,Q=N(D),V=!0,k=!1,U=[],J=null;this._onCsvData=function(W){var oe=W.data;!J.push(oe)&&!this._handle.paused()&&this._handle.pause()},this._onCsvComplete=function(){J.push(null)},Q.step=z(this._onCsvData,this),Q.complete=z(this._onCsvComplete,this),f.call(this,Q),this._nextChunk=function(){k&&U.length===1&&(this._finished=!0),U.length?U.shift()():V=!0},this._addToParseQueue=function(W,oe){U.push(z(function(){if(this.parseChunk(typeof W=="string"?W:W.toString(Q.encoding)),q(oe))return oe()},this)),V&&(V=!1,this._nextChunk())},this._onRead=function(){this._handle.paused()&&this._handle.resume()},this._onWrite=function(W,oe,me){this._addToParseQueue(W,me)},this._onWriteComplete=function(){k=!0,this._addToParseQueue("")},this.getStream=function(){return J},J=new B({readableObjectMode:!0,decodeStrings:!1,read:z(this._onRead,this),write:z(this._onWrite,this)}),J.once("finish",z(this._onWriteComplete,this))}typeof PAPA_BROWSER_CONTEXT>"u"&&(g.prototype=Object.create(f.prototype),g.prototype.constructor=g);function y(D){var B=Math.pow(2,53),Q=-B,V=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,k=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,U=this,J=0,W=0,oe,me,Re=!1,Ie=!1,ft,xe=[],Me={data:[],errors:[],meta:{}};if(q(D.step)){var fe=D.step;D.step=function(Pe){if(Me=Pe,Ye())Ne();else{if(Ne(),Me.data.length===0)return;J+=Pe.data.length,D.preview&&J>D.preview?me.abort():(Me.data=Me.data[0],fe(Me,U))}}}this.parse=function(Pe,Xe,tt){var Ke=D.quoteChar||'"';if(D.newline||(D.newline=this.guessLineEndings(Pe,Ke)),ft=!1,D.delimiter)q(D.delimiter)&&(D.delimiter=D.delimiter(Pe),Me.meta.delimiter=D.delimiter);else{var ae=$e(Pe,D.newline,D.skipEmptyLines,D.comments,D.delimitersToGuess);ae.successful?D.delimiter=ae.bestDelimiter:(ft=!0,D.delimiter=a.DefaultDelimiter),Me.meta.delimiter=D.delimiter}var K=N(D);return D.preview&&D.header&&K.preview++,oe=Pe,me=new E(K),Me=me.parse(oe,Xe,tt),Ne(),Re?{meta:{paused:!0}}:Me||{meta:{paused:!1}}},this.paused=function(){return Re},this.pause=function(){Re=!0,me.abort(),oe=q(D.chunk)?"":oe.substring(me.getCharIndex())},this.resume=function(){U.streamer._halted?(Re=!1,U.streamer.parseChunk(oe,!0)):setTimeout(U.resume,3)},this.aborted=function(){return Ie},this.abort=function(){Ie=!0,me.abort(),Me.meta.aborted=!0,q(D.complete)&&D.complete(Me),oe=""},this.guessLineEndings=function(Pe,Xe){Pe=Pe.substring(0,1024*1024);var tt=new RegExp(C(Xe)+"([^]*?)"+C(Xe),"gm");Pe=Pe.replace(tt,"");var Ke=Pe.split("\r"),ae=Pe.split(`
445
445
  `),K=ae.length>1&&ae[0].length<Ke[0].length;if(Ke.length===1||K)return`
@@ -671,7 +671,7 @@ Unsupported type: `+t.type,"ENOTSUP");t._finish()})};el.prototype._stat=function
671
671
  ---
672
672
  `,a),u=c!==-1?c:i.length;return i.slice(s,u).trim()}catch{return null}}function _vr(){let t=dit(import.meta.url),e=uit(t),r=[Im(e,"..","..","..","help-center-mirror"),Im(e,"..","..","..","assets","skills","api","help-center-mirror"),Im(e,"help-center-mirror")];for(let n of r)try{return Lde(Im(n,"index.md"),"utf-8"),n}catch{}return null}var ait,cit,gvr,yvr,Evr,bvr,Cvr,Ivr,vvr,vz,lit,Qde,RB=X(()=>{"use strict";Fde();fC();ait=1.2,cit=.75,gvr=1.5,yvr=new Set(["a","an","the","is","are","was","were","be","been","being","have","has","had","do","does","did","will","would","shall","should","may","might","must","can","could","am","i","me","my","we","our","you","your","he","she","it","they","them","this","that","these","those","what","which","who","whom","how","when","where","why","if","then","than","so","no","not","or","and","but","in","on","at","to","for","of","with","by","from","as","into","about","between","through","after","before","during","above","below","up","down","out","off","over","under","again","further","just","also","very","too","only","own","same","both","each","all","any","few","more","most","other","some","such","here","there"]),Evr=new Map([["recon",["reconciliation","reconcile","reconciled"]],["txn",["transaction","transactions"]],["txns",["transactions","transaction"]],["acct",["account","accounts"]],["accts",["accounts","account"]],["inv",["invoice","invoices"]],["cn",["credit","note"]],["ar",["receivable","receivables"]],["ap",["payable","payables"]],["pmt",["payment","payments"]],["stmt",["statement","statements"]],["bal",["balance","balances"]],["fa",["fixed","assets","asset"]],["gst",["tax","goods","services"]],["vat",["tax","value","added"]],["fx",["foreign","exchange","currency"]],["config",["configuration","configure","settings"]],["depr",["depreciation"]],["amort",["amortization"]],["coa",["chart","accounts"]],["po",["purchase","order"]],["so",["sales","order"]],["org",["organization"]],["subs",["subscription","subscriptions"]],["amt",["amount","amounts"]],["qty",["quantity"]],["desc",["description"]],["ref",["reference"]],["num",["number"]]]);bvr=.7,Cvr=3,Ivr=32,vvr=5;vz=null,lit=null;Qde=null});import{existsSync as Dvr,readFileSync as Svr}from"node:fs";import{dirname as Rvr,join as Pde}from"node:path";import{fileURLToPath as xvr}from"node:url";function xB(t){let e=t??Ovr();if(!e)return null;if(wz&&Ait===e)return wz;try{let r=Svr(e,"utf-8");return wz=JSON.parse(r),Ait=e,wz}catch{return null}}function Ovr(){let t=xvr(import.meta.url),e=Rvr(t),r=[Pde(e,"..","..","..","help-center-mirror","help-center-embeddings.json"),Pde(e,"..","..","..","assets","skills","api","help-center-mirror","help-center-embeddings.json"),Pde(e,"help-center-mirror","help-center-embeddings.json")];for(let n of r)if(Dvr(n))return n;return null}function Eit(t,e){let r=Math.min(t.length,e.length),n=0;for(let i=0;i<r;i++)n+=t[i]*e[i];return n}function bit(){return _z!==null?_z:(_z=process.env.CLIO_HELP_CENTER_OPENAI_API_KEY??"",_z||null)}async function Ude(t){let e=bit();if(!e)return null;try{let r=new AbortController,n=setTimeout(()=>r.abort(),Bvr),i=await fetch("https://api.openai.com/v1/embeddings",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({model:Tvr,input:t}),signal:r.signal});return clearTimeout(n),i.ok?(await i.json()).data?.[0]?.embedding??null:((i.status===401||i.status===403)&&!git&&(git=!0,process.stderr.write(`[help-center] CLIO_HELP_CENTER_OPENAI_API_KEY rejected by OpenAI \u2014 falling back to BM25
673
673
  `)),null)}catch{return null}}async function TB(t,e,r,n={}){let i=n.mode??"hybrid",o=n.limit??5,s=n.section,a=n.minCosine??kvr,c=n.minBm25??Nvr;if(i==="bm25"||!e)return Yy(t,r,{limit:o,section:s}).filter(A=>A.score>=c);if(i==="semantic"){let m=await Ude(r);return m?yit(t,e,m,{limit:o,section:s}).filter(g=>g.score>=a):Yy(t,r,{limit:o,section:s}).filter(y=>y.score>=c)}let[u,d]=await Promise.all([Ude(r),Promise.resolve(Yy(t,r,{limit:o*2,section:s}))]);if(!u)return d.filter(m=>m.score>=c).slice(0,o);let p=yit(t,e,u,{limit:o*2,section:s}).filter(m=>m.score>=a),h=d.filter(m=>m.score>=c);return Cit(p,h,o)}function yit(t,e,r,n){let i=new Map(t.sections.map(c=>[c.slug,c])),o=new Map(t.articles.map(c=>[c.id,c])),s=[];for(let c of e.embeddings){let u=o.get(c.articleId);if(!u||n.section&&u.section!==n.section)continue;let d=Eit(r,c.vector);s.push({articleId:c.articleId,score:d})}s.sort((c,u)=>u.score-c.score);let a=[];for(let{articleId:c,score:u}of s.slice(0,n.limit)){let d=o.get(c);if(!d)continue;let f=i.get(d.section);f&&a.push({article:d,score:u,scoreKind:"cosine",section:f,matchedTerms:[]})}return a}function Cit(t,e,r){let n=new Map;for(let o=0;o<t.length;o++){let s=t[o],a=1/(mit+o+1),c=n.get(s.article.id);c?c.score+=a:n.set(s.article.id,{score:a,result:s})}for(let o=0;o<e.length;o++){let s=e[o],a=1/(mit+o+1),c=n.get(s.article.id);c?(c.score+=a,c.result=s):n.set(s.article.id,{score:a,result:s})}let i=Array.from(n.values());return i.sort((o,s)=>s.score-o.score),i.slice(0,r).map(o=>({...o.result,score:o.score,scoreKind:"rrf"}))}function $de(t){return t!==null&&!!bit()}var Tvr,Bvr,mit,kvr,Nvr,wz,Ait,_z,git,Dz=X(()=>{"use strict";RB();Tvr="text-embedding-3-small",Bvr=2e3,mit=60,kvr=.3,Nvr=1.5,wz=null,Ait=null,_z=null,git=!1});async function Iit(t,e={}){let r=String(t??"").trim();if(!r)return{error:"Query is required.",code:"empty_query",hint:"Pass a natural-language question or keywords."};let n=typeof e.limit=="number"&&!Number.isNaN(e.limit)?e.limit:3,i=Math.max(1,Math.min(10,Math.floor(n))),o=typeof e.section=="string"?e.section:void 0,s=e.mode??"hybrid";try{let a=DB();if(o&&!a.sections.some(d=>d.slug===o))return{error:`Unknown section: "${o}".`,code:"unknown_section",available:a.sections.map(d=>d.slug),hint:"Omit the section parameter to search every section, or pick a slug from the available list."};let c=s==="bm25"?null:xB(),u=await TB(a,c,r,{mode:s,limit:i,section:o});return u.length===0?{results:[],hint:"No matching articles. Try broader keywords or rephrase the question."}:{results:u.map(d=>{let f=(Mde(d.article)??d.article.snippet).slice(0,1500);return{title:d.article.title,section:d.section.name,sectionSlug:d.section.slug,content:f,url:d.article.sourceUrl,score:Math.round(d.score*1e3)/1e3,scoreKind:d.scoreKind,matchedTerms:d.matchedTerms}}),totalArticles:a.articleCount,searchedSections:o?[o]:void 0}}catch(a){return{error:"Help center search failed.",code:"load_failure",detail:a instanceof Error?a.message:String(a),hint:"The help center index could not be loaded."}}}function vit(){let t=process.env.CLIO_HELP_CENTER_URL?.trim();return t&&t.length>0?t:Fvr}async function Sz(t,e={}){let r=String(t??"").trim();if(!r)return{error:"Query is required.",code:"empty_query",hint:"Pass a natural-language question or keywords."};let n=o=>({error:"Help center is temporarily unavailable.",hint:o}),i;try{i=new URL(vit())}catch{return n("Set CLIO_HELP_CENTER_URL to a valid URL, or browse https://help.jaz.ai.")}i.searchParams.set("q",r),typeof e.limit=="number"&&Number.isFinite(e.limit)&&i.searchParams.set("limit",String(e.limit)),typeof e.section=="string"&&e.section&&i.searchParams.set("section",e.section);try{let s=await(await fetch(i,{signal:AbortSignal.timeout(Qvr),headers:{accept:"application/json"}})).text(),a;try{a=JSON.parse(s)}catch{return n("Try again shortly, or browse https://help.jaz.ai.")}return Lvr(a)?a:n("Try again shortly, or browse https://help.jaz.ai.")}catch{return n("Check your connection, or browse https://help.jaz.ai.")}}function Lvr(t){if(typeof t!="object"||t===null)return!1;let e=t;return Array.isArray(e.results)?!0:typeof e.error=="string"}async function qde(t,e={}){return process.env.CLIO_DAEMON==="1"||SB()?Iit(t,e):Sz(t,e)}var Fvr,Qvr,wit=X(()=>{"use strict";RB();Dz();Fvr="https://mcp.jaz.ai/help-center/search",Qvr=4e3});var jde=X(()=>{"use strict";RB();Dz();wit();RB()});var _it,Dit=X(()=>{"use strict";_it={loan:["cash-in"],lease:["journal"],"prepaid-expense":["bill","cash-out"],"deferred-revenue":["invoice","cash-in"],provision:["journal"],"fixed-deposit":["cash-out"],"accrued-expense":["journal"],dividend:["journal"]}});async function Rz(t,e){let{blueprint:r,accountMap:n,finalize:i}=e,o=!i;Mvr(e);let s=await Pvr(t,r.capsuleType),a=r.steps[0]?.date??new Date().toISOString().slice(0,10),c=`${r.capsuleName} (${a})`,d={resourceId:(await _A(t,{capsuleTypeResourceId:s,title:c,description:r.capsuleDescription})).data.resourceId,type:r.capsuleType,title:c},f=xit(e),p=[],h=[];for(let A of r.steps){if(A.step===f){p.push({step:A.step,action:A.action,status:"existing",resourceId:e.existingTxnId,description:A.description});continue}if(A.action==="fixed-asset"||A.action==="note"){p.push({step:A.step,action:A.action,status:"skipped",description:A.description}),h.push(`Step ${A.step} (${A.action}): ${A.description}`);continue}let g=await Uvr(t,A,e,o);p.push(g),g.error&&h.push(`Step ${A.step} failed: ${g.error}`)}let m={total:p.length,created:p.filter(A=>A.status==="created").length,existing:p.filter(A=>A.status==="existing").length,skipped:p.filter(A=>A.status==="skipped").length,errors:p.filter(A=>A.status==="error").length,notes:h};return{recipe:e.calcType,capsule:d,steps:p,summary:m}}function Mvr(t){let{blueprint:e,accountMap:r,bankAccountId:n,contactId:i}=t;if(!e.steps.length)throw new Error("Blueprint has no steps to execute.");let o=[];for(let d of e.steps)for(let f of d.lines)Hde(f.account,r)||o.push(f.account);let s=[...new Set(o)];if(s.length>0)throw new Error(`Unmapped account(s) in --input: ${s.join(", ")}.
674
- Add these to your account mapping JSON.`);let a=xit(t);if(e.steps.some(d=>(d.action==="cash-in"||d.action==="cash-out")&&d.step!==a)&&!n)throw new Error("--bank-account is required for recipes with cash-in/cash-out steps.");if(e.steps.some(d=>(d.action==="bill"||d.action==="invoice")&&d.step!==a)&&!i)throw new Error("--contact is required for recipes with bill/invoice steps.")}async function Pvr(t,e){let n=(await WE(t)).data.find(o=>o.displayName.toLowerCase()===e.toLowerCase());return n?n.resourceId:(await Xw(t,{displayName:e})).data.resourceId}function xit(t){if(!t.existingTxnId)return null;let e=_it[t.calcType];return e?t.blueprint.steps.find(n=>e.includes(n.action))?.step??null:null}async function Uvr(t,e,r,n){let{accountMap:i,referencePrefix:o}=r,s=o?`${o}-${e.step}`:void 0;try{let a;switch(e.action){case"journal":{a=(await yg(t,{reference:s,valueDate:e.date,journalEntries:Yde(e.lines,i),internalNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"bill":{a=(await wA(t,{reference:s,valueDate:e.date,dueDate:e.date,contactResourceId:r.contactId,lineItems:Sit(e.lines,i),invoiceNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"invoice":{a=(await Ag(t,{reference:s,valueDate:e.date,dueDate:e.date,contactResourceId:r.contactId,lineItems:Sit(e.lines,i),invoiceNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"cash-in":{let{contraLines:c}=Rit(e.lines,r.bankAccountId,i);a=(await Jv(t,{reference:s,valueDate:e.date,accountResourceId:r.bankAccountId,lines:Yde(c,i),internalNotes:e.description,saveAsDraft:n})).data?.resourceId;break}case"cash-out":{let{contraLines:c}=Rit(e.lines,r.bankAccountId,i);a=(await Vv(t,{reference:s,valueDate:e.date,accountResourceId:r.bankAccountId,lines:Yde(c,i),internalNotes:e.description,saveAsDraft:n})).data?.resourceId;break}default:return{step:e.step,action:e.action,status:"skipped",description:e.description}}return{step:e.step,action:e.action,status:"created",resourceId:a,description:e.description}}catch(a){return{step:e.step,action:e.action,status:"error",description:e.description,error:a.message}}}function Yde(t,e){return t.map(r=>({accountResourceId:zde(r.account,e),type:r.debit>0?"DEBIT":"CREDIT",amount:r.debit>0?r.debit:r.credit}))}function Sit(t,e){return t.filter(r=>Hde(r.account,e)).map(r=>({name:r.account,quantity:1,unitPrice:r.debit>0?r.debit:r.credit,accountResourceId:zde(r.account,e)}))}function Rit(t,e,r){let n=[],i=null;for(let o of t)zde(o.account,r)===e&&!i?i=o:n.push(o);return i?{bankLine:i,contraLines:n}:{bankLine:t[0],contraLines:t.slice(1)}}function Hde(t,e){if(e[t])return t;let r=t.toLowerCase();for(let n of Object.keys(e))if(n.toLowerCase()===r)return n;return null}function zde(t,e){let r=Hde(t,e);if(!r)throw new Error(`Unmapped account: "${t}"`);return e[r]}var Gde=X(()=>{"use strict";Eg();Fd();gg();az();e_();Dit()});function Zv(t,e,r={}){let n=r.threshold??.4,i=r.limit??5,o=t.toLowerCase().trim(),s=e.find(c=>c.code?.toLowerCase()===o);if(s)return[{item:s,score:1}];let a=e.find(c=>c.name.toLowerCase()===o);return a?[{item:a,score:1}]:eg(t,e,c=>c.name,{threshold:n,limit:i})}function xz(t,e){let r=Zv(t,e,{threshold:.45,limit:1});return r.length>0?r[0].item:null}function Tit(t){return t.filter(e=>e.status==="ACTIVE"&&!e.controlFlag&&e.accountType!=="Bank Accounts"&&e.accountType!=="Cash")}function Bit(t){return t.filter(e=>e.status==="ACTIVE"&&(e.accountType==="Bank Accounts"||e.accountType==="Cash"))}var Jde=X(()=>{"use strict";fC()});function Tz(t,e,r={}){let n=r.threshold??.4,i=r.limit??5;return e.map(s=>{let a=[s.billingName,s.name].filter(Boolean),c=Math.max(...a.map(u=>B7(t,u)));return{item:s,score:c}}).filter(s=>s.score>=n).sort((s,a)=>a.score-s.score).slice(0,i)}var Vde=X(()=>{"use strict";fC()});async function kit(t,e){let n=(await Qp((s,a)=>Qd(t,{offset:s,limit:a}))).data;if(n.length===0)return{mapping:{},failures:e.map(s=>({name:s,candidates:[]}))};let i={},o=[];for(let s of e){let a=xz(s,n);if(a)i[s]=a.resourceId;else{let c=Zv(s,n,{threshold:.3,limit:3});o.push({name:s,candidates:c.map(u=>u.item.name)})}}return{mapping:i,failures:o}}async function Nit(t,e){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)){let d=(await sp(t,e)).data;return{resourceId:d.resourceId,displayName:d.billingName||d.name||"Unknown"}}let n=e.trim(),o=(await gc(t,{filter:{billingName:{contains:n}},limit:50})).data;if(o.length===0&&(o=(await op(t,{offset:0,limit:500})).data),o.length===0)throw new Error("No contacts found. Create one in Jaz first.");let s=n.toLowerCase(),a=o.find(u=>u.billingName?.toLowerCase()===s||u.name?.toLowerCase()===s);if(a)return{resourceId:a.resourceId,displayName:a.billingName||a.name||"Unknown"};let c=Tz(n,o,{threshold:.5,limit:5});if(c.length>=1&&c[0].score>=.7){let u=c[0],d=c.length>1?c[1].score:0;if(c.length===1||u.score-d>=.1){let f=u.item;return{resourceId:f.resourceId,displayName:f.billingName||f.name||"Unknown"}}}if(c.length>1){let u=c.map(d=>`${d.item.billingName||d.item.name} (${(d.score*100).toFixed(0)}%)`).join(", ");throw new Error(`Multiple contacts match "${n}": ${u}. Be more specific.`)}throw new Error(`No contact matching "${n}".`)}async function Oit(t,e){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)){let i=await lC(t,e);return{resourceId:i.data.resourceId,displayName:i.data.name}}let n=await tg(t,e);return{resourceId:n.resourceId,displayName:n.name}}var Fit=X(()=>{"use strict";JE();ap();Np();QM();Jde();Vde();yM()});async function vm(t,e){await t.delete(`/api/v1/cash-entries/${e}`)}async function wm(t,e){return t.search("/api/v1/cashflow-transactions/search",e)}var BB=X(()=>{"use strict";yn()});async function Bz(t,e){return t.post("/api/v1/transfer-trial-balance",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency)})}var Wde=X(()=>{"use strict";pn()});async function kz(t,e){return t.list("/api/v1/organization/bookmarks",e)}async function Nz(t,e){return t.get(`/api/v1/organization/bookmarks/${e}`)}async function kB(t,e){return t.post("/api/v1/organization/bookmarks",{items:e})}async function Oz(t,e,r){return t.put(`/api/v1/organization/bookmarks/${e}`,r)}var Zde=X(()=>{"use strict"});function $vr(t){let{refs:e,...r}=t;return e?{...r,refs:e.map(n=>typeof n=="string"?{raw:n}:n)}:r}async function Xv(t,e){return t.post("/api/v1/jots",{entries:e.map($vr)})}async function Fz(t,e){return t.post("/api/v1/jots/search",e)}async function Qit(t,e,r){return t.post(`/api/v1/jots/${e}/disposition`,r)}var Qz=X(()=>{"use strict"});async function Lit(t,e){return t.post("/api/v1/agents/memories",e)}async function Xde(t,e){return t.post("/api/v1/agents/memories/forget",e)}var Mit=X(()=>{"use strict"});function Lz(){return process.env.ENABLE_MEMORY==="true"}function Kde(){return process.env.ENABLE_MEMORY_CHAT==="true"}function Pit(t){return!Lz()||!t||!t.progressive?"memory_disabled":t.isInboxOwner?null:"not_owner"}var efe=X(()=>{"use strict"});var rfe={};_o(rfe,{default:()=>jvr,log:()=>tfe});var Mz,qvr,Uit,tfe,jvr,nfe=X(()=>{"use strict";Mz=()=>{},qvr=()=>tfe,Uit=(...t)=>{try{process.stderr.write(t.map(String).join(" ")+`
674
+ Add these to your account mapping JSON.`);let a=xit(t);if(e.steps.some(d=>(d.action==="cash-in"||d.action==="cash-out")&&d.step!==a)&&!n)throw new Error("--bank-account is required for recipes with cash-in/cash-out steps.");if(e.steps.some(d=>(d.action==="bill"||d.action==="invoice")&&d.step!==a)&&!i)throw new Error("--contact is required for recipes with bill/invoice steps.")}async function Pvr(t,e){let n=(await WE(t)).data.find(o=>o.displayName.toLowerCase()===e.toLowerCase());return n?n.resourceId:(await Xw(t,{displayName:e})).data.resourceId}function xit(t){if(!t.existingTxnId)return null;let e=_it[t.calcType];return e?t.blueprint.steps.find(n=>e.includes(n.action))?.step??null:null}async function Uvr(t,e,r,n){let{accountMap:i,referencePrefix:o}=r,s=o?`${o}-${e.step}`:void 0;try{let a;switch(e.action){case"journal":{a=(await yg(t,{reference:s,valueDate:e.date,journalEntries:Yde(e.lines,i),internalNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"bill":{a=(await wA(t,{reference:s,valueDate:e.date,dueDate:e.date,contactResourceId:r.contactId,lineItems:Sit(e.lines,i),invoiceNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"invoice":{a=(await Ag(t,{reference:s,valueDate:e.date,dueDate:e.date,contactResourceId:r.contactId,lineItems:Sit(e.lines,i),invoiceNotes:e.description,saveAsDraft:n})).data.resourceId;break}case"cash-in":{let{contraLines:c}=Rit(e.lines,r.bankAccountId,i);a=(await Jv(t,{reference:s,valueDate:e.date,accountResourceId:r.bankAccountId,lines:Yde(c,i),internalNotes:e.description,saveAsDraft:n})).data?.resourceId;break}case"cash-out":{let{contraLines:c}=Rit(e.lines,r.bankAccountId,i);a=(await Vv(t,{reference:s,valueDate:e.date,accountResourceId:r.bankAccountId,lines:Yde(c,i),internalNotes:e.description,saveAsDraft:n})).data?.resourceId;break}default:return{step:e.step,action:e.action,status:"skipped",description:e.description}}return{step:e.step,action:e.action,status:"created",resourceId:a,description:e.description}}catch(a){return{step:e.step,action:e.action,status:"error",description:e.description,error:a.message}}}function Yde(t,e){return t.map(r=>({accountResourceId:zde(r.account,e),type:r.debit>0?"DEBIT":"CREDIT",amount:r.debit>0?r.debit:r.credit}))}function Sit(t,e){return t.filter(r=>Hde(r.account,e)).map(r=>({name:r.account,quantity:1,unitPrice:r.debit>0?r.debit:r.credit,accountResourceId:zde(r.account,e)}))}function Rit(t,e,r){let n=[],i=null;for(let o of t)zde(o.account,r)===e&&!i?i=o:n.push(o);return i?{bankLine:i,contraLines:n}:{bankLine:t[0],contraLines:t.slice(1)}}function Hde(t,e){if(e[t])return t;let r=t.toLowerCase();for(let n of Object.keys(e))if(n.toLowerCase()===r)return n;return null}function zde(t,e){let r=Hde(t,e);if(!r)throw new Error(`Unmapped account: "${t}"`);return e[r]}var Gde=X(()=>{"use strict";Eg();Fd();gg();az();e_();Dit()});function Zv(t,e,r={}){let n=r.threshold??.4,i=r.limit??5,o=t.toLowerCase().trim(),s=e.find(c=>c.code?.toLowerCase()===o);if(s)return[{item:s,score:1}];let a=e.find(c=>c.name.toLowerCase()===o);return a?[{item:a,score:1}]:eg(t,e,c=>c.name,{threshold:n,limit:i})}function xz(t,e){let r=Zv(t,e,{threshold:.45,limit:1});return r.length>0?r[0].item:null}function Tit(t){return t.filter(e=>e.status==="ACTIVE"&&!e.controlFlag&&e.accountType!=="Bank Accounts"&&e.accountType!=="Cash")}function Bit(t){return t.filter(e=>e.status==="ACTIVE"&&(e.accountType==="Bank Accounts"||e.accountType==="Cash"))}var Jde=X(()=>{"use strict";fC()});function Tz(t,e,r={}){let n=r.threshold??.4,i=r.limit??5;return e.map(s=>{let a=[s.billingName,s.name].filter(Boolean),c=Math.max(...a.map(u=>B7(t,u)));return{item:s,score:c}}).filter(s=>s.score>=n).sort((s,a)=>a.score-s.score).slice(0,i)}var Vde=X(()=>{"use strict";fC()});async function kit(t,e){let n=(await Qp((s,a)=>Qd(t,{offset:s,limit:a}))).data;if(n.length===0)return{mapping:{},failures:e.map(s=>({name:s,candidates:[]}))};let i={},o=[];for(let s of e){let a=xz(s,n);if(a)i[s]=a.resourceId;else{let c=Zv(s,n,{threshold:.3,limit:3});o.push({name:s,candidates:c.map(u=>u.item.name)})}}return{mapping:i,failures:o}}async function Nit(t,e){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)){let d=(await sp(t,e)).data;return{resourceId:d.resourceId,displayName:d.billingName||d.name||"Unknown"}}let n=e.trim(),o=(await gc(t,{filter:{name:{contains:n}},limit:50})).data;if(o.length===0&&(o=(await op(t,{offset:0,limit:500})).data),o.length===0)throw new Error("No contacts found. Create one in Jaz first.");let s=n.toLowerCase(),a=o.find(u=>u.billingName?.toLowerCase()===s||u.name?.toLowerCase()===s);if(a)return{resourceId:a.resourceId,displayName:a.billingName||a.name||"Unknown"};let c=Tz(n,o,{threshold:.5,limit:5});if(c.length>=1&&c[0].score>=.7){let u=c[0],d=c.length>1?c[1].score:0;if(c.length===1||u.score-d>=.1){let f=u.item;return{resourceId:f.resourceId,displayName:f.billingName||f.name||"Unknown"}}}if(c.length>1){let u=c.map(d=>`${d.item.billingName||d.item.name} (${(d.score*100).toFixed(0)}%)`).join(", ");throw new Error(`Multiple contacts match "${n}": ${u}. Be more specific.`)}throw new Error(`No contact matching "${n}".`)}async function Oit(t,e){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)){let i=await lC(t,e);return{resourceId:i.data.resourceId,displayName:i.data.name}}let n=await tg(t,e);return{resourceId:n.resourceId,displayName:n.name}}var Fit=X(()=>{"use strict";JE();ap();Np();QM();Jde();Vde();yM()});async function vm(t,e){await t.delete(`/api/v1/cash-entries/${e}`)}async function wm(t,e){return t.search("/api/v1/cashflow-transactions/search",e)}var BB=X(()=>{"use strict";yn()});async function Bz(t,e){return t.post("/api/v1/transfer-trial-balance",{...e,currency:_r(e.currency),taxCurrency:_r(e.taxCurrency)})}var Wde=X(()=>{"use strict";pn()});async function kz(t,e){return t.list("/api/v1/organization/bookmarks",e)}async function Nz(t,e){return t.get(`/api/v1/organization/bookmarks/${e}`)}async function kB(t,e){return t.post("/api/v1/organization/bookmarks",{items:e})}async function Oz(t,e,r){return t.put(`/api/v1/organization/bookmarks/${e}`,r)}var Zde=X(()=>{"use strict"});function $vr(t){let{refs:e,...r}=t;return e?{...r,refs:e.map(n=>typeof n=="string"?{raw:n}:n)}:r}async function Xv(t,e){return t.post("/api/v1/jots",{entries:e.map($vr)})}async function Fz(t,e){return t.post("/api/v1/jots/search",e)}async function Qit(t,e,r){return t.post(`/api/v1/jots/${e}/disposition`,r)}var Qz=X(()=>{"use strict"});async function Lit(t,e){return t.post("/api/v1/agents/memories",e)}async function Xde(t,e){return t.post("/api/v1/agents/memories/forget",e)}var Mit=X(()=>{"use strict"});function Lz(){return process.env.ENABLE_MEMORY==="true"}function Kde(){return process.env.ENABLE_MEMORY_CHAT==="true"}function Pit(t){return!Lz()||!t||!t.progressive?"memory_disabled":t.isInboxOwner?null:"not_owner"}var efe=X(()=>{"use strict"});var rfe={};_o(rfe,{default:()=>jvr,log:()=>tfe});var Mz,qvr,Uit,tfe,jvr,nfe=X(()=>{"use strict";Mz=()=>{},qvr=()=>tfe,Uit=(...t)=>{try{process.stderr.write(t.map(String).join(" ")+`
675
675
  `)}catch{}},tfe={info:Mz,warn:Mz,error:Uit,debug:Mz,trace:Mz,fatal:Uit,child:qvr,level:"error"},jvr=tfe});import{createHash as Yvr}from"node:crypto";function t0r(t){if(!t||!t.trim())return[null,"directive_required"];let e=t.normalize("NFKC").trim();return e.length>300?[null,"directive_too_long"]:jit.some(r=>e.includes(r))?[null,"directive_invalid"]:qit.test(e)?[null,"directive_invalid"]:Wvr.test(e)?[null,"directive_contains_url"]:Zvr.test(e)?[null,"directive_contains_email"]:[e,null]}function r0r(t){if(t==null)return[null,null];let e=t.normalize("NFKC").trim();return e?e.length>Xvr?[null,"match_condition_too_long"]:jit.some(r=>e.includes(r))?[null,"match_condition_invalid"]:qit.test(e)?[null,"match_condition_invalid"]:[e,null]:[null,"match_condition_invalid"]}function n0r(t){return t==null?[null,null]:Number.isInteger(t)?t<Kvr||t>e0r?[null,"invalid_importance"]:[t,null]:[null,"invalid_importance"]}function i0r(t,e,r,n,i,o,s,a){if(t)return Yvr("sha256").update(`${t}:${e}:${r}:${n}:${i}:${o??""}:${s??""}:${a??""}`).digest("hex").slice(0,64)}function o0r(t){Promise.resolve().then(()=>(nfe(),rfe)).then(({log:e})=>e.info(t,"memory_tool.call")).catch(()=>{})}async function Git(t,e,r){let n=e.action,i=e.category,o=Jvr[e.scope??"this_org"]??"ORG_USER",s=typeof e.key=="string"?e.key.trim():"",a=null,c=d=>(o0r({action:n,category:i,key:s,scope:o,tier:a,ok:d.ok,outcome:d.outcome??d.reason}),d),u=d=>c({ok:!1,reason:d});try{let d=t.memoryTurn,f=Pit(d);if(f)return u(f);if(!d)return u("memory_disabled");if(!s||s.length>Hvr||!Vvr.test(s))return u("invalid_key");let p=null,h=null;if(n==="set"){let[C,E]=t0r(e.directive);if(E)return u(E);p=C;let[I,v]=n0r(e.importance);if(v)return u(v);h=I}let[m,A]=r0r(e.match_condition);if(A)return u(A);if(a=m?2:1,d.writes>=zvr)return u("write_limit");d.writes+=1;let g=d.gtid||"",y;if(n==="set"){let C={gtid:g};d.quote&&(C.quote=d.quote.slice(0,Gvr));let E=i0r(g,n,o,i,s,p,e.confirms_key,e.replaces_key),I={scope:o,tier:a,category:i,key:s,...m?{matchCondition:m}:{},directive:p??"",...e.replaces_key?{replacesKey:e.replaces_key}:{},...e.confirms_key?{confirmsKey:e.confirms_key}:{},pending:e.pending===!0,source:r?.source??"TOOL",provenance:C,...E?{idempotencyKey:E}:{},...h!==null?{importance:h}:{}};y=await ife(()=>Lit(t.client,I)),y.ok&&(d.remembered=!0)}else if(n==="forget"){let C={category:i,key:s,scope:o};y=await ife(()=>Xde(t.client,C))}else{let C={forgetAll:!0};y=await ife(()=>Xde(t.client,C))}return c(y)}catch{return c({ok:!1,reason:"internal_error"})}}async function ife(t){try{let e=await t(),r=e&&typeof e=="object"&&e.data&&typeof e.data=="object"?e.data:e??{};return typeof r.outcome!="string"?{ok:!1,reason:"malformed_response"}:{ok:!0,outcome:r.outcome,resource_id:r.resourceId}}catch(e){return e instanceof Vi?e.status===429?{ok:!1,reason:"rate_limited"}:{ok:!1,reason:`http_${e.status}`}:{ok:!1,reason:"network_error"}}}var qit,jit,Hvr,zvr,Gvr,Yit,Hit,zit,Jvr,Vvr,Wvr,Zvr,Xvr,Kvr,e0r,Jit=X(()=>{"use strict";Mit();Ta();efe();efe();qit=/[\x00-\x1f\x7f]/,jit=["{{","}}","```","<",">"],Hvr=120,zvr=3,Gvr=140,Yit=["posting-policy","draft-policy","doc-handling","workflow","numbering-format","style","vendor-mapping","contact-mapping","sender-handling"],Hit=["set","forget","forget_all"],zit=["this_org","all_orgs"],Jvr={this_org:"ORG_USER",all_orgs:"USER"},Vvr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,Wvr=/https?:\/\//i,Zvr=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/,Xvr=255,Kvr=0,e0r=100});async function Pz(t,e){return t.list("/api/v1/organization-users",e)}async function Uz(t,e){return t.search("/api/v1/organization-users/search",e)}async function Kv(t,e){return t.post("/api/v1/organization-users/invite",e)}async function $z(t,e,r){return t.put(`/api/v1/organization-users/${e}`,r)}async function qz(t,e){await t.delete(`/api/v1/organization-users/${e}`)}var ofe=X(()=>{"use strict"});async function jz(t,e){return t.search("/api/v1/cashflow-transactions/search",{limit:e?.limit??100,offset:e?.offset??0,sort:{sortBy:["valueDate"],order:"DESC"}})}async function NB(t,e){return t.search("/api/v1/cashflow-transactions/search",e)}async function Yz(t,e){return t.get(`/api/v1/payments/${e}`)}async function Hz(t,e,r){return t.put(`/api/v1/payments/${e}`,{...r,currency:_r(r.currency)})}async function zz(t,e){await t.delete(`/api/v1/payments/${e}`)}function Gz(t,e){return(r,n)=>r.post(`/api/v1/${t}/${e}`,{...n,transactions:n.transactions.map(i=>({...i,currency:_r(i.currency)}))})}var Pnn,Unn,$nn,qnn,sfe=X(()=>{"use strict";pn();Pnn=Gz("sales","bulk-payments"),Unn=Gz("sales","batch-payments"),$nn=Gz("purchases","bulk-payments"),qnn=Gz("purchases","batch-payments")});async function Jz(t,e,r={}){let n=s0r.has(e)?`/api/v1/${e}`:`/api/v1/data-exports/${e}`;return t.post(n,r)}var s0r,afe=X(()=>{"use strict";s0r=new Set(["statement-of-account-export"])});import{createHash as a0r}from"node:crypto";import{writeFile as c0r,mkdir as l0r}from"node:fs/promises";import{dirname as u0r,isAbsolute as d0r,join as f0r}from"node:path";async function Vit(t,e){return t.post("/api/v1/reports/sql-query/preview",{query:e})}async function cfe(t,e,r={}){let n={};return r.idempotencyKey&&(n["Idempotency-Key"]=r.idempotencyKey),t.post("/api/v1/reports/sql-query/export",{query:e},{headers:n})}async function lfe(t,e){return t.get(`/api/v1/reports/sql-query/export/${e}`)}function p0r(t){return a0r("sha256").update(t).digest("hex").slice(0,16)}async function Wit(t,e,r={}){let n=Math.max(1,Math.min(r.timeoutSeconds??25,90)),i=p0r(e),o=await cfe(t,e,{idempotencyKey:i}),s=o.data.jobId,a=Date.now()+n*1e3,c=o.data;for(;Date.now()<a&&!(c.status==="COMPLETED"||c.status==="FAILED"||c.status==="EXPIRED"||(await new Promise(p=>setTimeout(p,2e3)),Date.now()>=a));)c=(await lfe(t,s)).data;if(c.status==="PENDING"||c.status==="RUNNING")return{data:{jobId:s,status:"TIMED_OUT",downloadUrl:c.downloadUrl}};if(c.status!=="COMPLETED"||!c.downloadUrl)return{data:{jobId:s,status:c.status,rowCount:c.rowCount,error:c.error,downloadUrl:c.downloadUrl}};if(!r.downloadToFile&&!r.returnBuffer)return{data:{jobId:s,status:"COMPLETED",rowCount:c.rowCount,truncated:c.truncated,downloadUrl:c.downloadUrl}};let u=await fetch(c.downloadUrl);if(!u.ok)return{data:{jobId:s,status:"COMPLETED",rowCount:c.rowCount,truncated:c.truncated,downloadUrl:c.downloadUrl,error:`fetch ${u.status}`}};let d=Buffer.from(await u.arrayBuffer());if(r.downloadToFile){let f=process.env.HOME??".";if(r.outPath&&!d0r(r.outPath))throw new Error(`outPath must be absolute; got "${r.outPath}".`);let p=r.outPath??f0r(f,"Downloads",`pseudo-sql-${s}.csv`);return await l0r(u0r(p),{recursive:!0}),await c0r(p,d),{data:{jobId:s,status:"COMPLETED",rowCount:c.rowCount,truncated:c.truncated,downloadUrl:c.downloadUrl,localPath:p}}}return{data:{jobId:s,status:"COMPLETED",rowCount:c.rowCount,truncated:c.truncated,downloadUrl:c.downloadUrl,buffer:d}}}async function ufe(t){let e=await t.get("/api/v1/reports/sql-query/schema"),r=e.data;if(!r?.version||!Array.isArray(r.tables)||!Array.isArray(r.joins)||!Array.isArray(r.functions)||!r.agentSkillsDoc?.content)throw new Error("pseudo-sql schema: upstream returned malformed response");return e}var Zit=X(()=>{"use strict"});async function Vz(t){return t.get("/api/v1/capsule-recipes")}async function Wz(t,e){return t.get(`/api/v1/capsule-recipes/${encodeURIComponent(e)}`)}async function Zz(t,e){return t.post("/api/v1/capsule-recipes/preview",e)}async function Xz(t,e){return t.post(`/api/v1/capsule-recipes/resume/${encodeURIComponent(e)}`)}async function Kz(t,e,r={}){return t.post(`/api/v1/capsule-recipes/rollback/${encodeURIComponent(e)}`,{dryRun:r.dryRun??!1})}function Aa(t){if(!t||typeof t!="object")throw new Error("capsuleRecipe must be an object with {recipeName, inputs, recipeVersion?, base-trx triplet?}.");let e=t;if(!wD(e.recipeName))throw new Error("capsuleRecipe.recipeName is required (non-empty string). Source of truth: list_capsule_recipes.");if(e.recipeVersion!==void 0&&(typeof e.recipeVersion!="number"||!Number.isInteger(e.recipeVersion)||e.recipeVersion<1))throw new Error("capsuleRecipe.recipeVersion must be a positive integer when supplied.");if(e.inputs===null||e.inputs===void 0||typeof e.inputs!="object"||Array.isArray(e.inputs))throw new Error("capsuleRecipe.inputs is required and must be a non-null object (recipe-specific shape; see descriptor.versions[].inputSchema).");let r=["baseTransactionResourceId","baseTransactionType","organizationResourceId"],n=r.filter(i=>e[i]!==void 0&&e[i]!==null);if(n.length>0&&n.length<r.length)throw new Error(`capsuleRecipe base-transaction triplet is all-or-nothing \u2014 supply all of [baseTransactionResourceId, baseTransactionType, organizationResourceId] or none. Currently supplied: [${n.join(", ")}].`);if(e.templateOverrides!==void 0&&e.templateOverrides!==null){if(!Array.isArray(e.templateOverrides))throw new Error("capsuleRecipe.templateOverrides must be an array of {slotKey, template?} when supplied.");let i=new Set;e.templateOverrides.forEach((o,s)=>{if(!o||typeof o!="object"||Array.isArray(o))throw new Error(`capsuleRecipe.templateOverrides[${s}] must be an object {slotKey, template?}.`);let a=o;if(!wD(a.slotKey))throw new Error(`capsuleRecipe.templateOverrides[${s}].slotKey is required (non-empty string). Valid keys: get_capsule_recipe \u2192 versions[].templateSlots[].slotKey.`);if(a.slotKey.length>128)throw new Error(`capsuleRecipe.templateOverrides[${s}].slotKey exceeds 128 chars.`);if(i.has(a.slotKey))throw new Error(`capsuleRecipe.templateOverrides has a duplicate slotKey "${a.slotKey}" \u2014 one override per slot.`);if(i.add(a.slotKey),a.template!==void 0&&a.template!==null){if(typeof a.template!="string")throw new Error(`capsuleRecipe.templateOverrides[slotKey="${a.slotKey}"].template must be a string, or null to clear a nullable slot.`);if(a.template.length>2e3)throw new Error(`capsuleRecipe.templateOverrides[slotKey="${a.slotKey}"].template exceeds 2000 chars.`)}})}}var dfe=X(()=>{"use strict";CM()});async function ci(t,e,r){let n=await t.get(`/api/v1/${e}/${r}/attachments`),i=n?.attachments??n?.data;return{data:Array.isArray(i)?i.map(s=>({...s,resourceId:s.resourceId??s.attachmentResourceId??""})):[]}}async function t8(t,e){let{businessTransactionType:r,businessTransactionResourceId:n,...i}=e,o=new FormData;return i.file&&o.append("file",i.file,i.fileName??"file"),i.attachmentId&&o.append("attachmentId",i.attachmentId),t.postMultipart(`/api/v1/${r}/${n}/attachments`,o)}async function r8(t,e,r,n){return t.delete(`/api/v1/${e}/${r}/attachments/${n}`)}var e8,_m=X(()=>{"use strict";e8=["sale-quotes","sale-orders","purchase-requests","purchase-orders"]});function tl(t){return`${t}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var ffe=X(()=>{"use strict"});async function n8(t,e){return t.post("/api/v1/claims/conversion/preview",e)}async function i8(t,e){if(e.idempotencyKey&&/^CONV[:-]/.test(e.idempotencyKey))throw new Error('idempotencyKey must not start with "CONV:" or "CONV-" (reserved).');return t.post("/api/v1/claims/conversion/commit",e)}var OB,pfe=X(()=>{"use strict";OB=["POST","POST_AND_RECORD"]});async function o8(t,e){if(!(e.amount>0))throw new Error("amount must be greater than 0.");return t.post("/api/v1/claims/payouts/record",e)}async function s8(t,e){return t.search("/api/v1/employees/payouts/search",e)}var Xit,hfe=X(()=>{"use strict";Xit=["REIMBURSEMENT","ADVANCE"]});function Kit(t){return{source:t.source,sourceType:t.sourceType,...t.cloudProvider?{cloudProvider:t.cloudProvider}:{},summary:t.summary,files:t.folders.flatMap(e=>e.files.map(r=>({filename:r.filename,folder:r.folder,documentType:r.documentType,confidence:r.confidence,sizeBytes:r.sizeBytes,encrypted:!!r.encrypted,merged:!!r.merged,reason:r.reason})))}}var eot=X(()=>{"use strict"});import{randomUUID as h0r}from"node:crypto";import{rmSync as m0r}from"node:fs";function Afe(t){for(let e of t.tempDirs??[])try{m0r(e,{recursive:!0,force:!0})}catch{}}function rot(t){for(let[e,r]of Hy)t-r.createdAt>tot&&(Afe(r.plan),Hy.delete(e))}function g0r(){mfe||(mfe=setInterval(()=>rot(Date.now()),A0r),mfe.unref?.())}function not(t,e){let r=Date.now();rot(r),g0r();let n=`dc_${h0r()}`;return Hy.set(n,{plan:t,createdAt:r,ownerKey:e}),n}function iot(t,e){let r=Hy.get(t);return!r||r.ownerKey!==e?null:Date.now()-r.createdAt>tot?(Afe(r.plan),Hy.delete(t),null):r.plan}function oot(t,e){let r=Hy.get(t);!r||r.ownerKey!==e||(Afe(r.plan),Hy.delete(t))}var tot,A0r,Hy,mfe,sot=X(()=>{"use strict";tot=1800*1e3,A0r=300*1e3,Hy=new Map});function y0r(t){if(!t||typeof t!="object")return;let e=t;return e.validFiles?.[0]?.workflowResourceId??e.workflowResourceId}function E0r(t,e){let r=new Set(e);return{...t,folders:t.folders.map(n=>({...n,files:n.files.filter(i=>cQ(i.documentType)&&r.has(i.documentType))}))}}async function aot(t){let{plan:e,client:r,bankAccountId:n,documentTypes:i}=t,o=i&&i.length>0?E0r(e,i):e;if(!n&&b0r(o))throw new Error("This collection contains bank statements \u2014 provide a bankAccountId, or pass documentTypes without BANK_STATEMENT to extract the rest first.");let s=await EM({plan:o,client:r,bankAccountId:n}),a=s.results.map(u=>({file:u.file,type:u.type,status:u.status,workflowId:u.status==="uploaded"?y0r(u.response):void 0,error:u.error})),c=a.map(u=>u.workflowId).filter(u=>!!u);return{total:s.total,uploaded:s.success,skipped:a.filter(u=>u.status==="skipped").length,failed:s.failed,workflowIds:c,files:a}}function b0r(t){return t.folders.some(e=>e.files.some(r=>r.documentType==="BANK_STATEMENT"))}var cot=X(()=>{"use strict";k7();pp()});async function sd(t,e,r){if(!e)return t;let n=C0r(t);if(!n)return t;try{return await r(n)}catch(i){let o=i instanceof Error?i.message:String(i),s={status:"failed",resourceId:n,message:o};return t&&typeof t=="object"?{...t,_hydration:s}:{result:t,_hydration:s}}}function C0r(t){if(!t||typeof t!="object")return;let e=t,r=e.data?.resourceId;if(typeof r=="string"&&r.length>0)return r;let n=e.resourceId;if(typeof n=="string"&&n.length>0)return n}function Lf(t,e){return!e||!t||typeof t!="object"?t:{_fx:e,...t}}var lot=X(()=>{"use strict"});async function a8(t,e){return t.list("/api/v1/bank-rules",e)}async function FB(t,e){let r=await t.get(`/api/v1/bank-rules/${e}`),n=r;if(n?.data&&Array.isArray(n.data.data)&&n.data.data.length>0)return{data:n.data.data[0]};let i=r;if(i?.data&&typeof i.data=="object"&&i.data!==null&&"resourceId"in i.data)return{data:i.data};throw new Error(`Unexpected response shape from GET /bank-rules/${e}`)}async function c8(t,e){return t.search("/api/v1/bank-rules/search",e)}async function l8(t,e){return t.post("/api/v1/bank-rules",e)}async function u8(t,e,r){return t.put(`/api/v1/bank-rules/${e}`,r)}async function d8(t,e){await t.delete(`/api/v1/bank-rules/${e}`)}var gfe=X(()=>{"use strict"});async function f8(t,e){return t.list("/api/v1/fixed-assets",e)}async function QB(t,e){return t.get(`/api/v1/fixed-assets/${e}`)}async function p8(t,e){return t.search("/api/v1/fixed-assets/search",{...e,sort:e.sort??{sortBy:["purchaseDate"],order:"DESC"}})}async function h8(t,e){return t.post("/api/v1/fixed-assets",e)}async function m8(t,e,r){let i=(await QB(t,e)).data,o={};for(let s of I0r){let a=i[s];if(a==null)continue;let c=v0r.has(s)?yl(a):a;c!==void 0&&(o[s]=c)}for(let[s,a]of Object.entries(r))a!==void 0&&(o[s]=a);return o.resourceId=e,t.put(`/api/v1/fixed-assets/${e}`,o)}async function A8(t,e){await t.delete(`/api/v1/fixed-assets/${e}`)}async function g8(t,e,r){return t.post(`/api/v1/discard-fixed-assets/${e}`,{...r,resourceId:e})}async function LB(t,e){return t.post("/api/v1/mark-as-sold/fixed-assets",e)}async function y8(t,e){return t.post("/api/v1/transfer-fixed-assets",e)}async function E8(t,e){return t.post(`/api/v1/undo-disposal/fixed-assets/${e}`,{})}async function b8(t,e){return po(t,"/api/v1/fixed-assets/bulk-upsert","fixedAssets",e)}var I0r,v0r,C8=X(()=>{"use strict";yn();YE();I0r=["name","reference","typeCode","typeName","category","purchaseAmount","purchaseDate","purchaseAssetAccountResourceId","depreciationStartDate","depreciationMethod","depreciationRateType","effectiveLife","depreciableValueCostLimitAmount","depreciableValueResidualAmount","depreciationExpenseAccountResourceId","accumulatedDepreciationAccountResourceId","bookValueAccumulatedDepreciationAmount","purchaseBusinessTransactionType","purchaseBusinessTransactionResourceId","internalNotes","tags","customFields","classifierConfig","fixedAssetsSetting","capsuleResourceId"],v0r=new Set(["purchaseDate","depreciationStartDate"])});async function I8(t,e){return t.list("/api/v1/scheduled/subscriptions",e)}async function MB(t,e){return t.get(`/api/v1/scheduled/subscriptions/${e}`)}async function v8(t,e){return t.post("/api/v1/scheduled/subscriptions",e)}async function w8(t,e,r){let n={...r};if(n.interval!==void 0&&(n.repeat??=n.interval,delete n.interval),n.data!==void 0&&(n.invoice??=n.data,delete n.data),n.endDate){let i=!n.startDate,o=!n.repeat;if(i||o){let s=await MB(t,e);if(i){let a=yl(s.data.startDate);if(!a)throw new Error("Subscription has no readable startDate \u2014 cannot auto-fill for update");n.startDate=a}if(o){if(!s.data.interval)throw new Error("Subscription missing repeat configuration \u2014 cannot auto-fill for update");n.repeat=s.data.interval}}}return t.put(`/api/v1/scheduled/subscriptions/${e}`,n)}async function _8(t,e){await t.delete(`/api/v1/scheduled/subscriptions/${e}`)}async function D8(t,e,r){return t.put(`/api/v1/scheduled/cancel-subscriptions/${e}`,{resourceId:e,cancelDateType:r?.cancelDateType??"END_OF_CURRENT_PERIOD",proratedAdjustmentLineText:r?.proratedAdjustmentLineText??"Prorated adjustment",...r?.endDate?{endDate:r.endDate}:{}})}async function S8(t,e){return t.search("/api/v1/scheduled-transaction/search",{...e,sort:e.sort??{sortBy:["startDate"],order:"DESC"}})}var yfe=X(()=>{"use strict";YE()});async function R8(t,e){return t.list("/api/v1/contact-groups",e)}async function x8(t,e){return t.get(`/api/v1/contact-groups/${e}`)}async function T8(t,e){return t.search("/api/v1/contact-groups/search",e)}async function B8(t,e){return t.post("/api/v1/contact-groups",e)}async function k8(t,e,r){return t.put(`/api/v1/contact-groups/${e}`,$E(r,k9))}async function N8(t,e){await t.delete(`/api/v1/contact-groups/${e}`)}var Efe=X(()=>{"use strict";yn()});async function O8(t,e){return t.list("/api/v1/inventory-items",e)}async function F8(t,e){return t.post("/api/v1/inventory-items",{blockInsufficientDeductions:!1,...e})}async function Q8(t,e){return t.get(`/api/v1/inventory-item-balance/${e}`)}var bfe=X(()=>{"use strict"});async function L8(t,e){return t.list("/api/v1/custom-fields",e)}async function PB(t,e){return t.get(`/api/v1/custom-fields/${e}`)}async function M8(t,e){return t.search("/api/v1/custom-fields/search",e)}async function P8(t,e){return t.post("/api/v1/custom-fields",e)}function _0r(t){return t!==void 0&&w0r.every(e=>t[e]!==void 0)}function D0r(t){let e=r=>r!=null&&r!==""&&r!=="NULL";return{invoices:e(t.applyToSales),bills:e(t.applyToPurchase),customerCredits:e(t.applyToSaleCreditNote??t.applyToCreditNote),supplierCredits:e(t.applyToPurchaseCreditNote??t.applyToCreditNote),payments:e(t.applyToPayment)}}function S0r(t){return[t.applyToSales,t.applyToPurchase,t.applyToSaleCreditNote,t.applyToPurchaseCreditNote,t.applyToPayment,t.applyToCreditNote].some(e=>e==="PRINT")}async function U8(t,e,r){let n={...r};if(n.name===void 0||n.description===void 0||n.printOnDocuments===void 0||!_0r(n.appliesTo)){let i=await PB(t,e);n.name??=i.data.customFieldName??i.data.name,n.description??=i.data.description,n.printOnDocuments??=i.data.printOnDocuments??S0r(i.data),n.appliesTo={...D0r(i.data),...r.appliesTo}}return t.put(`/api/v1/custom-fields/${e}`,n)}async function $8(t,e){await t.delete(`/api/v1/custom-fields/${e}`)}var w0r,Cfe=X(()=>{"use strict";w0r=["invoices","bills","customerCredits","supplierCredits","payments"]});function uot(t){return{updated:t.updated??[],failed:(t.failed??[]).map(e=>({...e,errorCode:e.errorCode??"UNKNOWN_ERROR"}))}}async function UB(t,e,r){let n=await t.post(`/api/v1/quick-fix/${e}`,r);return uot(n)}async function $B(t,e,r){let n=await t.post(`/api/v1/quick-fix/${e}/line-items`,r);return uot(n)}var R0r,x0r,T0r,e0,Ife=X(()=>{"use strict";R0r=["invoices","bills","customer-credit-notes","supplier-credit-notes"],x0r=["journals","cash-entries"],T0r=["sale-schedules","purchase-schedules","subscription-schedules","journal-schedules"],e0=[...R0r,...x0r,...T0r]});async function q8(t,e){return t.list("/api/v1/nano-classifiers",e)}async function j8(t,e){return{data:(await t.get(`/api/v1/nano-classifiers/${e}`)).data.data[0]}}async function Y8(t,e){return t.search("/api/v1/nano-classifiers/search",e)}async function qB(t,e){return t.post("/api/v1/nano-classifiers",{...e,printable:e.printable??!1})}async function jB(t,e,r){return t.put(`/api/v1/nano-classifiers/${e}`,{...r,resourceId:e})}async function H8(t,e){await t.delete(`/api/v1/nano-classifiers/${e}`)}var vfe=X(()=>{"use strict"});async function z8(t,e){return t.post("/api/v1/export-records",e)}async function G8(t,e){return t.post("/api/v1/export-records/preview",e)}async function J8(t,e){return t.get(`/api/v1/export-records/columns/${e}`)}var wfe=X(()=>{"use strict"});async function YB(t,e={}){return t.search("/api/v1/background-jobs/search",e)}var _fe=X(()=>{"use strict"});function V8(t,e){if(!e.has(t))throw new Error(`unknown entity "${t}" \u2014 expected one of ${[...e].join(", ")}`)}function fot(t,e,r,n=!1){if(!Array.isArray(t))throw new Error(`${r}: resourceIds must be an array, not a ${typeof t}`);if(t.length===0)throw new Error(`${r}: resourceIds must contain at least 1 id`);if(n&&new Set(t).size!==t.length)throw new Error(`${r}: resourceIds contains duplicates; the API rejects the whole batch`);if(t.length>e)throw new Error(`${r}: ${t.length} ids exceeds the ${e}-id ceiling. The API rejects the whole batch with 422 and writes nothing \u2014 split into chunks of ${e} or fewer.`)}async function pot(t,e,r){return V8(e,Dfe),os(r,"resourceId","Pass the document resourceId."),t.post(`/api/v1/${encodeURIComponent(e)}/${encodeURIComponent(r)}/approve`)}async function hot(t,e,r){return V8(e,Dfe),fot(r,B0r,"bulk approve",!0),r.forEach(n=>os(n,"resourceIds[]","Every id must be a document resourceId.")),t.post(`/api/v1/${encodeURIComponent(e)}/bulk-approve`,{resourceIds:r})}async function mot(t,e,r,n){V8(e,dot),os(r,"resourceId","Pass the document resourceId."),got(n);let i=await t.post(`/api/v1/${encodeURIComponent(e)}/${encodeURIComponent(r)}/request-changes`,{message:n});return{data:{records:O0r(i)}}}async function Aot(t,e,r,n){return V8(e,dot),got(n),fot(r,k0r,"bulk request changes"),r.forEach(i=>os(i,"resourceIds[]","Every id must be a document resourceId.")),t.post(N0r(e),{resourceIds:r,message:n})}function N0r(t){return t==="claims"?"/api/v1/claims/bulk/request-changes":`/api/v1/${encodeURIComponent(t)}/bulk-request-changes`}function got(t){if(!t||t.trim().length===0)throw new Error("request changes: message is required and cannot be blank. It is posted as the first comment on the collaboration thread and is the only record of the reason.")}function O0r(t){let e=t?.data??t;if(!e||typeof e!="object")return[];let r=e.records;if(Array.isArray(r))return r;let n=e.claims;return Array.isArray(n)?n.map(i=>({resourceId:i.resourceId,isSuccess:i.status==="SUCCESS"?!0:i.status==="FAILED"?!1:void 0,status:i.status,failureReason:i.errorMessage??null,errorCode:i.errorCode??null,collaborationThreadPath:i.collaborationThreadPath})):[]}var Dfe,dot,B0r,k0r,yot=X(()=>{"use strict";pn();Dfe=new Set(["invoices","bills","customer-credit-notes","supplier-credit-notes"]),dot=new Set([...Dfe,"purchase-orders","purchase-requests","sale-orders","sale-quotes","claims"]);B0r=100,k0r=500});function F0r(t,e,r){let n=Math.random().toString(36).slice(2,10);return`restore:${t}:${Eot(e)}:${Eot(r)}:${n}`}function Eot(t){return t.replace(/[^A-Za-z0-9._:-]/g,"").slice(0,64)}function Sfe(t){if(!bot.has(t))throw new Error(`unknown entity "${t}" \u2014 expected one of ${[...bot].join(", ")}`)}async function Cot(t,e,r){return Sfe(e),os(r,"resourceId","Pass the document resourceId."),t.get(`/api/v1/rollback/${encodeURIComponent(e)}/versions/${encodeURIComponent(r)}`)}async function Iot(t,e,r,n){return Sfe(e),os(r,"resourceId","Pass the document resourceId."),t.get(`/api/v1/rollback/${encodeURIComponent(e)}/versions/${encodeURIComponent(r)}/${encodeURIComponent(n)}`)}async function vot(t,e,r,n,i){if(Sfe(e),os(r,"resourceId","Pass the document resourceId."),n.trim().toUpperCase()==="CREATED")throw new Error('restoreDocumentVersion: "CREATED" is a grouping node in the version history, not a restorable snapshot. Upstream DELETES the document for it and still returns 200. Pick a numeric version id from the history instead, and read it with getDocumentVersion first to confirm it carries document fields.');return t.post(`/api/v1/rollback/${encodeURIComponent(e)}/restore`,{resourceId:r,version:n},{headers:{"Idempotency-Key":i??F0r(e,r,n)}})}async function wot(t,e,r){return t.get(`/api/v1/organization/currencies/${encodeURIComponent(e)}/effective-rate`,r?{date:r}:void 0)}var bot,_ot=X(()=>{"use strict";pn();bot=new Set(["journals","purchases","sales","purchase-credit-notes","sale-credit-notes"])});function t0(t){Ot(t,"items"),t.forEach((e,r)=>{if(!e||typeof e!="object")throw new Error(`items[${r}] must be an object with {btResourceId, btType}.`);let n=e;if(!wD(n.btResourceId))throw new Error(`items[${r}].btResourceId is required (non-empty string).`);if(typeof n.btType!="string"||!Q0r.has(n.btType)){let i=String(n.btType).toUpperCase().startsWith("JOURNAL")?" Journals are not part of this lifecycle: they have no approval state. To promote a DRAFT journal to ACTIVE use `bulk_update_journals` with `saveAsDraft: false` (or `update_journal` for one) \u2014 that is the supported path, not a workaround.":"";throw new Error(`items[${r}].btType must be one of SALE | PURCHASE | SALE_CREDIT_NOTE | PURCHASE_CREDIT_NOTE.${i}`)}})}async function W8(t,e){let r=await t.post("/api/v1/drafts/validate",{items:e});return{data:M0r(r.data)}}function L0r(t){return{btResourceId:t.btResourceId,btType:t.btType,eligible:t.eligible,errors:t.errors,displayData:t.displayData,contactSignals:t.contactInsight??null,breakdown:t.breakdown??null}}function M0r(t){return{eligibleCount:t.eligibleCount,ineligibleCount:t.ineligibleCount,results:t.results.map(L0r),columns:t.columns,errorColumns:t.errorColumns,contactSignalsMeta:t.contactInsightsMeta??null}}async function Z8(t,e){return t.post("/api/v1/drafts/convert-to-active",{items:e})}async function X8(t,e){return t.post("/api/v1/drafts/submit-for-approval",{items:e})}var Q0r,Rfe=X(()=>{"use strict";CM();yn();Q0r=new Set(["SALE","PURCHASE","SALE_CREDIT_NOTE","PURCHASE_CREDIT_NOTE"])});function Sot(t){let e=t??{},r=n=>Array.isArray(n)&&n.length>0;if(!r(e.businessTransactionPayments)&&!r(e.matchedPayments)&&!r(e.matchedBatchPayments))throw new Error("at least one of businessTransactionPayments, matchedPayments, or matchedBatchPayments must be non-empty.")}function xfe(t,e){if(!t||typeof t!="object")throw new Error(`${e} is required.`);let r=t,n=r.lineItems;if(!Array.isArray(n)||n.length===0)throw new Error(`${e}.lineItems array is empty.`);if(n.length>500)throw new Error(`max 500 ${e}.lineItems per call.`);gl([r],["valueDate","dueDate"]);let i=r.recordedPayment;i&&typeof i=="object"&&gl([i],["valueDate"])}function $0r(t,e){let r=typeof e=="number"&&!Number.isNaN(e)?e:void 0,n=typeof t=="number"&&!Number.isNaN(t)?t:void 0;if(r!==void 0)return r>=P0r?"high":r>=Dot?"medium":"low";if(n!==void 0){if(n>=U0r)return"high";if(n>=Dot)return"medium"}return"low"}function Rot(t,e={}){let r=t??{},i=((r.statementLines?r:r.data)??r).statementLines;if(!Array.isArray(i))return[];let o=[];for(let s of i){let a=s??{},c=typeof a.statementResourceId=="string"?a.statementResourceId:void 0;if(!c)continue;let u=Array.isArray(a.recommendations)?a.recommendations:[];if(u.length===0){o.push({bankStatementEntryResourceId:c,confidenceTier:"low",autoCommitEligible:!1,alternativeCount:0});continue}let d=u.slice().sort((D,B)=>{let Q=D.confidenceScore??D.matchScore??-1;return(B.confidenceScore??B.matchScore??-1)-Q}),f=d[0],p=typeof f.recommendationType=="string"?f.recommendationType:void 0,h=typeof f.matchScore=="number"?f.matchScore:void 0,m=typeof f.confidenceScore=="number"?f.confidenceScore:void 0,A=typeof f.isCrossCurrency=="boolean"?f.isCrossCurrency:void 0,g=typeof f.cftBtResourceId=="string"?f.cftBtResourceId:void 0,y=Array.isArray(f.cftBtResourceIds)?f.cftBtResourceIds:[],C=f.isBatch===!0||y.length>1,E=typeof f.cftAmount=="number"?f.cftAmount:void 0,I,v;switch(p){case"MAGIC_MATCH":{C&&y.length>0?(I=HB.magicMatch,v={...e.bankAccountResourceId?{bankAccountResourceId:e.bankAccountResourceId}:{},entries:[{workflowType:"MAGIC_MATCH",bankStatementEntryResourceId:c,matchedBusinessTransactions:y}]}):g&&(I=HB.withPayments,v={bankStatementEntryResourceId:c,businessTransactionPayments:[{cashflowTransactionResourceId:g,...E!==void 0?{transactionAmount:E}:{}}]});break}case"MAGIC_RECONCILE_WITH_CASH_IN_OUT":{let D=typeof f.learnedPredictionResourceId=="string"?f.learnedPredictionResourceId:void 0,B=typeof f.predictedPayload=="string"?f.predictedPayload:void 0,Q=typeof f.predictedPayloadSchemaVersion=="string"?f.predictedPayloadSchemaVersion:void 0;D&&B&&Q&&(I=HB.learnedPrediction,v={bankStatementEntryResourceId:c,learnedPredictionResourceId:D,predictedPayload:B,predictedPayloadSchemaVersion:Q});break}case"MAGIC_RECONCILE_WITH_BANK_RULE":{let D=f.actionShortcut??{},B=typeof D.resourceId=="string"?D.resourceId:void 0;B&&(I=HB.applyBankRule,v={actionShortcutResourceId:B,businessTransactionResourceIds:[c]});break}default:break}let x=I?$0r(h,m):"low",S=typeof E=="number"&&!Number.isNaN(E),N=!(e.autoCommitMaxAmount!==void 0)||S&&Math.abs(E)<=e.autoCommitMaxAmount,z=I!==HB.withPayments||S,q=x==="high"&&!!I&&!!v&&z&&N;o.push({bankStatementEntryResourceId:c,recommendationType:p,matchScore:h,confidenceScore:m,isCrossCurrency:A,recommendedTool:I,execute:v,confidenceTier:x,autoCommitEligible:q,alternativeCount:d.length-1,matchAmount:E,matchedTransactionResourceId:g??y[0],matchedTransactionCount:y.length||(g?1:void 0)})}return o}function j0r(t,e,r){return{bankStatementEntryResourceId:t.bankStatementEntryResourceId,confidenceTier:t.confidenceTier,recommendationType:t.recommendationType,recommendedTool:t.recommendedTool,execute:t.execute,bankLine:e,match:r}}async function Y0r(t,e,r){let n=e.matchedTransactionResourceId,i=e.matchedTransactionCount;if(!n)return e.matchAmount!==void 0?{type:"transaction",amount:e.matchAmount,count:i}:null;let o=(r??0)<0?["bill","invoice"]:["invoice","bill"];for(let s of o)try{let{data:a}=s==="bill"?await No(t,n):await Lo(t,n);return{type:s,reference:a.reference,amount:e.matchAmount??a.totalAmount,documentTotalAmount:a.totalAmount,count:i,resourceId:n}}catch{}return{type:"transaction",amount:e.matchAmount,count:i,resourceId:n}}async function xot(t,e,r){let n=r.filter(o=>o.recommendedTool&&!o.autoCommitEligible).slice(0,q0r);if(n.length===0)return[];let i=new Map;if(e)try{let o=await uC(t,e,{filter:{status:{eq:"UNRECONCILED"}},limit:500});for(let s of o.data??[])i.set(s.resourceId,s)}catch{}return Promise.all(n.map(async o=>{let s=i.get(o.bankStatementEntryResourceId),a=s?{valueDate:s.valueDate,netAmount:s.netAmount,currencyCode:s.currencyCode,currencySymbol:s.currencySymbol,description:s.description,counterparty:s.extContactName}:null;return j0r(o,a,await Y0r(t,o,a?.netAmount))}))}async function K8(t,e){return t.post("/api/v1/reconciliations/quick-reconcile",e)}async function e3(t,e){return t.post("/api/v1/reconciliations/bank-rule",e)}async function t3(t,e){return t.post("/api/v1/reconciliations/direct-cash-entry",e)}async function r3(t,e){return t.post("/api/v1/reconciliations/cash-journal",e)}async function n3(t,e){return t.post("/api/v1/reconciliations/manual-journal",e)}async function i3(t,e){return t.post("/api/v1/reconciliations/cash-transfer",e)}async function o3(t,e){return t.post("/api/v1/reconciliations/invoice-receipt",e)}async function s3(t,e){return t.post("/api/v1/reconciliations/bill-receipt",e)}async function a3(t,e){return t.post("/api/v1/reconciliations/with-payments",e)}async function c3(t,e){return t.post("/api/v1/reconciliations/learned-prediction",e)}async function l3(t,e){return t.post("/api/v1/reconciliations/magic-match",e)}async function u3(t,e){return t.post("/api/v1/reconciliations/reset",e)}var HB,P0r,U0r,Dot,q0r,Tfe=X(()=>{"use strict";Np();Fd();yn();gg();HB={withPayments:"reconcile_with_payments",magicMatch:"reconcile_magic_match",applyBankRule:"apply_bank_rule",learnedPrediction:"reconcile_learned_prediction"},P0r=.9,U0r=.95,Dot=.7;q0r=25});function zs(t,e,r="lineItems"){let n=[];for(let i of e)if(i.perLineItem){let o=t[r]??[];for(let s=0;s<o.length;s++)i.check(o[s])||n.push(`${r}[${s}].${i.field}`)}else i.check(t)||n.push(i.field);return{missingFields:n,missingCount:n.length,ready:n.length===0}}function Co(t,e,r="lineItems"){let n=e.filter(a=>!a.perLineItem),i=e.filter(a=>a.perLineItem),o={valueDate:Bfe(t,"valueDate","Date","--date <YYYY-MM-DD>",n),lineItems:[]};n.some(a=>a.field==="contactResourceId")&&(o.contact=Bfe(t,"contactResourceId","Contact","--contact <name or UUID>",n)),n.some(a=>a.field==="dueDate")&&(o.dueDate=Bfe(t,"dueDate","Due date","--due <YYYY-MM-DD>",n));let s=t[r]??[];return o.lineItems=s.map((a,c)=>{let u=a.accountResourceId||a.organizationAccountResourceId,d=u?{status:"ok",resourceId:u}:{status:"missing",hint:"--account <name or UUID>"};if(r==="journalEntries"){let A=i.find(v=>v.field==="amount"),g=A?A.check(a):!0,y=a.amount??a.debitAmount??a.creditAmount??null,C=a.debitAmount,E=a.creditAmount,I=a.type??(typeof C=="number"&&C>0?"DEBIT":typeof E=="number"&&E>0?"CREDIT":null);return{index:c,name:a.description||I||null,nameStatus:"ok",unitPrice:y,unitPriceStatus:g?"ok":"missing",account:d}}let f=i.find(A=>A.field==="name"),p=i.find(A=>A.field==="unitPrice"),h=f?f.check(a):!0,m=p?p.check(a):!0;return{index:c,name:a.name||null,nameStatus:h?"ok":"missing",unitPrice:a.unitPrice??null,unitPriceStatus:m?"ok":"missing",account:d}}),o}function Bfe(t,e,r,n,i){let o=i.find(s=>s.field===e);if(!o){let s=t[e];return s?{status:"ok",value:s}:{status:"ok"}}if(o.check(t)){let s=t[e];return e==="contactResourceId"?{status:"ok",value:t.contactName||s,resourceId:s}:{status:"ok",value:s}}return{status:"missing",hint:n}}function Ho(t,e,r,n="lineItems"){let{missingFields:i,missingCount:o,ready:s}=zs(t,e,n),a=Co(t,e,n);return{resourceId:t.resourceId,reference:t.reference||null,totalAmount:t.totalAmount??0,attachmentCount:r,ready:s,missingCount:o,missingFields:i,validation:a}}var ga,rl,ao,Xl,Tot=X(()=>{"use strict";ga=[{field:"valueDate",label:"Date",hint:"--date <YYYY-MM-DD>",check:t=>!!t.valueDate},{field:"dueDate",label:"Due date",hint:"--due <YYYY-MM-DD>",check:t=>!!t.dueDate},{field:"lineItems",label:"Line items",hint:"--lines <json>",check:t=>t.lineItems?.length>0},{field:"name",label:"Item name",hint:"via --lines",check:t=>!!t.name,perLineItem:!0},{field:"unitPrice",label:"Unit price",hint:"via --lines",check:t=>t.unitPrice!=null,perLineItem:!0},{field:"accountResourceId",label:"Account",hint:"--account <name or UUID>",check:t=>!!(t.accountResourceId||t.organizationAccountResourceId),perLineItem:!0}],rl=[...ga],ao=ga.filter(t=>t.field!=="dueDate"),Xl=[{field:"valueDate",label:"Date",hint:"--date <YYYY-MM-DD>",check:t=>!!t.valueDate},{field:"journalEntries",label:"Journal entries",hint:"--entries <json>",check:t=>t.journalEntries?.length>0},{field:"accountResourceId",label:"Account",hint:"--account <name or UUID>",check:t=>!!(t.accountResourceId||t.organizationAccountResourceId),perLineItem:!0},{field:"amount",label:"Amount",hint:"via --entries",check:t=>t.amount!=null&&t.amount>0||t.debitAmount!=null&&t.debitAmount>0||t.creditAmount!=null&&t.creditAmount>0,perLineItem:!0}]});function ad(t,e){let r={};if(e.contact&&(r.contactResourceId=e.contact),e.date&&(r.valueDate=e.date),e.due&&(r.dueDate=e.due),e.ref!==void 0&&(r.reference=e.ref),e.notes!==void 0&&(r.notes=e.notes),e.tag!==void 0&&(r.tag=e.tag),e.tax&&(r.isTaxVatApplicable=!0),e.tax&&e.taxInclusive?r.taxInclusion=!0:e.tax&&(r.taxInclusion=!1),e.lines)r.lineItems=e.lines;else if(e.account||e.taxProfile){let n=t.lineItems??[];r.lineItems=n.map(i=>{let o=Ec(i);return e.account&&!o.accountResourceId&&(o.accountResourceId=e.account),e.taxProfile&&!o.taxProfileResourceId&&(o.taxProfileResourceId=e.taxProfile),o})}return r}function d3(t,e){let r={};if(e.date&&(r.valueDate=e.date),e.ref!==void 0&&(r.reference=e.ref),e.notes!==void 0&&(r.notes=e.notes),e.entries)r.journalEntries=e.entries;else if(e.account){let n=t.journalEntries??[];r.journalEntries=n.map(i=>{let o=jE(i);return e.account&&!o.accountResourceId&&(o.accountResourceId=e.account),o})}return r}var Bot=X(()=>{"use strict";vA()});var kfe=X(()=>{"use strict";Tot();vA();Bot()});var zB,Kl,kot=X(()=>{"use strict";zB="{{Day}}, {{Date}}, {{Date+X}}, {{DateRange:X}}, {{Month}}, {{Month+X}}, {{MonthRange:X}}, {{Year}}, {{Year+X}}",Kl="Async; returns jobId \u2192 poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails."});function Ofe(t){return H0r.get(t)}function Not(t,e=5){let r=t.trim().toLowerCase();if(!r)return[];let n=r.split(/[\s_-]+/).filter(o=>o.length>=2&&!Nfe.has(o));return n.length===0?[]:Ri.map(o=>{let s=0,a=o.name.toLowerCase(),c=o.description.toLowerCase();(a===r||a===r.replace(/\s+/g,"_"))&&(s+=5),a.includes(r)&&(s+=3),c.includes(r)&&(s+=1);for(let u of n)a.includes(u)&&(s+=2),c.includes(u)&&(s+=1);return{ns:o,score:s}}).filter(o=>o.score>0).sort((o,s)=>s.score-o.score).slice(0,e).map(o=>o.ns)}var Ri,Nfe,H0r,cd=X(()=>{"use strict";Ri=[{name:"capabilities",title:"What Jaz Can Do",description:"The capability map: catalog, inventory, and overview of the whole operation surface. Returns every namespace with its operation count, drills into one namespace's operations, or ranks operations by keyword. Call before concluding an operation does not exist.",groups:["capabilities"]},{name:"invoices",title:"Invoices",description:"Sales invoices (INV/SI). Create, search, get, update, delete, pay, finalize, apply credits, download PDF. Also: receivables, AR, AR aging, billing, overdue invoices, dunning, recurring invoices. To create from an uploaded invoice file/PDF/image, use the document_ai namespace (AI extraction), not manual entry.",groups:["invoices"]},{name:"customer_credit_notes",title:"Customer Credit Notes",description:"Customer credit notes (CN). Create, search, update, delete, finalize, refund, download PDF. Also: sales returns, customer CN.",groups:["customer_credit_notes"]},{name:"bills",title:"Bills",description:"Purchase bills (PO/PI). Create, search, get, update, delete, pay, finalize, apply credits. Also: payables, AP, vendor invoices, supplier bills. To create from an uploaded bill/invoice file/PDF/image, use the document_ai namespace (AI extraction), not manual entry.",groups:["bills"]},{name:"supplier_credit_notes",title:"Supplier Credit Notes",description:"Supplier credit notes. Create, search, update, delete, finalize, refund. Also: purchase returns, debit notes, supplier CN.",groups:["supplier_credit_notes"]},{name:"sale_orders",title:"Sales Quotes & Orders",description:"Sales order documents: Sale Quotes (estimates/quotations) and Sale Orders. Create, get, search, update, and transition (accept a quote, confirm an order, void, delete). A Sale Order links to its quote via saleQuoteResourceId; the quote must be accepted first. Tracks fulfillment via orderState. Pipeline: quote \u2192 order \u2192 invoice (raise the invoice separately).",groups:["sale_orders"]},{name:"purchase_orders",title:"Purchase Requests & Orders",description:"Purchase order documents: Purchase Requests (requisitions) and Purchase Orders (POs). Create, get, search, update, and transition (accept a request, confirm an order, void, delete). A Purchase Order links to its request via purchaseRequestResourceId; the request must be accepted first. Tracks fulfillment via orderState. Pipeline: request \u2192 order \u2192 bill (raise the bill separately).",groups:["purchase_orders"]},{name:"journals",title:"Journal Entries",description:"Journal entries (JE). Create, search, update, delete manual journals. Also: adjusting entries, accruals, reclassifications, corrections, transfer trial balance (TTB).",groups:["journals"]},{name:"cash_entries",title:"Cash In & Out",description:"Cash-in receipts and cash-out disbursements for external cash movements. WHEN TO USE: money received from customers/external \u2192 cash-in. Money paid to suppliers/external \u2192 cash-out. For internal account-to-account transfers, use cash_transfers namespace.",groups:["cash_entries"]},{name:"cash_transfers",title:"Cash Transfers",description:"Cash transfers between your own bank/cash accounts and cashflow transaction search. WHEN TO USE: moving funds between own accounts (main bank \u2192 petty cash, USD \u2192 SGD). For external receipts/payments, use cash_entries namespace.",groups:["cash_transfers"]},{name:"bank_accounts",title:"Bank Accounts & Statements",description:"Bank accounts, bank statement imports (CSV/OFX), bank records search, auto-reconciliation. For unreconciled queries: ALWAYS search bank records with status UNRECONCILED after listing accounts. Also: bank feeds, bank balance.",groups:["bank"]},{name:"bank_rules",title:"Bank Rules",description:"Bank reconciliation rules (action shortcuts). Create, search, update, delete bank rules. Configure auto-matching rules for bank records.",groups:["bank_rules"]},{name:"reconciliations",title:"Bank Reconciliation",description:"Apply a reconciliation decision to a bank statement entry \u2014 write side. Match bank records to EXISTING open bills/invoices/payments (reconcile_with_payments \u2014 the primary path, creates the payment for you), or to journals, cash entries, or transfers, or CREATE new bills/invoices (invoice_receipt/bill_receipt). Distinct from bank_accounts/bank_rules (which configure auto-reconciliation) and view_auto_reconciliation (which queries suggestions). Twelve endpoints: quick_reconcile + apply_bank_rule + magic_match (bulk), undo_reconciliations (bulk reverse), and direct_cash_entry / cash_journal / manual_journal / cash_transfer / invoice_receipt / bill_receipt / with_payments / learned_prediction (per-entry). Match-to-existing is preferred over create-new to avoid duplicates. Most fields prefill from the bank entry when omitted; FX is resolved server-side. To reverse a reconciliation use undo_reconciliations, which unlinks the entry but does NOT delete a record a reconcile call created \u2014 it returns linkedRecords so you can delete that record too.",groups:["reconciliations"]},{name:"financial_reports",title:"Financial Reports",description:"Core financial statements: trial balance (TB), balance sheet (BS/B/S), profit & loss (PnL/P&L/income statement), cash flow, general ledger (GL), cash balance/position, equity movement, VAT/GST ledger. Also: how profitable, what is the balance. XLSX/PDF file exports of any of these statements are produced via download_export (lives in operational_reports namespace \u2014 switch there or call by name).",groups:["financial_reports"]},{name:"operational_reports",title:"Aging, Exports & Anomalies",description:"Aging and operational reports: aged receivables (AR aging), aged payables (AP aging), AR report, bank balance summary, bank reconciliation reports, fixed asset (FA) summary, FA reconciliation. Data exports (CSV/Excel/XLSX). Anomaly detection and audit analysis: anomalous invoices, anomalous bills, cashflow anomalies, GL journal audit, exchange rate audit, receivables customer risk, cash expense health. Also: overdue analysis, how much owed, suspicious transactions, audit trail, ledger highlights.",groups:["operational_reports","exports"]},{name:"pseudo_sql",title:"Ad-hoc Queries (SQL)",description:"Pseudo-SQL ad-hoc read-only queries against the curated reporting schema (custom select, custom report, query data, run sql). Includes live schema introspection (get_pseudo_sql_schema) + sync preview (\u2264100 rows) + async CSV export. Use when search_* / download_export canonical reports don't cover the question.",groups:["pseudo_sql"]},{name:"contacts",title:"Contacts",description:"Contacts (customers/suppliers/vendors), contact groups, customer segmentation. Create, search, get, update, delete contacts. Bulk upsert contacts from CSV / spreadsheet imports \u2014 async, returns jobId, poll background_jobs. List/create contact groups.",groups:["contacts","contact_groups"]},{name:"items_and_inventory",title:"Items & Inventory",description:"Products, services, inventory items. Create, search, get, update, delete items. Check inventory balance. List/search purchase-side catalog items. Also: SKU, catalog, stock.",groups:["items","inventory","purchase_items"]},{name:"catalogs",title:"Catalogs",description:"Catalogs \u2014 named groupings of products/services, optionally scoped to contact groups. Create, search, get, update, delete catalogs.",groups:["catalogs"]},{name:"tags_and_custom_fields",title:"Tags & Custom Fields",description:"Tags for categorizing transactions. Custom fields for adding metadata (text, date, dropdown). Create, search, delete tags and custom fields.",groups:["tags","custom_fields"]},{name:"nano_classifiers",title:"Tracking Categories",description:"Nano classifiers (tracking categories/dimensions). List, search, create, update, delete classifiers and their classes. Used for line-item tagging and dimensional reporting. Also: tracking categories, cost centers, departments, projects.",groups:["nano_classifiers"]},{name:"chart_of_accounts",title:"Chart of Accounts",description:"Chart of accounts (COA/GL accounts). Create, search, update accounts \u2014 including setting or removing an account's period lock date (lock / unlock a period, lock date: block recording or editing transactions on the account dated on or before a date). Bookmarks (favorites/shortcuts). Also: ledger codes, account types.",groups:["accounts","bookmarks"]},{name:"currencies",title:"Currencies & FX Rates",description:"Currencies, exchange rates (FX/forex). List/add org currencies. Set, update, import currency rates. Also: multi-currency, FX rates.",groups:["currencies"]},{name:"tax_profiles",title:"Tax Profiles",description:"Tax profiles (GST/VAT/sales tax), withholding tax codes (WHT/ATC). Search, create, update tax profiles. List WHT codes.",groups:["tax_profiles"]},{name:"claim_settings",title:"Expense Claim Settings",description:"Employee-expense claim configuration (Settings -> Claim Settings): claim types (expense categories) and claim profiles (per-employee policy: approver, limits, visible types, balance account). Full CRUD + search on each.",groups:["claim_types","claim_profiles"]},{name:"posting_rules",title:"Claim Posting Rules",description:"Claim posting rules \u2014 how approved employee-expense claims group into journals at conversion (outer/inner grouping axes, line templates, default reimbursement bank). Full CRUD + search.",groups:["posting_rules"]},{name:"claims",title:"Expense Claims",description:'Employee-expense claims (the Claims area / Employees). Search, get, update DRAFT claims (line items, employee, vendor), and drive the lifecycle: submit, approve, reject, cancel, unpost (reverse conversion), delete. Status flow DRAFT \u2192 SUBMITTED \u2192 APPROVED \u2192 CONVERTED ("Processed"), or REJECTED / CANCELLED. Claims are born via document attachment / conversion (no bare create); the server enforces legal transitions.',groups:["claims"]},{name:"claim_processing",title:"Claim Processing & Payouts",description:"Process employee-expense claims: convert APPROVED claims into journal entries (preview + commit, books-only \u2014 no real-money disburse), record books-only employee payouts (reimbursements / advances) and search them, run bulk claim actions (submit / approve / reject / cancel / delete many at once \u2014 asynchronous, returns a background-job handle to poll), plus the claim tracking-tag and custom-field-value pickers.",groups:["claim_processing"]},{name:"employees",title:"Employees",description:"Employees (expense-claim members): create, update, get, delete, and search employees; search the employee-balance directory (reimbursement balances owed); bind a login user to an employee (permanent); and bulk-import employees from a sheet (preprocess preview \u2192 async import). Archive an employee with update active=false rather than deleting.",groups:["employees"]},{name:"capsules_and_recipes",title:"IFRS Recipes & Capsules",description:"Capsules (transaction groupings/capsule types). Financial recipes: amortization, depreciation, deferred revenue, IFRS 16 leases, hire purchase, fixed deposits, FX revaluation, loan schedules, ECL/expected credit loss, IAS 37 provisions, asset disposal. Two recipe execution paths: offline (plan_recipe + execute_recipe \u2014 client-side calculators, no API key) and server-side (list/get/preview/resume/rollback_capsule_recipe \u2014 produce real capsule entities via Jaz API). Plus capsuleRecipe payload on trigger mutations (create_bill, create_journal, create_cash_in, etc.) to create and trigger a recipe in one shot, with optional templateOverrides to customize the generated text (Customize Recipe). Keywords: calculate, provision, schedule, expected credit loss, revaluation, amortize, rollback recipe, customize template overrides slots.",groups:["capsules","recipes","capsule_recipes"]},{name:"scheduled_transactions",title:"Scheduled Transactions",description:"Scheduled/recurring invoices, bills, journals. Create scheduled invoices/bills/journals, search scheduled transactions. Also: recurring, auto-generate.",groups:["schedulers"]},{name:"subscriptions",title:"Subscriptions",description:"Subscriptions (recurring billing/payment plans). Create, update, cancel, search subscriptions. Also: recurring charges, subscription schedules.",groups:["subscriptions"]},{name:"organization",title:"Organization & Users",description:"Organization info (name, currency, country, fiscal year). User management: invite, update, remove, search org users. Bulk invite. List enabled modules (org features/capabilities). List/search saved report templates. Agent context bundle. Next document reference number (numbering series) for invoices, bills, credit notes, quotes, orders and journals.",groups:["organization","org_users","modules","report_templates"]},{name:"document_ai",title:"Document AI (Scan & Extract)",description:'File attachments, spreadsheets, and document AI. Read and parse rows from attached spreadsheets \u2014 CSV, Excel, XLSX. Scan a single invoice / bill / receipt PDF or image to create a draft bill, invoice, or expense claim via AI extraction (create_bt_from_attachment, with the file or a sourceUrl). Auto-sort a whole FOLDER, a .zip, or a Dropbox / Google Drive / OneDrive folder share link of mixed paperwork \u2014 "create docs from this Dropbox folder link", a pile/batch of invoices and bills \u2014 into invoices, bills, credit notes, and bank statements with classify_documents, then create the drafts with extract_documents. Upload and list attachments; track extraction workflows.',groups:["attachments","magic"]},{name:"fixed_assets",title:"Fixed Assets",description:"Fixed assets (PP&E/property, plant, equipment). Search, create, update, discard, sell, transfer, undo disposal. Also: depreciation, asset register.",groups:["fixed_assets"]},{name:"payments_and_search",title:"Payments & Universal Search",description:"Payment records: get, update, delete individual payments. List payments/credits on invoices and bills. Reverse credit applications. Cashflow transaction search. Universal cross-entity search. Also: payment run, batch payment, payment matching, void payment, payment history, credit note applications, transaction summary.",groups:["payments","cashflow","search"]},{name:"versions",title:"Version History",description:"Document version history and restore. List the versions held for a journal, bill, invoice or credit note, read one snapshot, or restore the document to it. Restoring replaces current state.",groups:["versions"]},{name:"approvals",title:"Approvals",description:"Approve documents awaiting approval, or send them back for changes. Covers invoices, bills, both credit notes, sale/purchase orders, quotes, requests and claims. Approving posts the ledger and is one-shot. Find what is waiting with the approvalStatus filter on the relevant search tool.",groups:["approvals"]},{name:"quick_fix",title:"Bulk Edit (Quick Fix)",description:"Quick Fix: bulk-update multiple transactions or line items in one call. Change dates, contacts, tags, accounts, tax profiles, custom fields across many invoices/bills/journals/credit-notes/cash-entries/schedulers at once. Also: batch update, mass edit.",groups:["quick_fix"]},{name:"export_records",title:"Record Exports",description:"Export records to XLSX. List available columns, preview export scope (row count + sample), generate export file with pre-signed download URL. Supports any entity type: invoices, bills, contacts, items, journals, bank records, cashflow, fixed assets, etc. Pass query (structured search syntax) or filter (JSON), never both.",groups:["export_records"]},{name:"background_jobs",title:"Background Jobs",description:"Background job tracking. Poll any async operation by jobId (contacts bulk-upsert, items bulk-upsert, bank import, magic file processing, etc.). Filter by resourceId field to look up a specific job. Poll until status is SUCCESS, FAILED, or PARTIAL_SUCCESS.",groups:["background_jobs"]},{name:"drafts",title:"Drafts",description:"Draft business transactions \u2014 both local payload validation (invoices, bills, journals, credit notes) AND BULK-FRIENDLY server-side lifecycle: validate_drafts (sync eligibility check), convert_drafts_to_active (async promote to ACTIVE), submit_drafts_for_approval (async route to approval). The lifecycle tools are GENERIC and BULK \u2014 one call accepts up to 500 items mixing any combination of {btResourceId, btType: SALE|PURCHASE|SALE_CREDIT_NOTE|PURCHASE_CREDIT_NOTE}. No need for per-entity tools when promoting/submitting drafts at scale. NOT idempotent on already-promoted drafts.",groups:["drafts"]},{name:"help_center",title:"Help Center Search",description:"Search the Jaz help center for how-to articles, feature guides, accounting concepts, and troubleshooting. Returns top matches with title, section, snippet, and source URL. Works without an API key.",groups:["help_center"]},{name:"jots",title:"Judgment Journal",description:"The judgment journal. jot records a judgment call (chose among real alternatives and wrote, or deliberately held a write); recall looks up prior judgments and precedents by entity, kind, or freetext. Tier: CRITICAL only for money-out, delete, finalize, or a recovery that re-drove a write; a withheld write is HIGH. Also: decision log, rationale, why.",groups:["jots"]},{name:"navigation",title:"Dashboard Links",description:"Dashboard navigation deep links. Build a URL to any dashboard screen or record for the user \u2014 including the view link for a record just created or updated (a reply reporting on a record carries its link, and dashboard URLs always come from this tool, never written from memory). Also: open, go to, take me to, link, deep link, share a link, url, navigate, show me the page/screen, where can I see \u2014 for invoices, bills, reports, settings, or a specific transaction.",groups:["navigation"]}],Nfe=new Set(["a","an","and","are","at","be","by","can","do","does","for","how","i","in","is","it","me","my","of","on","or","our","please","that","the","this","to","us","we","what","when","where","which","with","you","your"]),H0r=new Map(Ri.flatMap(t=>t.groups.map(e=>[e,t.name])))});function r0(t){let e=new Set,r=[];for(let n of t)for(let i of eu(n))e.has(i.name)||(e.add(i.name),r.push(i));return r}function GB(){return Ri.map(t=>{let e=r0(t.groups),r=e.filter(i=>i.isDestructive??!1).length,n=e.filter(i=>i.readOnly).length;return{namespace:t.name,operations:e.length,read:n,write:e.length-n-r,destructive:r,summary:(t.description.split(".")[0]??"").trim()}})}function z0r(t,e,r){let n=t==="namespace"?`Each entry in your tool list is a namespace router: ${e} entries, ${r} operations. Every tool's description lists its own operations.`:t==="meta"?`Your tool list holds discovery tools, not the catalogue: ${e} entries, ${r} operations reached through them.`:`Every operation is listed directly: ${e} entries for ${r} operations.`;return{shape:t,this_connector_lists:e,operations:r,note:n}}function zy(t,e=!1){let r=Dm(void 0).length,n=Ri.length,i=t==="namespace"?n+(e?1:0):t==="flat"?r+(e?1:0):t==="meta"?3+(e?1:0):void 0;return{operations:r,namespaces:n,...t&&i!==void 0?{packaging:z0r(t,i,r)}:{},map:GB(),next:`Call with { namespace: "invoices" } for one area's operations and their parameters, or { query: "depreciation" } to rank all ${r}.`}}var f3=X(()=>{"use strict";cd();ld()});function p3(t){let e={type:t.type};if(t.description&&(e.description=t.description),t.enum&&(e.enum=t.enum),t.type==="array"&&t.items&&(e.items=p3(t.items)),t.type==="object"&&t.properties){let r={};for(let[n,i]of Object.entries(t.properties))r[n]=p3(i);e.properties=r,t.required?.length&&(e.required=[...t.required])}return e}function Mf(t,e){let r={};for(let[n,i]of Object.entries(t))r[n]=p3(i);return{type:"object",properties:r,...e.length>0?{required:e}:{}}}function Gy(t){return{name:t.name,description:t.description,input_schema:Mf(t.params,t.required),...t.searchHint?{searchHint:t.searchHint}:{}}}var n0=X(()=>{"use strict"});function JB(t){if(typeof t!="string")return t.isDestructive??!1;let e=t;return e.startsWith("delete_")||e.startsWith("pay_")||e.startsWith("finalize_")||e.includes("refund")||e==="remove_org_user"}function h3(t){return{readOnlyHint:t.readOnly,destructiveHint:!t.readOnly&&JB(t),idempotentHint:t.readOnly,openWorldHint:t.openWorld??!1}}function J0r(t){return t.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function V0r(t){let e=J0r(t);return!e||G0r.has(e)?!0:e.split(" ").filter(n=>n.length>=2&&!Nfe.has(n)).length===0}function m3(t){if(V0r(t)){let{next:i,...o}=zy();return{...o,hint:"Call search_tools with a namespace name or keyword to see operation names in that area, then describe_tools for full schemas before executing."}}let e=Not(t,5);if(e.length===0){let{operations:i,namespaces:o}=zy();return{matches:[],hint:`No operation matches "${t}". Jaz has ${i} operations across ${o} namespaces \u2014 call search_tools with an empty query for the full map before concluding this is unsupported. Namespaces are named after accounting objects (contacts, employees, journals, claims), not task wording.`}}let n=t.toLowerCase().split(/\s+/).filter(Boolean);return{matches:e.map(i=>{let o=i.groups.flatMap(u=>eu(u)),s=o.map(u=>`${u.name} ${(u.aliases??[]).join(" ")} ${u.searchHint??""} ${u.description}`.toLowerCase()),a=new Map(n.map(u=>{let d=s.filter(f=>f.includes(u)).length;return[u,Math.log((o.length+1)/(d+1))]})),c=o.map((u,d)=>{let f=s[d],p=n.reduce((h,m)=>f.includes(m)?h+(a.get(m)??0):h,0);return{tool:u,score:p}}).sort((u,d)=>d.score-u.score);return{namespace:i.name,description:i.description,tools:c.map(u=>({name:u.tool.name,description:u.tool.description.split(`
676
676
  `)[0],...u.tool.searchHint?{searchHint:u.tool.searchHint}:{}}))}}),hint:"Call describe_tools with the tool names you need, then execute_tool to run them."}}function Oot(t){if(!Array.isArray(t)||!t.every(n=>typeof n=="string"))return{error:"Invalid `tools` parameter. Expected string[]."};if(t.length===0)return{error:"Provide at least one tool name. Use search_tools first to discover tool names."};let e=[],r=[];for(let n of t){let i=A3(n);if(!i){r.push(n);continue}e.push({...Gy(i),readOnly:i.readOnly,isDestructive:i.isDestructive??!1,isConcurrencySafe:i.isConcurrencySafe??!1,destructiveHint:!i.readOnly&&JB(i),group:i.group})}return{tools:e,...r.length>0?{notFound:r,hint:`Tools not found: ${r.join(", ")}. Use search_tools to find correct names.`}:{}}}var G0r,W0r,Z0r,X0r,Pf,Sm,i0=X(()=>{"use strict";cd();f3();ld();n0();G0r=new Set(["capabilities","capability","overview","everything","catalog","catalogue","menu","features","feature list","functions","tool list","all tools","all operations","list tools","list all tools","list operations","full list","full catalog","full catalogue","whats available","what is available","whats possible","show everything","show me everything","what else can you do","how many tools","how many operations"]);W0r={name:"search_tools",description:"Search for available Jaz accounting tools by keyword. Returns matching tool namespaces with tool names and descriptions. Call with empty query to list all namespaces. ALWAYS call this first to discover what tools are available.",inputSchema:Mf({query:{type:"string",description:'Search keyword (e.g. "invoice", "bank recon", "depreciation"). Empty string lists all namespaces.'}},[])};Z0r={name:"describe_tools",description:"Get full JSON Schema (parameters, types, required fields) for specific tools. Call this after search_tools to get the exact input format before calling execute_tool.",inputSchema:Mf({tools:{type:"array",items:{type:"string"},description:'Tool names to describe (e.g. ["create_invoice", "search_contacts"])'}},["tools"])},X0r={name:"execute_tool",description:"Execute a Jaz accounting tool. Call describe_tools first to get the required parameters. Pass the tool name and its arguments.",inputSchema:Mf({tool:{type:"string",description:'Tool name (e.g. "create_invoice")'},arguments:{type:"object",description:"Tool arguments (see describe_tools for schema)"},org_id:{type:"string",description:"Organization ID (UUID). Required in multi-org mode (PAT or multiple API keys). Call list_organizations to get available IDs."}},["tool"])},Pf={name:"list_organizations",description:"List organizations available to the current authentication. Returns org names and resource IDs for use as org_id in execute_tool calls.",inputSchema:Mf({},[])},Sm=[W0r,Z0r,X0r]});function rwr(t){if(!(tu in t))return{cleanedInput:t};let{[tu]:e,...r}=t;return{jotText:typeof e=="string"&&e.trim()!==""?e.trim():void 0,cleanedInput:r}}function Lot(t,e){if(t.params[tu])return{cleanedInput:e};let{jotText:r,cleanedInput:n}=rwr(e);return t.readOnly?{cleanedInput:n}:{jotText:r,cleanedInput:n}}function nwr(t){let e=ewr.exec(t);return e?{kind:e[1],call:t.slice(e[0].length)||t}:{call:t}}function owr(t){let e=t.toLowerCase();for(let[r,n]of iwr)if(n.test(e))return r}function swr(t,e){let r=owr(t),n=[],i=new Set,o=(s,a)=>{if(!(n.length>=Fot||a>twr||!s||typeof s!="object")){if(Array.isArray(s)){for(let c of s)o(c,a+1);return}for(let[c,u]of Object.entries(s)){if(n.length>=Fot)return;c==="resourceId"&&typeof u=="string"&&u&&!i.has(u)?(i.add(u),n.push(u)):o(u,a+1)}}};return o(e,0),n.map(s=>({id:s,...r?{relation:r}:{}}))}function g3(t,e,r,n){let{kind:i,call:o}=nwr(r),s=swr(e,n),a={...i?{kind:i}:{},tier:"MEDIUM",call:o,frame:`tool:${e}`,...s.length?{refs:s}:{},writePath:"PIGGYBACK"};Xv(t,[a]).catch(c=>{let u=c instanceof Error?c.message:String(c);Promise.resolve().then(()=>(nfe(),rfe)).then(({log:d})=>d.error({tool:e,error:u},"Piggyback jot write failed")).catch(()=>process.stderr.write(`[jots-piggyback] jot write failed (${e}): ${u}
677
677
  `))})}var tu,Qot,K0r,ewr,Fot,twr,iwr,y3=X(()=>{"use strict";Qz();mC();tu="jot",Qot='Optional but valued: if this action involved a judgment call (which account, which match, an assumption, a risk accepted, a deviation), record it in one line, e.g. "MATCH: treated as distinct from BILL bil_x because references differ". Skip it for mechanical actions. '+RM,K0r=["CLASSIFICATION","MATCH","SCOPE","ASSUMPTION","RISK","METHOD","RECOVERY","DEVIATION","NOTE"],ewr=new RegExp(`^(${K0r.join("|")})\\s*:\\s*`),Fot=20,twr=6;iwr=[["RECONCILE",/(?:^|_)reconcile(?:_|$)/],["PAY",/(?:^|_)(?:pay|payment|payout|cash_out|disburse|disbursement|refund)(?:_|$)/],["FINALIZE",/(?:^|_)(?:finalize|convert_drafts_to_active)(?:_|$)/],["DELETE",/(?:^|_)(?:delete|void|discard)(?:_|$)|^rollback_capsule_recipe$/],["TRIGGER",/(?:^|_)(?:recipe|trigger|execute)(?:_|$)/],["UPDATE",/(?:^|_)update(?:_|$)|^rollback_document_version$/],["CREATE",/(?:^|_)create(?:_|$)/]]});function Mot(t){let e=new Set,r=[];for(let n of t)for(let i of eu(n))e.has(i.name)||(e.add(i.name),r.push(i));return r}function awr(t){return t.split("_").map(e=>e&&e[0].toUpperCase()+e.slice(1)).join(" ")}function o0(t){let e=t.readOnly?"read":JB(t)?"destructive":"write",r=Object.keys(t.params).filter(s=>!t.required.includes(s)),n=t.required.length?` required: ${t.required.join(", ")};`:"",i=r.length?` optional: ${r.slice(0,10).join(", ")}${r.length>10?", \u2026":""}`:"",o=(t.searchHint||t.description.split(`
@@ -1202,7 +1202,7 @@ Examples:
1202
1202
  Default columns:`)),a.forEach(u=>console.log(` ${u.path.padEnd(32)} ${u.header.padEnd(24)} ${H(u.type)}`))),c.length&&(console.log(H(`
1203
1203
  Optional columns:`)),c.forEach(u=>console.log(` ${u.path.padEnd(32)} ${u.header.padEnd(24)} ${H(u.type)}`)))}})(n)),e.command("preview <entityType>").description("Preview an export: shows record count, sample rows, and applied filter description").option("--query <string>",'Structured search query (e.g., "status:unpaid $500+"). Mutually exclusive with --filter.').option("--filter <json>","Raw JSON filter object. Mutually exclusive with --query.").option("--columns <json>",'JSON array of column defs: [{"path":"s.reference","header":"Ref"}]').option("--sort-field <field>","Column path to sort by (e.g., s.total_amount)").option("--sort-dir <ASC|DESC>","Sort direction (default ASC)",r=>{let n=r.toUpperCase();if(n!=="ASC"&&n!=="DESC")throw new Error("--sort-dir must be ASC or DESC");return n},"ASC").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON").action((r,n)=>L(async i=>{let o=vmt(r,n),s=await G8(i,o);if(n.json)console.log(JSON.stringify(s.data,null,2));else{let a=s.data;console.log(Y(`Preview: ${a.totalRecords.toLocaleString()} record(s)`)),console.log(H(`Filter: ${a.filterDescription??"none"}`)),a.resolvedColumns?.length&&(console.log(H(`
1204
1204
  Resolved columns:`)),a.resolvedColumns.forEach(c=>console.log(` ${c.path.padEnd(32)} ${c.header.padEnd(24)} ${H(c.type)}`))),a.warnings?.length&&a.warnings.forEach(c=>console.log(Be(`Warning: ${c}`))),a.previewRows?.length&&(console.log(R(`
1205
- Sample rows (first 10):`)),a.previewRows.forEach((c,u)=>console.log(` [${u+1}]`,JSON.stringify(c))))}})(n)),e.command("download <entityType>").description(`Generate an XLSX export and return the download URL. Valid entity types: ${Kd.join(", ")}`).option("--query <string>",'Structured search query (e.g., "status:unpaid date:this month"). Mutually exclusive with --filter.').option("--filter <json>","Raw JSON filter object. Mutually exclusive with --query.").option("--columns <json>",'JSON array of column defs: [{"path":"s.reference","header":"Ref","type":"STRING"}]. Omit to use defaults.').option("--sort-field <field>","Column path to sort by").option("--sort-dir <ASC|DESC>","Sort direction (default ASC)",r=>{let n=r.toUpperCase();if(n!=="ASC"&&n!=="DESC")throw new Error("--sort-dir must be ASC or DESC");return n},"ASC").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON").action((r,n)=>L(async i=>{let o=vmt(r,n),s=await z8(i,o);if(n.json)console.log(JSON.stringify(s.data,null,2));else{let a=s.data;console.log(Y("Export ready")),console.log(R("File:"),a.fileName),console.log(R("Records:"),a.totalRecords.toLocaleString()),console.log(R("URL:"),a.fileUrl),console.log(H(" (Pre-signed URL \u2014 expires in ~5 minutes. Download immediately.)"))}})(n))}Fe();_fe();mt();fr();Pt();var e1r=[{key:"jobId",header:"Job ID",format:ke},{key:"status",header:"Status"},{key:"jobType",header:"Type"},{key:"processedCount",header:"Processed"},{key:"totalRecords",header:"Total"},{key:"failedCount",header:"Failed"},{key:"startedAt",header:"Started",format:t=>t?new Date(t).toISOString().replace("T"," ").slice(0,19):""}];function _mt(t){let e=t.command("background-jobs").description("Search and poll background jobs (bulk upsert, bank import, magic processing, etc.)");ze({parent:e,fields:FS,defaults:QS,fetcher:YB,columns:e1r,label:"Searching background jobs"}),e.command("get <jobId>").description("Get a background job by ID. Use to poll ANY async operation that returned a jobId (bulk-upsert contacts/items, bank import, magic processing, etc.).").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON").action((r,n)=>L(async i=>{let s=(await YB(i,{filter:{resourceId:{eq:r}},limit:1})).data?.[0];if(s||(console.error(`Error: Job not found: ${r}`),process.exit(1)),n.json)console.log(JSON.stringify(s,null,2));else{let a=s.status==="SUCCESS"?Y:s.status==="FAILED"?Be:s.status==="PARTIAL_SUCCESS"?Be:H;console.log(R("Job ID:"),s.jobId),console.log(R("Status:"),a(s.status)),console.log(R("Type:"),s.jobType),console.log(R("Progress:"),`${s.processedCount}/${s.totalRecords} processed, ${s.failedCount} failed`),s.startedAt&&console.log(R("Started:"),new Date(s.startedAt).toISOString()),s.finishedAt&&console.log(R("Finished:"),new Date(s.finishedAt).toISOString()),Array.isArray(s.errorDetails)&&s.errorDetails.length>0&&console.log(R("Errors:"),JSON.stringify(s.errorDetails,null,2))}})(n))}Fe();var t1r={"invoices list":[{description:"List first 100 invoices",command:"clio invoices list"},{description:"Export all invoices as CSV",command:"clio invoices list --all --format csv"},{description:"Get JSON for piping to other tools",command:"clio invoices list --limit 50 --json"}],"invoices search":[{description:"Search by reference",command:"clio invoices search --reference INV-001"},{description:"Find overdue invoices",command:"clio invoices search --status APPROVED --dueDateTo 2025-12-31"},{description:"Search by contact and export",command:'clio invoices search --contactName "Acme" --format json'}],"invoices create":[{description:"Create a simple invoice",command:'clio invoices create --contact "Acme Corp" --date 2025-06-01 --due 2025-07-01 --line "Consulting,10,150"'},{description:"Create with tax profile",command:'clio invoices create --contact "Acme Corp" --date 2025-06-01 --due 2025-07-01 --line "Service,1,1000,,,tp-sr" --status APPROVED'},{description:"Create from JSON file",command:"clio invoices create --body invoice.json"}],"invoices pay":[{description:"Record a full payment",command:'clio invoices pay <resourceId> --amount 1000 --date 2025-06-15 --account "Cash"'}],"bills list":[{description:"List all bills",command:"clio bills list"},{description:"Export as YAML",command:"clio bills list --format yaml"},{description:"Fetch every page as JSON",command:"clio bills list --all --json"}],"bills search":[{description:"Search by supplier name",command:'clio bills search --contactName "Supplier Co"'},{description:"Find draft bills",command:"clio bills search --status DRAFT"}],"bills create":[{description:"Create a bill",command:'clio bills create --contact "Supplier Co" --date 2025-06-01 --due 2025-07-01 --line "Office supplies,5,20"'},{description:"Create from JSON body",command:"clio bills create --body bill.json"}],"contacts list":[{description:"List contacts",command:"clio contacts list"},{description:"Export all as CSV",command:"clio contacts list --all --format csv"}],"contacts search":[{description:"Find customers",command:"clio contacts search --customer true"},{description:"Search by name",command:'clio contacts search --name "Acme"'}],"contacts create":[{description:"Create a customer",command:'clio contacts create --name "New Client" --customer'},{description:"Create a supplier",command:'clio contacts create --name "Vendor Inc" --supplier'}],"journals create":[{description:"Create a journal entry",command:'clio journals create --date 2025-06-01 --ref "ADJ-001" --debit "Office Expenses,500" --credit "Cash,500"'},{description:"Create with description",command:'clio journals create --date 2025-06-01 --ref "ADJ-002" --debit "Rent,2000" --credit "Bank,2000" --description "Monthly rent"'}],"reports generate":[{description:"Generate trial balance",command:"clio reports generate trial-balance --date 2025-06-30"},{description:"Profit & Loss for a period",command:"clio reports generate profit-and-loss --from 2025-01-01 --to 2025-06-30"},{description:"Balance sheet as JSON",command:"clio reports generate balance-sheet --date 2025-06-30 --json"},{description:"Export AR summary as CSV",command:"clio reports generate ar-summary --date 2025-06-30 --format csv"}],"accounts list":[{description:"List chart of accounts",command:"clio accounts list"},{description:"Export as JSON",command:"clio accounts list --json"}],"items search":[{description:"Search items by name",command:'clio items search --name "Widget"'},{description:"Find sale items",command:"clio items search --saleItem true"}],"bank import":[{description:"Import a bank statement",command:'clio bank import --file statement.csv --account "DBS Current"'}],"capsules create":[{description:"Create a capsule",command:'clio capsules create --name "Q2 Prepaid" --type PREPAID_EXPENSES --class ASSET'}],"customer-credit-notes create":[{description:"Create a credit note",command:'clio customer-credit-notes create --contact "Acme" --date 2025-06-01 --line "Refund,1,500"'}],"magic create":[{description:"Extract data from a document",command:"clio magic create --file invoice.pdf"},{description:"Check extraction status",command:"clio magic status <jobId>"}],schema:[{description:"List all API groups",command:"clio schema"},{description:"Show tools in a group",command:"clio schema invoices"},{description:"Inspect a specific tool's params",command:"clio schema invoices create"},{description:"Get full schema as JSON",command:"clio schema invoices create --json"}]};function r1r(t){let e=[`
1205
+ Sample rows (first 10):`)),a.previewRows.forEach((c,u)=>console.log(` [${u+1}]`,JSON.stringify(c))))}})(n)),e.command("download <entityType>").description(`Generate an XLSX export and return the download URL. Valid entity types: ${Kd.join(", ")}`).option("--query <string>",'Structured search query (e.g., "status:unpaid date:this month"). Mutually exclusive with --filter.').option("--filter <json>","Raw JSON filter object. Mutually exclusive with --query.").option("--columns <json>",'JSON array of column defs: [{"path":"s.reference","header":"Ref","type":"STRING"}]. Omit to use defaults.').option("--sort-field <field>","Column path to sort by").option("--sort-dir <ASC|DESC>","Sort direction (default ASC)",r=>{let n=r.toUpperCase();if(n!=="ASC"&&n!=="DESC")throw new Error("--sort-dir must be ASC or DESC");return n},"ASC").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON").action((r,n)=>L(async i=>{let o=vmt(r,n),s=await z8(i,o);if(n.json)console.log(JSON.stringify(s.data,null,2));else{let a=s.data;console.log(Y("Export ready")),console.log(R("File:"),a.fileName),console.log(R("Records:"),a.totalRecords.toLocaleString()),console.log(R("URL:"),a.fileUrl),console.log(H(" (Pre-signed URL \u2014 expires in ~5 minutes. Download immediately.)"))}})(n))}Fe();_fe();mt();fr();Pt();var e1r=[{key:"jobId",header:"Job ID",format:ke},{key:"status",header:"Status"},{key:"jobType",header:"Type"},{key:"processedCount",header:"Processed"},{key:"totalRecords",header:"Total"},{key:"failedCount",header:"Failed"},{key:"startedAt",header:"Started",format:t=>t?new Date(t).toISOString().replace("T"," ").slice(0,19):""}];function _mt(t){let e=t.command("background-jobs").description("Search and poll background jobs (bulk upsert, bank import, magic processing, etc.)");ze({parent:e,fields:FS,defaults:QS,fetcher:YB,columns:e1r,label:"Searching background jobs"}),e.command("get <jobId>").description("Get a background job by ID. Use to poll ANY async operation that returned a jobId (bulk-upsert contacts/items, bank import, magic processing, etc.).").option("--api-key <key>","API key (overrides stored/env)").option("--json","Output as JSON").action((r,n)=>L(async i=>{let s=(await YB(i,{filter:{resourceId:{eq:r}},limit:1})).data?.[0];if(s||(console.error(`Error: Job not found: ${r}`),process.exit(1)),n.json)console.log(JSON.stringify(s,null,2));else{let a=s.status==="SUCCESS"?Y:s.status==="FAILED"?Be:s.status==="PARTIAL_SUCCESS"?Be:H;console.log(R("Job ID:"),s.jobId),console.log(R("Status:"),a(s.status)),console.log(R("Type:"),s.jobType),console.log(R("Progress:"),`${s.processedCount}/${s.totalRecords} processed, ${s.failedCount} failed`),s.startedAt&&console.log(R("Started:"),new Date(s.startedAt).toISOString()),s.finishedAt&&console.log(R("Finished:"),new Date(s.finishedAt).toISOString()),Array.isArray(s.errorDetails)&&s.errorDetails.length>0&&console.log(R("Errors:"),JSON.stringify(s.errorDetails,null,2))}})(n))}Fe();var t1r={"invoices list":[{description:"List first 100 invoices",command:"clio invoices list"},{description:"Export all invoices as CSV",command:"clio invoices list --all --format csv"},{description:"Get JSON for piping to other tools",command:"clio invoices list --limit 50 --json"}],"invoices search":[{description:"Search by reference",command:"clio invoices search --reference INV-001"},{description:"Find overdue invoices",command:"clio invoices search --status APPROVED --due-date-to 2025-12-31"},{description:"Search by contact and export",command:'clio invoices search --contact-name "Acme" --format json'}],"invoices create":[{description:"Create a simple invoice",command:`clio invoices create --contact "Acme Corp" --date 2025-06-01 --due 2025-07-01 --lines '[{"name":"Consulting","quantity":10,"unitPrice":150}]'`},{description:"Create with tax profile",command:`clio invoices create --contact "Acme Corp" --date 2025-06-01 --due 2025-07-01 --lines '[{"name":"Service","quantity":1,"unitPrice":1000}]' --finalize`},{description:"Create from JSON file",command:"clio invoices create --input invoice.json"}],"invoices pay":[{description:"Record a full payment",command:'clio invoices pay <resourceId> --amount 1000 --date 2025-06-15 --account "Cash"'}],"bills list":[{description:"List all bills",command:"clio bills list"},{description:"Export as YAML",command:"clio bills list --format yaml"},{description:"Fetch every page as JSON",command:"clio bills list --all --json"}],"bills search":[{description:"Search by supplier name",command:'clio bills search --contact-name "Supplier Co"'},{description:"Find draft bills",command:"clio bills search --status DRAFT"}],"bills create":[{description:"Create a bill",command:`clio bills create --contact "Supplier Co" --date 2025-06-01 --due 2025-07-01 --lines '[{"name":"Office supplies","quantity":5,"unitPrice":20}]'`},{description:"Create from JSON body",command:"clio bills create --input bill.json"}],"contacts list":[{description:"List contacts",command:"clio contacts list"},{description:"Export all as CSV",command:"clio contacts list --all --format csv"}],"contacts search":[{description:"Find customers",command:"clio contacts search --customer"},{description:"Search by name",command:'clio contacts search --name "Acme"'}],"contacts create":[{description:"Create a customer",command:'clio contacts create --name "New Client" --customer'},{description:"Create a supplier",command:'clio contacts create --name "Vendor Inc" --supplier'}],"journals create":[{description:"Create a journal entry",command:`clio journals create --date 2025-06-01 --ref "ADJ-001" --entries '[{"accountResourceId":"<expense-id>","amount":500,"type":"DEBIT"},{"accountResourceId":"<cash-id>","amount":500,"type":"CREDIT"}]'`},{description:"Create with description",command:`clio journals create --date 2025-06-01 --ref "ADJ-002" --entries '[{"accountResourceId":"<rent-id>","amount":2000,"type":"DEBIT"},{"accountResourceId":"<bank-id>","amount":2000,"type":"CREDIT"}]' --notes "Monthly rent"`}],"reports generate":[{description:"Generate trial balance",command:"clio reports generate trial-balance --to 2025-06-30"},{description:"Profit & Loss for a period",command:"clio reports generate profit-and-loss --from 2025-01-01 --to 2025-06-30"},{description:"Balance sheet as JSON",command:"clio reports generate balance-sheet --to 2025-06-30 --json"},{description:"Export AR summary as CSV",command:"clio reports generate aged-ar --to 2025-06-30 --json"}],"accounts list":[{description:"List chart of accounts",command:"clio accounts list"},{description:"Export as JSON",command:"clio accounts list --json"}],"items search":[{description:"Search items by name",command:`clio items search --filter '{"name":{"contains":"Widget"}}'`},{description:"Find sale items",command:"clio items search --sale"}],"bank import":[{description:"Import a bank statement",command:'clio bank import --file statement.csv --account "DBS Current"'}],"capsules create":[{description:"Create a capsule",command:'clio capsules create --title "Q2 Prepaid" --type PREPAID_EXPENSES'}],"customer-credit-notes create":[{description:"Create a credit note",command:`clio customer-credit-notes create --contact "Acme" --date 2025-06-01 --lines '[{"name":"Refund","quantity":1,"unitPrice":500}]'`}],"magic create":[{description:"Extract data from a document",command:"clio magic create --file invoice.pdf"},{description:"Check extraction status",command:"clio magic status <jobId>"}],schema:[{description:"List all API groups",command:"clio schema"},{description:"Show tools in a group",command:"clio schema invoices"},{description:"Inspect a specific tool's params",command:"clio schema invoices create"},{description:"Get full schema as JSON",command:"clio schema invoices create --json"}]};function r1r(t){let e=[`
1206
1206
  EXAMPLES`];for(let r of t)r.description&&e.push(` ${H(r.description)}`),e.push(` $ ${r.command}`),e.push("");return e.join(`
1207
1207
  `)}function n1r(t,e){let r=e.split(" "),n=t;for(let i of r)if(n=n?.commands.find(o=>o.name()===i),!n)return;return n}function Dmt(t){for(let[e,r]of Object.entries(t1r)){let n=n1r(t,e);n&&n.addHelpText("after",r1r(r))}}function Smt(t){for(let e of t.commands)e.options.some(n=>n.long==="--api-key")&&e.option("--org <label>","Use a specific registered org for this command"),Smt(e)}function Rmt(t){let e=new pve;return e.name("clio").description(`Clio v${t} \u2014 Command Line Interface Operator for Jaz AI`).version(t).option("--org <label>","Use a specific registered org (also accepted after the subcommand)").enablePositionalOptions(),e.hook("preAction",(r,n)=>{A9(n.opts().org??n.optsWithGlobals().org)}),e.command("init").description("Install Jaz AI skills into the current project").option("-s, --skill <type>",`Skill to install (${kd.join(", ")})`).option("-f, --force","Overwrite existing files").option("-p, --platform <type>","Target platform: claude, codex, copilot, cursor, antigravity, windsurf, goose, gemini, agents, auto (default: auto-detect)").option("--no-rules","Skip the platform agent-rules file (CLAUDE.md / AGENTS.md / .cursor/rules/jaz.mdc / etc.)").option("--check","Drift check only \u2014 report installed agent-rules version vs current package version, no writes").action(async r=>{r.skill&&!kd.includes(r.skill)&&(console.error(`Invalid skill type: ${r.skill}`),console.error(`Valid types: ${kd.join(", ")}`),process.exit(1));let n=["claude","antigravity","codex","copilot","cursor","windsurf","goose","gemini","agents","auto"];r.platform&&!n.includes(r.platform)&&(console.error(`Invalid platform: ${r.platform}`),console.error(`Valid platforms: ${n.join(", ")}`),process.exit(1)),await E0e({skill:r.skill,force:r.force,platform:r.platform,noRules:r.rules===!1,check:r.check===!0})}),e.command("versions").description("List available versions").action(C0e),e.command("update").description("Update Jaz AI skills to latest version").option("-s, --skill <type>",`Skill to update (${kd.join(", ")})`).action(async r=>{r.skill&&!kd.includes(r.skill)&&(console.error(`Invalid skill type: ${r.skill}`),console.error(`Valid types: ${kd.join(", ")}`),process.exit(1)),await w0e({skill:r.skill})}),e.command("version").description("Show CLI version").action(()=>console.log(t)),e.command("health").description("Check CLI status, auth, API connectivity, and installed skills").option("--json","Output as JSON").action(j0e),e.command("completion").description("Output shell completion script (bash/zsh)").action(()=>{let r=e.commands.map(n=>n.name().replace(/'/g,"")).join(" ");console.log(`# Clio shell completion \u2014 add to ~/.bashrc or ~/.zshrc:
1208
1208
  # eval "$(clio completion)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaz-clio",
3
- "version": "5.48.3",
3
+ "version": "5.49.0",
4
4
  "description": "Clio: Command Line Interface Operator for Jaz AI.",
5
5
  "type": "module",
6
6
  "bin": {