@perstack/core 0.0.52 → 0.0.54

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.
Files changed (122) hide show
  1. package/dist/src/adapters/event-creators.d.ts +26 -0
  2. package/dist/src/adapters/event-creators.d.ts.map +1 -0
  3. package/dist/src/adapters/event-creators.js +126 -0
  4. package/dist/src/adapters/event-creators.js.map +1 -0
  5. package/dist/src/adapters/index.d.ts +2 -0
  6. package/dist/src/adapters/index.d.ts.map +1 -0
  7. package/dist/src/adapters/index.js +2 -0
  8. package/dist/src/adapters/index.js.map +1 -0
  9. package/dist/src/constants/constants.d.ts +11 -0
  10. package/dist/src/constants/constants.d.ts.map +1 -0
  11. package/dist/src/constants/constants.js +13 -0
  12. package/dist/src/constants/constants.js.map +1 -0
  13. package/dist/src/errors.d.ts +4 -0
  14. package/dist/src/errors.d.ts.map +1 -0
  15. package/dist/src/errors.js +7 -0
  16. package/dist/src/errors.js.map +1 -0
  17. package/dist/src/index.d.ts +28 -6219
  18. package/dist/src/index.d.ts.map +1 -0
  19. package/dist/src/index.js +28 -1904
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/known-models/index.d.ts +9 -0
  22. package/dist/src/known-models/index.d.ts.map +1 -0
  23. package/dist/src/known-models/index.js +216 -0
  24. package/dist/src/known-models/index.js.map +1 -0
  25. package/dist/src/schemas/activity.d.ts +2159 -0
  26. package/dist/src/schemas/activity.d.ts.map +1 -0
  27. package/dist/src/schemas/activity.js +209 -0
  28. package/dist/src/schemas/activity.js.map +1 -0
  29. package/dist/src/schemas/checkpoint.d.ts +338 -0
  30. package/dist/src/schemas/checkpoint.d.ts.map +1 -0
  31. package/dist/src/schemas/checkpoint.js +69 -0
  32. package/dist/src/schemas/checkpoint.js.map +1 -0
  33. package/dist/src/schemas/expert.d.ts +309 -0
  34. package/dist/src/schemas/expert.d.ts.map +1 -0
  35. package/dist/src/schemas/expert.js +70 -0
  36. package/dist/src/schemas/expert.js.map +1 -0
  37. package/dist/src/schemas/job.d.ts +44 -0
  38. package/dist/src/schemas/job.d.ts.map +1 -0
  39. package/dist/src/schemas/job.js +22 -0
  40. package/dist/src/schemas/job.js.map +1 -0
  41. package/dist/src/schemas/lockfile.d.ts +143 -0
  42. package/dist/src/schemas/lockfile.d.ts.map +1 -0
  43. package/dist/src/schemas/lockfile.js +26 -0
  44. package/dist/src/schemas/lockfile.js.map +1 -0
  45. package/dist/src/schemas/message-part.d.ts +239 -0
  46. package/dist/src/schemas/message-part.d.ts.map +1 -0
  47. package/dist/src/schemas/message-part.js +80 -0
  48. package/dist/src/schemas/message-part.js.map +1 -0
  49. package/dist/src/schemas/message.d.ts +236 -0
  50. package/dist/src/schemas/message.d.ts.map +1 -0
  51. package/dist/src/schemas/message.js +44 -0
  52. package/dist/src/schemas/message.js.map +1 -0
  53. package/dist/src/schemas/perstack-toml.d.ts +366 -0
  54. package/dist/src/schemas/perstack-toml.d.ts.map +1 -0
  55. package/dist/src/schemas/perstack-toml.js +175 -0
  56. package/dist/src/schemas/perstack-toml.js.map +1 -0
  57. package/dist/src/schemas/provider-config.d.ts +216 -0
  58. package/dist/src/schemas/provider-config.d.ts.map +1 -0
  59. package/dist/src/schemas/provider-config.js +86 -0
  60. package/dist/src/schemas/provider-config.js.map +1 -0
  61. package/dist/src/schemas/provider-tools.d.ts +93 -0
  62. package/dist/src/schemas/provider-tools.d.ts.map +1 -0
  63. package/dist/src/schemas/provider-tools.js +60 -0
  64. package/dist/src/schemas/provider-tools.js.map +1 -0
  65. package/dist/src/schemas/run-command.d.ts +127 -0
  66. package/dist/src/schemas/run-command.d.ts.map +1 -0
  67. package/dist/src/schemas/run-command.js +82 -0
  68. package/dist/src/schemas/run-command.js.map +1 -0
  69. package/dist/src/schemas/runtime-version.d.ts +4 -0
  70. package/dist/src/schemas/runtime-version.d.ts.map +1 -0
  71. package/dist/src/schemas/runtime-version.js +6 -0
  72. package/dist/src/schemas/runtime-version.js.map +1 -0
  73. package/dist/src/schemas/runtime.d.ts +1317 -0
  74. package/dist/src/schemas/runtime.d.ts.map +1 -0
  75. package/dist/src/schemas/runtime.js +205 -0
  76. package/dist/src/schemas/runtime.js.map +1 -0
  77. package/dist/src/schemas/skill-manager.d.ts +64 -0
  78. package/dist/src/schemas/skill-manager.d.ts.map +1 -0
  79. package/dist/src/schemas/skill-manager.js +2 -0
  80. package/dist/src/schemas/skill-manager.js.map +1 -0
  81. package/dist/src/schemas/skill.d.ts +147 -0
  82. package/dist/src/schemas/skill.d.ts.map +1 -0
  83. package/dist/src/schemas/skill.js +99 -0
  84. package/dist/src/schemas/skill.js.map +1 -0
  85. package/dist/src/schemas/step.d.ts +370 -0
  86. package/dist/src/schemas/step.d.ts.map +1 -0
  87. package/dist/src/schemas/step.js +21 -0
  88. package/dist/src/schemas/step.js.map +1 -0
  89. package/dist/src/schemas/tool-call.d.ts +19 -0
  90. package/dist/src/schemas/tool-call.d.ts.map +1 -0
  91. package/dist/src/schemas/tool-call.js +10 -0
  92. package/dist/src/schemas/tool-call.js.map +1 -0
  93. package/dist/src/schemas/tool-result.d.ts +86 -0
  94. package/dist/src/schemas/tool-result.d.ts.map +1 -0
  95. package/dist/src/schemas/tool-result.js +11 -0
  96. package/dist/src/schemas/tool-result.js.map +1 -0
  97. package/dist/src/schemas/usage.d.ts +22 -0
  98. package/dist/src/schemas/usage.d.ts.map +1 -0
  99. package/dist/src/schemas/usage.js +10 -0
  100. package/dist/src/schemas/usage.js.map +1 -0
  101. package/dist/src/utils/activity.d.ts +20 -0
  102. package/dist/src/utils/activity.d.ts.map +1 -0
  103. package/dist/src/utils/activity.js +449 -0
  104. package/dist/src/utils/activity.js.map +1 -0
  105. package/dist/src/utils/env-filter.d.ts +4 -0
  106. package/dist/src/utils/env-filter.d.ts.map +1 -0
  107. package/dist/src/utils/env-filter.js +50 -0
  108. package/dist/src/utils/env-filter.js.map +1 -0
  109. package/dist/src/utils/event-filter.d.ts +16 -0
  110. package/dist/src/utils/event-filter.d.ts.map +1 -0
  111. package/dist/src/utils/event-filter.js +31 -0
  112. package/dist/src/utils/event-filter.js.map +1 -0
  113. package/dist/src/utils/expert-type.d.ts +38 -0
  114. package/dist/src/utils/expert-type.d.ts.map +1 -0
  115. package/dist/src/utils/expert-type.js +88 -0
  116. package/dist/src/utils/expert-type.js.map +1 -0
  117. package/dist/src/utils/zod-error.d.ts +4 -0
  118. package/dist/src/utils/zod-error.d.ts.map +1 -0
  119. package/dist/src/utils/zod-error.js +17 -0
  120. package/dist/src/utils/zod-error.js.map +1 -0
  121. package/package.json +19 -17
  122. package/LICENSE +0 -202
