@tokmizer/plugin 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "tokmizer",
3
+ "version": "0.5.4",
4
+ "description": "Tokmizer reduces token consumption for AI agents.",
5
+ "author": {
6
+ "name": "Impulse Création",
7
+ "email": "contact@tokmizer.com"
8
+ },
9
+ "homepage": "https://tokmizer.com"
10
+ }
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # Tokmizer
2
+
3
+ Tokmizer reduces token consumption for AI coding tools: Claude Code, OpenAI Codex, Cursor, Aider, Gemini CLI, Cline, Windsurf, and GitHub Copilot. Works on macOS, Linux, and Windows.
4
+
5
+ It compresses noisy command output (logs, diffs, listings, test runs) before it reaches the model. Your agent does more work with the same context window, and you pay for fewer tokens.
6
+
7
+ ## Install
8
+
9
+ In Claude Code:
10
+
11
+ ```
12
+ /plugin marketplace add Impulse-Creation/Tokmizer
13
+ /plugin install tokmizer
14
+ ```
15
+
16
+ Any other tool (universal shell-shim):
17
+
18
+ ```bash
19
+ curl -fsSL https://tokmizer.com/install.sh | bash
20
+ ```
21
+
22
+ Windows (PowerShell):
23
+
24
+ ```powershell
25
+ iwr -useb https://tokmizer.com/install.ps1 | iex
26
+ ```
27
+
28
+ See [scripts/README-INSTALL.md](scripts/README-INSTALL.md) for per-tool notes.
29
+
30
+ ## Free tier
31
+
32
+ Optimization starts automatically. The free tier needs no account. To unlock Smart or Pro, subscribe at [tokmizer.com](https://tokmizer.com), then:
33
+
34
+ ```bash
35
+ tkr link
36
+ ```
37
+
38
+ ## Commands
39
+
40
+ In Claude Code:
41
+
42
+ - `/tkr` shows or changes settings
43
+ - `/tkr-link tokmizer_yourkey` links a paid account
44
+ - `/tkr-unlink` unlinks this machine from your account
45
+ - `/tkr-gain` shows tokens saved
46
+ - `/tkr-status` shows your current plan and usage
47
+ - `/tkr-compression` picks the compression level (light, balanced, max)
48
+ - `/tkr-reducer` makes the assistant's replies shorter (off, light, balanced, max). Smart and Pro
49
+ - `/tkr-telemetry` views or changes anonymous telemetry
50
+ - `/tkr-update` updates the plugin when a new version is out
51
+
52
+ From any terminal:
53
+
54
+ - `tkr status` shows your current plan and status
55
+ - `tkr gain` shows tokens saved
56
+ - `tkr link <key>` links a paid account
57
+ - `tkr unlink` unlinks this machine
58
+ - `tkr compression light|balanced|max` picks how hard output gets compressed (default balanced)
59
+ - `tkr reducer off|light|balanced|max` makes the assistant's replies shorter (default off). Smart and Pro
60
+ - `tkr settings show|set|configure` manages settings and syncs them across your machines
61
+
62
+ ## What's in this repository
63
+
64
+ The user-facing parts of the Tokmizer plugin:
65
+
66
+ - Plugin manifests for Claude Code (`.claude-plugin/`, `hooks/`) and Codex (`codex-plugin/`)
67
+ - The `/tkr` slash commands (`commands/`)
68
+ - Install scripts for macOS, Linux, and Windows (`scripts/`)
69
+ - Selected plugin sources (`src/`): session UI, local stats and usage tracking, host detection, and the telemetry redaction rules that strip secrets before anything leaves your machine
70
+
71
+ The optimization engine and the API client are proprietary. They ship compiled with the [`@tokmizer/plugin`](https://www.npmjs.com/package/@tokmizer/plugin) npm package and are not part of this repository.
72
+
73
+ ## Privacy
74
+
75
+ - Telemetry is opt-in (`telemetryOptIn`, default off).
76
+ - Before any usage event is recorded, [`src/learn/redact.ts`](src/learn/redact.ts) strips passwords, API keys, tokens, and cloud credentials. You can audit those rules here.
77
+ - Local state lives in `~/.tokmizer/`.
78
+
79
+ ## License
80
+
81
+ Proprietary. See [LICENSE](LICENSE) and the EULA at [tokmizer.com/eula](https://tokmizer.com/eula).
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "tokmizer",
3
+ "version": "0.5.4",
4
+ "description": "Tokmizer reduces token consumption for OpenAI Codex.",
5
+ "author": "Tokmizer",
6
+ "homepage": "https://tokmizer.com",
7
+ "hooks": [
8
+ {
9
+ "event": "after_tool_call",
10
+ "matcher": {
11
+ "tool": [
12
+ "shell",
13
+ "bash",
14
+ "exec",
15
+ "run_shell_command"
16
+ ]
17
+ },
18
+ "command": "tkr-codex-hook"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,26 @@
1
+ ---
2
+ description: Show or change the Tokmizer compression level (light, balanced, max).
3
+ argument-hint: light | balanced | max
4
+ ---
5
+
6
+ Manage the user's Tokmizer compression level.
7
+
8
+ If the user already named a level in their request (light, balanced or max), apply it directly. Otherwise, first show the current level:
9
+
10
+ ```bash
11
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" compression
12
+ ```
13
+
14
+ Then ask the user to pick a level using the AskUserQuestion tool (single choice, three options):
15
+
16
+ - `light` — gentle: standard cleanup only
17
+ - `balanced` — default: also collapses repeated output and blank runs
18
+ - `max` — strongest: also drops verbose log noise (errors and results always stay)
19
+
20
+ Mark the current level in the option labels (e.g. "balanced (current)"). After they pick, apply it:
21
+
22
+ ```bash
23
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" compression <level>
24
+ ```
25
+
26
+ Print the output as is. The change syncs to all the user's machines and applies to their next commands. Whatever the level, failed commands keep their full output.
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Show how many tokens and dollars Tokmizer saved you.
3
+ argument-hint: [--day | --week]
4
+ ---
5
+
6
+ Show the user their Tokmizer savings.
7
+
8
+ Run the bundled CLI:
9
+
10
+ ```bash
11
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" gain
12
+ ```
13
+
14
+ Print the output as is. If the user asks for today only or this session, run `session` instead of `gain`.
15
+
16
+ If the output shows zero activity, tell the user the savings build up as they keep working and there is nothing to configure.
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: Link a paid Tokmizer account. Usage - /tkr-link tokmizer_yourkey
3
+ argument-hint: tokmizer_yourkey
4
+ ---
5
+
6
+ The user invoked /tkr-link with: $ARGUMENTS
7
+
8
+ If $ARGUMENTS contains a value starting with `tokmizer_`, run it immediately, nothing else to ask:
9
+
10
+ ```bash
11
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" link <that value>
12
+ ```
13
+
14
+ On success the command prints the active plan. Tell the user it is done.
15
+
16
+ If $ARGUMENTS contains no `tokmizer_...` value, do not run anything and reply exactly:
17
+
18
+ > Put your key in the command: `/tkr-link tokmizer_yourkey`. Your key is at https://tokmizer.com/dashboard/token.
19
+
20
+ Never ask for an email. Never echo the key back or store it anywhere else.
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: Show or change the Tokmizer response reducer (off, light, balanced, max). Smart/Pro.
3
+ argument-hint: off | light | balanced | max
4
+ ---
5
+
6
+ Manage the user's Tokmizer reducer level. The reducer shortens the assistant's replies (style discipline), it does not touch command output compression.
7
+
8
+ If the user already named a level in their request (off, light, balanced or max), apply it directly. Otherwise, first show the current level:
9
+
10
+ ```bash
11
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" reducer
12
+ ```
13
+
14
+ Then ask the user to pick a level using the AskUserQuestion tool (single choice, four options):
15
+
16
+ - `off` — default: responses untouched
17
+ - `light` — trims padding, keeps natural prose
18
+ - `balanced` — dense and direct, answer first
19
+ - `max` — telegraphic, every token earns its place
20
+
21
+ Mark the current level in the option labels (e.g. "off (current)"). After they pick, apply it:
22
+
23
+ ```bash
24
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" reducer <level>
25
+ ```
26
+
27
+ Print the output as is. The level syncs to all the user's machines and takes full effect at the next session. If the command reports the feature is Smart/Pro only, relay that message without improvising a replacement style.
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Show your Tokmizer plan, token state and features.
3
+ ---
4
+
5
+ Show the user their Tokmizer account status.
6
+
7
+ Run the bundled CLI:
8
+
9
+ ```bash
10
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" status
11
+ ```
12
+
13
+ Print the output as is. It includes the plan, the token state and whether `/power` is available right now.
14
+
15
+ If the user is on the free plan and asks how to upgrade, point them to https://tokmizer.com/#pricing and the `/tkr-link` command.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Show or change Tokmizer anonymous telemetry (status, on, off, forget).
3
+ argument-hint: status | on | off | forget
4
+ ---
5
+
6
+ Manage the user's Tokmizer telemetry preference.
7
+
8
+ Pick the subcommand from the user's request. Default to `status` when they only ask to see it.
9
+
10
+ ```bash
11
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" telemetry status
12
+ ```
13
+
14
+ - `telemetry status` shows whether anonymous telemetry is on or off and the local record count.
15
+ - `telemetry on` turns it on.
16
+ - `telemetry off` turns it off.
17
+ - `telemetry forget` erases telemetry data stored on this machine.
18
+
19
+ Print the output as is. If the user asks what is collected, tell them: anonymous command names and token savings only, never command contents, and the online dashboard at https://tokmizer.com needs telemetry on to show savings.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Unlink this machine from your Tokmizer account (back to free tier).
3
+ ---
4
+
5
+ Unlink the local plugin from the user's Tokmizer account.
6
+
7
+ Run the bundled CLI:
8
+
9
+ ```bash
10
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" unlink
11
+ ```
12
+
13
+ Print the output as is. After unlinking, the plugin falls back to the free tier and a fresh anonymous token starts on the next online run. To link another account, the user runs `tkr link` with the key from their dashboard.
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Update the Tokmizer plugin to the latest version.
3
+ ---
4
+
5
+ Update the Tokmizer plugin. Run this exactly:
6
+
7
+ ```bash
8
+ MKT="$HOME/.claude/plugins/marketplaces/tokmizer"
9
+ if [ -d "$MKT/.git" ]; then git -C "$MKT" fetch origin --quiet && git -C "$MKT" reset --hard origin/main --quiet; fi
10
+ claude plugin update tokmizer@tokmizer
11
+ ```
12
+
13
+ The first two lines realign the local marketplace clone with the published
14
+ catalog before updating. This is what makes the update reliable: a clone can
15
+ drift out of sync and then plain updates keep reporting "already latest" even
16
+ when a newer version exists, so we hard-reset it to the published state first.
17
+
18
+ Print the result line.
19
+
20
+ - If it updated, tell the user to run /reload-plugins (or restart Claude Code) to apply.
21
+ - If it says already at the latest version, just say so.
22
+ - If the `claude` binary is unavailable, tell the user to run the same commands in their terminal.
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: Manage Tokmizer plugin settings (show, set, reset).
3
+ argument-hint: [show | set <key> <value> | reset]
4
+ ---
5
+
6
+ Use the bundled CLI. Define it once in your shell call:
7
+
8
+ ```bash
9
+ TKR="node \"${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js\""
10
+ ```
11
+
12
+ Every `tkr ...` below means `eval "$TKR ..."` (or `node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" ...` directly). The bare `tkr` binary is only on PATH when the user also installed the npm package globally, never assume it.
13
+
14
+ You are about to manage the Tokmizer plugin settings via its CLI.
15
+
16
+ If the user invoked `/tkr` with no extra args, run:
17
+
18
+ ```bash
19
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" settings show
20
+ ```
21
+
22
+ If the user asked to "configure", "set up", "redo onboarding", "personalize", or seems unsure of the settings, run:
23
+
24
+ ```bash
25
+ node "${CLAUDE_PLUGIN_ROOT}/dist/bin/tkr.js" settings configure
26
+ ```
27
+
28
+ The configure wizard offers Recommended (sane defaults) or Custom (walk through each option). It runs once at the end of the interactive `tkr link` setup, and can be re-run anytime with `tkr settings configure`.
29
+
30
+ If the user asked to change a setting (e.g. "set output to compact", "disable git filter"), translate the request to one or more `tkr settings set <key> <value>` calls.
31
+
32
+ Valid keys:
33
+
34
+ - `enabled` (boolean) — master on/off
35
+ - `telemetryOptIn` (boolean) — required true to send any usage data
36
+ - `outputVerbosity` (`normal` | `compact` | `minimal`)
37
+ - `filters.enableAll` (boolean)
38
+ - `filters.disabled` (JSON array of slug strings, e.g. `["git","grep"]`)
39
+
40
+ After any change, run `tkr settings show` and print the result.
41
+
42
+ Changes sync to all the user's machines instantly.
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
+ var rr=Object.defineProperty;var nr=(t,e)=>{for(var r in e)rr(t,r,{get:e[r],enumerable:!0})};import{readdir as hn,readFile as gn}from"node:fs/promises";import{join as ct,dirname as yn}from"node:path";import{fileURLToPath as _n}from"node:url";var m={};nr(m,{BRAND:()=>Cr,DIRTY:()=>G,EMPTY_PATH:()=>or,INVALID:()=>h,NEVER:()=>mn,OK:()=>w,ParseStatus:()=>E,Schema:()=>v,ZodAny:()=>U,ZodArray:()=>z,ZodBigInt:()=>J,ZodBoolean:()=>Y,ZodBranded:()=>xe,ZodCatch:()=>ce,ZodDate:()=>X,ZodDefault:()=>oe,ZodDiscriminatedUnion:()=>Ae,ZodEffects:()=>D,ZodEnum:()=>ie,ZodError:()=>T,ZodFirstPartyTypeKind:()=>g,ZodFunction:()=>Ce,ZodIntersection:()=>re,ZodIssueCode:()=>u,ZodLazy:()=>ne,ZodLiteral:()=>se,ZodMap:()=>he,ZodNaN:()=>ye,ZodNativeEnum:()=>ae,ZodNever:()=>I,ZodNull:()=>ee,ZodNullable:()=>$,ZodNumber:()=>q,ZodObject:()=>S,ZodOptional:()=>R,ZodParsedType:()=>f,ZodPipeline:()=>be,ZodPromise:()=>K,ZodReadonly:()=>ue,ZodRecord:()=>Re,ZodSchema:()=>v,ZodSet:()=>ge,ZodString:()=>V,ZodSymbol:()=>pe,ZodTransformer:()=>D,ZodTuple:()=>P,ZodType:()=>v,ZodUndefined:()=>Q,ZodUnion:()=>te,ZodUnknown:()=>F,ZodVoid:()=>me,addIssueToContext:()=>d,any:()=>Lr,array:()=>Br,bigint:()=>Nr,boolean:()=>it,coerce:()=>pn,custom:()=>rt,date:()=>Pr,datetimeRegex:()=>et,defaultErrorMap:()=>j,discriminatedUnion:()=>Hr,effect:()=>sn,enum:()=>tn,function:()=>Xr,getErrorMap:()=>le,getParsedType:()=>N,instanceof:()=>Or,intersection:()=>Wr,isAborted:()=>Te,isAsync:()=>de,isDirty:()=>Se,isValid:()=>B,late:()=>Dr,lazy:()=>Qr,literal:()=>en,makeIssue:()=>ve,map:()=>Jr,nan:()=>Ir,nativeEnum:()=>rn,never:()=>zr,null:()=>jr,nullable:()=>on,number:()=>st,object:()=>Vr,objectUtil:()=>je,oboolean:()=>fn,onumber:()=>dn,optional:()=>an,ostring:()=>ln,pipeline:()=>un,preprocess:()=>cn,promise:()=>nn,quotelessJson:()=>sr,record:()=>qr,set:()=>Yr,setErrorMap:()=>ar,strictObject:()=>Ur,string:()=>nt,symbol:()=>$r,transformer:()=>sn,tuple:()=>Gr,undefined:()=>Mr,union:()=>Kr,unknown:()=>Fr,util:()=>x,void:()=>Zr});var x;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw new Error}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let a of s)i[a]=a;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(let o of i)a[o]=s[o];return t.objectValues(a)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},t.find=(s,i)=>{for(let a of s)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(x||(x={}));var je;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(je||(je={}));var f=x.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),N=t=>{switch(typeof t){case"undefined":return f.undefined;case"string":return f.string;case"number":return Number.isNaN(t)?f.nan:f.number;case"boolean":return f.boolean;case"function":return f.function;case"bigint":return f.bigint;case"symbol":return f.symbol;case"object":return Array.isArray(t)?f.array:t===null?f.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?f.promise:typeof Map<"u"&&t instanceof Map?f.map:typeof Set<"u"&&t instanceof Set?f.set:typeof Date<"u"&&t instanceof Date?f.date:f.object;default:return f.unknown}};var u=x.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),sr=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),T=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c<a.path.length;){let l=a.path[c];c===a.path.length-1?(o[l]=o[l]||{_errors:[]},o[l]._errors.push(r(a))):o[l]=o[l]||{_errors:[]},o=o[l],c++}}};return s(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,x.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};T.create=t=>new T(t);var ir=(t,e)=>{let r;switch(t.code){case u.invalid_type:t.received===f.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case u.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,x.jsonStringifyReplacer)}`;break;case u.unrecognized_keys:r=`Unrecognized key(s) in object: ${x.joinValues(t.keys,", ")}`;break;case u.invalid_union:r="Invalid input";break;case u.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${x.joinValues(t.options)}`;break;case u.invalid_enum_value:r=`Invalid enum value. Expected ${x.joinValues(t.options)}, received '${t.received}'`;break;case u.invalid_arguments:r="Invalid function arguments";break;case u.invalid_return_type:r="Invalid function return type";break;case u.invalid_date:r="Invalid date";break;case u.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:x.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case u.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case u.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case u.custom:r="Invalid input";break;case u.invalid_intersection_types:r="Intersection results could not be merged";break;case u.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case u.not_finite:r="Number must be finite";break;default:r=e.defaultError,x.assertNever(t)}return{message:r}},j=ir;var qe=j;function ar(t){qe=t}function le(){return qe}var ve=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",c=n.filter(l=>!!l).slice().reverse();for(let l of c)o=l(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},or=[];function d(t,e){let r=le(),n=ve({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===j?void 0:j].filter(s=>!!s)});t.common.issues.push(n)}var E=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return h;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,a=await s.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return h;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},h=Object.freeze({status:"aborted"}),G=t=>({status:"dirty",value:t}),w=t=>({status:"valid",value:t}),Te=t=>t.status==="aborted",Se=t=>t.status==="dirty",B=t=>t.status==="valid",de=t=>typeof Promise<"u"&&t instanceof Promise;var p;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(p||(p={}));var C=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Je=(t,e)=>{if(B(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new T(t.common.issues);return this._error=r,this._error}}};function _(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(a,o)=>{let{message:c}=t;return a.code==="invalid_enum_value"?{message:c??o.defaultError}:typeof o.data>"u"?{message:c??n??o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:c??r??o.defaultError}},description:s}}var v=class{get description(){return this._def.description}_getType(e){return N(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:N(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new E,ctx:{common:e.parent.common,data:e.data,parsedType:N(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(de(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:N(e)},s=this._parseSync({data:e,path:n.path,parent:n});return Je(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:N(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return B(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>B(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:N(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(de(s)?s:Promise.resolve(s));return Je(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let a=e(s),o=()=>i.addIssue({code:u.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new D({schema:this,typeName:g.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return R.create(this,this._def)}nullable(){return $.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return z.create(this)}promise(){return K.create(this,this._def)}or(e){return te.create([this,e],this._def)}and(e){return re.create(this,e,this._def)}transform(e){return new D({..._(this._def),schema:this,typeName:g.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new oe({..._(this._def),innerType:this,defaultValue:r,typeName:g.ZodDefault})}brand(){return new xe({typeName:g.ZodBranded,type:this,..._(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new ce({..._(this._def),innerType:this,catchValue:r,typeName:g.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return be.create(this,e)}readonly(){return ue.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},cr=/^c[^\s-]{8,}$/i,ur=/^[0-9a-z]+$/,lr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,dr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fr=/^[a-z0-9_-]{21}$/i,pr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,mr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,hr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Le,yr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_r=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,vr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,xr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,br=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Xe="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Er=new RegExp(`^${Xe}$`);function Qe(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function wr(t){return new RegExp(`^${Qe(t)}$`)}function et(t){let e=`${Xe}T${Qe(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Tr(t,e){return!!((e==="v4"||!e)&&yr.test(t)||(e==="v6"||!e)&&vr.test(t))}function Sr(t,e){if(!pr.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Ar(t,e){return!!((e==="v4"||!e)&&_r.test(t)||(e==="v6"||!e)&&xr.test(t))}var V=class t extends v{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==f.string){let i=this._getOrReturnCtx(e);return d(i,{code:u.invalid_type,expected:f.string,received:i.parsedType}),h}let n=new E,s;for(let i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="max")e.data.length>i.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let a=e.data.length>i.value,o=e.data.length<i.value;(a||o)&&(s=this._getOrReturnCtx(e,s),a?d(s,{code:u.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):o&&d(s,{code:u.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),n.dirty())}else if(i.kind==="email")hr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"email",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="emoji")Le||(Le=new RegExp(gr,"u")),Le.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"emoji",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="uuid")dr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"uuid",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="nanoid")fr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"nanoid",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid")cr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid2")ur.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid2",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="ulid")lr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ulid",code:u.invalid_string,message:i.message}),n.dirty());else if(i.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),d(s,{validation:"url",code:u.invalid_string,message:i.message}),n.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"regex",code:u.invalid_string,message:i.message}),n.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),n.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{startsWith:i.value},message:i.message}),n.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{endsWith:i.value},message:i.message}),n.dirty()):i.kind==="datetime"?et(i).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"datetime",message:i.message}),n.dirty()):i.kind==="date"?Er.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"date",message:i.message}),n.dirty()):i.kind==="time"?wr(i).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"time",message:i.message}),n.dirty()):i.kind==="duration"?mr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"duration",code:u.invalid_string,message:i.message}),n.dirty()):i.kind==="ip"?Tr(e.data,i.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ip",code:u.invalid_string,message:i.message}),n.dirty()):i.kind==="jwt"?Sr(e.data,i.alg)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"jwt",code:u.invalid_string,message:i.message}),n.dirty()):i.kind==="cidr"?Ar(e.data,i.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cidr",code:u.invalid_string,message:i.message}),n.dirty()):i.kind==="base64"?br.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64",code:u.invalid_string,message:i.message}),n.dirty()):i.kind==="base64url"?kr.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64url",code:u.invalid_string,message:i.message}),n.dirty()):x.assertNever(i);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(s=>e.test(s),{validation:r,code:u.invalid_string,...p.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...p.errToObj(e)})}url(e){return this._addCheck({kind:"url",...p.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...p.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...p.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...p.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...p.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...p.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...p.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...p.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...p.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...p.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...p.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...p.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...p.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...p.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...p.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...p.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...p.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...p.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...p.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...p.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...p.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...p.errToObj(r)})}nonempty(e){return this.min(1,p.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};V.create=t=>new V({checks:[],typeName:g.ZodString,coerce:t?.coerce??!1,..._(t)});function Rr(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}var q=class t extends v{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==f.number){let i=this._getOrReturnCtx(e);return d(i,{code:u.invalid_type,expected:f.number,received:i.parsedType}),h}let n,s=new E;for(let i of this._def.checks)i.kind==="int"?x.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),d(n,{code:u.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?Rr(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),d(n,{code:u.not_finite,message:i.message}),s.dirty()):x.assertNever(i);return{status:s.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,p.toString(r))}gt(e,r){return this.setLimit("min",e,!1,p.toString(r))}lte(e,r){return this.setLimit("max",e,!0,p.toString(r))}lt(e,r){return this.setLimit("max",e,!1,p.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:p.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:p.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&x.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};q.create=t=>new q({checks:[],typeName:g.ZodNumber,coerce:t?.coerce||!1,..._(t)});var J=class t extends v{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==f.bigint)return this._getInvalidInput(e);let n,s=new E;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),d(n,{code:u.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):x.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return d(r,{code:u.invalid_type,expected:f.bigint,received:r.parsedType}),h}gte(e,r){return this.setLimit("min",e,!0,p.toString(r))}gt(e,r){return this.setLimit("min",e,!1,p.toString(r))}lte(e,r){return this.setLimit("max",e,!0,p.toString(r))}lt(e,r){return this.setLimit("max",e,!1,p.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};J.create=t=>new J({checks:[],typeName:g.ZodBigInt,coerce:t?.coerce??!1,..._(t)});var Y=class extends v{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==f.boolean){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.boolean,received:n.parsedType}),h}return w(e.data)}};Y.create=t=>new Y({typeName:g.ZodBoolean,coerce:t?.coerce||!1,..._(t)});var X=class t extends v{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==f.date){let i=this._getOrReturnCtx(e);return d(i,{code:u.invalid_type,expected:f.date,received:i.parsedType}),h}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return d(i,{code:u.invalid_date}),h}let n=new E,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),n.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):x.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:p.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:p.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};X.create=t=>new X({checks:[],coerce:t?.coerce||!1,typeName:g.ZodDate,..._(t)});var pe=class extends v{_parse(e){if(this._getType(e)!==f.symbol){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.symbol,received:n.parsedType}),h}return w(e.data)}};pe.create=t=>new pe({typeName:g.ZodSymbol,..._(t)});var Q=class extends v{_parse(e){if(this._getType(e)!==f.undefined){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.undefined,received:n.parsedType}),h}return w(e.data)}};Q.create=t=>new Q({typeName:g.ZodUndefined,..._(t)});var ee=class extends v{_parse(e){if(this._getType(e)!==f.null){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.null,received:n.parsedType}),h}return w(e.data)}};ee.create=t=>new ee({typeName:g.ZodNull,..._(t)});var U=class extends v{constructor(){super(...arguments),this._any=!0}_parse(e){return w(e.data)}};U.create=t=>new U({typeName:g.ZodAny,..._(t)});var F=class extends v{constructor(){super(...arguments),this._unknown=!0}_parse(e){return w(e.data)}};F.create=t=>new F({typeName:g.ZodUnknown,..._(t)});var I=class extends v{_parse(e){let r=this._getOrReturnCtx(e);return d(r,{code:u.invalid_type,expected:f.never,received:r.parsedType}),h}};I.create=t=>new I({typeName:g.ZodNever,..._(t)});var me=class extends v{_parse(e){if(this._getType(e)!==f.undefined){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.void,received:n.parsedType}),h}return w(e.data)}};me.create=t=>new me({typeName:g.ZodVoid,..._(t)});var z=class t extends v{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==f.array)return d(r,{code:u.invalid_type,expected:f.array,received:r.parsedType}),h;if(s.exactLength!==null){let a=r.data.length>s.exactLength.value,o=r.data.length<s.exactLength.value;(a||o)&&(d(r,{code:a?u.too_big:u.too_small,minimum:o?s.exactLength.value:void 0,maximum:a?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&r.data.length<s.minLength.value&&(d(r,{code:u.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&r.data.length>s.maxLength.value&&(d(r,{code:u.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,o)=>s.type._parseAsync(new C(r,a,r.path,o)))).then(a=>E.mergeArray(n,a));let i=[...r.data].map((a,o)=>s.type._parseSync(new C(r,a,r.path,o)));return E.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:p.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:p.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:p.toString(r)}})}nonempty(e){return this.min(1,e)}};z.create=(t,e)=>new z({type:t,minLength:null,maxLength:null,exactLength:null,typeName:g.ZodArray,..._(e)});function fe(t){if(t instanceof S){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=R.create(fe(n))}return new S({...t._def,shape:()=>e})}else return t instanceof z?new z({...t._def,type:fe(t.element)}):t instanceof R?R.create(fe(t.unwrap())):t instanceof $?$.create(fe(t.unwrap())):t instanceof P?P.create(t.items.map(e=>fe(e))):t}var S=class t extends v{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=x.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==f.object){let l=this._getOrReturnCtx(e);return d(l,{code:u.invalid_type,expected:f.object,received:l.parsedType}),h}let{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof I&&this._def.unknownKeys==="strip"))for(let l in s.data)a.includes(l)||o.push(l);let c=[];for(let l of a){let y=i[l],b=s.data[l];c.push({key:{status:"valid",value:l},value:y._parse(new C(s,b,s.path,l)),alwaysSet:l in s.data})}if(this._def.catchall instanceof I){let l=this._def.unknownKeys;if(l==="passthrough")for(let y of o)c.push({key:{status:"valid",value:y},value:{status:"valid",value:s.data[y]}});else if(l==="strict")o.length>0&&(d(s,{code:u.unrecognized_keys,keys:o}),n.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let y of o){let b=s.data[y];c.push({key:{status:"valid",value:y},value:l._parse(new C(s,b,s.path,y)),alwaysSet:y in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let l=[];for(let y of c){let b=await y.key,Z=await y.value;l.push({key:b,value:Z,alwaysSet:y.alwaysSet})}return l}).then(l=>E.mergeObjectSync(n,l)):E.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return p.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:p.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:g.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of x.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of x.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return fe(this)}partial(e){let r={};for(let n of x.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of x.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof R;)i=i._def.innerType;r[n]=i}return new t({...this._def,shape:()=>r})}keyof(){return tt(x.objectKeys(this.shape))}};S.create=(t,e)=>new S({shape:()=>t,unknownKeys:"strip",catchall:I.create(),typeName:g.ZodObject,..._(e)});S.strictCreate=(t,e)=>new S({shape:()=>t,unknownKeys:"strict",catchall:I.create(),typeName:g.ZodObject,..._(e)});S.lazycreate=(t,e)=>new S({shape:t,unknownKeys:"strip",catchall:I.create(),typeName:g.ZodObject,..._(e)});var te=class extends v{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(o=>new T(o.ctx.common.issues));return d(r,{code:u.invalid_union,unionErrors:a}),h}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(s);{let i,a=[];for(let c of n){let l={...r,common:{...r.common,issues:[]},parent:null},y=c._parseSync({data:r.data,path:r.path,parent:l});if(y.status==="valid")return y;y.status==="dirty"&&!i&&(i={result:y,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let o=a.map(c=>new T(c));return d(r,{code:u.invalid_union,unionErrors:o}),h}}get options(){return this._def.options}};te.create=(t,e)=>new te({options:t,typeName:g.ZodUnion,..._(e)});var L=t=>t instanceof ne?L(t.schema):t instanceof D?L(t.innerType()):t instanceof se?[t.value]:t instanceof ie?t.options:t instanceof ae?x.objectValues(t.enum):t instanceof oe?L(t._def.innerType):t instanceof Q?[void 0]:t instanceof ee?[null]:t instanceof R?[void 0,...L(t.unwrap())]:t instanceof $?[null,...L(t.unwrap())]:t instanceof xe||t instanceof ue?L(t.unwrap()):t instanceof ce?L(t._def.innerType):[],Ae=class t extends v{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==f.object)return d(r,{code:u.invalid_type,expected:f.object,received:r.parsedType}),h;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(d(r,{code:u.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),h)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let a=L(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new t({typeName:g.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,..._(n)})}};function Fe(t,e){let r=N(t),n=N(e);if(t===e)return{valid:!0,data:t};if(r===f.object&&n===f.object){let s=x.objectKeys(e),i=x.objectKeys(t).filter(o=>s.indexOf(o)!==-1),a={...t,...e};for(let o of i){let c=Fe(t[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(r===f.array&&n===f.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i<t.length;i++){let a=t[i],o=e[i],c=Fe(a,o);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return r===f.date&&n===f.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var re=class extends v{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(i,a)=>{if(Te(i)||Te(a))return h;let o=Fe(i.value,a.value);return o.valid?((Se(i)||Se(a))&&r.dirty(),{status:r.value,value:o.data}):(d(n,{code:u.invalid_intersection_types}),h)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};re.create=(t,e,r)=>new re({left:t,right:e,typeName:g.ZodIntersection,..._(r)});var P=class t extends v{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==f.array)return d(n,{code:u.invalid_type,expected:f.array,received:n.parsedType}),h;if(n.data.length<this._def.items.length)return d(n,{code:u.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),h;!this._def.rest&&n.data.length>this._def.items.length&&(d(n,{code:u.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((a,o)=>{let c=this._def.items[o]||this._def.rest;return c?c._parse(new C(n,a,n.path,o)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>E.mergeArray(r,a)):E.mergeArray(r,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};P.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new P({items:t,typeName:g.ZodTuple,rest:null,..._(e)})};var Re=class t extends v{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==f.object)return d(n,{code:u.invalid_type,expected:f.object,received:n.parsedType}),h;let s=[],i=this._def.keyType,a=this._def.valueType;for(let o in n.data)s.push({key:i._parse(new C(n,o,n.path,o)),value:a._parse(new C(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?E.mergeObjectAsync(r,s):E.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof v?new t({keyType:e,valueType:r,typeName:g.ZodRecord,..._(n)}):new t({keyType:V.create(),valueType:e,typeName:g.ZodRecord,..._(r)})}},he=class extends v{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==f.map)return d(n,{code:u.invalid_type,expected:f.map,received:n.parsedType}),h;let s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],l)=>({key:s._parse(new C(n,o,n.path,[l,"key"])),value:i._parse(new C(n,c,n.path,[l,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of a){let l=await c.key,y=await c.value;if(l.status==="aborted"||y.status==="aborted")return h;(l.status==="dirty"||y.status==="dirty")&&r.dirty(),o.set(l.value,y.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of a){let l=c.key,y=c.value;if(l.status==="aborted"||y.status==="aborted")return h;(l.status==="dirty"||y.status==="dirty")&&r.dirty(),o.set(l.value,y.value)}return{status:r.value,value:o}}}};he.create=(t,e,r)=>new he({valueType:e,keyType:t,typeName:g.ZodMap,..._(r)});var ge=class t extends v{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==f.set)return d(n,{code:u.invalid_type,expected:f.set,received:n.parsedType}),h;let s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(d(n,{code:u.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(d(n,{code:u.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let l=new Set;for(let y of c){if(y.status==="aborted")return h;y.status==="dirty"&&r.dirty(),l.add(y.value)}return{status:r.value,value:l}}let o=[...n.data.values()].map((c,l)=>i._parse(new C(n,c,n.path,l)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:p.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:p.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};ge.create=(t,e)=>new ge({valueType:t,minSize:null,maxSize:null,typeName:g.ZodSet,..._(e)});var Ce=class t extends v{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==f.function)return d(r,{code:u.invalid_type,expected:f.function,received:r.parsedType}),h;function n(o,c){return ve({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,le(),j].filter(l=>!!l),issueData:{code:u.invalid_arguments,argumentsError:c}})}function s(o,c){return ve({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,le(),j].filter(l=>!!l),issueData:{code:u.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof K){let o=this;return w(async function(...c){let l=new T([]),y=await o._def.args.parseAsync(c,i).catch(M=>{throw l.addIssue(n(c,M)),l}),b=await Reflect.apply(a,this,y);return await o._def.returns._def.type.parseAsync(b,i).catch(M=>{throw l.addIssue(s(b,M)),l})})}else{let o=this;return w(function(...c){let l=o._def.args.safeParse(c,i);if(!l.success)throw new T([n(c,l.error)]);let y=Reflect.apply(a,this,l.data),b=o._def.returns.safeParse(y,i);if(!b.success)throw new T([s(y,b.error)]);return b.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:P.create(e).rest(F.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||P.create([]).rest(F.create()),returns:r||F.create(),typeName:g.ZodFunction,..._(n)})}},ne=class extends v{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};ne.create=(t,e)=>new ne({getter:t,typeName:g.ZodLazy,..._(e)});var se=class extends v{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return d(r,{received:r.data,code:u.invalid_literal,expected:this._def.value}),h}return{status:"valid",value:e.data}}get value(){return this._def.value}};se.create=(t,e)=>new se({value:t,typeName:g.ZodLiteral,..._(e)});function tt(t,e){return new ie({values:t,typeName:g.ZodEnum,..._(e)})}var ie=class t extends v{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return d(r,{expected:x.joinValues(n),received:r.parsedType,code:u.invalid_type}),h}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return d(r,{received:r.data,code:u.invalid_enum_value,options:n}),h}return w(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};ie.create=tt;var ae=class extends v{_parse(e){let r=x.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==f.string&&n.parsedType!==f.number){let s=x.objectValues(r);return d(n,{expected:x.joinValues(s),received:n.parsedType,code:u.invalid_type}),h}if(this._cache||(this._cache=new Set(x.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=x.objectValues(r);return d(n,{received:n.data,code:u.invalid_enum_value,options:s}),h}return w(e.data)}get enum(){return this._def.values}};ae.create=(t,e)=>new ae({values:t,typeName:g.ZodNativeEnum,..._(e)});var K=class extends v{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==f.promise&&r.common.async===!1)return d(r,{code:u.invalid_type,expected:f.promise,received:r.parsedType}),h;let n=r.parsedType===f.promise?r.data:Promise.resolve(r.data);return w(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};K.create=(t,e)=>new K({type:t,typeName:g.ZodPromise,..._(e)});var D=class extends v{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===g.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{d(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(r.value==="aborted")return h;let c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?h:c.status==="dirty"?G(c.value):r.value==="dirty"?G(c.value):c});{if(r.value==="aborted")return h;let o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?h:o.status==="dirty"?G(o.value):r.value==="dirty"?G(o.value):o}}if(s.type==="refinement"){let a=o=>{let c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?h:(o.status==="dirty"&&r.dirty(),a(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?h:(o.status==="dirty"&&r.dirty(),a(o.value).then(()=>({status:r.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!B(a))return h;let o=s.transform(a.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>B(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:r.value,value:o})):h);x.assertNever(s)}};D.create=(t,e,r)=>new D({schema:t,typeName:g.ZodEffects,effect:e,..._(r)});D.createWithPreprocess=(t,e,r)=>new D({schema:e,effect:{type:"preprocess",transform:t},typeName:g.ZodEffects,..._(r)});var R=class extends v{_parse(e){return this._getType(e)===f.undefined?w(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};R.create=(t,e)=>new R({innerType:t,typeName:g.ZodOptional,..._(e)});var $=class extends v{_parse(e){return this._getType(e)===f.null?w(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$.create=(t,e)=>new $({innerType:t,typeName:g.ZodNullable,..._(e)});var oe=class extends v{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===f.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};oe.create=(t,e)=>new oe({innerType:t,typeName:g.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,..._(e)});var ce=class extends v{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return de(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new T(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new T(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};ce.create=(t,e)=>new ce({innerType:t,typeName:g.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,..._(e)});var ye=class extends v{_parse(e){if(this._getType(e)!==f.nan){let n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:f.nan,received:n.parsedType}),h}return{status:"valid",value:e.data}}};ye.create=t=>new ye({typeName:g.ZodNaN,..._(t)});var Cr=Symbol("zod_brand"),xe=class extends v{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},be=class t extends v{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?h:i.status==="dirty"?(r.dirty(),G(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?h:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:g.ZodPipeline})}},ue=class extends v{_parse(e){let r=this._def.innerType._parse(e),n=s=>(B(s)&&(s.value=Object.freeze(s.value)),s);return de(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};ue.create=(t,e)=>new ue({innerType:t,typeName:g.ZodReadonly,..._(e)});function Ye(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function rt(t,e={},r){return t?U.create().superRefine((n,s)=>{let i=t(n);if(i instanceof Promise)return i.then(a=>{if(!a){let o=Ye(e,n),c=o.fatal??r??!0;s.addIssue({code:"custom",...o,fatal:c})}});if(!i){let a=Ye(e,n),o=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:o})}}):U.create()}var Dr={object:S.lazycreate},g;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(g||(g={}));var Or=(t,e={message:`Input not instance of ${t.name}`})=>rt(r=>r instanceof t,e),nt=V.create,st=q.create,Ir=ye.create,Nr=J.create,it=Y.create,Pr=X.create,$r=pe.create,Mr=Q.create,jr=ee.create,Lr=U.create,Fr=F.create,zr=I.create,Zr=me.create,Br=z.create,Vr=S.create,Ur=S.strictCreate,Kr=te.create,Hr=Ae.create,Wr=re.create,Gr=P.create,qr=Re.create,Jr=he.create,Yr=ge.create,Xr=Ce.create,Qr=ne.create,en=se.create,tn=ie.create,rn=ae.create,nn=K.create,sn=D.create,an=R.create,on=$.create,cn=D.createWithPreprocess,un=be.create,ln=()=>nt().optional(),dn=()=>st().optional(),fn=()=>it().optional(),pn={string:(t=>V.create({...t,coerce:!0})),number:(t=>q.create({...t,coerce:!0})),boolean:(t=>Y.create({...t,coerce:!0})),bigint:(t=>J.create({...t,coerce:!0})),date:(t=>X.create({...t,coerce:!0}))};var mn=h;var De=m.object({slug:m.string().min(1).max(64),description:m.string().max(255).optional(),match_command:m.string().min(1),priority:m.number().int().default(50),strip_ansi:m.boolean().default(!1),strip_lines_matching:m.array(m.string()).default([]),truncate_lines_at:m.number().int().positive().max(1e4).optional(),max_lines:m.number().int().positive().max(1e5).optional(),transform:m.string().max(64).optional(),on_empty:m.string().max(255).optional()});var vn=yn(_n(import.meta.url)),at=ct(vn,"..","..","filters"),H=null,ot=!1;function xn(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function ut(){if(H)return H;if(!xn())return!ot&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
4
+ `),ot=!0),H=new Map,H;let t=new Map,e,r;try{e=(await import("smol-toml")).parse,r=(await hn(at)).filter(n=>n.endsWith(".toml"))}catch{return H=t,H}for(let n of r){let s=await gn(ct(at,n),"utf8"),a=e(s).filters;if(a)for(let[o,c]of Object.entries(a)){let l=De.parse({slug:o,...c});t.set(o,{...l,matchRegex:new RegExp(l.match_command)})}}return H=t,H}var ke=new Map,bn=256,lt=new WeakMap;function kn(t){if(!t)return"*";let e=lt.get(t);return e===void 0&&(e=[...t].join(","),lt.set(t,e)),e}function dt(t,e,r){let n=`${t}::${kn(r)}`,s=ke.get(n);if(s!==void 0)return s;let i=null;for(let a of e)r&&!r.has(a.slug)||a.matchRegex.test(t)&&(!i||a.priority>i.priority)&&(i=a);if(ke.size>=bn){let a=ke.keys().next().value;a&&ke.delete(a)}return ke.set(n,i),i}var En=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,wn=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ft(t){return t.replace(En,"").replace(wn,"")}function pt(t,e){return e.length===0?t:t.filter(r=>!e.some(n=>n.test(r)))}function mt(t,e){return t.map(r=>r.length<=e?r:`${r.slice(0,e)}\u2026`)}function ht(t,e){if(t.length<=e)return t;let r=t.length-e;return[...t.slice(0,e),`\u2026 (${r} more lines omitted)`]}var Tn=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|class|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Sn=/\{\s*$/;function Oe(t){let e=[],r=0;for(;r<t.length;){let n=t[r];if(Tn.test(n)&&Sn.test(n)){let s=0,i=r,a=!1;for(;i<t.length&&i-r<200;){for(let o of t[i])o==="{"||o==="("||o==="["?s+=1:(o==="}"||o===")"||o==="]")&&(s-=1);if(i+=1,s<=0){a=!0;break}}if(a){e.push(`${n.replace(/\{\s*$/,"")}{ \u2026 }`),r=i;continue}}e.push(n),r+=1}return e}var An=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/;function gt(t){let e=t.slice(0,4096);return!(!An.test(e)||e.split(`
5
+ `).length<6)}var Rn=/\b(?:DEBUG|TRACE|INFO|VERBOSE)\b/;function yt(t){return t.filter(e=>!Rn.test(e))}function _t(t){if(t.length===0)return t;let e=[],r=1,n=t[0];for(let s=1;s<t.length;s++){if(t[s]===n){r+=1;continue}e.push(r>1?`${n} \xD7${r}`:n),n=t[s],r=1}return e.push(r>1?`${n} \xD7${r}`:n),e}function vt(t){let e=[],r=0;for(let n of t){if(n.trim()===""){r+=1;continue}r>0&&e.push(""),r=0,e.push(n)}return e}var xt=new Map;function W(t,e){xt.set(t,e)}function bt(t){return xt.get(t)}var Cn=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/;function Dn(t){if(t<1024)return String(t);let e=["K","M","G","T"],r=t/1024,n=0;for(;r>=1024&&n<e.length-1;)r/=1024,n+=1;return`${r.toFixed(1)}${e[n]}`}function On(t){if(!Cn.test(t))return null;let e=t.split(/\s+/);if(e.length<9)return null;let r=Number(e[4]);if(!Number.isFinite(r))return null;let n=e.slice(8).join(" ").trim();if(n===""||n==="."||n==="..")return null;let s=e[0].charCodeAt(0)===100;return{name:n,size:r,isDir:s}}var In=16;function Nn(t){if(t.length<3)return null;let e=new Map;for(let s of t){let i=s.name.lastIndexOf(".");if(i<=0)continue;let a=s.name.slice(i);e.set(a,(e.get(a)??0)+1)}let r=null,n=0;for(let[s,i]of e)i>n&&(n=i,r=s);return r&&n>=Math.ceil(t.length/2)?`${n} ${r}`:null}function Pn(t){let e=[],r=[],n=!1;for(let k of t){if(/^total\s+\d+/.test(k))continue;let O=On(k);O&&(n=!0,(O.isDir?e:r).push(O))}if(!n)return t;let s=(k,O)=>k.name.localeCompare(O.name);e.sort(s),r.sort((k,O)=>O.size-k.size||s(k,O));let a=e.slice(0,3),o=r.slice(0,Math.max(0,In-a.length)),c=[...a,...o],l=e.length-a.length+(r.length-o.length),y=Math.min(40,Math.max(0,...c.map(k=>k.isDir?k.name.length+1:k.name.length))),b=[];for(let k of c){let O=k.isDir?`${k.name}/`:k.name,Ge=k.isDir?"":Dn(k.size);b.push(Ge?`${O.padEnd(y)} ${Ge}`:O)}l>0&&b.push(`\u2026 ${l} more`);let Z=r.length===1?"file":"files",M=e.length===1?"dir":"dirs",We=Nn(r),tr=`${r.length} ${Z}, ${e.length} ${M}`+(We?` (${We})`:"");return b.push(tr),b}W("smart-ls",Pn);W("smart-read",t=>Oe(t));var $n=/^[\s=]+$/,Mn=/^\s*=+\s+(.*?)\s+=+\s*$/;W("strip-banners",t=>{let e=[];for(let r of t){if($n.test(r))continue;let n=Mn.exec(r);e.push(n?n[1]:r)}return e});function jn(t){let e=[],r=0,n=0;for(;n<t.length;){let s=t[n].replace(/\s+$/,"");if(s===""){r+=1,n+=1,r<=1&&e.push("");continue}r=0;let i=1;for(;n+i<t.length&&t[n+i].replace(/\s+$/,"")===s;)i+=1;if(i>=3)e.push(s),e.push(` \u2026 (repeated ${i}x)`);else for(let a=0;a<i;a++)e.push(s);n+=i}for(;e.length>0&&e[e.length-1]==="";)e.pop();return e}W("squeeze-output",jn);var kt=new WeakMap;function Ln(t){let e=kt.get(t);if(e)return e;let r=t.strip_lines_matching.map(s=>new RegExp(s)),n={def:t,stripRegexes:r};return kt.set(t,n),n}function Et(t,e,r={}){let n=Ln(e),s=t;e.strip_ansi&&(s=ft(s));let i=s.split(`
6
+ `);n.stripRegexes.length&&(i=pt(i,n.stripRegexes));let a=r.verbosity??"normal";if(a!=="normal"&&(i=_t(i),i=vt(i)),a==="minimal"&&(i=yt(i)),(r.smartCode||r.smartCode===void 0&&a!=="normal"&&gt(s))&&(i=Oe(i)),e.transform){let c=bt(e.transform);c&&(i=c(i))}e.truncate_lines_at&&(i=mt(i,e.truncate_lines_at)),e.max_lines&&(i=ht(i,e.max_lines));let o=i.join(`
7
+ `);return o.trim().length===0&&e.on_empty&&(o=e.on_empty),o}var Fn=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/thread '.*' panicked/];function wt(t){if(!t)return!1;let e=t.length<=262144*2?[t]:[t.slice(0,262144),t.slice(-262144)];for(let r of Fn)for(let n of e)if(r.test(n))return!0;return!1}var Tt=null;function ze(t){Tt=t}async function zn(t,e){let r=await ut();return dt(t,r.values(),e)}async function St(t,e,r,n={}){let s=Buffer.byteLength(e,"utf8"),{exitCode:i,...a}=n;if(i!=null&&i!==0||wt(e))return{output:e,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:!0};let c=await(Tt??zn)(t,r);if(!c)return{output:e,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:!1};let l=Et(e,c,a);return{output:l,filterId:c.slug,rawBytes:s,filteredBytes:Buffer.byteLength(l,"utf8"),debugBypass:!1}}var Zn=m.enum(["normal","compact","minimal"]),Bn=m.enum(["off","light","balanced","max"]),Ze=m.object({enabled:m.boolean().default(!0),telemetryOptIn:m.boolean().default(!0),outputVerbosity:Zn.default("compact"),reducer:Bn.default("off"),filters:m.object({enableAll:m.boolean().default(!0),disabled:m.array(m.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Vn=["git","grep","find","ls","ps","cat","head","tail","df","du","tree","wc","read-tool","grep-tool","glob-tool","npm","docker","kubectl","curl","cargo","go-test","gh","aws","dotnet","prisma","tsc","next","jest","vitest","pytest","pip","rspec"];function Ie(t,e=!1){return e||!t||t.length===0?new Set(Vn):new Set(t)}async function At(){let t=[];for await(let e of process.stdin)t.push(e);return Buffer.concat(t).toString("utf8")}import{join as Kn}from"node:path";import{mkdir as _a,readFile as Hn,writeFile as va,unlink as xa,rename as ba}from"node:fs/promises";import Un from"node:os";import{join as Rt}from"node:path";function A(){return process.env.TOKMIZER_HOME??Rt(Un.homedir(),".tokmizer")}function Be(){return Rt(A(),"install-id")}var Wn="state.json",Ea={lastSettingsRevision:0,timeZone:Ct(),bonusActive:!1};function Ct(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function Gn(t){return t?.dir??A()}async function Ve(t){let e=Gn(t);try{let r=await Hn(Kn(e,Wn),"utf8"),n=JSON.parse(r);return{...n,lastSettingsRevision:n.lastSettingsRevision??0,timeZone:n.timeZone??Ct(),bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}function qn(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function Ue(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>qn())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function Dt(t,e=Date.now()){return Ue(t,e)?"free":t.plan}import{readFile as Jn,writeFile as Aa,mkdir as Ra}from"node:fs/promises";import{join as Yn}from"node:path";var Xn="settings-cache.json",Ot=Ze.parse({});async function It(){try{let t=await Jn(Yn(A(),Xn),"utf8"),e=JSON.parse(t);return Ze.parse({...Ot,...e})}catch{return Ot}}var Qn=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-)*(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^:/\s@]*:)[^\s]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]];function Ee(t){let e=t;for(let[r,n]of Qn)e=e.replace(r,n);return e}import{join as Pt}from"node:path";import{appendFileSync as cs,existsSync as us,mkdirSync as ls,readFileSync as Ya,renameSync as Xa,statSync as ds,unlinkSync as Qa}from"node:fs";import{createHash as $a,randomUUID as es}from"node:crypto";import{readFile as ts,writeFile as rs,mkdir as ns}from"node:fs/promises";async function Nt(){try{let r=(await ts(Be(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await ns(A(),{recursive:!0});let t=es();return await rs(Be(),t,{mode:384}),t}import{createRequire as ss}from"node:module";var is=ss(import.meta.url);function as(){for(let t of["../package.json","../../package.json"])try{let e=is(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}var os=as();var Ka=300*1e3;var fs=512*1024;function $t(){return Pt(A(),"spool")}function ps(t){return Pt($t(),`${t}.jsonl`)}function Ne(t,e){try{ls($t(),{recursive:!0,mode:448});let r=ps(t);if(us(r)&&ds(r).size>=fs)return;cs(r,JSON.stringify(e)+`
8
+ `,{mode:384})}catch{return}}var hs=/^[a-z0-9][a-z0-9._-]*$/i,gs=/^[a-z][a-z-]+$/,ys=/^[A-Za-z_][A-Za-z0-9_]*=/,_s=new Set(["gh","glab","gup","hub","gist"]),vs=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,xs=24,bs=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]);function Mt(t){let e=t.toLowerCase();return e.startsWith("git")||_s.has(e)}function Ke(t){let e=t.trim().split(/\s+/).filter(o=>o.length>0),r=0;for(;r<e.length&&ys.test(e[r]??"");)r+=1;let n=e[r];if(!n||!hs.test(n)||n.length>xs||Mt(n)||vs.test(n)||Ee(n)!==n)return"";let s=e[r+1];return s&&Mt(s)?"":(s&&bs.has(n.toLowerCase())&&gs.test(s)?`${n} ${s}`:n).slice(0,64)}async function jt(t){if(!t.telemetryOptIn)return;let e=Ke(t.cmd),r=e&&Ee(e)===e?e:"other";Ne("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),optimized:t.optimized})}async function Lt(t){if(t.plan!=="pro")return;let e=Ke(t.cmd);!e||Ee(e)!==e||Ne("learn",{cmd:e,filterId:t.filterId,rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}import{appendFileSync as ks,chmodSync as Es,mkdirSync as ws}from"node:fs";import{join as Ts}from"node:path";var Ss="stats.jsonl";function As(){return Ts(A(),Ss)}function Ft(t,e,r=As()){if(!(e<t))return;let n=`{"t":${Math.floor(Date.now()/1e3)},"r":${t},"f":${e}}
9
+ `;try{ws(A(),{recursive:!0,mode:448}),ks(r,n,{mode:384}),Es(r,384)}catch{return}}import{createConnection as Ms}from"node:net";import{spawn as js}from"node:child_process";import{existsSync as Jt,openSync as Kt,closeSync as Ls,unlinkSync as Ht,writeFileSync as Wt}from"node:fs";import{dirname as Fs,join as zs}from"node:path";import{fileURLToPath as Zs}from"node:url";var Rs=m.object({id:m.string().min(1).max(64),op:m.literal("filter"),cmd:m.string().min(1).max(2048),plan:m.enum(["trial","smart","pro"]),installId:m.string().min(1).max(64).optional()}),Cs=m.object({id:m.string().min(1).max(64),op:m.literal("ping")}),Ds=m.object({id:m.string().min(1).max(64),op:m.literal("shutdown"),installId:m.string().min(1).max(64)}),Os=m.object({id:m.string().min(1).max(64),op:m.literal("reload"),installId:m.string().min(1).max(64).optional()}),vo=m.discriminatedUnion("op",[Rs,Cs,Ds,Os]),xo=m.object({id:m.string(),ok:m.literal(!0),data:m.unknown()}),bo=m.object({id:m.string(),ok:m.literal(!1),err:m.string(),retryAfterMs:m.number().int().nonnegative().optional()}),zt=m.object({filter:De.nullable(),cacheHit:m.boolean().optional()}),Pe=`
10
+ `,ko=64*1024;function Zt(t){return JSON.stringify(t)+Pe}function*Bt(t){let e=0;for(;;){let r=t.indexOf(Pe,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function $e(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import{join as He}from"node:path";import{existsSync as Vt,statSync as Is,unlinkSync as Ns,mkdirSync as Ps,chmodSync as $s}from"node:fs";function Me(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let t=typeof process.getuid=="function"?process.getuid():0,e=process.env.XDG_RUNTIME_DIR;if(e&&Vt(e))return{path:He(e,`tokmizer-${t}.sock`),isPipe:!1};let r=He(A(),"run");try{Ps(r,{recursive:!0,mode:448}),$s(r,448)}catch{}return{path:He(r,"daemon.sock"),isPipe:!1}}async function Ut(){let{path:t,isPipe:e}=Me();if(e||!Vt(t))return;try{if(!Is(t).isSocket())return}catch{return}let r=await import("node:net");if(!await new Promise(s=>{let i=r.createConnection(t),a=o=>{i.removeAllListeners();try{i.destroy()}catch{}s(o)};i.once("connect",()=>a(!0)),i.once("error",o=>{let c=o.code;a(c!=="ECONNREFUSED"&&c!=="ENOENT")}),setTimeout(()=>a(!0),250)}))try{Ns(t)}catch{}}var Ao=5*6e4;var Bs=500,Vs=3e3,Gt=1;async function Us(t,e){return new Promise((r,n)=>{let s=Ms(t),i=o=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(a),o){try{s.destroy()}catch{}n(o)}else r(s)},a=setTimeout(()=>i(new Error("connect timeout")),e);s.once("connect",()=>i(null)),s.once("error",o=>i(o))})}function Ks(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Zs(new URL("../bin/tkr-daemon.js",import.meta.url))}async function qt(t,e=3e3){let r=Math.ceil(e/75);for(let n=0;n<r;n++){if(Jt(t))return!0;await new Promise(s=>setTimeout(s,75))}return!1}async function Hs(t){let e=Ks();if(!Jt(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=Me(),n=zs(Fs(r),"daemon.spawn.lock"),s=null;try{s=Kt(n,"wx"),Wt(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await qt(r,5e3))return;try{Ht(n)}catch{}s=Kt(n,"wx"),Wt(s,String(process.pid))}else throw i}try{if(js(process.execPath,[e],{detached:!0,stdio:["ignore","ignore","ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),!await qt(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{Ls(s)}catch{}try{Ht(n)}catch{}}}}async function Yt(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:Me(),r=await Nt(),n=null,s=0;for(;s<=Gt;)try{n=await Us(e,Bs);break}catch{if(s+=1,s>Gt)throw new Error(`tkr-daemon unreachable at ${e}`);await Ut(),await Hs(r)}if(!n)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";n.setEncoding("utf8"),n.on("data",c=>{a+=c;let l=-1;for(let b=0;b<a.length;b++)a[b]===Pe&&(l=b);if(l<0)return;let y=[];for(let b of Bt(a.slice(0,l+1)))y.push(b);a=a.slice(l+1);for(let b of y)if(b)try{let Z=JSON.parse(b),M=i.get(Z.id);if(!M)continue;clearTimeout(M.timer),i.delete(Z.id),M.resolve(Z)}catch{}}),n.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),n.on("error",()=>{});function o(c){return new Promise((l,y)=>{let b=setTimeout(()=>{i.delete(c.id),y(new Error(`daemon request timeout (${c.op})`))},Vs);i.set(c.id,{resolve:l,reject:y,timer:b}),n.write(Zt(c))})}return{filter:async(c,l)=>{let y=await o({id:$e(),op:"filter",cmd:c.slice(0,2048),plan:l,installId:r});if(!y.ok)return null;let b=zt.safeParse(y.data);return b.success?b.data.filter:null},ping:async()=>{let c=await o({id:$e(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await o({id:$e(),op:"reload",installId:r});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{n.end()}catch{}}}}var _e=null,we=null;async function Ws(){return _e||we||(we=Yt().then(t=>(_e=t,t)).catch(()=>null),we)}function Gs(t){return t?{...t,matchRegex:new RegExp(t.match_command)}:null}function Xt(t){ze(async(e,r)=>{let n=await Ws();if(!n)return null;try{let s=t==="free"?"trial":t,i=await n.filter(e,s);return!i||!(r??Ie(void 0)).has(i.slug)?null:Gs(i)}catch{return null}})}function Qt(){if(ze(null),_e){try{_e.close()}catch{}_e=null,we=null}}var qs=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function Js(t){if(t.event!=="after_tool_call")return{action:"continue"};if(!qs.has(t.tool))return{action:"continue"};if(t.exit_code!==0)return{action:"continue"};let e=t.command??(t.args??[]).join(" ");if(!e)return{action:"continue"};let r=t.stdout??"";if(!r)return{action:"continue"};let n=t.stderr??"",s=await It();if(!s.enabled)return{action:"continue"};let i=await Ve();if(!i||!i.token)return{action:"continue"};let a=Dt(i);Xt(a);let o=Ie(i.allowedFilters,Ue(i)),c;try{c=await St(e,r,o,{exitCode:t.exit_code})}finally{Qt()}return c.filteredBytes>=c.rawBytes?{action:"continue"}:(Ft(c.rawBytes,c.filteredBytes),await Lt({cmd:e,filterId:c.filterId,rawBytes:c.rawBytes,filteredBytes:c.filteredBytes,plan:a}),await jt({cmd:e,tokensSaved:Math.round((c.rawBytes-c.filteredBytes)/4),optimized:c.filterId!=null,telemetryOptIn:s.telemetryOptIn}),{action:"replace_output",replacement:n?`${c.output}
11
+ ${n}`:c.output,reason:"tokmizer"})}async function er(){let t=await At();if(!t){process.stdout.write(JSON.stringify({action:"continue"}));return}let e;try{e=JSON.parse(t)}catch{process.stdout.write(JSON.stringify({action:"continue"}));return}try{let r=await Js(e);process.stdout.write(JSON.stringify(r))}catch(r){process.stderr.write(`tkr-codex: ${r.message}
12
+ `),process.stdout.write(JSON.stringify({action:"continue"}))}}er().catch(t=>{process.stderr.write(`tkr-codex-hook: ${t.message}
13
+ `),process.stdout.write(JSON.stringify({action:"continue"})),process.exit(0)});