@perstack/core 0.0.7 → 0.0.9
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 +111 -0
- package/dist/src/index.d.ts +82 -4
- package/dist/src/index.js +86 -61
- package/dist/src/index.js.map +1 -1
- package/package.json +8 -8
package/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# @perstack/core
|
|
2
|
+
|
|
3
|
+
Centralized schema definitions and type contracts for the Perstack monorepo.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @perstack/core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### Validation
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { expertSchema, type Expert } from "@perstack/core"
|
|
17
|
+
const expert = expertSchema.parse(data)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Extending Core Schemas
|
|
21
|
+
|
|
22
|
+
When a package needs to add package-specific fields, extend the core schema:
|
|
23
|
+
```typescript
|
|
24
|
+
import { expertSchema } from "@perstack/core"
|
|
25
|
+
import { z } from "zod"
|
|
26
|
+
export const apiExpertSchema = expertSchema.omit({
|
|
27
|
+
skills: true,
|
|
28
|
+
delegates: true
|
|
29
|
+
}).extend({
|
|
30
|
+
id: z.cuid2(),
|
|
31
|
+
createdAt: z.date(),
|
|
32
|
+
updatedAt: z.date()
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Package Responsibilities
|
|
37
|
+
|
|
38
|
+
1. **Single Source of Truth**: All cross-package schemas live here.
|
|
39
|
+
2. **Version as Contract**: `major.minor` tracks interface changes; `patch` tracks fixes.
|
|
40
|
+
3. **Sync Updates**: Dependent packages must update in sync with `core` version changes.
|
|
41
|
+
|
|
42
|
+
### What Core Should Contain
|
|
43
|
+
|
|
44
|
+
1. **Package Boundary Schemas**: Type definitions for data that crosses package boundaries, for example:
|
|
45
|
+
- `Expert` - Expert definitions shared between runtime, api-client, and other packages
|
|
46
|
+
- `Skill` - Skill configurations used across the system
|
|
47
|
+
- `Message`, `ToolCall`, `ToolResult` - Runtime execution types
|
|
48
|
+
|
|
49
|
+
2. **Domain Common Types**: Types that represent core domain concepts used throughout the system, for example:
|
|
50
|
+
- `Checkpoint` - Execution state snapshots
|
|
51
|
+
- `Usage` - Resource usage tracking
|
|
52
|
+
- `ProviderConfig` - LLM provider configurations
|
|
53
|
+
|
|
54
|
+
3. **Configuration Schemas**: System-wide configuration structures, for example:
|
|
55
|
+
- `PerstackToml` - Project configuration file schema
|
|
56
|
+
- `RunCommand` - Runtime execution parameters
|
|
57
|
+
|
|
58
|
+
### What Core Should NOT Contain
|
|
59
|
+
|
|
60
|
+
1. **Package-Internal Types**: Implementation details that don't cross package boundaries should remain in their respective packages.
|
|
61
|
+
|
|
62
|
+
2. **Package-Specific Business Logic**: Core contains type definitions only. Business logic, utilities, and implementations belong in their respective packages.
|
|
63
|
+
|
|
64
|
+
3. **API-Specific Extensions**: API response/request schemas with API-specific metadata (ids, timestamps, pagination) should extend core schemas in `@perstack/api-client`.
|
|
65
|
+
|
|
66
|
+
4. **Tool Input Schemas (Exception)**: The `@perstack/base` package is an exception. It uses Zod v3 for MCP tool input schemas due to MCP SDK requirements. This is documented in the type management guidelines.
|
|
67
|
+
|
|
68
|
+
## Schema Change Rules
|
|
69
|
+
|
|
70
|
+
### Patch Version (x.y.Z)
|
|
71
|
+
|
|
72
|
+
1. **Allowed Changes:**
|
|
73
|
+
- Bug fixes in schema validation logic
|
|
74
|
+
- Performance improvements
|
|
75
|
+
- Documentation updates
|
|
76
|
+
- Internal refactoring that doesn't affect exported schemas
|
|
77
|
+
|
|
78
|
+
2. **Prohibited Changes:**
|
|
79
|
+
- Any changes to schema definitions
|
|
80
|
+
- Adding or removing fields (even optional ones)
|
|
81
|
+
- Changing validation rules
|
|
82
|
+
|
|
83
|
+
### Minor Version (x.Y.0)
|
|
84
|
+
|
|
85
|
+
1. **Allowed Changes:**
|
|
86
|
+
- Adding new optional fields to existing schemas
|
|
87
|
+
- Adding new schemas
|
|
88
|
+
- Deprecating (but not removing) existing fields
|
|
89
|
+
- Expanding validation rules (making them less strict)
|
|
90
|
+
|
|
91
|
+
2. **Required Actions:**
|
|
92
|
+
- All dependent packages must bump their minor versions
|
|
93
|
+
- Update CHANGELOG.md with migration guide if needed
|
|
94
|
+
|
|
95
|
+
### Major Version (X.0.0)
|
|
96
|
+
|
|
97
|
+
1. **Breaking Changes:**
|
|
98
|
+
- Removing fields
|
|
99
|
+
- Changing field types
|
|
100
|
+
- Making optional fields required
|
|
101
|
+
- Renaming schemas or fields
|
|
102
|
+
- Tightening validation rules
|
|
103
|
+
|
|
104
|
+
2. **Required Actions:**
|
|
105
|
+
- All dependent packages must bump their major versions
|
|
106
|
+
- Comprehensive migration guide required
|
|
107
|
+
- Consider providing deprecation warnings
|
|
108
|
+
|
|
109
|
+
## Related Documentation
|
|
110
|
+
|
|
111
|
+
- [CONTRIBUTING.md](../../CONTRIBUTING.md) - Version management rules and changeset workflow
|
package/dist/src/index.d.ts
CHANGED
|
@@ -198,6 +198,7 @@ declare const expertSchema: z.ZodObject<{
|
|
|
198
198
|
command: z.ZodString;
|
|
199
199
|
packageName: z.ZodOptional<z.ZodString>;
|
|
200
200
|
requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
201
|
+
lazyInit: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
201
202
|
}, z.core.$strip>, z.ZodObject<{
|
|
202
203
|
type: z.ZodLiteral<"mcpSseSkill">;
|
|
203
204
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -231,6 +232,7 @@ declare const expertSchema: z.ZodObject<{
|
|
|
231
232
|
command: string;
|
|
232
233
|
args: string[];
|
|
233
234
|
requiredEnv: string[];
|
|
235
|
+
lazyInit: boolean;
|
|
234
236
|
description?: string | undefined;
|
|
235
237
|
rule?: string | undefined;
|
|
236
238
|
packageName?: string | undefined;
|
|
@@ -262,6 +264,7 @@ declare const expertSchema: z.ZodObject<{
|
|
|
262
264
|
omit: string[];
|
|
263
265
|
command: string;
|
|
264
266
|
requiredEnv: string[];
|
|
267
|
+
lazyInit: boolean;
|
|
265
268
|
description?: string | undefined;
|
|
266
269
|
rule?: string | undefined;
|
|
267
270
|
packageName?: string | undefined;
|
|
@@ -744,9 +747,6 @@ declare const providerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
744
747
|
}, z.core.$strip>], "name">;
|
|
745
748
|
type ProviderConfig = z.infer<typeof providerConfigSchema>;
|
|
746
749
|
|
|
747
|
-
/**
|
|
748
|
-
* Run command input schema
|
|
749
|
-
*/
|
|
750
750
|
declare const runCommandInputSchema: z.ZodObject<{
|
|
751
751
|
expertKey: z.ZodString;
|
|
752
752
|
query: z.ZodString;
|
|
@@ -775,6 +775,34 @@ declare const runCommandInputSchema: z.ZodObject<{
|
|
|
775
775
|
}, z.core.$strip>;
|
|
776
776
|
}, z.core.$strip>;
|
|
777
777
|
type RunCommandInput = z.infer<typeof runCommandInputSchema>;
|
|
778
|
+
declare const startCommandInputSchema: z.ZodObject<{
|
|
779
|
+
expertKey: z.ZodOptional<z.ZodString>;
|
|
780
|
+
query: z.ZodOptional<z.ZodString>;
|
|
781
|
+
options: z.ZodObject<{
|
|
782
|
+
config: z.ZodOptional<z.ZodString>;
|
|
783
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
784
|
+
anthropic: "anthropic";
|
|
785
|
+
google: "google";
|
|
786
|
+
openai: "openai";
|
|
787
|
+
ollama: "ollama";
|
|
788
|
+
"azure-openai": "azure-openai";
|
|
789
|
+
"amazon-bedrock": "amazon-bedrock";
|
|
790
|
+
}>>;
|
|
791
|
+
model: z.ZodOptional<z.ZodString>;
|
|
792
|
+
temperature: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number | undefined, string | undefined>>;
|
|
793
|
+
maxSteps: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number | undefined, string | undefined>>;
|
|
794
|
+
maxRetries: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number | undefined, string | undefined>>;
|
|
795
|
+
timeout: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number | undefined, string | undefined>>;
|
|
796
|
+
runId: z.ZodOptional<z.ZodString>;
|
|
797
|
+
envPath: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
798
|
+
verbose: z.ZodOptional<z.ZodBoolean>;
|
|
799
|
+
continue: z.ZodOptional<z.ZodBoolean>;
|
|
800
|
+
continueRun: z.ZodOptional<z.ZodString>;
|
|
801
|
+
resumeFrom: z.ZodOptional<z.ZodString>;
|
|
802
|
+
interactiveToolCallResult: z.ZodOptional<z.ZodBoolean>;
|
|
803
|
+
}, z.core.$strip>;
|
|
804
|
+
}, z.core.$strip>;
|
|
805
|
+
type StartCommandInput = z.infer<typeof startCommandInputSchema>;
|
|
778
806
|
|
|
779
807
|
declare const stepSchema: z.ZodObject<{
|
|
780
808
|
stepNumber: z.ZodNumber;
|
|
@@ -1157,6 +1185,7 @@ declare const runParamsSchema: z.ZodObject<{
|
|
|
1157
1185
|
command: z.ZodString;
|
|
1158
1186
|
packageName: z.ZodOptional<z.ZodString>;
|
|
1159
1187
|
requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
1188
|
+
lazyInit: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1160
1189
|
}, z.core.$strip>, z.ZodObject<{
|
|
1161
1190
|
type: z.ZodLiteral<"mcpSseSkill">;
|
|
1162
1191
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -1190,6 +1219,7 @@ declare const runParamsSchema: z.ZodObject<{
|
|
|
1190
1219
|
command: string;
|
|
1191
1220
|
args: string[];
|
|
1192
1221
|
requiredEnv: string[];
|
|
1222
|
+
lazyInit: boolean;
|
|
1193
1223
|
description?: string | undefined;
|
|
1194
1224
|
rule?: string | undefined;
|
|
1195
1225
|
packageName?: string | undefined;
|
|
@@ -1221,6 +1251,7 @@ declare const runParamsSchema: z.ZodObject<{
|
|
|
1221
1251
|
omit: string[];
|
|
1222
1252
|
command: string;
|
|
1223
1253
|
requiredEnv: string[];
|
|
1254
|
+
lazyInit: boolean;
|
|
1224
1255
|
description?: string | undefined;
|
|
1225
1256
|
rule?: string | undefined;
|
|
1226
1257
|
packageName?: string | undefined;
|
|
@@ -1260,6 +1291,7 @@ declare const runParamsSchema: z.ZodObject<{
|
|
|
1260
1291
|
command: string;
|
|
1261
1292
|
args: string[];
|
|
1262
1293
|
requiredEnv: string[];
|
|
1294
|
+
lazyInit: boolean;
|
|
1263
1295
|
description?: string | undefined;
|
|
1264
1296
|
rule?: string | undefined;
|
|
1265
1297
|
packageName?: string | undefined;
|
|
@@ -1302,6 +1334,7 @@ declare const runParamsSchema: z.ZodObject<{
|
|
|
1302
1334
|
command: string;
|
|
1303
1335
|
args: string[];
|
|
1304
1336
|
requiredEnv: string[];
|
|
1337
|
+
lazyInit: boolean;
|
|
1305
1338
|
description?: string | undefined;
|
|
1306
1339
|
rule?: string | undefined;
|
|
1307
1340
|
packageName?: string | undefined;
|
|
@@ -1767,6 +1800,49 @@ declare const continueToNextStep: (setting: RunSetting, checkpoint: Checkpoint,
|
|
|
1767
1800
|
step: Step;
|
|
1768
1801
|
nextCheckpoint: Checkpoint;
|
|
1769
1802
|
};
|
|
1803
|
+
type BaseRuntimeEvent = {
|
|
1804
|
+
id: string;
|
|
1805
|
+
timestamp: number;
|
|
1806
|
+
runId: string;
|
|
1807
|
+
};
|
|
1808
|
+
type RuntimeEventPayloads = {
|
|
1809
|
+
initializeRuntime: {
|
|
1810
|
+
runtimeVersion: string;
|
|
1811
|
+
expertName: string;
|
|
1812
|
+
experts: string[];
|
|
1813
|
+
model: string;
|
|
1814
|
+
temperature: number;
|
|
1815
|
+
maxSteps?: number;
|
|
1816
|
+
maxRetries: number;
|
|
1817
|
+
timeout: number;
|
|
1818
|
+
query?: string;
|
|
1819
|
+
interactiveToolCall?: {
|
|
1820
|
+
toolName: string;
|
|
1821
|
+
toolCallId: string;
|
|
1822
|
+
text: string;
|
|
1823
|
+
};
|
|
1824
|
+
};
|
|
1825
|
+
skillConnected: {
|
|
1826
|
+
skillName: string;
|
|
1827
|
+
serverInfo?: {
|
|
1828
|
+
name: string;
|
|
1829
|
+
version: string;
|
|
1830
|
+
};
|
|
1831
|
+
};
|
|
1832
|
+
skillDisconnected: {
|
|
1833
|
+
skillName: string;
|
|
1834
|
+
};
|
|
1835
|
+
};
|
|
1836
|
+
type RuntimeEventType = keyof RuntimeEventPayloads;
|
|
1837
|
+
type RuntimeEvent = {
|
|
1838
|
+
[K in RuntimeEventType]: BaseRuntimeEvent & {
|
|
1839
|
+
type: K;
|
|
1840
|
+
} & RuntimeEventPayloads[K];
|
|
1841
|
+
}[RuntimeEventType];
|
|
1842
|
+
type RuntimeEventForType<T extends RuntimeEventType> = Extract<RuntimeEvent, {
|
|
1843
|
+
type: T;
|
|
1844
|
+
}>;
|
|
1845
|
+
declare function createRuntimeEvent<T extends RuntimeEventType>(type: T, runId: string, data: Omit<RuntimeEventForType<T>, "type" | "id" | "timestamp" | "runId">): RuntimeEventForType<T>;
|
|
1770
1846
|
|
|
1771
1847
|
declare const mcpStdioSkillSchema: z.ZodObject<{
|
|
1772
1848
|
type: z.ZodLiteral<"mcpStdioSkill">;
|
|
@@ -1779,6 +1855,7 @@ declare const mcpStdioSkillSchema: z.ZodObject<{
|
|
|
1779
1855
|
packageName: z.ZodOptional<z.ZodString>;
|
|
1780
1856
|
args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
1781
1857
|
requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
1858
|
+
lazyInit: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1782
1859
|
}, z.core.$strip>;
|
|
1783
1860
|
type McpStdioSkill = z.infer<typeof mcpStdioSkillSchema>;
|
|
1784
1861
|
declare const mcpSseSkillSchema: z.ZodObject<{
|
|
@@ -1828,6 +1905,7 @@ declare const skillSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1828
1905
|
packageName: z.ZodOptional<z.ZodString>;
|
|
1829
1906
|
args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
1830
1907
|
requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
1908
|
+
lazyInit: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1831
1909
|
}, z.core.$strip>, z.ZodObject<{
|
|
1832
1910
|
type: z.ZodLiteral<"mcpSseSkill">;
|
|
1833
1911
|
name: z.ZodString;
|
|
@@ -1903,4 +1981,4 @@ declare const knownModels: {
|
|
|
1903
1981
|
}[];
|
|
1904
1982
|
}[];
|
|
1905
1983
|
|
|
1906
|
-
export { type AmazonBedrockProviderConfig, type AnthropicProviderConfig, type AzureOpenAiProviderConfig, type BasePart, type CallToolResultContent, type Checkpoint, type CheckpointStatus, type DelegateSkillManagerParams, type EventForType, type EventType, type Expert, type ExpertMessage, type FileBinaryPart, type FileInlinePart, type FileUrlPart, type GoogleGenerativeAiProviderConfig, type ImageBinaryPart, type ImageInlinePart, type ImageUrlPart, type InstructionMessage, type InteractiveSkill, type InteractiveSkillManagerParams, type InteractiveTool, type McpSkillManagerParams, type McpSseSkill, type McpStdioSkill, type Message, type MessagePart, type OllamaProviderConfig, type OpenAiProviderConfig, type PerstackConfig, type ProviderConfig, type ProviderName, type Resource, type RunCommandInput, type RunEvent, type RunInput, type RunParams, type RunParamsInput, type RunSetting, type Skill, type SkillManagerParams, type SkillType, type Step, type TextPart, type ToolCall, type ToolCallPart, type ToolDefinition, type ToolMessage, type ToolResult, type ToolResultPart, type Usage, type UserMessage, amazonBedrockProviderConfigSchema, anthropicProviderConfigSchema, attemptCompletion, azureOpenAiProviderConfigSchema, basePartSchema, callDelegate, callInteractiveTool, callTool, checkpointSchema, checkpointStatusSchema, completeRun, continueToNextStep, createEvent, defaultMaxRetries, defaultMaxSteps, defaultPerstackApiBaseUrl, defaultTemperature, defaultTimeout, envNameRegex, expertKeyRegex, expertMessageSchema, expertNameRegex, expertSchema, expertVersionRegex, fileBinaryPartSchema, fileInlinePartSchema, fileUrlPartSchema, finishToolCall, googleGenerativeAiProviderConfigSchema, imageBinaryPartSchema, imageInlinePartSchema, imageUrlPartSchema, instructionMessageSchema, interactiveSkillSchema, interactiveToolSchema, knownModels, maxApplicationNameLength, maxCheckpointToolCallIdLength, maxEnvNameLength, maxExpertDelegateItems, maxExpertDescriptionLength, maxExpertInstructionLength, maxExpertJobFileNameLength, maxExpertJobQueryLength, maxExpertKeyLength, maxExpertNameLength, maxExpertSkillItems, maxExpertTagItems, maxExpertVersionTagLength, maxOrganizationNameLength, maxSkillDescriptionLength, maxSkillEndpointLength, maxSkillInputJsonSchemaLength, maxSkillNameLength, maxSkillPickOmitItems, maxSkillRequiredEnvItems, maxSkillRuleLength, maxSkillToolItems, maxSkillToolNameLength, mcpSseSkillSchema, mcpStdioSkillSchema, messagePartSchema, messageSchema, ollamaProviderConfigSchema, openAiProviderConfigSchema, organizationNameRegex, packageWithVersionRegex, parseExpertKey, perstackConfigSchema, providerConfigSchema, providerNameSchema, resolveImageFile, resolvePdfFile, resolveThought, resolveToolResult, retry, runCommandInputSchema, runParamsSchema, skillSchema, startGeneration, startRun, stepSchema, stopRunByDelegate, stopRunByExceededMaxSteps, stopRunByInteractiveTool, tagNameRegex, textPartSchema, toolCallPartSchema, toolCallSchema, toolMessageSchema, toolResultPartSchema, toolResultSchema, urlSafeRegex, usageSchema, userMessageSchema };
|
|
1984
|
+
export { type AmazonBedrockProviderConfig, type AnthropicProviderConfig, type AzureOpenAiProviderConfig, type BasePart, type CallToolResultContent, type Checkpoint, type CheckpointStatus, type DelegateSkillManagerParams, type EventForType, type EventType, type Expert, type ExpertMessage, type FileBinaryPart, type FileInlinePart, type FileUrlPart, type GoogleGenerativeAiProviderConfig, type ImageBinaryPart, type ImageInlinePart, type ImageUrlPart, type InstructionMessage, type InteractiveSkill, type InteractiveSkillManagerParams, type InteractiveTool, type McpSkillManagerParams, type McpSseSkill, type McpStdioSkill, type Message, type MessagePart, type OllamaProviderConfig, type OpenAiProviderConfig, type PerstackConfig, type ProviderConfig, type ProviderName, type Resource, type RunCommandInput, type RunEvent, type RunInput, type RunParams, type RunParamsInput, type RunSetting, type RuntimeEvent, type RuntimeEventForType, type RuntimeEventType, type Skill, type SkillManagerParams, type SkillType, type StartCommandInput, type Step, type TextPart, type ToolCall, type ToolCallPart, type ToolDefinition, type ToolMessage, type ToolResult, type ToolResultPart, type Usage, type UserMessage, amazonBedrockProviderConfigSchema, anthropicProviderConfigSchema, attemptCompletion, azureOpenAiProviderConfigSchema, basePartSchema, callDelegate, callInteractiveTool, callTool, checkpointSchema, checkpointStatusSchema, completeRun, continueToNextStep, createEvent, createRuntimeEvent, defaultMaxRetries, defaultMaxSteps, defaultPerstackApiBaseUrl, defaultTemperature, defaultTimeout, envNameRegex, expertKeyRegex, expertMessageSchema, expertNameRegex, expertSchema, expertVersionRegex, fileBinaryPartSchema, fileInlinePartSchema, fileUrlPartSchema, finishToolCall, googleGenerativeAiProviderConfigSchema, imageBinaryPartSchema, imageInlinePartSchema, imageUrlPartSchema, instructionMessageSchema, interactiveSkillSchema, interactiveToolSchema, knownModels, maxApplicationNameLength, maxCheckpointToolCallIdLength, maxEnvNameLength, maxExpertDelegateItems, maxExpertDescriptionLength, maxExpertInstructionLength, maxExpertJobFileNameLength, maxExpertJobQueryLength, maxExpertKeyLength, maxExpertNameLength, maxExpertSkillItems, maxExpertTagItems, maxExpertVersionTagLength, maxOrganizationNameLength, maxSkillDescriptionLength, maxSkillEndpointLength, maxSkillInputJsonSchemaLength, maxSkillNameLength, maxSkillPickOmitItems, maxSkillRequiredEnvItems, maxSkillRuleLength, maxSkillToolItems, maxSkillToolNameLength, mcpSseSkillSchema, mcpStdioSkillSchema, messagePartSchema, messageSchema, ollamaProviderConfigSchema, openAiProviderConfigSchema, organizationNameRegex, packageWithVersionRegex, parseExpertKey, perstackConfigSchema, providerConfigSchema, providerNameSchema, resolveImageFile, resolvePdfFile, resolveThought, resolveToolResult, retry, runCommandInputSchema, runParamsSchema, skillSchema, startCommandInputSchema, startGeneration, startRun, stepSchema, stopRunByDelegate, stopRunByExceededMaxSteps, stopRunByInteractiveTool, tagNameRegex, textPartSchema, toolCallPartSchema, toolCallSchema, toolMessageSchema, toolResultPartSchema, toolResultSchema, urlSafeRegex, usageSchema, userMessageSchema };
|
package/dist/src/index.js
CHANGED
|
@@ -203,7 +203,8 @@ var mcpStdioSkillSchema = z.object({
|
|
|
203
203
|
command: z.string(),
|
|
204
204
|
packageName: z.string().optional(),
|
|
205
205
|
args: z.array(z.string()).optional().default([]),
|
|
206
|
-
requiredEnv: z.array(z.string()).optional().default([])
|
|
206
|
+
requiredEnv: z.array(z.string()).optional().default([]),
|
|
207
|
+
lazyInit: z.boolean().optional().default(true)
|
|
207
208
|
});
|
|
208
209
|
var mcpSseSkillSchema = z.object({
|
|
209
210
|
type: z.literal("mcpSseSkill"),
|
|
@@ -261,7 +262,8 @@ var expertSchema = z.object({
|
|
|
261
262
|
args: ["-y", "@perstack/base"],
|
|
262
263
|
pick: [],
|
|
263
264
|
omit: [],
|
|
264
|
-
requiredEnv: []
|
|
265
|
+
requiredEnv: [],
|
|
266
|
+
lazyInit: false
|
|
265
267
|
}
|
|
266
268
|
}).transform((skills) => {
|
|
267
269
|
return Object.fromEntries(
|
|
@@ -387,61 +389,51 @@ var perstackConfigSchema = z.object({
|
|
|
387
389
|
perstackBaseSkillCommand: z.array(z.string()).optional(),
|
|
388
390
|
envPath: z.array(z.string()).optional()
|
|
389
391
|
});
|
|
392
|
+
var commandOptionsSchema = z.object({
|
|
393
|
+
config: z.string().optional(),
|
|
394
|
+
provider: providerNameSchema.optional(),
|
|
395
|
+
model: z.string().optional(),
|
|
396
|
+
temperature: z.string().optional().transform((value) => {
|
|
397
|
+
if (value === void 0) return void 0;
|
|
398
|
+
const parsedValue = Number.parseFloat(value);
|
|
399
|
+
if (Number.isNaN(parsedValue)) return void 0;
|
|
400
|
+
return parsedValue;
|
|
401
|
+
}),
|
|
402
|
+
maxSteps: z.string().optional().transform((value) => {
|
|
403
|
+
if (value === void 0) return void 0;
|
|
404
|
+
const parsedValue = Number.parseInt(value, 10);
|
|
405
|
+
if (Number.isNaN(parsedValue)) return void 0;
|
|
406
|
+
return parsedValue;
|
|
407
|
+
}),
|
|
408
|
+
maxRetries: z.string().optional().transform((value) => {
|
|
409
|
+
if (value === void 0) return void 0;
|
|
410
|
+
const parsedValue = Number.parseInt(value, 10);
|
|
411
|
+
if (Number.isNaN(parsedValue)) return void 0;
|
|
412
|
+
return parsedValue;
|
|
413
|
+
}),
|
|
414
|
+
timeout: z.string().optional().transform((value) => {
|
|
415
|
+
if (value === void 0) return void 0;
|
|
416
|
+
const parsedValue = Number.parseInt(value, 10);
|
|
417
|
+
if (Number.isNaN(parsedValue)) return void 0;
|
|
418
|
+
return parsedValue;
|
|
419
|
+
}),
|
|
420
|
+
runId: z.string().optional(),
|
|
421
|
+
envPath: z.array(z.string()).optional(),
|
|
422
|
+
verbose: z.boolean().optional(),
|
|
423
|
+
continue: z.boolean().optional(),
|
|
424
|
+
continueRun: z.string().optional(),
|
|
425
|
+
resumeFrom: z.string().optional(),
|
|
426
|
+
interactiveToolCallResult: z.boolean().optional()
|
|
427
|
+
});
|
|
390
428
|
var runCommandInputSchema = z.object({
|
|
391
429
|
expertKey: z.string(),
|
|
392
430
|
query: z.string(),
|
|
393
|
-
options:
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
return void 0;
|
|
400
|
-
}
|
|
401
|
-
const parsedValue = Number.parseFloat(value);
|
|
402
|
-
if (Number.isNaN(parsedValue)) {
|
|
403
|
-
return void 0;
|
|
404
|
-
}
|
|
405
|
-
return parsedValue;
|
|
406
|
-
}),
|
|
407
|
-
maxSteps: z.string().optional().transform((value) => {
|
|
408
|
-
if (value === void 0) {
|
|
409
|
-
return void 0;
|
|
410
|
-
}
|
|
411
|
-
const parsedValue = Number.parseInt(value, 10);
|
|
412
|
-
if (Number.isNaN(parsedValue)) {
|
|
413
|
-
return void 0;
|
|
414
|
-
}
|
|
415
|
-
return parsedValue;
|
|
416
|
-
}),
|
|
417
|
-
maxRetries: z.string().optional().transform((value) => {
|
|
418
|
-
if (value === void 0) {
|
|
419
|
-
return void 0;
|
|
420
|
-
}
|
|
421
|
-
const parsedValue = Number.parseInt(value, 10);
|
|
422
|
-
if (Number.isNaN(parsedValue)) {
|
|
423
|
-
return void 0;
|
|
424
|
-
}
|
|
425
|
-
return parsedValue;
|
|
426
|
-
}),
|
|
427
|
-
timeout: z.string().optional().transform((value) => {
|
|
428
|
-
if (value === void 0) {
|
|
429
|
-
return void 0;
|
|
430
|
-
}
|
|
431
|
-
const parsedValue = Number.parseInt(value, 10);
|
|
432
|
-
if (Number.isNaN(parsedValue)) {
|
|
433
|
-
return void 0;
|
|
434
|
-
}
|
|
435
|
-
return parsedValue;
|
|
436
|
-
}),
|
|
437
|
-
runId: z.string().optional(),
|
|
438
|
-
envPath: z.array(z.string()).optional(),
|
|
439
|
-
verbose: z.boolean().optional(),
|
|
440
|
-
continue: z.boolean().optional(),
|
|
441
|
-
continueRun: z.string().optional(),
|
|
442
|
-
resumeFrom: z.string().optional(),
|
|
443
|
-
interactiveToolCallResult: z.boolean().optional()
|
|
444
|
-
})
|
|
431
|
+
options: commandOptionsSchema
|
|
432
|
+
});
|
|
433
|
+
var startCommandInputSchema = z.object({
|
|
434
|
+
expertKey: z.string().optional(),
|
|
435
|
+
query: z.string().optional(),
|
|
436
|
+
options: commandOptionsSchema
|
|
445
437
|
});
|
|
446
438
|
function parseExpertKey(expertKey) {
|
|
447
439
|
const match = expertKey.match(expertKeyRegex);
|
|
@@ -449,12 +441,10 @@ function parseExpertKey(expertKey) {
|
|
|
449
441
|
throw new Error(`Invalid expert key format: ${expertKey}`);
|
|
450
442
|
}
|
|
451
443
|
const [key, name, version, tag] = match;
|
|
452
|
-
|
|
453
|
-
key
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
tag
|
|
457
|
-
};
|
|
444
|
+
if (!name) {
|
|
445
|
+
throw new Error(`Invalid expert key format: ${expertKey}`);
|
|
446
|
+
}
|
|
447
|
+
return { key, name, version, tag };
|
|
458
448
|
}
|
|
459
449
|
var runParamsSchema = z.object({
|
|
460
450
|
setting: z.object({
|
|
@@ -525,6 +515,15 @@ var stopRunByInteractiveTool = createEvent("stopRunByInteractiveTool");
|
|
|
525
515
|
var stopRunByDelegate = createEvent("stopRunByDelegate");
|
|
526
516
|
var stopRunByExceededMaxSteps = createEvent("stopRunByExceededMaxSteps");
|
|
527
517
|
var continueToNextStep = createEvent("continueToNextStep");
|
|
518
|
+
function createRuntimeEvent(type, runId, data) {
|
|
519
|
+
return {
|
|
520
|
+
type,
|
|
521
|
+
id: createId(),
|
|
522
|
+
timestamp: Date.now(),
|
|
523
|
+
runId,
|
|
524
|
+
...data
|
|
525
|
+
};
|
|
526
|
+
}
|
|
528
527
|
var toolCallSchema = z.object({
|
|
529
528
|
id: z.string().min(1).max(255),
|
|
530
529
|
skillName: z.string().min(1).max(maxSkillNameLength),
|
|
@@ -556,11 +555,26 @@ var knownModels = [
|
|
|
556
555
|
provider: "anthropic",
|
|
557
556
|
models: [
|
|
558
557
|
// https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table
|
|
558
|
+
{
|
|
559
|
+
name: "claude-opus-4-5",
|
|
560
|
+
contextWindow: 2e5,
|
|
561
|
+
maxOutputTokens: 32e3
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
name: "claude-opus-4-1",
|
|
565
|
+
contextWindow: 2e5,
|
|
566
|
+
maxOutputTokens: 32e3
|
|
567
|
+
},
|
|
559
568
|
{
|
|
560
569
|
name: "claude-opus-4-20250514",
|
|
561
570
|
contextWindow: 2e5,
|
|
562
571
|
maxOutputTokens: 32e3
|
|
563
572
|
},
|
|
573
|
+
{
|
|
574
|
+
name: "claude-sonnet-4-5",
|
|
575
|
+
contextWindow: 2e5,
|
|
576
|
+
maxOutputTokens: 64e3
|
|
577
|
+
},
|
|
564
578
|
{
|
|
565
579
|
name: "claude-sonnet-4-20250514",
|
|
566
580
|
contextWindow: 2e5,
|
|
@@ -571,6 +585,11 @@ var knownModels = [
|
|
|
571
585
|
contextWindow: 2e5,
|
|
572
586
|
maxOutputTokens: 64e3
|
|
573
587
|
},
|
|
588
|
+
{
|
|
589
|
+
name: "claude-haiku-4-5",
|
|
590
|
+
contextWindow: 2e5,
|
|
591
|
+
maxOutputTokens: 8192
|
|
592
|
+
},
|
|
574
593
|
{
|
|
575
594
|
name: "claude-3-5-haiku-latest",
|
|
576
595
|
contextWindow: 2e5,
|
|
@@ -581,6 +600,12 @@ var knownModels = [
|
|
|
581
600
|
{
|
|
582
601
|
provider: "google",
|
|
583
602
|
models: [
|
|
603
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-3-pro
|
|
604
|
+
{
|
|
605
|
+
name: "gemini-3-pro-preview",
|
|
606
|
+
contextWindow: 1048576,
|
|
607
|
+
maxOutputTokens: 65536
|
|
608
|
+
},
|
|
584
609
|
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro
|
|
585
610
|
{
|
|
586
611
|
name: "gemini-2.5-pro",
|
|
@@ -697,6 +722,6 @@ var knownModels = [
|
|
|
697
722
|
}
|
|
698
723
|
];
|
|
699
724
|
|
|
700
|
-
export { amazonBedrockProviderConfigSchema, anthropicProviderConfigSchema, attemptCompletion, azureOpenAiProviderConfigSchema, basePartSchema, callDelegate, callInteractiveTool, callTool, checkpointSchema, checkpointStatusSchema, completeRun, continueToNextStep, createEvent, defaultMaxRetries, defaultMaxSteps, defaultPerstackApiBaseUrl, defaultTemperature, defaultTimeout, envNameRegex, expertKeyRegex, expertMessageSchema, expertNameRegex, expertSchema, expertVersionRegex, fileBinaryPartSchema, fileInlinePartSchema, fileUrlPartSchema, finishToolCall, googleGenerativeAiProviderConfigSchema, imageBinaryPartSchema, imageInlinePartSchema, imageUrlPartSchema, instructionMessageSchema, interactiveSkillSchema, interactiveToolSchema, knownModels, maxApplicationNameLength, maxCheckpointToolCallIdLength, maxEnvNameLength, maxExpertDelegateItems, maxExpertDescriptionLength, maxExpertInstructionLength, maxExpertJobFileNameLength, maxExpertJobQueryLength, maxExpertKeyLength, maxExpertNameLength, maxExpertSkillItems, maxExpertTagItems, maxExpertVersionTagLength, maxOrganizationNameLength, maxSkillDescriptionLength, maxSkillEndpointLength, maxSkillInputJsonSchemaLength, maxSkillNameLength, maxSkillPickOmitItems, maxSkillRequiredEnvItems, maxSkillRuleLength, maxSkillToolItems, maxSkillToolNameLength, mcpSseSkillSchema, mcpStdioSkillSchema, messagePartSchema, messageSchema, ollamaProviderConfigSchema, openAiProviderConfigSchema, organizationNameRegex, packageWithVersionRegex, parseExpertKey, perstackConfigSchema, providerConfigSchema, providerNameSchema, resolveImageFile, resolvePdfFile, resolveThought, resolveToolResult, retry, runCommandInputSchema, runParamsSchema, skillSchema, startGeneration, startRun, stepSchema, stopRunByDelegate, stopRunByExceededMaxSteps, stopRunByInteractiveTool, tagNameRegex, textPartSchema, toolCallPartSchema, toolCallSchema, toolMessageSchema, toolResultPartSchema, toolResultSchema, urlSafeRegex, usageSchema, userMessageSchema };
|
|
725
|
+
export { amazonBedrockProviderConfigSchema, anthropicProviderConfigSchema, attemptCompletion, azureOpenAiProviderConfigSchema, basePartSchema, callDelegate, callInteractiveTool, callTool, checkpointSchema, checkpointStatusSchema, completeRun, continueToNextStep, createEvent, createRuntimeEvent, defaultMaxRetries, defaultMaxSteps, defaultPerstackApiBaseUrl, defaultTemperature, defaultTimeout, envNameRegex, expertKeyRegex, expertMessageSchema, expertNameRegex, expertSchema, expertVersionRegex, fileBinaryPartSchema, fileInlinePartSchema, fileUrlPartSchema, finishToolCall, googleGenerativeAiProviderConfigSchema, imageBinaryPartSchema, imageInlinePartSchema, imageUrlPartSchema, instructionMessageSchema, interactiveSkillSchema, interactiveToolSchema, knownModels, maxApplicationNameLength, maxCheckpointToolCallIdLength, maxEnvNameLength, maxExpertDelegateItems, maxExpertDescriptionLength, maxExpertInstructionLength, maxExpertJobFileNameLength, maxExpertJobQueryLength, maxExpertKeyLength, maxExpertNameLength, maxExpertSkillItems, maxExpertTagItems, maxExpertVersionTagLength, maxOrganizationNameLength, maxSkillDescriptionLength, maxSkillEndpointLength, maxSkillInputJsonSchemaLength, maxSkillNameLength, maxSkillPickOmitItems, maxSkillRequiredEnvItems, maxSkillRuleLength, maxSkillToolItems, maxSkillToolNameLength, mcpSseSkillSchema, mcpStdioSkillSchema, messagePartSchema, messageSchema, ollamaProviderConfigSchema, openAiProviderConfigSchema, organizationNameRegex, packageWithVersionRegex, parseExpertKey, perstackConfigSchema, providerConfigSchema, providerNameSchema, resolveImageFile, resolvePdfFile, resolveThought, resolveToolResult, retry, runCommandInputSchema, runParamsSchema, skillSchema, startCommandInputSchema, startGeneration, startRun, stepSchema, stopRunByDelegate, stopRunByExceededMaxSteps, stopRunByInteractiveTool, tagNameRegex, textPartSchema, toolCallPartSchema, toolCallSchema, toolMessageSchema, toolResultPartSchema, toolResultSchema, urlSafeRegex, usageSchema, userMessageSchema };
|
|
701
726
|
//# sourceMappingURL=index.js.map
|
|
702
727
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants/constants.ts","../../src/schemas/message-part.ts","../../src/schemas/message.ts","../../src/schemas/usage.ts","../../src/schemas/checkpoint.ts","../../src/schemas/skill.ts","../../src/schemas/expert.ts","../../src/schemas/provider-config.ts","../../src/schemas/perstack-toml.ts","../../src/schemas/run-command.ts","../../src/schemas/runtime.ts","../../src/schemas/tool-call.ts","../../src/schemas/tool-result.ts","../../src/schemas/step.ts","../../src/known-models/index.ts"],"names":["z"],"mappings":";;;;AAAO,IAAM,yBAAA,GAA4B;AAGlC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,yBAAA,GAA4B;AAGlC,IAAM,wBAAA,GAA2B;AAGjC,IAAM,cAAA,GACX;AACK,IAAM,eAAA,GAAkB;AACxB,IAAM,kBAAA,GACX;AACK,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,yBAAA,GAA4B;AAClC,IAAM,kBAAA,GAAqB;AAC3B,IAAM,6BAA6B,IAAA,GAAO;AAC1C,IAAM,6BAA6B,IAAA,GAAO;AAC1C,IAAM,mBAAA,GAAsB;AAC5B,IAAM,sBAAA,GAAyB;AAC/B,IAAM,iBAAA,GAAoB;AAC1B,IAAM,kBAAA,GAAqB;AAC3B,IAAM,eAAA,GAAkB;AACxB,IAAM,iBAAA,GAAoB;AAC1B,IAAM,cAAA,GAAiB,IAAI,GAAA,GAAO;AAGlC,IAAM,0BAA0B,IAAA,GAAO;AACvC,IAAM,6BAA6B,IAAA,GAAO;AAG1C,IAAM,uBAAA,GACX;AACK,IAAM,YAAA,GAAe;AACrB,IAAM,kBAAA,GAAqB;AAC3B,IAAM,4BAA4B,IAAA,GAAO;AACzC,IAAM,qBAAqB,IAAA,GAAO;AAClC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,wBAAA,GAA2B;AACjC,IAAM,sBAAA,GAAyB;AAC/B,IAAM,yBAAyB,IAAA,GAAO;AACtC,IAAM,gCAAgC,IAAA,GAAO;AAC7C,IAAM,iBAAA,GAAoB;AAG1B,IAAM,6BAAA,GAAgC;AAGtC,IAAM,YAAA,GAAe;AACrB,IAAM,gBAAA,GAAmB;AC/CzB,IAAM,cAAA,GAAiB,EAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAI,EAAE,MAAA;AACR,CAAC;AAGM,IAAM,cAAA,GAAiB,eAAe,MAAA,CAAO;AAAA,EAClD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EAC1B,IAAA,EAAM,EAAE,MAAA;AACV,CAAC;AAGM,IAAM,kBAAA,GAAqB,eAAe,MAAA,CAAO;AAAA,EACtD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAC9B,GAAA,EAAK,EAAE,GAAA,EAAI;AAAA,EACX,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,qBAAA,GAAwB,eAAe,MAAA,CAAO;AAAA,EACzD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,qBAAA,GAAwB,eAAe,MAAA,CAAO;AAAA,EACzD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,iBAAA,GAAoB,eAAe,MAAA,CAAO;AAAA,EACrD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,EACpB,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,oBAAA,GAAuB,eAAe,MAAA,CAAO;AAAA,EACxD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,oBAAA,GAAuB,eAAe,MAAA,CAAO;AAAA,EACxD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAU,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,kBAAA,GAAqB,eAAe,MAAA,CAAO;AAAA,EACtD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAC9B,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,EACnB,IAAA,EAAM,EAAE,OAAA;AACV,CAAC;AAGM,IAAM,oBAAA,GAAuB,eAAe,MAAA,CAAO;AAAA,EACxD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,EACnB,QAAA,EAAU,EAAE,KAAA,CAAM,CAAA,CAAE,MAAM,CAAC,cAAA,EAAgB,qBAAqB,CAAC,CAAC,CAAA;AAAA,EAClE,OAAA,EAAS,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,iBAAA,GAAoB,CAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAC5D,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAC;;;ACrED,IAAM,iBAAA,GAAoBA,EAAE,MAAA,CAAO;AAAA,EACjC,EAAA,EAAIA,EAAE,MAAA;AACR,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2B,kBAAkB,MAAA,CAAO;AAAA,EAC/D,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,oBAAoB,CAAA;AAAA,EACpC,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,cAAc,CAAA;AAAA,EAChC,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACrB,CAAC;AAGM,IAAM,iBAAA,GAAoB,kBAAkB,MAAA,CAAO;AAAA,EACxD,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,UAAUA,CAAAA,CAAE,KAAA;AAAA,IACVA,EAAE,KAAA,CAAM;AAAA,MACN,cAAA;AAAA,MACA,kBAAA;AAAA,MACA,qBAAA;AAAA,MACA,qBAAA;AAAA,MACA,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA;AAAA,KACD;AAAA,GACH;AAAA,EACA,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACrB,CAAC;AAGM,IAAM,mBAAA,GAAsB,kBAAkB,MAAA,CAAO;AAAA,EAC1D,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,EAC/B,QAAA,EAAUA,EAAE,KAAA,CAAMA,CAAAA,CAAE,MAAM,CAAC,cAAA,EAAgB,kBAAkB,CAAC,CAAC,CAAA;AAAA,EAC/D,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACrB,CAAC;AAGM,IAAM,iBAAA,GAAoB,kBAAkB,MAAA,CAAO;AAAA,EACxD,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA;AAAA,EACtC,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACrB,CAAC;AAGM,IAAM,aAAA,GAAgBA,EAAE,KAAA,CAAM;AAAA,EACnC,wBAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAC;AC7DM,IAAM,WAAA,GAAcA,EAAE,MAAA,CAAO;AAAA,EAClC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,eAAA,EAAiBA,EAAE,MAAA,EAAO;AAAA,EAC1B,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,iBAAA,EAAmBA,EAAE,MAAA;AACvB,CAAC;;;ACJM,IAAM,sBAAA,GAAyBA,EAAE,IAAA,CAAK;AAAA,EAC3C,MAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,0BAAA;AAAA,EACA,mBAAA;AAAA,EACA,2BAAA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA,EACvC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,MAAA,EAAQ,sBAAA;AAAA,EACR,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,aAAa,CAAA;AAAA,EAC/B,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,IACf,GAAA,EAAKA,EAAE,MAAA,EAAO;AAAA,IACd,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,OAAA,EAASA,EAAE,MAAA;AAAO,GACnB,CAAA;AAAA,EACD,UAAA,EAAYA,EACT,MAAA,CAAO;AAAA,IACN,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,MACf,GAAA,EAAKA,EAAE,MAAA,EAAO;AAAA,MACd,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,MACf,OAAA,EAASA,EAAE,MAAA;AAAO,KACnB,CAAA;AAAA,IACD,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,IACrB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,KAAA,EAAOA,EAAE,MAAA;AAAO,GACjB,EACA,QAAA,EAAS;AAAA,EACZ,WAAA,EAAaA,EACV,MAAA,CAAO;AAAA,IACN,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,MACf,GAAA,EAAKA,EAAE,MAAA,EAAO;AAAA,MACd,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,MACf,OAAA,EAASA,EAAE,MAAA;AAAO,KACnB,CAAA;AAAA,IACD,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,IACrB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,YAAA,EAAcA,EAAE,MAAA;AAAO,GACxB,EACA,QAAA,EAAS;AAAA,EACZ,KAAA,EAAO,WAAA;AAAA,EACP,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,kBAAA,EAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACjC,CAAC;ACnDM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,EAC/B,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/C,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/C,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE;AACxD,CAAC;AAGM,IAAM,iBAAA,GAAoBA,EAAE,MAAA,CAAO;AAAA,EACxC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/C,QAAA,EAAUA,EAAE,MAAA;AACd,CAAC;AAGM,IAAM,qBAAA,GAAwBA,EAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,eAAA,EAAiBA,EAAE,MAAA;AACrB,CAAC;AAGM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAClC,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,OAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAU,qBAAA,CAAsB,IAAA,CAAK,EAAE,IAAA,EAAM,MAAM,CAAC,CAAA,CAAE,SAAA,CAAU,CAAC,KAAA,KAAU;AAC3F,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,MAAA,CAAO,QAAQ,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,eAAe,CAAA,KAAM;AAAA,QACpD,GAAA;AAAA,QACA,sBAAsB,KAAA,CAAM,EAAE,GAAG,eAAA,EAAiB,IAAA,EAAM,KAAK;AAAA,OAC9D;AAAA,KACH;AAAA,EACF,CAAC;AACH,CAAC;AAGM,IAAM,WAAA,GAAcA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EACtD,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAC;;;AC5CM,IAAM,YAAA,GAAeA,EAAE,MAAA,CAAO;AAAA,EACnC,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,MAAM,cAAc,CAAA,CAAE,IAAI,CAAC,CAAA;AAAA,EAC3C,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,eAAe,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,mBAAmB,CAAA;AAAA,EACtE,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,kBAAkB,CAAA;AAAA,EAC5C,WAAA,EAAaA,CAAAA,CACV,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,IAAA,GAAO,CAAC,CAAA,CACZ,QAAA,EAAS;AAAA,EACZ,WAAA,EAAaA,EACV,MAAA,EAAO,CACP,IAAI,CAAC,CAAA,CACL,GAAA,CAAI,IAAA,GAAO,EAAE,CAAA;AAAA,EAChB,QAAQA,CAAAA,CACL,MAAA;AAAA,IACCA,EAAE,MAAA,EAAO;AAAA,IACTA,CAAAA,CAAE,mBAAmB,MAAA,EAAQ;AAAA,MAC3B,mBAAA,CAAoB,IAAA,CAAK,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA,MACvC,iBAAA,CAAkB,IAAA,CAAK,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA,MACrC,sBAAA,CAAuB,IAAA,CAAK,EAAE,IAAA,EAAM,MAAM;AAAA,KAC3C;AAAA,GACH,CACC,QAAA,EAAS,CACT,OAAA,CAAQ;AAAA,IACP,gBAAA,EAAkB;AAAA,MAChB,IAAA,EAAM,eAAA;AAAA,MACN,WAAA,EAAa,YAAA;AAAA,MACb,OAAA,EAAS,KAAA;AAAA,MACT,IAAA,EAAM,CAAC,IAAA,EAAM,gBAAgB,CAAA;AAAA,MAC7B,MAAM,EAAC;AAAA,MACP,MAAM,EAAC;AAAA,MACP,aAAa;AAAC;AAChB,GACD,CAAA,CACA,SAAA,CAAU,CAAC,MAAA,KAAW;AACrB,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,gBAAgB,CAAA,KAAM;AAAA,QACtD,GAAA;AAAA,QACAA,CAAAA,CACG,mBAAmB,MAAA,EAAQ;AAAA,UAC1B,mBAAA;AAAA,UACA,iBAAA;AAAA,UACA;AAAA,SACD,EACA,KAAA,CAAM,EAAE,GAAG,gBAAA,EAAkB,IAAA,EAAM,KAAK;AAAA,OAC5C;AAAA,KACH;AAAA,EACF,CAAC,CAAA;AAAA,EACH,WAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,GAAS,KAAA,CAAM,cAAc,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,CAAA,CAAE,UAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACjF,MAAMA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,GAAS,KAAA,CAAM,YAAY,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,CAAA,CAAE,UAAS,CAAE,OAAA,CAAQ,EAAE;AAC5E,CAAC;AC1DM,IAAM,kBAAA,GAAqBA,EAAE,IAAA,CAAK;AAAA,EACvC,WAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,KAAK,SAAS,CAAA;AAAA,EACjD,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC;AAGM,IAAM,sCAAA,GAAyCA,EAAE,MAAA,CAAO;AAAA,EAC7D,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,KAAK,MAAM,CAAA;AAAA,EAC9C,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC;AAKM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,KAAK,MAAM,CAAA;AAAA,EAC9C,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC;AAGM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,KAAK,MAAM,CAAA;AAAA,EAC9C,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC;AAGM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,MAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,IAAA,CAAK,cAAc,CAAC,CAAA;AAAA,EACvD,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAGM,IAAM,iCAAA,GAAoCA,EAAE,MAAA,CAAO;AAAA,EACxD,MAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAmB,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAAA,EACzD,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,eAAA,EAAiBA,EAAE,MAAA,EAAO;AAAA,EAC1B,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC;AAGM,IAAM,oBAAA,GAAuBA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAC/D,6BAAA;AAAA,EACA,sCAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,+BAAA;AAAA,EACA;AACF,CAAC;;;AC7DM,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EAC3C,QAAA,EAAU,mBAAmB,QAAA,EAAS;AAAA,EACtC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAASA,CAAAA,CACN,MAAA;AAAA,IACCA,EAAE,MAAA,EAAO;AAAA,IACTA,EAAE,MAAA,CAAO;AAAA,MACP,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACvC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACjC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,MACtB,QAAQA,CAAAA,CACL,MAAA;AAAA,QACCA,EAAE,MAAA,EAAO;AAAA,QACTA,CAAAA,CAAE,mBAAmB,MAAA,EAAQ;AAAA,UAC3BA,EAAE,MAAA,CAAO;AAAA,YACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,YAC/B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YAC1B,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,YACnC,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,YACnC,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,YAClB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YACjC,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,YACnC,aAAaA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,WAC3C,CAAA;AAAA,UACDA,EAAE,MAAA,CAAO;AAAA,YACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,YAC7B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YAC1B,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,YACnC,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,YACnC,QAAA,EAAUA,EAAE,MAAA;AAAO,WACpB,CAAA;AAAA,UACDA,EAAE,MAAA,CAAO;AAAA,YACP,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,YAClC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YACjC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,YAC1B,OAAOA,CAAAA,CAAE,MAAA;AAAA,cACPA,EAAE,MAAA,EAAO;AAAA,cACTA,EAAE,MAAA,CAAO;AAAA,gBACP,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,gBACjC,eAAA,EAAiBA,EAAE,MAAA;AAAO,eAC3B;AAAA;AACH,WACD;AAAA,SACF;AAAA,QAEF,QAAA,EAAS;AAAA,MACZ,WAAWA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACzC;AAAA,IAEF,QAAA,EAAS;AAAA,EACZ,kBAAA,EAAoBA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,EACrC,0BAA0BA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACvD,SAASA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAC/B,CAAC;AC5DM,IAAM,qBAAA,GAAwBA,EAAE,MAAA,CAAO;AAAA,EAC5C,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,QAAA,EAAU,mBAAmB,QAAA,EAAS;AAAA,IACtC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,WAAA,EAAaA,EACV,MAAA,EAAO,CACP,UAAS,CACT,SAAA,CAAU,CAAC,KAAA,KAAU;AACpB,MAAA,IAAI,UAAU,MAAA,EAAW;AACvB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AAC3C,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG;AAC7B,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,OAAO,WAAA;AAAA,IACT,CAAC,CAAA;AAAA,IACH,QAAA,EAAUA,EACP,MAAA,EAAO,CACP,UAAS,CACT,SAAA,CAAU,CAAC,KAAA,KAAU;AACpB,MAAA,IAAI,UAAU,MAAA,EAAW;AACvB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAC7C,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG;AAC7B,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,OAAO,WAAA;AAAA,IACT,CAAC,CAAA;AAAA,IACH,UAAA,EAAYA,EACT,MAAA,EAAO,CACP,UAAS,CACT,SAAA,CAAU,CAAC,KAAA,KAAU;AACpB,MAAA,IAAI,UAAU,MAAA,EAAW;AACvB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAC7C,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG;AAC7B,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,OAAO,WAAA;AAAA,IACT,CAAC,CAAA;AAAA,IACH,OAAA,EAASA,EACN,MAAA,EAAO,CACP,UAAS,CACT,SAAA,CAAU,CAAC,KAAA,KAAU;AACpB,MAAA,IAAI,UAAU,MAAA,EAAW;AACvB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAC7C,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG;AAC7B,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,OAAO,WAAA;AAAA,IACT,CAAC,CAAA;AAAA,IACH,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,SAASA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,IACtC,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAC9B,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAC/B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAChC,yBAAA,EAA2BA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,GACjD;AACH,CAAC;ACjDM,SAAS,eAAe,SAAA,EAK7B;AACA,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,cAAc,CAAA;AAC5C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,SAAS,CAAA,CAAE,CAAA;AAAA,EAC3D;AAEA,EAAA,MAAM,CAAC,GAAA,EAAK,IAAA,EAAM,OAAA,EAAS,GAAG,CAAA,GAAI,KAAA;AAClC,EAAA,OAAO;AAAA,IACL,GAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,IAAM,eAAA,GAAkBA,EAAE,MAAA,CAAO;AAAA,EACtC,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,IAChB,cAAA,EAAgB,oBAAA;AAAA,IAChB,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC/C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,MAAM,cAAc,CAAA;AAAA,IACjD,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,MACd,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,yBAAA,EAA2BA,EACxB,MAAA,CAAO;AAAA,QACN,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,QACrB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,QACnB,IAAA,EAAMA,EAAE,MAAA;AAAO,OAChB,EACA,QAAA;AAAS,KACb,CAAA;AAAA,IACD,OAAA,EAASA,CAAAA,CACN,MAAA,CAAOA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,CAAA,CAAE,KAAA,CAAM,cAAc,CAAA,EAAG,aAAa,IAAA,CAAK,EAAE,GAAA,EAAK,IAAA,EAAM,CAAC,CAAA,CAChF,QAAA,EAAS,CACT,OAAA,CAAQ,EAAE,CAAA,CACV,SAAA;AAAA,MAAU,CAAC,YACV,MAAA,CAAO,WAAA;AAAA,QACL,MAAA,CAAO,QAAQ,OAAO,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,gBAAgB,CAAA,KAAM;AAAA,UACvD,GAAA;AAAA,UACA,aAAa,KAAA,CAAM;AAAA,YACjB,GAAG,gBAAA;AAAA,YACH;AAAA,WACD;AAAA,SACF;AAAA;AACH,KACF;AAAA,IACF,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAQ,kBAAkB,CAAA;AAAA,IAC3E,UAAUA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,IACrC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,IAClE,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,IAC5D,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,OAAA,CAAQ,IAAA,CAAK,GAAA,EAAK,CAAA;AAAA,IACnD,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,OAAA,CAAQ,IAAA,CAAK,GAAA,EAAK,CAAA;AAAA,IACnD,oBAAoBA,CAAAA,CAAE,GAAA,GAAM,QAAA,EAAS,CAAE,QAAQ,yBAAyB,CAAA;AAAA,IACxE,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACpC,0BAA0BA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,IACvD,GAAA,EAAKA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE;AAAA,GAC5D,CAAA;AAAA,EACD,UAAA,EAAY,iBAAiB,QAAA;AAC/B,CAAC;AAkGM,SAAS,YAAiC,IAAA,EAAS;AACxD,EAAA,OAAO,CACL,OAAA,EACA,UAAA,EACA,IAAA,KACoB;AACpB,IAAA,OAAO;AAAA,MACL,IAAA;AAAA,MACA,IAAI,QAAA,EAAS;AAAA,MACb,SAAA,EAAW,WAAW,MAAA,CAAO,GAAA;AAAA,MAC7B,SAAA,EAAW,KAAK,GAAA,EAAI;AAAA,MACpB,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,YAAY,UAAA,CAAW,UAAA;AAAA,MACvB,GAAG;AAAA,KACL;AAAA,EACF,CAAA;AACF;AAEO,IAAM,QAAA,GAAW,YAAY,UAAU;AACvC,IAAM,eAAA,GAAkB,YAAY,iBAAiB;AACrD,IAAM,KAAA,GAAQ,YAAY,OAAO;AACjC,IAAM,QAAA,GAAW,YAAY,UAAU;AACvC,IAAM,mBAAA,GAAsB,YAAY,qBAAqB;AAC7D,IAAM,YAAA,GAAe,YAAY,cAAc;AAC/C,IAAM,iBAAA,GAAoB,YAAY,mBAAmB;AACzD,IAAM,cAAA,GAAiB,YAAY,gBAAgB;AACnD,IAAM,cAAA,GAAiB,YAAY,gBAAgB;AACnD,IAAM,gBAAA,GAAmB,YAAY,kBAAkB;AACvD,IAAM,iBAAA,GAAoB,YAAY,mBAAmB;AACzD,IAAM,cAAA,GAAiB,YAAY,gBAAgB;AACnD,IAAM,WAAA,GAAc,YAAY,aAAa;AAC7C,IAAM,wBAAA,GAA2B,YAAY,0BAA0B;AACvE,IAAM,iBAAA,GAAoB,YAAY,mBAAmB;AACzD,IAAM,yBAAA,GAA4B,YAAY,2BAA2B;AACzE,IAAM,kBAAA,GAAqB,YAAY,oBAAoB;ACzN3D,IAAM,cAAA,GAAiBA,EAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC7B,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EACnD,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,sBAAsB,CAAA;AAAA,EACtD,IAAA,EAAMA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,EAAGA,CAAAA,CAAE,OAAA,EAAS;AAC/C,CAAC;ACJM,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA,EACvC,EAAA,EAAIA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC7B,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EACnD,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,sBAAsB,CAAA;AAAA,EACtD,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,iBAAiB;AACnC,CAAC;;;ACEM,IAAM,UAAA,GAAaA,EAAE,MAAA,CAAO;AAAA,EACjC,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,aAAA,EAAeA,CAAAA,CACZ,KAAA,CAAMA,CAAAA,CAAE,KAAA,CAAM,CAAC,wBAAA,EAA0B,iBAAA,EAAmB,iBAAiB,CAAC,CAAC,CAAA,CAC/E,QAAA,EAAS;AAAA,EACZ,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAM,aAAa,CAAA;AAAA,EAClC,QAAA,EAAU,eAAe,QAAA,EAAS;AAAA,EAClC,UAAA,EAAY,iBAAiB,QAAA,EAAS;AAAA,EACtC,KAAA,EAAO,WAAA;AAAA,EACP,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;;;ACtBM,IAAM,WAAA,GAAc;AAAA,EACzB;AAAA,IACE,QAAA,EAAU,WAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAAA,MAEN;AAAA,QACE,IAAA,EAAM,wBAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,0BAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,4BAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,yBAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA;AACnB;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAAA,MAEN;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,aAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,kBAAA;AAAA,QACN,aAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,uBAAA;AAAA,QACN,aAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAiB;AAAA;AACnB;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAAA,MAEN;AAAA,QACE,IAAA,EAAM,OAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,mBAAA;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,SAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,IAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,SAAA;AAAA,QACN,aAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,SAAA;AAAA,QACN,aAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAiB;AAAA;AACnB;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAAA,MAEN;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,aAAA,EAAe,MAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,cAAA;AAAA,QACN,aAAA,EAAe,MAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,aAAA,EAAe,IAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,eAAA,EAAiB;AAAA,OACnB;AAAA;AAAA,MAEA;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,eAAA,EAAiB;AAAA;AACnB;AACF;AAEJ","file":"index.js","sourcesContent":["export const defaultPerstackApiBaseUrl = \"https://api.perstack.ai\"\n\n// Organization\nexport const organizationNameRegex = /^[a-z0-9][a-z0-9_\\.-]*$/\nexport const maxOrganizationNameLength = 128\n\n// Application\nexport const maxApplicationNameLength = 255\n\n// Expert\nexport const expertKeyRegex =\n /^((?:@[a-z0-9][a-z0-9_\\.-]*\\/)?[a-z0-9][a-z0-9_\\.-]*)(?:@((?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?)|@([a-z0-9][a-z0-9_\\.-]*))?$/\nexport const expertNameRegex = /^(@[a-z0-9][a-z0-9_-]*\\/)?[a-z0-9][a-z0-9_-]*$/\nexport const expertVersionRegex =\n /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?$/\nexport const tagNameRegex = /^[a-z0-9][a-z0-9_-]*$/\nexport const maxExpertNameLength = 255\nexport const maxExpertVersionTagLength = 255\nexport const maxExpertKeyLength = 511\nexport const maxExpertDescriptionLength = 1024 * 2\nexport const maxExpertInstructionLength = 1024 * 20\nexport const maxExpertSkillItems = 255\nexport const maxExpertDelegateItems = 255\nexport const maxExpertTagItems = 8\nexport const defaultTemperature = 0.0\nexport const defaultMaxSteps = undefined\nexport const defaultMaxRetries = 5\nexport const defaultTimeout = 5 * 1000 * 60\n\n// ExpertJob\nexport const maxExpertJobQueryLength = 1024 * 20\nexport const maxExpertJobFileNameLength = 1024 * 10\n\n// Skill\nexport const packageWithVersionRegex =\n /^(?:@[a-z0-9][a-z0-9_\\.-]*\\/)?[a-z0-9][a-z0-9_\\.-]*(?:@(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?|@[a-z0-9][a-z0-9_\\.-]*)?$/\nexport const urlSafeRegex = /^[a-z0-9][a-z0-9_-]*$/\nexport const maxSkillNameLength = 255\nexport const maxSkillDescriptionLength = 1024 * 2\nexport const maxSkillRuleLength = 1024 * 2\nexport const maxSkillPickOmitItems = 255\nexport const maxSkillRequiredEnvItems = 255\nexport const maxSkillToolNameLength = 255\nexport const maxSkillEndpointLength = 1024 * 2\nexport const maxSkillInputJsonSchemaLength = 1024 * 20\nexport const maxSkillToolItems = 255\n\n// Checkpoint\nexport const maxCheckpointToolCallIdLength = 255\n\n// Workspace\nexport const envNameRegex = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/\nexport const maxEnvNameLength = 255\n","import { z } from \"zod\"\n\n/**\n * Message Part Schemas\n */\nexport const basePartSchema = z.object({\n id: z.string(),\n})\nexport type BasePart = z.infer<typeof basePartSchema>\n\nexport const textPartSchema = basePartSchema.extend({\n type: z.literal(\"textPart\"),\n text: z.string(),\n})\nexport type TextPart = z.infer<typeof textPartSchema>\n\nexport const imageUrlPartSchema = basePartSchema.extend({\n type: z.literal(\"imageUrlPart\"),\n url: z.url(),\n mimeType: z.string(),\n})\nexport type ImageUrlPart = z.infer<typeof imageUrlPartSchema>\n\nexport const imageInlinePartSchema = basePartSchema.extend({\n type: z.literal(\"imageInlinePart\"),\n encodedData: z.string(),\n mimeType: z.string(),\n})\nexport type ImageInlinePart = z.infer<typeof imageInlinePartSchema>\n\nexport const imageBinaryPartSchema = basePartSchema.extend({\n type: z.literal(\"imageBinaryPart\"),\n data: z.string(),\n mimeType: z.string(),\n})\nexport type ImageBinaryPart = z.infer<typeof imageBinaryPartSchema>\n\nexport const fileUrlPartSchema = basePartSchema.extend({\n type: z.literal(\"fileUrlPart\"),\n url: z.string().url(),\n mimeType: z.string(),\n})\nexport type FileUrlPart = z.infer<typeof fileUrlPartSchema>\n\nexport const fileInlinePartSchema = basePartSchema.extend({\n type: z.literal(\"fileInlinePart\"),\n encodedData: z.string(),\n mimeType: z.string(),\n})\nexport type FileInlinePart = z.infer<typeof fileInlinePartSchema>\n\nexport const fileBinaryPartSchema = basePartSchema.extend({\n type: z.literal(\"fileBinaryPart\"),\n data: z.string(),\n mimeType: z.string(),\n})\nexport type FileBinaryPart = z.infer<typeof fileBinaryPartSchema>\n\nexport const toolCallPartSchema = basePartSchema.extend({\n type: z.literal(\"toolCallPart\"),\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.unknown(),\n})\nexport type ToolCallPart = z.infer<typeof toolCallPartSchema>\n\nexport const toolResultPartSchema = basePartSchema.extend({\n type: z.literal(\"toolResultPart\"),\n toolCallId: z.string(),\n toolName: z.string(),\n contents: z.array(z.union([textPartSchema, imageInlinePartSchema])),\n isError: z.boolean().optional(),\n})\nexport type ToolResultPart = z.infer<typeof toolResultPartSchema>\n\nexport const messagePartSchema = z.discriminatedUnion(\"type\", [\n textPartSchema,\n imageUrlPartSchema,\n imageInlinePartSchema,\n imageBinaryPartSchema,\n fileUrlPartSchema,\n fileInlinePartSchema,\n fileBinaryPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n])\nexport type MessagePart = z.infer<typeof messagePartSchema>\n","import { z } from \"zod\"\nimport {\n fileBinaryPartSchema,\n fileInlinePartSchema,\n fileUrlPartSchema,\n imageBinaryPartSchema,\n imageInlinePartSchema,\n imageUrlPartSchema,\n textPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n} from \"./message-part.js\"\n\n/**\n * Message Schemas\n */\nconst baseMessageSchema = z.object({\n id: z.string(),\n})\n\nexport const instructionMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"instructionMessage\"),\n contents: z.array(textPartSchema),\n cache: z.boolean().optional(),\n})\nexport type InstructionMessage = z.infer<typeof instructionMessageSchema>\n\nexport const userMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"userMessage\"),\n contents: z.array(\n z.union([\n textPartSchema,\n imageUrlPartSchema,\n imageInlinePartSchema,\n imageBinaryPartSchema,\n fileUrlPartSchema,\n fileInlinePartSchema,\n fileBinaryPartSchema,\n ]),\n ),\n cache: z.boolean().optional(),\n})\nexport type UserMessage = z.infer<typeof userMessageSchema>\n\nexport const expertMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"expertMessage\"),\n contents: z.array(z.union([textPartSchema, toolCallPartSchema])),\n cache: z.boolean().optional(),\n})\nexport type ExpertMessage = z.infer<typeof expertMessageSchema>\n\nexport const toolMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"toolMessage\"),\n contents: z.array(toolResultPartSchema),\n cache: z.boolean().optional(),\n})\nexport type ToolMessage = z.infer<typeof toolMessageSchema>\n\nexport const messageSchema = z.union([\n instructionMessageSchema,\n userMessageSchema,\n expertMessageSchema,\n toolMessageSchema,\n])\nexport type Message = z.infer<typeof messageSchema>\n","import { z } from \"zod\"\n\nexport const usageSchema = z.object({\n inputTokens: z.number(),\n outputTokens: z.number(),\n reasoningTokens: z.number(),\n totalTokens: z.number(),\n cachedInputTokens: z.number(),\n})\nexport type Usage = z.infer<typeof usageSchema>\n","import { z } from \"zod\"\nimport { messageSchema } from \"./message.js\"\nimport { usageSchema } from \"./usage.js\"\n\nexport const checkpointStatusSchema = z.enum([\n \"init\",\n \"proceeding\",\n \"completed\",\n \"stoppedByInteractiveTool\",\n \"stoppedByDelegate\",\n \"stoppedByExceededMaxSteps\",\n \"stoppedByError\",\n])\nexport type CheckpointStatus = z.infer<typeof checkpointStatusSchema>\n\nexport const checkpointSchema = z.object({\n id: z.string(),\n runId: z.string(),\n status: checkpointStatusSchema,\n stepNumber: z.number(),\n messages: z.array(messageSchema),\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n delegateTo: z\n .object({\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n toolCallId: z.string(),\n toolName: z.string(),\n query: z.string(),\n })\n .optional(),\n delegatedBy: z\n .object({\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n toolCallId: z.string(),\n toolName: z.string(),\n checkpointId: z.string(),\n })\n .optional(),\n usage: usageSchema,\n contextWindow: z.number().optional(),\n contextWindowUsage: z.number().optional(),\n})\nexport type Checkpoint = z.infer<typeof checkpointSchema>\n","import { z } from \"zod\"\n\nexport const mcpStdioSkillSchema = z.object({\n type: z.literal(\"mcpStdioSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional().default([]),\n omit: z.array(z.string()).optional().default([]),\n command: z.string(),\n packageName: z.string().optional(),\n args: z.array(z.string()).optional().default([]),\n requiredEnv: z.array(z.string()).optional().default([]),\n})\nexport type McpStdioSkill = z.infer<typeof mcpStdioSkillSchema>\n\nexport const mcpSseSkillSchema = z.object({\n type: z.literal(\"mcpSseSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional().default([]),\n omit: z.array(z.string()).optional().default([]),\n endpoint: z.string(),\n})\nexport type McpSseSkill = z.infer<typeof mcpSseSkillSchema>\n\nexport const interactiveToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputJsonSchema: z.string(),\n})\nexport type InteractiveTool = z.infer<typeof interactiveToolSchema>\n\nexport const interactiveSkillSchema = z.object({\n type: z.literal(\"interactiveSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n tools: z.record(z.string(), interactiveToolSchema.omit({ name: true })).transform((tools) => {\n return Object.fromEntries(\n Object.entries(tools).map(([key, toolWithoutName]) => [\n key,\n interactiveToolSchema.parse({ ...toolWithoutName, name: key }),\n ]),\n )\n }),\n})\nexport type InteractiveSkill = z.infer<typeof interactiveSkillSchema>\n\nexport const skillSchema = z.discriminatedUnion(\"type\", [\n mcpStdioSkillSchema,\n mcpSseSkillSchema,\n interactiveSkillSchema,\n])\nexport type Skill = z.infer<typeof skillSchema>\n","import { z } from \"zod\"\nimport {\n expertKeyRegex,\n expertNameRegex,\n expertVersionRegex,\n maxExpertNameLength,\n tagNameRegex,\n} from \"../constants/constants.js\"\nimport { interactiveSkillSchema, mcpSseSkillSchema, mcpStdioSkillSchema } from \"./skill.js\"\n\nexport const expertSchema = z.object({\n key: z.string().regex(expertKeyRegex).min(1),\n name: z.string().regex(expertNameRegex).min(1).max(maxExpertNameLength),\n version: z.string().regex(expertVersionRegex),\n description: z\n .string()\n .min(1)\n .max(1024 * 2)\n .optional(),\n instruction: z\n .string()\n .min(1)\n .max(1024 * 20),\n skills: z\n .record(\n z.string(),\n z.discriminatedUnion(\"type\", [\n mcpStdioSkillSchema.omit({ name: true }),\n mcpSseSkillSchema.omit({ name: true }),\n interactiveSkillSchema.omit({ name: true }),\n ]),\n )\n .optional()\n .default({\n \"@perstack/base\": {\n type: \"mcpStdioSkill\",\n description: \"Base skill\",\n command: \"npx\",\n args: [\"-y\", \"@perstack/base\"],\n pick: [],\n omit: [],\n requiredEnv: [],\n },\n })\n .transform((skills) => {\n return Object.fromEntries(\n Object.entries(skills).map(([key, skillWithoutName]) => [\n key,\n z\n .discriminatedUnion(\"type\", [\n mcpStdioSkillSchema,\n mcpSseSkillSchema,\n interactiveSkillSchema,\n ])\n .parse({ ...skillWithoutName, name: key }),\n ]),\n )\n }),\n delegates: z.array(z.string().regex(expertKeyRegex).min(1)).optional().default([]),\n tags: z.array(z.string().regex(tagNameRegex).min(1)).optional().default([]),\n})\nexport type Expert = z.infer<typeof expertSchema>\n","import { z } from \"zod\"\n\nexport const providerNameSchema = z.enum([\n \"anthropic\",\n \"google\",\n \"openai\",\n \"ollama\",\n \"azure-openai\",\n \"amazon-bedrock\",\n])\nexport type ProviderName = z.infer<typeof providerNameSchema>\n\nexport const anthropicProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.anthropic),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n})\nexport type AnthropicProviderConfig = z.infer<typeof anthropicProviderConfigSchema>\n\nexport const googleGenerativeAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.google),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n})\nexport type GoogleGenerativeAiProviderConfig = z.infer<\n typeof googleGenerativeAiProviderConfigSchema\n>\n\nexport const openAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.openai),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n organization: z.string().optional(),\n project: z.string().optional(),\n})\nexport type OpenAiProviderConfig = z.infer<typeof openAiProviderConfigSchema>\n\nexport const ollamaProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.ollama),\n baseUrl: z.string().optional(),\n})\nexport type OllamaProviderConfig = z.infer<typeof ollamaProviderConfigSchema>\n\nexport const azureOpenAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum[\"azure-openai\"]),\n apiKey: z.string(),\n resourceName: z.string(),\n apiVersion: z.string().optional(),\n})\nexport type AzureOpenAiProviderConfig = z.infer<typeof azureOpenAiProviderConfigSchema>\n\nexport const amazonBedrockProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum[\"amazon-bedrock\"]),\n accessKeyId: z.string(),\n secretAccessKey: z.string(),\n region: z.string(),\n sessionToken: z.string().optional(),\n})\nexport type AmazonBedrockProviderConfig = z.infer<typeof amazonBedrockProviderConfigSchema>\n\nexport const providerConfigSchema = z.discriminatedUnion(\"name\", [\n anthropicProviderConfigSchema,\n googleGenerativeAiProviderConfigSchema,\n openAiProviderConfigSchema,\n ollamaProviderConfigSchema,\n azureOpenAiProviderConfigSchema,\n amazonBedrockProviderConfigSchema,\n])\nexport type ProviderConfig = z.infer<typeof providerConfigSchema>\n","import { z } from \"zod\"\nimport { providerNameSchema } from \"./provider-config.js\"\n\n/**\n * perstack.toml config schema\n */\nexport const perstackConfigSchema = z.object({\n provider: providerNameSchema.optional(),\n model: z.string().optional(),\n temperature: z.number().optional(),\n maxSteps: z.number().optional(),\n maxRetries: z.number().optional(),\n timeout: z.number().optional(),\n experts: z\n .record(\n z.string(),\n z.object({\n version: z.string().optional(),\n minRuntimeVersion: z.string().optional(),\n description: z.string().optional(),\n instruction: z.string(),\n skills: z\n .record(\n z.string(),\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"mcpStdioSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional(),\n omit: z.array(z.string()).optional(),\n command: z.string(),\n packageName: z.string().optional(),\n args: z.array(z.string()).optional(),\n requiredEnv: z.array(z.string()).optional(),\n }),\n z.object({\n type: z.literal(\"mcpSseSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional(),\n omit: z.array(z.string()).optional(),\n endpoint: z.string(),\n }),\n z.object({\n type: z.literal(\"interactiveSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n tools: z.record(\n z.string(),\n z.object({\n description: z.string().optional(),\n inputJsonSchema: z.string(),\n }),\n ),\n }),\n ]),\n )\n .optional(),\n delegates: z.array(z.string()).optional(),\n }),\n )\n .optional(),\n perstackApiBaseUrl: z.url().optional(),\n perstackBaseSkillCommand: z.array(z.string()).optional(),\n envPath: z.array(z.string()).optional(),\n})\nexport type PerstackConfig = z.infer<typeof perstackConfigSchema>\n","import { z } from \"zod\"\nimport { providerNameSchema } from \"./provider-config.js\"\n\n/**\n * Run command input schema\n */\nexport const runCommandInputSchema = z.object({\n expertKey: z.string(),\n query: z.string(),\n options: z.object({\n config: z.string().optional(),\n provider: providerNameSchema.optional(),\n model: z.string().optional(),\n temperature: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) {\n return undefined\n }\n const parsedValue = Number.parseFloat(value)\n if (Number.isNaN(parsedValue)) {\n return undefined\n }\n return parsedValue\n }),\n maxSteps: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) {\n return undefined\n }\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) {\n return undefined\n }\n return parsedValue\n }),\n maxRetries: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) {\n return undefined\n }\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) {\n return undefined\n }\n return parsedValue\n }),\n timeout: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) {\n return undefined\n }\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) {\n return undefined\n }\n return parsedValue\n }),\n runId: z.string().optional(),\n envPath: z.array(z.string()).optional(),\n verbose: z.boolean().optional(),\n continue: z.boolean().optional(),\n continueRun: z.string().optional(),\n resumeFrom: z.string().optional(),\n interactiveToolCallResult: z.boolean().optional(),\n }),\n})\nexport type RunCommandInput = z.infer<typeof runCommandInputSchema>\n","import { createId } from \"@paralleldrive/cuid2\"\nimport { z } from \"zod\"\nimport {\n defaultMaxRetries,\n defaultPerstackApiBaseUrl,\n defaultTemperature,\n defaultTimeout,\n expertKeyRegex,\n} from \"../constants/constants.js\"\nimport { type Checkpoint, checkpointSchema } from \"./checkpoint.js\"\nimport { expertSchema } from \"./expert.js\"\nimport type {\n ExpertMessage,\n InstructionMessage,\n Message,\n ToolMessage,\n UserMessage,\n} from \"./message.js\"\nimport { providerConfigSchema } from \"./provider-config.js\"\nimport type { Step } from \"./step.js\"\nimport type { ToolCall } from \"./tool-call.js\"\nimport type { ToolResult } from \"./tool-result.js\"\nimport type { Usage } from \"./usage.js\"\n\nexport function parseExpertKey(expertKey: string): {\n key: string\n name: string\n version?: string\n tag?: string\n} {\n const match = expertKey.match(expertKeyRegex)\n if (!match) {\n throw new Error(`Invalid expert key format: ${expertKey}`)\n }\n\n const [key, name, version, tag] = match\n return {\n key,\n name,\n version,\n tag,\n }\n}\n\nexport const runParamsSchema = z.object({\n setting: z.object({\n model: z.string(),\n providerConfig: providerConfigSchema,\n runId: z.string().optional().default(createId()),\n expertKey: z.string().min(1).regex(expertKeyRegex),\n input: z.object({\n text: z.string().optional(),\n interactiveToolCallResult: z\n .object({\n toolCallId: z.string(),\n toolName: z.string(),\n text: z.string(),\n })\n .optional(),\n }),\n experts: z\n .record(z.string().min(1).regex(expertKeyRegex), expertSchema.omit({ key: true }))\n .optional()\n .default({})\n .transform((experts) =>\n Object.fromEntries(\n Object.entries(experts).map(([key, expertWithoutKey]) => [\n key,\n expertSchema.parse({\n ...expertWithoutKey,\n key,\n }),\n ]),\n ),\n ),\n temperature: z.number().min(0).max(1).optional().default(defaultTemperature),\n maxSteps: z.number().min(1).optional(),\n maxRetries: z.number().min(0).optional().default(defaultMaxRetries),\n timeout: z.number().min(0).optional().default(defaultTimeout),\n workspace: z.string().optional(),\n startedAt: z.number().optional().default(Date.now()),\n updatedAt: z.number().optional().default(Date.now()),\n perstackApiBaseUrl: z.url().optional().default(defaultPerstackApiBaseUrl),\n perstackApiKey: z.string().optional(),\n perstackBaseSkillCommand: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional().default({}),\n }),\n checkpoint: checkpointSchema.optional(),\n})\nexport type RunParamsInput = z.input<typeof runParamsSchema>\nexport type RunParams = z.output<typeof runParamsSchema>\nexport type RunSetting = z.infer<typeof runParamsSchema.shape.setting>\nexport type RunInput = z.infer<typeof runParamsSchema.shape.setting.shape.input>\n\n/**\n * ExpertEvents can only contain deeply serializable properties.\n * This is important because these events are serialized using JSON.stringify() and stored in Cassandra,\n * and later used to restore state when resuming execution. Non-serializable properties would cause\n * issues during serialization/deserialization process.\n */\ntype ExpertEventPayloads = {\n startRun: {\n initialCheckpoint: Checkpoint\n inputMessages: (InstructionMessage | UserMessage | ToolMessage)[]\n }\n startGeneration: {\n messages: Message[]\n }\n retry: {\n reason: string\n newMessages: (UserMessage | ExpertMessage | ToolMessage)[]\n toolCall?: ToolCall\n toolResult?: ToolResult\n usage: Usage\n }\n callTool: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n callInteractiveTool: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n callDelegate: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n resolveToolResult: {\n toolResult: ToolResult\n }\n resolveThought: {\n toolResult: ToolResult\n }\n resolvePdfFile: {\n toolResult: ToolResult\n }\n resolveImageFile: {\n toolResult: ToolResult\n }\n attemptCompletion: {\n toolResult: ToolResult\n }\n finishToolCall: {\n newMessages: (UserMessage | ToolMessage)[]\n }\n continueToNextStep: {\n checkpoint: Checkpoint\n step: Step\n nextCheckpoint: Checkpoint\n }\n stopRunByInteractiveTool: {\n checkpoint: Checkpoint\n step: Step\n }\n stopRunByDelegate: {\n checkpoint: Checkpoint\n step: Step\n }\n stopRunByExceededMaxSteps: {\n checkpoint: Checkpoint\n step: Step\n }\n completeRun: {\n checkpoint: Checkpoint\n step: Step\n text: string\n usage: Usage\n }\n}\n\ntype BaseEvent = {\n id: string\n expertKey: string\n timestamp: number\n runId: string\n stepNumber: number\n}\nexport type EventType = keyof ExpertEventPayloads\nexport type RunEvent = {\n [K in EventType]: BaseEvent & { type: K } & ExpertEventPayloads[K]\n}[EventType]\nexport type EventForType<T extends EventType> = Extract<RunEvent, { type: T }>\n\nexport function createEvent<T extends EventType>(type: T) {\n return (\n setting: RunSetting,\n checkpoint: Checkpoint,\n data: Omit<EventForType<T>, \"type\" | \"id\" | \"expertKey\" | \"timestamp\" | \"runId\" | \"stepNumber\">,\n ): EventForType<T> => {\n return {\n type,\n id: createId(),\n expertKey: checkpoint.expert.key,\n timestamp: Date.now(),\n runId: setting.runId,\n stepNumber: checkpoint.stepNumber,\n ...data,\n } as EventForType<T>\n }\n}\n\nexport const startRun = createEvent(\"startRun\")\nexport const startGeneration = createEvent(\"startGeneration\")\nexport const retry = createEvent(\"retry\")\nexport const callTool = createEvent(\"callTool\")\nexport const callInteractiveTool = createEvent(\"callInteractiveTool\")\nexport const callDelegate = createEvent(\"callDelegate\")\nexport const resolveToolResult = createEvent(\"resolveToolResult\")\nexport const resolveThought = createEvent(\"resolveThought\")\nexport const resolvePdfFile = createEvent(\"resolvePdfFile\")\nexport const resolveImageFile = createEvent(\"resolveImageFile\")\nexport const attemptCompletion = createEvent(\"attemptCompletion\")\nexport const finishToolCall = createEvent(\"finishToolCall\")\nexport const completeRun = createEvent(\"completeRun\")\nexport const stopRunByInteractiveTool = createEvent(\"stopRunByInteractiveTool\")\nexport const stopRunByDelegate = createEvent(\"stopRunByDelegate\")\nexport const stopRunByExceededMaxSteps = createEvent(\"stopRunByExceededMaxSteps\")\nexport const continueToNextStep = createEvent(\"continueToNextStep\")\n","import { z } from \"zod\"\nimport { maxSkillNameLength, maxSkillToolNameLength } from \"../constants/constants.js\"\n\nexport const toolCallSchema = z.object({\n id: z.string().min(1).max(255),\n skillName: z.string().min(1).max(maxSkillNameLength),\n toolName: z.string().min(1).max(maxSkillToolNameLength),\n args: z.record(z.string().min(1), z.unknown()),\n})\nexport type ToolCall = z.infer<typeof toolCallSchema>\n","import { z } from \"zod\"\nimport { maxSkillNameLength, maxSkillToolNameLength } from \"../constants/constants.js\"\nimport { messagePartSchema } from \"./message-part.js\"\n\nexport const toolResultSchema = z.object({\n id: z.string().min(1).max(255),\n skillName: z.string().min(1).max(maxSkillNameLength),\n toolName: z.string().min(1).max(maxSkillToolNameLength),\n result: z.array(messagePartSchema),\n})\nexport type ToolResult = z.infer<typeof toolResultSchema>\n","import { z } from \"zod\"\nimport {\n instructionMessageSchema,\n messageSchema,\n toolMessageSchema,\n userMessageSchema,\n} from \"./message.js\"\nimport { toolCallSchema } from \"./tool-call.js\"\nimport { toolResultSchema } from \"./tool-result.js\"\nimport { usageSchema } from \"./usage.js\"\n\nexport const stepSchema = z.object({\n stepNumber: z.number(),\n inputMessages: z\n .array(z.union([instructionMessageSchema, userMessageSchema, toolMessageSchema]))\n .optional(),\n newMessages: z.array(messageSchema),\n toolCall: toolCallSchema.optional(),\n toolResult: toolResultSchema.optional(),\n usage: usageSchema,\n startedAt: z.number(),\n finishedAt: z.number().optional(),\n})\nexport type Step = z.infer<typeof stepSchema>\n","export const knownModels = [\n {\n provider: \"anthropic\",\n models: [\n // https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table\n {\n name: \"claude-opus-4-20250514\",\n contextWindow: 200_000,\n maxOutputTokens: 32_000,\n },\n {\n name: \"claude-sonnet-4-20250514\",\n contextWindow: 200_000,\n maxOutputTokens: 64_000,\n },\n {\n name: \"claude-3-7-sonnet-20250219\",\n contextWindow: 200_000,\n maxOutputTokens: 64_000,\n },\n {\n name: \"claude-3-5-haiku-latest\",\n contextWindow: 200_000,\n maxOutputTokens: 8_192,\n },\n ],\n },\n {\n provider: \"google\",\n models: [\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro\n {\n name: \"gemini-2.5-pro\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash\n {\n name: \"gemini-2.5-flash\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite\n {\n name: \"gemini-2.5-flash-lite\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n ],\n },\n {\n provider: \"openai\",\n models: [\n // https://platform.openai.com/docs/models/gpt-5\n {\n name: \"gpt-5\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-mini\n {\n name: \"gpt-5-mini\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-nano\n {\n name: \"gpt-5-nano\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-chat-latest\n {\n name: \"gpt-5-chat-latest\",\n contextWindow: 128_000,\n maxOutputTokens: 16_384,\n },\n // https://platform.openai.com/docs/models/o4-mini\n {\n name: \"o4-mini\",\n contextWindow: 200_000,\n maxOutputTokens: 100_000,\n },\n // https://platform.openai.com/docs/models/o3\n {\n name: \"o3\",\n contextWindow: 200_000,\n maxOutputTokens: 10_000,\n },\n // https://platform.openai.com/docs/models/o3-mini\n {\n name: \"o3-mini\",\n contextWindow: 200_000,\n maxOutputTokens: 10_000,\n },\n // https://platform.openai.com/docs/models/gpt-4.1\n {\n name: \"gpt-4.1\",\n contextWindow: 1_047_576,\n maxOutputTokens: 32_768,\n },\n ],\n },\n {\n provider: \"ollama\",\n models: [\n // https://platform.openai.com/docs/models/gpt-oss-20b\n {\n name: \"gpt-oss:20b\",\n contextWindow: 131_072,\n maxOutputTokens: 131_072,\n },\n // https://platform.openai.com/docs/models/gpt-oss-120b\n {\n name: \"gpt-oss:120b\",\n contextWindow: 131_072,\n maxOutputTokens: 131_072,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:1b\",\n contextWindow: 32_000,\n maxOutputTokens: 32_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:4b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:12b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:27b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n ],\n },\n]\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/constants/constants.ts","../../src/schemas/message-part.ts","../../src/schemas/message.ts","../../src/schemas/usage.ts","../../src/schemas/checkpoint.ts","../../src/schemas/skill.ts","../../src/schemas/expert.ts","../../src/schemas/provider-config.ts","../../src/schemas/perstack-toml.ts","../../src/schemas/run-command.ts","../../src/schemas/runtime.ts","../../src/schemas/tool-call.ts","../../src/schemas/tool-result.ts","../../src/schemas/step.ts","../../src/known-models/index.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export const defaultPerstackApiBaseUrl = \"https://api.perstack.ai\"\n\n// Organization\nexport const organizationNameRegex = /^[a-z0-9][a-z0-9_\\.-]*$/\nexport const maxOrganizationNameLength = 128\n\n// Application\nexport const maxApplicationNameLength = 255\n\n// Expert\nexport const expertKeyRegex =\n /^((?:@[a-z0-9][a-z0-9_\\.-]*\\/)?[a-z0-9][a-z0-9_\\.-]*)(?:@((?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?)|@([a-z0-9][a-z0-9_\\.-]*))?$/\nexport const expertNameRegex = /^(@[a-z0-9][a-z0-9_-]*\\/)?[a-z0-9][a-z0-9_-]*$/\nexport const expertVersionRegex =\n /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?$/\nexport const tagNameRegex = /^[a-z0-9][a-z0-9_-]*$/\nexport const maxExpertNameLength = 255\nexport const maxExpertVersionTagLength = 255\nexport const maxExpertKeyLength = 511\nexport const maxExpertDescriptionLength = 1024 * 2\nexport const maxExpertInstructionLength = 1024 * 20\nexport const maxExpertSkillItems = 255\nexport const maxExpertDelegateItems = 255\nexport const maxExpertTagItems = 8\nexport const defaultTemperature = 0.0\nexport const defaultMaxSteps = undefined\nexport const defaultMaxRetries = 5\nexport const defaultTimeout = 5 * 1000 * 60\n\n// ExpertJob\nexport const maxExpertJobQueryLength = 1024 * 20\nexport const maxExpertJobFileNameLength = 1024 * 10\n\n// Skill\nexport const packageWithVersionRegex =\n /^(?:@[a-z0-9][a-z0-9_\\.-]*\\/)?[a-z0-9][a-z0-9_\\.-]*(?:@(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?|@[a-z0-9][a-z0-9_\\.-]*)?$/\nexport const urlSafeRegex = /^[a-z0-9][a-z0-9_-]*$/\nexport const maxSkillNameLength = 255\nexport const maxSkillDescriptionLength = 1024 * 2\nexport const maxSkillRuleLength = 1024 * 2\nexport const maxSkillPickOmitItems = 255\nexport const maxSkillRequiredEnvItems = 255\nexport const maxSkillToolNameLength = 255\nexport const maxSkillEndpointLength = 1024 * 2\nexport const maxSkillInputJsonSchemaLength = 1024 * 20\nexport const maxSkillToolItems = 255\n\n// Checkpoint\nexport const maxCheckpointToolCallIdLength = 255\n\n// Workspace\nexport const envNameRegex = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/\nexport const maxEnvNameLength = 255\n","import { z } from \"zod\"\n\n/**\n * Message Part Schemas\n */\nexport const basePartSchema = z.object({\n id: z.string(),\n})\nexport type BasePart = z.infer<typeof basePartSchema>\n\nexport const textPartSchema = basePartSchema.extend({\n type: z.literal(\"textPart\"),\n text: z.string(),\n})\nexport type TextPart = z.infer<typeof textPartSchema>\n\nexport const imageUrlPartSchema = basePartSchema.extend({\n type: z.literal(\"imageUrlPart\"),\n url: z.url(),\n mimeType: z.string(),\n})\nexport type ImageUrlPart = z.infer<typeof imageUrlPartSchema>\n\nexport const imageInlinePartSchema = basePartSchema.extend({\n type: z.literal(\"imageInlinePart\"),\n encodedData: z.string(),\n mimeType: z.string(),\n})\nexport type ImageInlinePart = z.infer<typeof imageInlinePartSchema>\n\nexport const imageBinaryPartSchema = basePartSchema.extend({\n type: z.literal(\"imageBinaryPart\"),\n data: z.string(),\n mimeType: z.string(),\n})\nexport type ImageBinaryPart = z.infer<typeof imageBinaryPartSchema>\n\nexport const fileUrlPartSchema = basePartSchema.extend({\n type: z.literal(\"fileUrlPart\"),\n url: z.string().url(),\n mimeType: z.string(),\n})\nexport type FileUrlPart = z.infer<typeof fileUrlPartSchema>\n\nexport const fileInlinePartSchema = basePartSchema.extend({\n type: z.literal(\"fileInlinePart\"),\n encodedData: z.string(),\n mimeType: z.string(),\n})\nexport type FileInlinePart = z.infer<typeof fileInlinePartSchema>\n\nexport const fileBinaryPartSchema = basePartSchema.extend({\n type: z.literal(\"fileBinaryPart\"),\n data: z.string(),\n mimeType: z.string(),\n})\nexport type FileBinaryPart = z.infer<typeof fileBinaryPartSchema>\n\nexport const toolCallPartSchema = basePartSchema.extend({\n type: z.literal(\"toolCallPart\"),\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.unknown(),\n})\nexport type ToolCallPart = z.infer<typeof toolCallPartSchema>\n\nexport const toolResultPartSchema = basePartSchema.extend({\n type: z.literal(\"toolResultPart\"),\n toolCallId: z.string(),\n toolName: z.string(),\n contents: z.array(z.union([textPartSchema, imageInlinePartSchema])),\n isError: z.boolean().optional(),\n})\nexport type ToolResultPart = z.infer<typeof toolResultPartSchema>\n\nexport const messagePartSchema = z.discriminatedUnion(\"type\", [\n textPartSchema,\n imageUrlPartSchema,\n imageInlinePartSchema,\n imageBinaryPartSchema,\n fileUrlPartSchema,\n fileInlinePartSchema,\n fileBinaryPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n])\nexport type MessagePart = z.infer<typeof messagePartSchema>\n","import { z } from \"zod\"\nimport {\n fileBinaryPartSchema,\n fileInlinePartSchema,\n fileUrlPartSchema,\n imageBinaryPartSchema,\n imageInlinePartSchema,\n imageUrlPartSchema,\n textPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n} from \"./message-part.js\"\n\n/**\n * Message Schemas\n */\nconst baseMessageSchema = z.object({\n id: z.string(),\n})\n\nexport const instructionMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"instructionMessage\"),\n contents: z.array(textPartSchema),\n cache: z.boolean().optional(),\n})\nexport type InstructionMessage = z.infer<typeof instructionMessageSchema>\n\nexport const userMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"userMessage\"),\n contents: z.array(\n z.union([\n textPartSchema,\n imageUrlPartSchema,\n imageInlinePartSchema,\n imageBinaryPartSchema,\n fileUrlPartSchema,\n fileInlinePartSchema,\n fileBinaryPartSchema,\n ]),\n ),\n cache: z.boolean().optional(),\n})\nexport type UserMessage = z.infer<typeof userMessageSchema>\n\nexport const expertMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"expertMessage\"),\n contents: z.array(z.union([textPartSchema, toolCallPartSchema])),\n cache: z.boolean().optional(),\n})\nexport type ExpertMessage = z.infer<typeof expertMessageSchema>\n\nexport const toolMessageSchema = baseMessageSchema.extend({\n type: z.literal(\"toolMessage\"),\n contents: z.array(toolResultPartSchema),\n cache: z.boolean().optional(),\n})\nexport type ToolMessage = z.infer<typeof toolMessageSchema>\n\nexport const messageSchema = z.union([\n instructionMessageSchema,\n userMessageSchema,\n expertMessageSchema,\n toolMessageSchema,\n])\nexport type Message = z.infer<typeof messageSchema>\n","import { z } from \"zod\"\n\nexport const usageSchema = z.object({\n inputTokens: z.number(),\n outputTokens: z.number(),\n reasoningTokens: z.number(),\n totalTokens: z.number(),\n cachedInputTokens: z.number(),\n})\nexport type Usage = z.infer<typeof usageSchema>\n","import { z } from \"zod\"\nimport { messageSchema } from \"./message.js\"\nimport { usageSchema } from \"./usage.js\"\n\nexport const checkpointStatusSchema = z.enum([\n \"init\",\n \"proceeding\",\n \"completed\",\n \"stoppedByInteractiveTool\",\n \"stoppedByDelegate\",\n \"stoppedByExceededMaxSteps\",\n \"stoppedByError\",\n])\nexport type CheckpointStatus = z.infer<typeof checkpointStatusSchema>\n\nexport const checkpointSchema = z.object({\n id: z.string(),\n runId: z.string(),\n status: checkpointStatusSchema,\n stepNumber: z.number(),\n messages: z.array(messageSchema),\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n delegateTo: z\n .object({\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n toolCallId: z.string(),\n toolName: z.string(),\n query: z.string(),\n })\n .optional(),\n delegatedBy: z\n .object({\n expert: z.object({\n key: z.string(),\n name: z.string(),\n version: z.string(),\n }),\n toolCallId: z.string(),\n toolName: z.string(),\n checkpointId: z.string(),\n })\n .optional(),\n usage: usageSchema,\n contextWindow: z.number().optional(),\n contextWindowUsage: z.number().optional(),\n})\nexport type Checkpoint = z.infer<typeof checkpointSchema>\n","import { z } from \"zod\"\n\nexport const mcpStdioSkillSchema = z.object({\n type: z.literal(\"mcpStdioSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional().default([]),\n omit: z.array(z.string()).optional().default([]),\n command: z.string(),\n packageName: z.string().optional(),\n args: z.array(z.string()).optional().default([]),\n requiredEnv: z.array(z.string()).optional().default([]),\n lazyInit: z.boolean().optional().default(true),\n})\nexport type McpStdioSkill = z.infer<typeof mcpStdioSkillSchema>\n\nexport const mcpSseSkillSchema = z.object({\n type: z.literal(\"mcpSseSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional().default([]),\n omit: z.array(z.string()).optional().default([]),\n endpoint: z.string(),\n})\nexport type McpSseSkill = z.infer<typeof mcpSseSkillSchema>\n\nexport const interactiveToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputJsonSchema: z.string(),\n})\nexport type InteractiveTool = z.infer<typeof interactiveToolSchema>\n\nexport const interactiveSkillSchema = z.object({\n type: z.literal(\"interactiveSkill\"),\n name: z.string(),\n description: z.string().optional(),\n rule: z.string().optional(),\n tools: z.record(z.string(), interactiveToolSchema.omit({ name: true })).transform((tools) => {\n return Object.fromEntries(\n Object.entries(tools).map(([key, toolWithoutName]) => [\n key,\n interactiveToolSchema.parse({ ...toolWithoutName, name: key }),\n ]),\n )\n }),\n})\nexport type InteractiveSkill = z.infer<typeof interactiveSkillSchema>\n\nexport const skillSchema = z.discriminatedUnion(\"type\", [\n mcpStdioSkillSchema,\n mcpSseSkillSchema,\n interactiveSkillSchema,\n])\nexport type Skill = z.infer<typeof skillSchema>\n","import { z } from \"zod\"\nimport {\n expertKeyRegex,\n expertNameRegex,\n expertVersionRegex,\n maxExpertNameLength,\n tagNameRegex,\n} from \"../constants/constants.js\"\nimport { interactiveSkillSchema, mcpSseSkillSchema, mcpStdioSkillSchema } from \"./skill.js\"\n\nexport const expertSchema = z.object({\n key: z.string().regex(expertKeyRegex).min(1),\n name: z.string().regex(expertNameRegex).min(1).max(maxExpertNameLength),\n version: z.string().regex(expertVersionRegex),\n description: z\n .string()\n .min(1)\n .max(1024 * 2)\n .optional(),\n instruction: z\n .string()\n .min(1)\n .max(1024 * 20),\n skills: z\n .record(\n z.string(),\n z.discriminatedUnion(\"type\", [\n mcpStdioSkillSchema.omit({ name: true }),\n mcpSseSkillSchema.omit({ name: true }),\n interactiveSkillSchema.omit({ name: true }),\n ]),\n )\n .optional()\n .default({\n \"@perstack/base\": {\n type: \"mcpStdioSkill\",\n description: \"Base skill\",\n command: \"npx\",\n args: [\"-y\", \"@perstack/base\"],\n pick: [],\n omit: [],\n requiredEnv: [],\n lazyInit: false,\n },\n })\n .transform((skills) => {\n return Object.fromEntries(\n Object.entries(skills).map(([key, skillWithoutName]) => [\n key,\n z\n .discriminatedUnion(\"type\", [\n mcpStdioSkillSchema,\n mcpSseSkillSchema,\n interactiveSkillSchema,\n ])\n .parse({ ...skillWithoutName, name: key }),\n ]),\n )\n }),\n delegates: z.array(z.string().regex(expertKeyRegex).min(1)).optional().default([]),\n tags: z.array(z.string().regex(tagNameRegex).min(1)).optional().default([]),\n})\nexport type Expert = z.infer<typeof expertSchema>\n","import { z } from \"zod\"\n\nexport const providerNameSchema = z.enum([\n \"anthropic\",\n \"google\",\n \"openai\",\n \"ollama\",\n \"azure-openai\",\n \"amazon-bedrock\",\n])\nexport type ProviderName = z.infer<typeof providerNameSchema>\n\nexport const anthropicProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.anthropic),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n})\nexport type AnthropicProviderConfig = z.infer<typeof anthropicProviderConfigSchema>\n\nexport const googleGenerativeAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.google),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n})\nexport type GoogleGenerativeAiProviderConfig = z.infer<\n typeof googleGenerativeAiProviderConfigSchema\n>\n\nexport const openAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.openai),\n apiKey: z.string(),\n baseUrl: z.string().optional(),\n organization: z.string().optional(),\n project: z.string().optional(),\n})\nexport type OpenAiProviderConfig = z.infer<typeof openAiProviderConfigSchema>\n\nexport const ollamaProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum.ollama),\n baseUrl: z.string().optional(),\n})\nexport type OllamaProviderConfig = z.infer<typeof ollamaProviderConfigSchema>\n\nexport const azureOpenAiProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum[\"azure-openai\"]),\n apiKey: z.string(),\n resourceName: z.string(),\n apiVersion: z.string().optional(),\n})\nexport type AzureOpenAiProviderConfig = z.infer<typeof azureOpenAiProviderConfigSchema>\n\nexport const amazonBedrockProviderConfigSchema = z.object({\n name: z.literal(providerNameSchema.enum[\"amazon-bedrock\"]),\n accessKeyId: z.string(),\n secretAccessKey: z.string(),\n region: z.string(),\n sessionToken: z.string().optional(),\n})\nexport type AmazonBedrockProviderConfig = z.infer<typeof amazonBedrockProviderConfigSchema>\n\nexport const providerConfigSchema = z.discriminatedUnion(\"name\", [\n anthropicProviderConfigSchema,\n googleGenerativeAiProviderConfigSchema,\n openAiProviderConfigSchema,\n ollamaProviderConfigSchema,\n azureOpenAiProviderConfigSchema,\n amazonBedrockProviderConfigSchema,\n])\nexport type ProviderConfig = z.infer<typeof providerConfigSchema>\n","import { z } from \"zod\"\nimport { providerNameSchema } from \"./provider-config.js\"\n\n/**\n * perstack.toml config schema\n */\nexport const perstackConfigSchema = z.object({\n provider: providerNameSchema.optional(),\n model: z.string().optional(),\n temperature: z.number().optional(),\n maxSteps: z.number().optional(),\n maxRetries: z.number().optional(),\n timeout: z.number().optional(),\n experts: z\n .record(\n z.string(),\n z.object({\n version: z.string().optional(),\n minRuntimeVersion: z.string().optional(),\n description: z.string().optional(),\n instruction: z.string(),\n skills: z\n .record(\n z.string(),\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"mcpStdioSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional(),\n omit: z.array(z.string()).optional(),\n command: z.string(),\n packageName: z.string().optional(),\n args: z.array(z.string()).optional(),\n requiredEnv: z.array(z.string()).optional(),\n }),\n z.object({\n type: z.literal(\"mcpSseSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n pick: z.array(z.string()).optional(),\n omit: z.array(z.string()).optional(),\n endpoint: z.string(),\n }),\n z.object({\n type: z.literal(\"interactiveSkill\"),\n description: z.string().optional(),\n rule: z.string().optional(),\n tools: z.record(\n z.string(),\n z.object({\n description: z.string().optional(),\n inputJsonSchema: z.string(),\n }),\n ),\n }),\n ]),\n )\n .optional(),\n delegates: z.array(z.string()).optional(),\n }),\n )\n .optional(),\n perstackApiBaseUrl: z.url().optional(),\n perstackBaseSkillCommand: z.array(z.string()).optional(),\n envPath: z.array(z.string()).optional(),\n})\nexport type PerstackConfig = z.infer<typeof perstackConfigSchema>\n","import { z } from \"zod\"\nimport { providerNameSchema } from \"./provider-config.js\"\n\n/**\n * @schema RunCommandInputSchema\n * @since 0.0.1\n * @stability stable\n * @description CLI run command input parameters. Used by CLI to parse user input.\n */\nconst commandOptionsSchema = z.object({\n config: z.string().optional(),\n provider: providerNameSchema.optional(),\n model: z.string().optional(),\n temperature: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) return undefined\n const parsedValue = Number.parseFloat(value)\n if (Number.isNaN(parsedValue)) return undefined\n return parsedValue\n }),\n maxSteps: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) return undefined\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) return undefined\n return parsedValue\n }),\n maxRetries: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) return undefined\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) return undefined\n return parsedValue\n }),\n timeout: z\n .string()\n .optional()\n .transform((value) => {\n if (value === undefined) return undefined\n const parsedValue = Number.parseInt(value, 10)\n if (Number.isNaN(parsedValue)) return undefined\n return parsedValue\n }),\n runId: z.string().optional(),\n envPath: z.array(z.string()).optional(),\n verbose: z.boolean().optional(),\n continue: z.boolean().optional(),\n continueRun: z.string().optional(),\n resumeFrom: z.string().optional(),\n interactiveToolCallResult: z.boolean().optional(),\n})\nexport const runCommandInputSchema = z.object({\n expertKey: z.string(),\n query: z.string(),\n options: commandOptionsSchema,\n})\nexport type RunCommandInput = z.infer<typeof runCommandInputSchema>\nexport const startCommandInputSchema = z.object({\n expertKey: z.string().optional(),\n query: z.string().optional(),\n options: commandOptionsSchema,\n})\nexport type StartCommandInput = z.infer<typeof startCommandInputSchema>\n","import { createId } from \"@paralleldrive/cuid2\"\nimport { z } from \"zod\"\nimport {\n defaultMaxRetries,\n defaultPerstackApiBaseUrl,\n defaultTemperature,\n defaultTimeout,\n expertKeyRegex,\n} from \"../constants/constants.js\"\nimport { type Checkpoint, checkpointSchema } from \"./checkpoint.js\"\nimport { expertSchema } from \"./expert.js\"\nimport type {\n ExpertMessage,\n InstructionMessage,\n Message,\n ToolMessage,\n UserMessage,\n} from \"./message.js\"\nimport { providerConfigSchema } from \"./provider-config.js\"\nimport type { Step } from \"./step.js\"\nimport type { ToolCall } from \"./tool-call.js\"\nimport type { ToolResult } from \"./tool-result.js\"\nimport type { Usage } from \"./usage.js\"\n\nexport function parseExpertKey(expertKey: string): {\n key: string\n name: string\n version?: string\n tag?: string\n} {\n const match = expertKey.match(expertKeyRegex)\n if (!match) {\n throw new Error(`Invalid expert key format: ${expertKey}`)\n }\n const [key, name, version, tag] = match\n if (!name) {\n throw new Error(`Invalid expert key format: ${expertKey}`)\n }\n return { key, name, version, tag }\n}\n\nexport const runParamsSchema = z.object({\n setting: z.object({\n model: z.string(),\n providerConfig: providerConfigSchema,\n runId: z.string().optional().default(createId()),\n expertKey: z.string().min(1).regex(expertKeyRegex),\n input: z.object({\n text: z.string().optional(),\n interactiveToolCallResult: z\n .object({\n toolCallId: z.string(),\n toolName: z.string(),\n text: z.string(),\n })\n .optional(),\n }),\n experts: z\n .record(z.string().min(1).regex(expertKeyRegex), expertSchema.omit({ key: true }))\n .optional()\n .default({})\n .transform((experts) =>\n Object.fromEntries(\n Object.entries(experts).map(([key, expertWithoutKey]) => [\n key,\n expertSchema.parse({\n ...expertWithoutKey,\n key,\n }),\n ]),\n ),\n ),\n temperature: z.number().min(0).max(1).optional().default(defaultTemperature),\n maxSteps: z.number().min(1).optional(),\n maxRetries: z.number().min(0).optional().default(defaultMaxRetries),\n timeout: z.number().min(0).optional().default(defaultTimeout),\n workspace: z.string().optional(),\n startedAt: z.number().optional().default(Date.now()),\n updatedAt: z.number().optional().default(Date.now()),\n perstackApiBaseUrl: z.url().optional().default(defaultPerstackApiBaseUrl),\n perstackApiKey: z.string().optional(),\n perstackBaseSkillCommand: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional().default({}),\n }),\n checkpoint: checkpointSchema.optional(),\n})\nexport type RunParamsInput = z.input<typeof runParamsSchema>\nexport type RunParams = z.output<typeof runParamsSchema>\nexport type RunSetting = z.infer<typeof runParamsSchema.shape.setting>\nexport type RunInput = z.infer<typeof runParamsSchema.shape.setting.shape.input>\n\n/**\n * ExpertEvents can only contain deeply serializable properties.\n * This is important because these events are serialized using JSON.stringify() and stored in Cassandra,\n * and later used to restore state when resuming execution. Non-serializable properties would cause\n * issues during serialization/deserialization process.\n */\ntype ExpertEventPayloads = {\n startRun: {\n initialCheckpoint: Checkpoint\n inputMessages: (InstructionMessage | UserMessage | ToolMessage)[]\n }\n startGeneration: {\n messages: Message[]\n }\n retry: {\n reason: string\n newMessages: (UserMessage | ExpertMessage | ToolMessage)[]\n toolCall?: ToolCall\n toolResult?: ToolResult\n usage: Usage\n }\n callTool: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n callInteractiveTool: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n callDelegate: {\n newMessage: ExpertMessage\n toolCall: ToolCall\n usage: Usage\n }\n resolveToolResult: {\n toolResult: ToolResult\n }\n resolveThought: {\n toolResult: ToolResult\n }\n resolvePdfFile: {\n toolResult: ToolResult\n }\n resolveImageFile: {\n toolResult: ToolResult\n }\n attemptCompletion: {\n toolResult: ToolResult\n }\n finishToolCall: {\n newMessages: (UserMessage | ToolMessage)[]\n }\n continueToNextStep: {\n checkpoint: Checkpoint\n step: Step\n nextCheckpoint: Checkpoint\n }\n stopRunByInteractiveTool: {\n checkpoint: Checkpoint\n step: Step\n }\n stopRunByDelegate: {\n checkpoint: Checkpoint\n step: Step\n }\n stopRunByExceededMaxSteps: {\n checkpoint: Checkpoint\n step: Step\n }\n completeRun: {\n checkpoint: Checkpoint\n step: Step\n text: string\n usage: Usage\n }\n}\n\ntype BaseEvent = {\n id: string\n expertKey: string\n timestamp: number\n runId: string\n stepNumber: number\n}\nexport type EventType = keyof ExpertEventPayloads\nexport type RunEvent = {\n [K in EventType]: BaseEvent & { type: K } & ExpertEventPayloads[K]\n}[EventType]\nexport type EventForType<T extends EventType> = Extract<RunEvent, { type: T }>\n\nexport function createEvent<T extends EventType>(type: T) {\n return (\n setting: RunSetting,\n checkpoint: Checkpoint,\n data: Omit<EventForType<T>, \"type\" | \"id\" | \"expertKey\" | \"timestamp\" | \"runId\" | \"stepNumber\">,\n ): EventForType<T> => {\n return {\n type,\n id: createId(),\n expertKey: checkpoint.expert.key,\n timestamp: Date.now(),\n runId: setting.runId,\n stepNumber: checkpoint.stepNumber,\n ...data,\n } as EventForType<T>\n }\n}\n\nexport const startRun = createEvent(\"startRun\")\nexport const startGeneration = createEvent(\"startGeneration\")\nexport const retry = createEvent(\"retry\")\nexport const callTool = createEvent(\"callTool\")\nexport const callInteractiveTool = createEvent(\"callInteractiveTool\")\nexport const callDelegate = createEvent(\"callDelegate\")\nexport const resolveToolResult = createEvent(\"resolveToolResult\")\nexport const resolveThought = createEvent(\"resolveThought\")\nexport const resolvePdfFile = createEvent(\"resolvePdfFile\")\nexport const resolveImageFile = createEvent(\"resolveImageFile\")\nexport const attemptCompletion = createEvent(\"attemptCompletion\")\nexport const finishToolCall = createEvent(\"finishToolCall\")\nexport const completeRun = createEvent(\"completeRun\")\nexport const stopRunByInteractiveTool = createEvent(\"stopRunByInteractiveTool\")\nexport const stopRunByDelegate = createEvent(\"stopRunByDelegate\")\nexport const stopRunByExceededMaxSteps = createEvent(\"stopRunByExceededMaxSteps\")\nexport const continueToNextStep = createEvent(\"continueToNextStep\")\n\ntype BaseRuntimeEvent = {\n id: string\n timestamp: number\n runId: string\n}\ntype RuntimeEventPayloads = {\n initializeRuntime: {\n runtimeVersion: string\n expertName: string\n experts: string[]\n model: string\n temperature: number\n maxSteps?: number\n maxRetries: number\n timeout: number\n query?: string\n interactiveToolCall?: {\n toolName: string\n toolCallId: string\n text: string\n }\n }\n skillConnected: {\n skillName: string\n serverInfo?: {\n name: string\n version: string\n }\n }\n skillDisconnected: {\n skillName: string\n }\n}\nexport type RuntimeEventType = keyof RuntimeEventPayloads\nexport type RuntimeEvent = {\n [K in RuntimeEventType]: BaseRuntimeEvent & { type: K } & RuntimeEventPayloads[K]\n}[RuntimeEventType]\nexport type RuntimeEventForType<T extends RuntimeEventType> = Extract<RuntimeEvent, { type: T }>\nexport function createRuntimeEvent<T extends RuntimeEventType>(\n type: T,\n runId: string,\n data: Omit<RuntimeEventForType<T>, \"type\" | \"id\" | \"timestamp\" | \"runId\">,\n): RuntimeEventForType<T> {\n return {\n type,\n id: createId(),\n timestamp: Date.now(),\n runId,\n ...data,\n } as RuntimeEventForType<T>\n}\n","import { z } from \"zod\"\nimport { maxSkillNameLength, maxSkillToolNameLength } from \"../constants/constants.js\"\n\nexport const toolCallSchema = z.object({\n id: z.string().min(1).max(255),\n skillName: z.string().min(1).max(maxSkillNameLength),\n toolName: z.string().min(1).max(maxSkillToolNameLength),\n args: z.record(z.string().min(1), z.unknown()),\n})\nexport type ToolCall = z.infer<typeof toolCallSchema>\n","import { z } from \"zod\"\nimport { maxSkillNameLength, maxSkillToolNameLength } from \"../constants/constants.js\"\nimport { messagePartSchema } from \"./message-part.js\"\n\nexport const toolResultSchema = z.object({\n id: z.string().min(1).max(255),\n skillName: z.string().min(1).max(maxSkillNameLength),\n toolName: z.string().min(1).max(maxSkillToolNameLength),\n result: z.array(messagePartSchema),\n})\nexport type ToolResult = z.infer<typeof toolResultSchema>\n","import { z } from \"zod\"\nimport {\n instructionMessageSchema,\n messageSchema,\n toolMessageSchema,\n userMessageSchema,\n} from \"./message.js\"\nimport { toolCallSchema } from \"./tool-call.js\"\nimport { toolResultSchema } from \"./tool-result.js\"\nimport { usageSchema } from \"./usage.js\"\n\nexport const stepSchema = z.object({\n stepNumber: z.number(),\n inputMessages: z\n .array(z.union([instructionMessageSchema, userMessageSchema, toolMessageSchema]))\n .optional(),\n newMessages: z.array(messageSchema),\n toolCall: toolCallSchema.optional(),\n toolResult: toolResultSchema.optional(),\n usage: usageSchema,\n startedAt: z.number(),\n finishedAt: z.number().optional(),\n})\nexport type Step = z.infer<typeof stepSchema>\n","export const knownModels = [\n {\n provider: \"anthropic\",\n models: [\n // https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table\n {\n name: \"claude-opus-4-5\",\n contextWindow: 200_000,\n maxOutputTokens: 32_000,\n },\n {\n name: \"claude-opus-4-1\",\n contextWindow: 200_000,\n maxOutputTokens: 32_000,\n },\n {\n name: \"claude-opus-4-20250514\",\n contextWindow: 200_000,\n maxOutputTokens: 32_000,\n },\n {\n name: \"claude-sonnet-4-5\",\n contextWindow: 200_000,\n maxOutputTokens: 64_000,\n },\n {\n name: \"claude-sonnet-4-20250514\",\n contextWindow: 200_000,\n maxOutputTokens: 64_000,\n },\n {\n name: \"claude-3-7-sonnet-20250219\",\n contextWindow: 200_000,\n maxOutputTokens: 64_000,\n },\n {\n name: \"claude-haiku-4-5\",\n contextWindow: 200_000,\n maxOutputTokens: 8_192,\n },\n {\n name: \"claude-3-5-haiku-latest\",\n contextWindow: 200_000,\n maxOutputTokens: 8_192,\n },\n ],\n },\n {\n provider: \"google\",\n models: [\n // https://ai.google.dev/gemini-api/docs/models#gemini-3-pro\n {\n name: \"gemini-3-pro-preview\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro\n {\n name: \"gemini-2.5-pro\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash\n {\n name: \"gemini-2.5-flash\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n // https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite\n {\n name: \"gemini-2.5-flash-lite\",\n contextWindow: 1_048_576,\n maxOutputTokens: 65_536,\n },\n ],\n },\n {\n provider: \"openai\",\n models: [\n // https://platform.openai.com/docs/models/gpt-5\n {\n name: \"gpt-5\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-mini\n {\n name: \"gpt-5-mini\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-nano\n {\n name: \"gpt-5-nano\",\n contextWindow: 400_000,\n maxOutputTokens: 128_000,\n },\n // https://platform.openai.com/docs/models/gpt-5-chat-latest\n {\n name: \"gpt-5-chat-latest\",\n contextWindow: 128_000,\n maxOutputTokens: 16_384,\n },\n // https://platform.openai.com/docs/models/o4-mini\n {\n name: \"o4-mini\",\n contextWindow: 200_000,\n maxOutputTokens: 100_000,\n },\n // https://platform.openai.com/docs/models/o3\n {\n name: \"o3\",\n contextWindow: 200_000,\n maxOutputTokens: 10_000,\n },\n // https://platform.openai.com/docs/models/o3-mini\n {\n name: \"o3-mini\",\n contextWindow: 200_000,\n maxOutputTokens: 10_000,\n },\n // https://platform.openai.com/docs/models/gpt-4.1\n {\n name: \"gpt-4.1\",\n contextWindow: 1_047_576,\n maxOutputTokens: 32_768,\n },\n ],\n },\n {\n provider: \"ollama\",\n models: [\n // https://platform.openai.com/docs/models/gpt-oss-20b\n {\n name: \"gpt-oss:20b\",\n contextWindow: 131_072,\n maxOutputTokens: 131_072,\n },\n // https://platform.openai.com/docs/models/gpt-oss-120b\n {\n name: \"gpt-oss:120b\",\n contextWindow: 131_072,\n maxOutputTokens: 131_072,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:1b\",\n contextWindow: 32_000,\n maxOutputTokens: 32_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:4b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:12b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n // https://ai.google.dev/gemma/docs/core/model_card_3\n {\n name: \"gemma3:27b\",\n contextWindow: 128_000,\n maxOutputTokens: 128_000,\n },\n ],\n },\n]\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perstack/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Perstack Core",
|
|
5
5
|
"author": "Wintermute Technologies, Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@paralleldrive/cuid2": "^
|
|
19
|
-
"zod": "^4.1.
|
|
18
|
+
"@paralleldrive/cuid2": "^3.0.4",
|
|
19
|
+
"zod": "^4.1.13"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@tsconfig/node22": "^22.0.
|
|
23
|
-
"@types/node": "^24.
|
|
24
|
-
"tsup": "^8.5.
|
|
25
|
-
"typescript": "^5.9.
|
|
26
|
-
"vitest": "^
|
|
22
|
+
"@tsconfig/node22": "^22.0.5",
|
|
23
|
+
"@types/node": "^24.10.1",
|
|
24
|
+
"tsup": "^8.5.1",
|
|
25
|
+
"typescript": "^5.9.3",
|
|
26
|
+
"vitest": "^4.0.14"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"clean": "rm -rf dist",
|