@@ -0,0 +1,309 @@
1
+ import { z } from "zod";
2
+ import type { AnthropicProviderSkill, ProviderToolOptions } from "./provider-tools.js";
3
+ import type { RuntimeVersion } from "./runtime-version.js";
4
+ import type { Skill } from "./skill.js";
5
+ /**
6
+ * An Expert definition - an AI agent with specific skills and instructions.
7
+ * Experts can delegate to other Experts and use MCP tools.
8
+ */
9
+ export interface Expert {
10
+ /** Unique key identifying this Expert (e.g., "my-expert" or "my-expert@1.0.0") */
11
+ key: string;
12
+ /** Display name for the Expert */
13
+ name: string;
14
+ /** Semantic version string */
15
+ version: string;
16
+ /** Human-readable description of what this Expert does */
17
+ description?: string;
18
+ /** System instruction defining the Expert's behavior */
19
+ instruction: string;
20
+ /** Map of skill name to skill configuration */
21
+ skills: Record<string, Skill>;
22
+ /** List of Expert keys this Expert can delegate to */
23
+ delegates: string[];
24
+ /** Tags for categorization and discovery */
25
+ tags: string[];
26
+ /** Minimum runtime version required to run this Expert */
27
+ minRuntimeVersion: RuntimeVersion;
28
+ /** Provider-specific tool names to enable (e.g., "webSearch", "codeExecution") */
29
+ providerTools?: string[];
30
+ /** Anthropic Agent Skills configuration */
31
+ providerSkills?: AnthropicProviderSkill[];
32
+ /** Provider tool options (e.g., webSearch maxUses, allowedDomains) */
33
+ providerToolOptions?: ProviderToolOptions;
34
+ }
35
+ /**
36
+ * Base object schema for Expert. Use this for `.omit()` / `.pick()` operations.
37
+ * For parsing with delegation validation, use `expertSchema` instead.
38
+ */
39
+ export declare const expertBaseSchema: z.ZodObject<{
40
+ key: z.ZodString;
41
+ name: z.ZodString;
42
+ version: z.ZodString;
43
+ description: z.ZodOptional<z.ZodString>;
44
+ instruction: z.ZodString;
45
+ skills: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
46
+ type: z.ZodLiteral<"mcpStdioSkill">;
47
+ description: z.ZodOptional<z.ZodString>;
48
+ args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
49
+ rule: z.ZodOptional<z.ZodString>;
50
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
51
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
52
+ command: z.ZodString;
53
+ packageName: z.ZodOptional<z.ZodString>;
54
+ requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ type: z.ZodLiteral<"mcpSseSkill">;
57
+ description: z.ZodOptional<z.ZodString>;
58
+ rule: z.ZodOptional<z.ZodString>;
59
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
60
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
61
+ endpoint: z.ZodString;
62
+ }, z.core.$strip>, z.ZodObject<{
63
+ type: z.ZodLiteral<"interactiveSkill">;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ rule: z.ZodOptional<z.ZodString>;
66
+ tools: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodObject<{
67
+ description: z.ZodOptional<z.ZodString>;
68
+ inputJsonSchema: z.ZodString;
69
+ }, z.core.$strip>>, z.ZodTransform<{
70
+ [k: string]: {
71
+ name: string;
72
+ inputJsonSchema: string;
73
+ description?: string | undefined;
74
+ };
75
+ }, Record<string, {
76
+ inputJsonSchema: string;
77
+ description?: string | undefined;
78
+ }>>>;
79
+ }, z.core.$strip>], "type">>>>, z.ZodTransform<{
80
+ [k: string]: {
81
+ type: "mcpStdioSkill";
82
+ name: string;
83
+ pick: string[];
84
+ omit: string[];
85
+ command: string;
86
+ args: string[];
87
+ requiredEnv: string[];
88
+ description?: string | undefined;
89
+ rule?: string | undefined;
90
+ packageName?: string | undefined;
91
+ } | {
92
+ type: "mcpSseSkill";
93
+ name: string;
94
+ pick: string[];
95
+ omit: string[];
96
+ endpoint: string;
97
+ description?: string | undefined;
98
+ rule?: string | undefined;
99
+ } | {
100
+ type: "interactiveSkill";
101
+ name: string;
102
+ tools: {
103
+ [k: string]: {
104
+ name: string;
105
+ inputJsonSchema: string;
106
+ description?: string | undefined;
107
+ };
108
+ };
109
+ description?: string | undefined;
110
+ rule?: string | undefined;
111
+ };
112
+ }, Record<string, {
113
+ type: "mcpStdioSkill";
114
+ args: string[];
115
+ pick: string[];
116
+ omit: string[];
117
+ command: string;
118
+ requiredEnv: string[];
119
+ description?: string | undefined;
120
+ rule?: string | undefined;
121
+ packageName?: string | undefined;
122
+ } | {
123
+ type: "mcpSseSkill";
124
+ pick: string[];
125
+ omit: string[];
126
+ endpoint: string;
127
+ description?: string | undefined;
128
+ rule?: string | undefined;
129
+ } | {
130
+ type: "interactiveSkill";
131
+ tools: {
132
+ [k: string]: {
133
+ name: string;
134
+ inputJsonSchema: string;
135
+ description?: string | undefined;
136
+ };
137
+ };
138
+ description?: string | undefined;
139
+ rule?: string | undefined;
140
+ }>>>;
141
+ delegates: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
142
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
143
+ minRuntimeVersion: z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<`v${number}.${number}`, string>>>;
144
+ providerTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
+ providerSkills: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
146
+ type: z.ZodLiteral<"builtin">;
147
+ skillId: z.ZodEnum<{
148
+ pdf: "pdf";
149
+ docx: "docx";
150
+ pptx: "pptx";
151
+ xlsx: "xlsx";
152
+ }>;
153
+ }, z.core.$strip>, z.ZodObject<{
154
+ type: z.ZodLiteral<"custom">;
155
+ name: z.ZodString;
156
+ definition: z.ZodString;
157
+ }, z.core.$strip>], "type">>>;
158
+ providerToolOptions: z.ZodOptional<z.ZodObject<{
159
+ webSearch: z.ZodOptional<z.ZodObject<{
160
+ maxUses: z.ZodOptional<z.ZodNumber>;
161
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
162
+ }, z.core.$strip>>;
163
+ webFetch: z.ZodOptional<z.ZodObject<{
164
+ maxUses: z.ZodOptional<z.ZodNumber>;
165
+ }, z.core.$strip>>;
166
+ fileSearch: z.ZodOptional<z.ZodObject<{
167
+ vectorStoreIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
168
+ maxNumResults: z.ZodOptional<z.ZodNumber>;
169
+ }, z.core.$strip>>;
170
+ }, z.core.$strip>>;
171
+ }, z.core.$strip>;
172
+ /**
173
+ * Expert schema with delegation rule validation.
174
+ * Rejects self-delegation, out-of-scope delegates, and delegate-to-own-coordinator.
175
+ */
176
+ export declare const expertSchema: z.ZodObject<{
177
+ key: z.ZodString;
178
+ name: z.ZodString;
179
+ version: z.ZodString;
180
+ description: z.ZodOptional<z.ZodString>;
181
+ instruction: z.ZodString;
182
+ skills: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
183
+ type: z.ZodLiteral<"mcpStdioSkill">;
184
+ description: z.ZodOptional<z.ZodString>;
185
+ args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
186
+ rule: z.ZodOptional<z.ZodString>;
187
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
188
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
189
+ command: z.ZodString;
190
+ packageName: z.ZodOptional<z.ZodString>;
191
+ requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
192
+ }, z.core.$strip>, z.ZodObject<{
193
+ type: z.ZodLiteral<"mcpSseSkill">;
194
+ description: z.ZodOptional<z.ZodString>;
195
+ rule: z.ZodOptional<z.ZodString>;
196
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
197
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
198
+ endpoint: z.ZodString;
199
+ }, z.core.$strip>, z.ZodObject<{
200
+ type: z.ZodLiteral<"interactiveSkill">;
201
+ description: z.ZodOptional<z.ZodString>;
202
+ rule: z.ZodOptional<z.ZodString>;
203
+ tools: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodObject<{
204
+ description: z.ZodOptional<z.ZodString>;
205
+ inputJsonSchema: z.ZodString;
206
+ }, z.core.$strip>>, z.ZodTransform<{
207
+ [k: string]: {
208
+ name: string;
209
+ inputJsonSchema: string;
210
+ description?: string | undefined;
211
+ };
212
+ }, Record<string, {
213
+ inputJsonSchema: string;
214
+ description?: string | undefined;
215
+ }>>>;
216
+ }, z.core.$strip>], "type">>>>, z.ZodTransform<{
217
+ [k: string]: {
218
+ type: "mcpStdioSkill";
219
+ name: string;
220
+ pick: string[];
221
+ omit: string[];
222
+ command: string;
223
+ args: string[];
224
+ requiredEnv: string[];
225
+ description?: string | undefined;
226
+ rule?: string | undefined;
227
+ packageName?: string | undefined;
228
+ } | {
229
+ type: "mcpSseSkill";
230
+ name: string;
231
+ pick: string[];
232
+ omit: string[];
233
+ endpoint: string;
234
+ description?: string | undefined;
235
+ rule?: string | undefined;
236
+ } | {
237
+ type: "interactiveSkill";
238
+ name: string;
239
+ tools: {
240
+ [k: string]: {
241
+ name: string;
242
+ inputJsonSchema: string;
243
+ description?: string | undefined;
244
+ };
245
+ };
246
+ description?: string | undefined;
247
+ rule?: string | undefined;
248
+ };
249
+ }, Record<string, {
250
+ type: "mcpStdioSkill";
251
+ args: string[];
252
+ pick: string[];
253
+ omit: string[];
254
+ command: string;
255
+ requiredEnv: string[];
256
+ description?: string | undefined;
257
+ rule?: string | undefined;
258
+ packageName?: string | undefined;
259
+ } | {
260
+ type: "mcpSseSkill";
261
+ pick: string[];
262
+ omit: string[];
263
+ endpoint: string;
264
+ description?: string | undefined;
265
+ rule?: string | undefined;
266
+ } | {
267
+ type: "interactiveSkill";
268
+ tools: {
269
+ [k: string]: {
270
+ name: string;
271
+ inputJsonSchema: string;
272
+ description?: string | undefined;
273
+ };
274
+ };
275
+ description?: string | undefined;
276
+ rule?: string | undefined;
277
+ }>>>;
278
+ delegates: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
279
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
280
+ minRuntimeVersion: z.ZodDefault<z.ZodPipe<z.ZodString, z.ZodTransform<`v${number}.${number}`, string>>>;
281
+ providerTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
282
+ providerSkills: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
283
+ type: z.ZodLiteral<"builtin">;
284
+ skillId: z.ZodEnum<{
285
+ pdf: "pdf";
286
+ docx: "docx";
287
+ pptx: "pptx";
288
+ xlsx: "xlsx";
289
+ }>;
290
+ }, z.core.$strip>, z.ZodObject<{
291
+ type: z.ZodLiteral<"custom">;
292
+ name: z.ZodString;
293
+ definition: z.ZodString;
294
+ }, z.core.$strip>], "type">>>;
295
+ providerToolOptions: z.ZodOptional<z.ZodObject<{
296
+ webSearch: z.ZodOptional<z.ZodObject<{
297
+ maxUses: z.ZodOptional<z.ZodNumber>;
298
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
299
+ }, z.core.$strip>>;
300
+ webFetch: z.ZodOptional<z.ZodObject<{
301
+ maxUses: z.ZodOptional<z.ZodNumber>;
302
+ }, z.core.$strip>>;
303
+ fileSearch: z.ZodOptional<z.ZodObject<{
304
+ vectorStoreIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
305
+ maxNumResults: z.ZodOptional<z.ZodNumber>;
306
+ }, z.core.$strip>>;
307
+ }, z.core.$strip>>;
308
+ }, z.core.$strip>;
309
+ //# sourceMappingURL=expert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert.d.ts","sourceRoot":"","sources":["../../../src/schemas/expert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAgD,KAAK,EAAE,MAAM,YAAY,CAAA;AAGrF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC7B,sDAAsD;IACtD,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,0DAA0D;IAC1D,iBAAiB,EAAE,cAAc,CAAA;IACjC,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACzC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C;AAOD;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqD3B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKvB,CAAA"}
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+ import { expertKeyRegex, expertNameRegex, expertVersionRegex, maxExpertNameLength, tagNameRegex, } from "../constants/constants.js";
3
+ import { validateAllDelegations } from "../utils/expert-type.js";
4
+ import { anthropicProviderSkillSchema, providerToolOptionsSchema } from "./provider-tools.js";
5
+ import { runtimeVersionSchema } from "./runtime-version.js";
6
+ import { interactiveSkillSchema, mcpSseSkillSchema, mcpStdioSkillSchema } from "./skill.js";
7
+ /**
8
+ * Base object schema for Expert. Use this for `.omit()` / `.pick()` operations.
9
+ * For parsing with delegation validation, use `expertSchema` instead.
10
+ */
11
+ export const expertBaseSchema = z.object({
12
+ key: z.string().regex(expertKeyRegex).min(1),
13
+ name: z.string().regex(expertNameRegex).min(1).max(maxExpertNameLength),
14
+ version: z.string().regex(expertVersionRegex),
15
+ description: z
16
+ .string()
17
+ .max(1024 * 2)
18
+ .optional(),
19
+ instruction: z
20
+ .string()
21
+ .min(1)
22
+ .max(1024 * 20),
23
+ skills: z
24
+ .record(z.string(), z.discriminatedUnion("type", [
25
+ mcpStdioSkillSchema.omit({ name: true }),
26
+ mcpSseSkillSchema.omit({ name: true }),
27
+ interactiveSkillSchema.omit({ name: true }),
28
+ ]))
29
+ .optional()
30
+ .default({
31
+ "@perstack/base": {
32
+ type: "mcpStdioSkill",
33
+ description: "Base skill",
34
+ command: "npx",
35
+ args: ["-y", "@perstack/base"],
36
+ pick: [],
37
+ omit: [],
38
+ requiredEnv: [],
39
+ },
40
+ })
41
+ .transform((skills) => {
42
+ return Object.fromEntries(Object.entries(skills).map(([key, skillWithoutName]) => [
43
+ key,
44
+ z
45
+ .discriminatedUnion("type", [
46
+ mcpStdioSkillSchema,
47
+ mcpSseSkillSchema,
48
+ interactiveSkillSchema,
49
+ ])
50
+ .parse({ ...skillWithoutName, name: key }),
51
+ ]));
52
+ }),
53
+ delegates: z.array(z.string().regex(expertKeyRegex).min(1)).optional().default([]),
54
+ tags: z.array(z.string().regex(tagNameRegex).min(1)).optional().default([]),
55
+ minRuntimeVersion: runtimeVersionSchema.default("v1.0"),
56
+ providerTools: z.array(z.string()).optional(),
57
+ providerSkills: z.array(anthropicProviderSkillSchema).optional(),
58
+ providerToolOptions: providerToolOptionsSchema,
59
+ });
60
+ /**
61
+ * Expert schema with delegation rule validation.
62
+ * Rejects self-delegation, out-of-scope delegates, and delegate-to-own-coordinator.
63
+ */
64
+ export const expertSchema = expertBaseSchema.superRefine((data, ctx) => {
65
+ const errors = validateAllDelegations(data.key, data.delegates);
66
+ for (const error of errors) {
67
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: error, path: ["delegates"] });
68
+ }
69
+ });
70
+ //# sourceMappingURL=expert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert.js","sourceRoot":"","sources":["../../../src/schemas/expert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import type { RuntimeVersion } from "./runtime-version.js";
3
+ import type { Usage } from "./usage.js";
4
+ export type JobStatus = "running" | "completed" | "stoppedByInteractiveTool" | "stoppedByError" | "stoppedByCancellation";
5
+ export declare const jobStatusSchema: z.ZodEnum<{
6
+ completed: "completed";
7
+ stoppedByInteractiveTool: "stoppedByInteractiveTool";
8
+ stoppedByError: "stoppedByError";
9
+ stoppedByCancellation: "stoppedByCancellation";
10
+ running: "running";
11
+ }>;
12
+ export interface Job {
13
+ id: string;
14
+ status: JobStatus;
15
+ coordinatorExpertKey: string;
16
+ runtimeVersion: RuntimeVersion;
17
+ totalSteps: number;
18
+ usage: Usage;
19
+ startedAt: number;
20
+ finishedAt?: number;
21
+ }
22
+ export declare const jobSchema: z.ZodObject<{
23
+ id: z.ZodString;
24
+ status: z.ZodEnum<{
25
+ completed: "completed";
26
+ stoppedByInteractiveTool: "stoppedByInteractiveTool";
27
+ stoppedByError: "stoppedByError";
28
+ stoppedByCancellation: "stoppedByCancellation";
29
+ running: "running";
30
+ }>;
31
+ coordinatorExpertKey: z.ZodString;
32
+ runtimeVersion: z.ZodPipe<z.ZodString, z.ZodTransform<`v${number}.${number}`, string>>;
33
+ totalSteps: z.ZodNumber;
34
+ usage: z.ZodObject<{
35
+ inputTokens: z.ZodNumber;
36
+ outputTokens: z.ZodNumber;
37
+ reasoningTokens: z.ZodNumber;
38
+ totalTokens: z.ZodNumber;
39
+ cachedInputTokens: z.ZodNumber;
40
+ }, z.core.$strip>;
41
+ startedAt: z.ZodNumber;
42
+ finishedAt: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>;
44
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/schemas/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,0BAA0B,GAC1B,gBAAgB,GAChB,uBAAuB,CAAA;AAE3B,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAA;AAEF,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,SAAS,CAAA;IACjB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;iBASpB,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { runtimeVersionSchema } from "./runtime-version.js";
3
+ import { usageSchema } from "./usage.js";
4
+ export const jobStatusSchema = z.enum([
5
+ "running",
6
+ "completed",
7
+ "stoppedByInteractiveTool",
8
+ "stoppedByError",
9
+ "stoppedByCancellation",
10
+ ]);
11
+ export const jobSchema = z.object({
12
+ id: z.string(),
13
+ status: jobStatusSchema,
14
+ coordinatorExpertKey: z.string(),
15
+ runtimeVersion: runtimeVersionSchema,
16
+ totalSteps: z.number(),
17
+ usage: usageSchema,
18
+ startedAt: z.number(),
19
+ finishedAt: z.number().optional(),
20
+ });
21
+ jobSchema;
22
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/schemas/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AASxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,SAAS;IACT,WAAW;IACX,0BAA0B;IAC1B,gBAAgB;IAChB,uBAAuB;CACxB,CAAC,CAAA;AAaF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,eAAe;IACvB,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,cAAc,EAAE,oBAAoB;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA;AACF,SAAkC,CAAA"}
@@ -0,0 +1,143 @@
1
+ import { z } from "zod";
2
+ import type { Skill } from "./skill.js";
3
+ export interface LockfileToolDefinition {
4
+ skillName: string;
5
+ name: string;
6
+ description?: string;
7
+ inputSchema: Record<string, unknown>;
8
+ }
9
+ export declare const lockfileToolDefinitionSchema: z.ZodObject<{
10
+ skillName: z.ZodString;
11
+ name: z.ZodString;
12
+ description: z.ZodOptional<z.ZodString>;
13
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
14
+ }, z.core.$strip>;
15
+ export interface LockfileExpert {
16
+ key: string;
17
+ name: string;
18
+ version: string;
19
+ description?: string;
20
+ instruction: string;
21
+ skills: Record<string, Skill>;
22
+ delegates: string[];
23
+ tags: string[];
24
+ toolDefinitions: LockfileToolDefinition[];
25
+ }
26
+ export declare const lockfileExpertSchema: z.ZodObject<{
27
+ key: z.ZodString;
28
+ name: z.ZodString;
29
+ version: z.ZodString;
30
+ description: z.ZodOptional<z.ZodString>;
31
+ instruction: z.ZodString;
32
+ skills: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
33
+ type: z.ZodLiteral<"mcpStdioSkill">;
34
+ name: z.ZodString;
35
+ description: z.ZodOptional<z.ZodString>;
36
+ rule: z.ZodOptional<z.ZodString>;
37
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
38
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
39
+ command: z.ZodString;
40
+ packageName: z.ZodOptional<z.ZodString>;
41
+ args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
42
+ requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ type: z.ZodLiteral<"mcpSseSkill">;
45
+ name: z.ZodString;
46
+ description: z.ZodOptional<z.ZodString>;
47
+ rule: z.ZodOptional<z.ZodString>;
48
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
49
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
50
+ endpoint: z.ZodString;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ type: z.ZodLiteral<"interactiveSkill">;
53
+ name: z.ZodString;
54
+ description: z.ZodOptional<z.ZodString>;
55
+ rule: z.ZodOptional<z.ZodString>;
56
+ tools: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodObject<{
57
+ description: z.ZodOptional<z.ZodString>;
58
+ inputJsonSchema: z.ZodString;
59
+ }, z.core.$strip>>, z.ZodTransform<{
60
+ [k: string]: {
61
+ name: string;
62
+ inputJsonSchema: string;
63
+ description?: string | undefined;
64
+ };
65
+ }, Record<string, {
66
+ inputJsonSchema: string;
67
+ description?: string | undefined;
68
+ }>>>;
69
+ }, z.core.$strip>], "type">>;
70
+ delegates: z.ZodArray<z.ZodString>;
71
+ tags: z.ZodArray<z.ZodString>;
72
+ toolDefinitions: z.ZodArray<z.ZodObject<{
73
+ skillName: z.ZodString;
74
+ name: z.ZodString;
75
+ description: z.ZodOptional<z.ZodString>;
76
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
77
+ }, z.core.$strip>>;
78
+ }, z.core.$strip>;
79
+ export interface Lockfile {
80
+ version: "1";
81
+ generatedAt: number;
82
+ configPath: string;
83
+ experts: Record<string, LockfileExpert>;
84
+ }
85
+ export declare const lockfileSchema: z.ZodObject<{
86
+ version: z.ZodLiteral<"1">;
87
+ generatedAt: z.ZodNumber;
88
+ configPath: z.ZodString;
89
+ experts: z.ZodRecord<z.ZodString, z.ZodObject<{
90
+ key: z.ZodString;
91
+ name: z.ZodString;
92
+ version: z.ZodString;
93
+ description: z.ZodOptional<z.ZodString>;
94
+ instruction: z.ZodString;
95
+ skills: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
96
+ type: z.ZodLiteral<"mcpStdioSkill">;
97
+ name: z.ZodString;
98
+ description: z.ZodOptional<z.ZodString>;
99
+ rule: z.ZodOptional<z.ZodString>;
100
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
101
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
102
+ command: z.ZodString;
103
+ packageName: z.ZodOptional<z.ZodString>;
104
+ args: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
105
+ requiredEnv: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
106
+ }, z.core.$strip>, z.ZodObject<{
107
+ type: z.ZodLiteral<"mcpSseSkill">;
108
+ name: z.ZodString;
109
+ description: z.ZodOptional<z.ZodString>;
110
+ rule: z.ZodOptional<z.ZodString>;
111
+ pick: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
112
+ omit: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
113
+ endpoint: z.ZodString;
114
+ }, z.core.$strip>, z.ZodObject<{
115
+ type: z.ZodLiteral<"interactiveSkill">;
116
+ name: z.ZodString;
117
+ description: z.ZodOptional<z.ZodString>;
118
+ rule: z.ZodOptional<z.ZodString>;
119
+ tools: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodObject<{
120
+ description: z.ZodOptional<z.ZodString>;
121
+ inputJsonSchema: z.ZodString;
122
+ }, z.core.$strip>>, z.ZodTransform<{
123
+ [k: string]: {
124
+ name: string;
125
+ inputJsonSchema: string;
126
+ description?: string | undefined;
127
+ };
128
+ }, Record<string, {
129
+ inputJsonSchema: string;
130
+ description?: string | undefined;
131
+ }>>>;
132
+ }, z.core.$strip>], "type">>;
133
+ delegates: z.ZodArray<z.ZodString>;
134
+ tags: z.ZodArray<z.ZodString>;
135
+ toolDefinitions: z.ZodArray<z.ZodObject<{
136
+ skillName: z.ZodString;
137
+ name: z.ZodString;
138
+ description: z.ZodOptional<z.ZodString>;
139
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
140
+ }, z.core.$strip>>;
141
+ }, z.core.$strip>>;
142
+ }, z.core.$strip>;
143
+ //# sourceMappingURL=lockfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../../src/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,eAAO,MAAM,4BAA4B;;;;;iBAKvC,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,eAAe,EAAE,sBAAsB,EAAE,CAAA;CAC1C;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU/B,CAAA;AAEF,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,GAAG,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACxC;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKzB,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ import { skillSchema } from "./skill.js";
3
+ export const lockfileToolDefinitionSchema = z.object({
4
+ skillName: z.string(),
5
+ name: z.string(),
6
+ description: z.string().optional(),
7
+ inputSchema: z.record(z.string(), z.unknown()),
8
+ });
9
+ export const lockfileExpertSchema = z.object({
10
+ key: z.string(),
11
+ name: z.string(),
12
+ version: z.string(),
13
+ description: z.string().optional(),
14
+ instruction: z.string(),
15
+ skills: z.record(z.string(), skillSchema),
16
+ delegates: z.array(z.string()),
17
+ tags: z.array(z.string()),
18
+ toolDefinitions: z.array(lockfileToolDefinitionSchema),
19
+ });
20
+ export const lockfileSchema = z.object({
21
+ version: z.literal("1"),
22
+ generatedAt: z.number(),
23
+ configPath: z.string(),
24
+ experts: z.record(z.string(), lockfileExpertSchema),
25
+ });
26
+ //# sourceMappingURL=lockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AASxC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CAC/C,CAAC,CAAA;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;CACvD,CAAC,CAAA;AASF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;CACpD,CAAC,CAAA"}