open-mem 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -14
- package/dist/ai/compressor.d.ts +6 -3
- package/dist/ai/compressor.d.ts.map +1 -1
- package/dist/ai/provider.d.ts +13 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/summarizer.d.ts +5 -2
- package/dist/ai/summarizer.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +50 -67
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -35,18 +35,35 @@ That's it. open-mem starts capturing from your next OpenCode session.
|
|
|
35
35
|
|
|
36
36
|
### Enable AI Compression (Optional)
|
|
37
37
|
|
|
38
|
-
For intelligent compression of observations
|
|
38
|
+
For intelligent compression of observations, configure an AI provider:
|
|
39
39
|
|
|
40
|
+
**Anthropic (default):**
|
|
40
41
|
```bash
|
|
41
42
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
42
43
|
```
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
**AWS Bedrock:**
|
|
46
|
+
```bash
|
|
47
|
+
export OPEN_MEM_PROVIDER=bedrock
|
|
48
|
+
export OPEN_MEM_MODEL=us.anthropic.claude-sonnet-4-20250514-v1:0
|
|
49
|
+
# Uses AWS credentials from environment (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY or AWS_PROFILE)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**OpenAI** (requires `bun add @ai-sdk/openai`):
|
|
53
|
+
```bash
|
|
54
|
+
export OPEN_MEM_PROVIDER=openai
|
|
55
|
+
export OPENAI_API_KEY=sk-...
|
|
56
|
+
export OPEN_MEM_MODEL=gpt-4o
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Auto-detection:** If no API key or provider is set but AWS credentials are present, open-mem automatically uses Bedrock.
|
|
60
|
+
|
|
61
|
+
Without any provider configured, open-mem still works — it falls back to a basic metadata extractor that captures tool names, file paths, and output snippets.
|
|
45
62
|
|
|
46
63
|
## Key Features
|
|
47
64
|
|
|
48
65
|
- 🧠 **Automatic observation capture** from tool executions
|
|
49
|
-
- 🤖 **AI-powered compression**
|
|
66
|
+
- 🤖 **AI-powered compression** via Vercel AI SDK — supports Anthropic, AWS Bedrock, OpenAI, Google (optional — works without API key)
|
|
50
67
|
- 🔍 **SQLite + FTS5** full-text search for fast retrieval
|
|
51
68
|
- 💡 **Progressive disclosure** with token-cost-aware context injection
|
|
52
69
|
- 🔒 **Privacy controls** with `<private>` tag support
|
|
@@ -70,7 +87,7 @@ open-mem runs in the background as an OpenCode plugin. When you use tools (readi
|
|
|
70
87
|
│ session.idle ─────────> [Queue Processor] │
|
|
71
88
|
│ │ │
|
|
72
89
|
│ v │
|
|
73
|
-
│ [AI Compressor] ───>
|
|
90
|
+
│ [AI Compressor] ───> AI Provider │
|
|
74
91
|
│ │ │
|
|
75
92
|
│ v │
|
|
76
93
|
│ [SQLite + FTS5] │
|
|
@@ -90,7 +107,7 @@ When you use tools in OpenCode (reading files, running commands, editing code),
|
|
|
90
107
|
|
|
91
108
|
### AI Compression
|
|
92
109
|
|
|
93
|
-
On `session.idle`, the queue processor batches pending observations and sends them to
|
|
110
|
+
On `session.idle`, the queue processor batches pending observations and sends them to the configured AI provider for semantic compression. Each raw tool output is distilled into a structured observation with:
|
|
94
111
|
|
|
95
112
|
- Type classification (decision, bugfix, feature, refactor, discovery, change)
|
|
96
113
|
- Title and narrative summary
|
|
@@ -98,7 +115,7 @@ On `session.idle`, the queue processor batches pending observations and sends th
|
|
|
98
115
|
- Concepts/tags for search
|
|
99
116
|
- Files involved
|
|
100
117
|
|
|
101
|
-
If no
|
|
118
|
+
If no API key is set, a fallback compressor extracts basic metadata without AI.
|
|
102
119
|
|
|
103
120
|
### Progressive Disclosure
|
|
104
121
|
|
|
@@ -165,7 +182,9 @@ open-mem works out of the box with zero configuration. All settings can be custo
|
|
|
165
182
|
|
|
166
183
|
| Variable | Default | Description |
|
|
167
184
|
|----------|---------|-------------|
|
|
168
|
-
| `
|
|
185
|
+
| `OPEN_MEM_PROVIDER` | `anthropic` | AI provider: `anthropic`, `bedrock`, `openai`, `google` |
|
|
186
|
+
| `ANTHROPIC_API_KEY` | — | API key for Anthropic provider |
|
|
187
|
+
| `OPENAI_API_KEY` | — | API key for OpenAI provider |
|
|
169
188
|
| `OPEN_MEM_DB_PATH` | `.open-mem/memory.db` | Path to SQLite database |
|
|
170
189
|
| `OPEN_MEM_MODEL` | `claude-sonnet-4-20250514` | Model for AI compression |
|
|
171
190
|
| `OPEN_MEM_MAX_CONTEXT_TOKENS` | `4000` | Token budget for injected context |
|
|
@@ -188,8 +207,9 @@ If you need to configure open-mem programmatically (e.g. for testing or custom i
|
|
|
188
207
|
| Option | Type | Default | Description |
|
|
189
208
|
|--------|------|---------|-------------|
|
|
190
209
|
| `dbPath` | string | `.open-mem/memory.db` | SQLite database file path |
|
|
191
|
-
| `
|
|
192
|
-
| `
|
|
210
|
+
| `provider` | string | `anthropic` | AI provider: `anthropic`, `bedrock`, `openai`, `google` |
|
|
211
|
+
| `apiKey` | string | `undefined` | Provider API key |
|
|
212
|
+
| `model` | string | `claude-sonnet-4-20250514` | Model for compression |
|
|
193
213
|
| `maxTokensPerCompression` | number | `1024` | Max tokens per compression response |
|
|
194
214
|
| `compressionEnabled` | boolean | `true` | Enable AI compression |
|
|
195
215
|
| `contextInjectionEnabled` | boolean | `true` | Enable context injection |
|
|
@@ -212,9 +232,9 @@ If you need to configure open-mem programmatically (e.g. for testing or custom i
|
|
|
212
232
|
|
|
213
233
|
All data is stored locally in your project's `.open-mem/` directory. No data leaves your machine except when AI compression is enabled.
|
|
214
234
|
|
|
215
|
-
###
|
|
235
|
+
### AI Provider
|
|
216
236
|
|
|
217
|
-
When AI compression is enabled, tool outputs are sent to
|
|
237
|
+
When AI compression is enabled, tool outputs are sent to the configured AI provider for compression. Disable with `OPEN_MEM_COMPRESSION=false` to keep everything fully local.
|
|
218
238
|
|
|
219
239
|
### Automatic Redaction
|
|
220
240
|
|
|
@@ -227,7 +247,7 @@ open-mem automatically redacts common sensitive patterns before storage:
|
|
|
227
247
|
|
|
228
248
|
### `<private>` Tags
|
|
229
249
|
|
|
230
|
-
Wrap any content in `<private>...</private>` tags to exclude it from memory entirely. Private blocks are stripped before observation capture — they never reach the database or the
|
|
250
|
+
Wrap any content in `<private>...</private>` tags to exclude it from memory entirely. Private blocks are stripped before observation capture — they never reach the database or the AI provider.
|
|
231
251
|
|
|
232
252
|
```
|
|
233
253
|
<private>
|
|
@@ -245,12 +265,17 @@ echo '.open-mem/' >> .gitignore
|
|
|
245
265
|
|
|
246
266
|
## Troubleshooting
|
|
247
267
|
|
|
248
|
-
### "AI compression enabled but no
|
|
268
|
+
### "AI compression enabled but no API key found"
|
|
249
269
|
|
|
250
|
-
This is a warning, not an error. open-mem works without an API key — it falls back to a basic metadata extractor. To enable AI compression:
|
|
270
|
+
This is a warning, not an error. open-mem works without an API key — it falls back to a basic metadata extractor. To enable AI compression, configure a provider:
|
|
251
271
|
|
|
252
272
|
```bash
|
|
273
|
+
# Anthropic (default)
|
|
253
274
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
275
|
+
|
|
276
|
+
# Or use AWS Bedrock (no API key needed, uses AWS credentials)
|
|
277
|
+
export OPEN_MEM_PROVIDER=bedrock
|
|
278
|
+
export OPEN_MEM_MODEL=us.anthropic.claude-sonnet-4-20250514-v1:0
|
|
254
279
|
```
|
|
255
280
|
|
|
256
281
|
### Database errors
|
package/dist/ai/compressor.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { generateText } from "ai";
|
|
1
2
|
import { type ParsedObservation } from "./parser";
|
|
2
3
|
export interface CompressorConfig {
|
|
4
|
+
provider: string;
|
|
3
5
|
apiKey: string | undefined;
|
|
4
6
|
model: string;
|
|
5
7
|
maxTokensPerCompression: number;
|
|
@@ -8,12 +10,13 @@ export interface CompressorConfig {
|
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Compresses raw tool output into structured observations using the
|
|
11
|
-
*
|
|
12
|
-
* when the
|
|
13
|
+
* Vercel AI SDK. Falls back to a heuristic-based observation
|
|
14
|
+
* when the AI provider is unavailable or disabled.
|
|
13
15
|
*/
|
|
14
16
|
export declare class ObservationCompressor {
|
|
15
|
-
private
|
|
17
|
+
private model;
|
|
16
18
|
private config;
|
|
19
|
+
_generate: typeof generateText;
|
|
17
20
|
constructor(config: CompressorConfig);
|
|
18
21
|
/** Maximum input characters sent to the API (~12.5K tokens) */
|
|
19
22
|
static readonly MAX_INPUT_LENGTH = 50000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../src/ai/compressor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../src/ai/compressor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,UAAU,CAAC;AAQ5E,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACxB;AAMD;;;;GAIG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAmB;IAGjC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,gBAAgB;IAsBpC,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAU;IAE1C;;;;OAIG;IACG,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA4CpC;;;OAGG;IACG,aAAa,CAClB,KAAK,EAAE,aAAa,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,GACA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAqBjD;;;OAGG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAqB5E,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAarC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LanguageModel } from "ai";
|
|
2
|
+
export type ProviderType = "anthropic" | "bedrock" | "openai" | "google" | string;
|
|
3
|
+
export interface ModelConfig {
|
|
4
|
+
provider: ProviderType;
|
|
5
|
+
model: string;
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Create a LanguageModel instance for the given provider.
|
|
10
|
+
* Uses dynamic require() so provider packages not installed don't crash at import time.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createModel(config: ModelConfig): LanguageModel;
|
|
13
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElF,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CA6B9D"}
|
package/dist/ai/summarizer.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { generateText } from "ai";
|
|
1
2
|
import type { Observation } from "../types";
|
|
2
3
|
import { type ParsedSummary } from "./parser";
|
|
3
4
|
export interface SummarizerConfig {
|
|
5
|
+
provider: string;
|
|
4
6
|
apiKey: string | undefined;
|
|
5
7
|
model: string;
|
|
6
8
|
maxTokensPerCompression: number;
|
|
@@ -11,11 +13,12 @@ export interface SummarizerConfig {
|
|
|
11
13
|
* Falls back to a heuristic aggregation when the API is unavailable.
|
|
12
14
|
*/
|
|
13
15
|
export declare class SessionSummarizer {
|
|
14
|
-
private
|
|
16
|
+
private model;
|
|
15
17
|
private config;
|
|
18
|
+
_generate: typeof generateText;
|
|
16
19
|
constructor(config: SummarizerConfig);
|
|
17
20
|
/**
|
|
18
|
-
* Summarize a session's observations via the
|
|
21
|
+
* Summarize a session's observations via the AI provider.
|
|
19
22
|
* Returns `null` for empty observation lists, falls back to heuristic
|
|
20
23
|
* summary when the API is disabled or errors out.
|
|
21
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizer.d.ts","sourceRoot":"","sources":["../../src/ai/summarizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"summarizer.d.ts","sourceRoot":"","sources":["../../src/ai/summarizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,UAAU,CAAC;AAQpE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;CAC5B;AAMD;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAmB;IAGjC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,gBAAgB;IAsBpC;;;;OAIG;IACG,SAAS,CACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,GACtC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsChC;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa;IAqC9E,yEAAyE;IACzE,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO;CAGlD"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,SAAS,CAAC;AA2F9D;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAChC,aAAa,CAyCf;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAuB9D;AAMD,8CAA8C;AAC9C,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAED,2CAA2C;AAC3C,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E"}
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
`,"\r"]);J$.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function zX($,W){for(let J=W??0;J<$.length;J++){if($[J]===10)return{preceding:J,index:J+1,carriage:!1};if($[J]===13)return{preceding:J,index:J+1,carriage:!0}}return null}function i8($){for(let G=0;G<$.length-1;G++){if($[G]===10&&$[G+1]===10)return G+2;if($[G]===13&&$[G+1]===13)return G+2;if($[G]===13&&$[G+1]===10&&G+3<$.length&&$[G+2]===13&&$[G+3]===10)return G+4}return-1}function s$($){if($[Symbol.asyncIterator])return $;let W=$.getReader();return{async next(){try{let X=await W.read();if(X?.done)W.releaseLock();return X}catch(X){throw W.releaseLock(),X}},async return(){let X=W.cancel();return W.releaseLock(),await X,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class g{constructor($,W){this.iterator=$,this.controller=W}static fromSSEResponse($,W){let X=!1;async function*G(){if(X)throw Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");X=!0;let J=!1;try{for await(let Y of HX($,W)){if(Y.event==="completion")try{yield JSON.parse(Y.data)}catch(Q){throw console.error("Could not parse message into JSON:",Y.data),console.error("From chunk:",Y.raw),Q}if(Y.event==="message_start"||Y.event==="message_delta"||Y.event==="message_stop"||Y.event==="content_block_start"||Y.event==="content_block_delta"||Y.event==="content_block_stop")try{yield JSON.parse(Y.data)}catch(Q){throw console.error("Could not parse message into JSON:",Y.data),console.error("From chunk:",Y.raw),Q}if(Y.event==="ping")continue;if(Y.event==="error")throw C.generate(void 0,`SSE Error: ${Y.data}`,Y.data,B8($.headers))}J=!0}catch(Y){if(Y instanceof Error&&Y.name==="AbortError")return;throw Y}finally{if(!J)W.abort()}}return new g(G,W)}static fromReadableStream($,W){let X=!1;async function*G(){let Y=new J$,Q=s$($);for await(let z of Q)for(let H of Y.decode(z))yield H;for(let z of Y.flush())yield z}async function*J(){if(X)throw Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");X=!0;let Y=!1;try{for await(let Q of G()){if(Y)continue;if(Q)yield JSON.parse(Q)}Y=!0}catch(Q){if(Q instanceof Error&&Q.name==="AbortError")return;throw Q}finally{if(!Y)W.abort()}}return new g(J,W)}[Symbol.asyncIterator](){return this.iterator()}tee(){let $=[],W=[],X=this.iterator(),G=(J)=>{return{next:()=>{if(J.length===0){let Y=X.next();$.push(Y),W.push(Y)}return J.shift()}}};return[new g(()=>G($),this.controller),new g(()=>G(W),this.controller)]}toReadableStream(){let $=this,W,X=new TextEncoder;return new V8({async start(){W=$[Symbol.asyncIterator]()},async pull(G){try{let{value:J,done:Y}=await W.next();if(Y)return G.close();let Q=X.encode(JSON.stringify(J)+`
|
|
5
|
-
`);G.enqueue(Q)}catch(J){G.error(J)}},async cancel(){await W.return?.()}})}}async function*HX($,W){if(!$.body)throw W.abort(),new K("Attempted to iterate over a response with no body");let X=new n8,G=new J$,J=s$($.body);for await(let Y of VX(J))for(let Q of G.decode(Y)){let z=X.decode(Q);if(z)yield z}for(let Y of G.flush()){let Q=X.decode(Y);if(Q)yield Q}}async function*VX($){let W=new Uint8Array;for await(let X of $){if(X==null)continue;let G=X instanceof ArrayBuffer?new Uint8Array(X):typeof X==="string"?new TextEncoder().encode(X):X,J=new Uint8Array(W.length+G.length);J.set(W),J.set(G,W.length),W=J;let Y;while((Y=i8(W))!==-1)yield W.slice(0,Y),W=W.slice(Y)}if(W.length>0)yield W}class n8{constructor(){this.event=null,this.data=[],this.chunks=[]}decode($){if($.endsWith("\r"))$=$.substring(0,$.length-1);if(!$){if(!this.event&&!this.data.length)return null;let J={event:this.event,data:this.data.join(`
|
|
6
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],J}if(this.chunks.push($),$.startsWith(":"))return null;let[W,X,G]=qX($,":");if(G.startsWith(" "))G=G.substring(1);if(W==="event")this.event=G;else if(W==="data")this.data.push(G);return null}}function qX($,W){let X=$.indexOf(W);if(X!==-1)return[$.substring(0,X),W,$.substring(X+W.length)];return[$,"",""]}var _X=($)=>$!=null&&typeof $==="object"&&typeof $.url==="string"&&typeof $.blob==="function",BX=($)=>$!=null&&typeof $==="object"&&typeof $.name==="string"&&typeof $.lastModified==="number"&&e$($),e$=($)=>$!=null&&typeof $==="object"&&typeof $.size==="number"&&typeof $.type==="string"&&typeof $.text==="function"&&typeof $.slice==="function"&&typeof $.arrayBuffer==="function";async function a8($,W,X){if($=await $,BX($))return $;if(_X($)){let J=await $.blob();W||(W=new URL($.url).pathname.split(/[\\/]/).pop()??"unknown_file");let Y=e$(J)?[await J.arrayBuffer()]:[J];return new R0(Y,W,X)}let G=await MX($);if(W||(W=NX($)??"unknown_file"),!X?.type){let J=G[0]?.type;if(typeof J==="string")X={...X,type:J}}return new R0(G,W,X)}async function MX($){let W=[];if(typeof $==="string"||ArrayBuffer.isView($)||$ instanceof ArrayBuffer)W.push($);else if(e$($))W.push(await $.arrayBuffer());else if(KX($))for await(let X of $)W.push(X);else throw Error(`Unexpected data type: ${typeof $}; constructor: ${$?.constructor?.name}; props: ${UX($)}`);return W}function UX($){return`[${Object.getOwnPropertyNames($).map((X)=>`"${X}"`).join(", ")}]`}function NX($){return M8($.name)||M8($.filename)||M8($.path)?.split(/[\\/]/).pop()}var M8=($)=>{if(typeof $==="string")return $;if(typeof Buffer<"u"&&$ instanceof Buffer)return String($);return},KX=($)=>$!=null&&typeof $==="object"&&typeof $[Symbol.asyncIterator]==="function",U8=($)=>$&&typeof $==="object"&&$.body&&$[Symbol.toStringTag]==="MultipartBody";var wX=function($,W,X,G,J){if(G==="m")throw TypeError("Private method is not writable");if(G==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof W==="function"?$!==W||!J:!W.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return G==="a"?J.call($,X):J?J.value=X:W.set($,X),X},DX=function($,W,X,G){if(X==="a"&&!G)throw TypeError("Private accessor was defined without a getter");if(typeof W==="function"?$!==W||!G:!W.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?G:X==="a"?G.call($):G?G.value:W.get($)},g0;async function e8($){let{response:W}=$;if($.options.stream){if(A$("response",W.status,W.url,W.headers,W.body),$.options.__streamClass)return $.options.__streamClass.fromSSEResponse(W,$.controller);return g.fromSSEResponse(W,$.controller)}if(W.status===204)return null;if($.options.__binaryResponse)return W;let X=W.headers.get("content-type");if(X?.includes("application/json")||X?.includes("application/vnd.api+json")){let Y=await W.json();return A$("response",W.status,W.url,W.headers,Y),$W(Y,W)}let J=await W.text();return A$("response",W.status,W.url,W.headers,J),J}function $W($,W){if(!$||typeof $!=="object"||Array.isArray($))return $;return Object.defineProperty($,"_request_id",{value:W.headers.get("request-id"),enumerable:!1})}class h0 extends Promise{constructor($,W=e8){super((X)=>{X(null)});this.responsePromise=$,this.parseResponse=W}_thenUnwrap($){return new h0(this.responsePromise,async(W)=>$W($(await this.parseResponse(W),W),W.response))}asResponse(){return this.responsePromise.then(($)=>$.response)}async withResponse(){let[$,W]=await Promise.all([this.parse(),this.asResponse()]);return{data:$,response:W,request_id:W.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then($,W){return this.parse().then($,W)}catch($){return this.parse().catch($)}finally($){return this.parse().finally($)}}class K8{constructor({baseURL:$,maxRetries:W=2,timeout:X=600000,httpAgent:G,fetch:J}){this.baseURL=$,this.maxRetries=N8("maxRetries",W),this.timeout=N8("timeout",X),this.httpAgent=G,this.fetch=J??H8}authHeaders($){return{}}defaultHeaders($){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...SX(),...this.authHeaders($)}}validateHeaders($,W){}defaultIdempotencyKey(){return`stainless-node-retry-${fX()}`}get($,W){return this.methodRequest("get",$,W)}post($,W){return this.methodRequest("post",$,W)}patch($,W){return this.methodRequest("patch",$,W)}put($,W){return this.methodRequest("put",$,W)}delete($,W){return this.methodRequest("delete",$,W)}methodRequest($,W,X){return this.request(Promise.resolve(X).then(async(G)=>{let J=G&&e$(G?.body)?new DataView(await G.body.arrayBuffer()):G?.body instanceof DataView?G.body:G?.body instanceof ArrayBuffer?new DataView(G.body):G&&ArrayBuffer.isView(G?.body)?new DataView(G.body.buffer):G?.body;return{method:$,path:W,...G,body:J}}))}getAPIList($,W,X){return this.requestAPIList(W,{method:"get",path:$,...X})}calculateContentLength($){if(typeof $==="string"){if(typeof Buffer<"u")return Buffer.byteLength($,"utf8").toString();if(typeof TextEncoder<"u")return new TextEncoder().encode($).length.toString()}else if(ArrayBuffer.isView($))return $.byteLength.toString();return null}buildRequest($,{retryCount:W=0}={}){$={...$};let{method:X,path:G,query:J,headers:Y={}}=$,Q=ArrayBuffer.isView($.body)||$.__binaryRequest&&typeof $.body==="string"?$.body:U8($.body)?$.body.body:$.body?JSON.stringify($.body,null,2):null,z=this.calculateContentLength(Q),H=this.buildURL(G,J);if("timeout"in $)N8("timeout",$.timeout);$.timeout=$.timeout??this.timeout;let q=$.httpAgent??this.httpAgent??q8(H),O=$.timeout+1000;if(typeof q?.options?.timeout==="number"&&O>(q.options.timeout??0))q.options.timeout=O;if(this.idempotencyHeader&&X!=="get"){if(!$.idempotencyKey)$.idempotencyKey=this.defaultIdempotencyKey();Y[this.idempotencyHeader]=$.idempotencyKey}let R=this.buildHeaders({options:$,headers:Y,contentLength:z,retryCount:W});return{req:{method:X,...Q&&{body:Q},headers:R,...q&&{agent:q},signal:$.signal??null},url:H,timeout:$.timeout}}buildHeaders({options:$,headers:W,contentLength:X,retryCount:G}){let J={};if(X)J["content-length"]=X;let Y=this.defaultHeaders($);if(s8(J,Y),s8(J,W),U8($.body)&&N$!=="node")delete J["content-type"];if(y0(Y,"x-stainless-retry-count")===void 0&&y0(W,"x-stainless-retry-count")===void 0)J["x-stainless-retry-count"]=String(G);if(y0(Y,"x-stainless-timeout")===void 0&&y0(W,"x-stainless-timeout")===void 0&&$.timeout)J["x-stainless-timeout"]=String($.timeout);return this.validateHeaders(J,W),J}_calculateNonstreamingTimeout($){if(3600*$/128000>600)throw new K("Streaming is strongly recommended for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#streaming-responses for more details");return 600000}async prepareOptions($){}async prepareRequest($,{url:W,options:X}){}parseHeaders($){return!$?{}:(Symbol.iterator in $)?Object.fromEntries(Array.from($).map((W)=>[...W])):{...$}}makeStatusError($,W,X,G){return C.generate($,W,X,G)}request($,W=null){return new h0(this.makeRequest($,W))}async makeRequest($,W){let X=await $,G=X.maxRetries??this.maxRetries;if(W==null)W=G;await this.prepareOptions(X);let{req:J,url:Y,timeout:Q}=this.buildRequest(X,{retryCount:G-W});if(await this.prepareRequest(J,{url:Y,options:X}),A$("request",Y,X,J.headers),X.signal?.aborted)throw new k;let z=new AbortController,H=await this.fetchWithTimeout(Y,J,Q,z).catch(Z0);if(H instanceof Error){if(X.signal?.aborted)throw new k;if(W)return this.retryRequest(X,W);if(H.name==="AbortError")throw new t$;throw new K$({cause:H})}let q=B8(H.headers);if(!H.ok){if(W&&this.shouldRetry(H)){let Q8=`retrying, ${W} attempts remaining`;return A$(`response (error; ${Q8})`,H.status,Y,q),this.retryRequest(X,W,q)}let O=await H.text().catch((Q8)=>Z0(Q8).message),R=EX(O),l=R?void 0:O;throw A$(`response (error; ${W?"(error; no more retries left)":"(error; not retryable)"})`,H.status,Y,q,l),this.makeStatusError(H.status,R,l,q)}return{response:H,options:X,controller:z}}requestAPIList($,W){let X=this.makeRequest(W,null);return new WW(this,X,$)}buildURL($,W){let X=AX($)?new URL($):new URL(this.baseURL+(this.baseURL.endsWith("/")&&$.startsWith("/")?$.slice(1):$)),G=this.defaultQuery();if(!$0(G))W={...G,...W};if(typeof W==="object"&&W&&!Array.isArray(W))X.search=this.stringifyQuery(W);return X.toString()}stringifyQuery($){return Object.entries($).filter(([W,X])=>typeof X<"u").map(([W,X])=>{if(typeof X==="string"||typeof X==="number"||typeof X==="boolean")return`${encodeURIComponent(W)}=${encodeURIComponent(X)}`;if(X===null)return`${encodeURIComponent(W)}=`;throw new K(`Cannot stringify type ${typeof X}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout($,W,X,G){let{signal:J,...Y}=W||{};if(J)J.addEventListener("abort",()=>G.abort());let Q=setTimeout(()=>G.abort(),X),z={signal:G.signal,...Y};if(z.method)z.method=z.method.toUpperCase();let H=60000,q=setTimeout(()=>{if(z&&z?.agent?.sockets){for(let O of Object.values(z?.agent?.sockets).flat())if(O?.setKeepAlive)O.setKeepAlive(!0,H)}},H);return this.fetch.call(void 0,$,z).finally(()=>{clearTimeout(Q),clearTimeout(q)})}shouldRetry($){let W=$.headers.get("x-should-retry");if(W==="true")return!0;if(W==="false")return!1;if($.status===408)return!0;if($.status===409)return!0;if($.status===429)return!0;if($.status>=500)return!0;return!1}async retryRequest($,W,X){let G,J=X?.["retry-after-ms"];if(J){let Q=parseFloat(J);if(!Number.isNaN(Q))G=Q}let Y=X?.["retry-after"];if(Y&&!G){let Q=parseFloat(Y);if(!Number.isNaN(Q))G=Q*1000;else G=Date.parse(Y)-Date.now()}if(!(G&&0<=G&&G<60000)){let Q=$.maxRetries??this.maxRetries;G=this.calculateDefaultRetryTimeoutMillis(W,Q)}return await CX(G),this.makeRequest($,W-1)}calculateDefaultRetryTimeoutMillis($,W){let J=W-$,Y=Math.min(0.5*Math.pow(2,J),8),Q=1-Math.random()*0.25;return Y*Q*1000}getUserAgent(){return`${this.constructor.name}/JS ${U$}`}}class O8{constructor($,W,X,G){g0.set(this,void 0),wX(this,g0,$,"f"),this.options=G,this.response=W,this.body=X}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let $=this.nextPageInfo();if(!$)throw new K("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let W={...this.options};if("params"in $&&typeof W.query==="object")W.query={...W.query,...$.params};else if("url"in $){let X=[...Object.entries(W.query||{}),...$.url.searchParams.entries()];for(let[G,J]of X)$.url.searchParams.set(G,J);W.query=void 0,W.path=$.url.toString()}return await DX(this,g0,"f").requestAPIList(this.constructor,W)}async*iterPages(){let $=this;yield $;while($.hasNextPage())$=await $.getNextPage(),yield $}async*[(g0=new WeakMap,Symbol.asyncIterator)](){for await(let $ of this.iterPages())for(let W of $.getPaginatedItems())yield W}}class WW extends h0{constructor($,W,X){super(W,async(G)=>new X($,G.response,await e8(G),G.options))}async*[Symbol.asyncIterator](){let $=await this;for await(let W of $)yield W}}var B8=($)=>{return new Proxy(Object.fromEntries($.entries()),{get(W,X){let G=X.toString();return W[G.toLowerCase()]||W[G]}})},LX={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},y=($)=>{return typeof $==="object"&&$!==null&&!$0($)&&Object.keys($).every((W)=>XW(LX,W))},FX=()=>{if(typeof Deno<"u"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":U$,"X-Stainless-OS":r8(Deno.build.os),"X-Stainless-Arch":o8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":U$,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":U$,"X-Stainless-OS":r8(process.platform),"X-Stainless-Arch":o8(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let $=jX();if($)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":U$,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${$.browser}`,"X-Stainless-Runtime-Version":$.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":U$,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function jX(){if(typeof navigator>"u"||!navigator)return null;let $=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:W,pattern:X}of $){let G=X.exec(navigator.userAgent);if(G){let J=G[1]||0,Y=G[2]||0,Q=G[3]||0;return{browser:W,version:`${J}.${Y}.${Q}`}}}return null}var o8=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},r8=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},t8,SX=()=>{return t8??(t8=FX())},EX=($)=>{try{return JSON.parse($)}catch(W){return}},RX=/^[a-z][a-z0-9+.-]*:/i,AX=($)=>{return RX.test($)},CX=($)=>new Promise((W)=>setTimeout(W,$)),N8=($,W)=>{if(typeof W!=="number"||!Number.isInteger(W))throw new K(`${$} must be an integer`);if(W<0)throw new K(`${$} must be a positive integer`);return W},Z0=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null)try{return Error(JSON.stringify($))}catch{}return Error(String($))};var m0=($)=>{if(typeof process<"u")return process.env?.[$]?.trim()??void 0;if(typeof Deno<"u")return Deno.env?.get?.($)?.trim();return};function $0($){if(!$)return!0;for(let W in $)return!1;return!0}function XW($,W){return Object.prototype.hasOwnProperty.call($,W)}function s8($,W){for(let X in W){if(!XW(W,X))continue;let G=X.toLowerCase();if(!G)continue;let J=W[X];if(J===null)delete $[G];else if(J!==void 0)$[G]=J}}function A$($,...W){if(typeof process<"u"&&process?.env?.DEBUG==="true")console.log(`Anthropic:DEBUG:${$}`,...W)}var fX=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,($)=>{let W=Math.random()*16|0;return($==="x"?W:W&3|8).toString(16)})},GW=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"},TX=($)=>{return typeof $?.get==="function"};var y0=($,W)=>{let X=W.toLowerCase();if(TX($)){let G=W[0]?.toUpperCase()+W.substring(1).replace(/([^\w])(\w)/g,(J,Y,Q)=>Y+Q.toUpperCase());for(let J of[W,X,W.toUpperCase(),G]){let Y=$.get(J);if(Y)return Y}}for(let[G,J]of Object.entries($))if(G.toLowerCase()===X){if(Array.isArray(J)){if(J.length<=1)return J[0];return console.warn(`Received ${J.length} entries for the ${W} header, using the first entry.`),J[0]}return J}return};class t extends O8{constructor($,W,X,G){super($,W,X,G);this.data=X.data||[],this.has_more=X.has_more||!1,this.first_id=X.first_id||null,this.last_id=X.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let $=this.nextPageInfo();if(!$)return null;if("params"in $)return $.params;let W=Object.fromEntries($.url.searchParams);if(!Object.keys(W).length)return null;return W}nextPageInfo(){if(this.options.query?.before_id){let W=this.first_id;if(!W)return null;return{params:{before_id:W}}}let $=this.last_id;if(!$)return null;return{params:{after_id:$}}}}class T{constructor($){this._client=$}}class C$ extends T{retrieve($,W){return this._client.get(`/v1/models/${$}?beta=true`,W)}list($={},W){if(y($))return this.list({},$);return this._client.getAPIList("/v1/models?beta=true",W0,{query:$,...W})}}class W0 extends t{}C$.BetaModelInfosPage=W0;class f${constructor($,W){this.iterator=$,this.controller=W}async*decoder(){let $=new J$;for await(let W of this.iterator)for(let X of $.decode(W))yield JSON.parse(X);for(let W of $.flush())yield JSON.parse(W)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse($,W){if(!$.body)throw W.abort(),new K("Attempted to iterate over a response with no body");return new f$(s$($.body),W)}}class T$ extends T{create($,W){let{betas:X,...G}=$;return this._client.post("/v1/messages/batches?beta=true",{body:G,...W,headers:{"anthropic-beta":[...X??[],"message-batches-2024-09-24"].toString(),...W?.headers}})}retrieve($,W={},X){if(y(W))return this.retrieve($,{},W);let{betas:G}=W;return this._client.get(`/v1/messages/batches/${$}?beta=true`,{...X,headers:{"anthropic-beta":[...G??[],"message-batches-2024-09-24"].toString(),...X?.headers}})}list($={},W){if(y($))return this.list({},$);let{betas:X,...G}=$;return this._client.getAPIList("/v1/messages/batches?beta=true",X0,{query:G,...W,headers:{"anthropic-beta":[...X??[],"message-batches-2024-09-24"].toString(),...W?.headers}})}delete($,W={},X){if(y(W))return this.delete($,{},W);let{betas:G}=W;return this._client.delete(`/v1/messages/batches/${$}?beta=true`,{...X,headers:{"anthropic-beta":[...G??[],"message-batches-2024-09-24"].toString(),...X?.headers}})}cancel($,W={},X){if(y(W))return this.cancel($,{},W);let{betas:G}=W;return this._client.post(`/v1/messages/batches/${$}/cancel?beta=true`,{...X,headers:{"anthropic-beta":[...G??[],"message-batches-2024-09-24"].toString(),...X?.headers}})}async results($,W={},X){if(y(W))return this.results($,{},W);let G=await this.retrieve($);if(!G.results_url)throw new K(`No batch \`results_url\`; Has it finished processing? ${G.processing_status} - ${G.id}`);let{betas:J}=W;return this._client.get(G.results_url,{...X,headers:{"anthropic-beta":[...J??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary",...X?.headers},__binaryResponse:!0})._thenUnwrap((Y,Q)=>f$.fromResponse(Q.response,Q.controller))}}class X0 extends t{}T$.BetaMessageBatchesPage=X0;var bX=($)=>{let W=0,X=[];while(W<$.length){let G=$[W];if(G==="\\"){W++;continue}if(G==="{"){X.push({type:"brace",value:"{"}),W++;continue}if(G==="}"){X.push({type:"brace",value:"}"}),W++;continue}if(G==="["){X.push({type:"paren",value:"["}),W++;continue}if(G==="]"){X.push({type:"paren",value:"]"}),W++;continue}if(G===":"){X.push({type:"separator",value:":"}),W++;continue}if(G===","){X.push({type:"delimiter",value:","}),W++;continue}if(G==='"'){let z="",H=!1;G=$[++W];while(G!=='"'){if(W===$.length){H=!0;break}if(G==="\\"){if(W++,W===$.length){H=!0;break}z+=G+$[W],G=$[++W]}else z+=G,G=$[++W]}if(G=$[++W],!H)X.push({type:"string",value:z});continue}if(G&&/\s/.test(G)){W++;continue}let Y=/[0-9]/;if(G&&Y.test(G)||G==="-"||G==="."){let z="";if(G==="-")z+=G,G=$[++W];while(G&&Y.test(G)||G===".")z+=G,G=$[++W];X.push({type:"number",value:z});continue}let Q=/[a-z]/i;if(G&&Q.test(G)){let z="";while(G&&Q.test(G)){if(W===$.length)break;z+=G,G=$[++W]}if(z=="true"||z=="false"||z==="null")X.push({type:"name",value:z});else{W++;continue}continue}W++}return X},P$=($)=>{if($.length===0)return $;let W=$[$.length-1];switch(W.type){case"separator":return $=$.slice(0,$.length-1),P$($);break;case"number":let X=W.value[W.value.length-1];if(X==="."||X==="-")return $=$.slice(0,$.length-1),P$($);case"string":let G=$[$.length-2];if(G?.type==="delimiter")return $=$.slice(0,$.length-1),P$($);else if(G?.type==="brace"&&G.value==="{")return $=$.slice(0,$.length-1),P$($);break;case"delimiter":return $=$.slice(0,$.length-1),P$($);break}return $},xX=($)=>{let W=[];if($.map((X)=>{if(X.type==="brace")if(X.value==="{")W.push("}");else W.splice(W.lastIndexOf("}"),1);if(X.type==="paren")if(X.value==="[")W.push("]");else W.splice(W.lastIndexOf("]"),1)}),W.length>0)W.reverse().map((X)=>{if(X==="}")$.push({type:"brace",value:"}"});else if(X==="]")$.push({type:"paren",value:"]"})});return $},ZX=($)=>{let W="";return $.map((X)=>{switch(X.type){case"string":W+='"'+X.value+'"';break;default:W+=X.value;break}}),W},l0=($)=>JSON.parse(ZX(xX(P$(bX($)))));var I=function($,W,X,G,J){if(G==="m")throw TypeError("Private method is not writable");if(G==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof W==="function"?$!==W||!J:!W.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return G==="a"?J.call($,X):J?J.value=X:W.set($,X),X},D=function($,W,X,G){if(X==="a"&&!G)throw TypeError("Private accessor was defined without a getter");if(typeof W==="function"?$!==W||!G:!W.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?G:X==="a"?G.call($):G?G.value:W.get($)},h,Y$,G0,c0,J0,Y0,u0,Q0,s,z0,p0,d0,k$,i0,n0,w8,JW,D8,L8,F8,j8,YW,QW="__json_buf";class H0{constructor(){h.add(this),this.messages=[],this.receivedMessages=[],Y$.set(this,void 0),this.controller=new AbortController,G0.set(this,void 0),c0.set(this,()=>{}),J0.set(this,()=>{}),Y0.set(this,void 0),u0.set(this,()=>{}),Q0.set(this,()=>{}),s.set(this,{}),z0.set(this,!1),p0.set(this,!1),d0.set(this,!1),k$.set(this,!1),i0.set(this,void 0),n0.set(this,void 0),D8.set(this,($)=>{if(I(this,p0,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new k;if($ instanceof k)return I(this,d0,!0,"f"),this._emit("abort",$);if($ instanceof K)return this._emit("error",$);if($ instanceof Error){let W=new K($.message);return W.cause=$,this._emit("error",W)}return this._emit("error",new K(String($)))}),I(this,G0,new Promise(($,W)=>{I(this,c0,$,"f"),I(this,J0,W,"f")}),"f"),I(this,Y0,new Promise(($,W)=>{I(this,u0,$,"f"),I(this,Q0,W,"f")}),"f"),D(this,G0,"f").catch(()=>{}),D(this,Y0,"f").catch(()=>{})}get response(){return D(this,i0,"f")}get request_id(){return D(this,n0,"f")}async withResponse(){let $=await D(this,G0,"f");if(!$)throw Error("Could not resolve a `Response` object");return{data:this,response:$,request_id:$.headers.get("request-id")}}static fromReadableStream($){let W=new H0;return W._run(()=>W._fromReadableStream($)),W}static createMessage($,W,X){let G=new H0;for(let J of W.messages)G._addMessageParam(J);return G._run(()=>G._createMessage($,{...W,stream:!0},{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),G}_run($){$().then(()=>{this._emitFinal(),this._emit("end")},D(this,D8,"f"))}_addMessageParam($){this.messages.push($)}_addMessage($,W=!0){if(this.receivedMessages.push($),W)this._emit("message",$)}async _createMessage($,W,X){let G=X?.signal;if(G){if(G.aborted)this.controller.abort();G.addEventListener("abort",()=>this.controller.abort())}D(this,h,"m",L8).call(this);let{response:J,data:Y}=await $.create({...W,stream:!0},{...X,signal:this.controller.signal}).withResponse();this._connected(J);for await(let Q of Y)D(this,h,"m",F8).call(this,Q);if(Y.controller.signal?.aborted)throw new k;D(this,h,"m",j8).call(this)}_connected($){if(this.ended)return;I(this,i0,$,"f"),I(this,n0,$?.headers.get("request-id"),"f"),D(this,c0,"f").call(this,$),this._emit("connect")}get ended(){return D(this,z0,"f")}get errored(){return D(this,p0,"f")}get aborted(){return D(this,d0,"f")}abort(){this.controller.abort()}on($,W){return(D(this,s,"f")[$]||(D(this,s,"f")[$]=[])).push({listener:W}),this}off($,W){let X=D(this,s,"f")[$];if(!X)return this;let G=X.findIndex((J)=>J.listener===W);if(G>=0)X.splice(G,1);return this}once($,W){return(D(this,s,"f")[$]||(D(this,s,"f")[$]=[])).push({listener:W,once:!0}),this}emitted($){return new Promise((W,X)=>{if(I(this,k$,!0,"f"),$!=="error")this.once("error",X);this.once($,W)})}async done(){I(this,k$,!0,"f"),await D(this,Y0,"f")}get currentMessage(){return D(this,Y$,"f")}async finalMessage(){return await this.done(),D(this,h,"m",w8).call(this)}async finalText(){return await this.done(),D(this,h,"m",JW).call(this)}_emit($,...W){if(D(this,z0,"f"))return;if($==="end")I(this,z0,!0,"f"),D(this,u0,"f").call(this);let X=D(this,s,"f")[$];if(X)D(this,s,"f")[$]=X.filter((G)=>!G.once),X.forEach(({listener:G})=>G(...W));if($==="abort"){let G=W[0];if(!D(this,k$,"f")&&!X?.length)Promise.reject(G);D(this,J0,"f").call(this,G),D(this,Q0,"f").call(this,G),this._emit("end");return}if($==="error"){let G=W[0];if(!D(this,k$,"f")&&!X?.length)Promise.reject(G);D(this,J0,"f").call(this,G),D(this,Q0,"f").call(this,G),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",D(this,h,"m",w8).call(this))}async _fromReadableStream($,W){let X=W?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}D(this,h,"m",L8).call(this),this._connected(null);let G=g.fromReadableStream($,this.controller);for await(let J of G)D(this,h,"m",F8).call(this,J);if(G.controller.signal?.aborted)throw new k;D(this,h,"m",j8).call(this)}[(Y$=new WeakMap,G0=new WeakMap,c0=new WeakMap,J0=new WeakMap,Y0=new WeakMap,u0=new WeakMap,Q0=new WeakMap,s=new WeakMap,z0=new WeakMap,p0=new WeakMap,d0=new WeakMap,k$=new WeakMap,i0=new WeakMap,n0=new WeakMap,D8=new WeakMap,h=new WeakSet,w8=function(){if(this.receivedMessages.length===0)throw new K("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},JW=function(){if(this.receivedMessages.length===0)throw new K("stream ended without producing a Message with role=assistant");let W=this.receivedMessages.at(-1).content.filter((X)=>X.type==="text").map((X)=>X.text);if(W.length===0)throw new K("stream ended without producing a content block with type=text");return W.join(" ")},L8=function(){if(this.ended)return;I(this,Y$,void 0,"f")},F8=function(W){if(this.ended)return;let X=D(this,h,"m",YW).call(this,W);switch(this._emit("streamEvent",W,X),W.type){case"content_block_delta":{let G=X.content.at(-1);switch(W.delta.type){case"text_delta":{if(G.type==="text")this._emit("text",W.delta.text,G.text||"");break}case"citations_delta":{if(G.type==="text")this._emit("citation",W.delta.citation,G.citations??[]);break}case"input_json_delta":{if(G.type==="tool_use"&&G.input)this._emit("inputJson",W.delta.partial_json,G.input);break}case"thinking_delta":{if(G.type==="thinking")this._emit("thinking",W.delta.thinking,G.thinking);break}case"signature_delta":{if(G.type==="thinking")this._emit("signature",G.signature);break}default:zW(W.delta)}break}case"message_stop":{this._addMessageParam(X),this._addMessage(X,!0);break}case"content_block_stop":{this._emit("contentBlock",X.content.at(-1));break}case"message_start":{I(this,Y$,X,"f");break}case"content_block_start":case"message_delta":break}},j8=function(){if(this.ended)throw new K("stream has ended, this shouldn't happen");let W=D(this,Y$,"f");if(!W)throw new K("request ended without sending any chunks");return I(this,Y$,void 0,"f"),W},YW=function(W){let X=D(this,Y$,"f");if(W.type==="message_start"){if(X)throw new K(`Unexpected event order, got ${W.type} before receiving "message_stop"`);return W.message}if(!X)throw new K(`Unexpected event order, got ${W.type} before "message_start"`);switch(W.type){case"message_stop":return X;case"message_delta":return X.stop_reason=W.delta.stop_reason,X.stop_sequence=W.delta.stop_sequence,X.usage.output_tokens=W.usage.output_tokens,X;case"content_block_start":return X.content.push(W.content_block),X;case"content_block_delta":{let G=X.content.at(W.index);switch(W.delta.type){case"text_delta":{if(G?.type==="text")G.text+=W.delta.text;break}case"citations_delta":{if(G?.type==="text")G.citations??(G.citations=[]),G.citations.push(W.delta.citation);break}case"input_json_delta":{if(G?.type==="tool_use"){let J=G[QW]||"";if(J+=W.delta.partial_json,Object.defineProperty(G,QW,{value:J,enumerable:!1,writable:!0}),J)G.input=l0(J)}break}case"thinking_delta":{if(G?.type==="thinking")G.thinking+=W.delta.thinking;break}case"signature_delta":{if(G?.type==="thinking")G.signature=W.delta.signature;break}default:zW(W.delta)}return X}case"content_block_stop":return X}},Symbol.asyncIterator)](){let $=[],W=[],X=!1;return this.on("streamEvent",(G)=>{let J=W.shift();if(J)J.resolve(G);else $.push(G)}),this.on("end",()=>{X=!0;for(let G of W)G.resolve(void 0);W.length=0}),this.on("abort",(G)=>{X=!0;for(let J of W)J.reject(G);W.length=0}),this.on("error",(G)=>{X=!0;for(let J of W)J.reject(G);W.length=0}),{next:async()=>{if(!$.length){if(X)return{value:void 0,done:!0};return new Promise((J,Y)=>W.push({resolve:J,reject:Y})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new g(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function zW($){}var HW={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025"};class w$ extends T{constructor(){super(...arguments);this.batches=new T$(this._client)}create($,W){let{betas:X,...G}=$;if(G.model in HW)console.warn(`The model '${G.model}' is deprecated and will reach end-of-life on ${HW[G.model]}
|
|
7
|
-
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);return this._client.post("/v1/messages?beta=true",{body:G,timeout:this._client._options.timeout??(G.stream?600000:this._client._calculateNonstreamingTimeout(G.max_tokens)),...W,headers:{...X?.toString()!=null?{"anthropic-beta":X?.toString()}:void 0,...W?.headers},stream:$.stream??!1})}stream($,W){return H0.createMessage(this,$,W)}countTokens($,W){let{betas:X,...G}=$;return this._client.post("/v1/messages/count_tokens?beta=true",{body:G,...W,headers:{"anthropic-beta":[...X??[],"token-counting-2024-11-01"].toString(),...W?.headers}})}}w$.Batches=T$;w$.BetaMessageBatchesPage=X0;class e extends T{constructor(){super(...arguments);this.models=new C$(this._client),this.messages=new w$(this._client)}}e.Models=C$;e.BetaModelInfosPage=W0;e.Messages=w$;class I$ extends T{create($,W){return this._client.post("/v1/complete",{body:$,timeout:this._client._options.timeout??600000,...W,stream:$.stream??!1})}}class b$ extends T{create($,W){return this._client.post("/v1/messages/batches",{body:$,...W})}retrieve($,W){return this._client.get(`/v1/messages/batches/${$}`,W)}list($={},W){if(y($))return this.list({},$);return this._client.getAPIList("/v1/messages/batches",V0,{query:$,...W})}delete($,W){return this._client.delete(`/v1/messages/batches/${$}`,W)}cancel($,W){return this._client.post(`/v1/messages/batches/${$}/cancel`,W)}async results($,W){let X=await this.retrieve($);if(!X.results_url)throw new K(`No batch \`results_url\`; Has it finished processing? ${X.processing_status} - ${X.id}`);return this._client.get(X.results_url,{...W,headers:{Accept:"application/binary",...W?.headers},__binaryResponse:!0})._thenUnwrap((G,J)=>f$.fromResponse(J.response,J.controller))}}class V0 extends t{}b$.MessageBatchesPage=V0;var b=function($,W,X,G,J){if(G==="m")throw TypeError("Private method is not writable");if(G==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof W==="function"?$!==W||!J:!W.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return G==="a"?J.call($,X):J?J.value=X:W.set($,X),X},L=function($,W,X,G){if(X==="a"&&!G)throw TypeError("Private accessor was defined without a getter");if(typeof W==="function"?$!==W||!G:!W.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?G:X==="a"?G.call($):G?G.value:W.get($)},m,Q$,q0,a0,_0,B0,o0,M0,$$,U0,r0,t0,x$,s0,e0,S8,VW,E8,R8,A8,C8,qW,_W="__json_buf";class N0{constructor(){m.add(this),this.messages=[],this.receivedMessages=[],Q$.set(this,void 0),this.controller=new AbortController,q0.set(this,void 0),a0.set(this,()=>{}),_0.set(this,()=>{}),B0.set(this,void 0),o0.set(this,()=>{}),M0.set(this,()=>{}),$$.set(this,{}),U0.set(this,!1),r0.set(this,!1),t0.set(this,!1),x$.set(this,!1),s0.set(this,void 0),e0.set(this,void 0),E8.set(this,($)=>{if(b(this,r0,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new k;if($ instanceof k)return b(this,t0,!0,"f"),this._emit("abort",$);if($ instanceof K)return this._emit("error",$);if($ instanceof Error){let W=new K($.message);return W.cause=$,this._emit("error",W)}return this._emit("error",new K(String($)))}),b(this,q0,new Promise(($,W)=>{b(this,a0,$,"f"),b(this,_0,W,"f")}),"f"),b(this,B0,new Promise(($,W)=>{b(this,o0,$,"f"),b(this,M0,W,"f")}),"f"),L(this,q0,"f").catch(()=>{}),L(this,B0,"f").catch(()=>{})}get response(){return L(this,s0,"f")}get request_id(){return L(this,e0,"f")}async withResponse(){let $=await L(this,q0,"f");if(!$)throw Error("Could not resolve a `Response` object");return{data:this,response:$,request_id:$.headers.get("request-id")}}static fromReadableStream($){let W=new N0;return W._run(()=>W._fromReadableStream($)),W}static createMessage($,W,X){let G=new N0;for(let J of W.messages)G._addMessageParam(J);return G._run(()=>G._createMessage($,{...W,stream:!0},{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),G}_run($){$().then(()=>{this._emitFinal(),this._emit("end")},L(this,E8,"f"))}_addMessageParam($){this.messages.push($)}_addMessage($,W=!0){if(this.receivedMessages.push($),W)this._emit("message",$)}async _createMessage($,W,X){let G=X?.signal;if(G){if(G.aborted)this.controller.abort();G.addEventListener("abort",()=>this.controller.abort())}L(this,m,"m",R8).call(this);let{response:J,data:Y}=await $.create({...W,stream:!0},{...X,signal:this.controller.signal}).withResponse();this._connected(J);for await(let Q of Y)L(this,m,"m",A8).call(this,Q);if(Y.controller.signal?.aborted)throw new k;L(this,m,"m",C8).call(this)}_connected($){if(this.ended)return;b(this,s0,$,"f"),b(this,e0,$?.headers.get("request-id"),"f"),L(this,a0,"f").call(this,$),this._emit("connect")}get ended(){return L(this,U0,"f")}get errored(){return L(this,r0,"f")}get aborted(){return L(this,t0,"f")}abort(){this.controller.abort()}on($,W){return(L(this,$$,"f")[$]||(L(this,$$,"f")[$]=[])).push({listener:W}),this}off($,W){let X=L(this,$$,"f")[$];if(!X)return this;let G=X.findIndex((J)=>J.listener===W);if(G>=0)X.splice(G,1);return this}once($,W){return(L(this,$$,"f")[$]||(L(this,$$,"f")[$]=[])).push({listener:W,once:!0}),this}emitted($){return new Promise((W,X)=>{if(b(this,x$,!0,"f"),$!=="error")this.once("error",X);this.once($,W)})}async done(){b(this,x$,!0,"f"),await L(this,B0,"f")}get currentMessage(){return L(this,Q$,"f")}async finalMessage(){return await this.done(),L(this,m,"m",S8).call(this)}async finalText(){return await this.done(),L(this,m,"m",VW).call(this)}_emit($,...W){if(L(this,U0,"f"))return;if($==="end")b(this,U0,!0,"f"),L(this,o0,"f").call(this);let X=L(this,$$,"f")[$];if(X)L(this,$$,"f")[$]=X.filter((G)=>!G.once),X.forEach(({listener:G})=>G(...W));if($==="abort"){let G=W[0];if(!L(this,x$,"f")&&!X?.length)Promise.reject(G);L(this,_0,"f").call(this,G),L(this,M0,"f").call(this,G),this._emit("end");return}if($==="error"){let G=W[0];if(!L(this,x$,"f")&&!X?.length)Promise.reject(G);L(this,_0,"f").call(this,G),L(this,M0,"f").call(this,G),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",L(this,m,"m",S8).call(this))}async _fromReadableStream($,W){let X=W?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}L(this,m,"m",R8).call(this),this._connected(null);let G=g.fromReadableStream($,this.controller);for await(let J of G)L(this,m,"m",A8).call(this,J);if(G.controller.signal?.aborted)throw new k;L(this,m,"m",C8).call(this)}[(Q$=new WeakMap,q0=new WeakMap,a0=new WeakMap,_0=new WeakMap,B0=new WeakMap,o0=new WeakMap,M0=new WeakMap,$$=new WeakMap,U0=new WeakMap,r0=new WeakMap,t0=new WeakMap,x$=new WeakMap,s0=new WeakMap,e0=new WeakMap,E8=new WeakMap,m=new WeakSet,S8=function(){if(this.receivedMessages.length===0)throw new K("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},VW=function(){if(this.receivedMessages.length===0)throw new K("stream ended without producing a Message with role=assistant");let W=this.receivedMessages.at(-1).content.filter((X)=>X.type==="text").map((X)=>X.text);if(W.length===0)throw new K("stream ended without producing a content block with type=text");return W.join(" ")},R8=function(){if(this.ended)return;b(this,Q$,void 0,"f")},A8=function(W){if(this.ended)return;let X=L(this,m,"m",qW).call(this,W);switch(this._emit("streamEvent",W,X),W.type){case"content_block_delta":{let G=X.content.at(-1);switch(W.delta.type){case"text_delta":{if(G.type==="text")this._emit("text",W.delta.text,G.text||"");break}case"citations_delta":{if(G.type==="text")this._emit("citation",W.delta.citation,G.citations??[]);break}case"input_json_delta":{if(G.type==="tool_use"&&G.input)this._emit("inputJson",W.delta.partial_json,G.input);break}case"thinking_delta":{if(G.type==="thinking")this._emit("thinking",W.delta.thinking,G.thinking);break}case"signature_delta":{if(G.type==="thinking")this._emit("signature",G.signature);break}default:BW(W.delta)}break}case"message_stop":{this._addMessageParam(X),this._addMessage(X,!0);break}case"content_block_stop":{this._emit("contentBlock",X.content.at(-1));break}case"message_start":{b(this,Q$,X,"f");break}case"content_block_start":case"message_delta":break}},C8=function(){if(this.ended)throw new K("stream has ended, this shouldn't happen");let W=L(this,Q$,"f");if(!W)throw new K("request ended without sending any chunks");return b(this,Q$,void 0,"f"),W},qW=function(W){let X=L(this,Q$,"f");if(W.type==="message_start"){if(X)throw new K(`Unexpected event order, got ${W.type} before receiving "message_stop"`);return W.message}if(!X)throw new K(`Unexpected event order, got ${W.type} before "message_start"`);switch(W.type){case"message_stop":return X;case"message_delta":return X.stop_reason=W.delta.stop_reason,X.stop_sequence=W.delta.stop_sequence,X.usage.output_tokens=W.usage.output_tokens,X;case"content_block_start":return X.content.push(W.content_block),X;case"content_block_delta":{let G=X.content.at(W.index);switch(W.delta.type){case"text_delta":{if(G?.type==="text")G.text+=W.delta.text;break}case"citations_delta":{if(G?.type==="text")G.citations??(G.citations=[]),G.citations.push(W.delta.citation);break}case"input_json_delta":{if(G?.type==="tool_use"){let J=G[_W]||"";if(J+=W.delta.partial_json,Object.defineProperty(G,_W,{value:J,enumerable:!1,writable:!0}),J)G.input=l0(J)}break}case"thinking_delta":{if(G?.type==="thinking")G.thinking+=W.delta.thinking;break}case"signature_delta":{if(G?.type==="thinking")G.signature=W.delta.signature;break}default:BW(W.delta)}return X}case"content_block_stop":return X}},Symbol.asyncIterator)](){let $=[],W=[],X=!1;return this.on("streamEvent",(G)=>{let J=W.shift();if(J)J.resolve(G);else $.push(G)}),this.on("end",()=>{X=!0;for(let G of W)G.resolve(void 0);W.length=0}),this.on("abort",(G)=>{X=!0;for(let J of W)J.reject(G);W.length=0}),this.on("error",(G)=>{X=!0;for(let J of W)J.reject(G);W.length=0}),{next:async()=>{if(!$.length){if(X)return{value:void 0,done:!0};return new Promise((J,Y)=>W.push({resolve:J,reject:Y})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new g(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function BW($){}class z$ extends T{constructor(){super(...arguments);this.batches=new b$(this._client)}create($,W){if($.model in MW)console.warn(`The model '${$.model}' is deprecated and will reach end-of-life on ${MW[$.model]}
|
|
8
|
-
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);return this._client.post("/v1/messages",{body:$,timeout:this._client._options.timeout??($.stream?600000:this._client._calculateNonstreamingTimeout($.max_tokens)),...W,stream:$.stream??!1})}stream($,W){return N0.createMessage(this,$,W)}countTokens($,W){return this._client.post("/v1/messages/count_tokens",{body:$,...W})}}var MW={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025"};z$.Batches=b$;z$.MessageBatchesPage=V0;class D$ extends T{retrieve($,W){return this._client.get(`/v1/models/${$}`,W)}list($={},W){if(y($))return this.list({},$);return this._client.getAPIList("/v1/models",Z$,{query:$,...W})}}class Z$ extends t{}D$.ModelInfosPage=Z$;var UW;class S extends K8{constructor({baseURL:$=m0("ANTHROPIC_BASE_URL"),apiKey:W=m0("ANTHROPIC_API_KEY")??null,authToken:X=m0("ANTHROPIC_AUTH_TOKEN")??null,...G}={}){let J={apiKey:W,authToken:X,...G,baseURL:$||"https://api.anthropic.com"};if(!J.dangerouslyAllowBrowser&&GW())throw new K(`It looks like you're running in a browser-like environment.
|
|
9
|
-
|
|
10
|
-
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
11
|
-
If you understand the risks and have appropriate mitigations in place,
|
|
12
|
-
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
13
|
-
|
|
14
|
-
new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
15
|
-
`);super({baseURL:J.baseURL,timeout:J.timeout??600000,httpAgent:J.httpAgent,maxRetries:J.maxRetries,fetch:J.fetch});this.completions=new I$(this),this.messages=new z$(this),this.models=new D$(this),this.beta=new e(this),this._options=J,this.apiKey=W,this.authToken=X}defaultQuery(){return this._options.defaultQuery}defaultHeaders($){return{...super.defaultHeaders($),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01",...this._options.defaultHeaders}}validateHeaders($,W){if(this.apiKey&&$["x-api-key"])return;if(W["x-api-key"]===null)return;if(this.authToken&&$.authorization)return;if(W.authorization===null)return;throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}authHeaders($){let W=this.apiKeyAuth($),X=this.bearerAuth($);if(W!=null&&!$0(W))return W;if(X!=null&&!$0(X))return X;return{}}apiKeyAuth($){if(this.apiKey==null)return{};return{"X-Api-Key":this.apiKey}}bearerAuth($){if(this.authToken==null)return{};return{Authorization:`Bearer ${this.authToken}`}}}UW=S;S.Anthropic=UW;S.HUMAN_PROMPT=`
|
|
16
|
-
|
|
17
|
-
Human:`;S.AI_PROMPT=`
|
|
18
|
-
|
|
19
|
-
Assistant:`;S.DEFAULT_TIMEOUT=600000;S.AnthropicError=K;S.APIError=C;S.APIConnectionError=K$;S.APIConnectionTimeoutError=t$;S.APIUserAbortError=k;S.NotFoundError=P0;S.ConflictError=k0;S.RateLimitError=b0;S.BadRequestError=C0;S.AuthenticationError=f0;S.InternalServerError=x0;S.PermissionDeniedError=T0;S.UnprocessableEntityError=I0;S.toFile=a8;S.fileFromPath=A0;S.Completions=I$;S.Messages=z$;S.Models=D$;S.ModelInfosPage=Z$;S.Beta=e;var $8=S;var hX=new Set(["decision","bugfix","feature","refactor","discovery","change"]);function f($,W){let X=new RegExp(`<${W}[^>]*>([\\s\\S]*?)</${W}>`,"i"),G=$.match(X);return G?G[1].trim():""}function L$($,W){let X=new RegExp(`<${W}[^>]*>([\\s\\S]*?)</${W}>`,"gi"),G=[];for(let J of $.matchAll(X)){let Y=J[1].trim();if(Y)G.push(Y)}return G}function NW($){let W=f($,"observation");if(!W)return null;let X=f(W,"type").toLowerCase(),G=hX.has(X)?X:"discovery",J=f(W,"title")||"Untitled observation",Y=f(W,"subtitle"),Q=f(W,"narrative"),z=L$(f(W,"facts"),"fact"),H=L$(f(W,"concepts"),"concept"),q=L$(f(W,"files_read"),"file"),O=L$(f(W,"files_modified"),"file");return{type:G,title:J,subtitle:Y,facts:z,narrative:Q,concepts:H,filesRead:q,filesModified:O}}function KW($){let W=f($,"session_summary");if(!W)return null;let X=f(W,"summary")||"No summary available",G=L$(f(W,"key_decisions"),"decision"),J=L$(f(W,"files_modified"),"file"),Y=L$(f(W,"concepts"),"concept"),Q=f(W,"request")||void 0,z=f(W,"investigated")||void 0,H=f(W,"learned")||void 0,q=f(W,"completed")||void 0,O=f(W,"next_steps")||void 0;return{summary:X,keyDecisions:G,filesModified:J,concepts:Y,request:Q,investigated:z,learned:H,completed:q,nextSteps:O}}function H$($){return Math.ceil($.length/4)}function OW($,W,X){let G=X?`<session_context>
|
|
20
|
-
${X}
|
|
2
|
+
var AW=Object.create;var{getPrototypeOf:RW,defineProperty:f$,getOwnPropertyNames:DW}=Object;var OW=Object.prototype.hasOwnProperty;var NW=($,W,J)=>{J=$!=null?AW(RW($)):{};let Q=W||!$||!$.__esModule?f$(J,"default",{value:$,enumerable:!0}):J;for(let X of DW($))if(!OW.call(Q,X))f$(Q,X,{get:()=>$[X],enumerable:!0});return Q};var KW=($,W)=>{for(var J in W)f$($,J,{get:W[J],enumerable:!0,configurable:!0,set:(Q)=>W[J]=()=>Q})};var j$=import.meta.require;import{generateText as FW}from"ai";var wW=new Set(["decision","bugfix","feature","refactor","discovery","change"]);function O($,W){let J=new RegExp(`<${W}[^>]*>([\\s\\S]*?)</${W}>`,"i"),Q=$.match(J);return Q?Q[1].trim():""}function d($,W){let J=new RegExp(`<${W}[^>]*>([\\s\\S]*?)</${W}>`,"gi"),Q=[];for(let X of $.matchAll(J)){let _=X[1].trim();if(_)Q.push(_)}return Q}function m$($){let W=O($,"observation");if(!W)return null;let J=O(W,"type").toLowerCase(),Q=wW.has(J)?J:"discovery",X=O(W,"title")||"Untitled observation",_=O(W,"subtitle"),H=O(W,"narrative"),G=d(O(W,"facts"),"fact"),Y=d(O(W,"concepts"),"concept"),z=d(O(W,"files_read"),"file"),A=d(O(W,"files_modified"),"file");return{type:Q,title:X,subtitle:_,facts:G,narrative:H,concepts:Y,filesRead:z,filesModified:A}}function u$($){let W=O($,"session_summary");if(!W)return null;let J=O(W,"summary")||"No summary available",Q=d(O(W,"key_decisions"),"decision"),X=d(O(W,"files_modified"),"file"),_=d(O(W,"concepts"),"concept"),H=O(W,"request")||void 0,G=O(W,"investigated")||void 0,Y=O(W,"learned")||void 0,z=O(W,"completed")||void 0,A=O(W,"next_steps")||void 0;return{summary:J,keyDecisions:Q,filesModified:X,concepts:_,request:H,investigated:G,learned:Y,completed:z,nextSteps:A}}function Z($){return Math.ceil($.length/4)}function c$($,W,J){let Q=J?`<session_context>
|
|
3
|
+
${J}
|
|
21
4
|
</session_context>
|
|
22
5
|
|
|
23
6
|
`:"";return`<task>
|
|
@@ -30,7 +13,7 @@ Analyze the following tool output and extract a structured observation.
|
|
|
30
13
|
${W}
|
|
31
14
|
</tool_output>
|
|
32
15
|
|
|
33
|
-
${
|
|
16
|
+
${Q}<instructions>
|
|
34
17
|
Extract a structured observation from the tool output. Determine the most appropriate type and provide a concise but informative summary.
|
|
35
18
|
|
|
36
19
|
When extracting concepts, prefer established vocabulary where appropriate:
|
|
@@ -64,9 +47,9 @@ Respond with EXACTLY this XML format:
|
|
|
64
47
|
<file>path/to/file/modified</file>
|
|
65
48
|
</files_modified>
|
|
66
49
|
</observation>
|
|
67
|
-
</instructions>`}function
|
|
68
|
-
<title>${
|
|
69
|
-
<narrative>${
|
|
50
|
+
</instructions>`}function p$($,W){let J=$.map((Q,X)=>` <obs index="${X+1}" type="${Q.type}">
|
|
51
|
+
<title>${Q.title}</title>
|
|
52
|
+
<narrative>${Q.narrative}</narrative>
|
|
70
53
|
</obs>`).join(`
|
|
71
54
|
`);return`<task>
|
|
72
55
|
Summarize the following coding session based on its observations.
|
|
@@ -75,7 +58,7 @@ Summarize the following coding session based on its observations.
|
|
|
75
58
|
<session_id>${W}</session_id>
|
|
76
59
|
|
|
77
60
|
<observations>
|
|
78
|
-
${
|
|
61
|
+
${J}
|
|
79
62
|
</observations>
|
|
80
63
|
|
|
81
64
|
<instructions>
|
|
@@ -99,44 +82,44 @@ Respond with EXACTLY this XML format:
|
|
|
99
82
|
<concept>key-concept</concept>
|
|
100
83
|
</concepts>
|
|
101
84
|
</session_summary>
|
|
102
|
-
</instructions>`}class
|
|
85
|
+
</instructions>`}function O$($){switch($.provider){case"anthropic":{let{createAnthropic:W}=j$("@ai-sdk/anthropic");return W({apiKey:$.apiKey})($.model)}case"bedrock":{let{createAmazonBedrock:W}=j$("@ai-sdk/amazon-bedrock");return W()($.model)}case"openai":{let{createOpenAI:W}=j$("@ai-sdk/openai");return W({apiKey:$.apiKey})($.model)}case"google":{let{createGoogleGenerativeAI:W}=j$("@ai-sdk/google");return W({apiKey:$.apiKey})($.model)}default:throw Error(`Unknown provider: ${$.provider}. Supported: anthropic, bedrock, openai, google`)}}class V${model;config;_generate=FW;constructor($){this.config=$,this.model=null;let W=$.provider!=="bedrock";if($.compressionEnabled&&(!W||$.apiKey))try{this.model=O$({provider:$.provider,model:$.model,apiKey:$.apiKey})}catch{}}static MAX_INPUT_LENGTH=50000;async compress($,W,J){if(!this.config.compressionEnabled||!this.model)return null;if(W.length<this.config.minOutputLength)return null;let Q=W.length>V$.MAX_INPUT_LENGTH?`${W.substring(0,V$.MAX_INPUT_LENGTH)}
|
|
103
86
|
|
|
104
|
-
[... truncated ...]`:W,
|
|
87
|
+
[... truncated ...]`:W,X=c$($,Q,J),_=2;for(let H=0;H<=_;H++)try{let{text:G}=await this._generate({model:this.model,maxOutputTokens:this.config.maxTokensPerCompression,prompt:X});return m$(G)}catch(G){if(kW(G)&&H<_){let Y=2**H*1000;await n$(Y);continue}return null}return null}async compressBatch($){let W=new Map;for(let J=0;J<$.length;J++){let Q=$[J],X=await this.compress(Q.toolName,Q.toolOutput,Q.sessionContext);if(W.set(Q.callId,X),J<$.length-1)await n$(200)}return W}createFallbackObservation($,W){let J=fW(W),Q=vW[$]??"discovery";return{type:Q,title:`${$} execution`,subtitle:W.substring(0,100).replace(/\n/g," "),facts:[],narrative:`Tool ${$} was executed. Output length: ${W.length} chars.`,concepts:[],filesRead:Q==="discovery"?J:[],filesModified:Q==="change"?J:[]}}async isAvailable(){if(!this.model)return!1;try{return await this._generate({model:this.model,maxOutputTokens:10,prompt:"ping"}),!0}catch{return!1}}}var vW={Read:"discovery",Write:"change",Edit:"change",Bash:"change",Glob:"discovery",Grep:"discovery"},CW=/(?:^|\s)((?:\.\/|\/|src\/|tests\/|lib\/)\S+\.\w+)/gm;function fW($){let W=[];for(let J of $.matchAll(CW))W.push(J[1]);return[...new Set(W)]}function kW($){if(typeof $!=="object"||$===null)return!1;let W=$.status;if(W===429||W===500||W===503)return!0;let J=$.error;if(typeof J==="object"&&J!==null&&J.type==="overloaded_error")return!0;return!1}function n$($){return new Promise((W)=>setTimeout(W,$))}import{generateText as bW}from"ai";class k${model;config;_generate=bW;constructor($){this.config=$,this.model=null;let W=$.provider!=="bedrock";if($.compressionEnabled&&(!W||$.apiKey))try{this.model=O$({provider:$.provider,model:$.model,apiKey:$.apiKey})}catch{}}async summarize($,W){if(W.length===0)return null;if(!this.config.compressionEnabled||!this.model)return this.createFallbackSummary(W);let J=p$(W.map((Q)=>({type:Q.type,title:Q.title,narrative:Q.narrative})),$);try{let{text:Q}=await this._generate({model:this.model,maxOutputTokens:this.config.maxTokensPerCompression,prompt:J}),X=u$(Q);if(!X)return this.createFallbackSummary(W);return X}catch{return this.createFallbackSummary(W)}}createFallbackSummary($){let W=new Set,J=new Set,Q=[];for(let G of $){for(let Y of G.filesModified)W.add(Y);for(let Y of G.concepts)J.add(Y);if(G.type==="decision")Q.push(G.title)}let X=new Map;for(let G of $)X.set(G.type,(X.get(G.type)??0)+1);let _=Array.from(X.entries()).map(([G,Y])=>`${Y} ${G}${Y>1?"s":""}`).join(", "),H=Array.from(J).slice(0,5).join(", ");return{summary:`Session with ${$.length} observations: ${_}. Files modified: ${W.size}. Key concepts: ${H}.`,keyDecisions:Q.slice(0,5),filesModified:Array.from(W),concepts:Array.from(J)}}shouldSummarize($){return $>=2}}var d$={dbPath:".open-mem/memory.db",provider:"anthropic",apiKey:void 0,model:"claude-sonnet-4-20250514",maxTokensPerCompression:1024,compressionEnabled:!0,contextInjectionEnabled:!0,maxContextTokens:4000,batchSize:5,batchIntervalMs:30000,ignoredTools:[],minOutputLength:50,maxIndexEntries:20,sensitivePatterns:[],retentionDays:90,maxDatabaseSizeMb:500,logLevel:"warn",contextShowTokenCosts:!0,contextObservationTypes:"all",contextFullObservationCount:3,maxObservations:50,contextShowLastSummary:!0};function PW(){let $={};if(process.env.OPEN_MEM_DB_PATH)$.dbPath=process.env.OPEN_MEM_DB_PATH;if(process.env.OPEN_MEM_PROVIDER)$.provider=process.env.OPEN_MEM_PROVIDER;if(process.env.ANTHROPIC_API_KEY)$.apiKey=process.env.ANTHROPIC_API_KEY;if(process.env.OPEN_MEM_MODEL)$.model=process.env.OPEN_MEM_MODEL;if(process.env.OPEN_MEM_MAX_CONTEXT_TOKENS)$.maxContextTokens=Number.parseInt(process.env.OPEN_MEM_MAX_CONTEXT_TOKENS,10);if(process.env.OPEN_MEM_COMPRESSION==="false")$.compressionEnabled=!1;if(process.env.OPEN_MEM_CONTEXT_INJECTION==="false")$.contextInjectionEnabled=!1;if(process.env.OPEN_MEM_IGNORED_TOOLS)$.ignoredTools=process.env.OPEN_MEM_IGNORED_TOOLS.split(",").map((W)=>W.trim());if(process.env.OPEN_MEM_BATCH_SIZE)$.batchSize=Number.parseInt(process.env.OPEN_MEM_BATCH_SIZE,10);if(process.env.OPEN_MEM_RETENTION_DAYS)$.retentionDays=Number.parseInt(process.env.OPEN_MEM_RETENTION_DAYS,10);if(process.env.OPEN_MEM_LOG_LEVEL)$.logLevel=process.env.OPEN_MEM_LOG_LEVEL;if(process.env.OPEN_MEM_CONTEXT_SHOW_TOKEN_COSTS==="false")$.contextShowTokenCosts=!1;if(process.env.OPEN_MEM_CONTEXT_TYPES)$.contextObservationTypes=process.env.OPEN_MEM_CONTEXT_TYPES==="all"?"all":process.env.OPEN_MEM_CONTEXT_TYPES.split(",").map((W)=>W.trim());if(process.env.OPEN_MEM_CONTEXT_FULL_COUNT)$.contextFullObservationCount=Number.parseInt(process.env.OPEN_MEM_CONTEXT_FULL_COUNT,10);if(process.env.OPEN_MEM_MAX_OBSERVATIONS)$.maxObservations=Number.parseInt(process.env.OPEN_MEM_MAX_OBSERVATIONS,10);if(process.env.OPEN_MEM_CONTEXT_SHOW_LAST_SUMMARY==="false")$.contextShowLastSummary=!1;return $}function b$($,W){let J=PW(),Q={...d$,...J,...W};if(!Q.dbPath.startsWith("/"))Q.dbPath=`${$}/${Q.dbPath}`;if(!Q.apiKey)switch(Q.provider){case"anthropic":Q.apiKey=process.env.ANTHROPIC_API_KEY;break;case"openai":Q.apiKey=process.env.OPENAI_API_KEY;break;case"google":Q.apiKey=process.env.GOOGLE_GENERATIVE_AI_API_KEY;break;case"bedrock":break}if(Q.provider==="anthropic"&&!Q.apiKey){if(process.env.AWS_ACCESS_KEY_ID||process.env.AWS_PROFILE)Q.provider="bedrock",Q.model=`us.anthropic.${Q.model}-v1:0`}return Q}function i$($){let W=[],J=$.provider!=="bedrock";if($.compressionEnabled&&J&&!$.apiKey)W.push(`AI compression enabled but no API key found for provider "${$.provider}". Set the appropriate API key env var or disable compression with OPEN_MEM_COMPRESSION=false.`);if($.maxContextTokens<500)W.push("maxContextTokens must be at least 500");if($.batchSize<1)W.push("batchSize must be at least 1");if($.minOutputLength<0)W.push("minOutputLength must be non-negative");return W}function IW(){return{...d$}}async function r$($){let W=$.dbPath.substring(0,$.dbPath.lastIndexOf("/")),{mkdir:J}=await import("fs/promises");await J(W,{recursive:!0})}import{Database as hW}from"bun:sqlite";import{mkdirSync as TW}from"fs";class a${db;constructor($){this.db=this.open($),this.configure()}open($){let W=$.lastIndexOf("/");if(W>0){let J=$.substring(0,W);TW(J,{recursive:!0})}return new hW($,{create:!0})}configure(){this.db.exec("PRAGMA journal_mode = WAL"),this.db.exec("PRAGMA synchronous = NORMAL"),this.db.exec("PRAGMA foreign_keys = ON"),this.db.exec("PRAGMA busy_timeout = 5000")}ensureMigrationTable(){this.db.exec(`
|
|
105
88
|
CREATE TABLE IF NOT EXISTS _migrations (
|
|
106
89
|
version INTEGER PRIMARY KEY,
|
|
107
90
|
name TEXT NOT NULL,
|
|
108
91
|
applied_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
109
92
|
)
|
|
110
|
-
`)}migrate($){this.ensureMigrationTable();let W=this.db.query("SELECT version FROM _migrations ORDER BY version").all(),
|
|
93
|
+
`)}migrate($){this.ensureMigrationTable();let W=this.db.query("SELECT version FROM _migrations ORDER BY version").all(),J=new Set(W.map((X)=>X.version)),Q=$.filter((X)=>!J.has(X.version)).sort((X,_)=>X.version-_.version);for(let X of Q)this.db.transaction(()=>{this.db.exec(X.up),this.db.query("INSERT INTO _migrations (version, name) VALUES ($version, $name)").run({$version:X.version,$name:X.name})})()}run($,W){let J=this.db.query($);if(W)J.run(...W);else J.run()}get($,W){let J=this.db.query($);return W?J.get(...W):J.get()}all($,W){let J=this.db.query($);return W?J.all(...W):J.all()}exec($){this.db.exec($)}transaction($){return this.db.transaction($)()}close(){this.db.close()}get isOpen(){try{return this.db.query("SELECT 1").get(),!0}catch{return!1}}get raw(){return this.db}}function o$($){return new a$($)}import{randomUUID as gW}from"crypto";class P${db;constructor($){this.db=$}create($){let W=gW(),J=new Date().toISOString();return this.db.run(`INSERT INTO observations
|
|
111
94
|
(id, session_id, type, title, subtitle, facts, narrative,
|
|
112
95
|
concepts, files_read, files_modified, raw_tool_output,
|
|
113
96
|
tool_name, created_at, token_count)
|
|
114
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.type,$.title,$.subtitle,JSON.stringify($.facts),$.narrative,JSON.stringify($.concepts),JSON.stringify($.filesRead),JSON.stringify($.filesModified),$.rawToolOutput,$.toolName,
|
|
97
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.type,$.title,$.subtitle,JSON.stringify($.facts),$.narrative,JSON.stringify($.concepts),JSON.stringify($.filesRead),JSON.stringify($.filesModified),$.rawToolOutput,$.toolName,J,$.tokenCount]),{...$,id:W,createdAt:J}}getById($){let W=this.db.get("SELECT * FROM observations WHERE id = ?",[$]);return W?this.mapRow(W):null}getBySession($){return this.db.all("SELECT * FROM observations WHERE session_id = ? ORDER BY created_at ASC",[$]).map((W)=>this.mapRow(W))}getCount($){if($)return this.db.get("SELECT COUNT(*) as count FROM observations WHERE session_id = ?",[$])?.count??0;return this.db.get("SELECT COUNT(*) as count FROM observations")?.count??0}getIndex($,W=20){return this.db.all(`SELECT o.id, o.session_id, o.type, o.title, o.token_count, o.created_at
|
|
115
98
|
FROM observations o
|
|
116
99
|
JOIN sessions s ON o.session_id = s.id
|
|
117
100
|
WHERE s.project_path = ?
|
|
118
101
|
ORDER BY o.created_at DESC
|
|
119
|
-
LIMIT ?`,[$,W]).map((
|
|
102
|
+
LIMIT ?`,[$,W]).map((J)=>({id:J.id,sessionId:J.session_id,type:J.type,title:J.title,tokenCount:J.token_count,createdAt:J.created_at}))}search($){let W=`
|
|
120
103
|
SELECT o.*, rank
|
|
121
104
|
FROM observations o
|
|
122
105
|
JOIN observations_fts fts ON o._rowid = fts.rowid
|
|
123
106
|
WHERE observations_fts MATCH ?
|
|
124
|
-
`,
|
|
107
|
+
`,J=[$.query];if($.sessionId)W+=" AND o.session_id = ?",J.push($.sessionId);if($.type)W+=" AND o.type = ?",J.push($.type);return W+=" ORDER BY rank LIMIT ? OFFSET ?",J.push($.limit??10),J.push($.offset??0),this.db.all(W,J).map((Q)=>({observation:this.mapRow(Q),rank:Q.rank,snippet:Q.title}))}searchByConcept($,W=10){return this.db.all(`SELECT o.*
|
|
125
108
|
FROM observations o
|
|
126
109
|
JOIN observations_fts fts ON o._rowid = fts.rowid
|
|
127
110
|
WHERE observations_fts MATCH ?
|
|
128
111
|
ORDER BY rank
|
|
129
|
-
LIMIT ?`,[`concepts:${$}`,W]).map((
|
|
112
|
+
LIMIT ?`,[`concepts:${$}`,W]).map((J)=>this.mapRow(J))}searchByFile($,W=10){return this.db.all(`SELECT o.*
|
|
130
113
|
FROM observations o
|
|
131
114
|
JOIN observations_fts fts ON o._rowid = fts.rowid
|
|
132
115
|
WHERE observations_fts MATCH ?
|
|
133
116
|
ORDER BY rank
|
|
134
|
-
LIMIT ?`,[`files_read:"${$}" OR files_modified:"${$}"`,W]).map((
|
|
117
|
+
LIMIT ?`,[`files_read:"${$}" OR files_modified:"${$}"`,W]).map((J)=>this.mapRow(J))}mapRow($){return{id:$.id,sessionId:$.session_id,type:$.type,title:$.title,subtitle:$.subtitle,facts:JSON.parse($.facts),narrative:$.narrative,concepts:JSON.parse($.concepts),filesRead:JSON.parse($.files_read),filesModified:JSON.parse($.files_modified),rawToolOutput:$.raw_tool_output,toolName:$.tool_name,createdAt:$.created_at,tokenCount:$.token_count}}}import{randomUUID as xW}from"crypto";class I${db;constructor($){this.db=$}create($){let W=xW(),J=new Date().toISOString();return this.db.run(`INSERT INTO pending_messages
|
|
135
118
|
(id, session_id, tool_name, tool_output, call_id, created_at)
|
|
136
|
-
VALUES (?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.toolName,$.toolOutput,$.callId,
|
|
119
|
+
VALUES (?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.toolName,$.toolOutput,$.callId,J]),{...$,id:W,createdAt:J,status:"pending",retryCount:0,error:null}}getPending($=10){return this.db.all("SELECT * FROM pending_messages WHERE status = 'pending' ORDER BY created_at ASC LIMIT ?",[$]).map((W)=>this.mapRow(W))}getByStatus($){return this.db.all("SELECT * FROM pending_messages WHERE status = ? ORDER BY created_at ASC",[$]).map((W)=>this.mapRow(W))}markProcessing($){this.db.run("UPDATE pending_messages SET status = 'processing' WHERE id = ?",[$])}markCompleted($){this.db.run("UPDATE pending_messages SET status = 'completed' WHERE id = ?",[$])}markFailed($,W){this.db.run("UPDATE pending_messages SET status = 'failed', error = ?, retry_count = retry_count + 1 WHERE id = ?",[W,$])}resetStale($=5){return this.db.all(`UPDATE pending_messages SET status = 'pending'
|
|
137
120
|
WHERE status = 'processing'
|
|
138
121
|
AND created_at < datetime('now', ? || ' minutes')
|
|
139
|
-
RETURNING id`,[`-${$}`]).length}mapRow($){return{id:$.id,sessionId:$.session_id,toolName:$.tool_name,toolOutput:$.tool_output,callId:$.call_id,createdAt:$.created_at,status:$.status,retryCount:$.retry_count,error:$.error??null}}}var
|
|
122
|
+
RETURNING id`,[`-${$}`]).length}mapRow($){return{id:$.id,sessionId:$.session_id,toolName:$.tool_name,toolOutput:$.tool_output,callId:$.call_id,createdAt:$.created_at,status:$.status,retryCount:$.retry_count,error:$.error??null}}}var yW=[{version:1,name:"create-core-tables",up:`
|
|
140
123
|
-- Sessions table
|
|
141
124
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
142
125
|
_rowid INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -305,33 +288,33 @@ Respond with EXACTLY this XML format:
|
|
|
305
288
|
ALTER TABLE session_summaries ADD COLUMN learned TEXT NOT NULL DEFAULT '';
|
|
306
289
|
ALTER TABLE session_summaries ADD COLUMN completed TEXT NOT NULL DEFAULT '';
|
|
307
290
|
ALTER TABLE session_summaries ADD COLUMN next_steps TEXT NOT NULL DEFAULT '';
|
|
308
|
-
`}];function
|
|
309
|
-
VALUES (?, ?, ?, 'active')`,[$,W,
|
|
291
|
+
`}];function t$($){$.migrate(yW)}class h${db;constructor($){this.db=$}create($,W){let J=new Date().toISOString();return this.db.run(`INSERT INTO sessions (id, project_path, started_at, status)
|
|
292
|
+
VALUES (?, ?, ?, 'active')`,[$,W,J]),this.getById($)}getOrCreate($,W){let J=this.getById($);if(J)return J;return this.create($,W)}getById($){let W=this.db.get("SELECT * FROM sessions WHERE id = ?",[$]);return W?this.mapRow(W):null}getRecent($,W=10){return this.db.all("SELECT * FROM sessions WHERE project_path = ? ORDER BY started_at DESC LIMIT ?",[$,W]).map((J)=>this.mapRow(J))}getActive(){return this.db.all("SELECT * FROM sessions WHERE status = 'active' ORDER BY started_at DESC").map(($)=>this.mapRow($))}updateStatus($,W){this.db.run("UPDATE sessions SET status = ? WHERE id = ?",[W,$])}markCompleted($){this.db.run("UPDATE sessions SET status = 'completed', ended_at = datetime('now') WHERE id = ?",[$])}incrementObservationCount($){this.db.run("UPDATE sessions SET observation_count = observation_count + 1 WHERE id = ?",[$])}setSummary($,W){this.db.run("UPDATE sessions SET summary_id = ? WHERE id = ?",[W,$])}mapRow($){return{id:$.id,projectPath:$.project_path,startedAt:$.started_at,endedAt:$.ended_at??null,status:$.status,observationCount:$.observation_count,summaryId:$.summary_id??null}}}import{randomUUID as ZW}from"crypto";class T${db;constructor($){this.db=$}create($){let W=ZW(),J=new Date().toISOString();return this.db.run(`INSERT INTO session_summaries
|
|
310
293
|
(id, session_id, summary, key_decisions, files_modified,
|
|
311
294
|
concepts, created_at, token_count,
|
|
312
295
|
request, investigated, learned, completed, next_steps)
|
|
313
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.summary,JSON.stringify($.keyDecisions),JSON.stringify($.filesModified),JSON.stringify($.concepts),
|
|
296
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[W,$.sessionId,$.summary,JSON.stringify($.keyDecisions),JSON.stringify($.filesModified),JSON.stringify($.concepts),J,$.tokenCount,$.request??"",$.investigated??"",$.learned??"",$.completed??"",$.nextSteps??""]),{...$,id:W,createdAt:J}}getBySessionId($){let W=this.db.get("SELECT * FROM session_summaries WHERE session_id = ?",[$]);return W?this.mapRow(W):null}getRecent($=10){return this.db.all("SELECT * FROM session_summaries ORDER BY created_at DESC LIMIT ?",[$]).map((W)=>this.mapRow(W))}search($,W=10){return this.db.all(`SELECT ss.*
|
|
314
297
|
FROM session_summaries ss
|
|
315
298
|
JOIN summaries_fts fts ON ss._rowid = fts.rowid
|
|
316
299
|
WHERE summaries_fts MATCH ?
|
|
317
300
|
ORDER BY rank
|
|
318
|
-
LIMIT ?`,[$,W]).map((
|
|
319
|
-
`)}function
|
|
320
|
-
Recent sessions:`);for(let
|
|
321
|
-
Recent observations (${$.observationIndex.length} entries):`);for(let
|
|
322
|
-
`)}function W8($,W,X,G,J=[]){let Y=G,Q=[],z=[];for(let H of W){let q=H.tokenCount||H$(H.summary);if(Y-q<0)break;Q.push(H),Y-=q}for(let H of X){let q=H.tokenCount||H$(H.title);if(Y-q<0)break;z.push(H),Y-=q}return{recentSummaries:Q,observationIndex:z,fullObservations:[...J],totalTokens:G-Y}}function fW($,W,X,G,J){return async(Y,Q)=>{try{if(!$.contextInjectionEnabled)return;let z=X.getRecent(J,3),H=z.map((R)=>R.summaryId?G.getBySessionId(R.id):null).filter((R)=>R!==null),q=W.getIndex(J,10);if(H.length===0&&q.length===0)return;let O=W8(z,H,q,Math.floor($.maxContextTokens/2));Q.context.push(CW(O))}catch(z){console.error("[open-mem] Compaction hook error:",z)}}}function TW($,W,X,G,J){return async(Y,Q)=>{try{if(!$.contextInjectionEnabled)return;let z=X.getRecent(J,5);if(z.length===0)return;let H=z.map((c)=>c.summaryId?G.getBySessionId(c.id):null).filter((c)=>c!==null),q=W.getIndex(J,$.maxObservations);if(H.length===0&&q.length===0)return;let R=q.slice(0,$.contextFullObservationCount).map((c)=>c.id).map((c)=>W.getById(c)).filter((c)=>c!==null),l=W8(z,H,q,$.maxContextTokens,R),E0={showTokenCosts:$.contextShowTokenCosts,observationTypes:$.contextObservationTypes,fullObservationCount:$.contextFullObservationCount,showLastSummary:$.contextShowLastSummary};Q.system.push(AW(l,E0))}catch(z){console.error("[open-mem] Context injection error:",z)}}}function PW($,W,X){return async(G)=>{try{let{event:J}=G,Y=J.properties.sessionID;switch(J.type){case"session.created":{if(Y)W.getOrCreate(Y,X);break}case"session.idle":{if(await $.processBatch(),Y)W.updateStatus(Y,"idle");break}case"session.completed":case"session.ended":{if(Y)await $.processBatch(),await $.summarizeSession(Y),W.markCompleted(Y);break}default:break}}catch(J){console.error("[open-mem] Event handler error:",J)}}}function kW($,W,X,G){return async(J,Y)=>{try{let{tool:Q,sessionID:z,callID:H}=J,{output:q}=Y;if($.ignoredTools.includes(Q))return;if(!q||q.length<$.minOutputLength)return;let O=q;for(let R of $.sensitivePatterns)try{O=O.replace(new RegExp(R,"g"),"[REDACTED]")}catch{}O=O.replace(/<private>[\s\S]*?<\/private>/g,"[PRIVATE]"),X.getOrCreate(z,G),W.enqueue(z,Q,O,H)}catch(Q){console.error("[open-mem] Tool capture error:",Q)}}}class Z8{config;compressor;summarizer;pendingRepo;observationRepo;sessionRepo;summaryRepo;processing=!1;timer=null;constructor($,W,X,G,J,Y,Q){this.config=$;this.compressor=W;this.summarizer=X;this.pendingRepo=G;this.observationRepo=J;this.sessionRepo=Y;this.summaryRepo=Q}enqueue($,W,X,G){this.pendingRepo.create({sessionId:$,toolName:W,toolOutput:X,callId:G})}async processBatch(){if(this.processing)return 0;this.processing=!0;let $=0;try{this.pendingRepo.resetStale(5);let W=this.pendingRepo.getPending(this.config.batchSize);if(W.length===0)return 0;for(let X of W)try{this.pendingRepo.markProcessing(X.id);let J=await this.compressor.compress(X.toolName,X.toolOutput)??this.compressor.createFallbackObservation(X.toolName,X.toolOutput);this.observationRepo.create({sessionId:X.sessionId,type:J.type,title:J.title,subtitle:J.subtitle,facts:J.facts,narrative:J.narrative,concepts:J.concepts,filesRead:J.filesRead,filesModified:J.filesModified,rawToolOutput:X.toolOutput,toolName:X.toolName,tokenCount:H$(`${J.title} ${J.narrative} ${J.facts.join(" ")}`)}),this.sessionRepo.incrementObservationCount(X.sessionId),this.pendingRepo.markCompleted(X.id),$++}catch(G){this.pendingRepo.markFailed(X.id,String(G))}return $}finally{this.processing=!1}}async summarizeSession($){let W=this.observationRepo.getBySession($);if(!this.summarizer.shouldSummarize(W.length))return;if(this.summaryRepo.getBySessionId($))return;let G=await this.summarizer.summarize($,W);if(!G)return;let J=this.summaryRepo.create({sessionId:$,summary:G.summary,keyDecisions:G.keyDecisions,filesModified:G.filesModified,concepts:G.concepts,tokenCount:H$(G.summary)});this.sessionRepo.setSummary($,J.id)}start(){if(this.timer)return;this.timer=setInterval(async()=>{try{await this.processBatch()}catch{}},this.config.batchIntervalMs)}stop(){if(this.timer)clearInterval(this.timer),this.timer=null}get isRunning(){return this.timer!==null}get isProcessing(){return this.processing}getStats(){return{pending:this.pendingRepo.getPending(1000).length,processing:this.processing}}}var A={};sW(A,{void:()=>g6,util:()=>j,unknown:()=>Z6,union:()=>l6,undefined:()=>I6,tuple:()=>p6,transformer:()=>$9,symbol:()=>k6,string:()=>mW,strictObject:()=>m6,setErrorMap:()=>X6,set:()=>n6,record:()=>d6,quotelessJson:()=>$6,promise:()=>e6,preprocess:()=>G9,pipeline:()=>J9,ostring:()=>Y9,optional:()=>W9,onumber:()=>Q9,oboolean:()=>z9,objectUtil:()=>v8,object:()=>h6,number:()=>lW,nullable:()=>X9,null:()=>b6,never:()=>v6,nativeEnum:()=>s6,nan:()=>f6,map:()=>i6,makeIssue:()=>O0,literal:()=>r6,lazy:()=>o6,late:()=>A6,isValid:()=>V$,isDirty:()=>G8,isAsync:()=>g$,isAborted:()=>X8,intersection:()=>u6,instanceof:()=>C6,getParsedType:()=>a,getErrorMap:()=>v$,function:()=>a6,enum:()=>t6,effect:()=>$9,discriminatedUnion:()=>c6,defaultErrorMap:()=>W$,datetimeRegex:()=>gW,date:()=>P6,custom:()=>hW,coerce:()=>H9,boolean:()=>cW,bigint:()=>T6,array:()=>y6,any:()=>x6,addIssueToContext:()=>B,ZodVoid:()=>D0,ZodUnknown:()=>q$,ZodUnion:()=>u$,ZodUndefined:()=>l$,ZodType:()=>F,ZodTuple:()=>r,ZodTransformer:()=>n,ZodSymbol:()=>w0,ZodString:()=>u,ZodSet:()=>E$,ZodSchema:()=>F,ZodRecord:()=>L0,ZodReadonly:()=>r$,ZodPromise:()=>R$,ZodPipeline:()=>S0,ZodParsedType:()=>_,ZodOptional:()=>d,ZodObject:()=>E,ZodNumber:()=>_$,ZodNullable:()=>G$,ZodNull:()=>c$,ZodNever:()=>o,ZodNativeEnum:()=>n$,ZodNaN:()=>j0,ZodMap:()=>F0,ZodLiteral:()=>i$,ZodLazy:()=>d$,ZodIssueCode:()=>V,ZodIntersection:()=>p$,ZodFunction:()=>h$,ZodFirstPartyTypeKind:()=>N,ZodError:()=>Z,ZodEnum:()=>M$,ZodEffects:()=>n,ZodDiscriminatedUnion:()=>J8,ZodDefault:()=>a$,ZodDate:()=>j$,ZodCatch:()=>o$,ZodBranded:()=>Y8,ZodBoolean:()=>m$,ZodBigInt:()=>B$,ZodArray:()=>p,ZodAny:()=>S$,Schema:()=>F,ParseStatus:()=>P,OK:()=>x,NEVER:()=>V9,INVALID:()=>U,EMPTY_PATH:()=>G6,DIRTY:()=>F$,BRAND:()=>R6});var j;(function($){$.assertEqual=(J)=>{};function W(J){}$.assertIs=W;function X(J){throw Error()}$.assertNever=X,$.arrayToEnum=(J)=>{let Y={};for(let Q of J)Y[Q]=Q;return Y},$.getValidEnumValues=(J)=>{let Y=$.objectKeys(J).filter((z)=>typeof J[J[z]]!=="number"),Q={};for(let z of Y)Q[z]=J[z];return $.objectValues(Q)},$.objectValues=(J)=>{return $.objectKeys(J).map(function(Y){return J[Y]})},$.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let Q in J)if(Object.prototype.hasOwnProperty.call(J,Q))Y.push(Q);return Y},$.find=(J,Y)=>{for(let Q of J)if(Y(Q))return Q;return},$.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function G(J,Y=" | "){return J.map((Q)=>typeof Q==="string"?`'${Q}'`:Q).join(Y)}$.joinValues=G,$.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(j||(j={}));var v8;(function($){$.mergeShapes=(W,X)=>{return{...W,...X}}})(v8||(v8={}));var _=j.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),a=($)=>{switch(typeof $){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN($)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":if(Array.isArray($))return _.array;if($===null)return _.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return _.promise;if(typeof Map<"u"&&$ instanceof Map)return _.map;if(typeof Set<"u"&&$ instanceof Set)return _.set;if(typeof Date<"u"&&$ instanceof Date)return _.date;return _.object;default:return _.unknown}};var V=j.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"]),$6=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class Z extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let W=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,W);else this.__proto__=W;this.name="ZodError",this.issues=$}format($){let W=$||function(J){return J.message},X={_errors:[]},G=(J)=>{for(let Y of J.issues)if(Y.code==="invalid_union")Y.unionErrors.map(G);else if(Y.code==="invalid_return_type")G(Y.returnTypeError);else if(Y.code==="invalid_arguments")G(Y.argumentsError);else if(Y.path.length===0)X._errors.push(W(Y));else{let Q=X,z=0;while(z<Y.path.length){let H=Y.path[z];if(z!==Y.path.length-1)Q[H]=Q[H]||{_errors:[]};else Q[H]=Q[H]||{_errors:[]},Q[H]._errors.push(W(Y));Q=Q[H],z++}}};return G(this),X}static assert($){if(!($ instanceof Z))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,j.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(W)=>W.message){let W={},X=[];for(let G of this.issues)if(G.path.length>0){let J=G.path[0];W[J]=W[J]||[],W[J].push($(G))}else X.push($(G));return{formErrors:X,fieldErrors:W}}get formErrors(){return this.flatten()}}Z.create=($)=>{return new Z($)};var W6=($,W)=>{let X;switch($.code){case V.invalid_type:if($.received===_.undefined)X="Required";else X=`Expected ${$.expected}, received ${$.received}`;break;case V.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify($.expected,j.jsonStringifyReplacer)}`;break;case V.unrecognized_keys:X=`Unrecognized key(s) in object: ${j.joinValues($.keys,", ")}`;break;case V.invalid_union:X="Invalid input";break;case V.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${j.joinValues($.options)}`;break;case V.invalid_enum_value:X=`Invalid enum value. Expected ${j.joinValues($.options)}, received '${$.received}'`;break;case V.invalid_arguments:X="Invalid function arguments";break;case V.invalid_return_type:X="Invalid function return type";break;case V.invalid_date:X="Invalid date";break;case V.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(X=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)X=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)X=`Invalid input: must end with "${$.validation.endsWith}"`;else j.assertNever($.validation);else if($.validation!=="regex")X=`Invalid ${$.validation}`;else X="Invalid";break;case V.too_small:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else X="Invalid input";break;case V.too_big:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")X=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else X="Invalid input";break;case V.custom:X="Invalid input";break;case V.invalid_intersection_types:X="Intersection results could not be merged";break;case V.not_multiple_of:X=`Number must be a multiple of ${$.multipleOf}`;break;case V.not_finite:X="Number must be finite";break;default:X=W.defaultError,j.assertNever($)}return{message:X}},W$=W6;var IW=W$;function X6($){IW=$}function v$(){return IW}var O0=($)=>{let{data:W,path:X,errorMaps:G,issueData:J}=$,Y=[...X,...J.path||[]],Q={...J,path:Y};if(J.message!==void 0)return{...J,path:Y,message:J.message};let z="",H=G.filter((q)=>!!q).slice().reverse();for(let q of H)z=q(Q,{data:W,defaultError:z}).message;return{...J,path:Y,message:z}},G6=[];function B($,W){let X=v$(),G=O0({issueData:W,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,X,X===W$?void 0:W$].filter((J)=>!!J)});$.common.issues.push(G)}class P{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,W){let X=[];for(let G of W){if(G.status==="aborted")return U;if(G.status==="dirty")$.dirty();X.push(G.value)}return{status:$.value,value:X}}static async mergeObjectAsync($,W){let X=[];for(let G of W){let J=await G.key,Y=await G.value;X.push({key:J,value:Y})}return P.mergeObjectSync($,X)}static mergeObjectSync($,W){let X={};for(let G of W){let{key:J,value:Y}=G;if(J.status==="aborted")return U;if(Y.status==="aborted")return U;if(J.status==="dirty")$.dirty();if(Y.status==="dirty")$.dirty();if(J.value!=="__proto__"&&(typeof Y.value<"u"||G.alwaysSet))X[J.value]=Y.value}return{status:$.value,value:X}}}var U=Object.freeze({status:"aborted"}),F$=($)=>({status:"dirty",value:$}),x=($)=>({status:"valid",value:$}),X8=($)=>$.status==="aborted",G8=($)=>$.status==="dirty",V$=($)=>$.status==="valid",g$=($)=>typeof Promise<"u"&&$ instanceof Promise;var M;(function($){$.errToObj=(W)=>typeof W==="string"?{message:W}:W||{},$.toString=(W)=>typeof W==="string"?W:W?.message})(M||(M={}));class i{constructor($,W,X,G){this._cachedPath=[],this.parent=$,this.data=W,this._path=X,this._key=G}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var bW=($,W)=>{if(V$(W))return{success:!0,data:W.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new Z($.common.issues);return this._error=X,this._error}}}};function w($){if(!$)return{};let{errorMap:W,invalid_type_error:X,required_error:G,description:J}=$;if(W&&(X||G))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(W)return{errorMap:W,description:J};return{errorMap:(Q,z)=>{let{message:H}=$;if(Q.code==="invalid_enum_value")return{message:H??z.defaultError};if(typeof z.data>"u")return{message:H??G??z.defaultError};if(Q.code!=="invalid_type")return{message:z.defaultError};return{message:H??X??z.defaultError}},description:J}}class F{get description(){return this._def.description}_getType($){return a($.data)}_getOrReturnCtx($,W){return W||{common:$.parent.common,data:$.data,parsedType:a($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new P,ctx:{common:$.parent.common,data:$.data,parsedType:a($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let W=this._parse($);if(g$(W))throw Error("Synchronous parse encountered promise.");return W}_parseAsync($){let W=this._parse($);return Promise.resolve(W)}parse($,W){let X=this.safeParse($,W);if(X.success)return X.data;throw X.error}safeParse($,W){let X={common:{issues:[],async:W?.async??!1,contextualErrorMap:W?.errorMap},path:W?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:a($)},G=this._parseSync({data:$,path:X.path,parent:X});return bW(X,G)}"~validate"($){let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:a($)};if(!this["~standard"].async)try{let X=this._parseSync({data:$,path:[],parent:W});return V$(X)?{value:X.value}:{issues:W.common.issues}}catch(X){if(X?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;W.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:W}).then((X)=>V$(X)?{value:X.value}:{issues:W.common.issues})}async parseAsync($,W){let X=await this.safeParseAsync($,W);if(X.success)return X.data;throw X.error}async safeParseAsync($,W){let X={common:{issues:[],contextualErrorMap:W?.errorMap,async:!0},path:W?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:a($)},G=this._parse({data:$,path:X.path,parent:X}),J=await(g$(G)?G:Promise.resolve(G));return bW(X,J)}refine($,W){let X=(G)=>{if(typeof W==="string"||typeof W>"u")return{message:W};else if(typeof W==="function")return W(G);else return W};return this._refinement((G,J)=>{let Y=$(G),Q=()=>J.addIssue({code:V.custom,...X(G)});if(typeof Promise<"u"&&Y instanceof Promise)return Y.then((z)=>{if(!z)return Q(),!1;else return!0});if(!Y)return Q(),!1;else return!0})}refinement($,W){return this._refinement((X,G)=>{if(!$(X))return G.addIssue(typeof W==="function"?W(X,G):W),!1;else return!0})}_refinement($){return new n({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,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:(W)=>this["~validate"](W)}}optional(){return d.create(this,this._def)}nullable(){return G$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return p.create(this)}promise(){return R$.create(this,this._def)}or($){return u$.create([this,$],this._def)}and($){return p$.create(this,$,this._def)}transform($){return new n({...w(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:$}})}default($){let W=typeof $==="function"?$:()=>$;return new a$({...w(this._def),innerType:this,defaultValue:W,typeName:N.ZodDefault})}brand(){return new Y8({typeName:N.ZodBranded,type:this,...w(this._def)})}catch($){let W=typeof $==="function"?$:()=>$;return new o$({...w(this._def),innerType:this,catchValue:W,typeName:N.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return S0.create(this,$)}readonly(){return r$.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var J6=/^c[^\s-]{8,}$/i,Y6=/^[0-9a-z]+$/,Q6=/^[0-9A-HJKMNP-TV-Z]{26}$/i,z6=/^[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,H6=/^[a-z0-9_-]{21}$/i,V6=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,q6=/^[-+]?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)?)??$/,_6=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,B6="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",g8,M6=/^(?:(?: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])$/,U6=/^(?:(?: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])$/,N6=/^(([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]))$/,K6=/^(([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])$/,O6=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,w6=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ZW="((\\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])))",D6=new RegExp(`^${ZW}$`);function vW($){let W="[0-5]\\d";if($.precision)W=`${W}\\.\\d{${$.precision}}`;else if($.precision==null)W=`${W}(\\.\\d+)?`;let X=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${W})${X}`}function L6($){return new RegExp(`^${vW($)}$`)}function gW($){let W=`${ZW}T${vW($)}`,X=[];if(X.push($.local?"Z?":"Z"),$.offset)X.push("([+-]\\d{2}:?\\d{2})");return W=`${W}(${X.join("|")})`,new RegExp(`^${W}$`)}function F6($,W){if((W==="v4"||!W)&&M6.test($))return!0;if((W==="v6"||!W)&&N6.test($))return!0;return!1}function j6($,W){if(!V6.test($))return!1;try{let[X]=$.split(".");if(!X)return!1;let G=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),J=JSON.parse(atob(G));if(typeof J!=="object"||J===null)return!1;if("typ"in J&&J?.typ!=="JWT")return!1;if(!J.alg)return!1;if(W&&J.alg!==W)return!1;return!0}catch{return!1}}function S6($,W){if((W==="v4"||!W)&&U6.test($))return!0;if((W==="v6"||!W)&&K6.test($))return!0;return!1}class u extends F{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==_.string){let J=this._getOrReturnCtx($);return B(J,{code:V.invalid_type,expected:_.string,received:J.parsedType}),U}let X=new P,G=void 0;for(let J of this._def.checks)if(J.kind==="min"){if($.data.length<J.value)G=this._getOrReturnCtx($,G),B(G,{code:V.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if($.data.length>J.value)G=this._getOrReturnCtx($,G),B(G,{code:V.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="length"){let Y=$.data.length>J.value,Q=$.data.length<J.value;if(Y||Q){if(G=this._getOrReturnCtx($,G),Y)B(G,{code:V.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Q)B(G,{code:V.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});X.dirty()}}else if(J.kind==="email"){if(!_6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"email",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="emoji"){if(!g8)g8=new RegExp(B6,"u");if(!g8.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"emoji",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="uuid"){if(!z6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"uuid",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="nanoid"){if(!H6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"nanoid",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid"){if(!J6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"cuid",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid2"){if(!Y6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"cuid2",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ulid"){if(!Q6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"ulid",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="url")try{new URL($.data)}catch{G=this._getOrReturnCtx($,G),B(G,{validation:"url",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"regex",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="trim")$.data=$.data.trim();else if(J.kind==="includes"){if(!$.data.includes(J.value,J.position))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),X.dirty()}else if(J.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(J.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(J.kind==="startsWith"){if(!$.data.startsWith(J.value))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:{startsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="endsWith"){if(!$.data.endsWith(J.value))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:{endsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="datetime"){if(!gW(J).test($.data))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:"datetime",message:J.message}),X.dirty()}else if(J.kind==="date"){if(!D6.test($.data))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:"date",message:J.message}),X.dirty()}else if(J.kind==="time"){if(!L6(J).test($.data))G=this._getOrReturnCtx($,G),B(G,{code:V.invalid_string,validation:"time",message:J.message}),X.dirty()}else if(J.kind==="duration"){if(!q6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"duration",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ip"){if(!F6($.data,J.version))G=this._getOrReturnCtx($,G),B(G,{validation:"ip",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="jwt"){if(!j6($.data,J.alg))G=this._getOrReturnCtx($,G),B(G,{validation:"jwt",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cidr"){if(!S6($.data,J.version))G=this._getOrReturnCtx($,G),B(G,{validation:"cidr",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64"){if(!O6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"base64",code:V.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64url"){if(!w6.test($.data))G=this._getOrReturnCtx($,G),B(G,{validation:"base64url",code:V.invalid_string,message:J.message}),X.dirty()}else j.assertNever(J);return{status:X.value,value:$.data}}_regex($,W,X){return this.refinement((G)=>$.test(G),{validation:W,code:V.invalid_string,...M.errToObj(X)})}_addCheck($){return new u({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...M.errToObj($)})}url($){return this._addCheck({kind:"url",...M.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...M.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...M.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...M.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...M.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...M.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...M.errToObj($)})}base64($){return this._addCheck({kind:"base64",...M.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...M.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...M.errToObj($)})}ip($){return this._addCheck({kind:"ip",...M.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...M.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...M.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...M.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...M.errToObj($)})}regex($,W){return this._addCheck({kind:"regex",regex:$,...M.errToObj(W)})}includes($,W){return this._addCheck({kind:"includes",value:$,position:W?.position,...M.errToObj(W?.message)})}startsWith($,W){return this._addCheck({kind:"startsWith",value:$,...M.errToObj(W)})}endsWith($,W){return this._addCheck({kind:"endsWith",value:$,...M.errToObj(W)})}min($,W){return this._addCheck({kind:"min",value:$,...M.errToObj(W)})}max($,W){return this._addCheck({kind:"max",value:$,...M.errToObj(W)})}length($,W){return this._addCheck({kind:"length",value:$,...M.errToObj(W)})}nonempty($){return this.min(1,M.errToObj($))}trim(){return new u({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new u({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new u({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxLength(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}}u.create=($)=>{return new u({checks:[],typeName:N.ZodString,coerce:$?.coerce??!1,...w($)})};function E6($,W){let X=($.toString().split(".")[1]||"").length,G=(W.toString().split(".")[1]||"").length,J=X>G?X:G,Y=Number.parseInt($.toFixed(J).replace(".","")),Q=Number.parseInt(W.toFixed(J).replace(".",""));return Y%Q/10**J}class _$ extends F{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==_.number){let J=this._getOrReturnCtx($);return B(J,{code:V.invalid_type,expected:_.number,received:J.parsedType}),U}let X=void 0,G=new P;for(let J of this._def.checks)if(J.kind==="int"){if(!j.isInteger($.data))X=this._getOrReturnCtx($,X),B(X,{code:V.invalid_type,expected:"integer",received:"float",message:J.message}),G.dirty()}else if(J.kind==="min"){if(J.inclusive?$.data<J.value:$.data<=J.value)X=this._getOrReturnCtx($,X),B(X,{code:V.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),G.dirty()}else if(J.kind==="max"){if(J.inclusive?$.data>J.value:$.data>=J.value)X=this._getOrReturnCtx($,X),B(X,{code:V.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),G.dirty()}else if(J.kind==="multipleOf"){if(E6($.data,J.value)!==0)X=this._getOrReturnCtx($,X),B(X,{code:V.not_multiple_of,multipleOf:J.value,message:J.message}),G.dirty()}else if(J.kind==="finite"){if(!Number.isFinite($.data))X=this._getOrReturnCtx($,X),B(X,{code:V.not_finite,message:J.message}),G.dirty()}else j.assertNever(J);return{status:G.value,value:$.data}}gte($,W){return this.setLimit("min",$,!0,M.toString(W))}gt($,W){return this.setLimit("min",$,!1,M.toString(W))}lte($,W){return this.setLimit("max",$,!0,M.toString(W))}lt($,W){return this.setLimit("max",$,!1,M.toString(W))}setLimit($,W,X,G){return new _$({...this._def,checks:[...this._def.checks,{kind:$,value:W,inclusive:X,message:M.toString(G)}]})}_addCheck($){return new _$({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:M.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:M.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:M.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:M.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:M.toString($)})}multipleOf($,W){return this._addCheck({kind:"multipleOf",value:$,message:M.toString(W)})}finite($){return this._addCheck({kind:"finite",message:M.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:M.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:M.toString($)})}get minValue(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxValue(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&j.isInteger($.value))}get isFinite(){let $=null,W=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if(W===null||X.value>W)W=X.value}else if(X.kind==="max"){if($===null||X.value<$)$=X.value}return Number.isFinite(W)&&Number.isFinite($)}}_$.create=($)=>{return new _$({checks:[],typeName:N.ZodNumber,coerce:$?.coerce||!1,...w($)})};class B$ extends F{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==_.bigint)return this._getInvalidInput($);let X=void 0,G=new P;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?$.data<J.value:$.data<=J.value)X=this._getOrReturnCtx($,X),B(X,{code:V.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),G.dirty()}else if(J.kind==="max"){if(J.inclusive?$.data>J.value:$.data>=J.value)X=this._getOrReturnCtx($,X),B(X,{code:V.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),G.dirty()}else if(J.kind==="multipleOf"){if($.data%J.value!==BigInt(0))X=this._getOrReturnCtx($,X),B(X,{code:V.not_multiple_of,multipleOf:J.value,message:J.message}),G.dirty()}else j.assertNever(J);return{status:G.value,value:$.data}}_getInvalidInput($){let W=this._getOrReturnCtx($);return B(W,{code:V.invalid_type,expected:_.bigint,received:W.parsedType}),U}gte($,W){return this.setLimit("min",$,!0,M.toString(W))}gt($,W){return this.setLimit("min",$,!1,M.toString(W))}lte($,W){return this.setLimit("max",$,!0,M.toString(W))}lt($,W){return this.setLimit("max",$,!1,M.toString(W))}setLimit($,W,X,G){return new B$({...this._def,checks:[...this._def.checks,{kind:$,value:W,inclusive:X,message:M.toString(G)}]})}_addCheck($){return new B$({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:M.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:M.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:M.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:M.toString($)})}multipleOf($,W){return this._addCheck({kind:"multipleOf",value:$,message:M.toString(W)})}get minValue(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxValue(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}}B$.create=($)=>{return new B$({checks:[],typeName:N.ZodBigInt,coerce:$?.coerce??!1,...w($)})};class m$ extends F{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==_.boolean){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.boolean,received:X.parsedType}),U}return x($.data)}}m$.create=($)=>{return new m$({typeName:N.ZodBoolean,coerce:$?.coerce||!1,...w($)})};class j$ extends F{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==_.date){let J=this._getOrReturnCtx($);return B(J,{code:V.invalid_type,expected:_.date,received:J.parsedType}),U}if(Number.isNaN($.data.getTime())){let J=this._getOrReturnCtx($);return B(J,{code:V.invalid_date}),U}let X=new P,G=void 0;for(let J of this._def.checks)if(J.kind==="min"){if($.data.getTime()<J.value)G=this._getOrReturnCtx($,G),B(G,{code:V.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),X.dirty()}else if(J.kind==="max"){if($.data.getTime()>J.value)G=this._getOrReturnCtx($,G),B(G,{code:V.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),X.dirty()}else j.assertNever(J);return{status:X.value,value:new Date($.data.getTime())}}_addCheck($){return new j$({...this._def,checks:[...this._def.checks,$]})}min($,W){return this._addCheck({kind:"min",value:$.getTime(),message:M.toString(W)})}max($,W){return this._addCheck({kind:"max",value:$.getTime(),message:M.toString(W)})}get minDate(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $!=null?new Date($):null}}j$.create=($)=>{return new j$({checks:[],coerce:$?.coerce||!1,typeName:N.ZodDate,...w($)})};class w0 extends F{_parse($){if(this._getType($)!==_.symbol){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.symbol,received:X.parsedType}),U}return x($.data)}}w0.create=($)=>{return new w0({typeName:N.ZodSymbol,...w($)})};class l$ extends F{_parse($){if(this._getType($)!==_.undefined){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.undefined,received:X.parsedType}),U}return x($.data)}}l$.create=($)=>{return new l$({typeName:N.ZodUndefined,...w($)})};class c$ extends F{_parse($){if(this._getType($)!==_.null){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.null,received:X.parsedType}),U}return x($.data)}}c$.create=($)=>{return new c$({typeName:N.ZodNull,...w($)})};class S$ extends F{constructor(){super(...arguments);this._any=!0}_parse($){return x($.data)}}S$.create=($)=>{return new S$({typeName:N.ZodAny,...w($)})};class q$ extends F{constructor(){super(...arguments);this._unknown=!0}_parse($){return x($.data)}}q$.create=($)=>{return new q$({typeName:N.ZodUnknown,...w($)})};class o extends F{_parse($){let W=this._getOrReturnCtx($);return B(W,{code:V.invalid_type,expected:_.never,received:W.parsedType}),U}}o.create=($)=>{return new o({typeName:N.ZodNever,...w($)})};class D0 extends F{_parse($){if(this._getType($)!==_.undefined){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.void,received:X.parsedType}),U}return x($.data)}}D0.create=($)=>{return new D0({typeName:N.ZodVoid,...w($)})};class p extends F{_parse($){let{ctx:W,status:X}=this._processInputParams($),G=this._def;if(W.parsedType!==_.array)return B(W,{code:V.invalid_type,expected:_.array,received:W.parsedType}),U;if(G.exactLength!==null){let Y=W.data.length>G.exactLength.value,Q=W.data.length<G.exactLength.value;if(Y||Q)B(W,{code:Y?V.too_big:V.too_small,minimum:Q?G.exactLength.value:void 0,maximum:Y?G.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:G.exactLength.message}),X.dirty()}if(G.minLength!==null){if(W.data.length<G.minLength.value)B(W,{code:V.too_small,minimum:G.minLength.value,type:"array",inclusive:!0,exact:!1,message:G.minLength.message}),X.dirty()}if(G.maxLength!==null){if(W.data.length>G.maxLength.value)B(W,{code:V.too_big,maximum:G.maxLength.value,type:"array",inclusive:!0,exact:!1,message:G.maxLength.message}),X.dirty()}if(W.common.async)return Promise.all([...W.data].map((Y,Q)=>{return G.type._parseAsync(new i(W,Y,W.path,Q))})).then((Y)=>{return P.mergeArray(X,Y)});let J=[...W.data].map((Y,Q)=>{return G.type._parseSync(new i(W,Y,W.path,Q))});return P.mergeArray(X,J)}get element(){return this._def.type}min($,W){return new p({...this._def,minLength:{value:$,message:M.toString(W)}})}max($,W){return new p({...this._def,maxLength:{value:$,message:M.toString(W)}})}length($,W){return new p({...this._def,exactLength:{value:$,message:M.toString(W)}})}nonempty($){return this.min(1,$)}}p.create=($,W)=>{return new p({type:$,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...w(W)})};function y$($){if($ instanceof E){let W={};for(let X in $.shape){let G=$.shape[X];W[X]=d.create(y$(G))}return new E({...$._def,shape:()=>W})}else if($ instanceof p)return new p({...$._def,type:y$($.element)});else if($ instanceof d)return d.create(y$($.unwrap()));else if($ instanceof G$)return G$.create(y$($.unwrap()));else if($ instanceof r)return r.create($.items.map((W)=>y$(W)));else return $}class E extends F{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),W=j.objectKeys($);return this._cached={shape:$,keys:W},this._cached}_parse($){if(this._getType($)!==_.object){let H=this._getOrReturnCtx($);return B(H,{code:V.invalid_type,expected:_.object,received:H.parsedType}),U}let{status:X,ctx:G}=this._processInputParams($),{shape:J,keys:Y}=this._getCached(),Q=[];if(!(this._def.catchall instanceof o&&this._def.unknownKeys==="strip")){for(let H in G.data)if(!Y.includes(H))Q.push(H)}let z=[];for(let H of Y){let q=J[H],O=G.data[H];z.push({key:{status:"valid",value:H},value:q._parse(new i(G,O,G.path,H)),alwaysSet:H in G.data})}if(this._def.catchall instanceof o){let H=this._def.unknownKeys;if(H==="passthrough")for(let q of Q)z.push({key:{status:"valid",value:q},value:{status:"valid",value:G.data[q]}});else if(H==="strict"){if(Q.length>0)B(G,{code:V.unrecognized_keys,keys:Q}),X.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let q of Q){let O=G.data[q];z.push({key:{status:"valid",value:q},value:H._parse(new i(G,O,G.path,q)),alwaysSet:q in G.data})}}if(G.common.async)return Promise.resolve().then(async()=>{let H=[];for(let q of z){let O=await q.key,R=await q.value;H.push({key:O,value:R,alwaysSet:q.alwaysSet})}return H}).then((H)=>{return P.mergeObjectSync(X,H)});else return P.mergeObjectSync(X,z)}get shape(){return this._def.shape()}strict($){return M.errToObj,new E({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(W,X)=>{let G=this._def.errorMap?.(W,X).message??X.defaultError;if(W.code==="unrecognized_keys")return{message:M.errToObj($).message??G};return{message:G}}}:{}})}strip(){return new E({...this._def,unknownKeys:"strip"})}passthrough(){return new E({...this._def,unknownKeys:"passthrough"})}extend($){return new E({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new E({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:N.ZodObject})}setKey($,W){return this.augment({[$]:W})}catchall($){return new E({...this._def,catchall:$})}pick($){let W={};for(let X of j.objectKeys($))if($[X]&&this.shape[X])W[X]=this.shape[X];return new E({...this._def,shape:()=>W})}omit($){let W={};for(let X of j.objectKeys(this.shape))if(!$[X])W[X]=this.shape[X];return new E({...this._def,shape:()=>W})}deepPartial(){return y$(this)}partial($){let W={};for(let X of j.objectKeys(this.shape)){let G=this.shape[X];if($&&!$[X])W[X]=G;else W[X]=G.optional()}return new E({...this._def,shape:()=>W})}required($){let W={};for(let X of j.objectKeys(this.shape))if($&&!$[X])W[X]=this.shape[X];else{let J=this.shape[X];while(J instanceof d)J=J._def.innerType;W[X]=J}return new E({...this._def,shape:()=>W})}keyof(){return yW(j.objectKeys(this.shape))}}E.create=($,W)=>{return new E({shape:()=>$,unknownKeys:"strip",catchall:o.create(),typeName:N.ZodObject,...w(W)})};E.strictCreate=($,W)=>{return new E({shape:()=>$,unknownKeys:"strict",catchall:o.create(),typeName:N.ZodObject,...w(W)})};E.lazycreate=($,W)=>{return new E({shape:$,unknownKeys:"strip",catchall:o.create(),typeName:N.ZodObject,...w(W)})};class u$ extends F{_parse($){let{ctx:W}=this._processInputParams($),X=this._def.options;function G(J){for(let Q of J)if(Q.result.status==="valid")return Q.result;for(let Q of J)if(Q.result.status==="dirty")return W.common.issues.push(...Q.ctx.common.issues),Q.result;let Y=J.map((Q)=>new Z(Q.ctx.common.issues));return B(W,{code:V.invalid_union,unionErrors:Y}),U}if(W.common.async)return Promise.all(X.map(async(J)=>{let Y={...W,common:{...W.common,issues:[]},parent:null};return{result:await J._parseAsync({data:W.data,path:W.path,parent:Y}),ctx:Y}})).then(G);else{let J=void 0,Y=[];for(let z of X){let H={...W,common:{...W.common,issues:[]},parent:null},q=z._parseSync({data:W.data,path:W.path,parent:H});if(q.status==="valid")return q;else if(q.status==="dirty"&&!J)J={result:q,ctx:H};if(H.common.issues.length)Y.push(H.common.issues)}if(J)return W.common.issues.push(...J.ctx.common.issues),J.result;let Q=Y.map((z)=>new Z(z));return B(W,{code:V.invalid_union,unionErrors:Q}),U}}get options(){return this._def.options}}u$.create=($,W)=>{return new u$({options:$,typeName:N.ZodUnion,...w(W)})};var X$=($)=>{if($ instanceof d$)return X$($.schema);else if($ instanceof n)return X$($.innerType());else if($ instanceof i$)return[$.value];else if($ instanceof M$)return $.options;else if($ instanceof n$)return j.objectValues($.enum);else if($ instanceof a$)return X$($._def.innerType);else if($ instanceof l$)return[void 0];else if($ instanceof c$)return[null];else if($ instanceof d)return[void 0,...X$($.unwrap())];else if($ instanceof G$)return[null,...X$($.unwrap())];else if($ instanceof Y8)return X$($.unwrap());else if($ instanceof r$)return X$($.unwrap());else if($ instanceof o$)return X$($._def.innerType);else return[]};class J8 extends F{_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==_.object)return B(W,{code:V.invalid_type,expected:_.object,received:W.parsedType}),U;let X=this.discriminator,G=W.data[X],J=this.optionsMap.get(G);if(!J)return B(W,{code:V.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),U;if(W.common.async)return J._parseAsync({data:W.data,path:W.path,parent:W});else return J._parseSync({data:W.data,path:W.path,parent:W})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,W,X){let G=new Map;for(let J of W){let Y=X$(J.shape[$]);if(!Y.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let Q of Y){if(G.has(Q))throw Error(`Discriminator property ${String($)} has duplicate value ${String(Q)}`);G.set(Q,J)}}return new J8({typeName:N.ZodDiscriminatedUnion,discriminator:$,options:W,optionsMap:G,...w(X)})}}function y8($,W){let X=a($),G=a(W);if($===W)return{valid:!0,data:$};else if(X===_.object&&G===_.object){let J=j.objectKeys(W),Y=j.objectKeys($).filter((z)=>J.indexOf(z)!==-1),Q={...$,...W};for(let z of Y){let H=y8($[z],W[z]);if(!H.valid)return{valid:!1};Q[z]=H.data}return{valid:!0,data:Q}}else if(X===_.array&&G===_.array){if($.length!==W.length)return{valid:!1};let J=[];for(let Y=0;Y<$.length;Y++){let Q=$[Y],z=W[Y],H=y8(Q,z);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(X===_.date&&G===_.date&&+$===+W)return{valid:!0,data:$};else return{valid:!1}}class p$ extends F{_parse($){let{status:W,ctx:X}=this._processInputParams($),G=(J,Y)=>{if(X8(J)||X8(Y))return U;let Q=y8(J.value,Y.value);if(!Q.valid)return B(X,{code:V.invalid_intersection_types}),U;if(G8(J)||G8(Y))W.dirty();return{status:W.value,value:Q.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([J,Y])=>G(J,Y));else return G(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}p$.create=($,W,X)=>{return new p$({left:$,right:W,typeName:N.ZodIntersection,...w(X)})};class r extends F{_parse($){let{status:W,ctx:X}=this._processInputParams($);if(X.parsedType!==_.array)return B(X,{code:V.invalid_type,expected:_.array,received:X.parsedType}),U;if(X.data.length<this._def.items.length)return B(X,{code:V.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),U;if(!this._def.rest&&X.data.length>this._def.items.length)B(X,{code:V.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),W.dirty();let J=[...X.data].map((Y,Q)=>{let z=this._def.items[Q]||this._def.rest;if(!z)return null;return z._parse(new i(X,Y,X.path,Q))}).filter((Y)=>!!Y);if(X.common.async)return Promise.all(J).then((Y)=>{return P.mergeArray(W,Y)});else return P.mergeArray(W,J)}get items(){return this._def.items}rest($){return new r({...this._def,rest:$})}}r.create=($,W)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new r({items:$,typeName:N.ZodTuple,rest:null,...w(W)})};class L0 extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:W,ctx:X}=this._processInputParams($);if(X.parsedType!==_.object)return B(X,{code:V.invalid_type,expected:_.object,received:X.parsedType}),U;let G=[],J=this._def.keyType,Y=this._def.valueType;for(let Q in X.data)G.push({key:J._parse(new i(X,Q,X.path,Q)),value:Y._parse(new i(X,X.data[Q],X.path,Q)),alwaysSet:Q in X.data});if(X.common.async)return P.mergeObjectAsync(W,G);else return P.mergeObjectSync(W,G)}get element(){return this._def.valueType}static create($,W,X){if(W instanceof F)return new L0({keyType:$,valueType:W,typeName:N.ZodRecord,...w(X)});return new L0({keyType:u.create(),valueType:$,typeName:N.ZodRecord,...w(W)})}}class F0 extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:W,ctx:X}=this._processInputParams($);if(X.parsedType!==_.map)return B(X,{code:V.invalid_type,expected:_.map,received:X.parsedType}),U;let G=this._def.keyType,J=this._def.valueType,Y=[...X.data.entries()].map(([Q,z],H)=>{return{key:G._parse(new i(X,Q,X.path,[H,"key"])),value:J._parse(new i(X,z,X.path,[H,"value"]))}});if(X.common.async){let Q=new Map;return Promise.resolve().then(async()=>{for(let z of Y){let H=await z.key,q=await z.value;if(H.status==="aborted"||q.status==="aborted")return U;if(H.status==="dirty"||q.status==="dirty")W.dirty();Q.set(H.value,q.value)}return{status:W.value,value:Q}})}else{let Q=new Map;for(let z of Y){let{key:H,value:q}=z;if(H.status==="aborted"||q.status==="aborted")return U;if(H.status==="dirty"||q.status==="dirty")W.dirty();Q.set(H.value,q.value)}return{status:W.value,value:Q}}}}F0.create=($,W,X)=>{return new F0({valueType:W,keyType:$,typeName:N.ZodMap,...w(X)})};class E$ extends F{_parse($){let{status:W,ctx:X}=this._processInputParams($);if(X.parsedType!==_.set)return B(X,{code:V.invalid_type,expected:_.set,received:X.parsedType}),U;let G=this._def;if(G.minSize!==null){if(X.data.size<G.minSize.value)B(X,{code:V.too_small,minimum:G.minSize.value,type:"set",inclusive:!0,exact:!1,message:G.minSize.message}),W.dirty()}if(G.maxSize!==null){if(X.data.size>G.maxSize.value)B(X,{code:V.too_big,maximum:G.maxSize.value,type:"set",inclusive:!0,exact:!1,message:G.maxSize.message}),W.dirty()}let J=this._def.valueType;function Y(z){let H=new Set;for(let q of z){if(q.status==="aborted")return U;if(q.status==="dirty")W.dirty();H.add(q.value)}return{status:W.value,value:H}}let Q=[...X.data.values()].map((z,H)=>J._parse(new i(X,z,X.path,H)));if(X.common.async)return Promise.all(Q).then((z)=>Y(z));else return Y(Q)}min($,W){return new E$({...this._def,minSize:{value:$,message:M.toString(W)}})}max($,W){return new E$({...this._def,maxSize:{value:$,message:M.toString(W)}})}size($,W){return this.min($,W).max($,W)}nonempty($){return this.min(1,$)}}E$.create=($,W)=>{return new E$({valueType:$,minSize:null,maxSize:null,typeName:N.ZodSet,...w(W)})};class h$ extends F{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==_.function)return B(W,{code:V.invalid_type,expected:_.function,received:W.parsedType}),U;function X(Q,z){return O0({data:Q,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,v$(),W$].filter((H)=>!!H),issueData:{code:V.invalid_arguments,argumentsError:z}})}function G(Q,z){return O0({data:Q,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,v$(),W$].filter((H)=>!!H),issueData:{code:V.invalid_return_type,returnTypeError:z}})}let J={errorMap:W.common.contextualErrorMap},Y=W.data;if(this._def.returns instanceof R$){let Q=this;return x(async function(...z){let H=new Z([]),q=await Q._def.args.parseAsync(z,J).catch((l)=>{throw H.addIssue(X(z,l)),H}),O=await Reflect.apply(Y,this,q);return await Q._def.returns._def.type.parseAsync(O,J).catch((l)=>{throw H.addIssue(G(O,l)),H})})}else{let Q=this;return x(function(...z){let H=Q._def.args.safeParse(z,J);if(!H.success)throw new Z([X(z,H.error)]);let q=Reflect.apply(Y,this,H.data),O=Q._def.returns.safeParse(q,J);if(!O.success)throw new Z([G(q,O.error)]);return O.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new h$({...this._def,args:r.create($).rest(q$.create())})}returns($){return new h$({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,W,X){return new h$({args:$?$:r.create([]).rest(q$.create()),returns:W||q$.create(),typeName:N.ZodFunction,...w(X)})}}class d$ extends F{get schema(){return this._def.getter()}_parse($){let{ctx:W}=this._processInputParams($);return this._def.getter()._parse({data:W.data,path:W.path,parent:W})}}d$.create=($,W)=>{return new d$({getter:$,typeName:N.ZodLazy,...w(W)})};class i$ extends F{_parse($){if($.data!==this._def.value){let W=this._getOrReturnCtx($);return B(W,{received:W.data,code:V.invalid_literal,expected:this._def.value}),U}return{status:"valid",value:$.data}}get value(){return this._def.value}}i$.create=($,W)=>{return new i$({value:$,typeName:N.ZodLiteral,...w(W)})};function yW($,W){return new M$({values:$,typeName:N.ZodEnum,...w(W)})}class M$ extends F{_parse($){if(typeof $.data!=="string"){let W=this._getOrReturnCtx($),X=this._def.values;return B(W,{expected:j.joinValues(X),received:W.parsedType,code:V.invalid_type}),U}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let W=this._getOrReturnCtx($),X=this._def.values;return B(W,{received:W.data,code:V.invalid_enum_value,options:X}),U}return x($.data)}get options(){return this._def.values}get enum(){let $={};for(let W of this._def.values)$[W]=W;return $}get Values(){let $={};for(let W of this._def.values)$[W]=W;return $}get Enum(){let $={};for(let W of this._def.values)$[W]=W;return $}extract($,W=this._def){return M$.create($,{...this._def,...W})}exclude($,W=this._def){return M$.create(this.options.filter((X)=>!$.includes(X)),{...this._def,...W})}}M$.create=yW;class n$ extends F{_parse($){let W=j.getValidEnumValues(this._def.values),X=this._getOrReturnCtx($);if(X.parsedType!==_.string&&X.parsedType!==_.number){let G=j.objectValues(W);return B(X,{expected:j.joinValues(G),received:X.parsedType,code:V.invalid_type}),U}if(!this._cache)this._cache=new Set(j.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let G=j.objectValues(W);return B(X,{received:X.data,code:V.invalid_enum_value,options:G}),U}return x($.data)}get enum(){return this._def.values}}n$.create=($,W)=>{return new n$({values:$,typeName:N.ZodNativeEnum,...w(W)})};class R$ extends F{unwrap(){return this._def.type}_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==_.promise&&W.common.async===!1)return B(W,{code:V.invalid_type,expected:_.promise,received:W.parsedType}),U;let X=W.parsedType===_.promise?W.data:Promise.resolve(W.data);return x(X.then((G)=>{return this._def.type.parseAsync(G,{path:W.path,errorMap:W.common.contextualErrorMap})}))}}R$.create=($,W)=>{return new R$({type:$,typeName:N.ZodPromise,...w(W)})};class n extends F{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:W,ctx:X}=this._processInputParams($),G=this._def.effect||null,J={addIssue:(Y)=>{if(B(X,Y),Y.fatal)W.abort();else W.dirty()},get path(){return X.path}};if(J.addIssue=J.addIssue.bind(J),G.type==="preprocess"){let Y=G.transform(X.data,J);if(X.common.async)return Promise.resolve(Y).then(async(Q)=>{if(W.value==="aborted")return U;let z=await this._def.schema._parseAsync({data:Q,path:X.path,parent:X});if(z.status==="aborted")return U;if(z.status==="dirty")return F$(z.value);if(W.value==="dirty")return F$(z.value);return z});else{if(W.value==="aborted")return U;let Q=this._def.schema._parseSync({data:Y,path:X.path,parent:X});if(Q.status==="aborted")return U;if(Q.status==="dirty")return F$(Q.value);if(W.value==="dirty")return F$(Q.value);return Q}}if(G.type==="refinement"){let Y=(Q)=>{let z=G.refinement(Q,J);if(X.common.async)return Promise.resolve(z);if(z instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Q};if(X.common.async===!1){let Q=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(Q.status==="aborted")return U;if(Q.status==="dirty")W.dirty();return Y(Q.value),{status:W.value,value:Q.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((Q)=>{if(Q.status==="aborted")return U;if(Q.status==="dirty")W.dirty();return Y(Q.value).then(()=>{return{status:W.value,value:Q.value}})})}if(G.type==="transform")if(X.common.async===!1){let Y=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!V$(Y))return U;let Q=G.transform(Y.value,J);if(Q instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:W.value,value:Q}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((Y)=>{if(!V$(Y))return U;return Promise.resolve(G.transform(Y.value,J)).then((Q)=>({status:W.value,value:Q}))});j.assertNever(G)}}n.create=($,W,X)=>{return new n({schema:$,typeName:N.ZodEffects,effect:W,...w(X)})};n.createWithPreprocess=($,W,X)=>{return new n({schema:W,effect:{type:"preprocess",transform:$},typeName:N.ZodEffects,...w(X)})};class d extends F{_parse($){if(this._getType($)===_.undefined)return x(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}d.create=($,W)=>{return new d({innerType:$,typeName:N.ZodOptional,...w(W)})};class G$ extends F{_parse($){if(this._getType($)===_.null)return x(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}G$.create=($,W)=>{return new G$({innerType:$,typeName:N.ZodNullable,...w(W)})};class a$ extends F{_parse($){let{ctx:W}=this._processInputParams($),X=W.data;if(W.parsedType===_.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:W.path,parent:W})}removeDefault(){return this._def.innerType}}a$.create=($,W)=>{return new a$({innerType:$,typeName:N.ZodDefault,defaultValue:typeof W.default==="function"?W.default:()=>W.default,...w(W)})};class o$ extends F{_parse($){let{ctx:W}=this._processInputParams($),X={...W,common:{...W.common,issues:[]}},G=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(g$(G))return G.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new Z(X.common.issues)},input:X.data})}});else return{status:"valid",value:G.status==="valid"?G.value:this._def.catchValue({get error(){return new Z(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}o$.create=($,W)=>{return new o$({innerType:$,typeName:N.ZodCatch,catchValue:typeof W.catch==="function"?W.catch:()=>W.catch,...w(W)})};class j0 extends F{_parse($){if(this._getType($)!==_.nan){let X=this._getOrReturnCtx($);return B(X,{code:V.invalid_type,expected:_.nan,received:X.parsedType}),U}return{status:"valid",value:$.data}}}j0.create=($)=>{return new j0({typeName:N.ZodNaN,...w($)})};var R6=Symbol("zod_brand");class Y8 extends F{_parse($){let{ctx:W}=this._processInputParams($),X=W.data;return this._def.type._parse({data:X,path:W.path,parent:W})}unwrap(){return this._def.type}}class S0 extends F{_parse($){let{status:W,ctx:X}=this._processInputParams($);if(X.common.async)return(async()=>{let J=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(J.status==="aborted")return U;if(J.status==="dirty")return W.dirty(),F$(J.value);else return this._def.out._parseAsync({data:J.value,path:X.path,parent:X})})();else{let G=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(G.status==="aborted")return U;if(G.status==="dirty")return W.dirty(),{status:"dirty",value:G.value};else return this._def.out._parseSync({data:G.value,path:X.path,parent:X})}}static create($,W){return new S0({in:$,out:W,typeName:N.ZodPipeline})}}class r$ extends F{_parse($){let W=this._def.innerType._parse($),X=(G)=>{if(V$(G))G.value=Object.freeze(G.value);return G};return g$(W)?W.then((G)=>X(G)):X(W)}unwrap(){return this._def.innerType}}r$.create=($,W)=>{return new r$({innerType:$,typeName:N.ZodReadonly,...w(W)})};function xW($,W){let X=typeof $==="function"?$(W):typeof $==="string"?{message:$}:$;return typeof X==="string"?{message:X}:X}function hW($,W={},X){if($)return S$.create().superRefine((G,J)=>{let Y=$(G);if(Y instanceof Promise)return Y.then((Q)=>{if(!Q){let z=xW(W,G),H=z.fatal??X??!0;J.addIssue({code:"custom",...z,fatal:H})}});if(!Y){let Q=xW(W,G),z=Q.fatal??X??!0;J.addIssue({code:"custom",...Q,fatal:z})}return});return S$.create()}var A6={object:E.lazycreate},N;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(N||(N={}));var C6=($,W={message:`Input not instance of ${$.name}`})=>hW((X)=>X instanceof $,W),mW=u.create,lW=_$.create,f6=j0.create,T6=B$.create,cW=m$.create,P6=j$.create,k6=w0.create,I6=l$.create,b6=c$.create,x6=S$.create,Z6=q$.create,v6=o.create,g6=D0.create,y6=p.create,h6=E.create,m6=E.strictCreate,l6=u$.create,c6=J8.create,u6=p$.create,p6=r.create,d6=L0.create,i6=F0.create,n6=E$.create,a6=h$.create,o6=d$.create,r6=i$.create,t6=M$.create,s6=n$.create,e6=R$.create,$9=n.create,W9=d.create,X9=G$.create,G9=n.createWithPreprocess,J9=S0.create,Y9=()=>mW().optional(),Q9=()=>lW().optional(),z9=()=>cW().optional(),H9={string:($)=>u.create({...$,coerce:!0}),number:($)=>_$.create({...$,coerce:!0}),boolean:($)=>m$.create({...$,coerce:!0}),bigint:($)=>B$.create({...$,coerce:!0}),date:($)=>j$.create({...$,coerce:!0})};var V9=U;function uW($){return{name:"mem-recall",description:"Fetch full observation details by ID. Use after mem-search to get complete narratives, facts, concepts, and file lists for specific observations.",args:{ids:A.array(A.string()).describe("Observation IDs to fetch"),limit:A.number().min(1).max(50).default(10).describe("Maximum number of results")},execute:async(W)=>{try{let X=W.ids,G=W.limit||10,J=X.slice(0,G),Y=[];for(let Q of J){let z=$.getById(Q);if(z)Y.push(q9(z));else Y.push(`## ID: ${Q}
|
|
323
|
-
*Not found*`)}if(
|
|
301
|
+
LIMIT ?`,[$,W]).map((J)=>this.mapRow(J))}mapRow($){return{id:$.id,sessionId:$.session_id,summary:$.summary,keyDecisions:JSON.parse($.key_decisions),filesModified:JSON.parse($.files_modified),concepts:JSON.parse($.concepts),createdAt:$.created_at,tokenCount:$.token_count,request:$.request||void 0,investigated:$.investigated||void 0,learned:$.learned||void 0,completed:$.completed||void 0,nextSteps:$.next_steps||void 0}}}var lW={showTokenCosts:!0,observationTypes:"all",fullObservationCount:3,showLastSummary:!0},g$={bugfix:"\uD83D\uDD34",feature:"\uD83D\uDFE3",refactor:"\uD83D\uDD04",change:"\u2705",discovery:"\uD83D\uDD35",decision:"\u2696\uFE0F"};function s$($,W=lW){let J=[];if(J.push("## open-mem: Past Session Memory"),J.push(""),J.push("**\uD83D\uDCA1 Progressive Disclosure:** This is a compact index showing WHAT was observed and retrieval COST."),J.push("Use `mem-search` to find observations by query, then `mem-recall` with IDs to fetch full details."),W.showLastSummary&&$.recentSummaries.length>0){J.push(""),J.push("### Recent Sessions"),J.push("| Session | Summary | Decisions |"),J.push("|---------|---------|-----------|");for(let _ of $.recentSummaries){let H=_.keyDecisions.length>0?_.keyDecisions.join("; "):"\u2014";J.push(`| ${_.sessionId} | ${_.summary} | ${H} |`)}}let Q=W.observationTypes==="all"?$.observationIndex:$.observationIndex.filter((_)=>W.observationTypes.includes(_.type));if(Q.length>0){J.push(""),J.push(`### Recent Observations (${Q.length} entries)`);let _=mW(Q,$.fullObservations);for(let[H,G]of _){if(J.push(""),J.push(`**${H}**`),W.showTokenCosts)J.push("| ID | Type | Title | ~Tokens |"),J.push("|----|------|-------|---------|");else J.push("| ID | Type | Title |"),J.push("|----|------|-------|");for(let Y of G){let z=g$[Y.type]||"\uD83D\uDCDD";if(W.showTokenCosts)J.push(`| ${Y.id} | ${z} | ${Y.title} | ~${Y.tokenCount} |`);else J.push(`| ${Y.id} | ${z} | ${Y.title} |`)}}}let X=$.fullObservations.slice(0,W.fullObservationCount);if(X.length>0){J.push(""),J.push("### Full Details (most recent)");for(let _ of X){let H=g$[_.type]||"\uD83D\uDCDD";if(J.push(""),J.push(`#### ${H} ${_.title} (${_.id})`),J.push(_.narrative),_.facts.length>0)J.push(`**Facts:** ${_.facts.map((Y)=>`- ${Y}`).join(" ")}`);if(_.concepts.length>0)J.push(`**Concepts:** ${_.concepts.join(", ")}`);let G=[..._.filesRead,..._.filesModified];if(G.length>0)J.push(`**Files:** ${G.join(", ")}`)}}return J.join(`
|
|
302
|
+
`)}function mW($,W){let J=new Map;for(let X of W){let _=X.filesModified[0]||X.filesRead[0];if(_)J.set(X.id,_)}let Q=new Map;for(let X of $){let _=J.get(X.id)??"General",H=Q.get(_)??[];H.push(X),Q.set(_,H)}return Q}function e$($){let W=[];if(W.push("[open-mem] Memory context:"),$.recentSummaries.length>0){W.push(`
|
|
303
|
+
Recent sessions:`);for(let J of $.recentSummaries)W.push(`- ${J.summary}`)}if($.observationIndex.length>0){W.push(`
|
|
304
|
+
Recent observations (${$.observationIndex.length} entries):`);for(let J of $.observationIndex)W.push(`- ${g$[J.type]||"\uD83D\uDCDD"} ${J.title}`)}return W.join(`
|
|
305
|
+
`)}function N$($,W,J,Q,X=[]){let _=Q,H=[],G=[];for(let Y of W){let z=Y.tokenCount||Z(Y.summary);if(_-z<0)break;H.push(Y),_-=z}for(let Y of J){let z=Y.tokenCount||Z(Y.title);if(_-z<0)break;G.push(Y),_-=z}return{recentSummaries:H,observationIndex:G,fullObservations:[...X],totalTokens:Q-_}}function $W($,W,J,Q,X){return async(_,H)=>{try{if(!$.contextInjectionEnabled)return;let G=J.getRecent(X,3),Y=G.map((K)=>K.summaryId?Q.getBySessionId(K.id):null).filter((K)=>K!==null),z=W.getIndex(X,10);if(Y.length===0&&z.length===0)return;let A=N$(G,Y,z,Math.floor($.maxContextTokens/2));H.context.push(e$(A))}catch(G){console.error("[open-mem] Compaction hook error:",G)}}}function WW($,W,J,Q,X){return async(_,H)=>{try{if(!$.contextInjectionEnabled)return;let G=J.getRecent(X,5);if(G.length===0)return;let Y=G.map((P)=>P.summaryId?Q.getBySessionId(P.id):null).filter((P)=>P!==null),z=W.getIndex(X,$.maxObservations);if(Y.length===0&&z.length===0)return;let K=z.slice(0,$.contextFullObservationCount).map((P)=>P.id).map((P)=>W.getById(P)).filter((P)=>P!==null),n=N$(G,Y,z,$.maxContextTokens,K),C$={showTokenCosts:$.contextShowTokenCosts,observationTypes:$.contextObservationTypes,fullObservationCount:$.contextFullObservationCount,showLastSummary:$.contextShowLastSummary};H.system.push(s$(n,C$))}catch(G){console.error("[open-mem] Context injection error:",G)}}}function JW($,W,J){return async(Q)=>{try{let{event:X}=Q,_=X.properties.sessionID;switch(X.type){case"session.created":{if(_)W.getOrCreate(_,J);break}case"session.idle":{if(await $.processBatch(),_)W.updateStatus(_,"idle");break}case"session.completed":case"session.ended":{if(_)await $.processBatch(),await $.summarizeSession(_),W.markCompleted(_);break}default:break}}catch(X){console.error("[open-mem] Event handler error:",X)}}}function XW($,W,J,Q){return async(X,_)=>{try{let{tool:H,sessionID:G,callID:Y}=X,{output:z}=_;if($.ignoredTools.includes(H))return;if(!z||z.length<$.minOutputLength)return;let A=z;for(let K of $.sensitivePatterns)try{A=A.replace(new RegExp(K,"g"),"[REDACTED]")}catch{}A=A.replace(/<private>[\s\S]*?<\/private>/g,"[PRIVATE]"),J.getOrCreate(G,Q),W.enqueue(G,H,A,Y)}catch(H){console.error("[open-mem] Tool capture error:",H)}}}class x${config;compressor;summarizer;pendingRepo;observationRepo;sessionRepo;summaryRepo;processing=!1;timer=null;constructor($,W,J,Q,X,_,H){this.config=$;this.compressor=W;this.summarizer=J;this.pendingRepo=Q;this.observationRepo=X;this.sessionRepo=_;this.summaryRepo=H}enqueue($,W,J,Q){this.pendingRepo.create({sessionId:$,toolName:W,toolOutput:J,callId:Q})}async processBatch(){if(this.processing)return 0;this.processing=!0;let $=0;try{this.pendingRepo.resetStale(5);let W=this.pendingRepo.getPending(this.config.batchSize);if(W.length===0)return 0;for(let J of W)try{this.pendingRepo.markProcessing(J.id);let X=await this.compressor.compress(J.toolName,J.toolOutput)??this.compressor.createFallbackObservation(J.toolName,J.toolOutput);this.observationRepo.create({sessionId:J.sessionId,type:X.type,title:X.title,subtitle:X.subtitle,facts:X.facts,narrative:X.narrative,concepts:X.concepts,filesRead:X.filesRead,filesModified:X.filesModified,rawToolOutput:J.toolOutput,toolName:J.toolName,tokenCount:Z(`${X.title} ${X.narrative} ${X.facts.join(" ")}`)}),this.sessionRepo.incrementObservationCount(J.sessionId),this.pendingRepo.markCompleted(J.id),$++}catch(Q){this.pendingRepo.markFailed(J.id,String(Q))}return $}finally{this.processing=!1}}async summarizeSession($){let W=this.observationRepo.getBySession($);if(!this.summarizer.shouldSummarize(W.length))return;if(this.summaryRepo.getBySessionId($))return;let Q=await this.summarizer.summarize($,W);if(!Q)return;let X=this.summaryRepo.create({sessionId:$,summary:Q.summary,keyDecisions:Q.keyDecisions,filesModified:Q.filesModified,concepts:Q.concepts,tokenCount:Z(Q.summary)});this.sessionRepo.setSummary($,X.id)}start(){if(this.timer)return;this.timer=setInterval(async()=>{try{await this.processBatch()}catch{}},this.config.batchIntervalMs)}stop(){if(this.timer)clearInterval(this.timer),this.timer=null}get isRunning(){return this.timer!==null}get isProcessing(){return this.processing}getStats(){return{pending:this.pendingRepo.getPending(1000).length,processing:this.processing}}}var D={};KW(D,{void:()=>w0,util:()=>L,unknown:()=>N0,union:()=>f0,undefined:()=>R0,tuple:()=>P0,transformer:()=>u0,symbol:()=>A0,string:()=>zW,strictObject:()=>C0,setErrorMap:()=>pW,set:()=>T0,record:()=>I0,quotelessJson:()=>uW,promise:()=>m0,preprocess:()=>n0,pipeline:()=>d0,ostring:()=>i0,optional:()=>c0,onumber:()=>r0,oboolean:()=>a0,objectUtil:()=>y$,object:()=>v0,number:()=>jW,nullable:()=>p0,null:()=>D0,never:()=>K0,nativeEnum:()=>l0,nan:()=>U0,map:()=>h0,makeIssue:()=>E$,literal:()=>y0,lazy:()=>x0,late:()=>V0,isValid:()=>l,isDirty:()=>w$,isAsync:()=>e,isAborted:()=>K$,intersection:()=>b0,instanceof:()=>E0,getParsedType:()=>I,getErrorMap:()=>s,function:()=>g0,enum:()=>Z0,effect:()=>u0,discriminatedUnion:()=>k0,defaultErrorMap:()=>g,datetimeRegex:()=>MW,date:()=>L0,custom:()=>qW,coerce:()=>o0,boolean:()=>VW,bigint:()=>S0,array:()=>F0,any:()=>O0,addIssueToContext:()=>q,ZodVoid:()=>S$,ZodUnknown:()=>m,ZodUnion:()=>_$,ZodUndefined:()=>X$,ZodType:()=>S,ZodTuple:()=>T,ZodTransformer:()=>b,ZodSymbol:()=>U$,ZodString:()=>v,ZodSet:()=>o,ZodSchema:()=>S,ZodRecord:()=>L$,ZodReadonly:()=>z$,ZodPromise:()=>t,ZodPipeline:()=>D$,ZodParsedType:()=>B,ZodOptional:()=>f,ZodObject:()=>R,ZodNumber:()=>u,ZodNullable:()=>y,ZodNull:()=>Q$,ZodNever:()=>h,ZodNativeEnum:()=>M$,ZodNaN:()=>R$,ZodMap:()=>A$,ZodLiteral:()=>Y$,ZodLazy:()=>G$,ZodIssueCode:()=>M,ZodIntersection:()=>H$,ZodFunction:()=>W$,ZodFirstPartyTypeKind:()=>E,ZodError:()=>F,ZodEnum:()=>p,ZodEffects:()=>b,ZodDiscriminatedUnion:()=>F$,ZodDefault:()=>B$,ZodDate:()=>r,ZodCatch:()=>q$,ZodBranded:()=>v$,ZodBoolean:()=>J$,ZodBigInt:()=>c,ZodArray:()=>C,ZodAny:()=>a,Schema:()=>S,ParseStatus:()=>N,OK:()=>w,NEVER:()=>t0,INVALID:()=>V,EMPTY_PATH:()=>nW,DIRTY:()=>i,BRAND:()=>j0});var L;(function($){$.assertEqual=(X)=>{};function W(X){}$.assertIs=W;function J(X){throw Error()}$.assertNever=J,$.arrayToEnum=(X)=>{let _={};for(let H of X)_[H]=H;return _},$.getValidEnumValues=(X)=>{let _=$.objectKeys(X).filter((G)=>typeof X[X[G]]!=="number"),H={};for(let G of _)H[G]=X[G];return $.objectValues(H)},$.objectValues=(X)=>{return $.objectKeys(X).map(function(_){return X[_]})},$.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let _=[];for(let H in X)if(Object.prototype.hasOwnProperty.call(X,H))_.push(H);return _},$.find=(X,_)=>{for(let H of X)if(_(H))return H;return},$.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&Number.isFinite(X)&&Math.floor(X)===X;function Q(X,_=" | "){return X.map((H)=>typeof H==="string"?`'${H}'`:H).join(_)}$.joinValues=Q,$.jsonStringifyReplacer=(X,_)=>{if(typeof _==="bigint")return _.toString();return _}})(L||(L={}));var y$;(function($){$.mergeShapes=(W,J)=>{return{...W,...J}}})(y$||(y$={}));var B=L.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),I=($)=>{switch(typeof $){case"undefined":return B.undefined;case"string":return B.string;case"number":return Number.isNaN($)?B.nan:B.number;case"boolean":return B.boolean;case"function":return B.function;case"bigint":return B.bigint;case"symbol":return B.symbol;case"object":if(Array.isArray($))return B.array;if($===null)return B.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return B.promise;if(typeof Map<"u"&&$ instanceof Map)return B.map;if(typeof Set<"u"&&$ instanceof Set)return B.set;if(typeof Date<"u"&&$ instanceof Date)return B.date;return B.object;default:return B.unknown}};var M=L.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"]),uW=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class F extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let W=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,W);else this.__proto__=W;this.name="ZodError",this.issues=$}format($){let W=$||function(X){return X.message},J={_errors:[]},Q=(X)=>{for(let _ of X.issues)if(_.code==="invalid_union")_.unionErrors.map(Q);else if(_.code==="invalid_return_type")Q(_.returnTypeError);else if(_.code==="invalid_arguments")Q(_.argumentsError);else if(_.path.length===0)J._errors.push(W(_));else{let H=J,G=0;while(G<_.path.length){let Y=_.path[G];if(G!==_.path.length-1)H[Y]=H[Y]||{_errors:[]};else H[Y]=H[Y]||{_errors:[]},H[Y]._errors.push(W(_));H=H[Y],G++}}};return Q(this),J}static assert($){if(!($ instanceof F))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,L.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(W)=>W.message){let W={},J=[];for(let Q of this.issues)if(Q.path.length>0){let X=Q.path[0];W[X]=W[X]||[],W[X].push($(Q))}else J.push($(Q));return{formErrors:J,fieldErrors:W}}get formErrors(){return this.flatten()}}F.create=($)=>{return new F($)};var cW=($,W)=>{let J;switch($.code){case M.invalid_type:if($.received===B.undefined)J="Required";else J=`Expected ${$.expected}, received ${$.received}`;break;case M.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify($.expected,L.jsonStringifyReplacer)}`;break;case M.unrecognized_keys:J=`Unrecognized key(s) in object: ${L.joinValues($.keys,", ")}`;break;case M.invalid_union:J="Invalid input";break;case M.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${L.joinValues($.options)}`;break;case M.invalid_enum_value:J=`Invalid enum value. Expected ${L.joinValues($.options)}, received '${$.received}'`;break;case M.invalid_arguments:J="Invalid function arguments";break;case M.invalid_return_type:J="Invalid function return type";break;case M.invalid_date:J="Invalid date";break;case M.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(J=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)J=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)J=`Invalid input: must end with "${$.validation.endsWith}"`;else L.assertNever($.validation);else if($.validation!=="regex")J=`Invalid ${$.validation}`;else J="Invalid";break;case M.too_small:if($.type==="array")J=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")J=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")J=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")J=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")J=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else J="Invalid input";break;case M.too_big:if($.type==="array")J=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")J=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")J=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")J=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")J=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else J="Invalid input";break;case M.custom:J="Invalid input";break;case M.invalid_intersection_types:J="Intersection results could not be merged";break;case M.not_multiple_of:J=`Number must be a multiple of ${$.multipleOf}`;break;case M.not_finite:J="Number must be finite";break;default:J=W.defaultError,L.assertNever($)}return{message:J}},g=cW;var QW=g;function pW($){QW=$}function s(){return QW}var E$=($)=>{let{data:W,path:J,errorMaps:Q,issueData:X}=$,_=[...J,...X.path||[]],H={...X,path:_};if(X.message!==void 0)return{...X,path:_,message:X.message};let G="",Y=Q.filter((z)=>!!z).slice().reverse();for(let z of Y)G=z(H,{data:W,defaultError:G}).message;return{...X,path:_,message:G}},nW=[];function q($,W){let J=s(),Q=E$({issueData:W,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,J,J===g?void 0:g].filter((X)=>!!X)});$.common.issues.push(Q)}class N{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,W){let J=[];for(let Q of W){if(Q.status==="aborted")return V;if(Q.status==="dirty")$.dirty();J.push(Q.value)}return{status:$.value,value:J}}static async mergeObjectAsync($,W){let J=[];for(let Q of W){let X=await Q.key,_=await Q.value;J.push({key:X,value:_})}return N.mergeObjectSync($,J)}static mergeObjectSync($,W){let J={};for(let Q of W){let{key:X,value:_}=Q;if(X.status==="aborted")return V;if(_.status==="aborted")return V;if(X.status==="dirty")$.dirty();if(_.status==="dirty")$.dirty();if(X.value!=="__proto__"&&(typeof _.value<"u"||Q.alwaysSet))J[X.value]=_.value}return{status:$.value,value:J}}}var V=Object.freeze({status:"aborted"}),i=($)=>({status:"dirty",value:$}),w=($)=>({status:"valid",value:$}),K$=($)=>$.status==="aborted",w$=($)=>$.status==="dirty",l=($)=>$.status==="valid",e=($)=>typeof Promise<"u"&&$ instanceof Promise;var j;(function($){$.errToObj=(W)=>typeof W==="string"?{message:W}:W||{},$.toString=(W)=>typeof W==="string"?W:W?.message})(j||(j={}));class k{constructor($,W,J,Q){this._cachedPath=[],this.parent=$,this.data=W,this._path=J,this._key=Q}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var _W=($,W)=>{if(l(W))return{success:!0,data:W.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new F($.common.issues);return this._error=J,this._error}}}};function U($){if(!$)return{};let{errorMap:W,invalid_type_error:J,required_error:Q,description:X}=$;if(W&&(J||Q))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(W)return{errorMap:W,description:X};return{errorMap:(H,G)=>{let{message:Y}=$;if(H.code==="invalid_enum_value")return{message:Y??G.defaultError};if(typeof G.data>"u")return{message:Y??Q??G.defaultError};if(H.code!=="invalid_type")return{message:G.defaultError};return{message:Y??J??G.defaultError}},description:X}}class S{get description(){return this._def.description}_getType($){return I($.data)}_getOrReturnCtx($,W){return W||{common:$.parent.common,data:$.data,parsedType:I($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new N,ctx:{common:$.parent.common,data:$.data,parsedType:I($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let W=this._parse($);if(e(W))throw Error("Synchronous parse encountered promise.");return W}_parseAsync($){let W=this._parse($);return Promise.resolve(W)}parse($,W){let J=this.safeParse($,W);if(J.success)return J.data;throw J.error}safeParse($,W){let J={common:{issues:[],async:W?.async??!1,contextualErrorMap:W?.errorMap},path:W?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:I($)},Q=this._parseSync({data:$,path:J.path,parent:J});return _W(J,Q)}"~validate"($){let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:I($)};if(!this["~standard"].async)try{let J=this._parseSync({data:$,path:[],parent:W});return l(J)?{value:J.value}:{issues:W.common.issues}}catch(J){if(J?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;W.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:W}).then((J)=>l(J)?{value:J.value}:{issues:W.common.issues})}async parseAsync($,W){let J=await this.safeParseAsync($,W);if(J.success)return J.data;throw J.error}async safeParseAsync($,W){let J={common:{issues:[],contextualErrorMap:W?.errorMap,async:!0},path:W?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:I($)},Q=this._parse({data:$,path:J.path,parent:J}),X=await(e(Q)?Q:Promise.resolve(Q));return _W(J,X)}refine($,W){let J=(Q)=>{if(typeof W==="string"||typeof W>"u")return{message:W};else if(typeof W==="function")return W(Q);else return W};return this._refinement((Q,X)=>{let _=$(Q),H=()=>X.addIssue({code:M.custom,...J(Q)});if(typeof Promise<"u"&&_ instanceof Promise)return _.then((G)=>{if(!G)return H(),!1;else return!0});if(!_)return H(),!1;else return!0})}refinement($,W){return this._refinement((J,Q)=>{if(!$(J))return Q.addIssue(typeof W==="function"?W(J,Q):W),!1;else return!0})}_refinement($){return new b({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,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:(W)=>this["~validate"](W)}}optional(){return f.create(this,this._def)}nullable(){return y.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return C.create(this)}promise(){return t.create(this,this._def)}or($){return _$.create([this,$],this._def)}and($){return H$.create(this,$,this._def)}transform($){return new b({...U(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:$}})}default($){let W=typeof $==="function"?$:()=>$;return new B$({...U(this._def),innerType:this,defaultValue:W,typeName:E.ZodDefault})}brand(){return new v$({typeName:E.ZodBranded,type:this,...U(this._def)})}catch($){let W=typeof $==="function"?$:()=>$;return new q$({...U(this._def),innerType:this,catchValue:W,typeName:E.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return D$.create(this,$)}readonly(){return z$.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var dW=/^c[^\s-]{8,}$/i,iW=/^[0-9a-z]+$/,rW=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aW=/^[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,oW=/^[a-z0-9_-]{21}$/i,tW=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sW=/^[-+]?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)?)??$/,eW=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$0="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Z$,W0=/^(?:(?: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])$/,J0=/^(?:(?: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])$/,X0=/^(([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]))$/,Q0=/^(([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])$/,_0=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,H0=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,GW="((\\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])))",G0=new RegExp(`^${GW}$`);function YW($){let W="[0-5]\\d";if($.precision)W=`${W}\\.\\d{${$.precision}}`;else if($.precision==null)W=`${W}(\\.\\d+)?`;let J=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${W})${J}`}function Y0($){return new RegExp(`^${YW($)}$`)}function MW($){let W=`${GW}T${YW($)}`,J=[];if(J.push($.local?"Z?":"Z"),$.offset)J.push("([+-]\\d{2}:?\\d{2})");return W=`${W}(${J.join("|")})`,new RegExp(`^${W}$`)}function M0($,W){if((W==="v4"||!W)&&W0.test($))return!0;if((W==="v6"||!W)&&X0.test($))return!0;return!1}function B0($,W){if(!tW.test($))return!1;try{let[J]=$.split(".");if(!J)return!1;let Q=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),X=JSON.parse(atob(Q));if(typeof X!=="object"||X===null)return!1;if("typ"in X&&X?.typ!=="JWT")return!1;if(!X.alg)return!1;if(W&&X.alg!==W)return!1;return!0}catch{return!1}}function q0($,W){if((W==="v4"||!W)&&J0.test($))return!0;if((W==="v6"||!W)&&Q0.test($))return!0;return!1}class v extends S{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==B.string){let X=this._getOrReturnCtx($);return q(X,{code:M.invalid_type,expected:B.string,received:X.parsedType}),V}let J=new N,Q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if($.data.length<X.value)Q=this._getOrReturnCtx($,Q),q(Q,{code:M.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="max"){if($.data.length>X.value)Q=this._getOrReturnCtx($,Q),q(Q,{code:M.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="length"){let _=$.data.length>X.value,H=$.data.length<X.value;if(_||H){if(Q=this._getOrReturnCtx($,Q),_)q(Q,{code:M.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if(H)q(Q,{code:M.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});J.dirty()}}else if(X.kind==="email"){if(!eW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"email",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="emoji"){if(!Z$)Z$=new RegExp($0,"u");if(!Z$.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"emoji",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="uuid"){if(!aW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"uuid",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="nanoid"){if(!oW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"nanoid",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid"){if(!dW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"cuid",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid2"){if(!iW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"cuid2",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ulid"){if(!rW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"ulid",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="url")try{new URL($.data)}catch{Q=this._getOrReturnCtx($,Q),q(Q,{validation:"url",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"regex",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="trim")$.data=$.data.trim();else if(X.kind==="includes"){if(!$.data.includes(X.value,X.position))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),J.dirty()}else if(X.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(X.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(X.kind==="startsWith"){if(!$.data.startsWith(X.value))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:{startsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="endsWith"){if(!$.data.endsWith(X.value))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:{endsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="datetime"){if(!MW(X).test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:"datetime",message:X.message}),J.dirty()}else if(X.kind==="date"){if(!G0.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:"date",message:X.message}),J.dirty()}else if(X.kind==="time"){if(!Y0(X).test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{code:M.invalid_string,validation:"time",message:X.message}),J.dirty()}else if(X.kind==="duration"){if(!sW.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"duration",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ip"){if(!M0($.data,X.version))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"ip",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="jwt"){if(!B0($.data,X.alg))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"jwt",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cidr"){if(!q0($.data,X.version))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"cidr",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64"){if(!_0.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"base64",code:M.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64url"){if(!H0.test($.data))Q=this._getOrReturnCtx($,Q),q(Q,{validation:"base64url",code:M.invalid_string,message:X.message}),J.dirty()}else L.assertNever(X);return{status:J.value,value:$.data}}_regex($,W,J){return this.refinement((Q)=>$.test(Q),{validation:W,code:M.invalid_string,...j.errToObj(J)})}_addCheck($){return new v({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...j.errToObj($)})}url($){return this._addCheck({kind:"url",...j.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...j.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...j.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...j.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...j.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...j.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...j.errToObj($)})}base64($){return this._addCheck({kind:"base64",...j.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...j.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...j.errToObj($)})}ip($){return this._addCheck({kind:"ip",...j.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...j.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...j.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...j.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...j.errToObj($)})}regex($,W){return this._addCheck({kind:"regex",regex:$,...j.errToObj(W)})}includes($,W){return this._addCheck({kind:"includes",value:$,position:W?.position,...j.errToObj(W?.message)})}startsWith($,W){return this._addCheck({kind:"startsWith",value:$,...j.errToObj(W)})}endsWith($,W){return this._addCheck({kind:"endsWith",value:$,...j.errToObj(W)})}min($,W){return this._addCheck({kind:"min",value:$,...j.errToObj(W)})}max($,W){return this._addCheck({kind:"max",value:$,...j.errToObj(W)})}length($,W){return this._addCheck({kind:"length",value:$,...j.errToObj(W)})}nonempty($){return this.min(1,j.errToObj($))}trim(){return new v({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new v({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new v({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxLength(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}}v.create=($)=>{return new v({checks:[],typeName:E.ZodString,coerce:$?.coerce??!1,...U($)})};function z0($,W){let J=($.toString().split(".")[1]||"").length,Q=(W.toString().split(".")[1]||"").length,X=J>Q?J:Q,_=Number.parseInt($.toFixed(X).replace(".","")),H=Number.parseInt(W.toFixed(X).replace(".",""));return _%H/10**X}class u extends S{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==B.number){let X=this._getOrReturnCtx($);return q(X,{code:M.invalid_type,expected:B.number,received:X.parsedType}),V}let J=void 0,Q=new N;for(let X of this._def.checks)if(X.kind==="int"){if(!L.isInteger($.data))J=this._getOrReturnCtx($,J),q(J,{code:M.invalid_type,expected:"integer",received:"float",message:X.message}),Q.dirty()}else if(X.kind==="min"){if(X.inclusive?$.data<X.value:$.data<=X.value)J=this._getOrReturnCtx($,J),q(J,{code:M.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="max"){if(X.inclusive?$.data>X.value:$.data>=X.value)J=this._getOrReturnCtx($,J),q(J,{code:M.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="multipleOf"){if(z0($.data,X.value)!==0)J=this._getOrReturnCtx($,J),q(J,{code:M.not_multiple_of,multipleOf:X.value,message:X.message}),Q.dirty()}else if(X.kind==="finite"){if(!Number.isFinite($.data))J=this._getOrReturnCtx($,J),q(J,{code:M.not_finite,message:X.message}),Q.dirty()}else L.assertNever(X);return{status:Q.value,value:$.data}}gte($,W){return this.setLimit("min",$,!0,j.toString(W))}gt($,W){return this.setLimit("min",$,!1,j.toString(W))}lte($,W){return this.setLimit("max",$,!0,j.toString(W))}lt($,W){return this.setLimit("max",$,!1,j.toString(W))}setLimit($,W,J,Q){return new u({...this._def,checks:[...this._def.checks,{kind:$,value:W,inclusive:J,message:j.toString(Q)}]})}_addCheck($){return new u({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:j.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:j.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:j.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:j.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:j.toString($)})}multipleOf($,W){return this._addCheck({kind:"multipleOf",value:$,message:j.toString(W)})}finite($){return this._addCheck({kind:"finite",message:j.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:j.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:j.toString($)})}get minValue(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxValue(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&L.isInteger($.value))}get isFinite(){let $=null,W=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if(W===null||J.value>W)W=J.value}else if(J.kind==="max"){if($===null||J.value<$)$=J.value}return Number.isFinite(W)&&Number.isFinite($)}}u.create=($)=>{return new u({checks:[],typeName:E.ZodNumber,coerce:$?.coerce||!1,...U($)})};class c extends S{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==B.bigint)return this._getInvalidInput($);let J=void 0,Q=new N;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?$.data<X.value:$.data<=X.value)J=this._getOrReturnCtx($,J),q(J,{code:M.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),Q.dirty()}else if(X.kind==="max"){if(X.inclusive?$.data>X.value:$.data>=X.value)J=this._getOrReturnCtx($,J),q(J,{code:M.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),Q.dirty()}else if(X.kind==="multipleOf"){if($.data%X.value!==BigInt(0))J=this._getOrReturnCtx($,J),q(J,{code:M.not_multiple_of,multipleOf:X.value,message:X.message}),Q.dirty()}else L.assertNever(X);return{status:Q.value,value:$.data}}_getInvalidInput($){let W=this._getOrReturnCtx($);return q(W,{code:M.invalid_type,expected:B.bigint,received:W.parsedType}),V}gte($,W){return this.setLimit("min",$,!0,j.toString(W))}gt($,W){return this.setLimit("min",$,!1,j.toString(W))}lte($,W){return this.setLimit("max",$,!0,j.toString(W))}lt($,W){return this.setLimit("max",$,!1,j.toString(W))}setLimit($,W,J,Q){return new c({...this._def,checks:[...this._def.checks,{kind:$,value:W,inclusive:J,message:j.toString(Q)}]})}_addCheck($){return new c({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:j.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:j.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:j.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:j.toString($)})}multipleOf($,W){return this._addCheck({kind:"multipleOf",value:$,message:j.toString(W)})}get minValue(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $}get maxValue(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $}}c.create=($)=>{return new c({checks:[],typeName:E.ZodBigInt,coerce:$?.coerce??!1,...U($)})};class J$ extends S{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==B.boolean){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.boolean,received:J.parsedType}),V}return w($.data)}}J$.create=($)=>{return new J$({typeName:E.ZodBoolean,coerce:$?.coerce||!1,...U($)})};class r extends S{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==B.date){let X=this._getOrReturnCtx($);return q(X,{code:M.invalid_type,expected:B.date,received:X.parsedType}),V}if(Number.isNaN($.data.getTime())){let X=this._getOrReturnCtx($);return q(X,{code:M.invalid_date}),V}let J=new N,Q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if($.data.getTime()<X.value)Q=this._getOrReturnCtx($,Q),q(Q,{code:M.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),J.dirty()}else if(X.kind==="max"){if($.data.getTime()>X.value)Q=this._getOrReturnCtx($,Q),q(Q,{code:M.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),J.dirty()}else L.assertNever(X);return{status:J.value,value:new Date($.data.getTime())}}_addCheck($){return new r({...this._def,checks:[...this._def.checks,$]})}min($,W){return this._addCheck({kind:"min",value:$.getTime(),message:j.toString(W)})}max($,W){return this._addCheck({kind:"max",value:$.getTime(),message:j.toString(W)})}get minDate(){let $=null;for(let W of this._def.checks)if(W.kind==="min"){if($===null||W.value>$)$=W.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let W of this._def.checks)if(W.kind==="max"){if($===null||W.value<$)$=W.value}return $!=null?new Date($):null}}r.create=($)=>{return new r({checks:[],coerce:$?.coerce||!1,typeName:E.ZodDate,...U($)})};class U$ extends S{_parse($){if(this._getType($)!==B.symbol){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.symbol,received:J.parsedType}),V}return w($.data)}}U$.create=($)=>{return new U$({typeName:E.ZodSymbol,...U($)})};class X$ extends S{_parse($){if(this._getType($)!==B.undefined){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.undefined,received:J.parsedType}),V}return w($.data)}}X$.create=($)=>{return new X$({typeName:E.ZodUndefined,...U($)})};class Q$ extends S{_parse($){if(this._getType($)!==B.null){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.null,received:J.parsedType}),V}return w($.data)}}Q$.create=($)=>{return new Q$({typeName:E.ZodNull,...U($)})};class a extends S{constructor(){super(...arguments);this._any=!0}_parse($){return w($.data)}}a.create=($)=>{return new a({typeName:E.ZodAny,...U($)})};class m extends S{constructor(){super(...arguments);this._unknown=!0}_parse($){return w($.data)}}m.create=($)=>{return new m({typeName:E.ZodUnknown,...U($)})};class h extends S{_parse($){let W=this._getOrReturnCtx($);return q(W,{code:M.invalid_type,expected:B.never,received:W.parsedType}),V}}h.create=($)=>{return new h({typeName:E.ZodNever,...U($)})};class S$ extends S{_parse($){if(this._getType($)!==B.undefined){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.void,received:J.parsedType}),V}return w($.data)}}S$.create=($)=>{return new S$({typeName:E.ZodVoid,...U($)})};class C extends S{_parse($){let{ctx:W,status:J}=this._processInputParams($),Q=this._def;if(W.parsedType!==B.array)return q(W,{code:M.invalid_type,expected:B.array,received:W.parsedType}),V;if(Q.exactLength!==null){let _=W.data.length>Q.exactLength.value,H=W.data.length<Q.exactLength.value;if(_||H)q(W,{code:_?M.too_big:M.too_small,minimum:H?Q.exactLength.value:void 0,maximum:_?Q.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Q.exactLength.message}),J.dirty()}if(Q.minLength!==null){if(W.data.length<Q.minLength.value)q(W,{code:M.too_small,minimum:Q.minLength.value,type:"array",inclusive:!0,exact:!1,message:Q.minLength.message}),J.dirty()}if(Q.maxLength!==null){if(W.data.length>Q.maxLength.value)q(W,{code:M.too_big,maximum:Q.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Q.maxLength.message}),J.dirty()}if(W.common.async)return Promise.all([...W.data].map((_,H)=>{return Q.type._parseAsync(new k(W,_,W.path,H))})).then((_)=>{return N.mergeArray(J,_)});let X=[...W.data].map((_,H)=>{return Q.type._parseSync(new k(W,_,W.path,H))});return N.mergeArray(J,X)}get element(){return this._def.type}min($,W){return new C({...this._def,minLength:{value:$,message:j.toString(W)}})}max($,W){return new C({...this._def,maxLength:{value:$,message:j.toString(W)}})}length($,W){return new C({...this._def,exactLength:{value:$,message:j.toString(W)}})}nonempty($){return this.min(1,$)}}C.create=($,W)=>{return new C({type:$,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...U(W)})};function $$($){if($ instanceof R){let W={};for(let J in $.shape){let Q=$.shape[J];W[J]=f.create($$(Q))}return new R({...$._def,shape:()=>W})}else if($ instanceof C)return new C({...$._def,type:$$($.element)});else if($ instanceof f)return f.create($$($.unwrap()));else if($ instanceof y)return y.create($$($.unwrap()));else if($ instanceof T)return T.create($.items.map((W)=>$$(W)));else return $}class R extends S{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),W=L.objectKeys($);return this._cached={shape:$,keys:W},this._cached}_parse($){if(this._getType($)!==B.object){let Y=this._getOrReturnCtx($);return q(Y,{code:M.invalid_type,expected:B.object,received:Y.parsedType}),V}let{status:J,ctx:Q}=this._processInputParams($),{shape:X,keys:_}=this._getCached(),H=[];if(!(this._def.catchall instanceof h&&this._def.unknownKeys==="strip")){for(let Y in Q.data)if(!_.includes(Y))H.push(Y)}let G=[];for(let Y of _){let z=X[Y],A=Q.data[Y];G.push({key:{status:"valid",value:Y},value:z._parse(new k(Q,A,Q.path,Y)),alwaysSet:Y in Q.data})}if(this._def.catchall instanceof h){let Y=this._def.unknownKeys;if(Y==="passthrough")for(let z of H)G.push({key:{status:"valid",value:z},value:{status:"valid",value:Q.data[z]}});else if(Y==="strict"){if(H.length>0)q(Q,{code:M.unrecognized_keys,keys:H}),J.dirty()}else if(Y==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let Y=this._def.catchall;for(let z of H){let A=Q.data[z];G.push({key:{status:"valid",value:z},value:Y._parse(new k(Q,A,Q.path,z)),alwaysSet:z in Q.data})}}if(Q.common.async)return Promise.resolve().then(async()=>{let Y=[];for(let z of G){let A=await z.key,K=await z.value;Y.push({key:A,value:K,alwaysSet:z.alwaysSet})}return Y}).then((Y)=>{return N.mergeObjectSync(J,Y)});else return N.mergeObjectSync(J,G)}get shape(){return this._def.shape()}strict($){return j.errToObj,new R({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(W,J)=>{let Q=this._def.errorMap?.(W,J).message??J.defaultError;if(W.code==="unrecognized_keys")return{message:j.errToObj($).message??Q};return{message:Q}}}:{}})}strip(){return new R({...this._def,unknownKeys:"strip"})}passthrough(){return new R({...this._def,unknownKeys:"passthrough"})}extend($){return new R({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new R({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:E.ZodObject})}setKey($,W){return this.augment({[$]:W})}catchall($){return new R({...this._def,catchall:$})}pick($){let W={};for(let J of L.objectKeys($))if($[J]&&this.shape[J])W[J]=this.shape[J];return new R({...this._def,shape:()=>W})}omit($){let W={};for(let J of L.objectKeys(this.shape))if(!$[J])W[J]=this.shape[J];return new R({...this._def,shape:()=>W})}deepPartial(){return $$(this)}partial($){let W={};for(let J of L.objectKeys(this.shape)){let Q=this.shape[J];if($&&!$[J])W[J]=Q;else W[J]=Q.optional()}return new R({...this._def,shape:()=>W})}required($){let W={};for(let J of L.objectKeys(this.shape))if($&&!$[J])W[J]=this.shape[J];else{let X=this.shape[J];while(X instanceof f)X=X._def.innerType;W[J]=X}return new R({...this._def,shape:()=>W})}keyof(){return BW(L.objectKeys(this.shape))}}R.create=($,W)=>{return new R({shape:()=>$,unknownKeys:"strip",catchall:h.create(),typeName:E.ZodObject,...U(W)})};R.strictCreate=($,W)=>{return new R({shape:()=>$,unknownKeys:"strict",catchall:h.create(),typeName:E.ZodObject,...U(W)})};R.lazycreate=($,W)=>{return new R({shape:$,unknownKeys:"strip",catchall:h.create(),typeName:E.ZodObject,...U(W)})};class _$ extends S{_parse($){let{ctx:W}=this._processInputParams($),J=this._def.options;function Q(X){for(let H of X)if(H.result.status==="valid")return H.result;for(let H of X)if(H.result.status==="dirty")return W.common.issues.push(...H.ctx.common.issues),H.result;let _=X.map((H)=>new F(H.ctx.common.issues));return q(W,{code:M.invalid_union,unionErrors:_}),V}if(W.common.async)return Promise.all(J.map(async(X)=>{let _={...W,common:{...W.common,issues:[]},parent:null};return{result:await X._parseAsync({data:W.data,path:W.path,parent:_}),ctx:_}})).then(Q);else{let X=void 0,_=[];for(let G of J){let Y={...W,common:{...W.common,issues:[]},parent:null},z=G._parseSync({data:W.data,path:W.path,parent:Y});if(z.status==="valid")return z;else if(z.status==="dirty"&&!X)X={result:z,ctx:Y};if(Y.common.issues.length)_.push(Y.common.issues)}if(X)return W.common.issues.push(...X.ctx.common.issues),X.result;let H=_.map((G)=>new F(G));return q(W,{code:M.invalid_union,unionErrors:H}),V}}get options(){return this._def.options}}_$.create=($,W)=>{return new _$({options:$,typeName:E.ZodUnion,...U(W)})};var x=($)=>{if($ instanceof G$)return x($.schema);else if($ instanceof b)return x($.innerType());else if($ instanceof Y$)return[$.value];else if($ instanceof p)return $.options;else if($ instanceof M$)return L.objectValues($.enum);else if($ instanceof B$)return x($._def.innerType);else if($ instanceof X$)return[void 0];else if($ instanceof Q$)return[null];else if($ instanceof f)return[void 0,...x($.unwrap())];else if($ instanceof y)return[null,...x($.unwrap())];else if($ instanceof v$)return x($.unwrap());else if($ instanceof z$)return x($.unwrap());else if($ instanceof q$)return x($._def.innerType);else return[]};class F$ extends S{_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==B.object)return q(W,{code:M.invalid_type,expected:B.object,received:W.parsedType}),V;let J=this.discriminator,Q=W.data[J],X=this.optionsMap.get(Q);if(!X)return q(W,{code:M.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),V;if(W.common.async)return X._parseAsync({data:W.data,path:W.path,parent:W});else return X._parseSync({data:W.data,path:W.path,parent:W})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,W,J){let Q=new Map;for(let X of W){let _=x(X.shape[$]);if(!_.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let H of _){if(Q.has(H))throw Error(`Discriminator property ${String($)} has duplicate value ${String(H)}`);Q.set(H,X)}}return new F$({typeName:E.ZodDiscriminatedUnion,discriminator:$,options:W,optionsMap:Q,...U(J)})}}function l$($,W){let J=I($),Q=I(W);if($===W)return{valid:!0,data:$};else if(J===B.object&&Q===B.object){let X=L.objectKeys(W),_=L.objectKeys($).filter((G)=>X.indexOf(G)!==-1),H={...$,...W};for(let G of _){let Y=l$($[G],W[G]);if(!Y.valid)return{valid:!1};H[G]=Y.data}return{valid:!0,data:H}}else if(J===B.array&&Q===B.array){if($.length!==W.length)return{valid:!1};let X=[];for(let _=0;_<$.length;_++){let H=$[_],G=W[_],Y=l$(H,G);if(!Y.valid)return{valid:!1};X.push(Y.data)}return{valid:!0,data:X}}else if(J===B.date&&Q===B.date&&+$===+W)return{valid:!0,data:$};else return{valid:!1}}class H$ extends S{_parse($){let{status:W,ctx:J}=this._processInputParams($),Q=(X,_)=>{if(K$(X)||K$(_))return V;let H=l$(X.value,_.value);if(!H.valid)return q(J,{code:M.invalid_intersection_types}),V;if(w$(X)||w$(_))W.dirty();return{status:W.value,value:H.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([X,_])=>Q(X,_));else return Q(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}H$.create=($,W,J)=>{return new H$({left:$,right:W,typeName:E.ZodIntersection,...U(J)})};class T extends S{_parse($){let{status:W,ctx:J}=this._processInputParams($);if(J.parsedType!==B.array)return q(J,{code:M.invalid_type,expected:B.array,received:J.parsedType}),V;if(J.data.length<this._def.items.length)return q(J,{code:M.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),V;if(!this._def.rest&&J.data.length>this._def.items.length)q(J,{code:M.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),W.dirty();let X=[...J.data].map((_,H)=>{let G=this._def.items[H]||this._def.rest;if(!G)return null;return G._parse(new k(J,_,J.path,H))}).filter((_)=>!!_);if(J.common.async)return Promise.all(X).then((_)=>{return N.mergeArray(W,_)});else return N.mergeArray(W,X)}get items(){return this._def.items}rest($){return new T({...this._def,rest:$})}}T.create=($,W)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new T({items:$,typeName:E.ZodTuple,rest:null,...U(W)})};class L$ extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:W,ctx:J}=this._processInputParams($);if(J.parsedType!==B.object)return q(J,{code:M.invalid_type,expected:B.object,received:J.parsedType}),V;let Q=[],X=this._def.keyType,_=this._def.valueType;for(let H in J.data)Q.push({key:X._parse(new k(J,H,J.path,H)),value:_._parse(new k(J,J.data[H],J.path,H)),alwaysSet:H in J.data});if(J.common.async)return N.mergeObjectAsync(W,Q);else return N.mergeObjectSync(W,Q)}get element(){return this._def.valueType}static create($,W,J){if(W instanceof S)return new L$({keyType:$,valueType:W,typeName:E.ZodRecord,...U(J)});return new L$({keyType:v.create(),valueType:$,typeName:E.ZodRecord,...U(W)})}}class A$ extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:W,ctx:J}=this._processInputParams($);if(J.parsedType!==B.map)return q(J,{code:M.invalid_type,expected:B.map,received:J.parsedType}),V;let Q=this._def.keyType,X=this._def.valueType,_=[...J.data.entries()].map(([H,G],Y)=>{return{key:Q._parse(new k(J,H,J.path,[Y,"key"])),value:X._parse(new k(J,G,J.path,[Y,"value"]))}});if(J.common.async){let H=new Map;return Promise.resolve().then(async()=>{for(let G of _){let Y=await G.key,z=await G.value;if(Y.status==="aborted"||z.status==="aborted")return V;if(Y.status==="dirty"||z.status==="dirty")W.dirty();H.set(Y.value,z.value)}return{status:W.value,value:H}})}else{let H=new Map;for(let G of _){let{key:Y,value:z}=G;if(Y.status==="aborted"||z.status==="aborted")return V;if(Y.status==="dirty"||z.status==="dirty")W.dirty();H.set(Y.value,z.value)}return{status:W.value,value:H}}}}A$.create=($,W,J)=>{return new A$({valueType:W,keyType:$,typeName:E.ZodMap,...U(J)})};class o extends S{_parse($){let{status:W,ctx:J}=this._processInputParams($);if(J.parsedType!==B.set)return q(J,{code:M.invalid_type,expected:B.set,received:J.parsedType}),V;let Q=this._def;if(Q.minSize!==null){if(J.data.size<Q.minSize.value)q(J,{code:M.too_small,minimum:Q.minSize.value,type:"set",inclusive:!0,exact:!1,message:Q.minSize.message}),W.dirty()}if(Q.maxSize!==null){if(J.data.size>Q.maxSize.value)q(J,{code:M.too_big,maximum:Q.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Q.maxSize.message}),W.dirty()}let X=this._def.valueType;function _(G){let Y=new Set;for(let z of G){if(z.status==="aborted")return V;if(z.status==="dirty")W.dirty();Y.add(z.value)}return{status:W.value,value:Y}}let H=[...J.data.values()].map((G,Y)=>X._parse(new k(J,G,J.path,Y)));if(J.common.async)return Promise.all(H).then((G)=>_(G));else return _(H)}min($,W){return new o({...this._def,minSize:{value:$,message:j.toString(W)}})}max($,W){return new o({...this._def,maxSize:{value:$,message:j.toString(W)}})}size($,W){return this.min($,W).max($,W)}nonempty($){return this.min(1,$)}}o.create=($,W)=>{return new o({valueType:$,minSize:null,maxSize:null,typeName:E.ZodSet,...U(W)})};class W$ extends S{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==B.function)return q(W,{code:M.invalid_type,expected:B.function,received:W.parsedType}),V;function J(H,G){return E$({data:H,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,s(),g].filter((Y)=>!!Y),issueData:{code:M.invalid_arguments,argumentsError:G}})}function Q(H,G){return E$({data:H,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,s(),g].filter((Y)=>!!Y),issueData:{code:M.invalid_return_type,returnTypeError:G}})}let X={errorMap:W.common.contextualErrorMap},_=W.data;if(this._def.returns instanceof t){let H=this;return w(async function(...G){let Y=new F([]),z=await H._def.args.parseAsync(G,X).catch((n)=>{throw Y.addIssue(J(G,n)),Y}),A=await Reflect.apply(_,this,z);return await H._def.returns._def.type.parseAsync(A,X).catch((n)=>{throw Y.addIssue(Q(A,n)),Y})})}else{let H=this;return w(function(...G){let Y=H._def.args.safeParse(G,X);if(!Y.success)throw new F([J(G,Y.error)]);let z=Reflect.apply(_,this,Y.data),A=H._def.returns.safeParse(z,X);if(!A.success)throw new F([Q(z,A.error)]);return A.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new W$({...this._def,args:T.create($).rest(m.create())})}returns($){return new W$({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,W,J){return new W$({args:$?$:T.create([]).rest(m.create()),returns:W||m.create(),typeName:E.ZodFunction,...U(J)})}}class G$ extends S{get schema(){return this._def.getter()}_parse($){let{ctx:W}=this._processInputParams($);return this._def.getter()._parse({data:W.data,path:W.path,parent:W})}}G$.create=($,W)=>{return new G$({getter:$,typeName:E.ZodLazy,...U(W)})};class Y$ extends S{_parse($){if($.data!==this._def.value){let W=this._getOrReturnCtx($);return q(W,{received:W.data,code:M.invalid_literal,expected:this._def.value}),V}return{status:"valid",value:$.data}}get value(){return this._def.value}}Y$.create=($,W)=>{return new Y$({value:$,typeName:E.ZodLiteral,...U(W)})};function BW($,W){return new p({values:$,typeName:E.ZodEnum,...U(W)})}class p extends S{_parse($){if(typeof $.data!=="string"){let W=this._getOrReturnCtx($),J=this._def.values;return q(W,{expected:L.joinValues(J),received:W.parsedType,code:M.invalid_type}),V}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let W=this._getOrReturnCtx($),J=this._def.values;return q(W,{received:W.data,code:M.invalid_enum_value,options:J}),V}return w($.data)}get options(){return this._def.values}get enum(){let $={};for(let W of this._def.values)$[W]=W;return $}get Values(){let $={};for(let W of this._def.values)$[W]=W;return $}get Enum(){let $={};for(let W of this._def.values)$[W]=W;return $}extract($,W=this._def){return p.create($,{...this._def,...W})}exclude($,W=this._def){return p.create(this.options.filter((J)=>!$.includes(J)),{...this._def,...W})}}p.create=BW;class M$ extends S{_parse($){let W=L.getValidEnumValues(this._def.values),J=this._getOrReturnCtx($);if(J.parsedType!==B.string&&J.parsedType!==B.number){let Q=L.objectValues(W);return q(J,{expected:L.joinValues(Q),received:J.parsedType,code:M.invalid_type}),V}if(!this._cache)this._cache=new Set(L.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let Q=L.objectValues(W);return q(J,{received:J.data,code:M.invalid_enum_value,options:Q}),V}return w($.data)}get enum(){return this._def.values}}M$.create=($,W)=>{return new M$({values:$,typeName:E.ZodNativeEnum,...U(W)})};class t extends S{unwrap(){return this._def.type}_parse($){let{ctx:W}=this._processInputParams($);if(W.parsedType!==B.promise&&W.common.async===!1)return q(W,{code:M.invalid_type,expected:B.promise,received:W.parsedType}),V;let J=W.parsedType===B.promise?W.data:Promise.resolve(W.data);return w(J.then((Q)=>{return this._def.type.parseAsync(Q,{path:W.path,errorMap:W.common.contextualErrorMap})}))}}t.create=($,W)=>{return new t({type:$,typeName:E.ZodPromise,...U(W)})};class b extends S{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:W,ctx:J}=this._processInputParams($),Q=this._def.effect||null,X={addIssue:(_)=>{if(q(J,_),_.fatal)W.abort();else W.dirty()},get path(){return J.path}};if(X.addIssue=X.addIssue.bind(X),Q.type==="preprocess"){let _=Q.transform(J.data,X);if(J.common.async)return Promise.resolve(_).then(async(H)=>{if(W.value==="aborted")return V;let G=await this._def.schema._parseAsync({data:H,path:J.path,parent:J});if(G.status==="aborted")return V;if(G.status==="dirty")return i(G.value);if(W.value==="dirty")return i(G.value);return G});else{if(W.value==="aborted")return V;let H=this._def.schema._parseSync({data:_,path:J.path,parent:J});if(H.status==="aborted")return V;if(H.status==="dirty")return i(H.value);if(W.value==="dirty")return i(H.value);return H}}if(Q.type==="refinement"){let _=(H)=>{let G=Q.refinement(H,X);if(J.common.async)return Promise.resolve(G);if(G instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return H};if(J.common.async===!1){let H=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(H.status==="aborted")return V;if(H.status==="dirty")W.dirty();return _(H.value),{status:W.value,value:H.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((H)=>{if(H.status==="aborted")return V;if(H.status==="dirty")W.dirty();return _(H.value).then(()=>{return{status:W.value,value:H.value}})})}if(Q.type==="transform")if(J.common.async===!1){let _=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!l(_))return V;let H=Q.transform(_.value,X);if(H instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:W.value,value:H}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((_)=>{if(!l(_))return V;return Promise.resolve(Q.transform(_.value,X)).then((H)=>({status:W.value,value:H}))});L.assertNever(Q)}}b.create=($,W,J)=>{return new b({schema:$,typeName:E.ZodEffects,effect:W,...U(J)})};b.createWithPreprocess=($,W,J)=>{return new b({schema:W,effect:{type:"preprocess",transform:$},typeName:E.ZodEffects,...U(J)})};class f extends S{_parse($){if(this._getType($)===B.undefined)return w(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}f.create=($,W)=>{return new f({innerType:$,typeName:E.ZodOptional,...U(W)})};class y extends S{_parse($){if(this._getType($)===B.null)return w(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}y.create=($,W)=>{return new y({innerType:$,typeName:E.ZodNullable,...U(W)})};class B$ extends S{_parse($){let{ctx:W}=this._processInputParams($),J=W.data;if(W.parsedType===B.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:W.path,parent:W})}removeDefault(){return this._def.innerType}}B$.create=($,W)=>{return new B$({innerType:$,typeName:E.ZodDefault,defaultValue:typeof W.default==="function"?W.default:()=>W.default,...U(W)})};class q$ extends S{_parse($){let{ctx:W}=this._processInputParams($),J={...W,common:{...W.common,issues:[]}},Q=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(e(Q))return Q.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new F(J.common.issues)},input:J.data})}});else return{status:"valid",value:Q.status==="valid"?Q.value:this._def.catchValue({get error(){return new F(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}q$.create=($,W)=>{return new q$({innerType:$,typeName:E.ZodCatch,catchValue:typeof W.catch==="function"?W.catch:()=>W.catch,...U(W)})};class R$ extends S{_parse($){if(this._getType($)!==B.nan){let J=this._getOrReturnCtx($);return q(J,{code:M.invalid_type,expected:B.nan,received:J.parsedType}),V}return{status:"valid",value:$.data}}}R$.create=($)=>{return new R$({typeName:E.ZodNaN,...U($)})};var j0=Symbol("zod_brand");class v$ extends S{_parse($){let{ctx:W}=this._processInputParams($),J=W.data;return this._def.type._parse({data:J,path:W.path,parent:W})}unwrap(){return this._def.type}}class D$ extends S{_parse($){let{status:W,ctx:J}=this._processInputParams($);if(J.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(X.status==="aborted")return V;if(X.status==="dirty")return W.dirty(),i(X.value);else return this._def.out._parseAsync({data:X.value,path:J.path,parent:J})})();else{let Q=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(Q.status==="aborted")return V;if(Q.status==="dirty")return W.dirty(),{status:"dirty",value:Q.value};else return this._def.out._parseSync({data:Q.value,path:J.path,parent:J})}}static create($,W){return new D$({in:$,out:W,typeName:E.ZodPipeline})}}class z$ extends S{_parse($){let W=this._def.innerType._parse($),J=(Q)=>{if(l(Q))Q.value=Object.freeze(Q.value);return Q};return e(W)?W.then((Q)=>J(Q)):J(W)}unwrap(){return this._def.innerType}}z$.create=($,W)=>{return new z$({innerType:$,typeName:E.ZodReadonly,...U(W)})};function HW($,W){let J=typeof $==="function"?$(W):typeof $==="string"?{message:$}:$;return typeof J==="string"?{message:J}:J}function qW($,W={},J){if($)return a.create().superRefine((Q,X)=>{let _=$(Q);if(_ instanceof Promise)return _.then((H)=>{if(!H){let G=HW(W,Q),Y=G.fatal??J??!0;X.addIssue({code:"custom",...G,fatal:Y})}});if(!_){let H=HW(W,Q),G=H.fatal??J??!0;X.addIssue({code:"custom",...H,fatal:G})}return});return a.create()}var V0={object:R.lazycreate},E;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(E||(E={}));var E0=($,W={message:`Input not instance of ${$.name}`})=>qW((J)=>J instanceof $,W),zW=v.create,jW=u.create,U0=R$.create,S0=c.create,VW=J$.create,L0=r.create,A0=U$.create,R0=X$.create,D0=Q$.create,O0=a.create,N0=m.create,K0=h.create,w0=S$.create,F0=C.create,v0=R.create,C0=R.strictCreate,f0=_$.create,k0=F$.create,b0=H$.create,P0=T.create,I0=L$.create,h0=A$.create,T0=o.create,g0=W$.create,x0=G$.create,y0=Y$.create,Z0=p.create,l0=M$.create,m0=t.create,u0=b.create,c0=f.create,p0=y.create,n0=b.createWithPreprocess,d0=D$.create,i0=()=>zW().optional(),r0=()=>jW().optional(),a0=()=>VW().optional(),o0={string:($)=>v.create({...$,coerce:!0}),number:($)=>u.create({...$,coerce:!0}),boolean:($)=>J$.create({...$,coerce:!0}),bigint:($)=>c.create({...$,coerce:!0}),date:($)=>r.create({...$,coerce:!0})};var t0=V;function EW($){return{name:"mem-recall",description:"Fetch full observation details by ID. Use after mem-search to get complete narratives, facts, concepts, and file lists for specific observations.",args:{ids:D.array(D.string()).describe("Observation IDs to fetch"),limit:D.number().min(1).max(50).default(10).describe("Maximum number of results")},execute:async(W)=>{try{let J=W.ids,Q=W.limit||10,X=J.slice(0,Q),_=[];for(let H of X){let G=$.getById(H);if(G)_.push(s0(G));else _.push(`## ID: ${H}
|
|
306
|
+
*Not found*`)}if(_.length===0)return"No observation IDs provided.";return`Recalled ${_.length} observation(s):
|
|
324
307
|
|
|
325
|
-
${
|
|
308
|
+
${_.join(`
|
|
326
309
|
---
|
|
327
|
-
`)}`}catch(
|
|
310
|
+
`)}`}catch(J){return`Recall error: ${J}`}}}}function s0($){let W=[];if(W.push(`## [${$.type.toUpperCase()}] ${$.title}`),$.subtitle)W.push(`*${$.subtitle}*`);if(W.push(`
|
|
328
311
|
${$.narrative}`),$.facts.length>0){W.push(`
|
|
329
|
-
**Facts:**`);for(let
|
|
312
|
+
**Facts:**`);for(let J of $.facts)W.push(`- ${J}`)}if($.concepts.length>0)W.push(`
|
|
330
313
|
**Concepts:** ${$.concepts.join(", ")}`);if($.filesRead.length>0)W.push(`**Files read:** ${$.filesRead.join(", ")}`);if($.filesModified.length>0)W.push(`**Files modified:** ${$.filesModified.join(", ")}`);return W.push(`
|
|
331
314
|
*ID: ${$.id} | Created: ${$.createdAt} | Tokens: ${$.tokenCount}*`),W.join(`
|
|
332
|
-
`)}function
|
|
315
|
+
`)}function UW($,W,J){return{name:"mem-save",description:`Manually save an observation to memory.
|
|
333
316
|
Use this to explicitly record important decisions, discoveries, or context
|
|
334
|
-
that should be remembered across sessions.`,args:{title:
|
|
317
|
+
that should be remembered across sessions.`,args:{title:D.string().describe("Brief title for the observation (max 80 chars)"),type:D.enum(["decision","bugfix","feature","refactor","discovery","change"]).describe("Type of observation"),narrative:D.string().describe("Detailed description of what to remember"),concepts:D.array(D.string()).optional().describe("Related concepts/tags"),files:D.array(D.string()).optional().describe("Related file paths")},execute:async(Q,X)=>{try{let{title:_,type:H,narrative:G}=Q,Y=Q.concepts??[],z=Q.files??[];W.getOrCreate(X.sessionID,J);let A=$.create({sessionId:X.sessionID,type:H,title:_,subtitle:"",facts:[],narrative:G,concepts:Y,filesRead:[],filesModified:z,rawToolOutput:`[Manual save] ${G}`,toolName:"mem-save",tokenCount:Z(`${_} ${G}`)});return W.incrementObservationCount(X.sessionID),`Saved observation: [${H}] "${_}" (ID: ${A.id})`}catch(_){return`Save error: ${_}`}}}}function SW($,W){return{name:"mem-search",description:`Search through past coding session observations and memories.
|
|
335
318
|
Use this tool to find relevant context from previous sessions, including:
|
|
336
319
|
- Past decisions and their rationale
|
|
337
320
|
- Bug fixes and their solutions
|
|
@@ -339,23 +322,23 @@ Use this tool to find relevant context from previous sessions, including:
|
|
|
339
322
|
- File modification history
|
|
340
323
|
- Concept-based knowledge retrieval
|
|
341
324
|
|
|
342
|
-
Supports full-text search with FTS5.`,args:{query:
|
|
343
|
-
`];for(let{observation:
|
|
344
|
-
${
|
|
345
|
-
**Facts:**`);for(let
|
|
346
|
-
**Concepts:** ${
|
|
347
|
-
*Session: ${
|
|
348
|
-
`)}function
|
|
349
|
-
`];for(let
|
|
350
|
-
**Key decisions:**`);for(let
|
|
351
|
-
`)}function
|
|
352
|
-
Shows recent sessions with summaries, observation counts, and key decisions.`,args:{limit:
|
|
353
|
-
`];for(let
|
|
354
|
-
`)}catch(
|
|
355
|
-
`];if(
|
|
325
|
+
Supports full-text search with FTS5.`,args:{query:D.string().describe("Search query (supports keywords, phrases, file paths)"),type:D.enum(["decision","bugfix","feature","refactor","discovery","change"]).optional().describe("Filter by observation type"),limit:D.number().min(1).max(50).default(10).describe("Maximum number of results")},execute:async(J)=>{try{let{query:Q,type:X}=J,_=J.limit||10,H=$.search({query:Q,type:X,limit:_});if(H.length===0){let G=W.search(Q,_);if(G.length===0)return"No matching observations or session summaries found.";return $8(G)}return e0(H)}catch(Q){return`Search error: ${Q}`}}}}function e0($){let W=[`Found ${$.length} observation(s):
|
|
326
|
+
`];for(let{observation:J}of $){if(W.push(`## [${J.type.toUpperCase()}] ${J.title}`),J.subtitle)W.push(`*${J.subtitle}*`);if(W.push(`
|
|
327
|
+
${J.narrative}`),J.facts.length>0){W.push(`
|
|
328
|
+
**Facts:**`);for(let Q of J.facts)W.push(`- ${Q}`)}if(J.concepts.length>0)W.push(`
|
|
329
|
+
**Concepts:** ${J.concepts.join(", ")}`);if(J.filesModified.length>0)W.push(`**Files modified:** ${J.filesModified.join(", ")}`);if(J.filesRead.length>0)W.push(`**Files read:** ${J.filesRead.join(", ")}`);W.push(`
|
|
330
|
+
*Session: ${J.sessionId} | ${J.createdAt}*`),W.push("---")}return W.join(`
|
|
331
|
+
`)}function $8($){let W=[`Found ${$.length} session summary(ies):
|
|
332
|
+
`];for(let J of $){if(W.push(`## Session: ${J.sessionId}`),W.push(J.summary),J.keyDecisions.length>0){W.push(`
|
|
333
|
+
**Key decisions:**`);for(let Q of J.keyDecisions)W.push(`- ${Q}`)}W.push("---")}return W.join(`
|
|
334
|
+
`)}function LW($,W,J,Q){return{name:"mem-timeline",description:`View a timeline of past coding sessions for this project.
|
|
335
|
+
Shows recent sessions with summaries, observation counts, and key decisions.`,args:{limit:D.number().min(1).max(20).default(5).describe("Number of recent sessions to show"),sessionId:D.string().optional().describe("Show details for a specific session ID")},execute:async(X)=>{try{let _=X.limit||5,H=X.sessionId;if(H)return W8(H,$,W,J);let G=$.getRecent(Q,_);if(G.length===0)return"No past sessions found for this project.";let Y=[`# Session Timeline (${G.length} sessions)
|
|
336
|
+
`];for(let z of G){let A=z.summaryId?W.getBySessionId(z.id):null;if(Y.push(`## Session: ${z.id}`),Y.push(`- **Started**: ${z.startedAt}`),Y.push(`- **Status**: ${z.status}`),Y.push(`- **Observations**: ${z.observationCount}`),A){if(Y.push(`- **Summary**: ${A.summary}`),A.keyDecisions.length>0)Y.push(`- **Key decisions**: ${A.keyDecisions.join("; ")}`)}Y.push("")}return Y.join(`
|
|
337
|
+
`)}catch(_){return`Timeline error: ${_}`}}}}function W8($,W,J,Q){let X=W.getById($);if(!X)return`Session ${$} not found.`;let _=X.summaryId?J.getBySessionId($):null,H=Q.getBySession($),G=[`# Session Detail: ${$}
|
|
338
|
+
`];if(G.push(`- **Started**: ${X.startedAt}`),G.push(`- **Ended**: ${X.endedAt??"Active"}`),G.push(`- **Status**: ${X.status}`),G.push(`- **Observations**: ${X.observationCount}`),_){if(G.push(`
|
|
356
339
|
## Summary
|
|
357
|
-
${
|
|
358
|
-
**Key decisions:**`);for(let
|
|
359
|
-
## Observations`);for(let
|
|
360
|
-
### [${
|
|
361
|
-
`)}async function
|
|
340
|
+
${_.summary}`),_.keyDecisions.length>0){G.push(`
|
|
341
|
+
**Key decisions:**`);for(let Y of _.keyDecisions)G.push(`- ${Y}`)}}if(H.length>0){G.push(`
|
|
342
|
+
## Observations`);for(let Y of H)if(G.push(`
|
|
343
|
+
### [${Y.type.toUpperCase()}] ${Y.title}`),G.push(Y.narrative),Y.concepts.length>0)G.push(`*Concepts: ${Y.concepts.join(", ")}*`)}return G.join(`
|
|
344
|
+
`)}async function J8($){let{directory:W}=$,J=b$(W),Q=i$(J);for(let C$ of Q)console.warn(`[open-mem] ${C$}`);await r$(J);let X=o$(J.dbPath);t$(X);let _=new h$(X),H=new P$(X),G=new T$(X),Y=new I$(X),z=new V$(J),A=new k$(J),K=new x$(J,z,A,Y,H,_,G);K.start();let n=()=>{K.stop(),X.close()};return process.on("beforeExit",n),{"tool.execute.after":XW(J,K,_,W),event:JW(K,_,W),"experimental.chat.system.transform":WW(J,H,_,G,W),"experimental.session.compacting":$W(J,H,_,G,W),tools:[SW(H,G),UW(H,_,W),LW(_,G,H,W),EW(H)]}}export{b$ as resolveConfig,IW as getDefaultConfig,J8 as default};
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA,qDAAqD;AACrD,MAAM,MAAM,eAAe,GACxB,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEZ,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAClB;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CACd,GACD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACjB,CAAC;AAML,MAAM,WAAW,aAAa;IAE7B,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAGhC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAGxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IAGxB,eAAe,EAAE,MAAM,CAAC;IAGxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAG5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAG9C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACnD,2BAA2B,EAAE,MAAM,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAMD,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,OAAO,CAAC;CACX;AAED,gCAAgC;AAChC,MAAM,WAAW,KAAK;IACrB,oBAAoB,CAAC,EAAE,CACtB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1D,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,KACG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,cAAc,CAAC,EAAE,CAChB,KAAK,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,EACD,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,oCAAoC,CAAC,EAAE,CACtC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAC5C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,iCAAiC,CAAC,EAAE,CACnC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC5B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAM5D,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA,qDAAqD;AACrD,MAAM,MAAM,eAAe,GACxB,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEZ,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAClB;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CACd,GACD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACjB,CAAC;AAML,MAAM,WAAW,aAAa;IAE7B,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAGhC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAGxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IAGxB,eAAe,EAAE,MAAM,CAAC;IAGxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAG5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAG9C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACnD,2BAA2B,EAAE,MAAM,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAMD,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,OAAO,CAAC;CACX;AAED,gCAAgC;AAChC,MAAM,WAAW,KAAK;IACrB,oBAAoB,CAAC,EAAE,CACtB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1D,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,KACG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,cAAc,CAAC,EAAE,CAChB,KAAK,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,EACD,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,oCAAoC,CAAC,EAAE,CACtC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAC5C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,iCAAiC,CAAC,EAAE,CACnC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC5B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAM5D,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "open-mem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Persistent memory plugin for OpenCode — captures, compresses, and recalls context across coding sessions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"files": ["dist", "README.md", "LICENSE", "CHANGELOG.md"],
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "bun run build:bundle && bun run build:types",
|
|
18
|
-
"build:bundle": "bun build src/index.ts --outdir dist --target bun --format esm --minify --external bun:sqlite",
|
|
18
|
+
"build:bundle": "bun build src/index.ts --outdir dist --target bun --format esm --minify --external bun:sqlite --external ai --external @ai-sdk/anthropic --external @ai-sdk/amazon-bedrock --external @ai-sdk/openai --external @ai-sdk/google",
|
|
19
19
|
"build:types": "bun x tsc --declaration --emitDeclarationOnly --outDir dist",
|
|
20
20
|
"dev": "bun run --watch src/index.ts",
|
|
21
21
|
"test": "bun test",
|
|
@@ -49,7 +49,9 @@
|
|
|
49
49
|
"bun": ">=1.0.0"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@
|
|
52
|
+
"@ai-sdk/amazon-bedrock": "^4.0.51",
|
|
53
|
+
"@ai-sdk/anthropic": "^3.0.38",
|
|
54
|
+
"ai": "^6.0.75",
|
|
53
55
|
"zod": "^3.24.0"
|
|
54
56
|
},
|
|
55
57
|
"devDependencies": {
|